material-react-table 1.9.0 → 1.9.1
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.
- package/dist/cjs/index.js +45 -14
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/body/MRT_TableBody.d.ts +1 -1
- package/dist/cjs/types/column.utils.d.ts +1 -1
- package/dist/cjs/types/filterFns.d.ts +1 -1
- package/dist/cjs/types/footer/MRT_TableFooterRow.d.ts +1 -1
- package/dist/cjs/types/sortingFns.d.ts +2 -2
- package/dist/esm/material-react-table.esm.js +45 -14
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/esm/types/body/MRT_TableBody.d.ts +1 -1
- package/dist/esm/types/column.utils.d.ts +1 -1
- package/dist/esm/types/filterFns.d.ts +1 -1
- package/dist/esm/types/footer/MRT_TableFooterRow.d.ts +1 -1
- package/dist/esm/types/sortingFns.d.ts +2 -2
- package/package.json +1 -1
- package/src/MaterialReactTable.tsx +1 -1
- package/src/body/MRT_TableBody.tsx +2 -2
- package/src/body/MRT_TableBodyRow.tsx +4 -2
- package/src/column.utils.ts +1 -1
- package/src/filterFns.ts +1 -1
- package/src/footer/MRT_TableFooterRow.tsx +1 -1
- package/src/inputs/MRT_FilterTextField.tsx +1 -1
- package/src/menus/MRT_FilterOptionMenu.tsx +39 -15
- package/src/sortingFns.ts +3 -3
- package/src/table/MRT_Table.tsx +2 -2
- package/src/table/MRT_TableRoot.tsx +1 -1
package/dist/cjs/index.js
CHANGED
@@ -631,6 +631,9 @@ const mrtFilterOptions = (localization) => [
|
|
631
631
|
divider: false,
|
632
632
|
},
|
633
633
|
];
|
634
|
+
const rangeModes = ['between', 'betweenInclusive', 'inNumberRange'];
|
635
|
+
const emptyModes = ['empty', 'notEmpty'];
|
636
|
+
const arrModes = ['arrIncludesSome', 'arrIncludesAll', 'arrIncludes'];
|
634
637
|
const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, setFilterValue, table, }) => {
|
635
638
|
var _a, _b, _c, _d;
|
636
639
|
const { getState, options: { columnFilterModeOptions, globalFilterModeOptions, localization, renderColumnFilterModeMenuItems, renderGlobalFilterModeMenuItems, }, setColumnFilterFns, setGlobalFilterFn, } = table;
|
@@ -646,36 +649,62 @@ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, setFilt
|
|
646
649
|
globalFilterModeOptions.includes(filterOption.option)) &&
|
647
650
|
['fuzzy', 'contains', 'startsWith'].includes(filterOption.option)), []);
|
648
651
|
const handleSelectFilterMode = (option) => {
|
649
|
-
|
652
|
+
var _a;
|
653
|
+
const prevFilterMode = (_a = columnDef === null || columnDef === void 0 ? void 0 : columnDef._filterFn) !== null && _a !== void 0 ? _a : '';
|
654
|
+
if (!header || !column) {
|
655
|
+
// global filter mode
|
656
|
+
setGlobalFilterFn(option);
|
657
|
+
}
|
658
|
+
else if (option !== prevFilterMode) {
|
659
|
+
// column filter mode
|
650
660
|
setColumnFilterFns((prev) => (Object.assign(Object.assign({}, prev), { [header.id]: option })));
|
651
|
-
|
652
|
-
|
661
|
+
// reset filter value and/or perform new filter render
|
662
|
+
if (emptyModes.includes(option)) {
|
663
|
+
// will now be empty/notEmpty filter mode
|
664
|
+
if (currentFilterValue !== ' ' &&
|
665
|
+
!emptyModes.includes(prevFilterMode)) {
|
666
|
+
column.setFilterValue(' ');
|
667
|
+
}
|
668
|
+
else if (currentFilterValue) {
|
669
|
+
column.setFilterValue(currentFilterValue); // perform new filter render
|
670
|
+
}
|
653
671
|
}
|
654
672
|
else if ((columnDef === null || columnDef === void 0 ? void 0 : columnDef.filterVariant) === 'multi-select' ||
|
655
|
-
|
673
|
+
arrModes.includes(option)) {
|
674
|
+
// will now be array filter mode
|
656
675
|
if (currentFilterValue instanceof String ||
|
657
676
|
(currentFilterValue === null || currentFilterValue === void 0 ? void 0 : currentFilterValue.length)) {
|
658
677
|
column.setFilterValue([]);
|
659
678
|
setFilterValue === null || setFilterValue === void 0 ? void 0 : setFilterValue([]);
|
660
679
|
}
|
680
|
+
else if (currentFilterValue) {
|
681
|
+
column.setFilterValue(currentFilterValue); // perform new filter render
|
682
|
+
}
|
661
683
|
}
|
662
684
|
else if ((columnDef === null || columnDef === void 0 ? void 0 : columnDef.filterVariant) === 'range' ||
|
663
|
-
|
664
|
-
|
685
|
+
rangeModes.includes(option)) {
|
686
|
+
// will now be range filter mode
|
687
|
+
if (!Array.isArray(currentFilterValue) ||
|
688
|
+
(!(currentFilterValue === null || currentFilterValue === void 0 ? void 0 : currentFilterValue.every((v) => v === '')) &&
|
689
|
+
!rangeModes.includes(prevFilterMode))) {
|
665
690
|
column.setFilterValue(['', '']);
|
666
691
|
setFilterValue === null || setFilterValue === void 0 ? void 0 : setFilterValue('');
|
667
692
|
}
|
693
|
+
else {
|
694
|
+
column.setFilterValue(currentFilterValue); // perform new filter render
|
695
|
+
}
|
668
696
|
}
|
669
697
|
else {
|
670
|
-
|
698
|
+
// will now be single value filter mode
|
699
|
+
if (Array.isArray(currentFilterValue)) {
|
671
700
|
column.setFilterValue('');
|
672
701
|
setFilterValue === null || setFilterValue === void 0 ? void 0 : setFilterValue('');
|
673
702
|
}
|
703
|
+
else {
|
704
|
+
column.setFilterValue(currentFilterValue); // perform new filter render
|
705
|
+
}
|
674
706
|
}
|
675
707
|
}
|
676
|
-
else {
|
677
|
-
setGlobalFilterFn(option);
|
678
|
-
}
|
679
708
|
setAnchorEl(null);
|
680
709
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect();
|
681
710
|
};
|
@@ -1644,7 +1673,7 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
|
|
1644
1673
|
else if (isRangeFilter) {
|
1645
1674
|
setFilterValue('');
|
1646
1675
|
column.setFilterValue((old) => {
|
1647
|
-
const newFilterValues = old
|
1676
|
+
const newFilterValues = (Array.isArray(old) && old) || ['', ''];
|
1648
1677
|
newFilterValues[rangeFilterIndex] = undefined;
|
1649
1678
|
return newFilterValues;
|
1650
1679
|
});
|
@@ -2523,9 +2552,11 @@ const MRT_TableBodyRow = ({ columnVirtualizer, measureElement, numRows, row, row
|
|
2523
2552
|
? `translateY(${virtualRow === null || virtualRow === void 0 ? void 0 : virtualRow.start}px)`
|
2524
2553
|
: undefined, transition: virtualRow ? 'none' : 'all 150ms ease-in-out', width: '100%', '&:hover td': {
|
2525
2554
|
backgroundColor: (tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.hover) !== false
|
2526
|
-
?
|
2527
|
-
? `${styles.
|
2528
|
-
:
|
2555
|
+
? row.getIsSelected()
|
2556
|
+
? `${styles.alpha(theme.palette.primary.main, 0.2)}`
|
2557
|
+
: theme.palette.mode === 'dark'
|
2558
|
+
? `${styles.lighten(theme.palette.background.default, 0.12)}`
|
2559
|
+
: `${styles.darken(theme.palette.background.default, 0.05)}`
|
2529
2560
|
: undefined,
|
2530
2561
|
} }, ((tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.sx) instanceof Function
|
2531
2562
|
? tableRowProps.sx(theme)
|