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 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;