material-react-table 0.9.3 → 0.9.6

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.
@@ -1,6 +1,7 @@
1
1
  import { ChangeEvent, Dispatch, FC, FocusEvent, MouseEvent, ReactNode, SetStateAction } from 'react';
2
2
  import { AlertProps, ButtonProps, CheckboxProps, IconButtonProps, LinearProgressProps, PaperProps, SkeletonProps, TableBodyProps, TableCellProps, TableContainerProps, TableFooterProps, TableHeadProps, TablePaginationProps, TableProps, TableRowProps, TextFieldProps, ToolbarProps } from '@mui/material';
3
3
  import { Cell, Column, ColumnDef, FilterFn, FilterFnOption, Header, HeaderGroup, Overwrite, ReactTableGenerics, Row, TableGenerics, TableInstance, TableState, UseTableInstanceOptions, VisibilityState } from '@tanstack/react-table';
4
+ import { Options as VirtualizerOptions } from 'react-virtual';
4
5
  import { MRT_Localization } from './localization';
5
6
  import { MRT_Icons } from './icons';
6
7
  import { MRT_FILTER_OPTION } from './enums';
@@ -402,8 +403,10 @@ export declare type MaterialReactTableProps<D extends Record<string, any> = {}>
402
403
  tableInstance: MRT_TableInstance<D>;
403
404
  }>;
404
405
  }) => ReactNode;
406
+ rowNumberMode?: 'original' | 'static';
405
407
  selectAllMode?: 'all' | 'page';
406
408
  tableId?: string;
409
+ virtualizerProps?: VirtualizerOptions<HTMLDivElement>;
407
410
  };
408
- declare const _default: <D extends Record<string, any> = {}>({ autoResetExpanded, columnResizeMode, defaultColumn, editingMode, enableColumnActions, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensePaddingToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableGrouping, enableHiding, enableMultiRowSelection, enablePagination, enablePinning, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarBottom, enableToolbarInternalActions, enableToolbarTop, icons, localization, persistentStateMode, positionActionsColumn, positionPagination, positionGlobalFilter, positionToolbarActions, positionToolbarAlertBanner, selectAllMode, ...rest }: MaterialReactTableProps<D>) => JSX.Element;
411
+ declare const _default: <D extends Record<string, any> = {}>({ autoResetExpanded, columnResizeMode, defaultColumn, editingMode, enableColumnActions, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensePaddingToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableGrouping, enableHiding, enableMultiRowSelection, enablePagination, enablePinning, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarBottom, enableToolbarInternalActions, enableToolbarTop, icons, localization, persistentStateMode, positionActionsColumn, positionPagination, positionGlobalFilter, positionToolbarActions, positionToolbarAlertBanner, rowNumberMode, selectAllMode, ...rest }: MaterialReactTableProps<D>) => JSX.Element;
409
412
  export default _default;
@@ -3,6 +3,7 @@ import type { MRT_Cell, MRT_TableInstance } from '..';
3
3
  interface Props {
4
4
  cell: MRT_Cell;
5
5
  enableHover?: boolean;
6
+ rowIndex: number;
6
7
  tableInstance: MRT_TableInstance;
7
8
  }
8
9
  export declare const MRT_TableBodyCell: FC<Props>;
@@ -2,6 +2,7 @@ import { FC } from 'react';
2
2
  import type { MRT_Row, MRT_TableInstance } from '..';
3
3
  interface Props {
4
4
  row: MRT_Row;
5
+ rowIndex: number;
5
6
  tableInstance: MRT_TableInstance;
6
7
  }
7
8
  export declare const MRT_TableBodyRow: FC<Props>;
@@ -6108,7 +6108,7 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
6108
6108
  };
6109
6109
 
6110
6110
  var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
6111
- var _ref2, _ref3, _columnDef$minSize, _columnDef$header$len, _columnDef$header;
6111
+ var _ref2, _ref3, _columnDef$header$len, _columnDef$header;
6112
6112
 
6113
6113
  var dragRef = _ref.dragRef,
6114
6114
  dropRef = _ref.dropRef,
@@ -6165,6 +6165,8 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
6165
6165
  }, tableCellProps, {
6166
6166
  ref: columnDefType === 'data' && enableColumnOrdering ? dropRef : undefined,
6167
6167
  sx: function sx(theme) {
6168
+ var _columnDef$minSize;
6169
+
6168
6170
  return _extends({
6169
6171
  backgroundColor: column.getIsPinned() && columnDefType !== 'group' ? material.alpha(material.lighten(theme.palette.background["default"], 0.04), 0.95) : 'inherit',
6170
6172
  backgroundImage: 'inherit',
@@ -6181,12 +6183,11 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
6181
6183
  transition: "all " + (enableColumnResizing ? 0 : '0.2s') + " ease-in-out",
6182
6184
  verticalAlign: 'text-top',
6183
6185
  zIndex: column.getIsResizing() ? 3 : column.getIsPinned() && columnDefType !== 'group' ? 2 : 1
6184
- }, tableCellProps == null ? void 0 : tableCellProps.sx);
6185
- },
6186
- style: {
6187
- maxWidth: "min(" + column.getSize() + "px, fit-content)",
6188
- minWidth: "max(" + column.getSize() + "px, " + ((_columnDef$minSize = columnDef.minSize) != null ? _columnDef$minSize : 30) + "px)",
6189
- width: header.getSize()
6186
+ }, tableCellProps == null ? void 0 : tableCellProps.sx, {
6187
+ maxWidth: "min(" + column.getSize() + "px, fit-content)",
6188
+ minWidth: "max(" + column.getSize() + "px, " + ((_columnDef$minSize = columnDef.minSize) != null ? _columnDef$minSize : 30) + "px)",
6189
+ width: header.getSize()
6190
+ });
6190
6191
  }
6191
6192
  }), header.isPlaceholder ? null : columnDefType === 'display' ? headerElement : React__default.createElement(material.Box, {
6192
6193
  ref: previewRef,
@@ -6971,22 +6972,23 @@ var MRT_CopyButton = function MRT_CopyButton(_ref) {
6971
6972
  };
6972
6973
 
6973
6974
  var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
6974
- var _columnDef$minSize, _columnDef$Cell, _row$subRows, _columnDef$Cell2, _row$subRows$length, _row$subRows2;
6975
+ var _columnDef$Cell, _row$subRows, _columnDef$Cell2, _row$subRows$length, _row$subRows2;
6975
6976
 
6976
6977
  var cell = _ref.cell,
6977
6978
  enableHover = _ref.enableHover,
6979
+ rowIndex = _ref.rowIndex,
6978
6980
  tableInstance = _ref.tableInstance;
6979
6981
  var getState = tableInstance.getState,
6980
6982
  _tableInstance$option = tableInstance.options,
6981
6983
  editingMode = _tableInstance$option.editingMode,
6982
6984
  enableClickToCopy = _tableInstance$option.enableClickToCopy,
6983
6985
  enableColumnOrdering = _tableInstance$option.enableColumnOrdering,
6984
- enableColumnResizing = _tableInstance$option.enableColumnResizing,
6985
6986
  enableEditing = _tableInstance$option.enableEditing,
6986
- enableRowVirtualization = _tableInstance$option.enableRowVirtualization,
6987
+ enableRowNumbers = _tableInstance$option.enableRowNumbers,
6987
6988
  muiTableBodyCellProps = _tableInstance$option.muiTableBodyCellProps,
6988
6989
  muiTableBodyCellSkeletonProps = _tableInstance$option.muiTableBodyCellSkeletonProps,
6989
6990
  onMrtCellClick = _tableInstance$option.onMrtCellClick,
6991
+ rowNumberMode = _tableInstance$option.rowNumberMode,
6990
6992
  tableId = _tableInstance$option.tableId,
6991
6993
  setColumnOrder = tableInstance.setColumnOrder,
6992
6994
  setCurrentEditingCell = tableInstance.setCurrentEditingCell;
@@ -7063,11 +7065,12 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
7063
7065
  tableInstance: tableInstance
7064
7066
  });
7065
7067
  },
7066
- onDoubleClick: handleDoubleClick,
7067
- title: (enableRowVirtualization || enableColumnResizing) && !(columnDef != null && columnDef.Cell) && !cell.getIsGrouped() && !columnDef.enableClickToCopy && typeof cell.getValue() === 'string' ? cell.getValue() : ''
7068
+ onDoubleClick: handleDoubleClick
7068
7069
  }, tableCellProps, {
7069
7070
  ref: columnDefType === 'data' && enableColumnOrdering ? dropRef : undefined,
7070
7071
  sx: function sx(theme) {
7072
+ var _columnDef$minSize;
7073
+
7071
7074
  return _extends({
7072
7075
  backgroundColor: column.getIsPinned() ? material.alpha(material.lighten(theme.palette.background["default"], 0.04), 0.95) : undefined,
7073
7076
  boxShadow: getIsLastLeftPinnedColumn() ? "4px 0 4px -2px " + material.alpha(theme.palette.common.black, 0.1) : getIsFirstRightPinnedColumn() ? "-4px 0 4px -2px " + material.alpha(theme.palette.common.black, 0.1) : undefined,
@@ -7078,25 +7081,24 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
7078
7081
  pl: column.id === 'mrt-expand' ? row.depth + (isDensePadding ? 0.5 : 0.75) + "rem" : undefined,
7079
7082
  position: column.getIsPinned() ? 'sticky' : 'relative',
7080
7083
  right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
7081
- textOverflow: 'ellipsis',
7084
+ textOverflow: columnDefType !== 'display' ? 'ellipsis' : undefined,
7082
7085
  transition: 'all 0.2s ease-in-out',
7083
7086
  whiteSpace: isDensePadding ? 'nowrap' : 'normal',
7084
7087
  zIndex: column.getIsPinned() ? 1 : undefined,
7085
7088
  '&:hover': {
7086
7089
  backgroundColor: enableHover && enableEditing && editingMode !== 'row' ? theme.palette.mode === 'dark' ? material.lighten(theme.palette.background["default"], 0.13) + " !important" : material.darken(theme.palette.background["default"], 0.07) + " !important" : undefined
7087
7090
  }
7088
- }, tableCellProps == null ? void 0 : tableCellProps.sx);
7089
- },
7090
- style: {
7091
- maxWidth: "min(" + column.getSize() + "px, fit-content)",
7092
- minWidth: "max(" + column.getSize() + "px, " + ((_columnDef$minSize = columnDef.minSize) != null ? _columnDef$minSize : 30) + "px)",
7093
- width: column.getSize()
7091
+ }, tableCellProps == null ? void 0 : tableCellProps.sx, {
7092
+ maxWidth: "min(" + column.getSize() + "px, fit-content)",
7093
+ minWidth: "max(" + column.getSize() + "px, " + ((_columnDef$minSize = columnDef.minSize) != null ? _columnDef$minSize : 30) + "px)",
7094
+ width: column.getSize()
7095
+ });
7094
7096
  }
7095
7097
  }), React__default.createElement(React__default.Fragment, null, isLoading || showSkeletons ? React__default.createElement(material.Skeleton, Object.assign({
7096
7098
  animation: "wave",
7097
7099
  height: 20,
7098
7100
  width: skeletonWidth
7099
- }, muiTableBodyCellSkeletonProps)) : columnDefType === 'display' ? columnDef.Cell == null ? void 0 : columnDef.Cell({
7101
+ }, muiTableBodyCellSkeletonProps)) : enableRowNumbers && rowNumberMode === 'static' && column.id === 'mrt-row-numbers' ? rowIndex + 1 : columnDefType === 'display' ? columnDef.Cell == null ? void 0 : columnDef.Cell({
7100
7102
  cell: cell,
7101
7103
  tableInstance: tableInstance
7102
7104
  }) : cell.getIsPlaceholder() || row.getIsGrouped() && column.id !== row.groupingColumnId ? null : cell.getIsAggregated() ? cell.renderAggregatedCell() : isEditing ? React__default.createElement(MRT_EditCellTextField, {
@@ -7117,7 +7119,7 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
7117
7119
  var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref) {
7118
7120
  var row = _ref.row,
7119
7121
  tableInstance = _ref.tableInstance;
7120
- var getVisibleFlatColumns = tableInstance.getVisibleFlatColumns,
7122
+ var getVisibleLeafColumns = tableInstance.getVisibleLeafColumns,
7121
7123
  _tableInstance$option = tableInstance.options,
7122
7124
  muiTableBodyRowProps = _tableInstance$option.muiTableBodyRowProps,
7123
7125
  muiTableDetailPanelProps = _tableInstance$option.muiTableDetailPanelProps,
@@ -7132,7 +7134,7 @@ var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref) {
7132
7134
  tableInstance: tableInstance
7133
7135
  }) : muiTableDetailPanelProps;
7134
7136
  return React__default.createElement(material.TableRow, Object.assign({}, tableRowProps), React__default.createElement(material.TableCell, Object.assign({
7135
- colSpan: getVisibleFlatColumns().length + 10,
7137
+ colSpan: getVisibleLeafColumns().length,
7136
7138
  onClick: function onClick(event) {
7137
7139
  return onMrtDetailPanelClick == null ? void 0 : onMrtDetailPanelClick({
7138
7140
  event: event,
@@ -7145,7 +7147,8 @@ var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref) {
7145
7147
  borderBottom: !row.getIsExpanded() ? 'none' : undefined,
7146
7148
  pb: row.getIsExpanded() ? '1rem' : 0,
7147
7149
  pt: row.getIsExpanded() ? '1rem' : 0,
7148
- transition: 'all 0.2s ease-in-out'
7150
+ transition: 'all 0.2s ease-in-out',
7151
+ width: tableInstance.getTotalSize() + "px"
7149
7152
  }, tableCellProps == null ? void 0 : tableCellProps.sx)
7150
7153
  }), React__default.createElement(material.Collapse, {
7151
7154
  "in": row.getIsExpanded()
@@ -7157,6 +7160,7 @@ var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref) {
7157
7160
 
7158
7161
  var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
7159
7162
  var row = _ref.row,
7163
+ rowIndex = _ref.rowIndex,
7160
7164
  tableInstance = _ref.tableInstance;
7161
7165
  var getIsSomeColumnsPinned = tableInstance.getIsSomeColumnsPinned,
7162
7166
  _tableInstance$option = tableInstance.options,
@@ -7192,6 +7196,7 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
7192
7196
  cell: cell,
7193
7197
  key: cell.id,
7194
7198
  enableHover: (tableRowProps == null ? void 0 : tableRowProps.hover) !== false,
7199
+ rowIndex: rowIndex,
7195
7200
  tableInstance: tableInstance
7196
7201
  });
7197
7202
  })), renderDetailPanel && !row.getIsGrouped() && React__default.createElement(MRT_TableDetailPanel, {
@@ -7209,7 +7214,8 @@ var MRT_TableBody = function MRT_TableBody(_ref) {
7209
7214
  _tableInstance$option = tableInstance.options,
7210
7215
  enablePagination = _tableInstance$option.enablePagination,
7211
7216
  enableRowVirtualization = _tableInstance$option.enableRowVirtualization,
7212
- muiTableBodyProps = _tableInstance$option.muiTableBodyProps;
7217
+ muiTableBodyProps = _tableInstance$option.muiTableBodyProps,
7218
+ virtualizerProps = _tableInstance$option.virtualizerProps;
7213
7219
 
7214
7220
  var _getState = getState(),
7215
7221
  isDensePadding = _getState.isDensePadding;
@@ -7218,11 +7224,11 @@ var MRT_TableBody = function MRT_TableBody(_ref) {
7218
7224
  tableInstance: tableInstance
7219
7225
  }) : muiTableBodyProps;
7220
7226
  var rows = enablePagination ? getPaginationRowModel().rows : getPrePaginationRowModel().rows;
7221
- var rowVirtualizer = enableRowVirtualization ? useVirtual({
7227
+ var rowVirtualizer = enableRowVirtualization ? useVirtual(_extends({
7222
7228
  overscan: isDensePadding ? 15 : 5,
7223
7229
  size: rows.length,
7224
7230
  parentRef: tableContainerRef
7225
- }) : {};
7231
+ }, virtualizerProps)) : {};
7226
7232
  var virtualRows = rowVirtualizer.virtualItems;
7227
7233
  var paddingTop = (virtualRows == null ? void 0 : virtualRows.length) > 0 ? virtualRows[0].start : 0;
7228
7234
  var paddingBottom = (virtualRows == null ? void 0 : virtualRows.length) > 0 ? rowVirtualizer.totalSize - virtualRows[virtualRows.length - 1].end : 0;
@@ -7230,11 +7236,12 @@ var MRT_TableBody = function MRT_TableBody(_ref) {
7230
7236
  style: {
7231
7237
  height: paddingTop + "px"
7232
7238
  }
7233
- })), (enableRowVirtualization ? virtualRows : rows).map(function (rowOrVirtualRow) {
7239
+ })), (enableRowVirtualization ? virtualRows : rows).map(function (rowOrVirtualRow, rowIndex) {
7234
7240
  var row = enableRowVirtualization ? rows[rowOrVirtualRow.index] : rowOrVirtualRow;
7235
7241
  return React__default.createElement(MRT_TableBodyRow, {
7236
7242
  key: row.id,
7237
7243
  row: row,
7244
+ rowIndex: enableRowVirtualization ? rowOrVirtualRow.index : rowIndex,
7238
7245
  tableInstance: tableInstance
7239
7246
  });
7240
7247
  }), enableRowVirtualization && paddingBottom > 0 && React__default.createElement("tr", null, React__default.createElement("td", {
@@ -7351,7 +7358,7 @@ var MRT_Table = function MRT_Table(_ref) {
7351
7358
  stickyHeader: enableStickyHeader
7352
7359
  }, tableProps, {
7353
7360
  sx: _extends({
7354
- tableLayout: enableColumnResizing || enableRowVirtualization ? 'fixed' : undefined
7361
+ tableLayout: enableColumnResizing || enableRowVirtualization ? 'fixed' : 'auto'
7355
7362
  }, tableProps == null ? void 0 : tableProps.sx)
7356
7363
  }), enableTableHead && React__default.createElement(MRT_TableHead, {
7357
7364
  tableInstance: tableInstance
@@ -7715,7 +7722,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7715
7722
  }));
7716
7723
  };
7717
7724
 
7718
- var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensePaddingToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enablePagination", "enablePinning", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "persistentStateMode", "positionActionsColumn", "positionPagination", "positionGlobalFilter", "positionToolbarActions", "positionToolbarAlertBanner", "selectAllMode"];
7725
+ var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensePaddingToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enablePagination", "enablePinning", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "persistentStateMode", "positionActionsColumn", "positionPagination", "positionGlobalFilter", "positionToolbarActions", "positionToolbarAlertBanner", "rowNumberMode", "selectAllMode"];
7719
7726
  var MaterialReactTable = (function (_ref) {
7720
7727
  var _ref$autoResetExpande = _ref.autoResetExpanded,
7721
7728
  autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
@@ -7723,7 +7730,7 @@ var MaterialReactTable = (function (_ref) {
7723
7730
  columnResizeMode = _ref$columnResizeMode === void 0 ? 'onEnd' : _ref$columnResizeMode,
7724
7731
  _ref$defaultColumn = _ref.defaultColumn,
7725
7732
  defaultColumn = _ref$defaultColumn === void 0 ? {
7726
- minSize: 30,
7733
+ minSize: 40,
7727
7734
  maxSize: 1000,
7728
7735
  size: 180
7729
7736
  } : _ref$defaultColumn,
@@ -7787,6 +7794,8 @@ var MaterialReactTable = (function (_ref) {
7787
7794
  positionToolbarActions = _ref$positionToolbarA === void 0 ? 'top' : _ref$positionToolbarA,
7788
7795
  _ref$positionToolbarA2 = _ref.positionToolbarAlertBanner,
7789
7796
  positionToolbarAlertBanner = _ref$positionToolbarA2 === void 0 ? 'top' : _ref$positionToolbarA2,
7797
+ _ref$rowNumberMode = _ref.rowNumberMode,
7798
+ rowNumberMode = _ref$rowNumberMode === void 0 ? 'original' : _ref$rowNumberMode,
7790
7799
  _ref$selectAllMode = _ref.selectAllMode,
7791
7800
  selectAllMode = _ref$selectAllMode === void 0 ? 'all' : _ref$selectAllMode,
7792
7801
  rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
@@ -7826,6 +7835,7 @@ var MaterialReactTable = (function (_ref) {
7826
7835
  positionPagination: positionPagination,
7827
7836
  positionToolbarActions: positionToolbarActions,
7828
7837
  positionToolbarAlertBanner: positionToolbarAlertBanner,
7838
+ rowNumberMode: rowNumberMode,
7829
7839
  selectAllMode: selectAllMode
7830
7840
  }, rest));
7831
7841
  });