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.d.ts
CHANGED
@@ -615,7 +615,7 @@ type MRT_TableOptions<TData extends MRT_RowData> = Omit<Partial<TableOptions<TDa
|
|
615
615
|
table: MRT_TableInstance<TData>;
|
616
616
|
}) => Partial<VirtualizerOptions<HTMLDivElement, HTMLTableCellElement>>) | Partial<VirtualizerOptions<HTMLDivElement, HTMLTableCellElement>>;
|
617
617
|
/**
|
618
|
-
* The columns to display in the table. `accessorKey`s or `accessorFn`s must match keys in the `data`
|
618
|
+
* The columns to display in the table. `accessorKey`s or `accessorFn`s must match keys in the `data` table option.
|
619
619
|
*
|
620
620
|
* See more info on creating columns on the official docs site:
|
621
621
|
* @link https://www.material-react-table.com/docs/guides/data-columns
|
@@ -634,7 +634,7 @@ type MRT_TableOptions<TData extends MRT_RowData> = Omit<Partial<TableOptions<TDa
|
|
634
634
|
*/
|
635
635
|
data: TData[];
|
636
636
|
/**
|
637
|
-
* Instead of specifying a bunch of the same options for each column, you can just change an option in the `defaultColumn`
|
637
|
+
* Instead of specifying a bunch of the same options for each column, you can just change an option in the `defaultColumn` table option to change a default option for all columns.
|
638
638
|
*/
|
639
639
|
defaultColumn?: Partial<MRT_ColumnDef<TData>>;
|
640
640
|
/**
|
package/dist/index.esm.js
CHANGED
@@ -424,7 +424,7 @@ const MRT_TableBodyCellValue = ({ cell, table, }) => {
|
|
424
424
|
}
|
425
425
|
if (enableFilterMatchHighlighting &&
|
426
426
|
columnDef.enableFilterMatchHighlighting !== false &&
|
427
|
-
renderedCellValue &&
|
427
|
+
String(renderedCellValue) &&
|
428
428
|
allowedTypes.includes(typeof renderedCellValue) &&
|
429
429
|
((filterValue &&
|
430
430
|
allowedTypes.includes(typeof filterValue) &&
|
@@ -617,7 +617,7 @@ const MRT_TableBodyCell = (_a) => {
|
|
617
617
|
var _b, _c, _d, _e, _f;
|
618
618
|
var { cell, measureElement, numRows, rowIndex, rowRef, table, virtualIndex } = _a, rest = __rest(_a, ["cell", "measureElement", "numRows", "rowIndex", "rowRef", "table", "virtualIndex"]);
|
619
619
|
const theme = useTheme();
|
620
|
-
const { getState, options: { createDisplayMode, editDisplayMode, enableClickToCopy, enableColumnOrdering, enableEditing, enableGrouping, enableRowNumbers, layoutMode, muiSkeletonProps, muiTableBodyCellProps, rowNumberDisplayMode, }, refs: { editInputRefs }, setEditingCell, setHoveredColumn, } = table;
|
620
|
+
const { getState, options: { columnResizeMode, createDisplayMode, editDisplayMode, enableClickToCopy, enableColumnOrdering, enableEditing, enableGrouping, enableRowNumbers, layoutMode, muiSkeletonProps, muiTableBodyCellProps, rowNumberDisplayMode, }, refs: { editInputRefs }, setEditingCell, setHoveredColumn, } = table;
|
621
621
|
const { columnSizingInfo, creatingRow, density, draggingColumn, draggingRow, editingCell, editingRow, hoveredColumn, hoveredRow, isLoading, showSkeletons, } = getState();
|
622
622
|
const { column, row } = cell;
|
623
623
|
const { columnDef } = column;
|
@@ -648,7 +648,9 @@ const MRT_TableBodyCell = (_a) => {
|
|
648
648
|
const isFirstColumn = getIsFirstColumn(column, table);
|
649
649
|
const isLastColumn = getIsLastColumn(column, table);
|
650
650
|
const isLastRow = numRows && rowIndex === numRows - 1;
|
651
|
-
const
|
651
|
+
const showResizeBorder = columnSizingInfo.isResizingColumn === column.id &&
|
652
|
+
columnResizeMode === 'onChange';
|
653
|
+
const borderStyle = showResizeBorder
|
652
654
|
? `2px solid ${draggingBorderColor} !important`
|
653
655
|
: isDraggingColumn || isDraggingRow
|
654
656
|
? `1px dashed ${theme.palette.grey[500]} !important`
|
@@ -657,7 +659,7 @@ const MRT_TableBodyCell = (_a) => {
|
|
657
659
|
columnSizingInfo.isResizingColumn === column.id
|
658
660
|
? `2px dashed ${draggingBorderColor} !important`
|
659
661
|
: undefined;
|
660
|
-
if (
|
662
|
+
if (showResizeBorder) {
|
661
663
|
return { borderRight: borderStyle };
|
662
664
|
}
|
663
665
|
return borderStyle
|
@@ -1918,7 +1920,7 @@ const MRT_TableHeadCellResizeHandle = (_a) => {
|
|
1918
1920
|
}, sx: (theme) => ({
|
1919
1921
|
'&:active > hr': {
|
1920
1922
|
backgroundColor: theme.palette.info.main,
|
1921
|
-
opacity: header.subHeaders.length ? 1 : 0,
|
1923
|
+
opacity: header.subHeaders.length || columnResizeMode === 'onEnd' ? 1 : 0,
|
1922
1924
|
},
|
1923
1925
|
cursor: 'col-resize',
|
1924
1926
|
mr: density === 'compact'
|
@@ -1969,7 +1971,7 @@ const MRT_TableHeadCell = (_a) => {
|
|
1969
1971
|
var _b, _c, _d, _f, _g, _h;
|
1970
1972
|
var { header, table } = _a, rest = __rest(_a, ["header", "table"]);
|
1971
1973
|
const theme = useTheme();
|
1972
|
-
const { getState, options: { columnFilterDisplayMode, enableColumnActions, enableColumnDragging, enableColumnOrdering, enableGrouping, enableMultiSort, layoutMode, muiTableHeadCellProps, }, refs: { tableHeadCellRefs }, setHoveredColumn, } = table;
|
1974
|
+
const { getState, options: { columnFilterDisplayMode, columnResizeMode, enableColumnActions, enableColumnDragging, enableColumnOrdering, enableGrouping, enableMultiSort, layoutMode, muiTableHeadCellProps, }, refs: { tableHeadCellRefs }, setHoveredColumn, } = table;
|
1973
1975
|
const { columnSizingInfo, density, draggingColumn, grouping, hoveredColumn, showColumnFilters, } = getState();
|
1974
1976
|
const { column } = header;
|
1975
1977
|
const { columnDef } = column;
|
@@ -1999,15 +2001,17 @@ const MRT_TableHeadCell = (_a) => {
|
|
1999
2001
|
return pl;
|
2000
2002
|
}, [showColumnActions, showDragHandle]);
|
2001
2003
|
const draggingBorders = useMemo(() => {
|
2002
|
-
const
|
2003
|
-
|
2004
|
+
const showResizeBorder = columnSizingInfo.isResizingColumn === column.id &&
|
2005
|
+
columnResizeMode === 'onChange' &&
|
2006
|
+
!header.subHeaders.length;
|
2007
|
+
const borderStyle = showResizeBorder
|
2004
2008
|
? `2px solid ${draggingBorderColor} !important`
|
2005
2009
|
: (draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.id) === column.id
|
2006
2010
|
? `1px dashed ${theme.palette.grey[500]}`
|
2007
2011
|
: (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === column.id
|
2008
2012
|
? `2px dashed ${draggingBorderColor}`
|
2009
2013
|
: undefined;
|
2010
|
-
if (
|
2014
|
+
if (showResizeBorder) {
|
2011
2015
|
return { borderRight: borderStyle };
|
2012
2016
|
}
|
2013
2017
|
const draggingBorders = borderStyle
|
@@ -2620,11 +2624,14 @@ const MRT_Table = (_a) => {
|
|
2620
2624
|
const tableProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiTableProps, { table })), rest);
|
2621
2625
|
const columnVirtualizerProps = parseFromValuesOrFunc(columnVirtualizerOptions, { table });
|
2622
2626
|
const columnSizeVars = useMemo(() => {
|
2627
|
+
var _a;
|
2623
2628
|
const headers = getFlatHeaders();
|
2624
2629
|
const colSizes = {};
|
2625
2630
|
for (let i = 0; i < headers.length; i++) {
|
2626
2631
|
const header = headers[i];
|
2627
|
-
|
2632
|
+
let colSize = header.getSize();
|
2633
|
+
if ((_a = header.subHeaders) === null || _a === void 0 ? void 0 : _a.length)
|
2634
|
+
colSize = colSize * 1.05 + header.subHeaders.length * 2;
|
2628
2635
|
colSizes[`--header-${parseCSSVarId(header.id)}-size`] = colSize;
|
2629
2636
|
colSizes[`--col-${parseCSSVarId(header.column.id)}-size`] = colSize;
|
2630
2637
|
}
|
@@ -3220,7 +3227,7 @@ const MRT_DefaultDisplayColumn = {
|
|
3220
3227
|
};
|
3221
3228
|
const useMRT_TableOptions = (_a) => {
|
3222
3229
|
var _b;
|
3223
|
-
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
|
3230
|
+
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"]);
|
3224
3231
|
const _icons = useMemo(() => (Object.assign(Object.assign({}, MRT_Default_Icons), icons)), [icons]);
|
3225
3232
|
const _localization = useMemo(() => (Object.assign(Object.assign({}, MRT_Localization_EN), localization)), [localization]);
|
3226
3233
|
const _aggregationFns = useMemo(() => (Object.assign(Object.assign({}, MRT_AggregationFns), aggregationFns)), []);
|
@@ -3228,13 +3235,11 @@ const useMRT_TableOptions = (_a) => {
|
|
3228
3235
|
const _sortingFns = useMemo(() => (Object.assign(Object.assign({}, MRT_SortingFns), sortingFns)), []);
|
3229
3236
|
const _defaultColumn = useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultColumn), defaultColumn)), [defaultColumn]);
|
3230
3237
|
const _defaultDisplayColumn = useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultDisplayColumn), defaultDisplayColumn)), [defaultDisplayColumn]);
|
3231
|
-
|
3232
|
-
|
3233
|
-
|
3234
|
-
|
3235
|
-
|
3236
|
-
layoutMode = 'grid-no-grow';
|
3237
|
-
}
|
3238
|
+
layoutMode =
|
3239
|
+
layoutMode || (enableColumnResizing ? 'grid-no-grow' : 'semantic');
|
3240
|
+
if (layoutMode === 'semantic' &&
|
3241
|
+
(rest.enableRowVirtualization || rest.enableColumnVirtualization)) {
|
3242
|
+
layoutMode = 'grid';
|
3238
3243
|
}
|
3239
3244
|
if (rest.enableRowVirtualization) {
|
3240
3245
|
enableStickyHeader = true;
|