material-react-table 0.6.0 → 0.6.3

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,122 +104,35 @@ function _objectWithoutPropertiesLoose(source, excluded) {
104
104
  return target;
105
105
  }
106
106
 
107
- var fuzzyFilterFN = function fuzzyFilterFN(rows, id, filterValue) {
108
- return matchSorter.matchSorter(rows, filterValue.toString().trim(), {
109
- keys: ["values." + id],
110
- sorter: function sorter(rankedItems) {
111
- return rankedItems;
112
- }
113
- });
114
- };
107
+ var findLowestLevelCols = function findLowestLevelCols(columns) {
108
+ var lowestLevelColumns = columns;
109
+ var currentCols = columns;
115
110
 
116
- fuzzyFilterFN.autoRemove = function (val) {
117
- return !val;
118
- };
119
-
120
- var containsFilterFN = function containsFilterFN(rows, id, filterValue) {
121
- return rows.filter(function (row) {
122
- return row.values[id].toString().toLowerCase().trim().includes(filterValue.toString().toLowerCase().trim());
123
- });
124
- };
125
-
126
- containsFilterFN.autoRemove = function (val) {
127
- return !val;
128
- };
129
-
130
- var startsWithFilterFN = function startsWithFilterFN(rows, id, filterValue) {
131
- return rows.filter(function (row) {
132
- return row.values[id].toString().toLowerCase().trim().startsWith(filterValue.toString().toLowerCase().trim());
133
- });
134
- };
135
-
136
- startsWithFilterFN.autoRemove = function (val) {
137
- return !val;
138
- };
139
-
140
- var endsWithFilterFN = function endsWithFilterFN(rows, id, filterValue) {
141
- return rows.filter(function (row) {
142
- return row.values[id].toString().toLowerCase().trim().endsWith(filterValue.toString().toLowerCase().trim());
143
- });
144
- };
145
-
146
- endsWithFilterFN.autoRemove = function (val) {
147
- return !val;
148
- };
149
-
150
- var equalsFilterFN = function equalsFilterFN(rows, id, filterValue) {
151
- return rows.filter(function (row) {
152
- return row.values[id].toString().toLowerCase().trim() === filterValue.toString().toLowerCase().trim();
153
- });
154
- };
155
-
156
- equalsFilterFN.autoRemove = function (val) {
157
- return !val;
158
- };
159
-
160
- var notEqualsFilterFN = function notEqualsFilterFN(rows, id, filterValue) {
161
- return rows.filter(function (row) {
162
- return row.values[id].toString().toLowerCase().trim() !== filterValue.toString().toLowerCase().trim();
163
- });
164
- };
165
-
166
- notEqualsFilterFN.autoRemove = function (val) {
167
- return !val;
168
- };
169
-
170
- var greaterThanFilterFN = function greaterThanFilterFN(rows, id, filterValue) {
171
- return rows.filter(function (row) {
172
- return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] > +filterValue : row.values[id].toString().toLowerCase().trim() > filterValue.toString().toLowerCase().trim();
173
- });
174
- };
175
-
176
- greaterThanFilterFN.autoRemove = function (val) {
177
- return !val;
178
- };
179
-
180
- var lessThanFilterFN = function lessThanFilterFN(rows, id, filterValue) {
181
- return rows.filter(function (row) {
182
- return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] < +filterValue : row.values[id].toString().toLowerCase().trim() < filterValue.toString().toLowerCase().trim();
183
- });
184
- };
111
+ while (!!((_currentCols = currentCols) != null && _currentCols.length) && currentCols.some(function (col) {
112
+ return col.columns;
113
+ })) {
114
+ var _currentCols;
185
115
 
186
- lessThanFilterFN.autoRemove = function (val) {
187
- return !val;
188
- };
116
+ var nextCols = currentCols.filter(function (col) {
117
+ return !!col.columns;
118
+ }).map(function (col) {
119
+ return col.columns;
120
+ }).flat();
189
121
 
190
- var emptyFilterFN = function emptyFilterFN(rows, id, _filterValue) {
191
- return rows.filter(function (row) {
192
- return !row.values[id].toString().toLowerCase().trim();
193
- });
194
- };
122
+ if (nextCols.every(function (col) {
123
+ return !(col != null && col.columns);
124
+ })) {
125
+ lowestLevelColumns = [].concat(lowestLevelColumns, nextCols);
126
+ }
195
127
 
196
- emptyFilterFN.autoRemove = function (val) {
197
- return !val;
198
- };
128
+ currentCols = nextCols;
129
+ }
199
130
 
200
- var notEmptyFilterFN = function notEmptyFilterFN(rows, id, _filterValue) {
201
- return rows.filter(function (row) {
202
- return !!row.values[id].toString().toLowerCase().trim();
131
+ return lowestLevelColumns.filter(function (col) {
132
+ return !col.columns;
203
133
  });
204
134
  };
205
135
 
206
- notEmptyFilterFN.autoRemove = function (val) {
207
- return !val;
208
- };
209
-
210
- var defaultFilterFNs = {
211
- contains: containsFilterFN,
212
- empty: emptyFilterFN,
213
- endsWith: endsWithFilterFN,
214
- greaterThan: greaterThanFilterFN,
215
- lessThan: lessThanFilterFN,
216
- equals: equalsFilterFN,
217
- fuzzy: fuzzyFilterFN,
218
- notEmpty: notEmptyFilterFN,
219
- notEquals: notEqualsFilterFN,
220
- startsWith: startsWithFilterFN
221
- };
222
-
223
136
  var MaterialReactTableContext = /*#__PURE__*/function () {
224
137
  return React.createContext({});
225
138
  }();
@@ -250,59 +163,46 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
250
163
  showSearch = _useState5[0],
251
164
  setShowSearch = _useState5[1];
252
165
 
253
- var filterTypes = React.useMemo(function () {
254
- return _extends({}, defaultFilterFNs, props.filterTypes);
255
- }, [props.filterTypes]);
256
-
257
- var getInitialFilterTypeState = function getInitialFilterTypeState() {
258
- var lowestLevelColumns = props.columns;
259
- var currentCols = props.columns;
260
-
261
- while (!!currentCols.length && currentCols.some(function (col) {
262
- return col.columns;
263
- })) {
264
- var nextCols = currentCols.filter(function (col) {
265
- return !!col.columns;
266
- }).map(function (col) {
267
- return col.columns;
268
- }).flat();
269
-
270
- if (nextCols.every(function (col) {
271
- return !col.columns;
272
- })) {
273
- lowestLevelColumns = [].concat(lowestLevelColumns, nextCols);
274
- }
275
-
276
- currentCols = nextCols;
277
- }
278
-
279
- lowestLevelColumns = lowestLevelColumns.filter(function (col) {
280
- return !col.columns;
281
- });
282
- return Object.assign.apply(Object, [{}].concat(lowestLevelColumns.map(function (c) {
166
+ var _useState6 = React.useState(function () {
167
+ return Object.assign.apply(Object, [{}].concat(findLowestLevelCols(props.columns).map(function (c) {
283
168
  var _ref, _c$filter, _props$initialState5, _props$initialState5$, _ref2;
284
169
 
285
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;
286
171
  })));
287
- };
288
-
289
- var _useState6 = React.useState(function () {
290
- return getInitialFilterTypeState();
291
172
  }),
292
173
  currentFilterTypes = _useState6[0],
293
174
  setCurrentFilterTypes = _useState6[1];
294
175
 
295
- var columns = React.useMemo(function () {
296
- return props.columns.map(function (column) {
297
- 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
+
298
186
  return column;
299
187
  });
300
- }, [props.columns, filterTypes, currentFilterTypes]);
301
- var tableInstance = reactTable.useTable.apply(void 0, [_extends({}, props, {
302
- 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)).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, {
303
203
  // @ts-ignore
304
- filterTypes: filterTypes,
305
- globalFilterValue: 'fuzzy',
204
+ columns: columns,
205
+ data: data,
306
206
  useControlledState: function useControlledState(state) {
307
207
  return React.useMemo(function () {
308
208
  return _extends({}, state, {
@@ -367,6 +267,124 @@ var MRT_FILTER_TYPE;
367
267
  MRT_FILTER_TYPE["STARTS_WITH"] = "startsWith";
368
268
  })(MRT_FILTER_TYPE || (MRT_FILTER_TYPE = {}));
369
269
 
270
+ var fuzzyFilterFN = function fuzzyFilterFN(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
+ fuzzyFilterFN.autoRemove = function (val) {
282
+ return !val;
283
+ };
284
+
285
+ var containsFilterFN = function containsFilterFN(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
+ containsFilterFN.autoRemove = function (val) {
292
+ return !val;
293
+ };
294
+
295
+ var startsWithFilterFN = function startsWithFilterFN(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
+ startsWithFilterFN.autoRemove = function (val) {
302
+ return !val;
303
+ };
304
+
305
+ var endsWithFilterFN = function endsWithFilterFN(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
+ endsWithFilterFN.autoRemove = function (val) {
312
+ return !val;
313
+ };
314
+
315
+ var equalsFilterFN = function equalsFilterFN(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
+ equalsFilterFN.autoRemove = function (val) {
322
+ return !val;
323
+ };
324
+
325
+ var notEqualsFilterFN = function notEqualsFilterFN(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
+ notEqualsFilterFN.autoRemove = function (val) {
332
+ return !val;
333
+ };
334
+
335
+ var greaterThanFilterFN = function greaterThanFilterFN(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
+ greaterThanFilterFN.autoRemove = function (val) {
342
+ return !val;
343
+ };
344
+
345
+ var lessThanFilterFN = function lessThanFilterFN(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
+ lessThanFilterFN.autoRemove = function (val) {
352
+ return !val;
353
+ };
354
+
355
+ var emptyFilterFN = function emptyFilterFN(rows, id, _filterValue) {
356
+ return rows.filter(function (row) {
357
+ return !row.values[id].toString().toLowerCase().trim();
358
+ });
359
+ };
360
+
361
+ emptyFilterFN.autoRemove = function (val) {
362
+ return !val;
363
+ };
364
+
365
+ var notEmptyFilterFN = function notEmptyFilterFN(rows, id, _filterValue) {
366
+ return rows.filter(function (row) {
367
+ return !!row.values[id].toString().toLowerCase().trim();
368
+ });
369
+ };
370
+
371
+ notEmptyFilterFN.autoRemove = function (val) {
372
+ return !val;
373
+ };
374
+
375
+ var defaultFilterFNs = {
376
+ contains: containsFilterFN,
377
+ empty: emptyFilterFN,
378
+ endsWith: endsWithFilterFN,
379
+ equals: equalsFilterFN,
380
+ fuzzy: fuzzyFilterFN,
381
+ greaterThan: greaterThanFilterFN,
382
+ lessThan: lessThanFilterFN,
383
+ notEmpty: notEmptyFilterFN,
384
+ notEquals: notEqualsFilterFN,
385
+ startsWith: startsWithFilterFN
386
+ };
387
+
370
388
  var commonMenuItemStyles = {
371
389
  py: '6px',
372
390
  my: 0,
@@ -594,6 +612,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
594
612
  arrow: true,
595
613
  title: localization.changeFilterMode
596
614
  }, React__default.createElement("span", null, React__default.createElement(material.IconButton, {
615
+ "aria-label": localization.changeFilterMode,
597
616
  onClick: handleFilterMenuOpen,
598
617
  size: "small",
599
618
  sx: {
@@ -843,15 +862,16 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
843
862
  setAnchorEl(null);
844
863
  };
845
864
 
865
+ var handleShowAllColumns = function handleShowAllColumns() {
866
+ tableInstance.toggleHideAllColumns(false);
867
+ setAnchorEl(null);
868
+ };
869
+
846
870
  var handleOpenFilterModeMenu = function handleOpenFilterModeMenu(event) {
847
871
  event.stopPropagation();
848
872
  setFilterMenuAnchorEl(event.currentTarget);
849
873
  };
850
874
 
851
- var handleShowAllColumns = function handleShowAllColumns() {
852
- tableInstance.toggleHideAllColumns(false);
853
- };
854
-
855
875
  var handleOpenShowHideColumnsMenu = function handleOpenShowHideColumnsMenu(event) {
856
876
  event.stopPropagation();
857
877
  setShowHideColumnsMenuAnchorEl(event.currentTarget);
@@ -2413,9 +2433,7 @@ var MRT_TableBody = function MRT_TableBody() {
2413
2433
  });
2414
2434
 
2415
2435
  return React__default.createElement(material.TableBody, Object.assign({}, tableBodyProps, {
2416
- sx: _extends({
2417
- overflowY: 'hidden'
2418
- }, tableBodyProps == null ? void 0 : tableBodyProps.sx)
2436
+ sx: _extends({}, tableBodyProps == null ? void 0 : tableBodyProps.sx)
2419
2437
  }), rows.map(function (row) {
2420
2438
  tableInstance.prepareRow(row);
2421
2439
  return React__default.createElement(MRT_TableBodyRow, {
@@ -2775,7 +2793,7 @@ var MRT_TablePagination = function MRT_TablePagination() {
2775
2793
  showLastButton: tableInstance.rows.length / tableInstance.state.pageSize > 2
2776
2794
  }, tablePaginationProps, {
2777
2795
  sx: _extends({
2778
- p: 0,
2796
+ m: '0 0.5rem',
2779
2797
  position: 'relative',
2780
2798
  zIndex: 2
2781
2799
  }, tablePaginationProps == null ? void 0 : tablePaginationProps.sx)
@@ -2837,6 +2855,34 @@ var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner() {
2837
2855
  }, selectMessage, groupedByMessage)));
2838
2856
  };
2839
2857
 
2858
+ var MRT_LinearProgressBar = function MRT_LinearProgressBar() {
2859
+ var _useMRT = useMRT(),
2860
+ muiLinearProgressProps = _useMRT.muiLinearProgressProps,
2861
+ isFetching = _useMRT.isFetching,
2862
+ isLoading = _useMRT.isLoading,
2863
+ tableInstance = _useMRT.tableInstance;
2864
+
2865
+ var linearProgressProps = muiLinearProgressProps instanceof Function ? muiLinearProgressProps(tableInstance) : muiLinearProgressProps;
2866
+ return React__default.createElement(material.Collapse, {
2867
+ "in": isFetching || isLoading,
2868
+ unmountOnExit: true
2869
+ }, React__default.createElement(material.LinearProgress, Object.assign({
2870
+ "aria-label": "Loading",
2871
+ "aria-busy": "true"
2872
+ }, linearProgressProps)));
2873
+ };
2874
+
2875
+ var commonToolbarStyles = function commonToolbarStyles(theme, tableInstance) {
2876
+ return {
2877
+ backgroundColor: theme.palette.background["default"],
2878
+ backgroundImage: "linear-gradient(" + material.alpha(theme.palette.common.white, 0.05) + "," + material.alpha(theme.palette.common.white, 0.05) + ")",
2879
+ display: 'grid',
2880
+ opacity: tableInstance.state.fullScreen ? 0.95 : 1,
2881
+ p: '0 !important',
2882
+ width: '100%',
2883
+ zIndex: 1
2884
+ };
2885
+ };
2840
2886
  var MRT_ToolbarTop = function MRT_ToolbarTop() {
2841
2887
  var _renderToolbarCustomA;
2842
2888
 
@@ -2857,15 +2903,9 @@ var MRT_ToolbarTop = function MRT_ToolbarTop() {
2857
2903
  }, toolbarProps, {
2858
2904
  sx: function sx(theme) {
2859
2905
  return _extends({
2860
- backgroundColor: theme.palette.background["default"],
2861
- backgroundImage: "linear-gradient(" + material.alpha(theme.palette.common.white, 0.05) + "," + material.alpha(theme.palette.common.white, 0.05) + ")",
2862
- display: 'grid',
2863
- p: '0 !important',
2864
2906
  position: tableInstance.state.fullScreen ? 'sticky' : undefined,
2865
- top: tableInstance.state.fullScreen ? '0' : undefined,
2866
- width: '100%',
2867
- zIndex: 1
2868
- }, toolbarProps == null ? void 0 : toolbarProps.sx);
2907
+ top: tableInstance.state.fullScreen ? '0' : undefined
2908
+ }, commonToolbarStyles(theme, tableInstance), toolbarProps == null ? void 0 : toolbarProps.sx);
2869
2909
  }
2870
2910
  }), positionToolbarAlertBanner === 'top' && React__default.createElement(MRT_ToolbarAlertBanner, null), React__default.createElement(material.Box, {
2871
2911
  sx: {
@@ -2880,7 +2920,7 @@ var MRT_ToolbarTop = function MRT_ToolbarTop() {
2880
2920
  position: 'relative',
2881
2921
  zIndex: 3
2882
2922
  }
2883
- }, !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)));
2923
+ }, !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));
2884
2924
  };
2885
2925
 
2886
2926
  var MRT_ToolbarBottom = function MRT_ToolbarBottom() {
@@ -2899,53 +2939,37 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom() {
2899
2939
  }, toolbarProps, {
2900
2940
  sx: function sx(theme) {
2901
2941
  return _extends({
2902
- backgroundColor: theme.palette.background["default"],
2903
- backgroundImage: "linear-gradient(" + material.alpha(theme.palette.common.white, 0.05) + "," + material.alpha(theme.palette.common.white, 0.05) + ")",
2904
2942
  bottom: tableInstance.state.fullScreen ? '0' : undefined,
2905
- display: 'flex',
2906
- justifyContent: 'space-between',
2907
- overflowY: 'hidden',
2908
- p: '0 0.5rem !important',
2909
- position: tableInstance.state.fullScreen ? 'fixed' : undefined,
2910
- width: 'calc(100% - 1rem)',
2911
- zIndex: 1
2912
- }, toolbarProps == null ? void 0 : toolbarProps.sx);
2943
+ position: tableInstance.state.fullScreen ? 'fixed' : undefined
2944
+ }, commonToolbarStyles(theme, tableInstance), toolbarProps == null ? void 0 : toolbarProps.sx);
2913
2945
  }
2914
- }), !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));
2946
+ }), React__default.createElement(MRT_LinearProgressBar, null), React__default.createElement(material.Box, {
2947
+ sx: {
2948
+ display: 'flex',
2949
+ justifyContent: 'space-between',
2950
+ width: '100%'
2951
+ }
2952
+ }, !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)));
2915
2953
  };
2916
2954
 
2917
2955
  var MRT_TableContainer = function MRT_TableContainer() {
2918
2956
  var _useMRT = useMRT(),
2919
2957
  hideToolbarBottom = _useMRT.hideToolbarBottom,
2920
2958
  hideToolbarTop = _useMRT.hideToolbarTop,
2921
- isFetching = _useMRT.isFetching,
2922
- isLoading = _useMRT.isLoading,
2923
- muiLinearProgressProps = _useMRT.muiLinearProgressProps,
2924
2959
  muiTableContainerProps = _useMRT.muiTableContainerProps,
2925
2960
  tableInstance = _useMRT.tableInstance;
2926
2961
 
2927
2962
  var fullScreen = tableInstance.state.fullScreen;
2928
- var originalBodyOverflowStyle = React.useRef();
2929
- React.useEffect(function () {
2930
- if (typeof window !== 'undefined') {
2931
- var _document, _document$body, _document$body$style;
2932
-
2933
- 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;
2934
- }
2935
- }, []);
2936
2963
  React.useEffect(function () {
2937
2964
  if (typeof window !== 'undefined') {
2938
2965
  if (fullScreen) {
2939
2966
  document.body.style.overflow = 'hidden';
2940
2967
  } else {
2941
- var _originalBodyOverflow;
2942
-
2943
- document.body.style.overflow = (_originalBodyOverflow = originalBodyOverflowStyle.current) != null ? _originalBodyOverflow : 'auto';
2968
+ document.body.style.overflow = 'auto';
2944
2969
  }
2945
2970
  }
2946
2971
  }, [fullScreen]);
2947
2972
  var tableContainerProps = muiTableContainerProps instanceof Function ? muiTableContainerProps(tableInstance) : muiTableContainerProps;
2948
- var linearProgressProps = muiLinearProgressProps instanceof Function ? muiLinearProgressProps(tableInstance) : muiLinearProgressProps;
2949
2973
  return React__default.createElement(material.TableContainer, Object.assign({
2950
2974
  component: material.Paper
2951
2975
  }, tableContainerProps, {
@@ -2954,6 +2978,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
2954
2978
  height: fullScreen ? '100%' : undefined,
2955
2979
  left: fullScreen ? '0' : undefined,
2956
2980
  m: fullScreen ? '0' : undefined,
2981
+ overflowY: 'hidden',
2957
2982
  position: fullScreen ? 'fixed' : undefined,
2958
2983
  right: fullScreen ? '0' : undefined,
2959
2984
  top: fullScreen ? '0' : undefined,
@@ -2961,10 +2986,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
2961
2986
  width: fullScreen ? '100vw' : undefined,
2962
2987
  zIndex: fullScreen ? 1200 : 1
2963
2988
  }, tableContainerProps == null ? void 0 : tableContainerProps.sx)
2964
- }), !hideToolbarTop && React__default.createElement(MRT_ToolbarTop, null), React__default.createElement(material.Collapse, {
2965
- "in": isFetching || isLoading,
2966
- unmountOnExit: true
2967
- }, React__default.createElement(material.LinearProgress, Object.assign({}, linearProgressProps))), React__default.createElement(material.Box, {
2989
+ }), !hideToolbarTop && React__default.createElement(MRT_ToolbarTop, null), React__default.createElement(material.Box, {
2968
2990
  sx: {
2969
2991
  maxWidth: '100%',
2970
2992
  overflowX: 'auto'
@@ -3047,13 +3069,16 @@ var MRT_Default_Icons = {
3047
3069
  VisibilityOffIcon: VisibilityOffIcon
3048
3070
  };
3049
3071
 
3050
- var _excluded = ["defaultColumn", "icons", "localization", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner"];
3072
+ var _excluded = ["defaultColumn", "filterTypes", "globalFilter", "icons", "localization", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner"];
3051
3073
  var MaterialReactTable = (function (_ref) {
3052
3074
  var _ref$defaultColumn = _ref.defaultColumn,
3053
3075
  defaultColumn = _ref$defaultColumn === void 0 ? {
3054
3076
  minWidth: 50,
3055
3077
  maxWidth: 1000
3056
3078
  } : _ref$defaultColumn,
3079
+ filterTypes = _ref.filterTypes,
3080
+ _ref$globalFilter = _ref.globalFilter,
3081
+ globalFilter = _ref$globalFilter === void 0 ? 'fuzzy' : _ref$globalFilter,
3057
3082
  icons = _ref.icons,
3058
3083
  localization = _ref.localization,
3059
3084
  _ref$positionActionsC = _ref.positionActionsColumn,
@@ -3066,8 +3091,14 @@ var MaterialReactTable = (function (_ref) {
3066
3091
  positionToolbarAlertBanner = _ref$positionToolbarA2 === void 0 ? 'top' : _ref$positionToolbarA2,
3067
3092
  rest = _objectWithoutPropertiesLoose(_ref, _excluded);
3068
3093
 
3069
- return React__default.createElement(MaterialReactTableProvider, Object.assign({
3094
+ return React__default.createElement(MaterialReactTableProvider //@ts-ignore
3095
+ , Object.assign({
3096
+ //@ts-ignore
3070
3097
  defaultColumn: defaultColumn,
3098
+ //@ts-ignore
3099
+ filterTypes: _extends({}, defaultFilterFNs, filterTypes),
3100
+ //@ts-ignore
3101
+ globalFilter: globalFilter,
3071
3102
  icons: _extends({}, MRT_Default_Icons, icons),
3072
3103
  localization: _extends({}, MRT_DefaultLocalization_EN, localization),
3073
3104
  positionActionsColumn: positionActionsColumn,