material-react-table 0.5.1 → 0.5.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.
Files changed (45) hide show
  1. package/dist/MaterialReactTable.d.ts +15 -9
  2. package/dist/filtersFNs.d.ts +67 -0
  3. package/dist/localization.d.ts +10 -1
  4. package/dist/material-react-table.cjs.development.js +455 -147
  5. package/dist/material-react-table.cjs.development.js.map +1 -1
  6. package/dist/material-react-table.cjs.production.min.js +1 -1
  7. package/dist/material-react-table.cjs.production.min.js.map +1 -1
  8. package/dist/material-react-table.esm.js +457 -149
  9. package/dist/material-react-table.esm.js.map +1 -1
  10. package/dist/menus/MRT_FilterMenu.d.ts +10 -0
  11. package/dist/useMRT.d.ts +13 -14
  12. package/package.json +6 -2
  13. package/src/@types/react-table-config.d.ts +3 -3
  14. package/src/MaterialReactTable.tsx +30 -9
  15. package/src/body/MRT_TableBody.tsx +7 -2
  16. package/src/body/MRT_TableBodyCell.tsx +3 -2
  17. package/src/body/MRT_TableBodyRow.tsx +11 -8
  18. package/src/buttons/MRT_EditActionButtons.tsx +4 -2
  19. package/src/buttons/MRT_ExpandAllButton.tsx +3 -4
  20. package/src/buttons/MRT_ExpandButton.tsx +3 -1
  21. package/src/buttons/MRT_FullScreenToggleButton.tsx +3 -1
  22. package/src/buttons/MRT_ToggleColumnActionMenuButton.tsx +4 -3
  23. package/src/buttons/MRT_ToggleDensePaddingButton.tsx +3 -1
  24. package/src/buttons/MRT_ToggleFiltersButton.tsx +4 -2
  25. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +17 -11
  26. package/src/buttons/MRT_ToggleSearchButton.tsx +5 -2
  27. package/src/filtersFNs.ts +112 -0
  28. package/src/footer/MRT_TableFooter.tsx +6 -1
  29. package/src/footer/MRT_TableFooterCell.tsx +7 -2
  30. package/src/head/MRT_TableHeadCell.tsx +49 -47
  31. package/src/head/MRT_TableHeadCellActions.tsx +6 -1
  32. package/src/head/MRT_TableHeadRow.tsx +7 -2
  33. package/src/index.tsx +0 -2
  34. package/src/inputs/MRT_EditCellTextField.tsx +3 -1
  35. package/src/inputs/MRT_FilterTextField.tsx +117 -52
  36. package/src/inputs/MRT_SearchTextField.tsx +3 -3
  37. package/src/inputs/MRT_SelectCheckbox.tsx +5 -8
  38. package/src/localization.ts +20 -2
  39. package/src/menus/MRT_ColumnActionMenu.tsx +125 -85
  40. package/src/menus/MRT_FilterMenu.tsx +109 -0
  41. package/src/table/MRT_Table.tsx +7 -2
  42. package/src/table/MRT_TableContainer.tsx +16 -3
  43. package/src/toolbar/MRT_ToolbarBottom.tsx +2 -3
  44. package/src/toolbar/MRT_ToolbarTop.tsx +2 -3
  45. package/src/useMRT.tsx +104 -35
@@ -7,7 +7,9 @@ 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');
10
11
  var material = require('@mui/material');
12
+ var ArrowRightIcon = _interopDefault(require('@mui/icons-material/ArrowRight'));
11
13
  var CancelIcon = _interopDefault(require('@mui/icons-material/Cancel'));
12
14
  var ClearAllIcon = _interopDefault(require('@mui/icons-material/ClearAll'));
13
15
  var CloseIcon = _interopDefault(require('@mui/icons-material/Close'));
@@ -100,6 +102,100 @@ function _objectWithoutPropertiesLoose(source, excluded) {
100
102
  return target;
101
103
  }
102
104
 
105
+ var fuzzyFilterFN = function fuzzyFilterFN(rows, id, filterValue) {
106
+ return matchSorter.matchSorter(rows, filterValue.toString().trim(), {
107
+ keys: ["values." + id],
108
+ sorter: function sorter(rankedItems) {
109
+ return rankedItems;
110
+ }
111
+ });
112
+ };
113
+
114
+ fuzzyFilterFN.autoRemove = function (val) {
115
+ return !val;
116
+ };
117
+
118
+ var containsFilterFN = function containsFilterFN(rows, id, filterValue) {
119
+ return rows.filter(function (row) {
120
+ return row.values[id].toString().toLowerCase().trim().includes(filterValue.toString().toLowerCase().trim());
121
+ });
122
+ };
123
+
124
+ containsFilterFN.autoRemove = function (val) {
125
+ return !val;
126
+ };
127
+
128
+ var startsWithFilterFN = function startsWithFilterFN(rows, id, filterValue) {
129
+ return rows.filter(function (row) {
130
+ return row.values[id].toString().toLowerCase().trim().startsWith(filterValue.toString().toLowerCase().trim());
131
+ });
132
+ };
133
+
134
+ startsWithFilterFN.autoRemove = function (val) {
135
+ return !val;
136
+ };
137
+
138
+ var endsWithFilterFN = function endsWithFilterFN(rows, id, filterValue) {
139
+ return rows.filter(function (row) {
140
+ return row.values[id].toString().toLowerCase().trim().endsWith(filterValue.toString().toLowerCase().trim());
141
+ });
142
+ };
143
+
144
+ endsWithFilterFN.autoRemove = function (val) {
145
+ return !val;
146
+ };
147
+
148
+ var equalsFilterFN = function equalsFilterFN(rows, id, filterValue) {
149
+ return rows.filter(function (row) {
150
+ return row.values[id].toString().toLowerCase().trim() === filterValue.toString().toLowerCase().trim();
151
+ });
152
+ };
153
+
154
+ equalsFilterFN.autoRemove = function (val) {
155
+ return !val;
156
+ };
157
+
158
+ var notEqualsFilterFN = function notEqualsFilterFN(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
+ notEqualsFilterFN.autoRemove = function (val) {
165
+ return !val;
166
+ };
167
+
168
+ var emptyFilterFN = function emptyFilterFN(rows, id, _filterValue) {
169
+ return rows.filter(function (row) {
170
+ return !row.values[id].toString().toLowerCase().trim();
171
+ });
172
+ };
173
+
174
+ emptyFilterFN.autoRemove = function (val) {
175
+ return !val;
176
+ };
177
+
178
+ var notEmptyFilterFN = function notEmptyFilterFN(rows, id, _filterValue) {
179
+ return rows.filter(function (row) {
180
+ return !!row.values[id].toString().toLowerCase().trim();
181
+ });
182
+ };
183
+
184
+ notEmptyFilterFN.autoRemove = function (val) {
185
+ return !val;
186
+ };
187
+
188
+ var defaultFilterFNs = {
189
+ contains: containsFilterFN,
190
+ empty: emptyFilterFN,
191
+ endsWith: endsWithFilterFN,
192
+ equals: equalsFilterFN,
193
+ fuzzy: fuzzyFilterFN,
194
+ notEmpty: notEmptyFilterFN,
195
+ notEquals: notEqualsFilterFN,
196
+ startsWith: startsWithFilterFN
197
+ };
198
+
103
199
  var MaterialReactTableContext = /*#__PURE__*/function () {
104
200
  return React.createContext({});
105
201
  }();
@@ -109,19 +205,6 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
109
205
 
110
206
  var hooks = [reactTable.useFilters, reactTable.useGlobalFilter, reactTable.useGroupBy, reactTable.useSortBy, reactTable.useExpanded, reactTable.usePagination, reactTable.useRowSelect];
111
207
  if (props.enableColumnResizing) hooks.unshift(reactTable.useResizeColumns, reactTable.useFlexLayout);
112
- var tableInstance = reactTable.useTable.apply(void 0, [props].concat(hooks));
113
- var anyRowsCanExpand = React.useMemo( // @ts-ignore
114
- function () {
115
- return tableInstance.rows.some(function (row) {
116
- return row.canExpand;
117
- });
118
- }, [tableInstance.rows]);
119
- var anyRowsExpanded = React.useMemo( // @ts-ignore
120
- function () {
121
- return tableInstance.rows.some(function (row) {
122
- return row.isExpanded;
123
- });
124
- }, [tableInstance.rows]);
125
208
 
126
209
  var _useState = React.useState(null),
127
210
  currentEditingRow = _useState[0],
@@ -139,37 +222,184 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
139
222
  showFilters = _useState4[0],
140
223
  setShowFilters = _useState4[1];
141
224
 
142
- var _useState5 = React.useState((_props$initialState$s2 = (_props$initialState4 = props.initialState) == null ? void 0 : _props$initialState4.showSearchTextField) != null ? _props$initialState$s2 : false),
225
+ var _useState5 = React.useState((_props$initialState$s2 = (_props$initialState4 = props.initialState) == null ? void 0 : _props$initialState4.showSearch) != null ? _props$initialState$s2 : false),
143
226
  showSearch = _useState5[0],
144
227
  setShowSearch = _useState5[1];
145
228
 
229
+ var filterTypes = React.useMemo(function () {
230
+ return _extends({}, defaultFilterFNs, props.filterTypes);
231
+ }, [props.filterTypes]);
232
+
233
+ var _useState6 = React.useState(function () {
234
+ return Object.assign.apply(Object, [{}].concat(props.columns.map(function (c) {
235
+ var _c$accessor;
236
+
237
+ return (_c$accessor = c.accessor) == null ? void 0 : _c$accessor.toString();
238
+ }).map(function (accessor) {
239
+ var _props$initialState$f2, _props$initialState5, _props$initialState5$, _ref;
240
+
241
+ return _ref = {}, _ref[accessor] = (_props$initialState$f2 = props == null ? void 0 : (_props$initialState5 = props.initialState) == null ? void 0 : (_props$initialState5$ = _props$initialState5.filters) == null ? void 0 : _props$initialState5$[accessor]) != null ? _props$initialState$f2 : 'fuzzy', _ref;
242
+ })));
243
+ }),
244
+ currentFilterTypes = _useState6[0],
245
+ setCurrentFilterTypes = _useState6[1];
246
+
247
+ var columns = React.useMemo(function () {
248
+ return props.columns.map(function (column) {
249
+ column.filter = filterTypes[currentFilterTypes[column.accessor]];
250
+ return column;
251
+ });
252
+ }, [props.columns, filterTypes, currentFilterTypes]);
253
+ var tableInstance = reactTable.useTable.apply(void 0, [_extends({}, props, {
254
+ columns: columns,
255
+ // @ts-ignore
256
+ filterTypes: filterTypes,
257
+ useControlledState: function useControlledState(state) {
258
+ return React.useMemo(function () {
259
+ return _extends({}, state, {
260
+ currentEditingRow: currentEditingRow,
261
+ currentFilterTypes: currentFilterTypes,
262
+ densePadding: densePadding,
263
+ fullScreen: fullScreen,
264
+ showFilters: showFilters,
265
+ showSearch: showSearch
266
+ }, props == null ? void 0 : props.useControlledState == null ? void 0 : props.useControlledState(state));
267
+ }, [currentEditingRow, currentFilterTypes, densePadding, fullScreen, showFilters, showSearch, state]);
268
+ }
269
+ })].concat(hooks));
270
+ var idPrefix = React.useMemo(function () {
271
+ var _props$idPrefix;
272
+
273
+ return (_props$idPrefix = props.idPrefix) != null ? _props$idPrefix : Math.random().toString(36).substring(2, 9);
274
+ }, [props.idPrefix]);
275
+ var anyRowsCanExpand = React.useMemo(function () {
276
+ return tableInstance.rows.some(function (row) {
277
+ return row.canExpand;
278
+ });
279
+ }, [tableInstance.rows]);
280
+ var anyRowsExpanded = React.useMemo(function () {
281
+ return tableInstance.rows.some(function (row) {
282
+ return row.isExpanded;
283
+ });
284
+ }, [tableInstance.rows]);
146
285
  return React__default.createElement(MaterialReactTableContext.Provider, {
147
286
  value: _extends({}, props, {
148
287
  anyRowsCanExpand: anyRowsCanExpand,
149
288
  anyRowsExpanded: anyRowsExpanded,
150
- currentEditingRow: currentEditingRow,
151
- densePadding: densePadding,
289
+ idPrefix: idPrefix,
290
+ //@ts-ignore
152
291
  setCurrentEditingRow: setCurrentEditingRow,
292
+ setCurrentFilterTypes: setCurrentFilterTypes,
153
293
  setDensePadding: setDensePadding,
154
- fullScreen: fullScreen,
155
294
  setFullScreen: setFullScreen,
156
295
  setShowFilters: setShowFilters,
157
296
  setShowSearch: setShowSearch,
158
- showFilters: showFilters,
159
- showSearch: showSearch,
160
297
  //@ts-ignore
161
298
  tableInstance: tableInstance
162
299
  })
163
300
  }, props.children);
164
301
  };
165
302
  var useMRT = function useMRT() {
166
- return (// @ts-ignore
167
- React.useContext(MaterialReactTableContext)
168
- );
303
+ return React.useContext(MaterialReactTableContext);
304
+ };
305
+
306
+ var MRT_FilterMenu = function MRT_FilterMenu(_ref) {
307
+ var anchorEl = _ref.anchorEl,
308
+ column = _ref.column,
309
+ onSelect = _ref.onSelect,
310
+ setAnchorEl = _ref.setAnchorEl;
311
+
312
+ var _useMRT = useMRT(),
313
+ localization = _useMRT.localization,
314
+ setCurrentFilterTypes = _useMRT.setCurrentFilterTypes,
315
+ tableInstance = _useMRT.tableInstance;
316
+
317
+ var filterTypes = React.useMemo(function () {
318
+ return [{
319
+ type: 'fuzzy',
320
+ label: localization.filterMenuItemFuzzy,
321
+ divider: false
322
+ }, {
323
+ type: 'contains',
324
+ label: localization.filterMenuItemContains,
325
+ divider: true
326
+ }, {
327
+ type: 'startsWith',
328
+ label: localization.filterMenuItemStartsWith,
329
+ divider: false
330
+ }, {
331
+ type: 'endsWith',
332
+ label: localization.filterMenuItemEndsWith,
333
+ divider: true
334
+ }, {
335
+ type: 'equals',
336
+ label: localization.filterMenuItemEquals,
337
+ divider: false
338
+ }, {
339
+ type: 'notEquals',
340
+ label: localization.filterMenuItemNotEquals,
341
+ divider: true
342
+ }, {
343
+ type: 'empty',
344
+ label: localization.filterMenuItemEmpty,
345
+ divider: false
346
+ }, {
347
+ type: 'notEmpty',
348
+ label: localization.filterMenuItemNotEmpty,
349
+ divider: false
350
+ }];
351
+ }, []);
352
+
353
+ var handleSelectMenuItem = function handleSelectMenuItem(value) {
354
+ setAnchorEl(null);
355
+ setCurrentFilterTypes(function (prev) {
356
+ var _extends2;
357
+
358
+ return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = value, _extends2));
359
+ });
360
+
361
+ if (['empty', 'notEmpty'].includes(value)) {
362
+ column.setFilter(' ');
363
+ }
364
+
365
+ onSelect == null ? void 0 : onSelect();
366
+ };
367
+
368
+ var filterType = tableInstance.state.currentFilterTypes[column.id];
369
+ return React__default.createElement(material.Menu, {
370
+ anchorEl: anchorEl,
371
+ open: !!anchorEl,
372
+ anchorOrigin: {
373
+ vertical: 'center',
374
+ horizontal: 'right'
375
+ },
376
+ onClose: function onClose() {
377
+ return setAnchorEl(null);
378
+ }
379
+ }, React__default.createElement(material.Typography, {
380
+ sx: {
381
+ fontWeight: 'bold',
382
+ p: '1rem',
383
+ fontSize: '1.1rem'
384
+ }
385
+ }, localization.filterMenuTitle), React__default.createElement(material.Divider, null), filterTypes.map(function (_ref2) {
386
+ var type = _ref2.type,
387
+ label = _ref2.label,
388
+ divider = _ref2.divider;
389
+ return React__default.createElement(material.MenuItem, {
390
+ divider: divider,
391
+ key: type,
392
+ onClick: function onClick() {
393
+ return handleSelectMenuItem(type);
394
+ },
395
+ selected: type === filterType,
396
+ value: type
397
+ }, label);
398
+ }));
169
399
  };
170
400
 
171
401
  var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
172
- var _localization$filterT, _localization$filterT2, _localization$filterT3;
402
+ var _localization$filterT, _localization$filterT2;
173
403
 
174
404
  var column = _ref.column;
175
405
 
@@ -177,37 +407,70 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
177
407
  _useMRT$icons = _useMRT.icons,
178
408
  FilterListIcon = _useMRT$icons.FilterListIcon,
179
409
  CloseIcon = _useMRT$icons.CloseIcon,
180
- localization = _useMRT.localization;
410
+ idPrefix = _useMRT.idPrefix,
411
+ localization = _useMRT.localization,
412
+ muiTableHeadCellFilterTextFieldProps = _useMRT.muiTableHeadCellFilterTextFieldProps,
413
+ setCurrentFilterTypes = _useMRT.setCurrentFilterTypes,
414
+ tableInstance = _useMRT.tableInstance;
181
415
 
182
- var _useState = React.useState(''),
183
- filterValue = _useState[0],
184
- setFilterValue = _useState[1];
416
+ var _useState = React.useState(null),
417
+ anchorEl = _useState[0],
418
+ setAnchorEl = _useState[1];
419
+
420
+ var mTableHeadCellFilterTextFieldProps = muiTableHeadCellFilterTextFieldProps instanceof Function ? muiTableHeadCellFilterTextFieldProps(column) : muiTableHeadCellFilterTextFieldProps;
421
+ var mcTableHeadCellFilterTextFieldProps = column.muiTableHeadCellFilterTextFieldProps instanceof Function ? column.muiTableHeadCellFilterTextFieldProps(column) : column.muiTableHeadCellFilterTextFieldProps;
422
+
423
+ var textFieldProps = _extends({}, mTableHeadCellFilterTextFieldProps, mcTableHeadCellFilterTextFieldProps, {
424
+ style: _extends({}, mTableHeadCellFilterTextFieldProps == null ? void 0 : mTableHeadCellFilterTextFieldProps.style, mcTableHeadCellFilterTextFieldProps == null ? void 0 : mcTableHeadCellFilterTextFieldProps.style)
425
+ });
426
+
427
+ var _useState2 = React.useState(''),
428
+ filterValue = _useState2[0],
429
+ setFilterValue = _useState2[1];
185
430
 
186
431
  var handleChange = reactTable.useAsyncDebounce(function (value) {
187
432
  column.setFilter(value != null ? value : undefined);
188
433
  }, 150);
189
434
 
435
+ var handleFilterMenuOpen = function handleFilterMenuOpen(event) {
436
+ setAnchorEl(event.currentTarget);
437
+ };
438
+
190
439
  var handleClear = function handleClear() {
191
440
  setFilterValue('');
192
441
  column.setFilter(undefined);
193
442
  };
194
443
 
444
+ var handleClearFilterChip = function handleClearFilterChip() {
445
+ setFilterValue('');
446
+ column.setFilter(undefined);
447
+ setCurrentFilterTypes(function (prev) {
448
+ var _extends2;
449
+
450
+ return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = 'fuzzy', _extends2));
451
+ });
452
+ };
453
+
195
454
  if (column.Filter) {
196
455
  return React__default.createElement(React__default.Fragment, null, column.Filter == null ? void 0 : column.Filter({
197
456
  column: column
198
457
  }));
199
458
  }
200
459
 
201
- return React__default.createElement(material.TextField, {
460
+ var filterType = tableInstance.state.currentFilterTypes[column.id];
461
+ var showFilterChip = ['empty', 'notEmpty'].includes(filterType);
462
+ var filterPlaceholder = (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header));
463
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.TextField, Object.assign({
202
464
  fullWidth: true,
203
- id: "filter-" + column.id + "-column",
465
+ id: "mrt-" + idPrefix + "-" + column.id + "-filter-text-field",
204
466
  inputProps: {
205
- style: {
467
+ sx: {
206
468
  textOverflow: 'ellipsis'
207
- }
469
+ },
470
+ title: filterPlaceholder
208
471
  },
209
- margin: "dense",
210
- placeholder: (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header)),
472
+ margin: "none",
473
+ placeholder: showFilterChip ? '' : filterPlaceholder,
211
474
  onChange: function onChange(e) {
212
475
  setFilterValue(e.target.value);
213
476
  handleChange(e.target.value);
@@ -218,33 +481,52 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
218
481
  value: filterValue != null ? filterValue : '',
219
482
  variant: "standard",
220
483
  InputProps: {
221
- startAdornment: React__default.createElement(material.Tooltip, {
222
- arrow: true,
223
- title: (_localization$filterT2 = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT2.replace('{column}', String(column.Header))
224
- }, React__default.createElement(material.InputAdornment, {
484
+ startAdornment: React__default.createElement(material.InputAdornment, {
225
485
  position: "start"
226
- }, React__default.createElement(FilterListIcon, null))),
227
- endAdornment: React__default.createElement(material.InputAdornment, {
486
+ }, React__default.createElement(material.Tooltip, {
487
+ arrow: true,
488
+ title: "Change Filter Mode"
489
+ }, React__default.createElement(material.IconButton, {
490
+ onClick: handleFilterMenuOpen,
491
+ size: "small",
492
+ sx: {
493
+ height: '1.75rem',
494
+ width: '1.75rem'
495
+ }
496
+ }, React__default.createElement(FilterListIcon, null))), showFilterChip && React__default.createElement(material.Chip, {
497
+ onDelete: handleClearFilterChip,
498
+ label: filterType
499
+ })),
500
+ endAdornment: !showFilterChip && React__default.createElement(material.InputAdornment, {
228
501
  position: "end"
229
502
  }, React__default.createElement(material.Tooltip, {
230
503
  arrow: true,
231
- title: (_localization$filterT3 = localization.filterTextFieldClearButtonTitle) != null ? _localization$filterT3 : ''
504
+ placement: "right",
505
+ title: (_localization$filterT2 = localization.filterTextFieldClearButtonTitle) != null ? _localization$filterT2 : ''
232
506
  }, React__default.createElement("span", null, React__default.createElement(material.IconButton, {
233
507
  "aria-label": localization.filterTextFieldClearButtonTitle,
234
508
  disabled: (filterValue == null ? void 0 : filterValue.length) === 0,
235
509
  onClick: handleClear,
236
- size: "small"
510
+ size: "small",
511
+ sx: {
512
+ height: '1.75rem',
513
+ width: '1.75rem'
514
+ }
237
515
  }, React__default.createElement(CloseIcon, {
238
516
  fontSize: "small"
239
517
  })))))
240
518
  }
241
- });
519
+ }, textFieldProps, {
520
+ sx: _extends({
521
+ minWidth: '6rem'
522
+ }, textFieldProps == null ? void 0 : textFieldProps.sx)
523
+ })), React__default.createElement(MRT_FilterMenu, {
524
+ anchorEl: anchorEl,
525
+ column: column,
526
+ setAnchorEl: setAnchorEl
527
+ }));
242
528
  };
243
529
 
244
- var commonMenuItemStyles = {
245
- display: 'flex',
246
- gap: '0.75rem'
247
- };
248
530
  var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
249
531
  var _localization$columnA, _localization$columnA2, _localization$filterT, _localization, _localization$columnA3;
250
532
 
@@ -257,14 +539,19 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
257
539
  disableFilters = _useMRT.disableFilters,
258
540
  disableSortBy = _useMRT.disableSortBy,
259
541
  enableColumnGrouping = _useMRT.enableColumnGrouping,
260
- localization = _useMRT.localization,
261
- setShowFilters = _useMRT.setShowFilters,
262
542
  _useMRT$icons = _useMRT.icons,
263
- FilterListIcon = _useMRT$icons.FilterListIcon,
264
- SortIcon = _useMRT$icons.SortIcon,
265
543
  ClearAllIcon = _useMRT$icons.ClearAllIcon,
266
544
  DynamicFeedIcon = _useMRT$icons.DynamicFeedIcon,
267
- VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon;
545
+ FilterListIcon = _useMRT$icons.FilterListIcon,
546
+ SortIcon = _useMRT$icons.SortIcon,
547
+ VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon,
548
+ idPrefix = _useMRT.idPrefix,
549
+ localization = _useMRT.localization,
550
+ setShowFilters = _useMRT.setShowFilters;
551
+
552
+ var _useState = React.useState(null),
553
+ filterMenuAnchorEl = _useState[0],
554
+ setFilterMenuAnchorEl = _useState[1];
268
555
 
269
556
  var handleClearSort = function handleClearSort() {
270
557
  column.clearSortBy();
@@ -297,55 +584,63 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
297
584
  var _document$getElementB, _column$muiTableHeadC, _column$muiTableHeadC2;
298
585
 
299
586
  return (_document$getElementB = document.getElementById( // @ts-ignore
300
- (_column$muiTableHeadC = (_column$muiTableHeadC2 = column.muiTableHeadCellFilterTextFieldProps) == null ? void 0 : _column$muiTableHeadC2.id) != null ? _column$muiTableHeadC : "filter-" + column.id + "-column")) == null ? void 0 : _document$getElementB.focus();
587
+ (_column$muiTableHeadC = (_column$muiTableHeadC2 = column.muiTableHeadCellFilterTextFieldProps) == null ? void 0 : _column$muiTableHeadC2.id) != null ? _column$muiTableHeadC : "mrt-" + idPrefix + "-" + column.id + "-filter-text-field")) == null ? void 0 : _document$getElementB.focus();
301
588
  }, 200);
302
589
  setAnchorEl(null);
303
590
  };
304
591
 
592
+ var handleOpenFilterModeMenu = function handleOpenFilterModeMenu(event) {
593
+ event.stopPropagation();
594
+ setFilterMenuAnchorEl(event.currentTarget);
595
+ };
596
+
305
597
  return React__default.createElement(material.Menu, {
306
598
  anchorEl: anchorEl,
307
599
  open: !!anchorEl,
308
600
  onClose: function onClose() {
309
601
  return setAnchorEl(null);
310
602
  }
311
- }, !disableSortBy && column.canSort && [React__default.createElement(material.MenuItem, {
603
+ }, React__default.createElement(material.MenuList, null, !disableSortBy && column.canSort && [React__default.createElement(material.MenuItem, {
312
604
  key: 1,
313
605
  disabled: !column.isSorted,
314
- onClick: handleClearSort,
315
- sx: commonMenuItemStyles
316
- }, React__default.createElement(ClearAllIcon, null), " ", localization.columnActionMenuItemClearSort), React__default.createElement(material.MenuItem, {
606
+ onClick: handleClearSort
607
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(ClearAllIcon, null)), React__default.createElement(material.ListItemText, null, localization.columnActionMenuItemClearSort)), React__default.createElement(material.MenuItem, {
317
608
  key: 2,
318
609
  disabled: column.isSorted && !column.isSortedDesc,
319
- onClick: handleSortAsc,
320
- sx: commonMenuItemStyles
321
- }, React__default.createElement(SortIcon, null), ' ', (_localization$columnA = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA.replace('{column}', String(column.Header))), React__default.createElement(material.MenuItem, {
610
+ onClick: handleSortAsc
611
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(SortIcon, null)), React__default.createElement(material.ListItemText, null, (_localization$columnA = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA.replace('{column}', String(column.Header)))), React__default.createElement(material.MenuItem, {
322
612
  key: 3,
323
613
  disabled: column.isSorted && column.isSortedDesc,
324
- onClick: handleSortDesc,
325
- sx: commonMenuItemStyles
326
- }, React__default.createElement(SortIcon, {
614
+ onClick: handleSortDesc
615
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(SortIcon, {
327
616
  style: {
328
617
  transform: 'rotate(180deg) scaleX(-1)'
329
618
  }
330
- }), ' ', (_localization$columnA2 = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA2.replace('{column}', String(column.Header)))], !disableFilters && column.canFilter && [React__default.createElement(material.Divider, {
619
+ })), React__default.createElement(material.ListItemText, null, (_localization$columnA2 = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA2.replace('{column}', String(column.Header))))], !disableFilters && column.canFilter && [React__default.createElement(material.Divider, {
331
620
  key: 0
332
621
  }), React__default.createElement(material.MenuItem, {
333
622
  key: 1,
334
- onClick: handleFilterByColumn,
335
- sx: commonMenuItemStyles
336
- }, React__default.createElement(FilterListIcon, null), ' ', (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header)))], enableColumnGrouping && column.canGroupBy && [React__default.createElement(material.Divider, {
623
+ onClick: handleFilterByColumn
624
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(FilterListIcon, null)), React__default.createElement(material.ListItemText, null, (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header))), React__default.createElement(material.IconButton, {
625
+ size: "small",
626
+ onMouseEnter: handleOpenFilterModeMenu
627
+ }, React__default.createElement(ArrowRightIcon, null))), React__default.createElement(MRT_FilterMenu, {
628
+ anchorEl: filterMenuAnchorEl,
629
+ column: column,
630
+ key: 2,
631
+ setAnchorEl: setFilterMenuAnchorEl,
632
+ onSelect: handleFilterByColumn
633
+ })], enableColumnGrouping && column.canGroupBy && [React__default.createElement(material.Divider, {
337
634
  key: 1
338
635
  }), React__default.createElement(material.MenuItem, {
339
636
  key: 2,
340
- onClick: handleGroupByColumn,
341
- sx: commonMenuItemStyles
342
- }, React__default.createElement(DynamicFeedIcon, null), ' ', (_localization = localization[column.isGrouped ? 'columnActionMenuItemUnGroupBy' : 'columnActionMenuItemGroupBy']) == null ? void 0 : _localization.replace('{column}', String(column.Header)))], !disableColumnHiding && [React__default.createElement(material.Divider, {
637
+ onClick: handleGroupByColumn
638
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(DynamicFeedIcon, null)), React__default.createElement(material.ListItemText, null, (_localization = localization[column.isGrouped ? 'columnActionMenuItemUnGroupBy' : 'columnActionMenuItemGroupBy']) == null ? void 0 : _localization.replace('{column}', String(column.Header))))], !disableColumnHiding && [React__default.createElement(material.Divider, {
343
639
  key: 0
344
640
  }), React__default.createElement(material.MenuItem, {
345
641
  key: 1,
346
- onClick: handleHideColumn,
347
- sx: commonMenuItemStyles
348
- }, React__default.createElement(VisibilityOffIcon, null), ' ', (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header)))]);
642
+ onClick: handleHideColumn
643
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(VisibilityOffIcon, null)), React__default.createElement(material.ListItemText, null, (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header))))]));
349
644
  };
350
645
 
351
646
  var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton(_ref) {
@@ -375,11 +670,12 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
375
670
  onClick: handleClick,
376
671
  size: "small",
377
672
  sx: {
673
+ height: '2rem',
674
+ mr: '2px',
675
+ mt: '-0.2rem',
378
676
  opacity: 0.5,
379
677
  transition: 'opacity 0.2s',
380
- marginRight: '2px',
381
- height: '1.6rem',
382
- width: '1.6rem',
678
+ width: '2rem',
383
679
  '&:hover': {
384
680
  opacity: 1
385
681
  }
@@ -407,13 +703,11 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
407
703
  var column = _ref.column;
408
704
 
409
705
  var _useMRT = useMRT(),
410
- densePadding = _useMRT.densePadding,
411
706
  disableColumnActions = _useMRT.disableColumnActions,
412
707
  disableFilters = _useMRT.disableFilters,
413
708
  enableColumnResizing = _useMRT.enableColumnResizing,
414
709
  localization = _useMRT.localization,
415
710
  muiTableHeadCellProps = _useMRT.muiTableHeadCellProps,
416
- showFilters = _useMRT.showFilters,
417
711
  tableInstance = _useMRT.tableInstance;
418
712
 
419
713
  var isParentHeader = ((_column$columns$lengt = column == null ? void 0 : (_column$columns = column.columns) == null ? void 0 : _column$columns.length) != null ? _column$columns$lengt : 0) > 0;
@@ -425,17 +719,12 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
425
719
  });
426
720
 
427
721
  var sortTooltip = column.isSorted ? column.isSortedDesc ? localization.columnActionMenuItemClearSort : (_localization$columnA = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA.replace('{column}', column.Header) : (_localization$columnA2 = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA2.replace('{column}', column.Header);
722
+ var columnHeader = column.render('Header');
428
723
  return React__default.createElement(material.TableCell, Object.assign({
429
724
  align: isParentHeader ? 'center' : 'left'
430
725
  }, tableCellProps, {
431
- sx: _extends({}, commonTableHeadCellStyles(densePadding, enableColumnResizing), tableCellProps == null ? void 0 : tableCellProps.sx)
726
+ sx: _extends({}, commonTableHeadCellStyles(tableInstance.state.densePadding, enableColumnResizing), tableCellProps == null ? void 0 : tableCellProps.sx)
432
727
  }), React__default.createElement(material.Box, {
433
- sx: {
434
- alignContent: 'space-between',
435
- display: 'grid',
436
- height: '100%'
437
- }
438
- }, React__default.createElement(material.Box, {
439
728
  sx: {
440
729
  alignItems: 'flex-start',
441
730
  display: 'flex',
@@ -446,7 +735,8 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
446
735
  sx: {
447
736
  alignItems: 'center',
448
737
  display: 'flex',
449
- flexWrap: 'nowrap'
738
+ flexWrap: 'nowrap',
739
+ whiteSpace: columnHeader.length < 15 ? 'nowrap' : 'normal'
450
740
  },
451
741
  title: undefined
452
742
  }), column.render('Header'), !isParentHeader && column.canSort && React__default.createElement(material.Tooltip, {
@@ -477,10 +767,10 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
477
767
  maxHeight: '2rem'
478
768
  }
479
769
  })))), !disableFilters && column.canFilter && React__default.createElement(material.Collapse, {
480
- "in": showFilters
770
+ "in": tableInstance.state.showFilters
481
771
  }, React__default.createElement(MRT_FilterTextField, {
482
772
  column: column
483
- }))));
773
+ })));
484
774
  };
485
775
 
486
776
  var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
@@ -489,9 +779,9 @@ var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
489
779
  var cell = _ref.cell;
490
780
 
491
781
  var _useMRT = useMRT(),
492
- currentEditingRow = _useMRT.currentEditingRow,
493
782
  muiTableBodyCellEditTextFieldProps = _useMRT.muiTableBodyCellEditTextFieldProps,
494
- setCurrentEditingRow = _useMRT.setCurrentEditingRow;
783
+ setCurrentEditingRow = _useMRT.setCurrentEditingRow,
784
+ currentEditingRow = _useMRT.tableInstance.state.currentEditingRow;
495
785
 
496
786
  var handleChange = function handleChange(event) {
497
787
  if (currentEditingRow) {
@@ -547,8 +837,9 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
547
837
  var _useMRT = useMRT(),
548
838
  onCellClick = _useMRT.onCellClick,
549
839
  muiTableBodyCellProps = _useMRT.muiTableBodyCellProps,
550
- densePadding = _useMRT.densePadding,
551
- currentEditingRow = _useMRT.currentEditingRow;
840
+ _useMRT$tableInstance = _useMRT.tableInstance.state,
841
+ currentEditingRow = _useMRT$tableInstance.currentEditingRow,
842
+ densePadding = _useMRT$tableInstance.densePadding;
552
843
 
553
844
  var mTableCellBodyProps = muiTableBodyCellProps instanceof Function ? muiTableBodyCellProps(cell) : muiTableBodyCellProps;
554
845
  var mcTableCellBodyProps = cell.column.muiTableBodyCellProps instanceof Function ? cell.column.muiTableBodyCellProps(cell) : cell.column.muiTableBodyCellProps;
@@ -573,7 +864,6 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
573
864
  selectAll = _ref.selectAll;
574
865
 
575
866
  var _useMRT = useMRT(),
576
- densePadding = _useMRT.densePadding,
577
867
  localization = _useMRT.localization,
578
868
  onRowSelectChange = _useMRT.onRowSelectChange,
579
869
  onSelectAllChange = _useMRT.onSelectAllChange,
@@ -595,7 +885,7 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
595
885
 
596
886
  var checkboxProps = selectAll ? tableInstance.getToggleAllRowsSelectedProps() : row == null ? void 0 : row.getToggleRowSelectedProps();
597
887
  return React__default.createElement(material.TableCell, {
598
- sx: commonTableBodyButtonCellStyles(densePadding)
888
+ sx: commonTableBodyButtonCellStyles(tableInstance.state.densePadding)
599
889
  }, React__default.createElement(material.Tooltip, {
600
890
  arrow: true,
601
891
  enterDelay: 1000,
@@ -613,16 +903,15 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
613
903
 
614
904
  var MRT_ExpandAllButton = function MRT_ExpandAllButton() {
615
905
  var _useMRT = useMRT(),
616
- tableInstance = _useMRT.tableInstance,
617
- localization = _useMRT.localization,
618
906
  anyRowsExpanded = _useMRT.anyRowsExpanded,
619
- densePadding = _useMRT.densePadding,
620
- DoubleArrowDownIcon = _useMRT.icons.DoubleArrowDownIcon;
907
+ DoubleArrowDownIcon = _useMRT.icons.DoubleArrowDownIcon,
908
+ localization = _useMRT.localization,
909
+ tableInstance = _useMRT.tableInstance;
621
910
 
622
911
  return React__default.createElement(material.TableCell, Object.assign({
623
912
  size: "small"
624
913
  }, tableInstance.getToggleAllRowsExpandedProps(), {
625
- sx: commonTableBodyButtonCellStyles(densePadding)
914
+ sx: commonTableBodyButtonCellStyles(tableInstance.state.densePadding)
626
915
  }), React__default.createElement(material.IconButton, {
627
916
  "aria-label": localization.expandAllButtonTitle,
628
917
  title: localization.expandAllButtonTitle
@@ -655,8 +944,8 @@ var MRT_TableSpacerCell = function MRT_TableSpacerCell(_ref) {
655
944
 
656
945
  var MRT_TableHeadCellActions = function MRT_TableHeadCellActions() {
657
946
  var _useMRT = useMRT(),
658
- densePadding = _useMRT.densePadding,
659
- localization = _useMRT.localization;
947
+ localization = _useMRT.localization,
948
+ densePadding = _useMRT.tableInstance.state.densePadding;
660
949
 
661
950
  return React__default.createElement(material.TableCell, {
662
951
  style: {
@@ -673,7 +962,6 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
673
962
 
674
963
  var _useMRT = useMRT(),
675
964
  anyRowsCanExpand = _useMRT.anyRowsCanExpand,
676
- densePadding = _useMRT.densePadding,
677
965
  disableExpandAll = _useMRT.disableExpandAll,
678
966
  enableRowActions = _useMRT.enableRowActions,
679
967
  enableRowEditing = _useMRT.enableRowEditing,
@@ -698,7 +986,7 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
698
986
  });
699
987
 
700
988
  return React__default.createElement(material.TableRow, Object.assign({}, tableRowProps), enableRowNumbers && (isParentHeader ? React__default.createElement(MRT_TableSpacerCell, null) : React__default.createElement(material.TableCell, {
701
- sx: _extends({}, commonTableHeadCellStyles(densePadding))
989
+ sx: _extends({}, commonTableHeadCellStyles(tableInstance.state.densePadding))
702
990
  }, "#")), (enableRowActions || enableRowEditing) && positionActionsColumn === 'first' && (isParentHeader ? React__default.createElement(MRT_TableSpacerCell, null) : React__default.createElement(MRT_TableHeadCellActions, null)), anyRowsCanExpand || renderDetailPanel ? !disableExpandAll && !isParentHeader ? React__default.createElement(MRT_ExpandAllButton, null) : React__default.createElement(MRT_TableSpacerCell, {
703
991
  width: (renderDetailPanel ? 2 : tableInstance.expandedDepth + 0.5) + "rem"
704
992
  }) : null, enableSelection ? !isParentHeader ? React__default.createElement(MRT_SelectCheckbox, {
@@ -760,10 +1048,10 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
760
1048
  var row = _ref.row;
761
1049
 
762
1050
  var _useMRT = useMRT(),
763
- densePadding = _useMRT.densePadding,
764
1051
  ExpandMoreIcon = _useMRT.icons.ExpandMoreIcon,
765
1052
  localization = _useMRT.localization,
766
- renderDetailPanel = _useMRT.renderDetailPanel;
1053
+ renderDetailPanel = _useMRT.renderDetailPanel,
1054
+ densePadding = _useMRT.tableInstance.state.densePadding;
767
1055
 
768
1056
  return React__default.createElement(material.TableCell, {
769
1057
  size: "small",
@@ -1583,9 +1871,9 @@ var MRT_EditActionButtons = function MRT_EditActionButtons(_ref) {
1583
1871
  CancelIcon = _useMRT$icons.CancelIcon,
1584
1872
  SaveIcon = _useMRT$icons.SaveIcon,
1585
1873
  localization = _useMRT.localization,
1586
- setCurrentEditingRow = _useMRT.setCurrentEditingRow,
1587
1874
  onRowEditSubmit = _useMRT.onRowEditSubmit,
1588
- currentEditingRow = _useMRT.currentEditingRow;
1875
+ setCurrentEditingRow = _useMRT.setCurrentEditingRow,
1876
+ currentEditingRow = _useMRT.tableInstance.state.currentEditingRow;
1589
1877
 
1590
1878
  var handleCancel = function handleCancel() {
1591
1879
  row.values = row.original;
@@ -1649,11 +1937,11 @@ var commonIconButtonStyles = {
1649
1937
  }
1650
1938
  };
1651
1939
  var MRT_ToggleRowActionMenuButton = function MRT_ToggleRowActionMenuButton(_ref) {
1940
+ var _tableInstance$state$;
1941
+
1652
1942
  var row = _ref.row;
1653
1943
 
1654
1944
  var _useMRT = useMRT(),
1655
- currentEditingRow = _useMRT.currentEditingRow,
1656
- densePadding = _useMRT.densePadding,
1657
1945
  enableRowEditing = _useMRT.enableRowEditing,
1658
1946
  _useMRT$icons = _useMRT.icons,
1659
1947
  EditIcon = _useMRT$icons.EditIcon,
@@ -1680,8 +1968,8 @@ var MRT_ToggleRowActionMenuButton = function MRT_ToggleRowActionMenuButton(_ref)
1680
1968
  };
1681
1969
 
1682
1970
  return React__default.createElement(material.TableCell, {
1683
- sx: commonTableBodyButtonCellStyles(densePadding)
1684
- }, renderRowActions ? React__default.createElement(React__default.Fragment, null, renderRowActions(row, tableInstance)) : row.id === (currentEditingRow == null ? void 0 : currentEditingRow.id) ? React__default.createElement(MRT_EditActionButtons, {
1971
+ sx: commonTableBodyButtonCellStyles(tableInstance.state.densePadding)
1972
+ }, renderRowActions ? React__default.createElement(React__default.Fragment, null, renderRowActions(row, tableInstance)) : row.id === ((_tableInstance$state$ = tableInstance.state.currentEditingRow) == null ? void 0 : _tableInstance$state$.id) ? React__default.createElement(MRT_EditActionButtons, {
1685
1973
  row: row
1686
1974
  }) : !renderRowActionMenuItems && enableRowEditing ? React__default.createElement(material.Tooltip, {
1687
1975
  placement: "right",
@@ -1690,13 +1978,17 @@ var MRT_ToggleRowActionMenuButton = function MRT_ToggleRowActionMenuButton(_ref)
1690
1978
  }, React__default.createElement(material.IconButton, {
1691
1979
  sx: commonIconButtonStyles,
1692
1980
  onClick: handleEdit
1693
- }, React__default.createElement(EditIcon, null))) : renderRowActionMenuItems ? React__default.createElement(React__default.Fragment, null, React__default.createElement(material.IconButton, {
1981
+ }, React__default.createElement(EditIcon, null))) : renderRowActionMenuItems ? React__default.createElement(React__default.Fragment, null, React__default.createElement(material.Tooltip, {
1982
+ arrow: true,
1983
+ enterDelay: 1000,
1984
+ enterNextDelay: 1000,
1985
+ title: localization.rowActionMenuButtonTitle
1986
+ }, React__default.createElement(material.IconButton, {
1694
1987
  "aria-label": localization.rowActionMenuButtonTitle,
1695
1988
  onClick: handleOpenRowActionMenu,
1696
1989
  size: "small",
1697
- sx: commonIconButtonStyles,
1698
- title: localization.rowActionMenuButtonTitle
1699
- }, React__default.createElement(MoreHorizIcon, null)), React__default.createElement(MRT_RowActionMenu, {
1990
+ sx: commonIconButtonStyles
1991
+ }, React__default.createElement(MoreHorizIcon, null))), React__default.createElement(MRT_RowActionMenu, {
1700
1992
  anchorEl: anchorEl,
1701
1993
  handleEdit: handleEdit,
1702
1994
  row: row,
@@ -1709,7 +2001,6 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
1709
2001
 
1710
2002
  var _useMRT = useMRT(),
1711
2003
  anyRowsCanExpand = _useMRT.anyRowsCanExpand,
1712
- densePadding = _useMRT.densePadding,
1713
2004
  enableRowActions = _useMRT.enableRowActions,
1714
2005
  enableRowEditing = _useMRT.enableRowEditing,
1715
2006
  enableRowNumbers = _useMRT.enableRowNumbers,
@@ -1717,7 +2008,8 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
1717
2008
  muiTableBodyRowProps = _useMRT.muiTableBodyRowProps,
1718
2009
  onRowClick = _useMRT.onRowClick,
1719
2010
  positionActionsColumn = _useMRT.positionActionsColumn,
1720
- renderDetailPanel = _useMRT.renderDetailPanel;
2011
+ renderDetailPanel = _useMRT.renderDetailPanel,
2012
+ densePadding = _useMRT.tableInstance.state.densePadding;
1721
2013
 
1722
2014
  var mTableBodyRowProps = muiTableBodyRowProps instanceof Function ? muiTableBodyRowProps(row) : muiTableBodyRowProps;
1723
2015
 
@@ -1731,7 +2023,6 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
1731
2023
  return onRowClick == null ? void 0 : onRowClick(event, row);
1732
2024
  }
1733
2025
  }, tableRowProps, {
1734
- //@ts-ignore
1735
2026
  sx: function sx(theme) {
1736
2027
  return _extends({
1737
2028
  backgroundColor: row.isSelected ? material.alpha(theme.palette.primary.light, 0.1) : 'transparent'
@@ -1764,9 +2055,10 @@ var MRT_TableBody = function MRT_TableBody() {
1764
2055
  manualPagination = _useMRT.manualPagination;
1765
2056
 
1766
2057
  var rows = manualPagination ? tableInstance.rows : tableInstance.page;
2058
+ var mTableBodyProps = muiTableBodyProps instanceof Function ? muiTableBodyProps(tableInstance) : muiTableBodyProps;
1767
2059
 
1768
- var tableBodyProps = _extends({}, muiTableBodyProps, tableInstance.getTableBodyProps(), {
1769
- style: _extends({}, tableInstance.getTableBodyProps().style, muiTableBodyProps == null ? void 0 : muiTableBodyProps.style)
2060
+ var tableBodyProps = _extends({}, mTableBodyProps, tableInstance.getTableBodyProps(), {
2061
+ style: _extends({}, tableInstance.getTableBodyProps().style, mTableBodyProps == null ? void 0 : mTableBodyProps.style)
1770
2062
  });
1771
2063
 
1772
2064
  return React__default.createElement(material.TableBody, Object.assign({}, tableBodyProps, {
@@ -1789,8 +2081,8 @@ var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
1789
2081
 
1790
2082
  var _useMRT = useMRT(),
1791
2083
  muiTableFooterCellProps = _useMRT.muiTableFooterCellProps,
1792
- densePadding = _useMRT.densePadding,
1793
- enableColumnResizing = _useMRT.enableColumnResizing;
2084
+ enableColumnResizing = _useMRT.enableColumnResizing,
2085
+ densePadding = _useMRT.tableInstance.state.densePadding;
1794
2086
 
1795
2087
  var isParentHeader = ((_column$columns$lengt = column == null ? void 0 : (_column$columns = column.columns) == null ? void 0 : _column$columns.length) != null ? _column$columns$lengt : 0) > 0;
1796
2088
  var mTableFooterCellProps = muiTableFooterCellProps instanceof Function ? muiTableFooterCellProps(column) : muiTableFooterCellProps;
@@ -1855,7 +2147,8 @@ var MRT_TableFooter = function MRT_TableFooter() {
1855
2147
  muiTableFooterProps = _useMRT.muiTableFooterProps,
1856
2148
  tableInstance = _useMRT.tableInstance;
1857
2149
 
1858
- return React__default.createElement(material.TableFooter, Object.assign({}, muiTableFooterProps), tableInstance.footerGroups.map(function (footerGroup) {
2150
+ var tableFooterProps = muiTableFooterProps instanceof Function ? muiTableFooterProps(tableInstance) : muiTableFooterProps;
2151
+ return React__default.createElement(material.TableFooter, Object.assign({}, tableFooterProps), tableInstance.footerGroups.map(function (footerGroup) {
1859
2152
  return React__default.createElement(MRT_TableFooterRow, {
1860
2153
  key: footerGroup.getFooterGroupProps().key,
1861
2154
  footerGroup: footerGroup
@@ -1870,8 +2163,10 @@ var MRT_Table = function MRT_Table() {
1870
2163
  hideTableHead = _useMRT.hideTableHead,
1871
2164
  hideTableFooter = _useMRT.hideTableFooter;
1872
2165
 
1873
- var tableProps = _extends({}, muiTableProps, tableInstance.getTableProps(), {
1874
- style: _extends({}, tableInstance.getTableProps().style, muiTableProps == null ? void 0 : muiTableProps.style)
2166
+ var mTableProps = muiTableProps instanceof Function ? muiTableProps(tableInstance) : muiTableProps;
2167
+
2168
+ var tableProps = _extends({}, mTableProps, tableInstance.getTableProps(), {
2169
+ style: _extends({}, tableInstance.getTableProps().style, mTableProps == null ? void 0 : mTableProps.style)
1875
2170
  });
1876
2171
 
1877
2172
  return React__default.createElement(material.Table, Object.assign({}, tableProps), !hideTableHead && React__default.createElement(MRT_TableHead, null), React__default.createElement(MRT_TableBody, null), !hideTableFooter && React__default.createElement(MRT_TableFooter, null));
@@ -1882,7 +2177,7 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
1882
2177
  _useMRT$icons = _useMRT.icons,
1883
2178
  SearchIcon = _useMRT$icons.SearchIcon,
1884
2179
  CloseIcon = _useMRT$icons.CloseIcon,
1885
- showSearch = _useMRT.showSearch,
2180
+ idPrefix = _useMRT.idPrefix,
1886
2181
  localization = _useMRT.localization,
1887
2182
  muiSearchTextFieldProps = _useMRT.muiSearchTextFieldProps,
1888
2183
  onGlobalFilterChange = _useMRT.onGlobalFilterChange,
@@ -1905,10 +2200,10 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
1905
2200
  };
1906
2201
 
1907
2202
  return React__default.createElement(material.Collapse, {
1908
- "in": showSearch,
2203
+ "in": tableInstance.state.showSearch,
1909
2204
  orientation: "horizontal"
1910
2205
  }, React__default.createElement(material.TextField, Object.assign({
1911
- id: "global-search-text-field",
2206
+ id: "mrt-" + idPrefix + "-search-text-field",
1912
2207
  placeholder: localization.searchTextFieldPlaceholder,
1913
2208
  onChange: function onChange(event) {
1914
2209
  setSearchValue(event.target.value);
@@ -1945,12 +2240,12 @@ var MRT_FullScreenToggleButton = function MRT_FullScreenToggleButton(_ref) {
1945
2240
  var rest = _extends({}, _ref);
1946
2241
 
1947
2242
  var _useMRT = useMRT(),
1948
- fullScreen = _useMRT.fullScreen,
1949
2243
  _useMRT$icons = _useMRT.icons,
1950
2244
  FullscreenExitIcon = _useMRT$icons.FullscreenExitIcon,
1951
2245
  FullscreenIcon = _useMRT$icons.FullscreenIcon,
1952
2246
  localization = _useMRT.localization,
1953
- setFullScreen = _useMRT.setFullScreen;
2247
+ setFullScreen = _useMRT.setFullScreen,
2248
+ fullScreen = _useMRT.tableInstance.state.fullScreen;
1954
2249
 
1955
2250
  return React__default.createElement(material.Tooltip, {
1956
2251
  arrow: true,
@@ -2062,12 +2357,12 @@ var MRT_ToggleDensePaddingButton = function MRT_ToggleDensePaddingButton(_ref) {
2062
2357
  var rest = _extends({}, _ref);
2063
2358
 
2064
2359
  var _useMRT = useMRT(),
2065
- densePadding = _useMRT.densePadding,
2066
2360
  setDensePadding = _useMRT.setDensePadding,
2067
2361
  localization = _useMRT.localization,
2068
2362
  _useMRT$icons = _useMRT.icons,
2069
2363
  DensityMediumIcon = _useMRT$icons.DensityMediumIcon,
2070
- DensitySmallIcon = _useMRT$icons.DensitySmallIcon;
2364
+ DensitySmallIcon = _useMRT$icons.DensitySmallIcon,
2365
+ densePadding = _useMRT.tableInstance.state.densePadding;
2071
2366
 
2072
2367
  return React__default.createElement(material.Tooltip, {
2073
2368
  arrow: true,
@@ -2085,12 +2380,12 @@ var MRT_ToggleFiltersButton = function MRT_ToggleFiltersButton(_ref) {
2085
2380
  var rest = _extends({}, _ref);
2086
2381
 
2087
2382
  var _useMRT = useMRT(),
2088
- localization = _useMRT.localization,
2089
- setShowFilters = _useMRT.setShowFilters,
2090
- showFilters = _useMRT.showFilters,
2091
2383
  _useMRT$icons = _useMRT.icons,
2092
2384
  FilterListIcon = _useMRT$icons.FilterListIcon,
2093
- FilterListOffIcon = _useMRT$icons.FilterListOffIcon;
2385
+ FilterListOffIcon = _useMRT$icons.FilterListOffIcon,
2386
+ localization = _useMRT.localization,
2387
+ setShowFilters = _useMRT.setShowFilters,
2388
+ showFilters = _useMRT.tableInstance.state.showFilters;
2094
2389
 
2095
2390
  return React__default.createElement(material.Tooltip, {
2096
2391
  arrow: true,
@@ -2111,17 +2406,18 @@ var MRT_ToggleSearchButton = function MRT_ToggleSearchButton(_ref) {
2111
2406
  _useMRT$icons = _useMRT.icons,
2112
2407
  SearchIcon = _useMRT$icons.SearchIcon,
2113
2408
  SearchOffIcon = _useMRT$icons.SearchOffIcon,
2409
+ idPrefix = _useMRT.idPrefix,
2114
2410
  localization = _useMRT.localization,
2115
2411
  muiSearchTextFieldProps = _useMRT.muiSearchTextFieldProps,
2116
2412
  setShowSearch = _useMRT.setShowSearch,
2117
- showSearch = _useMRT.showSearch;
2413
+ showSearch = _useMRT.tableInstance.state.showSearch;
2118
2414
 
2119
2415
  var handleToggleSearch = function handleToggleSearch() {
2120
2416
  setShowSearch(!showSearch);
2121
2417
  setTimeout(function () {
2122
2418
  var _document$getElementB, _muiSearchTextFieldPr;
2123
2419
 
2124
- return (_document$getElementB = document.getElementById((_muiSearchTextFieldPr = muiSearchTextFieldProps == null ? void 0 : muiSearchTextFieldProps.id) != null ? _muiSearchTextFieldPr : "global-search-text-field")) == null ? void 0 : _document$getElementB.focus();
2420
+ return (_document$getElementB = document.getElementById((_muiSearchTextFieldPr = muiSearchTextFieldProps == null ? void 0 : muiSearchTextFieldProps.id) != null ? _muiSearchTextFieldPr : "mrt-" + idPrefix + "-search-text-field")) == null ? void 0 : _document$getElementB.focus();
2125
2421
  }, 200);
2126
2422
  };
2127
2423
 
@@ -2266,7 +2562,6 @@ var MRT_ToolbarTop = function MRT_ToolbarTop() {
2266
2562
  muiTableToolbarTopProps = _useMRT.muiTableToolbarTopProps,
2267
2563
  positionPagination = _useMRT.positionPagination,
2268
2564
  positionToolbarActions = _useMRT.positionToolbarActions,
2269
- fullScreen = _useMRT.fullScreen,
2270
2565
  positionToolbarAlertBanner = _useMRT.positionToolbarAlertBanner,
2271
2566
  renderToolbarCustomActions = _useMRT.renderToolbarCustomActions,
2272
2567
  tableInstance = _useMRT.tableInstance;
@@ -2281,8 +2576,8 @@ var MRT_ToolbarTop = function MRT_ToolbarTop() {
2281
2576
  backgroundImage: "linear-gradient(" + material.alpha(theme.palette.common.white, 0.05) + "," + material.alpha(theme.palette.common.white, 0.05) + ")",
2282
2577
  display: 'grid',
2283
2578
  p: '0 !important',
2284
- position: fullScreen ? 'sticky' : undefined,
2285
- top: fullScreen ? '0' : undefined,
2579
+ position: tableInstance.state.fullScreen ? 'sticky' : undefined,
2580
+ top: tableInstance.state.fullScreen ? '0' : undefined,
2286
2581
  width: '100%',
2287
2582
  zIndex: 1
2288
2583
  }, toolbarProps == null ? void 0 : toolbarProps.sx);
@@ -2309,7 +2604,6 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom() {
2309
2604
  manualPagination = _useMRT.manualPagination,
2310
2605
  muiTableToolbarBottomProps = _useMRT.muiTableToolbarBottomProps,
2311
2606
  positionPagination = _useMRT.positionPagination,
2312
- fullScreen = _useMRT.fullScreen,
2313
2607
  positionToolbarActions = _useMRT.positionToolbarActions,
2314
2608
  positionToolbarAlertBanner = _useMRT.positionToolbarAlertBanner,
2315
2609
  tableInstance = _useMRT.tableInstance;
@@ -2322,12 +2616,12 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom() {
2322
2616
  return _extends({
2323
2617
  backgroundColor: theme.palette.background["default"],
2324
2618
  backgroundImage: "linear-gradient(" + material.alpha(theme.palette.common.white, 0.05) + "," + material.alpha(theme.palette.common.white, 0.05) + ")",
2325
- bottom: fullScreen ? '0' : undefined,
2619
+ bottom: tableInstance.state.fullScreen ? '0' : undefined,
2326
2620
  display: 'flex',
2327
2621
  justifyContent: 'space-between',
2328
2622
  overflowY: 'hidden',
2329
2623
  p: '0 0.5rem !important',
2330
- position: fullScreen ? 'fixed' : undefined,
2624
+ position: tableInstance.state.fullScreen ? 'fixed' : undefined,
2331
2625
  width: 'calc(100% - 1rem)',
2332
2626
  zIndex: 1
2333
2627
  }, toolbarProps == null ? void 0 : toolbarProps.sx);
@@ -2337,7 +2631,6 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom() {
2337
2631
 
2338
2632
  var MRT_TableContainer = function MRT_TableContainer() {
2339
2633
  var _useMRT = useMRT(),
2340
- fullScreen = _useMRT.fullScreen,
2341
2634
  hideToolbarBottom = _useMRT.hideToolbarBottom,
2342
2635
  hideToolbarTop = _useMRT.hideToolbarTop,
2343
2636
  isFetching = _useMRT.isFetching,
@@ -2345,6 +2638,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
2345
2638
  muiTableContainerProps = _useMRT.muiTableContainerProps,
2346
2639
  tableInstance = _useMRT.tableInstance;
2347
2640
 
2641
+ var fullScreen = tableInstance.state.fullScreen;
2348
2642
  var originalBodyOverflowStyle = React.useRef();
2349
2643
  React.useEffect(function () {
2350
2644
  if (typeof window !== 'undefined') {
@@ -2383,7 +2677,12 @@ var MRT_TableContainer = function MRT_TableContainer() {
2383
2677
  }), !hideToolbarTop && React__default.createElement(MRT_ToolbarTop, null), React__default.createElement(material.Collapse, {
2384
2678
  "in": isFetching || isLoading,
2385
2679
  unmountOnExit: true
2386
- }, React__default.createElement(material.LinearProgress, null)), React__default.createElement(MRT_Table, null), !hideToolbarBottom && React__default.createElement(MRT_ToolbarBottom, null));
2680
+ }, React__default.createElement(material.LinearProgress, null)), React__default.createElement(material.Box, {
2681
+ sx: {
2682
+ maxWidth: '100%',
2683
+ overflowX: 'auto'
2684
+ }
2685
+ }, React__default.createElement(MRT_Table, null)), !hideToolbarBottom && React__default.createElement(MRT_ToolbarBottom, null));
2387
2686
  };
2388
2687
 
2389
2688
  var MRT_DefaultLocalization_EN = {
@@ -2399,6 +2698,15 @@ var MRT_DefaultLocalization_EN = {
2399
2698
  columnShowHideMenuShowAll: 'Show all',
2400
2699
  expandAllButtonTitle: 'Expand all',
2401
2700
  expandButtonTitle: 'Expand',
2701
+ filterMenuItemContains: 'Contains Exact',
2702
+ filterMenuItemEmpty: 'Empty',
2703
+ filterMenuItemEndsWith: 'Ends With',
2704
+ filterMenuItemEquals: 'Equals',
2705
+ filterMenuItemFuzzy: 'Fuzzy Match',
2706
+ filterMenuItemNotEmpty: 'Not Empty',
2707
+ filterMenuItemNotEquals: 'Not Equals',
2708
+ filterMenuItemStartsWith: 'Starts With',
2709
+ filterMenuTitle: 'Filter Mode',
2402
2710
  filterTextFieldClearButtonTitle: 'Clear filter',
2403
2711
  filterTextFieldPlaceholder: 'Filter by {column}',
2404
2712
  rowActionButtonCancel: 'Cancel',
@@ -2415,9 +2723,9 @@ var MRT_DefaultLocalization_EN = {
2415
2723
  toggleFilterButtonTitle: 'Toggle filters',
2416
2724
  toggleFullScreenButtonTitle: 'Toggle full screen',
2417
2725
  toggleSearchButtonTitle: 'Toggle search',
2418
- toolbarAlertSelectionMessage: '{selectedCount} of {rowCount} row(s) selected',
2419
2726
  toolbarAlertGroupedByMessage: 'Grouped by ',
2420
- toolbarAlertGroupedThenByMessage: ', then by '
2727
+ toolbarAlertGroupedThenByMessage: ', then by ',
2728
+ toolbarAlertSelectionMessage: '{selectedCount} of {rowCount} row(s) selected'
2421
2729
  };
2422
2730
 
2423
2731
  var MRT_Default_Icons = {