material-react-table 1.8.1 → 1.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +37 -30
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/MaterialReactTable.d.ts +38 -23
- package/dist/cjs/types/body/MRT_TableBody.d.ts +4 -3
- package/dist/cjs/types/body/MRT_TableBodyCell.d.ts +3 -2
- package/dist/cjs/types/body/MRT_TableBodyRow.d.ts +5 -4
- package/dist/cjs/types/body/MRT_TableDetailPanel.d.ts +3 -2
- package/dist/cjs/types/column.utils.d.ts +17 -1
- package/dist/cjs/types/footer/MRT_TableFooter.d.ts +3 -2
- package/dist/cjs/types/footer/MRT_TableFooterRow.d.ts +3 -2
- package/dist/cjs/types/head/MRT_TableHead.d.ts +3 -2
- package/dist/cjs/types/head/MRT_TableHeadRow.d.ts +3 -2
- package/dist/cjs/types/sortingFns.d.ts +117 -1
- package/dist/esm/material-react-table.esm.js +37 -30
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/esm/types/MaterialReactTable.d.ts +38 -23
- package/dist/esm/types/body/MRT_TableBody.d.ts +4 -3
- package/dist/esm/types/body/MRT_TableBodyCell.d.ts +3 -2
- package/dist/esm/types/body/MRT_TableBodyRow.d.ts +5 -4
- package/dist/esm/types/body/MRT_TableDetailPanel.d.ts +3 -2
- package/dist/esm/types/column.utils.d.ts +17 -1
- package/dist/esm/types/footer/MRT_TableFooter.d.ts +3 -2
- package/dist/esm/types/footer/MRT_TableFooterRow.d.ts +3 -2
- package/dist/esm/types/head/MRT_TableHead.d.ts +3 -2
- package/dist/esm/types/head/MRT_TableHeadRow.d.ts +3 -2
- package/dist/esm/types/sortingFns.d.ts +117 -1
- package/dist/index.d.ts +39 -24
- package/package.json +15 -15
- package/src/MaterialReactTable.tsx +655 -624
- package/src/body/MRT_TableBody.tsx +10 -11
- package/src/body/MRT_TableBodyCell.tsx +3 -2
- package/src/body/MRT_TableBodyRow.tsx +7 -14
- package/src/body/MRT_TableDetailPanel.tsx +3 -2
- package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +1 -1
- package/src/footer/MRT_TableFooter.tsx +3 -2
- package/src/footer/MRT_TableFooterRow.tsx +3 -7
- package/src/head/MRT_TableHead.tsx +3 -2
- package/src/head/MRT_TableHeadRow.tsx +3 -7
- package/src/inputs/MRT_EditCellTextField.tsx +28 -27
- package/src/inputs/MRT_FilterTextField.tsx +36 -35
- package/src/menus/MRT_FilterOptionMenu.tsx +8 -3
- package/src/table/MRT_Table.tsx +4 -3
- package/src/table/MRT_TableRoot.tsx +6 -0
package/dist/cjs/index.js
CHANGED
@@ -658,15 +658,18 @@ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, setFilt
|
|
658
658
|
}
|
659
659
|
else if ((columnDef === null || columnDef === void 0 ? void 0 : columnDef.filterVariant) === 'multi-select' ||
|
660
660
|
['arrIncludesSome', 'arrIncludesAll', 'arrIncludes'].includes(option)) {
|
661
|
-
if (currentFilterValue
|
661
|
+
if (currentFilterValue instanceof String ||
|
662
|
+
(currentFilterValue === null || currentFilterValue === void 0 ? void 0 : currentFilterValue.length)) {
|
662
663
|
column.setFilterValue([]);
|
663
664
|
setFilterValue === null || setFilterValue === void 0 ? void 0 : setFilterValue([]);
|
664
665
|
}
|
665
666
|
}
|
666
667
|
else if ((columnDef === null || columnDef === void 0 ? void 0 : columnDef.filterVariant) === 'range' ||
|
667
668
|
['between', 'betweenInclusive', 'inNumberRange'].includes(option)) {
|
668
|
-
|
669
|
-
|
669
|
+
if (!(currentFilterValue === null || currentFilterValue === void 0 ? void 0 : currentFilterValue.every((v) => v === ''))) {
|
670
|
+
column.setFilterValue(['', '']);
|
671
|
+
setFilterValue === null || setFilterValue === void 0 ? void 0 : setFilterValue('');
|
672
|
+
}
|
670
673
|
}
|
671
674
|
else {
|
672
675
|
if (!['', undefined].includes(currentFilterValue)) {
|
@@ -1124,7 +1127,7 @@ const MRT_ToggleRowActionMenuButton = ({ cell, row, table, }) => {
|
|
1124
1127
|
setEditingRow(Object.assign({}, row));
|
1125
1128
|
setAnchorEl(null);
|
1126
1129
|
};
|
1127
|
-
return (React__default["default"].createElement(React__default["default"].Fragment, null, renderRowActions ? (
|
1130
|
+
return (React__default["default"].createElement(React__default["default"].Fragment, null, renderRowActions ? (renderRowActions({ cell, row, table })) : row.id === (editingRow === null || editingRow === void 0 ? void 0 : editingRow.id) && editingMode === 'row' ? (React__default["default"].createElement(MRT_EditActionButtons, { row: row, table: table })) : !renderRowActionMenuItems &&
|
1128
1131
|
(enableEditing instanceof Function
|
1129
1132
|
? enableEditing(row)
|
1130
1133
|
: enableEditing) ? (React__default["default"].createElement(Tooltip__default["default"], { placement: "right", arrow: true, title: localization.edit },
|
@@ -1564,7 +1567,7 @@ const MRT_TableHeadCellColumnActionsButton = ({ header, table, }) => {
|
|
1564
1567
|
};
|
1565
1568
|
|
1566
1569
|
const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
|
1567
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
1570
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
1568
1571
|
const { options: { enableColumnFilterModes, columnFilterModeOptions, icons: { FilterListIcon, CloseIcon }, localization, manualFiltering, muiTableHeadCellFilterTextFieldProps, }, refs: { filterInputRefs }, setColumnFilterFns, } = table;
|
1569
1572
|
const { column } = header;
|
1570
1573
|
const { columnDef } = column;
|
@@ -1749,28 +1752,27 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
|
|
1749
1752
|
? textFieldProps.sx(theme)
|
1750
1753
|
: textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.sx))) }),
|
1751
1754
|
(isSelectFilter || isMultiSelectFilter) && (React__default["default"].createElement(MenuItem__default["default"], { divider: true, disabled: true, hidden: true, value: "" },
|
1752
|
-
React__default["default"].createElement(Box__default["default"], { sx: { opacity: 0.5 } }, filterPlaceholder))), (_k = columnDef === null || columnDef === void 0 ? void 0 : columnDef.filterSelectOptions) === null ||
|
1753
|
-
|
1754
|
-
|
1755
|
-
|
1756
|
-
|
1757
|
-
|
1758
|
-
|
1759
|
-
|
1760
|
-
|
1761
|
-
|
1762
|
-
|
1763
|
-
|
1764
|
-
|
1765
|
-
|
1766
|
-
|
1767
|
-
|
1768
|
-
|
1769
|
-
|
1770
|
-
|
1771
|
-
|
1772
|
-
|
1773
|
-
})),
|
1755
|
+
React__default["default"].createElement(Box__default["default"], { sx: { opacity: 0.5 } }, filterPlaceholder))), (_k = textFieldProps.children) !== null && _k !== void 0 ? _k : (_l = columnDef === null || columnDef === void 0 ? void 0 : columnDef.filterSelectOptions) === null || _l === void 0 ? void 0 : _l.map((option) => {
|
1756
|
+
var _a;
|
1757
|
+
let value;
|
1758
|
+
let text;
|
1759
|
+
if (typeof option !== 'object') {
|
1760
|
+
value = option;
|
1761
|
+
text = option;
|
1762
|
+
}
|
1763
|
+
else {
|
1764
|
+
value = option.value;
|
1765
|
+
text = option.text;
|
1766
|
+
}
|
1767
|
+
return (React__default["default"].createElement(MenuItem__default["default"], { key: value, sx: {
|
1768
|
+
display: 'flex',
|
1769
|
+
m: 0,
|
1770
|
+
alignItems: 'center',
|
1771
|
+
gap: '0.5rem',
|
1772
|
+
}, value: value },
|
1773
|
+
isMultiSelectFilter && (React__default["default"].createElement(Checkbox__default["default"], { checked: ((_a = column.getFilterValue()) !== null && _a !== void 0 ? _a : []).includes(value), sx: { mr: '0.5rem' } })),
|
1774
|
+
text));
|
1775
|
+
})),
|
1774
1776
|
React__default["default"].createElement(MRT_FilterOptionMenu, { anchorEl: anchorEl, header: header, setAnchorEl: setAnchorEl, table: table, setFilterValue: setFilterValue })));
|
1775
1777
|
};
|
1776
1778
|
|
@@ -2126,7 +2128,7 @@ const MRT_TableHead = ({ table, virtualColumns, virtualPaddingLeft, virtualPaddi
|
|
2126
2128
|
};
|
2127
2129
|
|
2128
2130
|
const MRT_EditCellTextField = ({ cell, showLabel, table, }) => {
|
2129
|
-
var _a, _b;
|
2131
|
+
var _a, _b, _c;
|
2130
2132
|
const { getState, options: { muiTableBodyCellEditTextFieldProps }, refs: { editInputRefs }, setEditingCell, setEditingRow, } = table;
|
2131
2133
|
const { column, row } = cell;
|
2132
2134
|
const { columnDef } = column;
|
@@ -2187,7 +2189,7 @@ const MRT_EditCellTextField = ({ cell, showLabel, table, }) => {
|
|
2187
2189
|
var _a;
|
2188
2190
|
e.stopPropagation();
|
2189
2191
|
(_a = textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.onClick) === null || _a === void 0 ? void 0 : _a.call(textFieldProps, e);
|
2190
|
-
}, onBlur: handleBlur, onChange: handleChange, onKeyDown: handleEnterKeyDown }), (_b = columnDef === null || columnDef === void 0 ? void 0 : columnDef.editSelectOptions) === null ||
|
2192
|
+
}, onBlur: handleBlur, onChange: handleChange, onKeyDown: handleEnterKeyDown }), (_b = textFieldProps.children) !== null && _b !== void 0 ? _b : (_c = columnDef === null || columnDef === void 0 ? void 0 : columnDef.editSelectOptions) === null || _c === void 0 ? void 0 : _c.map((option) => {
|
2191
2193
|
let value;
|
2192
2194
|
let text;
|
2193
2195
|
if (typeof option !== 'object') {
|
@@ -2751,7 +2753,7 @@ const MRT_Table = ({ table }) => {
|
|
2751
2753
|
colSizes[`--col-${parseCSSVarId(header.column.id)}-size`] = colSize;
|
2752
2754
|
}
|
2753
2755
|
return colSizes;
|
2754
|
-
}, [columns, columnSizing, columnSizingInfo]);
|
2756
|
+
}, [columns, columnSizing, columnSizingInfo, columnVisibility]);
|
2755
2757
|
//get first 16 column widths and average them
|
2756
2758
|
const averageColumnWidth = React.useMemo(() => {
|
2757
2759
|
var _a, _b, _c, _d;
|
@@ -3033,6 +3035,11 @@ const MRT_TableRoot = (props) => {
|
|
3033
3035
|
tablePaperRef,
|
3034
3036
|
topToolbarRef,
|
3035
3037
|
}, setColumnFilterFns: (_0 = props.onColumnFilterFnsChange) !== null && _0 !== void 0 ? _0 : setColumnFilterFns, setDensity: (_1 = props.onDensityChange) !== null && _1 !== void 0 ? _1 : setDensity, setDraggingColumn: (_2 = props.onDraggingColumnChange) !== null && _2 !== void 0 ? _2 : setDraggingColumn, setDraggingRow: (_3 = props.onDraggingRowChange) !== null && _3 !== void 0 ? _3 : setDraggingRow, setEditingCell: (_4 = props.onEditingCellChange) !== null && _4 !== void 0 ? _4 : setEditingCell, setEditingRow: (_5 = props.onEditingRowChange) !== null && _5 !== void 0 ? _5 : setEditingRow, setGlobalFilterFn: (_6 = props.onGlobalFilterFnChange) !== null && _6 !== void 0 ? _6 : setGlobalFilterFn, setHoveredColumn: (_7 = props.onHoveredColumnChange) !== null && _7 !== void 0 ? _7 : setHoveredColumn, setHoveredRow: (_8 = props.onHoveredRowChange) !== null && _8 !== void 0 ? _8 : setHoveredRow, setIsFullScreen: (_9 = props.onIsFullScreenChange) !== null && _9 !== void 0 ? _9 : setIsFullScreen, setShowAlertBanner: (_10 = props.onShowAlertBannerChange) !== null && _10 !== void 0 ? _10 : setShowAlertBanner, setShowFilters: (_11 = props.onShowFiltersChange) !== null && _11 !== void 0 ? _11 : setShowFilters, setShowGlobalFilter: (_12 = props.onShowGlobalFilterChange) !== null && _12 !== void 0 ? _12 : setShowGlobalFilter, setShowToolbarDropZone: (_13 = props.onShowToolbarDropZoneChange) !== null && _13 !== void 0 ? _13 : setShowToolbarDropZone });
|
3038
|
+
if (props.tableFeatures) {
|
3039
|
+
props.tableFeatures.forEach((feature) => {
|
3040
|
+
Object.assign(table, feature(table));
|
3041
|
+
});
|
3042
|
+
}
|
3036
3043
|
if (props.tableInstanceRef) {
|
3037
3044
|
props.tableInstanceRef.current = table;
|
3038
3045
|
}
|