material-react-table 0.5.7 → 0.5.8

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.
@@ -234,13 +234,9 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
234
234
 
235
235
  var _useState6 = React.useState(function () {
236
236
  return Object.assign.apply(Object, [{}].concat(props.columns.map(function (c) {
237
- var _c$accessor;
237
+ var _ref, _c$filter, _props$initialState5, _props$initialState5$, _ref2;
238
238
 
239
- return (_c$accessor = c.accessor) == null ? void 0 : _c$accessor.toString();
240
- }).map(function (accessor) {
241
- var _props$initialState$f2, _props$initialState5, _props$initialState5$, _ref;
242
-
243
- 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;
239
+ 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;
244
240
  })));
245
241
  }),
246
242
  currentFilterTypes = _useState6[0],
@@ -256,6 +252,7 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
256
252
  columns: columns,
257
253
  // @ts-ignore
258
254
  filterTypes: filterTypes,
255
+ globalFilterValue: 'fuzzy',
259
256
  useControlledState: function useControlledState(state) {
260
257
  return React.useMemo(function () {
261
258
  return _extends({}, state, {
@@ -306,150 +303,10 @@ var useMRT = function useMRT() {
306
303
  };
307
304
 
308
305
  var commonMenuItemStyles = {
309
- py: '0 !important',
310
- my: '0 !important'
306
+ py: '6px',
307
+ my: 0,
308
+ alignItems: 'center'
311
309
  };
312
- var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
313
- var _localization$columnA, _localization$columnA2, _localization$filterT, _localization, _localization$columnA3;
314
-
315
- var anchorEl = _ref.anchorEl,
316
- column = _ref.column,
317
- setAnchorEl = _ref.setAnchorEl;
318
-
319
- var _useMRT = useMRT(),
320
- disableColumnHiding = _useMRT.disableColumnHiding,
321
- disableFilters = _useMRT.disableFilters,
322
- disableSortBy = _useMRT.disableSortBy,
323
- enableColumnGrouping = _useMRT.enableColumnGrouping,
324
- _useMRT$icons = _useMRT.icons,
325
- ArrowRightIcon = _useMRT$icons.ArrowRightIcon,
326
- ClearAllIcon = _useMRT$icons.ClearAllIcon,
327
- DynamicFeedIcon = _useMRT$icons.DynamicFeedIcon,
328
- FilterListIcon = _useMRT$icons.FilterListIcon,
329
- SortIcon = _useMRT$icons.SortIcon,
330
- VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon,
331
- idPrefix = _useMRT.idPrefix,
332
- localization = _useMRT.localization,
333
- setShowFilters = _useMRT.setShowFilters,
334
- tableInstance = _useMRT.tableInstance;
335
-
336
- var _useState = React.useState(null),
337
- filterMenuAnchorEl = _useState[0],
338
- setFilterMenuAnchorEl = _useState[1];
339
-
340
- var handleClearSort = function handleClearSort() {
341
- column.clearSortBy();
342
- setAnchorEl(null);
343
- };
344
-
345
- var handleSortAsc = function handleSortAsc() {
346
- column.toggleSortBy(false);
347
- setAnchorEl(null);
348
- };
349
-
350
- var handleSortDesc = function handleSortDesc() {
351
- column.toggleSortBy(true);
352
- setAnchorEl(null);
353
- };
354
-
355
- var handleHideColumn = function handleHideColumn() {
356
- column.toggleHidden();
357
- setAnchorEl(null);
358
- };
359
-
360
- var handleGroupByColumn = function handleGroupByColumn() {
361
- column.toggleGroupBy();
362
- setAnchorEl(null);
363
- };
364
-
365
- var handleFilterByColumn = function handleFilterByColumn() {
366
- setShowFilters(true);
367
- setTimeout(function () {
368
- var _document$getElementB, _column$muiTableHeadC, _column$muiTableHeadC2;
369
-
370
- return (_document$getElementB = document.getElementById( // @ts-ignore
371
- (_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();
372
- }, 200);
373
- setAnchorEl(null);
374
- };
375
-
376
- var handleOpenFilterModeMenu = function handleOpenFilterModeMenu(event) {
377
- event.stopPropagation();
378
- setFilterMenuAnchorEl(event.currentTarget);
379
- };
380
-
381
- return React__default.createElement(material.Menu, {
382
- anchorEl: anchorEl,
383
- open: !!anchorEl,
384
- onClose: function onClose() {
385
- return setAnchorEl(null);
386
- },
387
- MenuListProps: {
388
- dense: tableInstance.state.densePadding,
389
- disablePadding: true
390
- }
391
- }, !disableSortBy && column.canSort && [React__default.createElement(material.MenuItem, {
392
- key: 1,
393
- disabled: !column.isSorted,
394
- onClick: handleClearSort,
395
- sx: commonMenuItemStyles
396
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(ClearAllIcon, null)), React__default.createElement(material.ListItemText, {
397
- sx: commonMenuItemStyles
398
- }, localization.columnActionMenuItemClearSort)), React__default.createElement(material.MenuItem, {
399
- disabled: column.isSorted && !column.isSortedDesc,
400
- key: 2,
401
- onClick: handleSortAsc,
402
- sx: commonMenuItemStyles
403
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(SortIcon, null)), React__default.createElement(material.ListItemText, {
404
- sx: commonMenuItemStyles
405
- }, (_localization$columnA = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA.replace('{column}', String(column.Header)))), React__default.createElement(material.MenuItem, {
406
- divider: !disableFilters || enableColumnGrouping || !disableColumnHiding,
407
- key: 3,
408
- disabled: column.isSorted && column.isSortedDesc,
409
- onClick: handleSortDesc,
410
- sx: commonMenuItemStyles
411
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(SortIcon, {
412
- style: {
413
- transform: 'rotate(180deg) scaleX(-1)'
414
- }
415
- })), React__default.createElement(material.ListItemText, {
416
- sx: commonMenuItemStyles
417
- }, (_localization$columnA2 = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA2.replace('{column}', String(column.Header))))], !disableFilters && column.canFilter && [React__default.createElement(material.MenuItem, {
418
- divider: enableColumnGrouping || !disableColumnHiding,
419
- key: 1,
420
- onClick: handleFilterByColumn,
421
- sx: commonMenuItemStyles
422
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(FilterListIcon, null)), React__default.createElement(material.ListItemText, {
423
- sx: commonMenuItemStyles
424
- }, (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header))), React__default.createElement(material.IconButton, {
425
- onClick: handleOpenFilterModeMenu,
426
- onMouseEnter: handleOpenFilterModeMenu,
427
- size: "small",
428
- sx: {
429
- p: 0
430
- }
431
- }, React__default.createElement(ArrowRightIcon, null))), React__default.createElement(MRT_FilterTypeMenu, {
432
- anchorEl: filterMenuAnchorEl,
433
- column: column,
434
- key: 2,
435
- setAnchorEl: setFilterMenuAnchorEl,
436
- onSelect: handleFilterByColumn
437
- })], enableColumnGrouping && column.canGroupBy && [React__default.createElement(material.MenuItem, {
438
- divider: !disableColumnHiding,
439
- key: 2,
440
- onClick: handleGroupByColumn,
441
- sx: commonMenuItemStyles
442
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(DynamicFeedIcon, null)), React__default.createElement(material.ListItemText, {
443
- sx: commonMenuItemStyles
444
- }, (_localization = localization[column.isGrouped ? 'columnActionMenuItemUnGroupBy' : 'columnActionMenuItemGroupBy']) == null ? void 0 : _localization.replace('{column}', String(column.Header))))], !disableColumnHiding && [React__default.createElement(material.MenuItem, {
445
- key: 1,
446
- onClick: handleHideColumn,
447
- sx: commonMenuItemStyles
448
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(VisibilityOffIcon, null)), React__default.createElement(material.ListItemText, {
449
- sx: commonMenuItemStyles
450
- }, (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header))))]);
451
- };
452
-
453
310
  var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
454
311
  var anchorEl = _ref.anchorEl,
455
312
  column = _ref.column,
@@ -463,35 +320,35 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
463
320
 
464
321
  var filterTypes = React.useMemo(function () {
465
322
  return [{
466
- type: 'fuzzy',
323
+ type: exports.MRT_FILTER_TYPE.FUZZY,
467
324
  label: localization.filterMenuItemFuzzy,
468
325
  divider: false
469
326
  }, {
470
- type: 'contains',
327
+ type: exports.MRT_FILTER_TYPE.CONTAINS,
471
328
  label: localization.filterMenuItemContains,
472
329
  divider: true
473
330
  }, {
474
- type: 'startsWith',
331
+ type: exports.MRT_FILTER_TYPE.STARTS_WITH,
475
332
  label: localization.filterMenuItemStartsWith,
476
333
  divider: false
477
334
  }, {
478
- type: 'endsWith',
335
+ type: exports.MRT_FILTER_TYPE.ENDS_WITH,
479
336
  label: localization.filterMenuItemEndsWith,
480
337
  divider: true
481
338
  }, {
482
- type: 'equals',
339
+ type: exports.MRT_FILTER_TYPE.EQUALS,
483
340
  label: localization.filterMenuItemEquals,
484
341
  divider: false
485
342
  }, {
486
- type: 'notEquals',
343
+ type: exports.MRT_FILTER_TYPE.NOT_EQUALS,
487
344
  label: localization.filterMenuItemNotEquals,
488
345
  divider: true
489
346
  }, {
490
- type: 'empty',
347
+ type: exports.MRT_FILTER_TYPE.EMPTY,
491
348
  label: localization.filterMenuItemEmpty,
492
349
  divider: false
493
350
  }, {
494
- type: 'notEmpty',
351
+ type: exports.MRT_FILTER_TYPE.NOT_EMPTY,
495
352
  label: localization.filterMenuItemNotEmpty,
496
353
  divider: false
497
354
  }];
@@ -505,7 +362,7 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
505
362
  return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = value, _extends2));
506
363
  });
507
364
 
508
- if (['empty', 'notEmpty'].includes(value)) {
365
+ if ([exports.MRT_FILTER_TYPE.EMPTY, exports.MRT_FILTER_TYPE.NOT_EMPTY].includes(value)) {
509
366
  column.setFilter(' ');
510
367
  }
511
368
 
@@ -524,28 +381,27 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
524
381
  },
525
382
  open: !!anchorEl,
526
383
  MenuListProps: {
527
- dense: tableInstance.state.densePadding,
528
- disablePadding: true
384
+ dense: tableInstance.state.densePadding
529
385
  }
530
- }, filterTypes.map(function (_ref2) {
386
+ }, filterTypes.map(function (_ref2, index) {
531
387
  var type = _ref2.type,
532
388
  label = _ref2.label,
533
389
  divider = _ref2.divider;
534
390
  return React__default.createElement(material.MenuItem, {
535
391
  divider: divider,
536
- key: type,
392
+ key: index,
537
393
  onClick: function onClick() {
538
394
  return handleSelectFilterType(type);
539
395
  },
540
396
  selected: type === filterType,
541
- value: type,
542
- sx: commonMenuItemStyles
397
+ sx: commonMenuItemStyles,
398
+ value: type
543
399
  }, label);
544
400
  }));
545
401
  };
546
402
 
547
403
  var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
548
- var _localization$filterT, _localization$filterT2;
404
+ var _localization$filterT, _localization$filterT2, _column$filterSelectO;
549
405
 
550
406
  var column = _ref.column;
551
407
 
@@ -593,7 +449,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
593
449
  setCurrentFilterTypes(function (prev) {
594
450
  var _extends2;
595
451
 
596
- return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = 'fuzzy', _extends2));
452
+ return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = exports.MRT_FILTER_TYPE.FUZZY, _extends2));
597
453
  });
598
454
  };
599
455
 
@@ -604,7 +460,9 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
604
460
  }
605
461
 
606
462
  var filterType = tableInstance.state.currentFilterTypes[column.id];
607
- var filterChipLabel = ['empty', 'notEmpty'].includes(filterType);
463
+ var isCustomFilterType = filterType instanceof Function;
464
+ var isSelectFilter = !!column.filterSelectOptions;
465
+ var filterChipLabel = !isCustomFilterType && [exports.MRT_FILTER_TYPE.EMPTY, exports.MRT_FILTER_TYPE.NOT_EMPTY].includes(filterType);
608
466
  var filterPlaceholder = (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header));
609
467
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.TextField, Object.assign({
610
468
  fullWidth: true,
@@ -617,8 +475,16 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
617
475
  },
618
476
  title: filterPlaceholder
619
477
  },
478
+ label: isSelectFilter && !filterValue ? filterPlaceholder : undefined,
479
+ InputLabelProps: {
480
+ shrink: false,
481
+ sx: {
482
+ maxWidth: 'calc(100% - 2.5rem)'
483
+ },
484
+ title: filterPlaceholder
485
+ },
620
486
  margin: "none",
621
- placeholder: filterChipLabel ? '' : filterPlaceholder,
487
+ placeholder: filterChipLabel || isSelectFilter ? undefined : filterPlaceholder,
622
488
  onChange: function onChange(e) {
623
489
  setFilterValue(e.target.value);
624
490
  handleChange(e.target.value);
@@ -626,22 +492,24 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
626
492
  onClick: function onClick(e) {
627
493
  return e.stopPropagation();
628
494
  },
495
+ select: isSelectFilter,
629
496
  value: filterValue != null ? filterValue : '',
630
497
  variant: "standard",
631
498
  InputProps: {
632
- startAdornment: React__default.createElement(material.InputAdornment, {
499
+ startAdornment: !isSelectFilter && React__default.createElement(material.InputAdornment, {
633
500
  position: "start"
634
501
  }, React__default.createElement(material.Tooltip, {
635
502
  arrow: true,
636
- title: "Change Filter Mode"
637
- }, React__default.createElement(material.IconButton, {
503
+ title: localization.changeFilterMode
504
+ }, React__default.createElement("span", null, React__default.createElement(material.IconButton, {
505
+ disabled: isCustomFilterType,
638
506
  onClick: handleFilterMenuOpen,
639
507
  size: "small",
640
508
  sx: {
641
509
  height: '1.75rem',
642
510
  width: '1.75rem'
643
511
  }
644
- }, React__default.createElement(FilterListIcon, null))), filterChipLabel && React__default.createElement(material.Chip, {
512
+ }, React__default.createElement(FilterListIcon, null)))), filterChipLabel && React__default.createElement(material.Chip, {
645
513
  onDelete: handleClearFilterChip,
646
514
  label: filterType
647
515
  })),
@@ -649,11 +517,12 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
649
517
  position: "end"
650
518
  }, React__default.createElement(material.Tooltip, {
651
519
  arrow: true,
520
+ disableHoverListener: isSelectFilter,
652
521
  placement: "right",
653
522
  title: (_localization$filterT2 = localization.filterTextFieldClearButtonTitle) != null ? _localization$filterT2 : ''
654
523
  }, React__default.createElement("span", null, React__default.createElement(material.IconButton, {
655
524
  "aria-label": localization.filterTextFieldClearButtonTitle,
656
- disabled: (filterValue == null ? void 0 : filterValue.length) === 0,
525
+ disabled: !(filterValue != null && filterValue.length),
657
526
  onClick: handleClear,
658
527
  size: "small",
659
528
  sx: {
@@ -668,8 +537,32 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
668
537
  sx: _extends({
669
538
  m: '0 -0.25rem',
670
539
  minWidth: !filterChipLabel ? '5rem' : 'auto',
671
- width: 'calc(100% + 0.5rem)'
540
+ width: 'calc(100% + 0.5rem)',
541
+ mt: isSelectFilter && !filterValue ? '-1rem' : undefined,
542
+ '& .MuiSelect-icon': {
543
+ mr: '1.5rem'
544
+ }
672
545
  }, textFieldProps == null ? void 0 : textFieldProps.sx)
546
+ }), isSelectFilter && React__default.createElement(material.MenuItem, {
547
+ divider: true,
548
+ disabled: !filterValue,
549
+ value: ""
550
+ }, localization.filterTextFieldClearButtonTitle), column == null ? void 0 : (_column$filterSelectO = column.filterSelectOptions) == null ? void 0 : _column$filterSelectO.map(function (option) {
551
+ var value;
552
+ var text;
553
+
554
+ if (typeof option === 'string') {
555
+ value = option;
556
+ text = option;
557
+ } else if (typeof option === 'object') {
558
+ value = option.value;
559
+ text = option.text;
560
+ }
561
+
562
+ return React__default.createElement(material.MenuItem, {
563
+ key: value,
564
+ value: value
565
+ }, text);
673
566
  })), React__default.createElement(MRT_FilterTypeMenu, {
674
567
  anchorEl: anchorEl,
675
568
  column: column,
@@ -677,6 +570,170 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
677
570
  }));
678
571
  };
679
572
 
573
+ var commonMenuItemStyles$1 = {
574
+ py: '6px',
575
+ my: 0,
576
+ justifyContent: 'space-between',
577
+ alignItems: 'center'
578
+ };
579
+ var commonListItemStyles = {
580
+ display: 'flex',
581
+ gap: '0.75rem',
582
+ alignItems: 'center'
583
+ };
584
+ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
585
+ var _localization$columnA, _localization$columnA2, _localization$filterT, _localization, _localization$columnA3;
586
+
587
+ var anchorEl = _ref.anchorEl,
588
+ column = _ref.column,
589
+ setAnchorEl = _ref.setAnchorEl;
590
+
591
+ var _useMRT = useMRT(),
592
+ disableColumnHiding = _useMRT.disableColumnHiding,
593
+ disableFilters = _useMRT.disableFilters,
594
+ disableSortBy = _useMRT.disableSortBy,
595
+ enableColumnGrouping = _useMRT.enableColumnGrouping,
596
+ _useMRT$icons = _useMRT.icons,
597
+ ArrowRightIcon = _useMRT$icons.ArrowRightIcon,
598
+ ClearAllIcon = _useMRT$icons.ClearAllIcon,
599
+ DynamicFeedIcon = _useMRT$icons.DynamicFeedIcon,
600
+ FilterListIcon = _useMRT$icons.FilterListIcon,
601
+ FilterListOffIcon = _useMRT$icons.FilterListOffIcon,
602
+ SortIcon = _useMRT$icons.SortIcon,
603
+ VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon,
604
+ idPrefix = _useMRT.idPrefix,
605
+ localization = _useMRT.localization,
606
+ setShowFilters = _useMRT.setShowFilters,
607
+ tableInstance = _useMRT.tableInstance;
608
+
609
+ var _useState = React.useState(null),
610
+ filterMenuAnchorEl = _useState[0],
611
+ setFilterMenuAnchorEl = _useState[1];
612
+
613
+ var handleClearSort = function handleClearSort() {
614
+ column.clearSortBy();
615
+ setAnchorEl(null);
616
+ };
617
+
618
+ var handleSortAsc = function handleSortAsc() {
619
+ column.toggleSortBy(false);
620
+ setAnchorEl(null);
621
+ };
622
+
623
+ var handleSortDesc = function handleSortDesc() {
624
+ column.toggleSortBy(true);
625
+ setAnchorEl(null);
626
+ };
627
+
628
+ var handleHideColumn = function handleHideColumn() {
629
+ column.toggleHidden();
630
+ setAnchorEl(null);
631
+ };
632
+
633
+ var handleGroupByColumn = function handleGroupByColumn() {
634
+ column.toggleGroupBy();
635
+ setAnchorEl(null);
636
+ };
637
+
638
+ var handleClearFilter = function handleClearFilter() {
639
+ column.setFilter('');
640
+ setAnchorEl(null);
641
+ };
642
+
643
+ var handleFilterByColumn = function handleFilterByColumn() {
644
+ setShowFilters(true);
645
+ setTimeout(function () {
646
+ var _document$getElementB, _column$muiTableHeadC, _column$muiTableHeadC2;
647
+
648
+ return (_document$getElementB = document.getElementById( // @ts-ignore
649
+ (_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();
650
+ }, 200);
651
+ setAnchorEl(null);
652
+ };
653
+
654
+ var handleOpenFilterModeMenu = function handleOpenFilterModeMenu(event) {
655
+ event.stopPropagation();
656
+ setFilterMenuAnchorEl(event.currentTarget);
657
+ };
658
+
659
+ return React__default.createElement(material.Menu, {
660
+ anchorEl: anchorEl,
661
+ open: !!anchorEl,
662
+ onClose: function onClose() {
663
+ return setAnchorEl(null);
664
+ },
665
+ MenuListProps: {
666
+ dense: tableInstance.state.densePadding
667
+ }
668
+ }, !disableSortBy && column.canSort && [React__default.createElement(material.MenuItem, {
669
+ disabled: !column.isSorted,
670
+ key: 1,
671
+ onClick: handleClearSort,
672
+ sx: commonMenuItemStyles$1
673
+ }, React__default.createElement(material.Box, {
674
+ sx: commonListItemStyles
675
+ }, React__default.createElement(ClearAllIcon, null), localization.columnActionMenuItemClearSort)), React__default.createElement(material.MenuItem, {
676
+ disabled: column.isSorted && !column.isSortedDesc,
677
+ key: 2,
678
+ onClick: handleSortAsc,
679
+ sx: commonMenuItemStyles$1
680
+ }, React__default.createElement(material.Box, {
681
+ sx: commonListItemStyles
682
+ }, React__default.createElement(SortIcon, null), (_localization$columnA = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA.replace('{column}', String(column.Header)))), React__default.createElement(material.MenuItem, {
683
+ divider: !disableFilters || enableColumnGrouping || !disableColumnHiding,
684
+ key: 3,
685
+ disabled: column.isSorted && column.isSortedDesc,
686
+ onClick: handleSortDesc,
687
+ sx: commonMenuItemStyles$1
688
+ }, React__default.createElement(material.Box, {
689
+ sx: commonListItemStyles
690
+ }, React__default.createElement(SortIcon, {
691
+ style: {
692
+ transform: 'rotate(180deg) scaleX(-1)'
693
+ }
694
+ }), (_localization$columnA2 = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA2.replace('{column}', String(column.Header))))], !disableFilters && column.canFilter && [React__default.createElement(material.MenuItem, {
695
+ disabled: !column.filterValue,
696
+ key: 0,
697
+ onClick: handleClearFilter,
698
+ sx: commonMenuItemStyles$1
699
+ }, React__default.createElement(material.Box, {
700
+ sx: commonListItemStyles
701
+ }, React__default.createElement(FilterListOffIcon, null), localization.filterTextFieldClearButtonTitle)), React__default.createElement(material.MenuItem, {
702
+ divider: enableColumnGrouping || !disableColumnHiding,
703
+ key: 1,
704
+ onClick: handleFilterByColumn,
705
+ sx: commonMenuItemStyles$1
706
+ }, React__default.createElement(material.Box, {
707
+ sx: commonListItemStyles
708
+ }, React__default.createElement(FilterListIcon, null), (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header))), !column.filterSelectOptions && React__default.createElement(material.IconButton, {
709
+ onClick: handleOpenFilterModeMenu,
710
+ onMouseEnter: handleOpenFilterModeMenu,
711
+ size: "small",
712
+ sx: {
713
+ p: 0
714
+ }
715
+ }, React__default.createElement(ArrowRightIcon, null))), React__default.createElement(MRT_FilterTypeMenu, {
716
+ anchorEl: filterMenuAnchorEl,
717
+ column: column,
718
+ key: 2,
719
+ setAnchorEl: setFilterMenuAnchorEl,
720
+ onSelect: handleFilterByColumn
721
+ })], enableColumnGrouping && column.canGroupBy && [React__default.createElement(material.MenuItem, {
722
+ divider: !disableColumnHiding,
723
+ key: 2,
724
+ onClick: handleGroupByColumn,
725
+ sx: commonMenuItemStyles$1
726
+ }, React__default.createElement(material.Box, {
727
+ sx: commonListItemStyles
728
+ }, 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.MenuItem, {
729
+ key: 1,
730
+ onClick: handleHideColumn,
731
+ sx: commonMenuItemStyles$1
732
+ }, React__default.createElement(material.Box, {
733
+ sx: commonListItemStyles
734
+ }, React__default.createElement(VisibilityOffIcon, null), (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header))))]);
735
+ };
736
+
680
737
  var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton(_ref) {
681
738
  var column = _ref.column;
682
739
 
@@ -757,8 +814,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
757
814
  });
758
815
 
759
816
  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);
760
- var filterTooltip = !!column.filterValue ? localization.filterApplied.replace('{column}', String(column.Header)).replace('{filterType}', // @ts-ignore
761
- localization["filterMenuItem" + (tableInstance.state.currentFilterTypes[column.id].charAt(0).toUpperCase() + tableInstance.state.currentFilterTypes[column.id].slice(1))]) : localization.toggleFilterButtonTitle;
817
+ var filterTooltip = !!column.filterValue ? localization.filterApplied.replace('{column}', String(column.Header)).replace('{filterType}', column.filterValue) : localization.toggleFilterButtonTitle;
762
818
  var columnHeader = column.render('Header');
763
819
  return React__default.createElement(material.TableCell, Object.assign({
764
820
  align: isParentHeader ? 'center' : 'left'
@@ -781,6 +837,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
781
837
  title: undefined
782
838
  }), column.render('Header'), !isParentHeader && column.canSort && React__default.createElement(material.Tooltip, {
783
839
  arrow: true,
840
+ placement: "top",
784
841
  title: sortTooltip
785
842
  }, React__default.createElement(material.TableSortLabel, {
786
843
  "aria-label": sortTooltip,
@@ -788,19 +845,22 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
788
845
  direction: column.isSortedDesc ? 'desc' : 'asc'
789
846
  })), !isParentHeader && !!column.canFilter && React__default.createElement(material.Tooltip, {
790
847
  arrow: true,
848
+ placement: "top",
791
849
  title: filterTooltip
792
850
  }, React__default.createElement(material.IconButton, {
851
+ disableRipple: true,
793
852
  onClick: function onClick(event) {
794
853
  event.stopPropagation();
795
854
  setShowFilters(!tableInstance.state.showFilters);
796
855
  },
797
856
  size: "small",
798
857
  sx: {
858
+ m: 0,
799
859
  opacity: !!column.filterValue ? 0.8 : 0,
800
860
  p: '2px',
801
- m: 0,
802
861
  transition: 'all 0.2s ease-in-out',
803
862
  '&:hover': {
863
+ backgroundColor: 'transparent',
804
864
  opacity: 0.8
805
865
  }
806
866
  }
@@ -1161,15 +1221,12 @@ var MRT_RowActionMenu = function MRT_RowActionMenu(_ref) {
1161
1221
  return setAnchorEl(null);
1162
1222
  },
1163
1223
  MenuListProps: {
1164
- dense: tableInstance.state.densePadding,
1165
- disablePadding: true
1224
+ dense: tableInstance.state.densePadding
1166
1225
  }
1167
1226
  }, enableRowEditing && React__default.createElement(material.MenuItem, {
1168
1227
  onClick: handleEdit,
1169
- sx: commonMenuItemStyles
1170
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(EditIcon, null)), React__default.createElement(material.ListItemText, {
1171
- sx: commonMenuItemStyles
1172
- }, localization.rowActionMenuItemEdit)), (_renderRowActionMenuI = renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems(row, tableInstance, function () {
1228
+ sx: commonMenuItemStyles$1
1229
+ }, React__default.createElement(EditIcon, null), localization.rowActionMenuItemEdit), (_renderRowActionMenuI = renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems(row, tableInstance, function () {
1173
1230
  return setAnchorEl(null);
1174
1231
  })) != null ? _renderRowActionMenuI : null);
1175
1232
  };
@@ -2353,10 +2410,17 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
2353
2410
  };
2354
2411
 
2355
2412
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.MenuItem, {
2356
- sx: {
2413
+ sx: _extends({}, commonMenuItemStyles$1, {
2357
2414
  pl: (column.depth + 0.5) * 2 + "rem"
2358
- }
2415
+ })
2359
2416
  }, React__default.createElement(material.FormControlLabel, {
2417
+ componentsProps: {
2418
+ typography: {
2419
+ sx: {
2420
+ marginBottom: 0
2421
+ }
2422
+ }
2423
+ },
2360
2424
  checked: switchChecked,
2361
2425
  control: React__default.createElement(material.Switch, null),
2362
2426
  label: column.Header,
@@ -2401,10 +2465,8 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
2401
2465
  return setAnchorEl(null);
2402
2466
  },
2403
2467
  MenuListProps: {
2404
- dense: tableInstance.state.densePadding,
2405
- disablePadding: true
2406
- },
2407
- sx: commonMenuItemStyles
2468
+ dense: tableInstance.state.densePadding
2469
+ }
2408
2470
  }, React__default.createElement(material.Box, {
2409
2471
  sx: {
2410
2472
  display: 'flex',
@@ -2781,6 +2843,7 @@ var MRT_DefaultLocalization_EN = {
2781
2843
  filterMenuItemEmpty: 'Empty',
2782
2844
  filterMenuItemEndsWith: 'Ends With',
2783
2845
  filterMenuItemEquals: 'Equals',
2846
+ changeFilterMode: 'Change filter mode',
2784
2847
  filterMenuItemFuzzy: 'Fuzzy Match (Default)',
2785
2848
  filterMenuItemNotEmpty: 'Not Empty',
2786
2849
  filterMenuItemNotEquals: 'Not Equals',
@@ -2839,6 +2902,18 @@ var MRT_Default_Icons = {
2839
2902
  };
2840
2903
 
2841
2904
  var _excluded = ["defaultColumn", "icons", "localization", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner"];
2905
+
2906
+ (function (MRT_FILTER_TYPE) {
2907
+ MRT_FILTER_TYPE["CONTAINS"] = "contains";
2908
+ MRT_FILTER_TYPE["EMPTY"] = "empty";
2909
+ MRT_FILTER_TYPE["ENDS_WITH"] = "endsWith";
2910
+ MRT_FILTER_TYPE["EQUALS"] = "equals";
2911
+ MRT_FILTER_TYPE["FUZZY"] = "fuzzy";
2912
+ MRT_FILTER_TYPE["NOT_EMPTY"] = "notEmpty";
2913
+ MRT_FILTER_TYPE["NOT_EQUALS"] = "notEquals";
2914
+ MRT_FILTER_TYPE["STARTS_WITH"] = "startsWith";
2915
+ })(exports.MRT_FILTER_TYPE || (exports.MRT_FILTER_TYPE = {}));
2916
+
2842
2917
  var MaterialReactTable = (function (_ref) {
2843
2918
  var _ref$defaultColumn = _ref.defaultColumn,
2844
2919
  defaultColumn = _ref$defaultColumn === void 0 ? {