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