material-react-table 0.9.0 → 0.9.3

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.
@@ -5664,7 +5664,7 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
5664
5664
  }, toolbarProps == null ? void 0 : toolbarProps.sx);
5665
5665
  }
5666
5666
  }), React__default.createElement(MRT_LinearProgressBar, {
5667
- alignTo: 'top',
5667
+ alignTo: "top",
5668
5668
  tableInstance: tableInstance
5669
5669
  }), positionToolbarAlertBanner === 'bottom' && React__default.createElement(MRT_ToolbarAlertBanner, {
5670
5670
  tableInstance: tableInstance
@@ -6327,6 +6327,498 @@ var MRT_TableHead = function MRT_TableHead(_ref) {
6327
6327
  }));
6328
6328
  };
6329
6329
 
6330
+ function _extends$1() {
6331
+ _extends$1 = Object.assign || function (target) {
6332
+ for (var i = 1; i < arguments.length; i++) {
6333
+ var source = arguments[i];
6334
+
6335
+ for (var key in source) {
6336
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
6337
+ target[key] = source[key];
6338
+ }
6339
+ }
6340
+ }
6341
+
6342
+ return target;
6343
+ };
6344
+
6345
+ return _extends$1.apply(this, arguments);
6346
+ }
6347
+
6348
+ function _objectWithoutPropertiesLoose$2(source, excluded) {
6349
+ if (source == null) return {};
6350
+ var target = {};
6351
+ var sourceKeys = Object.keys(source);
6352
+ var key, i;
6353
+
6354
+ for (i = 0; i < sourceKeys.length; i++) {
6355
+ key = sourceKeys[i];
6356
+ if (excluded.indexOf(key) >= 0) continue;
6357
+ target[key] = source[key];
6358
+ }
6359
+
6360
+ return target;
6361
+ }
6362
+
6363
+ var props = ['bottom', 'height', 'left', 'right', 'top', 'width'];
6364
+
6365
+ var rectChanged = function rectChanged(a, b) {
6366
+ if (a === void 0) {
6367
+ a = {};
6368
+ }
6369
+
6370
+ if (b === void 0) {
6371
+ b = {};
6372
+ }
6373
+
6374
+ return props.some(function (prop) {
6375
+ return a[prop] !== b[prop];
6376
+ });
6377
+ };
6378
+
6379
+ var observedNodes = /*#__PURE__*/new Map();
6380
+ var rafId;
6381
+
6382
+ var run = function run() {
6383
+ var changedStates = [];
6384
+ observedNodes.forEach(function (state, node) {
6385
+ var newRect = node.getBoundingClientRect();
6386
+
6387
+ if (rectChanged(newRect, state.rect)) {
6388
+ state.rect = newRect;
6389
+ changedStates.push(state);
6390
+ }
6391
+ });
6392
+ changedStates.forEach(function (state) {
6393
+ state.callbacks.forEach(function (cb) {
6394
+ return cb(state.rect);
6395
+ });
6396
+ });
6397
+ rafId = window.requestAnimationFrame(run);
6398
+ };
6399
+
6400
+ function observeRect(node, cb) {
6401
+ return {
6402
+ observe: function observe() {
6403
+ var wasEmpty = observedNodes.size === 0;
6404
+
6405
+ if (observedNodes.has(node)) {
6406
+ observedNodes.get(node).callbacks.push(cb);
6407
+ } else {
6408
+ observedNodes.set(node, {
6409
+ rect: undefined,
6410
+ hasRectChanged: false,
6411
+ callbacks: [cb]
6412
+ });
6413
+ }
6414
+
6415
+ if (wasEmpty) run();
6416
+ },
6417
+ unobserve: function unobserve() {
6418
+ var state = observedNodes.get(node);
6419
+
6420
+ if (state) {
6421
+ // Remove the callback
6422
+ var index = state.callbacks.indexOf(cb);
6423
+ if (index >= 0) state.callbacks.splice(index, 1); // Remove the node reference
6424
+
6425
+ if (!state.callbacks.length) observedNodes["delete"](node); // Stop the loop
6426
+
6427
+ if (!observedNodes.size) cancelAnimationFrame(rafId);
6428
+ }
6429
+ }
6430
+ };
6431
+ }
6432
+
6433
+ var useIsomorphicLayoutEffect$1 = typeof window !== 'undefined' ? React__default.useLayoutEffect : React__default.useEffect;
6434
+
6435
+ function useRect(nodeRef, initialRect) {
6436
+ if (initialRect === void 0) {
6437
+ initialRect = {
6438
+ width: 0,
6439
+ height: 0
6440
+ };
6441
+ }
6442
+
6443
+ var _React$useState = React__default.useState(nodeRef.current),
6444
+ element = _React$useState[0],
6445
+ setElement = _React$useState[1];
6446
+
6447
+ var _React$useReducer = React__default.useReducer(rectReducer, initialRect),
6448
+ rect = _React$useReducer[0],
6449
+ dispatch = _React$useReducer[1];
6450
+
6451
+ var initialRectSet = React__default.useRef(false);
6452
+ useIsomorphicLayoutEffect$1(function () {
6453
+ if (nodeRef.current !== element) {
6454
+ setElement(nodeRef.current);
6455
+ }
6456
+ });
6457
+ useIsomorphicLayoutEffect$1(function () {
6458
+ if (element && !initialRectSet.current) {
6459
+ initialRectSet.current = true;
6460
+
6461
+ var _rect = element.getBoundingClientRect();
6462
+
6463
+ dispatch({
6464
+ rect: _rect
6465
+ });
6466
+ }
6467
+ }, [element]);
6468
+ React__default.useEffect(function () {
6469
+ if (!element) {
6470
+ return;
6471
+ }
6472
+
6473
+ var observer = observeRect(element, function (rect) {
6474
+ dispatch({
6475
+ rect: rect
6476
+ });
6477
+ });
6478
+ observer.observe();
6479
+ return function () {
6480
+ observer.unobserve();
6481
+ };
6482
+ }, [element]);
6483
+ return rect;
6484
+ }
6485
+
6486
+ function rectReducer(state, action) {
6487
+ var rect = action.rect;
6488
+
6489
+ if (state.height !== rect.height || state.width !== rect.width) {
6490
+ return rect;
6491
+ }
6492
+
6493
+ return state;
6494
+ }
6495
+
6496
+ var defaultEstimateSize = function defaultEstimateSize() {
6497
+ return 50;
6498
+ };
6499
+
6500
+ var defaultKeyExtractor = function defaultKeyExtractor(index) {
6501
+ return index;
6502
+ };
6503
+
6504
+ var defaultMeasureSize = function defaultMeasureSize(el, horizontal) {
6505
+ var key = horizontal ? 'offsetWidth' : 'offsetHeight';
6506
+ return el[key];
6507
+ };
6508
+
6509
+ var defaultRangeExtractor = function defaultRangeExtractor(range) {
6510
+ var start = Math.max(range.start - range.overscan, 0);
6511
+ var end = Math.min(range.end + range.overscan, range.size - 1);
6512
+ var arr = [];
6513
+
6514
+ for (var i = start; i <= end; i++) {
6515
+ arr.push(i);
6516
+ }
6517
+
6518
+ return arr;
6519
+ };
6520
+ function useVirtual(_ref) {
6521
+ var _measurements;
6522
+
6523
+ var _ref$size = _ref.size,
6524
+ size = _ref$size === void 0 ? 0 : _ref$size,
6525
+ _ref$estimateSize = _ref.estimateSize,
6526
+ estimateSize = _ref$estimateSize === void 0 ? defaultEstimateSize : _ref$estimateSize,
6527
+ _ref$overscan = _ref.overscan,
6528
+ overscan = _ref$overscan === void 0 ? 1 : _ref$overscan,
6529
+ _ref$paddingStart = _ref.paddingStart,
6530
+ paddingStart = _ref$paddingStart === void 0 ? 0 : _ref$paddingStart,
6531
+ _ref$paddingEnd = _ref.paddingEnd,
6532
+ paddingEnd = _ref$paddingEnd === void 0 ? 0 : _ref$paddingEnd,
6533
+ parentRef = _ref.parentRef,
6534
+ horizontal = _ref.horizontal,
6535
+ scrollToFn = _ref.scrollToFn,
6536
+ useObserver = _ref.useObserver,
6537
+ initialRect = _ref.initialRect,
6538
+ onScrollElement = _ref.onScrollElement,
6539
+ scrollOffsetFn = _ref.scrollOffsetFn,
6540
+ _ref$keyExtractor = _ref.keyExtractor,
6541
+ keyExtractor = _ref$keyExtractor === void 0 ? defaultKeyExtractor : _ref$keyExtractor,
6542
+ _ref$measureSize = _ref.measureSize,
6543
+ measureSize = _ref$measureSize === void 0 ? defaultMeasureSize : _ref$measureSize,
6544
+ _ref$rangeExtractor = _ref.rangeExtractor,
6545
+ rangeExtractor = _ref$rangeExtractor === void 0 ? defaultRangeExtractor : _ref$rangeExtractor;
6546
+ var sizeKey = horizontal ? 'width' : 'height';
6547
+ var scrollKey = horizontal ? 'scrollLeft' : 'scrollTop';
6548
+ var latestRef = React__default.useRef({
6549
+ scrollOffset: 0,
6550
+ measurements: []
6551
+ });
6552
+
6553
+ var _React$useState = React__default.useState(0),
6554
+ scrollOffset = _React$useState[0],
6555
+ setScrollOffset = _React$useState[1];
6556
+
6557
+ latestRef.current.scrollOffset = scrollOffset;
6558
+ var useMeasureParent = useObserver || useRect;
6559
+
6560
+ var _useMeasureParent = useMeasureParent(parentRef, initialRect),
6561
+ outerSize = _useMeasureParent[sizeKey];
6562
+
6563
+ latestRef.current.outerSize = outerSize;
6564
+ var defaultScrollToFn = React__default.useCallback(function (offset) {
6565
+ if (parentRef.current) {
6566
+ parentRef.current[scrollKey] = offset;
6567
+ }
6568
+ }, [parentRef, scrollKey]);
6569
+ var resolvedScrollToFn = scrollToFn || defaultScrollToFn;
6570
+ scrollToFn = React__default.useCallback(function (offset) {
6571
+ resolvedScrollToFn(offset, defaultScrollToFn);
6572
+ }, [defaultScrollToFn, resolvedScrollToFn]);
6573
+
6574
+ var _React$useState2 = React__default.useState({}),
6575
+ measuredCache = _React$useState2[0],
6576
+ setMeasuredCache = _React$useState2[1];
6577
+
6578
+ var measure = React__default.useCallback(function () {
6579
+ return setMeasuredCache({});
6580
+ }, []);
6581
+ var pendingMeasuredCacheIndexesRef = React__default.useRef([]);
6582
+ var measurements = React__default.useMemo(function () {
6583
+ var min = pendingMeasuredCacheIndexesRef.current.length > 0 ? Math.min.apply(Math, pendingMeasuredCacheIndexesRef.current) : 0;
6584
+ pendingMeasuredCacheIndexesRef.current = [];
6585
+ var measurements = latestRef.current.measurements.slice(0, min);
6586
+
6587
+ for (var i = min; i < size; i++) {
6588
+ var key = keyExtractor(i);
6589
+ var measuredSize = measuredCache[key];
6590
+
6591
+ var _start = measurements[i - 1] ? measurements[i - 1].end : paddingStart;
6592
+
6593
+ var _size = typeof measuredSize === 'number' ? measuredSize : estimateSize(i);
6594
+
6595
+ var _end = _start + _size;
6596
+
6597
+ measurements[i] = {
6598
+ index: i,
6599
+ start: _start,
6600
+ size: _size,
6601
+ end: _end,
6602
+ key: key
6603
+ };
6604
+ }
6605
+
6606
+ return measurements;
6607
+ }, [estimateSize, measuredCache, paddingStart, size, keyExtractor]);
6608
+ var totalSize = (((_measurements = measurements[size - 1]) == null ? void 0 : _measurements.end) || paddingStart) + paddingEnd;
6609
+ latestRef.current.measurements = measurements;
6610
+ latestRef.current.totalSize = totalSize;
6611
+ var element = onScrollElement ? onScrollElement.current : parentRef.current;
6612
+ var scrollOffsetFnRef = React__default.useRef(scrollOffsetFn);
6613
+ scrollOffsetFnRef.current = scrollOffsetFn;
6614
+ useIsomorphicLayoutEffect$1(function () {
6615
+ if (!element) {
6616
+ setScrollOffset(0);
6617
+ return;
6618
+ }
6619
+
6620
+ var onScroll = function onScroll(event) {
6621
+ var offset = scrollOffsetFnRef.current ? scrollOffsetFnRef.current(event) : element[scrollKey];
6622
+ setScrollOffset(offset);
6623
+ };
6624
+
6625
+ onScroll();
6626
+ element.addEventListener('scroll', onScroll, {
6627
+ capture: false,
6628
+ passive: true
6629
+ });
6630
+ return function () {
6631
+ element.removeEventListener('scroll', onScroll);
6632
+ };
6633
+ }, [element, scrollKey]);
6634
+
6635
+ var _calculateRange = calculateRange(latestRef.current),
6636
+ start = _calculateRange.start,
6637
+ end = _calculateRange.end;
6638
+
6639
+ var indexes = React__default.useMemo(function () {
6640
+ return rangeExtractor({
6641
+ start: start,
6642
+ end: end,
6643
+ overscan: overscan,
6644
+ size: measurements.length
6645
+ });
6646
+ }, [start, end, overscan, measurements.length, rangeExtractor]);
6647
+ var measureSizeRef = React__default.useRef(measureSize);
6648
+ measureSizeRef.current = measureSize;
6649
+ var virtualItems = React__default.useMemo(function () {
6650
+ var virtualItems = [];
6651
+
6652
+ var _loop = function _loop(k, len) {
6653
+ var i = indexes[k];
6654
+ var measurement = measurements[i];
6655
+
6656
+ var item = _extends$1(_extends$1({}, measurement), {}, {
6657
+ measureRef: function measureRef(el) {
6658
+ if (el) {
6659
+ var measuredSize = measureSizeRef.current(el, horizontal);
6660
+
6661
+ if (measuredSize !== item.size) {
6662
+ var _scrollOffset = latestRef.current.scrollOffset;
6663
+
6664
+ if (item.start < _scrollOffset) {
6665
+ defaultScrollToFn(_scrollOffset + (measuredSize - item.size));
6666
+ }
6667
+
6668
+ pendingMeasuredCacheIndexesRef.current.push(i);
6669
+ setMeasuredCache(function (old) {
6670
+ var _extends2;
6671
+
6672
+ return _extends$1(_extends$1({}, old), {}, (_extends2 = {}, _extends2[item.key] = measuredSize, _extends2));
6673
+ });
6674
+ }
6675
+ }
6676
+ }
6677
+ });
6678
+
6679
+ virtualItems.push(item);
6680
+ };
6681
+
6682
+ for (var k = 0, len = indexes.length; k < len; k++) {
6683
+ _loop(k);
6684
+ }
6685
+
6686
+ return virtualItems;
6687
+ }, [indexes, defaultScrollToFn, horizontal, measurements]);
6688
+ var mountedRef = React__default.useRef(false);
6689
+ useIsomorphicLayoutEffect$1(function () {
6690
+ if (mountedRef.current) {
6691
+ setMeasuredCache({});
6692
+ }
6693
+
6694
+ mountedRef.current = true;
6695
+ }, [estimateSize]);
6696
+ var scrollToOffset = React__default.useCallback(function (toOffset, _temp) {
6697
+ var _ref2 = _temp === void 0 ? {} : _temp,
6698
+ _ref2$align = _ref2.align,
6699
+ align = _ref2$align === void 0 ? 'start' : _ref2$align;
6700
+
6701
+ var _latestRef$current = latestRef.current,
6702
+ scrollOffset = _latestRef$current.scrollOffset,
6703
+ outerSize = _latestRef$current.outerSize;
6704
+
6705
+ if (align === 'auto') {
6706
+ if (toOffset <= scrollOffset) {
6707
+ align = 'start';
6708
+ } else if (toOffset >= scrollOffset + outerSize) {
6709
+ align = 'end';
6710
+ } else {
6711
+ align = 'start';
6712
+ }
6713
+ }
6714
+
6715
+ if (align === 'start') {
6716
+ scrollToFn(toOffset);
6717
+ } else if (align === 'end') {
6718
+ scrollToFn(toOffset - outerSize);
6719
+ } else if (align === 'center') {
6720
+ scrollToFn(toOffset - outerSize / 2);
6721
+ }
6722
+ }, [scrollToFn]);
6723
+ var tryScrollToIndex = React__default.useCallback(function (index, _temp2) {
6724
+ var _ref3 = _temp2 === void 0 ? {} : _temp2,
6725
+ _ref3$align = _ref3.align,
6726
+ align = _ref3$align === void 0 ? 'auto' : _ref3$align,
6727
+ rest = _objectWithoutPropertiesLoose$2(_ref3, ["align"]);
6728
+
6729
+ var _latestRef$current2 = latestRef.current,
6730
+ measurements = _latestRef$current2.measurements,
6731
+ scrollOffset = _latestRef$current2.scrollOffset,
6732
+ outerSize = _latestRef$current2.outerSize;
6733
+ var measurement = measurements[Math.max(0, Math.min(index, size - 1))];
6734
+
6735
+ if (!measurement) {
6736
+ return;
6737
+ }
6738
+
6739
+ if (align === 'auto') {
6740
+ if (measurement.end >= scrollOffset + outerSize) {
6741
+ align = 'end';
6742
+ } else if (measurement.start <= scrollOffset) {
6743
+ align = 'start';
6744
+ } else {
6745
+ return;
6746
+ }
6747
+ }
6748
+
6749
+ var toOffset = align === 'center' ? measurement.start + measurement.size / 2 : align === 'end' ? measurement.end : measurement.start;
6750
+ scrollToOffset(toOffset, _extends$1({
6751
+ align: align
6752
+ }, rest));
6753
+ }, [scrollToOffset, size]);
6754
+ var scrollToIndex = React__default.useCallback(function () {
6755
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
6756
+ args[_key] = arguments[_key];
6757
+ }
6758
+
6759
+ // We do a double request here because of
6760
+ // dynamic sizes which can cause offset shift
6761
+ // and end up in the wrong spot. Unfortunately,
6762
+ // we can't know about those dynamic sizes until
6763
+ // we try and render them. So double down!
6764
+ tryScrollToIndex.apply(void 0, args);
6765
+ requestAnimationFrame(function () {
6766
+ tryScrollToIndex.apply(void 0, args);
6767
+ });
6768
+ }, [tryScrollToIndex]);
6769
+ return {
6770
+ virtualItems: virtualItems,
6771
+ totalSize: totalSize,
6772
+ scrollToOffset: scrollToOffset,
6773
+ scrollToIndex: scrollToIndex,
6774
+ measure: measure
6775
+ };
6776
+ }
6777
+
6778
+ var findNearestBinarySearch = function findNearestBinarySearch(low, high, getCurrentValue, value) {
6779
+ while (low <= high) {
6780
+ var middle = (low + high) / 2 | 0;
6781
+ var currentValue = getCurrentValue(middle);
6782
+
6783
+ if (currentValue < value) {
6784
+ low = middle + 1;
6785
+ } else if (currentValue > value) {
6786
+ high = middle - 1;
6787
+ } else {
6788
+ return middle;
6789
+ }
6790
+ }
6791
+
6792
+ if (low > 0) {
6793
+ return low - 1;
6794
+ } else {
6795
+ return 0;
6796
+ }
6797
+ };
6798
+
6799
+ function calculateRange(_ref4) {
6800
+ var measurements = _ref4.measurements,
6801
+ outerSize = _ref4.outerSize,
6802
+ scrollOffset = _ref4.scrollOffset;
6803
+ var size = measurements.length - 1;
6804
+
6805
+ var getOffset = function getOffset(index) {
6806
+ return measurements[index].start;
6807
+ };
6808
+
6809
+ var start = findNearestBinarySearch(0, size, getOffset, scrollOffset);
6810
+ var end = start;
6811
+
6812
+ while (end < size && measurements[end].end < scrollOffset + outerSize) {
6813
+ end++;
6814
+ }
6815
+
6816
+ return {
6817
+ start: start,
6818
+ end: end
6819
+ };
6820
+ }
6821
+
6330
6822
  var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
6331
6823
  var cell = _ref.cell,
6332
6824
  tableInstance = _ref.tableInstance;
@@ -6489,11 +6981,13 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
6489
6981
  editingMode = _tableInstance$option.editingMode,
6490
6982
  enableClickToCopy = _tableInstance$option.enableClickToCopy,
6491
6983
  enableColumnOrdering = _tableInstance$option.enableColumnOrdering,
6984
+ enableColumnResizing = _tableInstance$option.enableColumnResizing,
6492
6985
  enableEditing = _tableInstance$option.enableEditing,
6493
- tableId = _tableInstance$option.tableId,
6986
+ enableRowVirtualization = _tableInstance$option.enableRowVirtualization,
6494
6987
  muiTableBodyCellProps = _tableInstance$option.muiTableBodyCellProps,
6495
6988
  muiTableBodyCellSkeletonProps = _tableInstance$option.muiTableBodyCellSkeletonProps,
6496
6989
  onMrtCellClick = _tableInstance$option.onMrtCellClick,
6990
+ tableId = _tableInstance$option.tableId,
6497
6991
  setColumnOrder = tableInstance.setColumnOrder,
6498
6992
  setCurrentEditingCell = tableInstance.setCurrentEditingCell;
6499
6993
 
@@ -6569,7 +7063,8 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
6569
7063
  tableInstance: tableInstance
6570
7064
  });
6571
7065
  },
6572
- onDoubleClick: handleDoubleClick
7066
+ onDoubleClick: handleDoubleClick,
7067
+ title: (enableRowVirtualization || enableColumnResizing) && !(columnDef != null && columnDef.Cell) && !cell.getIsGrouped() && !columnDef.enableClickToCopy && typeof cell.getValue() === 'string' ? cell.getValue() : ''
6573
7068
  }, tableCellProps, {
6574
7069
  ref: columnDefType === 'data' && enableColumnOrdering ? dropRef : undefined,
6575
7070
  sx: function sx(theme) {
@@ -6578,15 +7073,17 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
6578
7073
  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,
6579
7074
  cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',
6580
7075
  left: column.getIsPinned() === 'left' ? column.getStart('left') + "px" : undefined,
7076
+ overflow: 'hidden',
6581
7077
  p: isDensePadding ? columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
6582
7078
  pl: column.id === 'mrt-expand' ? row.depth + (isDensePadding ? 0.5 : 0.75) + "rem" : undefined,
6583
7079
  position: column.getIsPinned() ? 'sticky' : 'relative',
6584
7080
  right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
7081
+ textOverflow: 'ellipsis',
6585
7082
  transition: 'all 0.2s ease-in-out',
6586
7083
  whiteSpace: isDensePadding ? 'nowrap' : 'normal',
6587
7084
  zIndex: column.getIsPinned() ? 1 : undefined,
6588
7085
  '&:hover': {
6589
- backgroundColor: enableHover ? theme.palette.mode === 'dark' ? material.lighten(theme.palette.background["default"], 0.13) + " !important" : material.darken(theme.palette.background["default"], 0.07) + " !important" : undefined
7086
+ 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
6590
7087
  }
6591
7088
  }, tableCellProps == null ? void 0 : tableCellProps.sx);
6592
7089
  },
@@ -6661,7 +7158,8 @@ var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref) {
6661
7158
  var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
6662
7159
  var row = _ref.row,
6663
7160
  tableInstance = _ref.tableInstance;
6664
- var _tableInstance$option = tableInstance.options,
7161
+ var getIsSomeColumnsPinned = tableInstance.getIsSomeColumnsPinned,
7162
+ _tableInstance$option = tableInstance.options,
6665
7163
  muiTableBodyRowProps = _tableInstance$option.muiTableBodyRowProps,
6666
7164
  onMrtRowClick = _tableInstance$option.onMrtRowClick,
6667
7165
  renderDetailPanel = _tableInstance$option.renderDetailPanel;
@@ -6685,7 +7183,7 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
6685
7183
  backgroundColor: material.lighten(theme.palette.background["default"], 0.06),
6686
7184
  transition: 'all 0.2s ease-in-out',
6687
7185
  '&:hover td': {
6688
- backgroundColor: (tableRowProps == null ? void 0 : tableRowProps.hover) !== false ? theme.palette.mode === 'dark' ? "" + material.lighten(theme.palette.background["default"], 0.12) : "" + material.darken(theme.palette.background["default"], 0.05) : undefined
7186
+ backgroundColor: (tableRowProps == null ? void 0 : tableRowProps.hover) !== false && getIsSomeColumnsPinned() ? theme.palette.mode === 'dark' ? "" + material.lighten(theme.palette.background["default"], 0.12) : "" + material.darken(theme.palette.background["default"], 0.05) : undefined
6689
7187
  }
6690
7188
  }, tableRowProps == null ? void 0 : tableRowProps.sx);
6691
7189
  }
@@ -6703,23 +7201,47 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
6703
7201
  };
6704
7202
 
6705
7203
  var MRT_TableBody = function MRT_TableBody(_ref) {
6706
- var tableInstance = _ref.tableInstance;
7204
+ var tableInstance = _ref.tableInstance,
7205
+ tableContainerRef = _ref.tableContainerRef;
6707
7206
  var getPaginationRowModel = tableInstance.getPaginationRowModel,
6708
7207
  getPrePaginationRowModel = tableInstance.getPrePaginationRowModel,
7208
+ getState = tableInstance.getState,
6709
7209
  _tableInstance$option = tableInstance.options,
6710
7210
  enablePagination = _tableInstance$option.enablePagination,
7211
+ enableRowVirtualization = _tableInstance$option.enableRowVirtualization,
6711
7212
  muiTableBodyProps = _tableInstance$option.muiTableBodyProps;
6712
- var rows = enablePagination ? getPaginationRowModel().rows : getPrePaginationRowModel().rows;
7213
+
7214
+ var _getState = getState(),
7215
+ isDensePadding = _getState.isDensePadding;
7216
+
6713
7217
  var tableBodyProps = muiTableBodyProps instanceof Function ? muiTableBodyProps({
6714
7218
  tableInstance: tableInstance
6715
7219
  }) : muiTableBodyProps;
6716
- return React__default.createElement(material.TableBody, Object.assign({}, tableBodyProps), rows.map(function (row) {
7220
+ var rows = enablePagination ? getPaginationRowModel().rows : getPrePaginationRowModel().rows;
7221
+ var rowVirtualizer = enableRowVirtualization ? useVirtual({
7222
+ overscan: isDensePadding ? 15 : 5,
7223
+ size: rows.length,
7224
+ parentRef: tableContainerRef
7225
+ }) : {};
7226
+ var virtualRows = rowVirtualizer.virtualItems;
7227
+ var paddingTop = (virtualRows == null ? void 0 : virtualRows.length) > 0 ? virtualRows[0].start : 0;
7228
+ var paddingBottom = (virtualRows == null ? void 0 : virtualRows.length) > 0 ? rowVirtualizer.totalSize - virtualRows[virtualRows.length - 1].end : 0;
7229
+ return React__default.createElement(material.TableBody, Object.assign({}, tableBodyProps), enableRowVirtualization && paddingTop > 0 && React__default.createElement("tr", null, React__default.createElement("td", {
7230
+ style: {
7231
+ height: paddingTop + "px"
7232
+ }
7233
+ })), (enableRowVirtualization ? virtualRows : rows).map(function (rowOrVirtualRow) {
7234
+ var row = enableRowVirtualization ? rows[rowOrVirtualRow.index] : rowOrVirtualRow;
6717
7235
  return React__default.createElement(MRT_TableBodyRow, {
6718
7236
  key: row.id,
6719
7237
  row: row,
6720
7238
  tableInstance: tableInstance
6721
7239
  });
6722
- }));
7240
+ }), enableRowVirtualization && paddingBottom > 0 && React__default.createElement("tr", null, React__default.createElement("td", {
7241
+ style: {
7242
+ height: paddingBottom + "px"
7243
+ }
7244
+ })));
6723
7245
  };
6724
7246
 
6725
7247
  var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
@@ -6813,8 +7335,11 @@ var MRT_TableFooter = function MRT_TableFooter(_ref) {
6813
7335
  };
6814
7336
 
6815
7337
  var MRT_Table = function MRT_Table(_ref) {
6816
- var tableInstance = _ref.tableInstance;
7338
+ var tableContainerRef = _ref.tableContainerRef,
7339
+ tableInstance = _ref.tableInstance;
6817
7340
  var _tableInstance$option = tableInstance.options,
7341
+ enableColumnResizing = _tableInstance$option.enableColumnResizing,
7342
+ enableRowVirtualization = _tableInstance$option.enableRowVirtualization,
6818
7343
  enableStickyHeader = _tableInstance$option.enableStickyHeader,
6819
7344
  enableTableFooter = _tableInstance$option.enableTableFooter,
6820
7345
  enableTableHead = _tableInstance$option.enableTableHead,
@@ -6824,23 +7349,28 @@ var MRT_Table = function MRT_Table(_ref) {
6824
7349
  }) : muiTableProps;
6825
7350
  return React__default.createElement(material.Table, Object.assign({
6826
7351
  stickyHeader: enableStickyHeader
6827
- }, tableProps), enableTableHead && React__default.createElement(MRT_TableHead, {
7352
+ }, tableProps, {
7353
+ sx: _extends({
7354
+ tableLayout: enableColumnResizing || enableRowVirtualization ? 'fixed' : undefined
7355
+ }, tableProps == null ? void 0 : tableProps.sx)
7356
+ }), enableTableHead && React__default.createElement(MRT_TableHead, {
6828
7357
  tableInstance: tableInstance
6829
7358
  }), React__default.createElement(MRT_TableBody, {
7359
+ tableContainerRef: tableContainerRef,
6830
7360
  tableInstance: tableInstance
6831
7361
  }), enableTableFooter && React__default.createElement(MRT_TableFooter, {
6832
7362
  tableInstance: tableInstance
6833
7363
  }));
6834
7364
  };
6835
7365
 
6836
- var useIsomorphicLayoutEffect$1 = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
7366
+ var useIsomorphicLayoutEffect$2 = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
6837
7367
  var MRT_TableContainer = function MRT_TableContainer(_ref) {
6838
7368
  var tableInstance = _ref.tableInstance;
6839
7369
  var getState = tableInstance.getState,
6840
7370
  _tableInstance$option = tableInstance.options,
6841
7371
  enableStickyHeader = _tableInstance$option.enableStickyHeader,
6842
- tableId = _tableInstance$option.tableId,
6843
- muiTableContainerProps = _tableInstance$option.muiTableContainerProps;
7372
+ muiTableContainerProps = _tableInstance$option.muiTableContainerProps,
7373
+ tableId = _tableInstance$option.tableId;
6844
7374
 
6845
7375
  var _getState = getState(),
6846
7376
  isFullScreen = _getState.isFullScreen;
@@ -6852,14 +7382,16 @@ var MRT_TableContainer = function MRT_TableContainer(_ref) {
6852
7382
  var tableContainerProps = muiTableContainerProps instanceof Function ? muiTableContainerProps({
6853
7383
  tableInstance: tableInstance
6854
7384
  }) : muiTableContainerProps;
6855
- useIsomorphicLayoutEffect$1(function () {
7385
+ useIsomorphicLayoutEffect$2(function () {
6856
7386
  var _document$getElementB, _document, _document$getElementB2, _document$getElementB3, _document2, _document2$getElement;
6857
7387
 
6858
7388
  var topToolbarHeight = typeof document !== 'undefined' ? (_document$getElementB = (_document = document) == null ? void 0 : (_document$getElementB2 = _document.getElementById("mrt-" + tableId + "-toolbar-top")) == null ? void 0 : _document$getElementB2.offsetHeight) != null ? _document$getElementB : 0 : 0;
6859
7389
  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;
6860
7390
  setTotalToolbarHeight(topToolbarHeight + bottomToolbarHeight);
6861
7391
  });
7392
+ var tableContainerRef = React__default.useRef(null);
6862
7393
  return React__default.createElement(material.TableContainer, Object.assign({}, tableContainerProps, {
7394
+ ref: tableContainerRef,
6863
7395
  sx: _extends({
6864
7396
  maxWidth: '100%',
6865
7397
  maxHeight: enableStickyHeader ? "clamp(350px, calc(100vh - " + totalToolbarHeight + "px), 2000px)" : undefined,
@@ -6869,6 +7401,7 @@ var MRT_TableContainer = function MRT_TableContainer(_ref) {
6869
7401
  maxHeight: isFullScreen ? "calc(100vh - " + totalToolbarHeight + "px)" : undefined
6870
7402
  }
6871
7403
  }), React__default.createElement(MRT_Table, {
7404
+ tableContainerRef: tableContainerRef,
6872
7405
  tableInstance: tableInstance
6873
7406
  }));
6874
7407
  };
@@ -7190,9 +7723,9 @@ var MaterialReactTable = (function (_ref) {
7190
7723
  columnResizeMode = _ref$columnResizeMode === void 0 ? 'onEnd' : _ref$columnResizeMode,
7191
7724
  _ref$defaultColumn = _ref.defaultColumn,
7192
7725
  defaultColumn = _ref$defaultColumn === void 0 ? {
7193
- minSize: 50,
7726
+ minSize: 30,
7194
7727
  maxSize: 1000,
7195
- size: 150
7728
+ size: 180
7196
7729
  } : _ref$defaultColumn,
7197
7730
  _ref$editingMode = _ref.editingMode,
7198
7731
  editingMode = _ref$editingMode === void 0 ? 'row' : _ref$editingMode,