material-react-table 0.9.1 → 0.9.4

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.
@@ -5,6 +5,7 @@ import { Tooltip, IconButton, Menu, MenuItem, Box, FormControlLabel, Switch, But
5
5
  import { rankItem, rankings } from '@tanstack/match-sorter-utils';
6
6
  import { useDrop, useDrag, DndProvider } from 'react-dnd';
7
7
  import { HTML5Backend } from 'react-dnd-html5-backend';
8
+ import { useVirtual } from 'react-virtual';
8
9
 
9
10
  function _extends() {
10
11
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -1911,7 +1912,7 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
1911
1912
  }, toolbarProps == null ? void 0 : toolbarProps.sx);
1912
1913
  }
1913
1914
  }), React.createElement(MRT_LinearProgressBar, {
1914
- alignTo: 'top',
1915
+ alignTo: "top",
1915
1916
  tableInstance: tableInstance
1916
1917
  }), positionToolbarAlertBanner === 'bottom' && React.createElement(MRT_ToolbarAlertBanner, {
1917
1918
  tableInstance: tableInstance
@@ -2730,17 +2731,22 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2730
2731
 
2731
2732
  var cell = _ref.cell,
2732
2733
  enableHover = _ref.enableHover,
2734
+ rowIndex = _ref.rowIndex,
2733
2735
  tableInstance = _ref.tableInstance;
2734
2736
  var getState = tableInstance.getState,
2735
2737
  _tableInstance$option = tableInstance.options,
2736
2738
  editingMode = _tableInstance$option.editingMode,
2737
2739
  enableClickToCopy = _tableInstance$option.enableClickToCopy,
2738
2740
  enableColumnOrdering = _tableInstance$option.enableColumnOrdering,
2741
+ enableColumnResizing = _tableInstance$option.enableColumnResizing,
2739
2742
  enableEditing = _tableInstance$option.enableEditing,
2740
- tableId = _tableInstance$option.tableId,
2743
+ enableRowNumbers = _tableInstance$option.enableRowNumbers,
2744
+ enableRowVirtualization = _tableInstance$option.enableRowVirtualization,
2741
2745
  muiTableBodyCellProps = _tableInstance$option.muiTableBodyCellProps,
2742
2746
  muiTableBodyCellSkeletonProps = _tableInstance$option.muiTableBodyCellSkeletonProps,
2743
2747
  onMrtCellClick = _tableInstance$option.onMrtCellClick,
2748
+ rowNumberMode = _tableInstance$option.rowNumberMode,
2749
+ tableId = _tableInstance$option.tableId,
2744
2750
  setColumnOrder = tableInstance.setColumnOrder,
2745
2751
  setCurrentEditingCell = tableInstance.setCurrentEditingCell;
2746
2752
 
@@ -2816,7 +2822,8 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2816
2822
  tableInstance: tableInstance
2817
2823
  });
2818
2824
  },
2819
- onDoubleClick: handleDoubleClick
2825
+ onDoubleClick: handleDoubleClick,
2826
+ title: (enableRowVirtualization || enableColumnResizing) && !(columnDef != null && columnDef.Cell) && !cell.getIsGrouped() && !columnDef.enableClickToCopy && typeof cell.getValue() === 'string' ? cell.getValue() : ''
2820
2827
  }, tableCellProps, {
2821
2828
  ref: columnDefType === 'data' && enableColumnOrdering ? dropRef : undefined,
2822
2829
  sx: function sx(theme) {
@@ -2825,10 +2832,12 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2825
2832
  boxShadow: getIsLastLeftPinnedColumn() ? "4px 0 4px -2px " + alpha(theme.palette.common.black, 0.1) : getIsFirstRightPinnedColumn() ? "-4px 0 4px -2px " + alpha(theme.palette.common.black, 0.1) : undefined,
2826
2833
  cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',
2827
2834
  left: column.getIsPinned() === 'left' ? column.getStart('left') + "px" : undefined,
2835
+ overflow: 'hidden',
2828
2836
  p: isDensePadding ? columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
2829
2837
  pl: column.id === 'mrt-expand' ? row.depth + (isDensePadding ? 0.5 : 0.75) + "rem" : undefined,
2830
2838
  position: column.getIsPinned() ? 'sticky' : 'relative',
2831
2839
  right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
2840
+ textOverflow: 'ellipsis',
2832
2841
  transition: 'all 0.2s ease-in-out',
2833
2842
  whiteSpace: isDensePadding ? 'nowrap' : 'normal',
2834
2843
  zIndex: column.getIsPinned() ? 1 : undefined,
@@ -2846,7 +2855,7 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2846
2855
  animation: "wave",
2847
2856
  height: 20,
2848
2857
  width: skeletonWidth
2849
- }, muiTableBodyCellSkeletonProps)) : columnDefType === 'display' ? columnDef.Cell == null ? void 0 : columnDef.Cell({
2858
+ }, muiTableBodyCellSkeletonProps)) : enableRowNumbers && rowNumberMode === 'static' && column.id === 'mrt-row-numbers' ? rowIndex + 1 : columnDefType === 'display' ? columnDef.Cell == null ? void 0 : columnDef.Cell({
2850
2859
  cell: cell,
2851
2860
  tableInstance: tableInstance
2852
2861
  }) : cell.getIsPlaceholder() || row.getIsGrouped() && column.id !== row.groupingColumnId ? null : cell.getIsAggregated() ? cell.renderAggregatedCell() : isEditing ? React.createElement(MRT_EditCellTextField, {
@@ -2907,6 +2916,7 @@ var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref) {
2907
2916
 
2908
2917
  var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2909
2918
  var row = _ref.row,
2919
+ rowIndex = _ref.rowIndex,
2910
2920
  tableInstance = _ref.tableInstance;
2911
2921
  var getIsSomeColumnsPinned = tableInstance.getIsSomeColumnsPinned,
2912
2922
  _tableInstance$option = tableInstance.options,
@@ -2942,6 +2952,7 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2942
2952
  cell: cell,
2943
2953
  key: cell.id,
2944
2954
  enableHover: (tableRowProps == null ? void 0 : tableRowProps.hover) !== false,
2955
+ rowIndex: rowIndex,
2945
2956
  tableInstance: tableInstance
2946
2957
  });
2947
2958
  })), renderDetailPanel && !row.getIsGrouped() && React.createElement(MRT_TableDetailPanel, {
@@ -2951,23 +2962,48 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2951
2962
  };
2952
2963
 
2953
2964
  var MRT_TableBody = function MRT_TableBody(_ref) {
2954
- var tableInstance = _ref.tableInstance;
2965
+ var tableInstance = _ref.tableInstance,
2966
+ tableContainerRef = _ref.tableContainerRef;
2955
2967
  var getPaginationRowModel = tableInstance.getPaginationRowModel,
2956
2968
  getPrePaginationRowModel = tableInstance.getPrePaginationRowModel,
2969
+ getState = tableInstance.getState,
2957
2970
  _tableInstance$option = tableInstance.options,
2958
2971
  enablePagination = _tableInstance$option.enablePagination,
2972
+ enableRowVirtualization = _tableInstance$option.enableRowVirtualization,
2959
2973
  muiTableBodyProps = _tableInstance$option.muiTableBodyProps;
2960
- var rows = enablePagination ? getPaginationRowModel().rows : getPrePaginationRowModel().rows;
2974
+
2975
+ var _getState = getState(),
2976
+ isDensePadding = _getState.isDensePadding;
2977
+
2961
2978
  var tableBodyProps = muiTableBodyProps instanceof Function ? muiTableBodyProps({
2962
2979
  tableInstance: tableInstance
2963
2980
  }) : muiTableBodyProps;
2964
- return React.createElement(TableBody, Object.assign({}, tableBodyProps), rows.map(function (row) {
2981
+ var rows = enablePagination ? getPaginationRowModel().rows : getPrePaginationRowModel().rows;
2982
+ var rowVirtualizer = enableRowVirtualization ? useVirtual({
2983
+ overscan: isDensePadding ? 15 : 5,
2984
+ size: rows.length,
2985
+ parentRef: tableContainerRef
2986
+ }) : {};
2987
+ var virtualRows = rowVirtualizer.virtualItems;
2988
+ var paddingTop = (virtualRows == null ? void 0 : virtualRows.length) > 0 ? virtualRows[0].start : 0;
2989
+ var paddingBottom = (virtualRows == null ? void 0 : virtualRows.length) > 0 ? rowVirtualizer.totalSize - virtualRows[virtualRows.length - 1].end : 0;
2990
+ return React.createElement(TableBody, Object.assign({}, tableBodyProps), enableRowVirtualization && paddingTop > 0 && React.createElement("tr", null, React.createElement("td", {
2991
+ style: {
2992
+ height: paddingTop + "px"
2993
+ }
2994
+ })), (enableRowVirtualization ? virtualRows : rows).map(function (rowOrVirtualRow, rowIndex) {
2995
+ var row = enableRowVirtualization ? rows[rowOrVirtualRow.index] : rowOrVirtualRow;
2965
2996
  return React.createElement(MRT_TableBodyRow, {
2966
2997
  key: row.id,
2967
2998
  row: row,
2999
+ rowIndex: enableRowVirtualization ? rowOrVirtualRow.index : rowIndex,
2968
3000
  tableInstance: tableInstance
2969
3001
  });
2970
- }));
3002
+ }), enableRowVirtualization && paddingBottom > 0 && React.createElement("tr", null, React.createElement("td", {
3003
+ style: {
3004
+ height: paddingBottom + "px"
3005
+ }
3006
+ })));
2971
3007
  };
2972
3008
 
2973
3009
  var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
@@ -3061,8 +3097,11 @@ var MRT_TableFooter = function MRT_TableFooter(_ref) {
3061
3097
  };
3062
3098
 
3063
3099
  var MRT_Table = function MRT_Table(_ref) {
3064
- var tableInstance = _ref.tableInstance;
3100
+ var tableContainerRef = _ref.tableContainerRef,
3101
+ tableInstance = _ref.tableInstance;
3065
3102
  var _tableInstance$option = tableInstance.options,
3103
+ enableColumnResizing = _tableInstance$option.enableColumnResizing,
3104
+ enableRowVirtualization = _tableInstance$option.enableRowVirtualization,
3066
3105
  enableStickyHeader = _tableInstance$option.enableStickyHeader,
3067
3106
  enableTableFooter = _tableInstance$option.enableTableFooter,
3068
3107
  enableTableHead = _tableInstance$option.enableTableHead,
@@ -3072,9 +3111,14 @@ var MRT_Table = function MRT_Table(_ref) {
3072
3111
  }) : muiTableProps;
3073
3112
  return React.createElement(Table, Object.assign({
3074
3113
  stickyHeader: enableStickyHeader
3075
- }, tableProps), enableTableHead && React.createElement(MRT_TableHead, {
3114
+ }, tableProps, {
3115
+ sx: _extends({
3116
+ tableLayout: enableColumnResizing || enableRowVirtualization ? 'fixed' : undefined
3117
+ }, tableProps == null ? void 0 : tableProps.sx)
3118
+ }), enableTableHead && React.createElement(MRT_TableHead, {
3076
3119
  tableInstance: tableInstance
3077
3120
  }), React.createElement(MRT_TableBody, {
3121
+ tableContainerRef: tableContainerRef,
3078
3122
  tableInstance: tableInstance
3079
3123
  }), enableTableFooter && React.createElement(MRT_TableFooter, {
3080
3124
  tableInstance: tableInstance
@@ -3087,8 +3131,8 @@ var MRT_TableContainer = function MRT_TableContainer(_ref) {
3087
3131
  var getState = tableInstance.getState,
3088
3132
  _tableInstance$option = tableInstance.options,
3089
3133
  enableStickyHeader = _tableInstance$option.enableStickyHeader,
3090
- tableId = _tableInstance$option.tableId,
3091
- muiTableContainerProps = _tableInstance$option.muiTableContainerProps;
3134
+ muiTableContainerProps = _tableInstance$option.muiTableContainerProps,
3135
+ tableId = _tableInstance$option.tableId;
3092
3136
 
3093
3137
  var _getState = getState(),
3094
3138
  isFullScreen = _getState.isFullScreen;
@@ -3107,7 +3151,9 @@ var MRT_TableContainer = function MRT_TableContainer(_ref) {
3107
3151
  var bottomToolbarHeight = typeof document !== 'undefined' ? (_document$getElementB3 = (_document2 = document) == null ? void 0 : (_document2$getElement = _document2.getElementById("mrt-" + tableId + "-toolbar-bottom")) == null ? void 0 : _document2$getElement.offsetHeight) != null ? _document$getElementB3 : 0 : 0;
3108
3152
  setTotalToolbarHeight(topToolbarHeight + bottomToolbarHeight);
3109
3153
  });
3154
+ var tableContainerRef = React.useRef(null);
3110
3155
  return React.createElement(TableContainer, Object.assign({}, tableContainerProps, {
3156
+ ref: tableContainerRef,
3111
3157
  sx: _extends({
3112
3158
  maxWidth: '100%',
3113
3159
  maxHeight: enableStickyHeader ? "clamp(350px, calc(100vh - " + totalToolbarHeight + "px), 2000px)" : undefined,
@@ -3117,6 +3163,7 @@ var MRT_TableContainer = function MRT_TableContainer(_ref) {
3117
3163
  maxHeight: isFullScreen ? "calc(100vh - " + totalToolbarHeight + "px)" : undefined
3118
3164
  }
3119
3165
  }), React.createElement(MRT_Table, {
3166
+ tableContainerRef: tableContainerRef,
3120
3167
  tableInstance: tableInstance
3121
3168
  }));
3122
3169
  };
@@ -3430,7 +3477,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3430
3477
  }));
3431
3478
  };
3432
3479
 
3433
- 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"];
3480
+ 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"];
3434
3481
  var MaterialReactTable = (function (_ref) {
3435
3482
  var _ref$autoResetExpande = _ref.autoResetExpanded,
3436
3483
  autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
@@ -3438,9 +3485,9 @@ var MaterialReactTable = (function (_ref) {
3438
3485
  columnResizeMode = _ref$columnResizeMode === void 0 ? 'onEnd' : _ref$columnResizeMode,
3439
3486
  _ref$defaultColumn = _ref.defaultColumn,
3440
3487
  defaultColumn = _ref$defaultColumn === void 0 ? {
3441
- minSize: 50,
3488
+ minSize: 30,
3442
3489
  maxSize: 1000,
3443
- size: 150
3490
+ size: 180
3444
3491
  } : _ref$defaultColumn,
3445
3492
  _ref$editingMode = _ref.editingMode,
3446
3493
  editingMode = _ref$editingMode === void 0 ? 'row' : _ref$editingMode,
@@ -3502,6 +3549,8 @@ var MaterialReactTable = (function (_ref) {
3502
3549
  positionToolbarActions = _ref$positionToolbarA === void 0 ? 'top' : _ref$positionToolbarA,
3503
3550
  _ref$positionToolbarA2 = _ref.positionToolbarAlertBanner,
3504
3551
  positionToolbarAlertBanner = _ref$positionToolbarA2 === void 0 ? 'top' : _ref$positionToolbarA2,
3552
+ _ref$rowNumberMode = _ref.rowNumberMode,
3553
+ rowNumberMode = _ref$rowNumberMode === void 0 ? 'original' : _ref$rowNumberMode,
3505
3554
  _ref$selectAllMode = _ref.selectAllMode,
3506
3555
  selectAllMode = _ref$selectAllMode === void 0 ? 'all' : _ref$selectAllMode,
3507
3556
  rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
@@ -3541,6 +3590,7 @@ var MaterialReactTable = (function (_ref) {
3541
3590
  positionPagination: positionPagination,
3542
3591
  positionToolbarActions: positionToolbarActions,
3543
3592
  positionToolbarAlertBanner: positionToolbarAlertBanner,
3593
+ rowNumberMode: rowNumberMode,
3544
3594
  selectAllMode: selectAllMode
3545
3595
  }, rest));
3546
3596
  });