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.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 borderStyle = columnSizingInfo.isResizingColumn === column.id
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 (columnSizingInfo.isResizingColumn === column.id) {
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 borderStyle = columnSizingInfo.isResizingColumn === column.id &&
2092
- !header.subHeaders.length
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 (columnSizingInfo.isResizingColumn === column.id) {
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
- const colSize = header.getSize();
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 = 'semantic', 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"]);
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
- if (layoutMode === 'semantic') {
3321
- if (rest.enableRowVirtualization || rest.enableColumnVirtualization) {
3322
- layoutMode = 'grid';
3323
- }
3324
- if (enableColumnResizing) {
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;