material-react-table 2.0.0-rc.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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;
|