material-react-table 0.6.1 → 0.6.4

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.
@@ -7,8 +7,8 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
7
7
  var React = require('react');
8
8
  var React__default = _interopDefault(React);
9
9
  var reactTable = require('react-table');
10
- var matchSorter = require('match-sorter');
11
10
  var material = require('@mui/material');
11
+ var matchSorter = require('match-sorter');
12
12
  var ArrowRightIcon = _interopDefault(require('@mui/icons-material/ArrowRight'));
13
13
  var CancelIcon = _interopDefault(require('@mui/icons-material/Cancel'));
14
14
  var ClearAllIcon = _interopDefault(require('@mui/icons-material/ClearAll'));
@@ -104,144 +104,41 @@ function _objectWithoutPropertiesLoose(source, excluded) {
104
104
  return target;
105
105
  }
106
106
 
107
- var fuzzySearchFN = function fuzzySearchFN(rows, columnIds, filterValue) {
108
- return matchSorter.matchSorter(rows, filterValue.toString().trim(), {
109
- keys: columnIds.map(function (c) {
110
- return "values." + c;
111
- }),
112
- sorter: function sorter(rankedItems) {
113
- return rankedItems;
114
- }
115
- });
116
- };
117
-
118
- fuzzySearchFN.autoRemove = function (val) {
119
- return !val;
120
- };
107
+ var findLowestLevelCols = function findLowestLevelCols(columns) {
108
+ var lowestLevelColumns = columns;
109
+ var currentCols = columns;
121
110
 
122
- var fuzzyFilterFN = function fuzzyFilterFN(rows, id, filterValue) {
123
- return matchSorter.matchSorter(rows, filterValue.toString().trim(), {
124
- keys: ["values." + id],
125
- sorter: function sorter(rankedItems) {
126
- return rankedItems;
127
- }
128
- });
129
- };
130
-
131
- fuzzyFilterFN.autoRemove = function (val) {
132
- return !val;
133
- };
134
-
135
- var containsFilterFN = function containsFilterFN(rows, id, filterValue) {
136
- return rows.filter(function (row) {
137
- return row.values[id].toString().toLowerCase().trim().includes(filterValue.toString().toLowerCase().trim());
138
- });
139
- };
140
-
141
- containsFilterFN.autoRemove = function (val) {
142
- return !val;
143
- };
144
-
145
- var startsWithFilterFN = function startsWithFilterFN(rows, id, filterValue) {
146
- return rows.filter(function (row) {
147
- return row.values[id].toString().toLowerCase().trim().startsWith(filterValue.toString().toLowerCase().trim());
148
- });
149
- };
150
-
151
- startsWithFilterFN.autoRemove = function (val) {
152
- return !val;
153
- };
154
-
155
- var endsWithFilterFN = function endsWithFilterFN(rows, id, filterValue) {
156
- return rows.filter(function (row) {
157
- return row.values[id].toString().toLowerCase().trim().endsWith(filterValue.toString().toLowerCase().trim());
158
- });
159
- };
160
-
161
- endsWithFilterFN.autoRemove = function (val) {
162
- return !val;
163
- };
164
-
165
- var equalsFilterFN = function equalsFilterFN(rows, id, filterValue) {
166
- return rows.filter(function (row) {
167
- return row.values[id].toString().toLowerCase().trim() === filterValue.toString().toLowerCase().trim();
168
- });
169
- };
170
-
171
- equalsFilterFN.autoRemove = function (val) {
172
- return !val;
173
- };
174
-
175
- var notEqualsFilterFN = function notEqualsFilterFN(rows, id, filterValue) {
176
- return rows.filter(function (row) {
177
- return row.values[id].toString().toLowerCase().trim() !== filterValue.toString().toLowerCase().trim();
178
- });
179
- };
180
-
181
- notEqualsFilterFN.autoRemove = function (val) {
182
- return !val;
183
- };
111
+ while (!!((_currentCols = currentCols) != null && _currentCols.length) && currentCols.some(function (col) {
112
+ return col.columns;
113
+ })) {
114
+ var _currentCols;
184
115
 
185
- var greaterThanFilterFN = function greaterThanFilterFN(rows, id, filterValue) {
186
- return rows.filter(function (row) {
187
- return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] > +filterValue : row.values[id].toString().toLowerCase().trim() > filterValue.toString().toLowerCase().trim();
188
- });
189
- };
190
-
191
- greaterThanFilterFN.autoRemove = function (val) {
192
- return !val;
193
- };
194
-
195
- var lessThanFilterFN = function lessThanFilterFN(rows, id, filterValue) {
196
- return rows.filter(function (row) {
197
- return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] < +filterValue : row.values[id].toString().toLowerCase().trim() < filterValue.toString().toLowerCase().trim();
198
- });
199
- };
200
-
201
- lessThanFilterFN.autoRemove = function (val) {
202
- return !val;
203
- };
116
+ var nextCols = currentCols.filter(function (col) {
117
+ return !!col.columns;
118
+ }).map(function (col) {
119
+ return col.columns;
120
+ }).flat();
204
121
 
205
- var emptyFilterFN = function emptyFilterFN(rows, id, _filterValue) {
206
- return rows.filter(function (row) {
207
- return !row.values[id].toString().toLowerCase().trim();
208
- });
209
- };
122
+ if (nextCols.every(function (col) {
123
+ return !(col != null && col.columns);
124
+ })) {
125
+ lowestLevelColumns = [].concat(lowestLevelColumns, nextCols);
126
+ }
210
127
 
211
- emptyFilterFN.autoRemove = function (val) {
212
- return !val;
213
- };
128
+ currentCols = nextCols;
129
+ }
214
130
 
215
- var notEmptyFilterFN = function notEmptyFilterFN(rows, id, _filterValue) {
216
- return rows.filter(function (row) {
217
- return !!row.values[id].toString().toLowerCase().trim();
131
+ return lowestLevelColumns.filter(function (col) {
132
+ return !col.columns;
218
133
  });
219
134
  };
220
135
 
221
- notEmptyFilterFN.autoRemove = function (val) {
222
- return !val;
223
- };
224
-
225
- var defaultFilterFNs = {
226
- contains: containsFilterFN,
227
- empty: emptyFilterFN,
228
- endsWith: endsWithFilterFN,
229
- equals: equalsFilterFN,
230
- fuzzy: fuzzyFilterFN,
231
- globalFuzzy: fuzzySearchFN,
232
- greaterThan: greaterThanFilterFN,
233
- lessThan: lessThanFilterFN,
234
- notEmpty: notEmptyFilterFN,
235
- notEquals: notEqualsFilterFN,
236
- startsWith: startsWithFilterFN
237
- };
238
-
239
136
  var MaterialReactTableContext = /*#__PURE__*/function () {
240
137
  return React.createContext({});
241
138
  }();
242
139
 
243
140
  var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
244
- var _props$initialState$d, _props$initialState, _props$initialState$f, _props$initialState2, _props$initialState$s, _props$initialState3, _props$initialState$s2, _props$initialState4, _props$globalFilter;
141
+ var _props$initialState$d, _props$initialState, _props$initialState$f, _props$initialState2, _props$initialState$s, _props$initialState3, _props$initialState$s2, _props$initialState4;
245
142
 
246
143
  var hooks = [reactTable.useFilters, reactTable.useGlobalFilter, reactTable.useGroupBy, reactTable.useSortBy, reactTable.useExpanded, reactTable.usePagination, reactTable.useRowSelect];
247
144
  if (props.enableColumnResizing) hooks.unshift(reactTable.useResizeColumns, reactTable.useFlexLayout);
@@ -266,38 +163,8 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
266
163
  showSearch = _useState5[0],
267
164
  setShowSearch = _useState5[1];
268
165
 
269
- var filterTypes = React.useMemo(function () {
270
- return _extends({}, defaultFilterFNs, props.filterTypes);
271
- }, [props.filterTypes]);
272
- var findLowestLevelCols = React.useCallback(function () {
273
- var lowestLevelColumns = props.columns;
274
- var currentCols = props.columns;
275
-
276
- while (!!currentCols.length && currentCols.some(function (col) {
277
- return col.columns;
278
- })) {
279
- var nextCols = currentCols.filter(function (col) {
280
- return !!col.columns;
281
- }).map(function (col) {
282
- return col.columns;
283
- }).flat();
284
-
285
- if (nextCols.every(function (col) {
286
- return !col.columns;
287
- })) {
288
- lowestLevelColumns = [].concat(lowestLevelColumns, nextCols);
289
- }
290
-
291
- currentCols = nextCols;
292
- }
293
-
294
- return lowestLevelColumns.filter(function (col) {
295
- return !col.columns;
296
- });
297
- }, [props.columns]);
298
-
299
166
  var _useState6 = React.useState(function () {
300
- return Object.assign.apply(Object, [{}].concat(findLowestLevelCols().map(function (c) {
167
+ return Object.assign.apply(Object, [{}].concat(findLowestLevelCols(props.columns).map(function (c) {
301
168
  var _ref, _c$filter, _props$initialState5, _props$initialState5$, _ref2;
302
169
 
303
170
  return _ref2 = {}, _ref2[c.accessor] = (_ref = (_c$filter = c.filter) != null ? _c$filter : props == null ? void 0 : (_props$initialState5 = props.initialState) == null ? void 0 : (_props$initialState5$ = _props$initialState5.filters) == null ? void 0 : _props$initialState5$[c.accessor]) != null ? _ref : !!c.filterSelectOptions ? 'equals' : 'fuzzy', _ref2;
@@ -306,17 +173,36 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
306
173
  currentFilterTypes = _useState6[0],
307
174
  setCurrentFilterTypes = _useState6[1];
308
175
 
309
- var columns = React.useMemo(function () {
310
- return findLowestLevelCols().map(function (column) {
311
- column.filter = filterTypes[currentFilterTypes[column.accessor]];
176
+ var applyFiltersToColumns = React.useCallback(function (cols) {
177
+ return cols.map(function (column) {
178
+ if (column.columns) {
179
+ applyFiltersToColumns(column.columns);
180
+ } else {
181
+ var _props$filterTypes;
182
+
183
+ column.filter = props == null ? void 0 : (_props$filterTypes = props.filterTypes) == null ? void 0 : _props$filterTypes[currentFilterTypes[column.accessor]];
184
+ }
185
+
312
186
  return column;
313
187
  });
314
- }, [props.columns, filterTypes, currentFilterTypes]);
315
- var tableInstance = reactTable.useTable.apply(void 0, [_extends({}, props, {
316
- columns: columns,
188
+ }, [currentFilterTypes, props.filterTypes]);
189
+ var columns = React.useMemo(function () {
190
+ return applyFiltersToColumns(props.columns);
191
+ }, [props.columns, applyFiltersToColumns]);
192
+ var data = React.useMemo(function () {
193
+ return !props.isLoading || !!props.data.length ? props.data : [].concat(Array(10).fill(null)).map(function (_) {
194
+ return Object.assign.apply(Object, [{}].concat(findLowestLevelCols(props.columns).map(function (c) {
195
+ var _ref3;
196
+
197
+ return _ref3 = {}, _ref3[c.accessor] = null, _ref3;
198
+ })));
199
+ });
200
+ }, [props.data, props.isLoading]);
201
+ var tableInstance = reactTable.useTable.apply(void 0, [// @ts-ignore
202
+ _extends({}, props, {
317
203
  // @ts-ignore
318
- filterTypes: filterTypes,
319
- globalFilter: (_props$globalFilter = props.globalFilter) != null ? _props$globalFilter : 'globalFuzzy',
204
+ columns: columns,
205
+ data: data,
320
206
  useControlledState: function useControlledState(state) {
321
207
  return React.useMemo(function () {
322
208
  return _extends({}, state, {
@@ -381,6 +267,124 @@ var MRT_FILTER_TYPE;
381
267
  MRT_FILTER_TYPE["STARTS_WITH"] = "startsWith";
382
268
  })(MRT_FILTER_TYPE || (MRT_FILTER_TYPE = {}));
383
269
 
270
+ var fuzzy = function fuzzy(rows, columnIds, filterValue) {
271
+ return matchSorter.matchSorter(rows, filterValue.toString().trim(), {
272
+ keys: Array.isArray(columnIds) ? columnIds.map(function (c) {
273
+ return "values." + c;
274
+ }) : ["values." + columnIds],
275
+ sorter: function sorter(rankedItems) {
276
+ return rankedItems;
277
+ }
278
+ });
279
+ };
280
+
281
+ fuzzy.autoRemove = function (val) {
282
+ return !val;
283
+ };
284
+
285
+ var contains = function contains(rows, id, filterValue) {
286
+ return rows.filter(function (row) {
287
+ return row.values[id].toString().toLowerCase().trim().includes(filterValue.toString().toLowerCase().trim());
288
+ });
289
+ };
290
+
291
+ contains.autoRemove = function (val) {
292
+ return !val;
293
+ };
294
+
295
+ var startsWith = function startsWith(rows, id, filterValue) {
296
+ return rows.filter(function (row) {
297
+ return row.values[id].toString().toLowerCase().trim().startsWith(filterValue.toString().toLowerCase().trim());
298
+ });
299
+ };
300
+
301
+ startsWith.autoRemove = function (val) {
302
+ return !val;
303
+ };
304
+
305
+ var endsWith = function endsWith(rows, id, filterValue) {
306
+ return rows.filter(function (row) {
307
+ return row.values[id].toString().toLowerCase().trim().endsWith(filterValue.toString().toLowerCase().trim());
308
+ });
309
+ };
310
+
311
+ endsWith.autoRemove = function (val) {
312
+ return !val;
313
+ };
314
+
315
+ var equals = function equals(rows, id, filterValue) {
316
+ return rows.filter(function (row) {
317
+ return row.values[id].toString().toLowerCase().trim() === filterValue.toString().toLowerCase().trim();
318
+ });
319
+ };
320
+
321
+ equals.autoRemove = function (val) {
322
+ return !val;
323
+ };
324
+
325
+ var notEquals = function notEquals(rows, id, filterValue) {
326
+ return rows.filter(function (row) {
327
+ return row.values[id].toString().toLowerCase().trim() !== filterValue.toString().toLowerCase().trim();
328
+ });
329
+ };
330
+
331
+ notEquals.autoRemove = function (val) {
332
+ return !val;
333
+ };
334
+
335
+ var greaterThan = function greaterThan(rows, id, filterValue) {
336
+ return rows.filter(function (row) {
337
+ return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] > +filterValue : row.values[id].toString().toLowerCase().trim() > filterValue.toString().toLowerCase().trim();
338
+ });
339
+ };
340
+
341
+ greaterThan.autoRemove = function (val) {
342
+ return !val;
343
+ };
344
+
345
+ var lessThan = function lessThan(rows, id, filterValue) {
346
+ return rows.filter(function (row) {
347
+ return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] < +filterValue : row.values[id].toString().toLowerCase().trim() < filterValue.toString().toLowerCase().trim();
348
+ });
349
+ };
350
+
351
+ lessThan.autoRemove = function (val) {
352
+ return !val;
353
+ };
354
+
355
+ var empty = function empty(rows, id, _filterValue) {
356
+ return rows.filter(function (row) {
357
+ return !row.values[id].toString().toLowerCase().trim();
358
+ });
359
+ };
360
+
361
+ empty.autoRemove = function (val) {
362
+ return !val;
363
+ };
364
+
365
+ var notEmpty = function notEmpty(rows, id, _filterValue) {
366
+ return rows.filter(function (row) {
367
+ return !!row.values[id].toString().toLowerCase().trim();
368
+ });
369
+ };
370
+
371
+ notEmpty.autoRemove = function (val) {
372
+ return !val;
373
+ };
374
+
375
+ var defaultFilterFNs = {
376
+ contains: contains,
377
+ empty: empty,
378
+ endsWith: endsWith,
379
+ equals: equals,
380
+ fuzzy: fuzzy,
381
+ greaterThan: greaterThan,
382
+ lessThan: lessThan,
383
+ notEmpty: notEmpty,
384
+ notEquals: notEquals,
385
+ startsWith: startsWith
386
+ };
387
+
384
388
  var commonMenuItemStyles = {
385
389
  py: '6px',
386
390
  my: 0,
@@ -402,52 +406,52 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
402
406
  type: MRT_FILTER_TYPE.FUZZY,
403
407
  label: localization.filterFuzzy,
404
408
  divider: false,
405
- fn: fuzzyFilterFN
409
+ fn: fuzzy
406
410
  }, {
407
411
  type: MRT_FILTER_TYPE.CONTAINS,
408
412
  label: localization.filterContains,
409
413
  divider: true,
410
- fn: containsFilterFN
414
+ fn: contains
411
415
  }, {
412
416
  type: MRT_FILTER_TYPE.STARTS_WITH,
413
417
  label: localization.filterStartsWith,
414
418
  divider: false,
415
- fn: startsWithFilterFN
419
+ fn: startsWith
416
420
  }, {
417
421
  type: MRT_FILTER_TYPE.ENDS_WITH,
418
422
  label: localization.filterEndsWith,
419
423
  divider: true,
420
- fn: endsWithFilterFN
424
+ fn: endsWith
421
425
  }, {
422
426
  type: MRT_FILTER_TYPE.EQUALS,
423
427
  label: localization.filterEquals,
424
428
  divider: false,
425
- fn: equalsFilterFN
429
+ fn: equals
426
430
  }, {
427
431
  type: MRT_FILTER_TYPE.NOT_EQUALS,
428
432
  label: localization.filterNotEquals,
429
433
  divider: true,
430
- fn: notEqualsFilterFN
434
+ fn: notEquals
431
435
  }, {
432
436
  type: MRT_FILTER_TYPE.GREATER_THAN,
433
437
  label: localization.filterGreaterThan,
434
438
  divider: false,
435
- fn: greaterThanFilterFN
439
+ fn: greaterThan
436
440
  }, {
437
441
  type: MRT_FILTER_TYPE.LESS_THAN,
438
442
  label: localization.filterLessThan,
439
443
  divider: true,
440
- fn: lessThanFilterFN
444
+ fn: lessThan
441
445
  }, {
442
446
  type: MRT_FILTER_TYPE.EMPTY,
443
447
  label: localization.filterEmpty,
444
448
  divider: false,
445
- fn: emptyFilterFN
449
+ fn: empty
446
450
  }, {
447
451
  type: MRT_FILTER_TYPE.NOT_EMPTY,
448
452
  label: localization.filterNotEmpty,
449
453
  divider: false,
450
- fn: notEmptyFilterFN
454
+ fn: notEmpty
451
455
  }];
452
456
  }, []);
453
457
 
@@ -499,7 +503,7 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
499
503
  };
500
504
 
501
505
  var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
502
- var _localization$filterB, _localization$clearFi, _column$filterSelectO;
506
+ var _localization$filterB, _localization$filterM, _localization$, _localization$clearFi, _column$filterSelectO;
503
507
 
504
508
  var column = _ref.column;
505
509
 
@@ -557,6 +561,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
557
561
  }));
558
562
  }
559
563
 
564
+ var filterId = "mrt-" + idPrefix + "-" + column.id + "-filter-text-field";
560
565
  var filterType = tableInstance.state.currentFilterTypes[column.id];
561
566
  var isSelectFilter = !!column.filterSelectOptions;
562
567
  var filterChipLabel = !(filterType instanceof Function) && [MRT_FILTER_TYPE.EMPTY, MRT_FILTER_TYPE.NOT_EMPTY].includes(filterType) ? //@ts-ignore
@@ -564,7 +569,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
564
569
  var filterPlaceholder = (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(column.Header));
565
570
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.TextField, Object.assign({
566
571
  fullWidth: true,
567
- id: "mrt-" + idPrefix + "-" + column.id + "-filter-text-field",
572
+ id: filterId,
568
573
  inputProps: {
569
574
  disabled: !!filterChipLabel,
570
575
  sx: {
@@ -573,8 +578,11 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
573
578
  },
574
579
  title: filterPlaceholder
575
580
  },
576
- helperText: filterType instanceof Function ? '' : localization.filterMode.replace('{filterType}', // @ts-ignore
577
- localization["filter" + (filterType.charAt(0).toUpperCase() + filterType.slice(1))]),
581
+ helperText: React__default.createElement("label", {
582
+ htmlFor: filterId
583
+ }, filterType instanceof Function ? (_localization$filterM = localization.filterMode.replace('{filterType}', // @ts-ignore
584
+ (_localization$ = localization["filter" + (filterType.name.charAt(0).toUpperCase() + filterType.name.slice(1))]) != null ? _localization$ : '')) != null ? _localization$filterM : '' : localization.filterMode.replace('{filterType}', // @ts-ignore
585
+ localization["filter" + (filterType.charAt(0).toUpperCase() + filterType.slice(1))])),
578
586
  FormHelperTextProps: {
579
587
  sx: {
580
588
  fontSize: '0.6rem',
@@ -608,6 +616,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
608
616
  arrow: true,
609
617
  title: localization.changeFilterMode
610
618
  }, React__default.createElement("span", null, React__default.createElement(material.IconButton, {
619
+ "aria-label": localization.changeFilterMode,
611
620
  onClick: handleFilterMenuOpen,
612
621
  size: "small",
613
622
  sx: {
@@ -857,15 +866,16 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
857
866
  setAnchorEl(null);
858
867
  };
859
868
 
869
+ var handleShowAllColumns = function handleShowAllColumns() {
870
+ tableInstance.toggleHideAllColumns(false);
871
+ setAnchorEl(null);
872
+ };
873
+
860
874
  var handleOpenFilterModeMenu = function handleOpenFilterModeMenu(event) {
861
875
  event.stopPropagation();
862
876
  setFilterMenuAnchorEl(event.currentTarget);
863
877
  };
864
878
 
865
- var handleShowAllColumns = function handleShowAllColumns() {
866
- tableInstance.toggleHideAllColumns(false);
867
- };
868
-
869
879
  var handleOpenShowHideColumnsMenu = function handleOpenShowHideColumnsMenu(event) {
870
880
  event.stopPropagation();
871
881
  setShowHideColumnsMenuAnchorEl(event.currentTarget);
@@ -2427,9 +2437,7 @@ var MRT_TableBody = function MRT_TableBody() {
2427
2437
  });
2428
2438
 
2429
2439
  return React__default.createElement(material.TableBody, Object.assign({}, tableBodyProps, {
2430
- sx: _extends({
2431
- overflowY: 'hidden'
2432
- }, tableBodyProps == null ? void 0 : tableBodyProps.sx)
2440
+ sx: _extends({}, tableBodyProps == null ? void 0 : tableBodyProps.sx)
2433
2441
  }), rows.map(function (row) {
2434
2442
  tableInstance.prepareRow(row);
2435
2443
  return React__default.createElement(MRT_TableBodyRow, {
@@ -2789,7 +2797,7 @@ var MRT_TablePagination = function MRT_TablePagination() {
2789
2797
  showLastButton: tableInstance.rows.length / tableInstance.state.pageSize > 2
2790
2798
  }, tablePaginationProps, {
2791
2799
  sx: _extends({
2792
- p: 0,
2800
+ m: '0 0.5rem',
2793
2801
  position: 'relative',
2794
2802
  zIndex: 2
2795
2803
  }, tablePaginationProps == null ? void 0 : tablePaginationProps.sx)
@@ -2851,6 +2859,34 @@ var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner() {
2851
2859
  }, selectMessage, groupedByMessage)));
2852
2860
  };
2853
2861
 
2862
+ var MRT_LinearProgressBar = function MRT_LinearProgressBar() {
2863
+ var _useMRT = useMRT(),
2864
+ muiLinearProgressProps = _useMRT.muiLinearProgressProps,
2865
+ isFetching = _useMRT.isFetching,
2866
+ isLoading = _useMRT.isLoading,
2867
+ tableInstance = _useMRT.tableInstance;
2868
+
2869
+ var linearProgressProps = muiLinearProgressProps instanceof Function ? muiLinearProgressProps(tableInstance) : muiLinearProgressProps;
2870
+ return React__default.createElement(material.Collapse, {
2871
+ "in": isFetching || isLoading,
2872
+ unmountOnExit: true
2873
+ }, React__default.createElement(material.LinearProgress, Object.assign({
2874
+ "aria-label": "Loading",
2875
+ "aria-busy": "true"
2876
+ }, linearProgressProps)));
2877
+ };
2878
+
2879
+ var commonToolbarStyles = function commonToolbarStyles(theme, tableInstance) {
2880
+ return {
2881
+ backgroundColor: theme.palette.background["default"],
2882
+ backgroundImage: "linear-gradient(" + material.alpha(theme.palette.common.white, 0.05) + "," + material.alpha(theme.palette.common.white, 0.05) + ")",
2883
+ display: 'grid',
2884
+ opacity: tableInstance.state.fullScreen ? 0.95 : 1,
2885
+ p: '0 !important',
2886
+ width: '100%',
2887
+ zIndex: 1
2888
+ };
2889
+ };
2854
2890
  var MRT_ToolbarTop = function MRT_ToolbarTop() {
2855
2891
  var _renderToolbarCustomA;
2856
2892
 
@@ -2871,15 +2907,9 @@ var MRT_ToolbarTop = function MRT_ToolbarTop() {
2871
2907
  }, toolbarProps, {
2872
2908
  sx: function sx(theme) {
2873
2909
  return _extends({
2874
- backgroundColor: theme.palette.background["default"],
2875
- backgroundImage: "linear-gradient(" + material.alpha(theme.palette.common.white, 0.05) + "," + material.alpha(theme.palette.common.white, 0.05) + ")",
2876
- display: 'grid',
2877
- p: '0 !important',
2878
2910
  position: tableInstance.state.fullScreen ? 'sticky' : undefined,
2879
- top: tableInstance.state.fullScreen ? '0' : undefined,
2880
- width: '100%',
2881
- zIndex: 1
2882
- }, toolbarProps == null ? void 0 : toolbarProps.sx);
2911
+ top: tableInstance.state.fullScreen ? '0' : undefined
2912
+ }, commonToolbarStyles(theme, tableInstance), toolbarProps == null ? void 0 : toolbarProps.sx);
2883
2913
  }
2884
2914
  }), positionToolbarAlertBanner === 'top' && React__default.createElement(MRT_ToolbarAlertBanner, null), React__default.createElement(material.Box, {
2885
2915
  sx: {
@@ -2894,7 +2924,7 @@ var MRT_ToolbarTop = function MRT_ToolbarTop() {
2894
2924
  position: 'relative',
2895
2925
  zIndex: 3
2896
2926
  }
2897
- }, !disableGlobalFilter && React__default.createElement(MRT_SearchTextField, null), !hideToolbarInternalActions && positionToolbarActions === 'top' && React__default.createElement(MRT_ToolbarInternalButtons, null))), React__default.createElement("div", null, !manualPagination && ['top', 'both'].includes(positionPagination != null ? positionPagination : '') && React__default.createElement(MRT_TablePagination, null)));
2927
+ }, !disableGlobalFilter && React__default.createElement(MRT_SearchTextField, null), !hideToolbarInternalActions && positionToolbarActions === 'top' && React__default.createElement(MRT_ToolbarInternalButtons, null))), React__default.createElement("div", null, !manualPagination && ['top', 'both'].includes(positionPagination != null ? positionPagination : '') && React__default.createElement(MRT_TablePagination, null)), React__default.createElement(MRT_LinearProgressBar, null));
2898
2928
  };
2899
2929
 
2900
2930
  var MRT_ToolbarBottom = function MRT_ToolbarBottom() {
@@ -2913,53 +2943,37 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom() {
2913
2943
  }, toolbarProps, {
2914
2944
  sx: function sx(theme) {
2915
2945
  return _extends({
2916
- backgroundColor: theme.palette.background["default"],
2917
- backgroundImage: "linear-gradient(" + material.alpha(theme.palette.common.white, 0.05) + "," + material.alpha(theme.palette.common.white, 0.05) + ")",
2918
2946
  bottom: tableInstance.state.fullScreen ? '0' : undefined,
2919
- display: 'flex',
2920
- justifyContent: 'space-between',
2921
- overflowY: 'hidden',
2922
- p: '0 0.5rem !important',
2923
- position: tableInstance.state.fullScreen ? 'fixed' : undefined,
2924
- width: 'calc(100% - 1rem)',
2925
- zIndex: 1
2926
- }, toolbarProps == null ? void 0 : toolbarProps.sx);
2947
+ position: tableInstance.state.fullScreen ? 'fixed' : undefined
2948
+ }, commonToolbarStyles(theme, tableInstance), toolbarProps == null ? void 0 : toolbarProps.sx);
2949
+ }
2950
+ }), React__default.createElement(MRT_LinearProgressBar, null), React__default.createElement(material.Box, {
2951
+ sx: {
2952
+ display: 'flex',
2953
+ justifyContent: 'space-between',
2954
+ width: '100%'
2927
2955
  }
2928
- }), !hideToolbarInternalActions && positionToolbarActions === 'bottom' ? React__default.createElement(MRT_ToolbarInternalButtons, null) : React__default.createElement("span", null), positionToolbarAlertBanner === 'bottom' && React__default.createElement(MRT_ToolbarAlertBanner, null), !manualPagination && ['bottom', 'both'].includes(positionPagination != null ? positionPagination : '') && React__default.createElement(MRT_TablePagination, null));
2956
+ }, !hideToolbarInternalActions && positionToolbarActions === 'bottom' ? React__default.createElement(MRT_ToolbarInternalButtons, null) : React__default.createElement("span", null), positionToolbarAlertBanner === 'bottom' && React__default.createElement(MRT_ToolbarAlertBanner, null), !manualPagination && ['bottom', 'both'].includes(positionPagination != null ? positionPagination : '') && React__default.createElement(MRT_TablePagination, null)));
2929
2957
  };
2930
2958
 
2931
2959
  var MRT_TableContainer = function MRT_TableContainer() {
2932
2960
  var _useMRT = useMRT(),
2933
2961
  hideToolbarBottom = _useMRT.hideToolbarBottom,
2934
2962
  hideToolbarTop = _useMRT.hideToolbarTop,
2935
- isFetching = _useMRT.isFetching,
2936
- isLoading = _useMRT.isLoading,
2937
- muiLinearProgressProps = _useMRT.muiLinearProgressProps,
2938
2963
  muiTableContainerProps = _useMRT.muiTableContainerProps,
2939
2964
  tableInstance = _useMRT.tableInstance;
2940
2965
 
2941
2966
  var fullScreen = tableInstance.state.fullScreen;
2942
- var originalBodyOverflowStyle = React.useRef();
2943
- React.useEffect(function () {
2944
- if (typeof window !== 'undefined') {
2945
- var _document, _document$body, _document$body$style;
2946
-
2947
- originalBodyOverflowStyle.current = (_document = document) == null ? void 0 : (_document$body = _document.body) == null ? void 0 : (_document$body$style = _document$body.style) == null ? void 0 : _document$body$style.overflow;
2948
- }
2949
- }, []);
2950
2967
  React.useEffect(function () {
2951
2968
  if (typeof window !== 'undefined') {
2952
2969
  if (fullScreen) {
2953
2970
  document.body.style.overflow = 'hidden';
2954
2971
  } else {
2955
- var _originalBodyOverflow;
2956
-
2957
- document.body.style.overflow = (_originalBodyOverflow = originalBodyOverflowStyle.current) != null ? _originalBodyOverflow : 'auto';
2972
+ document.body.style.overflow = 'auto';
2958
2973
  }
2959
2974
  }
2960
2975
  }, [fullScreen]);
2961
2976
  var tableContainerProps = muiTableContainerProps instanceof Function ? muiTableContainerProps(tableInstance) : muiTableContainerProps;
2962
- var linearProgressProps = muiLinearProgressProps instanceof Function ? muiLinearProgressProps(tableInstance) : muiLinearProgressProps;
2963
2977
  return React__default.createElement(material.TableContainer, Object.assign({
2964
2978
  component: material.Paper
2965
2979
  }, tableContainerProps, {
@@ -2968,6 +2982,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
2968
2982
  height: fullScreen ? '100%' : undefined,
2969
2983
  left: fullScreen ? '0' : undefined,
2970
2984
  m: fullScreen ? '0' : undefined,
2985
+ overflowY: !fullScreen ? 'hidden' : undefined,
2971
2986
  position: fullScreen ? 'fixed' : undefined,
2972
2987
  right: fullScreen ? '0' : undefined,
2973
2988
  top: fullScreen ? '0' : undefined,
@@ -2975,10 +2990,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
2975
2990
  width: fullScreen ? '100vw' : undefined,
2976
2991
  zIndex: fullScreen ? 1200 : 1
2977
2992
  }, tableContainerProps == null ? void 0 : tableContainerProps.sx)
2978
- }), !hideToolbarTop && React__default.createElement(MRT_ToolbarTop, null), React__default.createElement(material.Collapse, {
2979
- "in": isFetching || isLoading,
2980
- unmountOnExit: true
2981
- }, React__default.createElement(material.LinearProgress, Object.assign({}, linearProgressProps))), React__default.createElement(material.Box, {
2993
+ }), !hideToolbarTop && React__default.createElement(MRT_ToolbarTop, null), React__default.createElement(material.Box, {
2982
2994
  sx: {
2983
2995
  maxWidth: '100%',
2984
2996
  overflowX: 'auto'
@@ -3061,13 +3073,16 @@ var MRT_Default_Icons = {
3061
3073
  VisibilityOffIcon: VisibilityOffIcon
3062
3074
  };
3063
3075
 
3064
- var _excluded = ["defaultColumn", "icons", "localization", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner"];
3076
+ var _excluded = ["defaultColumn", "filterTypes", "globalFilter", "icons", "localization", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner"];
3065
3077
  var MaterialReactTable = (function (_ref) {
3066
3078
  var _ref$defaultColumn = _ref.defaultColumn,
3067
3079
  defaultColumn = _ref$defaultColumn === void 0 ? {
3068
3080
  minWidth: 50,
3069
3081
  maxWidth: 1000
3070
3082
  } : _ref$defaultColumn,
3083
+ filterTypes = _ref.filterTypes,
3084
+ _ref$globalFilter = _ref.globalFilter,
3085
+ globalFilter = _ref$globalFilter === void 0 ? 'fuzzy' : _ref$globalFilter,
3071
3086
  icons = _ref.icons,
3072
3087
  localization = _ref.localization,
3073
3088
  _ref$positionActionsC = _ref.positionActionsColumn,
@@ -3080,8 +3095,14 @@ var MaterialReactTable = (function (_ref) {
3080
3095
  positionToolbarAlertBanner = _ref$positionToolbarA2 === void 0 ? 'top' : _ref$positionToolbarA2,
3081
3096
  rest = _objectWithoutPropertiesLoose(_ref, _excluded);
3082
3097
 
3083
- return React__default.createElement(MaterialReactTableProvider, Object.assign({
3098
+ return React__default.createElement(MaterialReactTableProvider //@ts-ignore
3099
+ , Object.assign({
3100
+ //@ts-ignore
3084
3101
  defaultColumn: defaultColumn,
3102
+ //@ts-ignore
3103
+ filterTypes: _extends({}, defaultFilterFNs, filterTypes),
3104
+ //@ts-ignore
3105
+ globalFilter: globalFilter,
3085
3106
  icons: _extends({}, MRT_Default_Icons, icons),
3086
3107
  localization: _extends({}, MRT_DefaultLocalization_EN, localization),
3087
3108
  positionActionsColumn: positionActionsColumn,