@bigbinary/neetoui 8.3.17 → 8.3.18

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/cjs/Table.js CHANGED
@@ -22,7 +22,7 @@ var useQueryParams = require('./useQueryParams-l5fJJYCR.js');
22
22
  var Button = require('./Button.js');
23
23
  var Callout = require('./Callout.js');
24
24
  var Typography = require('./Typography.js');
25
- var useRestoreScrollPosition = require('./useRestoreScrollPosition-Ck_b0Nh4.js');
25
+ var useRestoreScrollPosition = require('./useRestoreScrollPosition-ByQwrqTS.js');
26
26
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
27
27
  var Popover = require('./Popover.js');
28
28
  var reactResizable = require('react-resizable');
@@ -208,6 +208,7 @@ var TitleWithInfoIcon = function TitleWithInfoIcon(_ref) {
208
208
  style: "body2"
209
209
  }, description))));
210
210
  };
211
+ var TitleWithInfoIcon$1 = /*#__PURE__*/React.memo(TitleWithInfoIcon);
211
212
 
212
213
  var _excluded$4 = ["children", "isSortable", "isAddEnabled", "sortedInfo", "onSort", "isHidable", "isDeletable", "isFixedColumn", "isColumnFreezeEnabled", "onColumnHide", "onAddColumn", "onColumnDelete", "onColumnFreeze", "onMoreActionClick", "column", "moreActions"];
213
214
  var CellContent = function CellContent(_ref) {
@@ -262,6 +263,7 @@ var CellContent = function CellContent(_ref) {
262
263
  isHidable: isColumnHidable
263
264
  })));
264
265
  };
266
+ var CellContent$1 = /*#__PURE__*/React.memo(CellContent);
265
267
 
266
268
  var _excluded$3 = ["onResize", "width", "onResizeStop", "className"];
267
269
  var HeaderCell = function HeaderCell(props) {
@@ -271,7 +273,7 @@ var HeaderCell = function HeaderCell(props) {
271
273
  className = props.className,
272
274
  restProps = _objectWithoutProperties(props, _excluded$3);
273
275
  if (!width) {
274
- return /*#__PURE__*/React.createElement(CellContent, _extends({}, restProps, {
276
+ return /*#__PURE__*/React.createElement(CellContent$1, _extends({}, restProps, {
275
277
  className: classnames(className, "drag-handler")
276
278
  }));
277
279
  }
@@ -292,10 +294,11 @@ var HeaderCell = function HeaderCell(props) {
292
294
  onResizeStart: function onResizeStart(e) {
293
295
  e.preventDefault();
294
296
  }
295
- }, /*#__PURE__*/React.createElement(CellContent, _extends({}, restProps, {
297
+ }, /*#__PURE__*/React.createElement(CellContent$1, _extends({}, restProps, {
296
298
  className: classnames(className, "drag-handler")
297
299
  })));
298
300
  };
301
+ var HeaderCell$1 = /*#__PURE__*/React.memo(HeaderCell);
299
302
 
300
303
  var _excluded$2 = ["onResize", "width", "onResizeStop", "onResizeStart"];
301
304
  var ResizableHeaderCell = function ResizableHeaderCell(props) {
@@ -309,7 +312,7 @@ var ResizableHeaderCell = function ResizableHeaderCell(props) {
309
312
  isResizing = _useState2[0],
310
313
  setIsResizing = _useState2[1];
311
314
  if (!width) {
312
- return /*#__PURE__*/React.createElement(CellContent, restProps);
315
+ return /*#__PURE__*/React.createElement(CellContent$1, restProps);
313
316
  }
314
317
  return /*#__PURE__*/React.createElement(reactResizable.Resizable, _defineProperty({
315
318
  onResize: onResize,
@@ -337,14 +340,15 @@ var ResizableHeaderCell = function ResizableHeaderCell(props) {
337
340
  }, "onResizeStop", function onResizeStop(e, data) {
338
341
  setIsResizing(false);
339
342
  _onResizeStop === null || _onResizeStop === void 0 || _onResizeStop(e, data);
340
- }), /*#__PURE__*/React.createElement(CellContent, restProps));
343
+ }), /*#__PURE__*/React.createElement(CellContent$1, restProps));
341
344
  };
345
+ var ResizableHeaderCell$1 = /*#__PURE__*/React.memo(ResizableHeaderCell);
342
346
 
343
347
  var _excluded$1 = ["className"];
344
348
  var ReorderableHeaderCell = function ReorderableHeaderCell(_ref) {
345
349
  var className = _ref.className,
346
350
  props = _objectWithoutProperties(_ref, _excluded$1);
347
- return /*#__PURE__*/React.createElement(CellContent, _extends({}, props, {
351
+ return /*#__PURE__*/React.createElement(CellContent$1, _extends({}, props, {
348
352
  className: classnames(className, "drag-handler")
349
353
  }));
350
354
  };
@@ -364,16 +368,16 @@ var getHeaderCell = function getHeaderCell(_ref) {
364
368
  var enableColumnResize = _ref.enableColumnResize,
365
369
  enableColumnReorder = _ref.enableColumnReorder;
366
370
  if (enableColumnReorder && enableColumnResize) return {
367
- cell: HeaderCell
371
+ cell: HeaderCell$1
368
372
  };
369
373
  if (enableColumnResize) return {
370
- cell: ResizableHeaderCell
374
+ cell: ResizableHeaderCell$1
371
375
  };
372
376
  if (enableColumnReorder) return {
373
377
  cell: ReorderableHeaderCell
374
378
  };
375
379
  return {
376
- cell: CellContent
380
+ cell: CellContent$1
377
381
  };
378
382
  };
379
383
  var isIncludedIn = function isIncludedIn(array1, array2) {
@@ -425,6 +429,11 @@ var getSortField = function getSortField(field) {
425
429
  }
426
430
  return neetoCist.camelToSnakeCase(field);
427
431
  };
432
+ var calculateRowsPerPage = function calculateRowsPerPage() {
433
+ var viewportHeight = window.innerHeight;
434
+ var rowsPerPage = Math.floor((viewportHeight - useRestoreScrollPosition.TABLE_PAGINATION_HEIGHT) / useRestoreScrollPosition.TABLE_ROW_HEIGHT * 3);
435
+ return Math.ceil(rowsPerPage / 10) * 10;
436
+ };
428
437
 
429
438
  function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
430
439
  function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -490,7 +499,7 @@ var useResizableColumns = function useResizableColumns(_ref) {
490
499
  sortOrder: getColumnSortOrder(col, sortedInfo),
491
500
  fixed: fixed,
492
501
  title: col.description ? function (props) {
493
- return /*#__PURE__*/React.createElement(TitleWithInfoIcon, _extends({}, props, {
502
+ return /*#__PURE__*/React.createElement(TitleWithInfoIcon$1, _extends({}, props, {
494
503
  description: col.description,
495
504
  title: col.title
496
505
  }));
@@ -590,6 +599,63 @@ var useColumns = function useColumns(_ref) {
590
599
  };
591
600
  };
592
601
 
602
+ var useScroll = function useScroll(_ref) {
603
+ var fixedHeight = _ref.fixedHeight,
604
+ enableColumnReorder = _ref.enableColumnReorder,
605
+ loading = _ref.loading,
606
+ otherProps = _ref.otherProps,
607
+ rowData = _ref.rowData,
608
+ pageSize = _ref.pageSize,
609
+ shouldShowSelectAllRowsCallout = _ref.shouldShowSelectAllRowsCallout,
610
+ shouldShowAllRowsSelectedCallout = _ref.shouldShowAllRowsSelectedCallout,
611
+ headerHeight = _ref.headerHeight;
612
+ var _useState = React.useState(0),
613
+ _useState2 = _slicedToArray(_useState, 2),
614
+ containerHeight = _useState2[0],
615
+ setContainerHeight = _useState2[1];
616
+ var resizeObserver = React.useRef(new ResizeObserver(function (_ref2) {
617
+ var _ref3 = _slicedToArray(_ref2, 1),
618
+ entry = _ref3[0];
619
+ return setContainerHeight(entry.contentRect.height);
620
+ }));
621
+ var scrollRef = React.useRef(null);
622
+ var tableRef = React.useCallback(function (table) {
623
+ scrollRef.current = table;
624
+ if (!fixedHeight) return;
625
+ var observer = resizeObserver.current;
626
+ if (table !== null) {
627
+ var _table$parentNode;
628
+ var targetNode = enableColumnReorder ? table === null || table === void 0 || (_table$parentNode = table.parentNode) === null || _table$parentNode === void 0 ? void 0 : _table$parentNode.parentNode : table === null || table === void 0 ? void 0 : table.parentNode;
629
+ observer.observe(targetNode);
630
+ } else if (observer) {
631
+ observer.disconnect();
632
+ }
633
+ }, [resizeObserver.current, fixedHeight, enableColumnReorder]);
634
+ var _useRestoreScrollPosi = useRestoreScrollPosition.useRestoreScrollPosition({
635
+ tableRef: tableRef,
636
+ scrollRef: scrollRef,
637
+ loading: loading
638
+ }),
639
+ handleScroll = _useRestoreScrollPosi.handleScroll;
640
+ var calculateTableContainerHeight = function calculateTableContainerHeight() {
641
+ var isPaginationVisible = otherProps.pagination !== false && rowData.length > pageSize;
642
+ var selectAllRowsCalloutHeight = 0;
643
+ if (shouldShowSelectAllRowsCallout || shouldShowAllRowsSelectedCallout) {
644
+ selectAllRowsCalloutHeight = getSelectAllRowsCalloutHeight();
645
+ }
646
+ return containerHeight - headerHeight - (isPaginationVisible ? useRestoreScrollPosition.TABLE_PAGINATION_HEIGHT : 0) - selectAllRowsCalloutHeight;
647
+ };
648
+ return {
649
+ tableRef: tableRef,
650
+ tableContainerRef: null,
651
+ handleScroll: handleScroll,
652
+ calculatedScroll: {
653
+ x: "max-content",
654
+ y: calculateTableContainerHeight()
655
+ }
656
+ };
657
+ };
658
+
593
659
  var useTableSort = function useTableSort() {
594
660
  var queryParams = useQueryParams.useQueryParams();
595
661
  var _useState = React.useState(function () {
@@ -618,12 +684,58 @@ var useTableSort = function useTableSort() {
618
684
  };
619
685
  };
620
686
 
621
- var _excluded = ["allowRowClick", "enableColumnResize", "enableColumnReorder", "enableColumnFreeze", "enableAddColumn", "className", "columnData", "currentPageNumber", "defaultPageSize", "handlePageChange", "loading", "onRowClick", "onRowSelect", "rowData", "totalCount", "selectedRowKeys", "fixedHeight", "paginationProps", "rowKey", "scroll", "rowSelection", "shouldDynamicallyRenderRowSize", "bordered", "onColumnUpdate", "components", "onColumnHide", "onColumnAdd", "onColumnDelete", "onChange", "onMoreActionClick", "bulkSelectAllRowsProps", "localStorageKeyPrefix"];
687
+ var useVirtualScroll = function useVirtualScroll(_ref) {
688
+ var otherProps = _ref.otherProps,
689
+ rowData = _ref.rowData,
690
+ pageSize = _ref.pageSize,
691
+ shouldShowSelectAllRowsCallout = _ref.shouldShowSelectAllRowsCallout,
692
+ shouldShowAllRowsSelectedCallout = _ref.shouldShowAllRowsSelectedCallout,
693
+ headerHeight = _ref.headerHeight;
694
+ var _useState = React.useState({
695
+ top: 0,
696
+ left: 0
697
+ }),
698
+ _useState2 = _slicedToArray(_useState, 2),
699
+ containerRect = _useState2[0],
700
+ setContainerRect = _useState2[1];
701
+ var tableContainerRef = React.useRef(null);
702
+ React.useEffect(function () {
703
+ var updateContainerRect = function updateContainerRect() {
704
+ if (!tableContainerRef.current) return;
705
+ var rect = tableContainerRef.current.getBoundingClientRect();
706
+ setContainerRect(rect);
707
+ };
708
+ updateContainerRect();
709
+ window.addEventListener("scroll", updateContainerRect);
710
+ window.addEventListener("resize", updateContainerRect);
711
+ return function () {
712
+ window.removeEventListener("scroll", updateContainerRect);
713
+ window.removeEventListener("resize", updateContainerRect);
714
+ };
715
+ }, []);
716
+ var calculateTableContainerHeight = function calculateTableContainerHeight() {
717
+ var isPaginationVisible = otherProps.pagination !== false && rowData.length > pageSize;
718
+ var selectAllRowsCalloutHeight = 0;
719
+ if (shouldShowSelectAllRowsCallout || shouldShowAllRowsSelectedCallout) {
720
+ selectAllRowsCalloutHeight = getSelectAllRowsCalloutHeight();
721
+ }
722
+ var containerHeight = window.innerHeight - containerRect.top;
723
+ return containerHeight - headerHeight - (isPaginationVisible ? useRestoreScrollPosition.TABLE_PAGINATION_HEIGHT : 0) - selectAllRowsCalloutHeight;
724
+ };
725
+ return {
726
+ tableRef: null,
727
+ tableContainerRef: tableContainerRef,
728
+ handleScroll: neetoCist.noop,
729
+ calculatedScroll: {
730
+ x: window.innerWidth - (containerRect === null || containerRect === void 0 ? void 0 : containerRect.left),
731
+ y: calculateTableContainerHeight()
732
+ }
733
+ };
734
+ };
735
+
736
+ var _excluded = ["allowRowClick", "enableColumnResize", "enableColumnReorder", "enableColumnFreeze", "enableAddColumn", "className", "columnData", "currentPageNumber", "defaultPageSize", "handlePageChange", "loading", "onRowClick", "onRowSelect", "rowData", "totalCount", "selectedRowKeys", "fixedHeight", "paginationProps", "rowKey", "scroll", "rowSelection", "shouldDynamicallyRenderRowSize", "bordered", "onColumnUpdate", "components", "onColumnHide", "onColumnAdd", "onColumnDelete", "onChange", "onMoreActionClick", "bulkSelectAllRowsProps", "localStorageKeyPrefix", "virtual"];
622
737
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
623
738
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
624
- var TABLE_PAGINATION_HEIGHT = 64;
625
- var TABLE_DEFAULT_HEADER_HEIGHT = 40;
626
- var TABLE_ROW_HEIGHT = 52;
627
739
  var Table = function Table(_ref) {
628
740
  var _ref$allowRowClick = _ref.allowRowClick,
629
741
  allowRowClick = _ref$allowRowClick === void 0 ? true : _ref$allowRowClick,
@@ -679,29 +791,27 @@ var Table = function Table(_ref) {
679
791
  onMoreActionClick = _ref.onMoreActionClick,
680
792
  bulkSelectAllRowsProps = _ref.bulkSelectAllRowsProps,
681
793
  localStorageKeyPrefix = _ref.localStorageKeyPrefix,
794
+ _ref$virtual = _ref.virtual,
795
+ virtual = _ref$virtual === void 0 ? false : _ref$virtual,
682
796
  otherProps = _objectWithoutProperties(_ref, _excluded);
683
797
  var _useTranslation = reactI18next.useTranslation(),
684
798
  i18n = _useTranslation.i18n;
685
- var _useState = React.useState(null),
799
+ var _useState = React.useState(useRestoreScrollPosition.TABLE_DEFAULT_HEADER_HEIGHT),
686
800
  _useState2 = _slicedToArray(_useState, 2),
687
- containerHeight = _useState2[0],
688
- setContainerHeight = _useState2[1];
689
- var _useState3 = React.useState(TABLE_DEFAULT_HEADER_HEIGHT),
801
+ headerHeight = _useState2[0],
802
+ setHeaderHeight = _useState2[1];
803
+ var _useState3 = React.useState(columnData),
690
804
  _useState4 = _slicedToArray(_useState3, 2),
691
- headerHeight = _useState4[0],
692
- setHeaderHeight = _useState4[1];
693
- var _useState5 = React.useState(columnData),
805
+ columns = _useState4[0],
806
+ setColumns = _useState4[1];
807
+ var _useState5 = React.useState(false),
694
808
  _useState6 = _slicedToArray(_useState5, 2),
695
- columns = _useState6[0],
696
- setColumns = _useState6[1];
697
- var _useState7 = React.useState(false),
809
+ bulkSelectedAllRows = _useState6[0],
810
+ setBulkSelectedAllRows = _useState6[1];
811
+ var _useState7 = React.useState({}),
698
812
  _useState8 = _slicedToArray(_useState7, 2),
699
- bulkSelectedAllRows = _useState8[0],
700
- setBulkSelectedAllRows = _useState8[1];
701
- var _useState9 = React.useState({}),
702
- _useState10 = _slicedToArray(_useState9, 2),
703
- columnChanges = _useState10[0],
704
- setColumnChanges = _useState10[1];
813
+ columnChanges = _useState8[0],
814
+ setColumnChanges = _useState8[1];
705
815
  var _useTableSort = useTableSort(),
706
816
  handleTableSortChange = _useTableSort.handleTableChange,
707
817
  sortedInfo = _useTableSort.sortedInfo,
@@ -712,32 +822,8 @@ var Table = function Table(_ref) {
712
822
  var history = reactRouterDom.useHistory();
713
823
  var headerRef = React.useRef();
714
824
  var tableOnChangeProps = React.useRef({});
715
- var resizeObserver = React.useRef(new ResizeObserver(function (_ref3) {
716
- var _ref4 = _slicedToArray(_ref3, 1),
717
- entry = _ref4[0];
718
- return setContainerHeight(entry.contentRect.height);
719
- }));
720
- var scrollRef = React.useRef(null);
721
- var tableRef = React.useCallback(function (table) {
722
- scrollRef.current = table;
723
- if (!fixedHeight) return;
724
- var observer = resizeObserver.current;
725
- if (table !== null) {
726
- var _table$parentNode;
727
- var targetNode = enableColumnReorder ? table === null || table === void 0 || (_table$parentNode = table.parentNode) === null || _table$parentNode === void 0 ? void 0 : _table$parentNode.parentNode : table === null || table === void 0 ? void 0 : table.parentNode;
728
- observer.observe(targetNode);
729
- } else if (observer) {
730
- observer.disconnect();
731
- }
732
- }, [resizeObserver.current, fixedHeight, enableColumnReorder]);
733
- var _useRestoreScrollPosi = useRestoreScrollPosition.useRestoreScrollPosition({
734
- tableRef: tableRef,
735
- scrollRef: scrollRef,
736
- loading: loading
737
- }),
738
- handleScroll = _useRestoreScrollPosi.handleScroll;
739
825
  useTimeout(function () {
740
- var headerHeight = headerRef.current ? headerRef.current.offsetHeight : TABLE_DEFAULT_HEADER_HEIGHT;
826
+ var headerHeight = headerRef.current ? headerRef.current.offsetHeight : useRestoreScrollPosition.TABLE_DEFAULT_HEADER_HEIGHT;
741
827
  setHeaderHeight(headerHeight);
742
828
  }, 10);
743
829
  var handleColumnUpdateWithChanges = function handleColumnUpdateWithChanges(updatedColumns) {
@@ -802,6 +888,22 @@ var Table = function Table(_ref) {
802
888
  }, [selectedRowKeys, rowKey, rowData, totalCount, bulkSelectedAllRows]);
803
889
  var shouldShowSelectAllRowsCallout = bulkSelectAllRowsProps && showBulkSelectionCallout;
804
890
  var shouldShowAllRowsSelectedCallout = bulkSelectAllRowsProps && bulkSelectedAllRows;
891
+ var pageSize = shouldDynamicallyRenderRowSize ? calculateRowsPerPage() : paginationProps.pageSize || defaultPageSize;
892
+ var _ref3 = (virtual ? useVirtualScroll : useScroll)({
893
+ fixedHeight: fixedHeight,
894
+ enableColumnReorder: enableColumnReorder,
895
+ loading: loading,
896
+ otherProps: otherProps,
897
+ rowData: rowData,
898
+ pageSize: pageSize,
899
+ shouldShowSelectAllRowsCallout: shouldShowSelectAllRowsCallout,
900
+ shouldShowAllRowsSelectedCallout: shouldShowAllRowsSelectedCallout,
901
+ headerHeight: headerHeight
902
+ }),
903
+ tableRef = _ref3.tableRef,
904
+ tableContainerRef = _ref3.tableContainerRef,
905
+ handleScroll = _ref3.handleScroll,
906
+ calculatedScroll = _ref3.calculatedScroll;
805
907
  var handleRowChange = function handleRowChange(selectedRowKeys, selectedRows) {
806
908
  var tableWrapper = document.querySelector('[data-testid="table-wrapper"]');
807
909
  if (selectedRowKeys.length !== defaultPageSize) {
@@ -815,7 +917,8 @@ var Table = function Table(_ref) {
815
917
  };
816
918
  var rowSelectionProps = rowSelection ? _objectSpread(_objectSpread({
817
919
  type: "checkbox",
818
- preserveSelectedRowKeys: true
920
+ preserveSelectedRowKeys: true,
921
+ columnWidth: 48
819
922
  }, rowSelection), {}, {
820
923
  onChange: handleRowChange,
821
924
  selectedRowKeys: selectedRowKeys
@@ -837,20 +940,6 @@ var Table = function Table(_ref) {
837
940
  enableColumnReorder: enableColumnReorder
838
941
  })
839
942
  });
840
- var calculateRowsPerPage = function calculateRowsPerPage() {
841
- var viewportHeight = window.innerHeight;
842
- var rowsPerPage = Math.floor((viewportHeight - TABLE_PAGINATION_HEIGHT) / TABLE_ROW_HEIGHT * 3);
843
- return Math.ceil(rowsPerPage / 10) * 10;
844
- };
845
- var pageSize = shouldDynamicallyRenderRowSize ? calculateRowsPerPage() : paginationProps.pageSize || defaultPageSize;
846
- var calculateTableContainerHeight = function calculateTableContainerHeight() {
847
- var isPaginationVisible = otherProps.pagination !== false && rowData.length > pageSize;
848
- var selectAllRowsCalloutHeight = 0;
849
- if (shouldShowSelectAllRowsCallout || shouldShowAllRowsSelectedCallout) {
850
- selectAllRowsCalloutHeight = getSelectAllRowsCalloutHeight();
851
- }
852
- return containerHeight - headerHeight - (isPaginationVisible ? TABLE_PAGINATION_HEIGHT : 0) - selectAllRowsCalloutHeight;
853
- };
854
943
  var calculatePageSizeOptions = function calculatePageSizeOptions() {
855
944
  return neetoCist.dynamicArray(5, function (index) {
856
945
  return (index + 1) * pageSize;
@@ -961,6 +1050,7 @@ var Table = function Table(_ref) {
961
1050
  bordered: bordered,
962
1051
  locale: locale,
963
1052
  rowKey: rowKey,
1053
+ virtual: virtual,
964
1054
  columns: sortedColumns,
965
1055
  components: componentOverrides,
966
1056
  dataSource: rowData,
@@ -970,6 +1060,7 @@ var Table = function Table(_ref) {
970
1060
  },
971
1061
  ref: tableRef,
972
1062
  rowSelection: rowSelectionProps,
1063
+ scroll: _objectSpread(_objectSpread({}, calculatedScroll), scroll),
973
1064
  showSorterTooltip: false,
974
1065
  pagination: _objectSpread(_objectSpread({
975
1066
  hideOnSinglePage: true
@@ -985,10 +1076,6 @@ var Table = function Table(_ref) {
985
1076
  rowClassName: classnames("neeto-ui-table--row", {
986
1077
  "neeto-ui-table--row_hover": allowRowClick
987
1078
  }, [className]),
988
- scroll: _objectSpread({
989
- x: "max-content",
990
- y: calculateTableContainerHeight()
991
- }, scroll),
992
1079
  onChange: handleTableChange,
993
1080
  onScroll: handleScroll,
994
1081
  onHeaderRow: function onHeaderRow() {
@@ -1009,7 +1096,12 @@ var Table = function Table(_ref) {
1009
1096
  }
1010
1097
  }, otherProps)));
1011
1098
  };
1012
- return enableColumnReorder ? /*#__PURE__*/React.createElement(ReactDragListView.DragColumn, dragProps, renderTable()) : renderTable();
1099
+ var renderTableVirtual = function renderTableVirtual() {
1100
+ return virtual ? /*#__PURE__*/React.createElement("div", {
1101
+ ref: tableContainerRef
1102
+ }, renderTable()) : renderTable();
1103
+ };
1104
+ return enableColumnReorder ? /*#__PURE__*/React.createElement(ReactDragListView.DragColumn, dragProps, renderTableVirtual()) : renderTableVirtual();
1013
1105
  };
1014
1106
 
1015
1107
  module.exports = Table;