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 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` prop.
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` prop to change a default option for all columns.
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 borderStyle = columnSizingInfo.isResizingColumn === column.id
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 (columnSizingInfo.isResizingColumn === column.id) {
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 borderStyle = columnSizingInfo.isResizingColumn === column.id &&
2003
- !header.subHeaders.length
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 (columnSizingInfo.isResizingColumn === column.id) {
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
- const colSize = header.getSize();
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 = '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"]);
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
- if (layoutMode === 'semantic') {
3232
- if (rest.enableRowVirtualization || rest.enableColumnVirtualization) {
3233
- layoutMode = 'grid';
3234
- }
3235
- if (enableColumnResizing) {
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;