material-react-table 2.0.0-rc.0 → 2.0.0
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/index.d.ts +2 -2
- package/dist/index.esm.js +23 -18
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +23 -18
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
- package/src/body/MRT_TableBodyCell.tsx +14 -11
- package/src/body/MRT_TableBodyCellValue.tsx +1 -1
- package/src/head/MRT_TableHeadCell.tsx +13 -9
- package/src/head/MRT_TableHeadCellResizeHandle.tsx +2 -1
- package/src/hooks/useMRT_TableOptions.ts +8 -8
- package/src/table/MRT_Table.tsx +3 -1
- package/src/types.ts +2 -2
package/dist/index.js
CHANGED
@@ -513,7 +513,7 @@ const MRT_TableBodyCellValue = ({ cell, table, }) => {
|
|
513
513
|
}
|
514
514
|
if (enableFilterMatchHighlighting &&
|
515
515
|
columnDef.enableFilterMatchHighlighting !== false &&
|
516
|
-
renderedCellValue &&
|
516
|
+
String(renderedCellValue) &&
|
517
517
|
allowedTypes.includes(typeof renderedCellValue) &&
|
518
518
|
((filterValue &&
|
519
519
|
allowedTypes.includes(typeof filterValue) &&
|
@@ -706,7 +706,7 @@ const MRT_TableBodyCell = (_a) => {
|
|
706
706
|
var _b, _c, _d, _e, _f;
|
707
707
|
var { cell, measureElement, numRows, rowIndex, rowRef, table, virtualIndex } = _a, rest = __rest(_a, ["cell", "measureElement", "numRows", "rowIndex", "rowRef", "table", "virtualIndex"]);
|
708
708
|
const theme = styles.useTheme();
|
709
|
-
const { getState, options: { createDisplayMode, editDisplayMode, enableClickToCopy, enableColumnOrdering, enableEditing, enableGrouping, enableRowNumbers, layoutMode, muiSkeletonProps, muiTableBodyCellProps, rowNumberDisplayMode, }, refs: { editInputRefs }, setEditingCell, setHoveredColumn, } = table;
|
709
|
+
const { getState, options: { columnResizeMode, createDisplayMode, editDisplayMode, enableClickToCopy, enableColumnOrdering, enableEditing, enableGrouping, enableRowNumbers, layoutMode, muiSkeletonProps, muiTableBodyCellProps, rowNumberDisplayMode, }, refs: { editInputRefs }, setEditingCell, setHoveredColumn, } = table;
|
710
710
|
const { columnSizingInfo, creatingRow, density, draggingColumn, draggingRow, editingCell, editingRow, hoveredColumn, hoveredRow, isLoading, showSkeletons, } = getState();
|
711
711
|
const { column, row } = cell;
|
712
712
|
const { columnDef } = column;
|
@@ -737,7 +737,9 @@ const MRT_TableBodyCell = (_a) => {
|
|
737
737
|
const isFirstColumn = getIsFirstColumn(column, table);
|
738
738
|
const isLastColumn = getIsLastColumn(column, table);
|
739
739
|
const isLastRow = numRows && rowIndex === numRows - 1;
|
740
|
-
const
|
740
|
+
const showResizeBorder = columnSizingInfo.isResizingColumn === column.id &&
|
741
|
+
columnResizeMode === 'onChange';
|
742
|
+
const borderStyle = showResizeBorder
|
741
743
|
? `2px solid ${draggingBorderColor} !important`
|
742
744
|
: isDraggingColumn || isDraggingRow
|
743
745
|
? `1px dashed ${theme.palette.grey[500]} !important`
|
@@ -746,7 +748,7 @@ const MRT_TableBodyCell = (_a) => {
|
|
746
748
|
columnSizingInfo.isResizingColumn === column.id
|
747
749
|
? `2px dashed ${draggingBorderColor} !important`
|
748
750
|
: undefined;
|
749
|
-
if (
|
751
|
+
if (showResizeBorder) {
|
750
752
|
return { borderRight: borderStyle };
|
751
753
|
}
|
752
754
|
return borderStyle
|
@@ -2007,7 +2009,7 @@ const MRT_TableHeadCellResizeHandle = (_a) => {
|
|
2007
2009
|
}, sx: (theme) => ({
|
2008
2010
|
'&:active > hr': {
|
2009
2011
|
backgroundColor: theme.palette.info.main,
|
2010
|
-
opacity: header.subHeaders.length ? 1 : 0,
|
2012
|
+
opacity: header.subHeaders.length || columnResizeMode === 'onEnd' ? 1 : 0,
|
2011
2013
|
},
|
2012
2014
|
cursor: 'col-resize',
|
2013
2015
|
mr: density === 'compact'
|
@@ -2058,7 +2060,7 @@ const MRT_TableHeadCell = (_a) => {
|
|
2058
2060
|
var _b, _c, _d, _f, _g, _h;
|
2059
2061
|
var { header, table } = _a, rest = __rest(_a, ["header", "table"]);
|
2060
2062
|
const theme = styles.useTheme();
|
2061
|
-
const { getState, options: { columnFilterDisplayMode, enableColumnActions, enableColumnDragging, enableColumnOrdering, enableGrouping, enableMultiSort, layoutMode, muiTableHeadCellProps, }, refs: { tableHeadCellRefs }, setHoveredColumn, } = table;
|
2063
|
+
const { getState, options: { columnFilterDisplayMode, columnResizeMode, enableColumnActions, enableColumnDragging, enableColumnOrdering, enableGrouping, enableMultiSort, layoutMode, muiTableHeadCellProps, }, refs: { tableHeadCellRefs }, setHoveredColumn, } = table;
|
2062
2064
|
const { columnSizingInfo, density, draggingColumn, grouping, hoveredColumn, showColumnFilters, } = getState();
|
2063
2065
|
const { column } = header;
|
2064
2066
|
const { columnDef } = column;
|
@@ -2088,15 +2090,17 @@ const MRT_TableHeadCell = (_a) => {
|
|
2088
2090
|
return pl;
|
2089
2091
|
}, [showColumnActions, showDragHandle]);
|
2090
2092
|
const draggingBorders = react.useMemo(() => {
|
2091
|
-
const
|
2092
|
-
|
2093
|
+
const showResizeBorder = columnSizingInfo.isResizingColumn === column.id &&
|
2094
|
+
columnResizeMode === 'onChange' &&
|
2095
|
+
!header.subHeaders.length;
|
2096
|
+
const borderStyle = showResizeBorder
|
2093
2097
|
? `2px solid ${draggingBorderColor} !important`
|
2094
2098
|
: (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id) === column.id
|
2095
2099
|
? `1px dashed ${theme.palette.grey[500]}`
|
2096
2100
|
: (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === column.id
|
2097
2101
|
? `2px dashed ${draggingBorderColor}`
|
2098
2102
|
: undefined;
|
2099
|
-
if (
|
2103
|
+
if (showResizeBorder) {
|
2100
2104
|
return { borderRight: borderStyle };
|
2101
2105
|
}
|
2102
2106
|
const draggingBorders = borderStyle
|
@@ -2709,11 +2713,14 @@ const MRT_Table = (_a) => {
|
|
2709
2713
|
const tableProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiTableProps, { table })), rest);
|
2710
2714
|
const columnVirtualizerProps = parseFromValuesOrFunc(columnVirtualizerOptions, { table });
|
2711
2715
|
const columnSizeVars = react.useMemo(() => {
|
2716
|
+
var _a;
|
2712
2717
|
const headers = getFlatHeaders();
|
2713
2718
|
const colSizes = {};
|
2714
2719
|
for (let i = 0; i < headers.length; i++) {
|
2715
2720
|
const header = headers[i];
|
2716
|
-
|
2721
|
+
let colSize = header.getSize();
|
2722
|
+
if ((_a = header.subHeaders) === null || _a === void 0 ? void 0 : _a.length)
|
2723
|
+
colSize = colSize * 1.05 + header.subHeaders.length * 2;
|
2717
2724
|
colSizes[`--header-${parseCSSVarId(header.id)}-size`] = colSize;
|
2718
2725
|
colSizes[`--col-${parseCSSVarId(header.column.id)}-size`] = colSize;
|
2719
2726
|
}
|
@@ -3309,7 +3316,7 @@ const MRT_DefaultDisplayColumn = {
|
|
3309
3316
|
};
|
3310
3317
|
const useMRT_TableOptions = (_a) => {
|
3311
3318
|
var _b;
|
3312
|
-
var { aggregationFns, autoResetExpanded = false, columnFilterDisplayMode = 'subheader', columnResizeMode = 'onChange', createDisplayMode = 'modal', defaultColumn, defaultDisplayColumn, editDisplayMode = 'modal', enableBottomToolbar = true, enableColumnActions = true, enableColumnFilters = true, enableColumnOrdering = false, enableColumnPinning = false, enableColumnResizing = false, enableDensityToggle = true, enableExpandAll = true, enableExpanding, enableFilterMatchHighlighting = true, enableFilters = true, enableFullScreenToggle = true, enableGlobalFilter = true, enableGlobalFilterRankedResults = true, enableGrouping = false, enableHiding = true, enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, enableRowPinning = false, enableRowSelection = false, enableSelectAll = true, enableSorting = true, enableStickyHeader = false, enableTableFooter = true, enableTableHead = true, enableToolbarInternalActions = true, enableTopToolbar = true, filterFns, icons, layoutMode
|
3319
|
+
var { aggregationFns, autoResetExpanded = false, columnFilterDisplayMode = 'subheader', columnResizeMode = 'onChange', createDisplayMode = 'modal', defaultColumn, defaultDisplayColumn, editDisplayMode = 'modal', enableBottomToolbar = true, enableColumnActions = true, enableColumnFilters = true, enableColumnOrdering = false, enableColumnPinning = false, enableColumnResizing = false, enableDensityToggle = true, enableExpandAll = true, enableExpanding, enableFilterMatchHighlighting = true, enableFilters = true, enableFullScreenToggle = true, enableGlobalFilter = true, enableGlobalFilterRankedResults = true, enableGrouping = false, enableHiding = true, enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, enableRowPinning = false, enableRowSelection = false, enableSelectAll = true, enableSorting = true, enableStickyHeader = false, enableTableFooter = true, enableTableHead = true, enableToolbarInternalActions = true, enableTopToolbar = true, filterFns, icons, layoutMode, localization, manualFiltering, manualGrouping, manualPagination, manualSorting, paginationDisplayMode = 'default', positionActionsColumn = 'first', positionExpandColumn = 'first', positionGlobalFilter = 'right', positionPagination = 'bottom', positionToolbarAlertBanner = 'top', positionToolbarDropZone = 'top', rowNumberDisplayMode = 'static', rowPinningDisplayMode = 'sticky', selectAllMode = 'page', sortingFns } = _a, rest = __rest(_a, ["aggregationFns", "autoResetExpanded", "columnFilterDisplayMode", "columnResizeMode", "createDisplayMode", "defaultColumn", "defaultDisplayColumn", "editDisplayMode", "enableBottomToolbar", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnPinning", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableExpanding", "enableFilterMatchHighlighting", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enableRowPinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarInternalActions", "enableTopToolbar", "filterFns", "icons", "layoutMode", "localization", "manualFiltering", "manualGrouping", "manualPagination", "manualSorting", "paginationDisplayMode", "positionActionsColumn", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberDisplayMode", "rowPinningDisplayMode", "selectAllMode", "sortingFns"]);
|
3313
3320
|
const _icons = react.useMemo(() => (Object.assign(Object.assign({}, MRT_Default_Icons), icons)), [icons]);
|
3314
3321
|
const _localization = react.useMemo(() => (Object.assign(Object.assign({}, MRT_Localization_EN), localization)), [localization]);
|
3315
3322
|
const _aggregationFns = react.useMemo(() => (Object.assign(Object.assign({}, MRT_AggregationFns), aggregationFns)), []);
|
@@ -3317,13 +3324,11 @@ const useMRT_TableOptions = (_a) => {
|
|
3317
3324
|
const _sortingFns = react.useMemo(() => (Object.assign(Object.assign({}, MRT_SortingFns), sortingFns)), []);
|
3318
3325
|
const _defaultColumn = react.useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultColumn), defaultColumn)), [defaultColumn]);
|
3319
3326
|
const _defaultDisplayColumn = react.useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultDisplayColumn), defaultDisplayColumn)), [defaultDisplayColumn]);
|
3320
|
-
|
3321
|
-
|
3322
|
-
|
3323
|
-
|
3324
|
-
|
3325
|
-
layoutMode = 'grid-no-grow';
|
3326
|
-
}
|
3327
|
+
layoutMode =
|
3328
|
+
layoutMode || (enableColumnResizing ? 'grid-no-grow' : 'semantic');
|
3329
|
+
if (layoutMode === 'semantic' &&
|
3330
|
+
(rest.enableRowVirtualization || rest.enableColumnVirtualization)) {
|
3331
|
+
layoutMode = 'grid';
|
3327
3332
|
}
|
3328
3333
|
if (rest.enableRowVirtualization) {
|
3329
3334
|
enableStickyHeader = true;
|