@kdcloudjs/table 1.2.2-canary.14-hotfix.5 → 1.2.2-canary.14-hotfix.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,6 @@
1
1
  /*!
2
2
  *
3
- * @kdcloudjs/table v1.2.2-canary.14-hotfix.5
3
+ * @kdcloudjs/table v1.2.2-canary.14-hotfix.6
4
4
  *
5
5
  * Copyright 2020-present, Kingdee, Inc.
6
6
  * All rights reserved.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * @kdcloudjs/table v1.2.2-canary.14-hotfix.5
3
+ * @kdcloudjs/table v1.2.2-canary.14-hotfix.6
4
4
  *
5
5
  * Copyright 2020-present, Kingdee, Inc.
6
6
  * All rights reserved.
@@ -2804,12 +2804,22 @@ function HtmlTable(_ref) {
2804
2804
  isPlacehoder: true
2805
2805
  });
2806
2806
  }
2807
+
2808
+ // detail 行跳过水平虚拟化,渲染所有列,确保 column 0 的 getSpanRect 能正确执行
2809
+ var isDetailRow = (rowProps === null || rowProps === void 0 ? void 0 : rowProps['data-row-detail-key']) != null;
2810
+ var rowDescriptors = isDetailRow ? flat.full.map(function (col, i) {
2811
+ return {
2812
+ type: 'normal',
2813
+ col: col,
2814
+ colIndex: i
2815
+ };
2816
+ }) : visibleColumnDescriptor;
2807
2817
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_14___default.a.createElement("tr", _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({}, rowProps, {
2808
2818
  className: rowClass,
2809
2819
  key: rowProps !== null && rowProps !== void 0 && rowProps['data-row-detail-key'] ? rowProps['data-row-detail-key'] : _internals__WEBPACK_IMPORTED_MODULE_15__["internals"].safeGetRowKey(primaryKey, record, rowIndex),
2810
2820
  "data-rowindex": rowIndex,
2811
2821
  "data-role": 'table-row'
2812
- }), visibleColumnDescriptor.map(function (descriptor) {
2822
+ }), rowDescriptors.map(function (descriptor) {
2813
2823
  if (descriptor.type === 'blank') {
2814
2824
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_14___default.a.createElement("td", {
2815
2825
  key: descriptor.blankSide,
@@ -2818,10 +2828,10 @@ function HtmlTable(_ref) {
2818
2828
  }
2819
2829
  });
2820
2830
  }
2821
- return renderBodyCell(record, rowIndex, descriptor.col, descriptor.colIndex);
2831
+ return renderBodyCell(record, rowIndex, descriptor.col, descriptor.colIndex, isDetailRow ? fullFlatCount : undefined);
2822
2832
  }));
2823
2833
  }
2824
- function renderBodyCell(record, rowIndex, column, colIndex) {
2834
+ function renderBodyCell(record, rowIndex, column, colIndex, colSpanLimit) {
2825
2835
  var _column$getCellProps, _column$getCellProps2, _column$verticalAlign;
2826
2836
  if (spanManager.testSkip(rowIndex, colIndex)) {
2827
2837
  return null;
@@ -2853,7 +2863,7 @@ function HtmlTable(_ref) {
2853
2863
 
2854
2864
  // rowSpan/colSpan 不能过大,避免 rowSpan/colSpan 影响因虚拟滚动而未渲染的单元格
2855
2865
  rowSpan = Math.min(rowSpan, verInfo.limit - rowIndex);
2856
- colSpan = Math.min(colSpan, hozInfo.visible.length - colIndex);
2866
+ colSpan = Math.min(colSpan, (colSpanLimit !== null && colSpanLimit !== void 0 ? colSpanLimit : hozInfo.visible.length) - colIndex);
2857
2867
 
2858
2868
  // todo: 右侧有列固定的情况下colSpan计算不对,这里先限制一下
2859
2869
  rowSpan = Math.max(rowSpan, 1);
@@ -5808,13 +5818,34 @@ function columnDrag() {
5808
5818
  var style = cloumnsTranslateData ? {
5809
5819
  transition: '.3s',
5810
5820
  transform: "translate3d(".concat(cloumnsTranslateData[col.code], "px, 0px, 0px)")
5811
- } : {};
5821
+ } : null;
5812
5822
  var prevGetCellProps = col.getCellProps;
5813
5823
  // !col.code: 选择列 col.lock: 固定列 不允许拖拽
5814
5824
  if (col.lock || !col.code) return col;
5825
+
5826
+ // 没有拖拽进行时,不包装 getCellProps,避免每个 cell 多一层函数调用
5827
+ if (style == null) {
5828
+ return _objectSpread(_objectSpread({}, col), {}, {
5829
+ headerCellProps: Object(_utils__WEBPACK_IMPORTED_MODULE_10__["mergeCellProps"])(col.headerCellProps, _objectSpread({}, isLeaf && path.length === 1 ? {
5830
+ onMouseDown: function onMouseDown(e) {
5831
+ if (e.button !== 0 || !e.currentTarget.contains(e.target)) {
5832
+ return;
5833
+ }
5834
+ handlePointerDown(e.nativeEvent, false, e.currentTarget);
5835
+ },
5836
+ onTouchStart: function onTouchStart(e) {
5837
+ if (e.cancelable) {
5838
+ e.preventDefault();
5839
+ }
5840
+ handlePointerDown(e.nativeEvent, true, e.currentTarget);
5841
+ }
5842
+ } : {}))
5843
+ });
5844
+ }
5815
5845
  return _objectSpread(_objectSpread({}, col), {}, {
5816
5846
  getCellProps: function getCellProps(value, record, rowIndex) {
5817
5847
  var prevCellProps = prevGetCellProps === null || prevGetCellProps === void 0 ? void 0 : prevGetCellProps(value, record, rowIndex);
5848
+ if (style == null) return prevCellProps;
5818
5849
  return Object(_utils__WEBPACK_IMPORTED_MODULE_10__["mergeCellProps"])(prevCellProps, {
5819
5850
  style: style
5820
5851
  });
@@ -6378,20 +6409,26 @@ function columnHover() {
6378
6409
  }
6379
6410
  var colIndexMatched = range.start <= hoverColIndex && hoverColIndex < range.end;
6380
6411
  var prevGetCellProps = col.getCellProps;
6412
+
6413
+ // 预构建 merge 用的 extra 对象,避免在每个 cell 里重复创建
6414
+ var onMouseEnter = function onMouseEnter() {
6415
+ onChangeHoverColIndex(range.start);
6416
+ };
6417
+ var onMouseLeave = function onMouseLeave() {
6418
+ onChangeHoverColIndex(-1);
6419
+ };
6420
+ var cellExtra = {
6421
+ style: {
6422
+ '--bgcolor': colIndexMatched ? hoverColor : undefined
6423
+ },
6424
+ onMouseEnter: onMouseEnter,
6425
+ onMouseLeave: onMouseLeave
6426
+ };
6381
6427
  return _objectSpread(_objectSpread({}, col), {}, {
6382
6428
  getCellProps: function getCellProps(value, record, rowIndex) {
6383
6429
  var prevCellProps = prevGetCellProps === null || prevGetCellProps === void 0 ? void 0 : prevGetCellProps(value, record, rowIndex);
6384
- return Object(_utils__WEBPACK_IMPORTED_MODULE_8__["mergeCellProps"])(prevCellProps, {
6385
- style: {
6386
- '--bgcolor': colIndexMatched ? hoverColor : undefined
6387
- },
6388
- onMouseEnter: function onMouseEnter() {
6389
- onChangeHoverColIndex(range.start);
6390
- },
6391
- onMouseLeave: function onMouseLeave() {
6392
- onChangeHoverColIndex(-1);
6393
- }
6394
- });
6430
+ if (!prevCellProps) return cellExtra;
6431
+ return Object(_utils__WEBPACK_IMPORTED_MODULE_8__["mergeCellProps"])(prevCellProps, cellExtra);
6395
6432
  }
6396
6433
  });
6397
6434
  }));
@@ -6482,31 +6519,33 @@ function columnRangeHover() {
6482
6519
  });
6483
6520
  }
6484
6521
  var prevGetCellProps = col.getCellProps;
6522
+
6523
+ // 预构建 merge 用的 extra 对象,避免在每个 cell 里重复创建
6524
+ var onMouseEnter = function onMouseEnter() {
6525
+ onChangeHoverRange(colRange);
6526
+ };
6527
+ var onMouseLeave = function onMouseLeave() {
6528
+ onChangeHoverRange(EMPTY_RANGE);
6529
+ };
6530
+ var cellExtra = {
6531
+ onMouseEnter: onMouseEnter,
6532
+ onMouseLeave: onMouseLeave,
6533
+ style: {
6534
+ '--bgcolor': match ? hoverColor : undefined
6535
+ }
6536
+ };
6485
6537
  return _objectSpread(_objectSpread({}, col), {}, {
6486
6538
  headerCellProps: Object(_utils__WEBPACK_IMPORTED_MODULE_8__["mergeCellProps"])(col.headerCellProps, {
6487
- onMouseEnter: function onMouseEnter() {
6488
- onChangeHoverRange(colRange);
6489
- },
6490
- onMouseLeave: function onMouseLeave() {
6491
- onChangeHoverRange(EMPTY_RANGE);
6492
- },
6539
+ onMouseEnter: onMouseEnter,
6540
+ onMouseLeave: onMouseLeave,
6493
6541
  style: {
6494
6542
  '--header-bgcolor': match ? headerHoverColor : undefined
6495
6543
  }
6496
6544
  }),
6497
6545
  getCellProps: function getCellProps(value, record, rowIndex) {
6498
6546
  var prevCellProps = prevGetCellProps === null || prevGetCellProps === void 0 ? void 0 : prevGetCellProps(value, record, rowIndex);
6499
- return Object(_utils__WEBPACK_IMPORTED_MODULE_8__["mergeCellProps"])(prevCellProps, {
6500
- onMouseEnter: function onMouseEnter() {
6501
- onChangeHoverRange(colRange);
6502
- },
6503
- onMouseLeave: function onMouseLeave() {
6504
- onChangeHoverRange(EMPTY_RANGE);
6505
- },
6506
- style: {
6507
- '--bgcolor': match ? hoverColor : undefined
6508
- }
6509
- });
6547
+ if (!prevCellProps) return cellExtra;
6548
+ return Object(_utils__WEBPACK_IMPORTED_MODULE_8__["mergeCellProps"])(prevCellProps, cellExtra);
6510
6549
  }
6511
6550
  });
6512
6551
  }));
@@ -8121,24 +8160,26 @@ __webpack_require__.r(__webpack_exports__);
8121
8160
  "use strict";
8122
8161
  __webpack_require__.r(__webpack_exports__);
8123
8162
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeCellHover", function() { return mergeCellHover; });
8124
- /* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js");
8125
- /* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_0__);
8126
- /* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.filter.js */ "./node_modules/core-js/modules/es.array.filter.js");
8127
- /* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_1__);
8128
- /* harmony import */ var core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.object.get-own-property-descriptor.js */ "./node_modules/core-js/modules/es.object.get-own-property-descriptor.js");
8129
- /* harmony import */ var core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_2__);
8130
- /* harmony import */ var core_js_modules_es_object_get_own_property_descriptors_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.object.get-own-property-descriptors.js */ "./node_modules/core-js/modules/es.object.get-own-property-descriptors.js");
8131
- /* harmony import */ var core_js_modules_es_object_get_own_property_descriptors_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_own_property_descriptors_js__WEBPACK_IMPORTED_MODULE_3__);
8132
- /* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.object.keys.js */ "./node_modules/core-js/modules/es.object.keys.js");
8133
- /* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_4__);
8134
- /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js");
8135
- /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_5__);
8136
- /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
8137
- /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_6__);
8163
+ /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js");
8164
+ /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);
8165
+ /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
8166
+ /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__);
8167
+ /* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.symbol.js */ "./node_modules/core-js/modules/es.symbol.js");
8168
+ /* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_2__);
8169
+ /* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.array.filter.js */ "./node_modules/core-js/modules/es.array.filter.js");
8170
+ /* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_3__);
8171
+ /* harmony import */ var core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.object.get-own-property-descriptor.js */ "./node_modules/core-js/modules/es.object.get-own-property-descriptor.js");
8172
+ /* harmony import */ var core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_4__);
8173
+ /* harmony import */ var core_js_modules_es_object_get_own_property_descriptors_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.object.get-own-property-descriptors.js */ "./node_modules/core-js/modules/es.object.get-own-property-descriptors.js");
8174
+ /* harmony import */ var core_js_modules_es_object_get_own_property_descriptors_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_own_property_descriptors_js__WEBPACK_IMPORTED_MODULE_5__);
8175
+ /* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.object.keys.js */ "./node_modules/core-js/modules/es.object.keys.js");
8176
+ /* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_6__);
8138
8177
  /* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ "./node_modules/core-js/modules/web.dom-collections.for-each.js");
8139
8178
  /* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_7__);
8140
8179
  /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils */ "./components/table/utils/index.tsx");
8141
8180
 
8181
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
8182
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
8142
8183
 
8143
8184
 
8144
8185
 
@@ -8146,11 +8187,25 @@ __webpack_require__.r(__webpack_exports__);
8146
8187
 
8147
8188
 
8148
8189
 
8149
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
8150
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_5___default()(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
8151
8190
 
8152
8191
  function mergeCellHover() {
8153
8192
  return function (pipeline) {
8193
+ var onMouseEnter = function onMouseEnter(e) {
8194
+ var InRangeRow = pipeline.ref.current.domHelper.getInRangeRowByCellEvent(e);
8195
+ InRangeRow.forEach(function (row) {
8196
+ row.classList.add('row-hover');
8197
+ });
8198
+ };
8199
+ var onMouseLeave = function onMouseLeave(e) {
8200
+ var InRangeRow = pipeline.ref.current.domHelper.getInRangeRowByCellEvent(e);
8201
+ InRangeRow.forEach(function (row) {
8202
+ row.classList.remove('row-hover');
8203
+ });
8204
+ };
8205
+ var hoverHandlers = {
8206
+ onMouseEnter: onMouseEnter,
8207
+ onMouseLeave: onMouseLeave
8208
+ };
8154
8209
  return pipeline.mapColumns(Object(_utils__WEBPACK_IMPORTED_MODULE_8__["makeRecursiveMapper"])(function (col) {
8155
8210
  if (!Object(_utils__WEBPACK_IMPORTED_MODULE_8__["isLeafNode"])(col)) {
8156
8211
  return col;
@@ -8158,21 +8213,11 @@ function mergeCellHover() {
8158
8213
  var prevGetCellProps = col.getCellProps;
8159
8214
  return _objectSpread(_objectSpread({}, col), {}, {
8160
8215
  getCellProps: function getCellProps(value, record, rowIndex) {
8161
- var prevCellProps = prevGetCellProps === null || prevGetCellProps === void 0 ? void 0 : prevGetCellProps(value, record, rowIndex);
8162
- return Object(_utils__WEBPACK_IMPORTED_MODULE_8__["mergeCellProps"])(prevCellProps, {
8163
- onMouseEnter: function onMouseEnter(e) {
8164
- var InRangeRow = pipeline.ref.current.domHelper.getInRangeRowByCellEvent(e);
8165
- InRangeRow.forEach(function (row) {
8166
- row.classList.add('row-hover');
8167
- });
8168
- },
8169
- onMouseLeave: function onMouseLeave(e) {
8170
- var InRangeRow = pipeline.ref.current.domHelper.getInRangeRowByCellEvent(e);
8171
- InRangeRow.forEach(function (row) {
8172
- row.classList.remove('row-hover');
8173
- });
8174
- }
8175
- });
8216
+ // 大多数列没有自定义 getCellProps,直接返回静态 handlers 避免 mergeCellProps 开销
8217
+ if (!prevGetCellProps) return hoverHandlers;
8218
+ var prevCellProps = prevGetCellProps(value, record, rowIndex);
8219
+ if (!prevCellProps) return hoverHandlers;
8220
+ return Object(_utils__WEBPACK_IMPORTED_MODULE_8__["mergeCellProps"])(prevCellProps, hoverHandlers);
8176
8221
  }
8177
8222
  });
8178
8223
  }));
@@ -8714,6 +8759,9 @@ function rangeSelection(opts) {
8714
8759
 
8715
8760
  return pipeline.mapColumns(Object(_utils__WEBPACK_IMPORTED_MODULE_12__["makeRecursiveMapper"])(function (col) {
8716
8761
  var cellRanges = pipeline.getStateAtKey(rangeSelectionKey) || [];
8762
+
8763
+ // 没有选区时,不包装 getCellProps,避免每个 cell 多一层函数调用和 isCellInRange 检查
8764
+ if (cellRanges.length === 0) return col;
8717
8765
  var prevGetCellProps = col.getCellProps;
8718
8766
  return _objectSpread(_objectSpread({}, col), {}, {
8719
8767
  getCellProps: function getCellProps(value, record, rowIndex) {
@@ -8833,11 +8881,11 @@ function getRangeSelectionRowInfo(startCell, endCell, dataSource) {
8833
8881
  };
8834
8882
  }
8835
8883
 
8836
- /**
8837
- * 获取框选范围的起始结束行
8838
- * @param startCell 起始单元格
8839
- * @param endCell 结束单元格
8840
- * @returns
8884
+ /**
8885
+ * 获取框选范围的起始结束行
8886
+ * @param startCell 起始单元格
8887
+ * @param endCell 结束单元格
8888
+ * @returns
8841
8889
  */
8842
8890
  function getCellRangeRow(startCell, endCell) {
8843
8891
  if (isSameCell(startCell, endCell)) {
@@ -8855,10 +8903,10 @@ function getCellRangeRow(startCell, endCell) {
8855
8903
  };
8856
8904
  }
8857
8905
 
8858
- /**
8859
- * 框选范围是否只包含单个单元格
8860
- * @param cellRanges
8861
- * @returns
8906
+ /**
8907
+ * 框选范围是否只包含单个单元格
8908
+ * @param cellRanges
8909
+ * @returns
8862
8910
  */
8863
8911
  function isCellRangeSingleCell(cellRanges) {
8864
8912
  if (cellRanges.length !== 1) return false;
@@ -8897,13 +8945,13 @@ function getElementEditable(target) {
8897
8945
  }
8898
8946
  }
8899
8947
 
8900
- /**
8901
- * 判断单元格是否在框选范围内
8902
- * @param cellRange
8903
- * @param rowIndex
8904
- * @param col
8905
- * @param isFooterCell
8906
- * @returns
8948
+ /**
8949
+ * 判断单元格是否在框选范围内
8950
+ * @param cellRange
8951
+ * @param rowIndex
8952
+ * @param col
8953
+ * @param isFooterCell
8954
+ * @returns
8907
8955
  */
8908
8956
  function isCellInRange(cellRange, rowIndex, col, isFooterCell) {
8909
8957
  var startRow = cellRange.startRow,
@@ -8926,10 +8974,10 @@ function isCellInRange(cellRange, rowIndex, col, isFooterCell) {
8926
8974
  return isRowInRange;
8927
8975
  }
8928
8976
 
8929
- /**
8930
- * 获取框选范围唯一标识
8931
- * @param {*} cellRange
8932
- * @returns
8977
+ /**
8978
+ * 获取框选范围唯一标识
8979
+ * @param {*} cellRange
8980
+ * @returns
8933
8981
  */
8934
8982
  function getCellRangeId(cellRange) {
8935
8983
  var startRow = cellRange.startRow,
@@ -8947,11 +8995,11 @@ function getCellRangeId(cellRange) {
8947
8995
  return startRowIndex + '_' + endRowIndex + '_' + footerStartRowIndex + '_' + footerEndRowIndex + '_' + firstColId + '_' + endColId;
8948
8996
  }
8949
8997
 
8950
- /**
8951
- * 获取框选范围中单元格的样式
8952
- * @param cellRanges
8953
- * @param param1
8954
- * @returns
8998
+ /**
8999
+ * 获取框选范围中单元格的样式
9000
+ * @param cellRanges
9001
+ * @param param1
9002
+ * @returns
8955
9003
  */
8956
9004
  function getCellRangesClassName(cellRanges, _ref2) {
8957
9005
  var isFooterCell = _ref2.isFooterCell,