shineout 3.5.4-beta.3 → 3.5.4-beta.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.
package/cjs/index.js CHANGED
@@ -500,5 +500,5 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
500
500
  // 此文件由脚本自动生成,请勿直接修改。
501
501
  // This file was generated automatically by a script. Please do not modify it directly.
502
502
  var _default = exports.default = {
503
- version: '3.5.4-beta.3'
503
+ version: '3.5.4-beta.4'
504
504
  };
package/dist/shineout.js CHANGED
@@ -12030,7 +12030,7 @@ var handleStyle = function handleStyle(style) {
12030
12030
  };
12031
12031
  /* harmony default export */ var jss_style_handleStyle = (handleStyle);
12032
12032
  ;// CONCATENATED MODULE: ../shineout-style/src/version.ts
12033
- /* harmony default export */ var version = ('3.5.4-beta.3');
12033
+ /* harmony default export */ var version = ('3.5.4-beta.4');
12034
12034
  ;// CONCATENATED MODULE: ../shineout-style/src/jss-style/index.tsx
12035
12035
 
12036
12036
 
@@ -58626,7 +58626,6 @@ function getMaxRowSpanLength(input) {
58626
58626
  }
58627
58627
  return Math.max.apply(Math, toConsumableArray_default()(Array.from(map.values())));
58628
58628
  }
58629
- var MAX_ROW_SPAN = 200;
58630
58629
  var useTableVirtual = function useTableVirtual(props) {
58631
58630
  var _useState = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(0),
58632
58631
  _useState2 = slicedToArray_default()(_useState, 2),
@@ -58659,7 +58658,7 @@ var useTableVirtual = function useTableVirtual(props) {
58659
58658
  var totalLength = props.data.length;
58660
58659
  var _loop = function _loop(i) {
58661
58660
  var startIndex = i;
58662
- var rowSpanInfo = rowSpanColumns.map(function (col) {
58661
+ var _rowSpanInfo = rowSpanColumns.map(function (col) {
58663
58662
  var rowSpan = col.rowSpan;
58664
58663
  function getRowSpanCount(index, _count) {
58665
58664
  var count = _count;
@@ -58675,7 +58674,7 @@ var useTableVirtual = function useTableVirtual(props) {
58675
58674
  var count = getRowSpanCount(i, 1);
58676
58675
  return [startIndex, startIndex + count - 1];
58677
58676
  });
58678
- _rowSpanInfos.push(rowSpanInfo);
58677
+ _rowSpanInfos.push(_rowSpanInfo);
58679
58678
  };
58680
58679
  for (var i = 0; i < totalLength; i++) {
58681
58680
  _loop(i);
@@ -58701,10 +58700,12 @@ var useTableVirtual = function useTableVirtual(props) {
58701
58700
  });
58702
58701
  return Math.min.apply(Math, toConsumableArray_default()(startIndexs));
58703
58702
  });
58704
- var maxRowSpan = getMaxRowSpanLength(resultArr);
58705
- return maxRowSpan > 1 ? {
58703
+
58704
+ // 根据data计算出实际需要的最大合并行数
58705
+ var _maxRowSpan = getMaxRowSpanLength(resultArr);
58706
+ return _maxRowSpan > 1 ? {
58706
58707
  rowSpanIndexArray: resultArr,
58707
- maxRowSpan: maxRowSpan
58708
+ maxRowSpan: _maxRowSpan
58708
58709
  } : null;
58709
58710
  }, [props.data, props.columns]);
58710
58711
  var _useRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)({
@@ -58761,32 +58762,31 @@ var useTableVirtual = function useTableVirtual(props) {
58761
58762
  }
58762
58763
  });
58763
58764
  var updateIndexAndTopFromTop = function updateIndexAndTopFromTop(scrollTop) {
58765
+ var _props$scrollRef$curr;
58764
58766
  if (props.disabled) return;
58765
58767
  var sum = 0;
58766
58768
  var currentIndex = 0;
58767
58769
  var top = 0;
58768
58770
  var maxIndex = Math.max(props.data.length - rowsInView, 0);
58769
- var maxRowSpanLenth = 0;
58770
- if (rowSpanInfo) {
58771
- maxRowSpanLenth = Math.min(rowSpanInfo.rowSpanIndexArray.length,
58772
- // 根据data计算出实际需要的最大合并行数(rowSpanInfo.maxRowSpan),当rowSpanInfo.maxRowSpan大于外部传的rowsInView时,使用rowSpanInfo.maxRowSpan
58773
- Math.max(rowSpanInfo.maxRowSpan, props.rowsInView > MAX_ROW_SPAN ? props.rowsInView : props.rowsInView || MAX_ROW_SPAN));
58774
- }
58771
+ var scrollContainerHeight = Math.max(((_props$scrollRef$curr = props.scrollRef.current) === null || _props$scrollRef$curr === void 0 ? void 0 : _props$scrollRef$curr.clientHeight) || 0, 200);
58775
58772
  for (var i = 0; i <= maxIndex; i++) {
58776
58773
  context.rowSpanRows = 0;
58777
58774
  sum += context.cachedHeight[i] || props.rowHeight;
58778
58775
  var rowSpanHeight = 0;
58779
58776
  if (rowSpanInfo) {
58780
58777
  var siblingsIndexs = [];
58781
- for (var k = i; k < maxRowSpanLenth + i; k++) {
58778
+ for (var k = i; k < rowSpanInfo.maxRowSpan + i; k++) {
58782
58779
  if (rowSpanInfo.rowSpanIndexArray[k] <= i && k > i) {
58783
58780
  siblingsIndexs.push(k);
58784
58781
  }
58785
58782
  }
58786
58783
  for (var j = 0; j < siblingsIndexs.length; j++) {
58787
- var index = siblingsIndexs[j];
58788
- context.rowSpanRows += 1;
58789
- rowSpanHeight += context.cachedHeight[index] || props.rowHeight;
58784
+ // 在当前滚动容器滚动一屏上方销毁tr,不在可见区域内销毁重建,避免引起可见的单元格(合并的)内容闪烁
58785
+ if (rowSpanHeight < scrollContainerHeight) {
58786
+ var index = siblingsIndexs[j];
58787
+ context.rowSpanRows += 1;
58788
+ rowSpanHeight += context.cachedHeight[index] || props.rowHeight;
58789
+ }
58790
58790
  }
58791
58791
  }
58792
58792
  if (scrollTop < sum + rowSpanHeight || i === maxIndex) {
@@ -58960,6 +58960,10 @@ var useTableVirtual = function useTableVirtual(props) {
58960
58960
  }, [scrollHeight]);
58961
58961
  var finalRowsInView = rowsInView + context.rowSpanRows + context.autoAddRows;
58962
58962
  var renderData = props.disabled ? props.data : toConsumableArray_default()(props.data).slice(startIndex, startIndex + finalRowsInView);
58963
+ console.log('======================');
58964
+ console.log('startIndex: >>', startIndex);
58965
+ console.log('finalRowsInView: >>', finalRowsInView);
58966
+ console.log('======================');
58963
58967
  return {
58964
58968
  scrollHeight: scrollHeight,
58965
58969
  startIndex: startIndex,
@@ -59994,23 +59998,30 @@ var Tr = function Tr(props) {
59994
59998
  var col = cols[i];
59995
59999
  if (data[i]) {
59996
60000
  var last = cols[i + (data[i].colSpan || 1) - 1] || {};
60001
+ var isRowSpanTd = data[i].rowSpan > 1;
60002
+ var $tdContent = renderContent(col, data[i].data);
59997
60003
  var td = /*#__PURE__*/(0,jsx_runtime.jsx)("td", {
59998
60004
  colSpan: data[i].colSpan,
59999
60005
  rowSpan: data[i].rowSpan,
60000
- onMouseEnter: props.hover && hasSiblingRowSpan || data[i].rowSpan > 1 ? function () {
60006
+ onMouseEnter: props.hover && hasSiblingRowSpan || isRowSpanTd ? function () {
60001
60007
  props.handleCellHover(props.rowIndex, data[i].rowSpan);
60002
60008
  } : undefined,
60003
- onMouseLeave: props.hover && hasSiblingRowSpan || data[i].rowSpan > 1 ? function () {
60009
+ onMouseLeave: props.hover && hasSiblingRowSpan || isRowSpanTd ? function () {
60004
60010
  props.handleCellHover(-1, 0);
60005
60011
  } : undefined,
60006
- className: classnames_default()(col.className, col.type === 'checkbox' && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.cellCheckbox), col.fixed === 'left' && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.cellFixedLeft), col.fixed === 'right' && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.cellFixedRight), col.align === 'center' && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.cellAlignCenter), col.align === 'right' && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.cellAlignRight), (col.lastFixed || col.firstFixed || last.lastFixed) && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.cellFixedLast), lastRowIndex === i && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.cellIgnoreBorder), props.hoverIndex.has(props.rowIndex) && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.cellHover), data[i].rowSpan > 1 && props.isCellHover(props.rowIndex, data[i].rowSpan) && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.cellHover)),
60012
+ className: classnames_default()(col.className, col.type === 'checkbox' && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.cellCheckbox), col.fixed === 'left' && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.cellFixedLeft), col.fixed === 'right' && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.cellFixedRight), col.align === 'center' && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.cellAlignCenter), col.align === 'right' && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.cellAlignRight), (col.lastFixed || col.firstFixed || last.lastFixed) && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.cellFixedLast), lastRowIndex === i && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.cellIgnoreBorder), props.hoverIndex.has(props.rowIndex) && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.cellHover), isRowSpanTd && props.isCellHover(props.rowIndex, data[i].rowSpan) && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.cellHover)),
60007
60013
  style: getTdStyle(col, data[i].colSpan),
60008
60014
  dir: config.direction,
60009
60015
  "data-role": col.type === 'checkbox' ? 'checkbox' : undefined,
60010
60016
  onClick: props.onCellClick ? function () {
60011
60017
  return handleCellClick(data[i].data, i);
60012
60018
  } : undefined,
60013
- children: renderContent(col, data[i].data)
60019
+ children: isRowSpanTd ? /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
60020
+ style: {
60021
+ height: 0
60022
+ },
60023
+ children: $tdContent
60024
+ }) : $tdContent
60014
60025
  }, col.key);
60015
60026
  tds.push(td);
60016
60027
  if (data[i].colSpan) skip = data[i].colSpan - 1;
@@ -66990,7 +67001,7 @@ var upload_interface = __webpack_require__(8821);
66990
67001
 
66991
67002
 
66992
67003
  /* harmony default export */ var src_0 = ({
66993
- version: '3.5.4-beta.3'
67004
+ version: '3.5.4-beta.4'
66994
67005
  });
66995
67006
  }();
66996
67007
  /******/ return __webpack_exports__;