@kdcloudjs/kdesign 1.8.49 → 1.8.51

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/kdesign.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * @kdcloudjs/kdesign v1.8.49
3
+ * @kdcloudjs/kdesign v1.8.51
4
4
  *
5
5
  * Copyright 2020-present, Kingdee, Inc.
6
6
  * All rights reserved.
@@ -11818,7 +11818,8 @@ var defaultConfig = {
11818
11818
  getLangMsg: _locale__WEBPACK_IMPORTED_MODULE_1__["getLangMsg"],
11819
11819
  getCompLangMsg: _locale__WEBPACK_IMPORTED_MODULE_1__["getCompLangMsg"]
11820
11820
  },
11821
- direction: 'ltr'
11821
+ direction: 'ltr',
11822
+ isMobile: false
11822
11823
  };
11823
11824
  /* harmony default export */ __webpack_exports__["default"] = (defaultConfig);
11824
11825
 
@@ -38090,7 +38091,8 @@ var Table = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_5__["forwardRef"]
38090
38091
  getPrefixCls = _useContext.getPrefixCls,
38091
38092
  prefixCls = _useContext.prefixCls,
38092
38093
  locale = _useContext.locale,
38093
- direction = _useContext.direction;
38094
+ direction = _useContext.direction,
38095
+ isMobile = _useContext.isMobile;
38094
38096
  var tablePrefixCls = getPrefixCls(prefixCls, customPrefixcls);
38095
38097
  var tableCls = classnames__WEBPACK_IMPORTED_MODULE_16___default()(tablePrefixCls, className);
38096
38098
  var localeText = locale.getCompLangMsg({
@@ -38102,7 +38104,8 @@ var Table = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_5__["forwardRef"]
38102
38104
  Radio: (components === null || components === void 0 ? void 0 : components.Radio) || _radio_index__WEBPACK_IMPORTED_MODULE_9__["default"]
38103
38105
  },
38104
38106
  localeText: localeText,
38105
- direction: direction
38107
+ direction: direction,
38108
+ isMobile: isMobile
38106
38109
  }).primaryKey(primaryKey === undefined ? '' : primaryKey).input({
38107
38110
  columns: columns,
38108
38111
  dataSource: dataSource
@@ -38182,6 +38185,11 @@ var Table = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_5__["forwardRef"]
38182
38185
  // @ts-ignore
38183
38186
  ,
38184
38187
  direction: direction
38188
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
38189
+ // @ts-ignore
38190
+ ,
38191
+ isMobile: isMobile,
38192
+ prefixCls: prefixCls
38185
38193
  }, others));
38186
38194
  });
38187
38195
  Table.displayName = 'Table';
@@ -38415,7 +38423,8 @@ var TabPane = function TabPane(props) {
38415
38423
  var tabPaneRef = Object(react__WEBPACK_IMPORTED_MODULE_10__["useRef"])(null);
38416
38424
  var _useContext = Object(react__WEBPACK_IMPORTED_MODULE_10__["useContext"])(_config_provider_ConfigContext__WEBPACK_IMPORTED_MODULE_12__["default"]),
38417
38425
  getPrefixCls = _useContext.getPrefixCls,
38418
- prefixCls = _useContext.prefixCls;
38426
+ prefixCls = _useContext.prefixCls,
38427
+ isMobile = _useContext.isMobile;
38419
38428
  var tab = props.tab,
38420
38429
  id = props.id,
38421
38430
  className = props.className,
@@ -38431,8 +38440,8 @@ var TabPane = function TabPane(props) {
38431
38440
  tabPaneProps.disabled = context.disabled || disabled;
38432
38441
  }
38433
38442
  var tabPanePrefixCls = getPrefixCls(prefixCls, 'tab-pane');
38434
- var tabPaneBoxClasses = classnames__WEBPACK_IMPORTED_MODULE_11___default()(tabPanePrefixCls, className, (_classNames = {}, _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default()(_classNames, "".concat(tabPanePrefixCls, "-box-active"), String(tabPaneProps.activeKey) === String(id) && !tabPaneProps.disabled), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default()(_classNames, "".concat(tabPanePrefixCls, "-type-").concat(tabPaneProps.type), tabPaneProps.type), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default()(_classNames, "".concat(tabPanePrefixCls, "-").concat(tabPaneProps.position), tabPaneProps.position), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default()(_classNames, "".concat(tabPanePrefixCls, "-").concat(tabPaneProps.size), tabPaneProps.size), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default()(_classNames, "".concat(tabPanePrefixCls, "-disabled"), tabPaneProps.disabled), _classNames));
38435
- var tabPaneTextClasses = classnames__WEBPACK_IMPORTED_MODULE_11___default()("".concat(tabPanePrefixCls, "-text"), (_classNames2 = {}, _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default()(_classNames2, "".concat(tabPanePrefixCls, "-text-active"), String(tabPaneProps.activeKey) === String(id) && !tabPaneProps.disabled), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default()(_classNames2, "".concat(tabPanePrefixCls, "-text-disabled"), tabPaneProps.disabled), _classNames2));
38443
+ var tabPaneBoxClasses = classnames__WEBPACK_IMPORTED_MODULE_11___default()(tabPanePrefixCls, className, (_classNames = {}, _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default()(_classNames, "".concat(tabPanePrefixCls, "-box-active"), String(tabPaneProps.activeKey) === String(id) && !tabPaneProps.disabled), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default()(_classNames, "".concat(tabPanePrefixCls, "-type-dynamic-notMobile"), !isMobile), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default()(_classNames, "".concat(tabPanePrefixCls, "-type-").concat(tabPaneProps.type), tabPaneProps.type), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default()(_classNames, "".concat(tabPanePrefixCls, "-").concat(tabPaneProps.position), tabPaneProps.position), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default()(_classNames, "".concat(tabPanePrefixCls, "-").concat(tabPaneProps.size), tabPaneProps.size), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default()(_classNames, "".concat(tabPanePrefixCls, "-disabled"), tabPaneProps.disabled), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default()(_classNames, "".concat(tabPanePrefixCls, "-notMobile"), !isMobile), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default()(_classNames, "".concat(tabPanePrefixCls, "-isMobile"), isMobile), _classNames));
38444
+ var tabPaneTextClasses = classnames__WEBPACK_IMPORTED_MODULE_11___default()("".concat(tabPanePrefixCls, "-text"), (_classNames2 = {}, _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default()(_classNames2, "".concat(tabPanePrefixCls, "-text-active"), String(tabPaneProps.activeKey) === String(id) && !tabPaneProps.disabled), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default()(_classNames2, "".concat(tabPanePrefixCls, "-text-disabled"), tabPaneProps.disabled), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default()(_classNames2, "".concat(tabPanePrefixCls, "-text-notMobile"), !isMobile), _classNames2));
38436
38445
  var operationsClasses = classnames__WEBPACK_IMPORTED_MODULE_11___default()("".concat(tabPanePrefixCls, "-operations"), _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_7___default()({}, "".concat(tabPanePrefixCls, "-operations-active"), String(tabPaneProps.activeKey) === String(id) && !tabPaneProps.disabled));
38437
38446
  var handleClick = function handleClick(e) {
38438
38447
  if (tabPaneProps.disabled) return;
@@ -48564,6 +48573,88 @@ var locale = {
48564
48573
 
48565
48574
  /***/ }),
48566
48575
 
48576
+ /***/ "./node_modules/@kdcloudjs/table/es/table/base/BlankComponent.js":
48577
+ /*!***********************************************************************!*\
48578
+ !*** ./node_modules/@kdcloudjs/table/es/table/base/BlankComponent.js ***!
48579
+ \***********************************************************************/
48580
+ /*! exports provided: TopBlank, BottomBlank */
48581
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
48582
+
48583
+ "use strict";
48584
+ __webpack_require__.r(__webpack_exports__);
48585
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TopBlank", function() { return TopBlank; });
48586
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BottomBlank", function() { return BottomBlank; });
48587
+ /* harmony import */ var _babel_runtime_corejs3_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/slicedToArray */ "./node_modules/@babel/runtime-corejs3/helpers/slicedToArray.js");
48588
+ /* harmony import */ var _babel_runtime_corejs3_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__);
48589
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
48590
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
48591
+ /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js");
48592
+ /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
48593
+ /* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./styles */ "./node_modules/@kdcloudjs/table/es/table/base/styles.js");
48594
+
48595
+
48596
+
48597
+
48598
+ var TopBlankComponent = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_1__["forwardRef"])(function (_ref, ref) {
48599
+ var initialHeight = _ref.height;
48600
+ var _useState = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(initialHeight),
48601
+ _useState2 = _babel_runtime_corejs3_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_useState, 2),
48602
+ height = _useState2[0],
48603
+ setHeight = _useState2[1];
48604
+ Object(react__WEBPACK_IMPORTED_MODULE_1__["useImperativeHandle"])(ref, function () {
48605
+ return {
48606
+ updateHeight: function updateHeight(newHeight) {
48607
+ if (height !== newHeight) {
48608
+ setHeight(newHeight);
48609
+ }
48610
+ }
48611
+ };
48612
+ }, [height]);
48613
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
48614
+ style: {
48615
+ height: height
48616
+ }
48617
+ });
48618
+ });
48619
+ TopBlankComponent.displayName = 'TopBlank';
48620
+ var BottomBlankComponent = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_1__["forwardRef"])(function (_ref2, ref) {
48621
+ var initialHeight = _ref2.height,
48622
+ className = _ref2.className;
48623
+ var _useState3 = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(initialHeight),
48624
+ _useState4 = _babel_runtime_corejs3_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_useState3, 2),
48625
+ height = _useState4[0],
48626
+ setHeight = _useState4[1];
48627
+ Object(react__WEBPACK_IMPORTED_MODULE_1__["useImperativeHandle"])(ref, function () {
48628
+ return {
48629
+ updateHeight: function updateHeight(newHeight) {
48630
+ if (height !== newHeight) {
48631
+ setHeight(newHeight);
48632
+ }
48633
+ }
48634
+ };
48635
+ }, [height]);
48636
+ if (height <= 0) {
48637
+ return null;
48638
+ }
48639
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
48640
+ key: "bottom-blank",
48641
+ className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(_styles__WEBPACK_IMPORTED_MODULE_3__["Classes"].virtualBlank, 'bottom', className),
48642
+ style: {
48643
+ height: height
48644
+ }
48645
+ });
48646
+ });
48647
+ BottomBlankComponent.displayName = 'BottomBlank';
48648
+ // 使用 memo 优化,只有当 height 或 className 改变时才重新渲染
48649
+ var TopBlank = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_1__["memo"])(TopBlankComponent, function (prevProps, nextProps) {
48650
+ return prevProps.height === nextProps.height && prevProps.className === nextProps.className;
48651
+ });
48652
+ var BottomBlank = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_1__["memo"])(BottomBlankComponent, function (prevProps, nextProps) {
48653
+ return prevProps.height === nextProps.height && prevProps.className === nextProps.className;
48654
+ });
48655
+
48656
+ /***/ }),
48657
+
48567
48658
  /***/ "./node_modules/@kdcloudjs/table/es/table/base/calculations.js":
48568
48659
  /*!*********************************************************************!*\
48569
48660
  !*** ./node_modules/@kdcloudjs/table/es/table/base/calculations.js ***!
@@ -49408,6 +49499,192 @@ function TableHeader(_ref2) {
49408
49499
 
49409
49500
  /***/ }),
49410
49501
 
49502
+ /***/ "./node_modules/@kdcloudjs/table/es/table/base/helpers/FastScrollManager.js":
49503
+ /*!**********************************************************************************!*\
49504
+ !*** ./node_modules/@kdcloudjs/table/es/table/base/helpers/FastScrollManager.js ***!
49505
+ \**********************************************************************************/
49506
+ /*! exports provided: FastScrollManager */
49507
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
49508
+
49509
+ "use strict";
49510
+ __webpack_require__.r(__webpack_exports__);
49511
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FastScrollManager", function() { return FastScrollManager; });
49512
+ /* harmony import */ var _babel_runtime_corejs3_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/extends */ "./node_modules/@babel/runtime-corejs3/helpers/extends.js");
49513
+ /* harmony import */ var _babel_runtime_corejs3_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_helpers_extends__WEBPACK_IMPORTED_MODULE_0__);
49514
+ /* harmony import */ var _babel_runtime_corejs3_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/classCallCheck */ "./node_modules/@babel/runtime-corejs3/helpers/classCallCheck.js");
49515
+ /* harmony import */ var _babel_runtime_corejs3_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__);
49516
+ /* harmony import */ var _babel_runtime_corejs3_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/createClass */ "./node_modules/@babel/runtime-corejs3/helpers/createClass.js");
49517
+ /* harmony import */ var _babel_runtime_corejs3_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__);
49518
+
49519
+
49520
+
49521
+ /**
49522
+ * 快速滚动管理器
49523
+ * 抽取 BaseTable 中的快速滚动相关逻辑
49524
+ */
49525
+ var FastScrollManager = /*#__PURE__*/function () {
49526
+ function FastScrollManager(callbacks) {
49527
+ var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
49528
+ _babel_runtime_corejs3_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default()(this, FastScrollManager);
49529
+ // 快速滚动状态
49530
+ this.state = {
49531
+ lastScrollTime: 0,
49532
+ scrollVelocity: 0,
49533
+ lastOffsetY: 0
49534
+ };
49535
+ // 快速滚动标志 - 作为私有属性立即更新
49536
+ this.isFastScrolling = false;
49537
+ this.callbacks = callbacks;
49538
+ // 合并默认配置
49539
+ this.config = _babel_runtime_corejs3_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({
49540
+ overscanSize: 100,
49541
+ velocityThreshold: 3,
49542
+ distanceMultiplier: 3,
49543
+ fastScrollEndDelayHigh: 200,
49544
+ fastScrollEndDelayNormal: 150,
49545
+ highVelocityThreshold: 5
49546
+ }, config);
49547
+ }
49548
+ /**
49549
+ * 检测是否接近底部(剩余滚动距离少于两屏)
49550
+ */
49551
+ _babel_runtime_corejs3_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default()(FastScrollManager, [{
49552
+ key: "isNearBottom",
49553
+ value: function isNearBottom(currentScrollTop, maxRenderHeight, totalScrollHeight) {
49554
+ var remainingScrollDistance = totalScrollHeight - currentScrollTop - maxRenderHeight;
49555
+ return remainingScrollDistance < maxRenderHeight;
49556
+ }
49557
+ /**
49558
+ * 处理滚动事件 - 检测和处理快速滚动
49559
+ */
49560
+ }, {
49561
+ key: "handleScrollEvent",
49562
+ value: function handleScrollEvent(sizeAndOffset, currentState, dataLength, totalScrollHeight) {
49563
+ var currentTime = performance.now();
49564
+ var deltaY = Math.abs(sizeAndOffset.offsetY - this.state.lastOffsetY);
49565
+ var deltaTime = currentTime - this.state.lastScrollTime;
49566
+ // 计算滚动速度 (像素/毫秒)
49567
+ this.state.scrollVelocity = deltaTime > 0 ? deltaY / deltaTime : 0;
49568
+ // 检测是否接近底部
49569
+ var isNearBottom = this.isNearBottom(sizeAndOffset.offsetY, sizeAndOffset.maxRenderHeight, totalScrollHeight);
49570
+ // 如果正在快速滚动但接近底部,提前结束快速滚动
49571
+ if (this.isFastScrolling && isNearBottom) {
49572
+ this.endFastScrolling(sizeAndOffset);
49573
+ return; // 让正常渲染逻辑接管
49574
+ }
49575
+ // 快速滚动判断条件:
49576
+ // 1. 滚动距离超过阈值 && 滚动速度超过阈值
49577
+ // 2. 当前未在快速滚动状态
49578
+ // 3. 未接近底部边界
49579
+ var isSignificantChange = deltaY > this.config.overscanSize * this.config.distanceMultiplier;
49580
+ var isHighVelocity = this.state.scrollVelocity > this.config.velocityThreshold;
49581
+ var shouldStartFastScroll = (isSignificantChange || isHighVelocity) && !this.isFastScrolling && !isNearBottom; // 接近底部时不启动快速滚动
49582
+ if (shouldStartFastScroll) {
49583
+ this.startFastScrolling(currentState, dataLength);
49584
+ }
49585
+ // 重置快速滚动结束定时器
49586
+ if (this.isFastScrolling) {
49587
+ this.resetFastScrollEndTimer(sizeAndOffset);
49588
+ }
49589
+ // 更新记录
49590
+ this.state.lastOffsetY = sizeAndOffset.offsetY;
49591
+ this.state.lastScrollTime = currentTime;
49592
+ }
49593
+ /**
49594
+ * 开始快速滚动
49595
+ */
49596
+ }, {
49597
+ key: "startFastScrolling",
49598
+ value: function startFastScrolling(currentState, dataLength) {
49599
+ this.isFastScrolling = true;
49600
+ // 获取当前渲染范围作为缓存
49601
+ var currentVerticalRange = this.callbacks.getCurrentRenderRange(currentState.offsetY, currentState.maxRenderHeight, dataLength);
49602
+ // 通知外部开始快速滚动
49603
+ this.callbacks.onFastScrollStart({
49604
+ offsetY: currentState.offsetY,
49605
+ maxRenderHeight: currentState.maxRenderHeight,
49606
+ maxRenderWidth: currentState.maxRenderWidth,
49607
+ verticalRenderRange: currentVerticalRange
49608
+ });
49609
+ }
49610
+ /**
49611
+ * 重置快速滚动结束定时器
49612
+ */
49613
+ }, {
49614
+ key: "resetFastScrollEndTimer",
49615
+ value: function resetFastScrollEndTimer(sizeAndOffset) {
49616
+ var _this = this;
49617
+ if (this.fastScrollEndTimer) {
49618
+ clearTimeout(this.fastScrollEndTimer);
49619
+ }
49620
+ var waitTime = this.state.scrollVelocity > this.config.highVelocityThreshold ? this.config.fastScrollEndDelayHigh : this.config.fastScrollEndDelayNormal;
49621
+ this.fastScrollEndTimer = window.setTimeout(function () {
49622
+ _this.endFastScrolling(sizeAndOffset);
49623
+ }, waitTime);
49624
+ }
49625
+ /**
49626
+ * 结束快速滚动
49627
+ */
49628
+ }, {
49629
+ key: "endFastScrolling",
49630
+ value: function endFastScrolling(sizeAndOffset) {
49631
+ this.isFastScrolling = false;
49632
+ this.fastScrollEndTimer = undefined;
49633
+ // 通知外部结束快速滚动
49634
+ this.callbacks.onFastScrollEnd(sizeAndOffset);
49635
+ }
49636
+ /**
49637
+ * 清理资源
49638
+ */
49639
+ }, {
49640
+ key: "cleanup",
49641
+ value: function cleanup() {
49642
+ if (this.fastScrollEndTimer) {
49643
+ clearTimeout(this.fastScrollEndTimer);
49644
+ }
49645
+ }
49646
+ /**
49647
+ * 获取当前是否处于快速滚动状态
49648
+ */
49649
+ }, {
49650
+ key: "getIsFastScrolling",
49651
+ value: function getIsFastScrolling() {
49652
+ return this.isFastScrolling;
49653
+ }
49654
+ /**
49655
+ * 获取当前滚动速度
49656
+ */
49657
+ }, {
49658
+ key: "getScrollVelocity",
49659
+ value: function getScrollVelocity() {
49660
+ return this.state.scrollVelocity;
49661
+ }
49662
+ /**
49663
+ * 清理资源
49664
+ */
49665
+ }, {
49666
+ key: "destroy",
49667
+ value: function destroy() {
49668
+ if (this.fastScrollEndTimer) {
49669
+ clearTimeout(this.fastScrollEndTimer);
49670
+ this.fastScrollEndTimer = undefined;
49671
+ }
49672
+ this.isFastScrolling = false;
49673
+ }
49674
+ /**
49675
+ * 获取当前配置
49676
+ */
49677
+ }, {
49678
+ key: "getConfig",
49679
+ value: function getConfig() {
49680
+ return _babel_runtime_corejs3_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({}, this.config);
49681
+ }
49682
+ }]);
49683
+ return FastScrollManager;
49684
+ }();
49685
+
49686
+ /***/ }),
49687
+
49411
49688
  /***/ "./node_modules/@kdcloudjs/table/es/table/base/helpers/SpanManager.js":
49412
49689
  /*!****************************************************************************!*\
49413
49690
  !*** ./node_modules/@kdcloudjs/table/es/table/base/helpers/SpanManager.js ***!
@@ -50649,10 +50926,10 @@ __webpack_require__.r(__webpack_exports__);
50649
50926
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ButtonCSS", function() { return ButtonCSS; });
50650
50927
  /* harmony import */ var _babel_runtime_corejs3_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/taggedTemplateLiteral */ "./node_modules/@babel/runtime-corejs3/helpers/taggedTemplateLiteral.js");
50651
50928
  /* harmony import */ var _babel_runtime_corejs3_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_0__);
50652
- /* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_keys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/object/keys */ "./node_modules/@babel/runtime-corejs3/core-js-stable/object/keys.js");
50653
- /* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_keys__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_object_keys__WEBPACK_IMPORTED_MODULE_1__);
50654
- /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/concat */ "./node_modules/@babel/runtime-corejs3/core-js-stable/instance/concat.js");
50655
- /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_2__);
50929
+ /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/concat */ "./node_modules/@babel/runtime-corejs3/core-js-stable/instance/concat.js");
50930
+ /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_1__);
50931
+ /* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_keys__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/object/keys */ "./node_modules/@babel/runtime-corejs3/core-js-stable/object/keys.js");
50932
+ /* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_keys__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_object_keys__WEBPACK_IMPORTED_MODULE_2__);
50656
50933
  /* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! styled-components */ "./node_modules/styled-components/dist/styled-components.browser.esm.js");
50657
50934
  /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils */ "./node_modules/@kdcloudjs/table/es/table/base/utils.js");
50658
50935
 
@@ -50813,7 +51090,11 @@ var defaultCSSVariables = {
50813
51090
  var variableConst = getCssVariableText(defaultCSSVariables);
50814
51091
  var notBorderedStyleMixin = Object(styled_components__WEBPACK_IMPORTED_MODULE_3__["css"])(_templateObject3 || (_templateObject3 = _babel_runtime_corejs3_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_0___default()(["\n --cell-border-vertical: none;\n --header-cell-border-vertical: none;\n"])));
50815
51092
  var borderedStyleMixin = Object(styled_components__WEBPACK_IMPORTED_MODULE_3__["css"])(_templateObject4 || (_templateObject4 = _babel_runtime_corejs3_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_0___default()(["\n //th\u9690\u85CF\u5217\u5BBD\u62D6\u62FD\u7684\u80CC\u666F\u8272\uFF0C\u4F7F\u7528th\u7684\u53F3\u8FB9\u6846\u4EE3\u66FF\n .", "::after{\n background-color: inherit;\n }\n"])), Classes.tableHeaderCellResize);
50816
- var StyledArtTableWrapper = styled_components__WEBPACK_IMPORTED_MODULE_3__["default"].div(_templateObject5 || (_templateObject5 = _babel_runtime_corejs3_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_0___default()(["\n :root {\n ", "\n }\n ", "\n\n box-sizing: border-box;\n * {\n box-sizing: border-box;\n }\n cursor: default;\n color: var(--color);\n font-size: var(--font-size);\n line-height: var(--line-height);\n position: relative;\n\n // \u8868\u683C\u5916\u8FB9\u6846\u7531 art-table-wrapper \u63D0\u4F9B\uFF0C\u800C\u4E0D\u662F\u7531\u5355\u5143\u683C\u63D0\u4F9B\n &.use-outer-border {\n ", ";\n }\n\n // \u8868\u683C\u4E0D\u542F\u7528\u8FB9\u6846\u7EBF\uFF0C\u9690\u85CFth\u3001td\u7684\u5355\u5143\u683C\u5DE6\u53F3\u8FB9\u6846\u7EBF\n &:not(.", ") {\n ", "\n }\n &.", "{\n ", "\n }\n\n .no-scrollbar {\n ::-webkit-scrollbar {\n display: none;\n }\n }\n\n .", " {\n overflow: auto;\n flex-shrink: 1;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n }\n\n .", " {\n overflow: hidden;\n background: var(--header-bgcolor);\n display: flex;\n flex-shrink: 0;\n border-bottom: var(--header-cell-border-horizontal);\n }\n\n .", " {\n display: flex;\n // justify-content: flex-start;\n align-items: center;\n height: inherit;\n }\n\n .", " {\n overflow-x:auto;\n flex-shrink: 0;\n flex-grow: 0;\n scrollbar-width: none; // \u517C\u5BB9\u706B\u72D0\n & {\n ::-webkit-scrollbar {\n display:none;\n }\n }\n }\n\n .", " {\n display: flex;\n flex: none;\n }\n .", "{\n flex-grow:1;\n }\n .", ", .", " {\n background: var(--bgcolor);\n overflow: auto;\n overflow-x: hidden;\n overflow-anchor: none;\n position:relative;\n &.empty {\n position: relative;\n }\n }\n\n .", " {\n position: relative;\n }\n .", ", .", " {\n .", "{\n background-color: #e6effb !important;\n }\n .", "{\n border-top: 1px solid #0E5FD8 !important;\n }\n .", "{\n border-", ": 1px solid #0E5FD8 !important;\n }\n .", "{\n border-bottom: 1px solid #0E5FD8 !important;\n }\n .", "{\n border-", ": 1px solid #0E5FD8 !important;\n }\n }\n\n .", " {\n user-select:none;\n }\n\n .", " {\n user-select:none;\n // .", " .", " >td{\n // cursor:move;\n // }\n\n // .", " .", " >td{\n // cursor:no-drop;\n // }\n \n }\n\n .", "{\n opacity: 0.5;\n }\n .", "{\n border: 1px solid var(--primary-color)\n }\n\n .", " td{\n border-top: 1px solid var(--primary-color) !important;\n border-bottom: 1px solid var(--primary-color) !important;\n \n }\n .", " td:first-child{\n border-", ": 1px solid var(--primary-color) !important;\n \n }\n .", " td:last-child{\n border-", ": 1px solid var(--primary-color) !important;\n \n }\n\n\n // .", " td{\n // border-top: 1px solid var(--primary-color) !important;\n // }\n\n .", " td{\n border-top: 1px solid var(--primary-color) !important;\n border-bottom: 1px solid var(--primary-color) !important;\n }\n\n .", " td:first-child{\n border-", ": 1px solid var(--primary-color) !important;\n }\n\n .", " td:last-child{\n border-", ": 1px solid var(--primary-color) !important;\n }\n\n // .", " td{\n // border-bottom: 1px solid var(--primary-color) !important;\n // }\n\n .", " {\n cursor:pointer;\n }\n\n\n &.sticky-header .", " {\n position: sticky;\n top: 0;\n z-index: ", ";\n }\n\n &.sticky-footer .", " {\n position: sticky;\n bottom: 0;\n z-index: ", ";\n }\n\n table {\n width: 0;\n table-layout: fixed;\n border-collapse: separate;\n border-spacing: 0;\n display: table;\n margin: 0;\n padding: 0;\n flex-shrink: 0;\n flex-grow: 0;\n position:relative;\n }\n\n // \u5728 tr \u4E0A\u8BBE\u7F6E .no-hover \u53EF\u4EE5\u7981\u7528\u9F20\u6807\u60AC\u505C\u6548\u679C\n tr:not(.no-hover):hover > td {\n background: var(--hover-bgcolor);\n }\n // \u4F7F\u7528 js \u6DFB\u52A0\u60AC\u6D6E\u6548\u679C\n tr:not(.no-hover).row-hover > td {\n background: var(--hover-bgcolor);\n }\n // \u5728 tr \u8BBE\u7F6E highlight \u53EF\u4EE5\u4E3A\u5E95\u4E0B\u7684 td \u8BBE\u7F6E\u4E3A\u9AD8\u4EAE\u8272\n // \u800C\u8BBE\u7F6E .no-highlight \u7684\u8BDD\u5219\u53EF\u4EE5\u7981\u7528\u9AD8\u4EAE\u6548\u679C\uFF1B\n tr:not(.no-highlight).highlight > td {\n background: var(--highlight-bgcolor);\n }\n\n th {\n font-weight: normal;\n text-align: ", ";\n padding: var(--cell-padding);\n height: var(--header-row-height);\n color: var(--header-color);\n background: var(--header-bgcolor);\n border:1px solid transparent;\n border-", ": var(--header-cell-border-vertical);\n border-bottom: var(--header-cell-border-horizontal);\n position: relative;\n }\n\n th.resizeable{\n border-", ": var(--header-cell-border-vertical)\n }\n\n th.", " {\n border-", ": var(--header-cell-border-vertical);\n border-bottom: none;\n }\n\n tr.", " th {\n border-top: var(--header-cell-border-horizontal);\n }\n th.", " {\n border-", ": var(--header-cell-border-vertical);\n }\n\n td {\n padding: var(--cell-padding);\n background: var(--bgcolor);\n height: var(--row-height);\n border:1px solid transparent;\n border-", ": var(--cell-border-vertical);\n border-bottom: var(--cell-border-horizontal);\n word-break: break-all;\n }\n td.", " {\n border-", ": var(--cell-border-vertical);\n }\n tr.", " td {\n border-top: var(--cell-border-horizontal);\n }\n &.has-header tbody tr.", " td {\n border-top: none;\n }\n &.has-footer tbody tr.", " td {\n border-bottom: none;\n }\n\n .", ",\n .", " {\n z-index: ", ";\n }\n\n //#region \u9501\u5217\u9634\u5F71\n .", " {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: ", ";\n pointer-events: none;\n overflow: hidden;\n\n .", " {\n height: 100%;\n }\n\n .", " {\n margin-", ": ", "px;\n \n box-shadow: none;\n\n &.show-shadow {\n box-shadow: var(--lock-shadow);\n border-", ": var(--cell-border-vertical);\n }\n }\n\n .", " {\n margin-", ": ", "px;\n box-shadow: none;\n\n &.show-shadow {\n box-shadow: var(--lock-shadow);\n border-", ": var(--cell-border-vertical);\n }\n }\n }\n //#endregion\n\n //#region \u7A7A\u8868\u683C\u5C55\u73B0\n .", " {\n pointer-events: none;\n color: #99a3b3;\n font-size: 12px;\n text-align: center;\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n\n .empty-image {\n width: 50px;\n height: 50px;\n }\n\n .empty-tips {\n margin-top: 16px;\n line-height: 1.5;\n }\n }\n //#endregion\n\n //#region sticky\u517C\u5BB9\n &.sticky-polyfill-wrapper{\n //\u9501\u5B9A\u5217\u517C\u5BB9 \u4EC5\u5728\u9501\u5B9A\u5217\u7684\u60C5\u51B5\u4E0B\u751F\u6548\n .", " {\n overflow-x: hidden;\n }\n .", ", .", " {\n position:relative;\n }\n .", " {\n overflow: hidden;\n display: flex;\n }\n .", " {\n position: relative;\n }\n\n .", " {\n display: flex;\n overflow: auto;\n overflow-x: hidden;\n overflow-anchor: none;\n }\n\n .", ", .", "{\n position: absolute;\n z-index: ", ";\n top: 0;\n }\n .", "{\n ", ":0;\n }\n .", "{\n rig", "ht:0;\n }\n\n .", "{\n .", "{\n position: absolute;\n top: 0;\n width: 100%;\n z-index: ", ";\n }\n }\n\n tr:not(.no-hover).row-hover > td {\n background: var(--hover-bgcolor);\n }\n }\n //#endregion sticky\u517C\u5BB9\n\n //#region \u7C98\u6027\u6EDA\u52A8\u6761\n .", "{\n display:flex;\n background: var(--bgcolor);\n }\n .", "{\n height: 1px;\n flex-shrink: 0;\n border-top: 1px solid var(--border-color);\n }\n\n .", "{\n height: 1px;\n flex-shrink: 0;\n border-top: 1px solid var(--border-color);\n }\n .", " {\n overflow-y: hidden;\n overflow-x: auto;\n z-index: ", ";\n flex-shrink: 1;\n flex-grow: 0;\n border-top: 1px solid var(--border-color);\n }\n\n .", " {\n // \u5FC5\u987B\u6709\u9AD8\u5EA6\u624D\u80FD\u51FA\u73B0\u6EDA\u52A8\u6761\n height: 1px;\n visibility: hidden;\n }\n //#endregion\n\n //#region \u52A0\u8F7D\u6837\u5F0F\n .", " {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: auto;\n\n .", " {\n filter: none;\n width: 100%;\n height: 100%;\n overflow: hidden;//\u5217\u5168\u90E8\u56FA\u5B9A\u65F6\uFF0C\u5B58\u5728\u53CC\u6A2A\u5411\u6EDA\u52A8\u6761\n display: flex;\n position: relative;\n flex-direction: column;\n }\n\n .", " {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n pointer-events: none;\n }\n\n .", " {\n position: sticky;\n z-index: ", ";\n transform: translateY(-50%);\n }\n }\n //#endregion\n\n //#region \u8868\u683C\u8FC7\u6EE4\n .", " {\n color:var(--icon-color);\n &.active{\n color:var(--primary-color);\n }\n padding: 6px 4px;\n &:hover{\n background-color: #e5e5e5;\n }\n &:focus {\n outline: none\n }\n }\n //#endregion\n\n //#region \u8868\u683C\u6392\u5E8F\n .", " {\n color:var(--icon-color);\n &.active{\n color:var(--primary-color);\n }\n }\n .", " {\n color:var(--icon-color);\n &.active{\n color:var(--primary-color);\n }\n }\n //#endregion\n\n //#region \u6EDA\u52A8\u6761\u5360\u4F4D\n .", " {\n // visibility: hidden;\n background: var(--header-bgcolor);\n position:sticky;\n z-index:5;\n ", ":0px;\n flex-shrink: 0;\n }\n .", " .", " {\n border-top: var(--cell-border-horizontal);\n }\n //#endregion\n\n //#region \u62D6\u62FD\u5217\u5BBD\u5927\u5C0F\n .", "::after{\n background-color: var(--border-color);\n }\n //\u89E3\u51B3\u90E8\u5206\u6D4F\u89C8\u5668(chrome109)\u6700\u540E\u4E00\u4E2A\u5355\u5143\u683C\u7684\u5217\u5BBD\u62D6\u62FD\u533A\u57DF\u7EDD\u5BF9\u5B9A\u4F4D\u8D85\u51FA\u8868\u683C\uFF0C\u5BFC\u81F4\u8868\u683C\u7AD6\u5206\u5272\u7EBF\u65E0\u6CD5\u5BF9\u9F50\n .", " th.", " .", "{\n ", ": 0;\n width: 5px;\n &::after{\n ", ": 4px;\n }\n }\n"])), variableConst, variableConst, outerBorderStyleMixin, Classes.artTableBordered, notBorderedStyleMixin, Classes.artTableBordered, borderedStyleMixin, Classes.artTable, Classes.tableHeader, Classes.tableHeaderCellContent, Classes.virtual, Classes.tableFooter, Classes.tableBody, Classes.tableBody, Classes.tableFooter, Classes.tableRow, Classes.tableBody, Classes.tableFooter, Classes.tableCellRangeSelected, Classes.tableCellRangeTop, Classes.tableCellRangeLeft, function (props) {
51093
+ var StyledArtTableWrapper = styled_components__WEBPACK_IMPORTED_MODULE_3__["default"].div(_templateObject5 || (_templateObject5 = _babel_runtime_corejs3_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_0___default()(["\n ", "\n box-sizing: border-box;\n * {\n box-sizing: border-box;\n }\n cursor: default;\n color: var(--color);\n font-size: var(--font-size);\n line-height: var(--line-height);\n position: relative;\n\n // \u8868\u683C\u5916\u8FB9\u6846\u7531 art-table-wrapper \u63D0\u4F9B\uFF0C\u800C\u4E0D\u662F\u7531\u5355\u5143\u683C\u63D0\u4F9B\n &.use-outer-border {\n ", ";\n }\n\n // \u8868\u683C\u4E0D\u542F\u7528\u8FB9\u6846\u7EBF\uFF0C\u9690\u85CFth\u3001td\u7684\u5355\u5143\u683C\u5DE6\u53F3\u8FB9\u6846\u7EBF\n &:not(.", ") {\n ", "\n }\n &.", "{\n ", "\n }\n\n .no-scrollbar {\n ::-webkit-scrollbar {\n display: none;\n }\n }\n\n .", " {\n overflow: auto;\n flex-shrink: 1;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n }\n\n .", " {\n overflow: hidden;\n background: var(--header-bgcolor);\n display: flex;\n flex-shrink: 0;\n border-bottom: var(--header-cell-border-horizontal);\n }\n\n .", " {\n display: flex;\n // justify-content: flex-start;\n align-items: center;\n height: inherit;\n }\n\n .", " {\n overflow-x:auto;\n flex-shrink: 0;\n flex-grow: 0;\n scrollbar-width: none; // \u517C\u5BB9\u706B\u72D0\n & {\n ::-webkit-scrollbar {\n display:none;\n }\n }\n }\n\n .", " {\n display: flex;\n flex: none;\n }\n .", "{\n flex-grow:1;\n }\n .", ", .", " {\n background: var(--bgcolor);\n overflow: auto;\n overflow-x: hidden;\n overflow-anchor: none;\n position:relative;\n &.empty {\n position: relative;\n }\n }\n\n .", " {\n position: relative;\n }\n .", ", .", " {\n .", "{\n background-color: #e6effb !important;\n }\n .", "{\n border-top: 1px solid #0E5FD8 !important;\n }\n .", "{\n border-", ": 1px solid #0E5FD8 !important;\n }\n .", "{\n border-bottom: 1px solid #0E5FD8 !important;\n }\n .", "{\n border-", ": 1px solid #0E5FD8 !important;\n }\n }\n\n .", " {\n user-select:none;\n }\n\n .", " {\n user-select:none;\n // .", " .", " >td{\n // cursor:move;\n // }\n\n // .", " .", " >td{\n // cursor:no-drop;\n // }\n \n }\n\n .", "{\n opacity: 0.5;\n }\n .", "{\n border: 1px solid var(--primary-color)\n }\n\n .", " td{\n border-top: 1px solid var(--primary-color) !important;\n border-bottom: 1px solid var(--primary-color) !important;\n \n }\n .", " td:first-child{\n border-", ": 1px solid var(--primary-color) !important;\n \n }\n .", " td:last-child{\n border-", ": 1px solid var(--primary-color) !important;\n \n }\n\n\n // .", " td{\n // border-top: 1px solid var(--primary-color) !important;\n // }\n\n .", " td{\n border-top: 1px solid var(--primary-color) !important;\n border-bottom: 1px solid var(--primary-color) !important;\n }\n\n .", " td:first-child{\n border-", ": 1px solid var(--primary-color) !important;\n }\n\n .", " td:last-child{\n border-", ": 1px solid var(--primary-color) !important;\n }\n\n // .", " td{\n // border-bottom: 1px solid var(--primary-color) !important;\n // }\n\n .", " {\n cursor:pointer;\n }\n\n\n &.sticky-header .", " {\n position: sticky;\n top: 0;\n z-index: ", ";\n }\n\n &.sticky-footer .", " {\n position: sticky;\n bottom: 0;\n z-index: ", ";\n }\n\n table {\n width: 0;\n table-layout: fixed;\n border-collapse: separate;\n border-spacing: 0;\n display: table;\n margin: 0;\n padding: 0;\n flex-shrink: 0;\n flex-grow: 0;\n position:relative;\n }\n\n // \u5728 tr \u4E0A\u8BBE\u7F6E .no-hover \u53EF\u4EE5\u7981\u7528\u9F20\u6807\u60AC\u505C\u6548\u679C\n tr:not(.no-hover):hover > td {\n background: var(--hover-bgcolor);\n }\n // \u4F7F\u7528 js \u6DFB\u52A0\u60AC\u6D6E\u6548\u679C\n tr:not(.no-hover).row-hover > td {\n background: var(--hover-bgcolor);\n }\n // \u5728 tr \u8BBE\u7F6E highlight \u53EF\u4EE5\u4E3A\u5E95\u4E0B\u7684 td \u8BBE\u7F6E\u4E3A\u9AD8\u4EAE\u8272\n // \u800C\u8BBE\u7F6E .no-highlight \u7684\u8BDD\u5219\u53EF\u4EE5\u7981\u7528\u9AD8\u4EAE\u6548\u679C\uFF1B\n tr:not(.no-highlight).highlight > td {\n background: var(--highlight-bgcolor);\n }\n\n th {\n font-weight: normal;\n text-align: ", ";\n padding: var(--cell-padding);\n height: var(--header-row-height);\n color: var(--header-color);\n background: var(--header-bgcolor);\n border:1px solid transparent;\n border-", ": var(--header-cell-border-vertical);\n border-bottom: var(--header-cell-border-horizontal);\n position: relative;\n }\n\n th.resizeable{\n border-", ": var(--header-cell-border-vertical)\n }\n\n th.", " {\n border-", ": var(--header-cell-border-vertical);\n border-bottom: none;\n }\n\n tr.", " th {\n border-top: var(--header-cell-border-horizontal);\n }\n th.", " {\n border-", ": var(--header-cell-border-vertical);\n }\n\n td {\n padding: var(--cell-padding);\n background: var(--bgcolor);\n height: var(--row-height);\n border:1px solid transparent;\n border-", ": var(--cell-border-vertical);\n border-bottom: var(--cell-border-horizontal);\n word-break: break-all;\n }\n td.", " {\n border-", ": var(--cell-border-vertical);\n }\n tr.", " td {\n border-top: var(--cell-border-horizontal);\n }\n &.has-header tbody tr.", " td {\n border-top: none;\n }\n &.has-footer tbody tr.", " td {\n border-bottom: none;\n }\n\n .", ",\n .", " {\n z-index: ", ";\n }\n\n //#region \u9501\u5217\u9634\u5F71\n .", " {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: ", ";\n pointer-events: none;\n overflow: hidden;\n\n .", " {\n height: 100%;\n }\n\n .", " {\n margin-", ": ", "px;\n \n box-shadow: none;\n\n &.show-shadow {\n box-shadow: var(--lock-shadow);\n border-", ": var(--cell-border-vertical);\n }\n }\n\n .", " {\n margin-", ": ", "px;\n box-shadow: none;\n\n &.show-shadow {\n box-shadow: var(--lock-shadow);\n border-", ": var(--cell-border-vertical);\n }\n }\n }\n //#endregion\n\n //#region \u7A7A\u8868\u683C\u5C55\u73B0\n .", " {\n pointer-events: none;\n color: #99a3b3;\n font-size: 12px;\n text-align: center;\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n\n .empty-image {\n width: 50px;\n height: 50px;\n }\n\n .empty-tips {\n margin-top: 16px;\n line-height: 1.5;\n }\n }\n //#endregion\n\n //#region sticky\u517C\u5BB9\n &.sticky-polyfill-wrapper{\n //\u9501\u5B9A\u5217\u517C\u5BB9 \u4EC5\u5728\u9501\u5B9A\u5217\u7684\u60C5\u51B5\u4E0B\u751F\u6548\n .", " {\n overflow-x: hidden;\n }\n .", ", .", " {\n position:relative;\n }\n .", " {\n overflow: hidden;\n display: flex;\n }\n .", " {\n position: relative;\n }\n\n .", " {\n display: flex;\n overflow: auto;\n overflow-x: hidden;\n overflow-anchor: none;\n }\n\n .", ", .", "{\n position: absolute;\n z-index: ", ";\n top: 0;\n }\n .", "{\n ", ":0;\n }\n .", "{\n rig", "ht:0;\n }\n\n .", "{\n .", "{\n position: absolute;\n top: 0;\n width: 100%;\n z-index: ", ";\n }\n }\n\n tr:not(.no-hover).row-hover > td {\n background: var(--hover-bgcolor);\n }\n }\n //#endregion sticky\u517C\u5BB9\n\n //#region \u7C98\u6027\u6EDA\u52A8\u6761\n .", "{\n display:flex;\n background: var(--bgcolor);\n }\n .", "{\n height: 1px;\n flex-shrink: 0;\n border-top: 1px solid var(--border-color);\n }\n\n .", "{\n height: 1px;\n flex-shrink: 0;\n border-top: 1px solid var(--border-color);\n }\n .", " {\n overflow-y: hidden;\n overflow-x: auto;\n z-index: ", ";\n flex-shrink: 1;\n flex-grow: 0;\n border-top: 1px solid var(--border-color);\n }\n\n .", " {\n // \u5FC5\u987B\u6709\u9AD8\u5EA6\u624D\u80FD\u51FA\u73B0\u6EDA\u52A8\u6761\n height: 1px;\n visibility: hidden;\n }\n //#endregion\n\n //#region \u52A0\u8F7D\u6837\u5F0F\n .", " {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: auto;\n\n .", " {\n filter: none;\n width: 100%;\n height: 100%;\n overflow: hidden;//\u5217\u5168\u90E8\u56FA\u5B9A\u65F6\uFF0C\u5B58\u5728\u53CC\u6A2A\u5411\u6EDA\u52A8\u6761\n display: flex;\n position: relative;\n flex-direction: column;\n }\n\n .", " {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n pointer-events: none;\n }\n\n .", " {\n position: sticky;\n z-index: ", ";\n transform: translateY(-50%);\n }\n }\n //#endregion\n\n //#region \u8868\u683C\u8FC7\u6EE4\n .", " {\n color:var(--icon-color);\n &.active{\n color:var(--primary-color);\n }\n padding: 6px 4px;\n &:hover{\n background-color: #e5e5e5;\n }\n &:focus {\n outline: none\n }\n }\n //#endregion\n\n //#region \u8868\u683C\u6392\u5E8F\n .", " {\n color:var(--icon-color);\n &.active{\n color:var(--primary-color);\n }\n }\n .", " {\n color:var(--icon-color);\n &.active{\n color:var(--primary-color);\n }\n }\n //#endregion\n\n //#region \u6EDA\u52A8\u6761\u5360\u4F4D\n .", " {\n // visibility: hidden;\n background: var(--header-bgcolor);\n position:sticky;\n z-index:5;\n ", ":0px;\n flex-shrink: 0;\n }\n .", " .", " {\n border-top: var(--cell-border-horizontal);\n }\n //#endregion\n\n //#region \u62D6\u62FD\u5217\u5BBD\u5927\u5C0F\n .", "::after{\n background-color: var(--border-color);\n }\n //\u89E3\u51B3\u90E8\u5206\u6D4F\u89C8\u5668(chrome109)\u6700\u540E\u4E00\u4E2A\u5355\u5143\u683C\u7684\u5217\u5BBD\u62D6\u62FD\u533A\u57DF\u7EDD\u5BF9\u5B9A\u4F4D\u8D85\u51FA\u8868\u683C\uFF0C\u5BFC\u81F4\u8868\u683C\u7AD6\u5206\u5272\u7EBF\u65E0\u6CD5\u5BF9\u9F50\n .", " th.", " .", "{\n ", ": 0;\n width: 5px;\n &::after{\n ", ": 4px;\n }\n }\n"])), function (_ref) {
51094
+ var _context, _context2, _context3;
51095
+ var prefixCls = _ref.prefixCls;
51096
+ return prefixCls ? _babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_1___default()(_context = _babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_1___default()(_context2 = "&.".concat(prefixCls, "-table {:root {")).call(_context2, variableConst, "} ")).call(_context, variableConst, "}") : _babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_1___default()(_context3 = ":root {".concat(variableConst, "} ")).call(_context3, variableConst);
51097
+ }, outerBorderStyleMixin, Classes.artTableBordered, notBorderedStyleMixin, Classes.artTableBordered, borderedStyleMixin, Classes.artTable, Classes.tableHeader, Classes.tableHeaderCellContent, Classes.virtual, Classes.tableFooter, Classes.tableBody, Classes.tableBody, Classes.tableFooter, Classes.tableRow, Classes.tableBody, Classes.tableFooter, Classes.tableCellRangeSelected, Classes.tableCellRangeTop, Classes.tableCellRangeLeft, function (props) {
50817
51098
  return Object(_utils__WEBPACK_IMPORTED_MODULE_4__["swapRTLDirection"])(props.direction, 'left');
50818
51099
  }, Classes.tableCellRangeBottom, Classes.tableCellRangeRight, function (props) {
50819
51100
  return Object(_utils__WEBPACK_IMPORTED_MODULE_4__["swapRTLDirection"])(props.direction, 'right');
@@ -50860,9 +51141,9 @@ var StyledArtTableWrapper = styled_components__WEBPACK_IMPORTED_MODULE_3__["defa
50860
51141
  });
50861
51142
  var ButtonCSS = Object(styled_components__WEBPACK_IMPORTED_MODULE_3__["css"])(_templateObject6 || (_templateObject6 = _babel_runtime_corejs3_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_0___default()(["\n ", "\n .", "{\n color: var(--color);\n background:#ffffff;\n border:1px solid var(--strong-border-color);\n border-radius: 2px;\n cursor: pointer;\n &:hover{\n color: var(--primary-color);\n border:1px solid var(--primary-color);\n }\n }\n .", " {\n color:#ffffff;\n background-color: var(--primary-color);\n border:none;\n &:hover{\n color:#ffffff;\n background-color: var(--primary-color-level2);\n border:none;\n }\n }\n"])), variableConst, Classes.button, Classes.buttonPrimary);
50862
51143
  function getCssVariableText(obj) {
50863
- return _babel_runtime_corejs3_core_js_stable_object_keys__WEBPACK_IMPORTED_MODULE_1___default()(obj).reduce(function (acc, key) {
50864
- var _context;
50865
- acc += _babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_2___default()(_context = "".concat(key, ":")).call(_context, obj[key], ";");
51144
+ return _babel_runtime_corejs3_core_js_stable_object_keys__WEBPACK_IMPORTED_MODULE_2___default()(obj).reduce(function (acc, key) {
51145
+ var _context4;
51146
+ acc += _babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_1___default()(_context4 = "".concat(key, ":")).call(_context4, obj[key], ";");
50866
51147
  return acc;
50867
51148
  }, '');
50868
51149
  }
@@ -50921,13 +51202,15 @@ __webpack_require__.r(__webpack_exports__);
50921
51202
  /* harmony import */ var _helpers_getRichVisibleRectsStream__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./helpers/getRichVisibleRectsStream */ "./node_modules/@kdcloudjs/table/es/table/base/helpers/getRichVisibleRectsStream.js");
50922
51203
  /* harmony import */ var _helpers_rowHeightManager__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./helpers/rowHeightManager */ "./node_modules/@kdcloudjs/table/es/table/base/helpers/rowHeightManager.js");
50923
51204
  /* harmony import */ var _helpers_TableDOMUtils__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./helpers/TableDOMUtils */ "./node_modules/@kdcloudjs/table/es/table/base/helpers/TableDOMUtils.js");
50924
- /* harmony import */ var _html_table__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./html-table */ "./node_modules/@kdcloudjs/table/es/table/base/html-table.js");
50925
- /* harmony import */ var _loading__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./loading */ "./node_modules/@kdcloudjs/table/es/table/base/loading.js");
50926
- /* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./styles */ "./node_modules/@kdcloudjs/table/es/table/base/styles.js");
50927
- /* harmony import */ var _globalStyleComponent__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./globalStyleComponent */ "./node_modules/@kdcloudjs/table/es/table/base/globalStyleComponent.js");
50928
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./utils */ "./node_modules/@kdcloudjs/table/es/table/base/utils.js");
50929
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../utils */ "./node_modules/@kdcloudjs/table/es/table/utils/index.js");
50930
- /* harmony import */ var _renderTemplates__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./renderTemplates */ "./node_modules/@kdcloudjs/table/es/table/base/renderTemplates.js");
51205
+ /* harmony import */ var _helpers_FastScrollManager__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./helpers/FastScrollManager */ "./node_modules/@kdcloudjs/table/es/table/base/helpers/FastScrollManager.js");
51206
+ /* harmony import */ var _html_table__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./html-table */ "./node_modules/@kdcloudjs/table/es/table/base/html-table.js");
51207
+ /* harmony import */ var _loading__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./loading */ "./node_modules/@kdcloudjs/table/es/table/base/loading.js");
51208
+ /* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./styles */ "./node_modules/@kdcloudjs/table/es/table/base/styles.js");
51209
+ /* harmony import */ var _globalStyleComponent__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./globalStyleComponent */ "./node_modules/@kdcloudjs/table/es/table/base/globalStyleComponent.js");
51210
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./utils */ "./node_modules/@kdcloudjs/table/es/table/base/utils.js");
51211
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../utils */ "./node_modules/@kdcloudjs/table/es/table/utils/index.js");
51212
+ /* harmony import */ var _renderTemplates__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./renderTemplates */ "./node_modules/@kdcloudjs/table/es/table/base/renderTemplates.js");
51213
+ /* harmony import */ var _BlankComponent__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./BlankComponent */ "./node_modules/@kdcloudjs/table/es/table/base/BlankComponent.js");
50931
51214
 
50932
51215
 
50933
51216
 
@@ -50965,11 +51248,13 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_b
50965
51248
 
50966
51249
 
50967
51250
 
51251
+
51252
+
50968
51253
  var propsDotEmptyContentDeprecatedWarned = false;
50969
51254
  function warnPropsDotEmptyContentIsDeprecated() {
50970
51255
  if (!propsDotEmptyContentDeprecatedWarned) {
50971
51256
  propsDotEmptyContentDeprecatedWarned = true;
50972
- _utils__WEBPACK_IMPORTED_MODULE_30__["console"].warn('BaseTable props.emptyContent 已经过时,请使用 props.components.EmptyContent 来自定义数据为空时的表格表现');
51257
+ _utils__WEBPACK_IMPORTED_MODULE_31__["console"].warn('BaseTable props.emptyContent 已经过时,请使用 props.components.EmptyContent 来自定义数据为空时的表格表现');
50973
51258
  }
50974
51259
  }
50975
51260
  var BaseTable = /*#__PURE__*/function (_React$Component) {
@@ -50983,6 +51268,9 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
50983
51268
  _this.artTableWrapperRef = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createRef();
50984
51269
  _this.hasScrollY = false;
50985
51270
  _this.offsetY = 0;
51271
+ // Blank组件的引用,用于快速滚动时直接更新
51272
+ _this.topBlankRef = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createRef();
51273
+ _this.bottomBlankRef = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createRef();
50986
51274
  _this.handleRowMouseEnter = function (e) {
50987
51275
  var nodeList = _this.domHelper.getRowNodeListByEvent(e);
50988
51276
  nodeList && nodeList.forEach(function (node) {
@@ -51002,11 +51290,10 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51002
51290
  getRowProps = _this$props.getRowProps,
51003
51291
  primaryKey = _this$props.primaryKey,
51004
51292
  isLoading = _this$props.isLoading,
51005
- emptyCellHeight = _this$props.emptyCellHeight,
51006
- footerDataSource = _this$props.footerDataSource;
51007
- var tableBodyClassName = classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].tableBody, _styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].horizontalScrollContainer);
51293
+ emptyCellHeight = _this$props.emptyCellHeight;
51294
+ var tableBodyClassName = classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].tableBody, _styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].horizontalScrollContainer);
51008
51295
  // 低版本Edge浏览器下也会出现双滚动条,这里设置overflow: 'hidden',先去掉edge的方向键控制滚动条的功能
51009
- var virtualStyle = _utils__WEBPACK_IMPORTED_MODULE_30__["browserType"].isIE || _utils__WEBPACK_IMPORTED_MODULE_30__["browserType"].isEdge ? {
51296
+ var virtualStyle = _utils__WEBPACK_IMPORTED_MODULE_31__["browserType"].isIE || _utils__WEBPACK_IMPORTED_MODULE_31__["browserType"].isEdge ? {
51010
51297
  overflow: 'hidden'
51011
51298
  } : {};
51012
51299
  if (dataSource.length === 0) {
@@ -51023,7 +51310,7 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51023
51310
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement("div", {
51024
51311
  className: classnames__WEBPACK_IMPORTED_MODULE_15___default()(tableBodyClassName, 'empty')
51025
51312
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement("div", {
51026
- className: _styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].virtual,
51313
+ className: _styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].virtual,
51027
51314
  tabIndex: -1,
51028
51315
  style: virtualStyle
51029
51316
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement(_empty__WEBPACK_IMPORTED_MODULE_20__["EmptyHtmlTable"], {
@@ -51038,7 +51325,7 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51038
51325
  bottomBlank = _info$verticalRenderR.bottomBlank,
51039
51326
  topBlank = _info$verticalRenderR.topBlank,
51040
51327
  bottomIndex = _info$verticalRenderR.bottomIndex;
51041
- var renderBody = Object(_renderTemplates__WEBPACK_IMPORTED_MODULE_31__["default"])('body');
51328
+ var renderBody = Object(_renderTemplates__WEBPACK_IMPORTED_MODULE_32__["default"])('body');
51042
51329
  if (typeof renderBody === 'function') {
51043
51330
  return renderBody(info, _this.props, {
51044
51331
  rowProps: {
@@ -51050,16 +51337,13 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51050
51337
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement("div", {
51051
51338
  className: tableBodyClassName
51052
51339
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement("div", {
51053
- className: _styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].virtual,
51340
+ className: _styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].virtual,
51054
51341
  tabIndex: -1,
51055
51342
  style: virtualStyle
51056
- }, topBlank > 0 && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement("div", {
51057
- key: "top-blank",
51058
- className: classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].virtualBlank, 'top'),
51059
- style: {
51060
- height: topBlank
51061
- }
51062
- }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement(_html_table__WEBPACK_IMPORTED_MODULE_25__["HtmlTable"], {
51343
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement(_BlankComponent__WEBPACK_IMPORTED_MODULE_33__["TopBlank"], {
51344
+ ref: _this.topBlankRef,
51345
+ height: topBlank
51346
+ }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement(_html_table__WEBPACK_IMPORTED_MODULE_26__["HtmlTable"], {
51063
51347
  tbodyHtmlTag: "tbody",
51064
51348
  getRowProps: getRowProps,
51065
51349
  primaryKey: primaryKey,
@@ -51071,12 +51355,9 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51071
51355
  limit: bottomIndex,
51072
51356
  last: dataSource.length - 1
51073
51357
  }
51074
- }), bottomBlank > 0 && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement("div", {
51075
- key: "bottom-blank",
51076
- className: classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].virtualBlank, 'bottom'),
51077
- style: {
51078
- height: bottomBlank
51079
- }
51358
+ }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement(_BlankComponent__WEBPACK_IMPORTED_MODULE_33__["BottomBlank"], {
51359
+ ref: _this.bottomBlankRef,
51360
+ height: bottomBlank
51080
51361
  })));
51081
51362
  };
51082
51363
  _this.state = {
@@ -51091,13 +51372,33 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51091
51372
  maxRenderHeight: 600,
51092
51373
  maxRenderWidth: 800
51093
51374
  };
51375
+ // 初始化快速滚动管理器
51376
+ var fastScrollCallbacks = {
51377
+ onFastScrollStart: function onFastScrollStart(renderData) {
51378
+ _this.setState({
51379
+ previousRenderData: renderData
51380
+ });
51381
+ },
51382
+ onFastScrollEnd: function onFastScrollEnd(scrollData) {
51383
+ _this.setState({
51384
+ previousRenderData: undefined,
51385
+ offsetY: scrollData.offsetY,
51386
+ maxRenderHeight: scrollData.maxRenderHeight,
51387
+ maxRenderWidth: scrollData.maxRenderWidth
51388
+ });
51389
+ },
51390
+ getCurrentRenderRange: function getCurrentRenderRange(offsetY, maxRenderHeight, dataLength) {
51391
+ return _this.rowHeightManager.getRenderRange(offsetY, maxRenderHeight, dataLength);
51392
+ }
51393
+ };
51394
+ _this.fastScrollManager = new _helpers_FastScrollManager__WEBPACK_IMPORTED_MODULE_25__["FastScrollManager"](fastScrollCallbacks);
51094
51395
  return _this;
51095
51396
  }
51096
51397
  /** @deprecated BaseTable.getDoms() 已经过时,请勿调用 */
51097
51398
  _babel_runtime_corejs3_helpers_createClass__WEBPACK_IMPORTED_MODULE_8___default()(BaseTable, [{
51098
51399
  key: "getDoms",
51099
51400
  value: function getDoms() {
51100
- _utils__WEBPACK_IMPORTED_MODULE_30__["console"].warn('[kd-table] BaseTable.getDoms() 已经过时');
51401
+ _utils__WEBPACK_IMPORTED_MODULE_31__["console"].warn('[kd-table] BaseTable.getDoms() 已经过时');
51101
51402
  return this.domHelper;
51102
51403
  }
51103
51404
  /** 自定义滚动条宽度为table宽度,使滚动条滑块宽度相同 */
@@ -51169,7 +51470,7 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51169
51470
  var _this$props3 = this.props,
51170
51471
  stickyTop = _this$props3.stickyTop,
51171
51472
  hasHeader = _this$props3.hasHeader;
51172
- var renderHeader = Object(_renderTemplates__WEBPACK_IMPORTED_MODULE_31__["default"])('header');
51473
+ var renderHeader = Object(_renderTemplates__WEBPACK_IMPORTED_MODULE_32__["default"])('header');
51173
51474
  var stickyRightOffset = this.hasScrollY ? this.getScrollBarWidth() : 0;
51174
51475
  if (typeof renderHeader === 'function') {
51175
51476
  return renderHeader(info, this.props, {
@@ -51177,7 +51478,7 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51177
51478
  });
51178
51479
  }
51179
51480
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement("div", {
51180
- className: classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].tableHeader, 'no-scrollbar'),
51481
+ className: classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].tableHeader, 'no-scrollbar'),
51181
51482
  style: {
51182
51483
  top: stickyTop === 0 ? undefined : stickyTop,
51183
51484
  display: hasHeader ? undefined : 'none'
@@ -51186,7 +51487,7 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51186
51487
  info: info,
51187
51488
  stickyRightOffset: stickyRightOffset
51188
51489
  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement("div", {
51189
- className: _styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].verticalScrollPlaceholder,
51490
+ className: _styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].verticalScrollPlaceholder,
51190
51491
  style: this.hasScrollY ? {
51191
51492
  width: this.getScrollBarWidth()
51192
51493
  } : undefined
@@ -51196,7 +51497,7 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51196
51497
  key: "updateOffsetX",
51197
51498
  value: function updateOffsetX(nextOffsetX) {
51198
51499
  if (this.lastInfo.useVirtual.horizontal) {
51199
- if (Math.abs(nextOffsetX - this.state.offsetX) >= _utils__WEBPACK_IMPORTED_MODULE_29__["OVERSCAN_SIZE"] / 2) {
51500
+ if (Math.abs(nextOffsetX - this.state.offsetX) >= _utils__WEBPACK_IMPORTED_MODULE_30__["OVERSCAN_SIZE"] / 2) {
51200
51501
  this.setState({
51201
51502
  offsetX: nextOffsetX
51202
51503
  });
@@ -51212,7 +51513,6 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51212
51513
  }, {
51213
51514
  key: "syncHorizontalScroll",
51214
51515
  value: function syncHorizontalScroll(x) {
51215
- var direction = this.props.direction;
51216
51516
  var _x = Math.abs(x);
51217
51517
  this.updateOffsetX(_x);
51218
51518
  var flat = _babel_runtime_corejs3_core_js_stable_instance_flat__WEBPACK_IMPORTED_MODULE_13___default()(this.lastInfo);
@@ -51240,11 +51540,18 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51240
51540
  }, {
51241
51541
  key: "getVerticalRenderRange",
51242
51542
  value: function getVerticalRenderRange(useVirtual) {
51243
- var dataSource = this.props.dataSource;
51543
+ var _this$props4 = this.props,
51544
+ dataSource = _this$props4.dataSource,
51545
+ isLowPerformance = _this$props4.isLowPerformance;
51244
51546
  var _this$state = this.state,
51245
51547
  offsetY = _this$state.offsetY,
51246
- maxRenderHeight = _this$state.maxRenderHeight;
51548
+ maxRenderHeight = _this$state.maxRenderHeight,
51549
+ previousRenderData = _this$state.previousRenderData;
51247
51550
  var rowCount = dataSource.length;
51551
+ // 只有在启用快速滚动时才使用 FastScrollManager 的判断
51552
+ if (isLowPerformance && this.fastScrollManager.getIsFastScrolling() && (previousRenderData === null || previousRenderData === void 0 ? void 0 : previousRenderData.verticalRenderRange)) {
51553
+ return previousRenderData.verticalRenderRange;
51554
+ }
51248
51555
  if (useVirtual.vertical) {
51249
51556
  return this.rowHeightManager.getRenderRange(offsetY, maxRenderHeight, rowCount);
51250
51557
  } else {
@@ -51255,14 +51562,14 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51255
51562
  key: "renderTableFooter",
51256
51563
  value: function renderTableFooter(info) {
51257
51564
  // console.log('render footer')
51258
- var _this$props4 = this.props,
51259
- _this$props4$footerDa = _this$props4.footerDataSource,
51260
- footerDataSource = _this$props4$footerDa === void 0 ? [] : _this$props4$footerDa,
51261
- getRowProps = _this$props4.getRowProps,
51262
- primaryKey = _this$props4.primaryKey,
51263
- stickyBottom = _this$props4.stickyBottom;
51565
+ var _this$props5 = this.props,
51566
+ _this$props5$footerDa = _this$props5.footerDataSource,
51567
+ footerDataSource = _this$props5$footerDa === void 0 ? [] : _this$props5$footerDa,
51568
+ getRowProps = _this$props5.getRowProps,
51569
+ primaryKey = _this$props5.primaryKey,
51570
+ stickyBottom = _this$props5.stickyBottom;
51264
51571
  var stickyRightOffset = this.hasScrollY ? this.getScrollBarWidth() : 0;
51265
- var renderFooter = Object(_renderTemplates__WEBPACK_IMPORTED_MODULE_31__["default"])('footer');
51572
+ var renderFooter = Object(_renderTemplates__WEBPACK_IMPORTED_MODULE_32__["default"])('footer');
51266
51573
  if (typeof renderFooter === 'function') {
51267
51574
  return renderFooter(info, this.props, {
51268
51575
  rowProps: {
@@ -51273,11 +51580,11 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51273
51580
  });
51274
51581
  }
51275
51582
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement("div", {
51276
- className: classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].tableFooter, _styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].horizontalScrollContainer),
51583
+ className: classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].tableFooter, _styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].horizontalScrollContainer),
51277
51584
  style: {
51278
51585
  bottom: stickyBottom === 0 ? undefined : stickyBottom
51279
51586
  }
51280
- }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement(_html_table__WEBPACK_IMPORTED_MODULE_25__["HtmlTable"], {
51587
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement(_html_table__WEBPACK_IMPORTED_MODULE_26__["HtmlTable"], {
51281
51588
  tbodyHtmlTag: "tfoot",
51282
51589
  data: footerDataSource,
51283
51590
  horizontalRenderInfo: info,
@@ -51291,7 +51598,7 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51291
51598
  limit: Infinity
51292
51599
  }
51293
51600
  }), footerDataSource.length > 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement("div", {
51294
- className: _styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].verticalScrollPlaceholder,
51601
+ className: _styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].verticalScrollPlaceholder,
51295
51602
  style: this.hasScrollY ? {
51296
51603
  width: this.getScrollBarWidth(),
51297
51604
  visibility: 'initial'
@@ -51304,49 +51611,49 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51304
51611
  var _style, _style2;
51305
51612
  var stickyRightOffset = this.hasScrollY ? this.getScrollBarWidth() : 0;
51306
51613
  // console.log('render LockShadows')
51307
- var leftLockShadowWidth = info.leftLockTotalWidth + _styles__WEBPACK_IMPORTED_MODULE_27__["LOCK_SHADOW_PADDING"];
51308
- var rightLockShadownWidth = info.rightLockTotalWidth + _styles__WEBPACK_IMPORTED_MODULE_27__["LOCK_SHADOW_PADDING"] + stickyRightOffset;
51614
+ var leftLockShadowWidth = info.leftLockTotalWidth + _styles__WEBPACK_IMPORTED_MODULE_28__["LOCK_SHADOW_PADDING"];
51615
+ var rightLockShadownWidth = info.rightLockTotalWidth + _styles__WEBPACK_IMPORTED_MODULE_28__["LOCK_SHADOW_PADDING"] + stickyRightOffset;
51309
51616
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_16___default.a.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement("div", {
51310
- className: _styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].lockShadowMask,
51311
- style: (_style = {}, _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_style, Object(_utils__WEBPACK_IMPORTED_MODULE_29__["swapRTLDirection"])(info.direction, 'left'), 0), _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_style, "width", leftLockShadowWidth), _style)
51617
+ className: _styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].lockShadowMask,
51618
+ style: (_style = {}, _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_style, Object(_utils__WEBPACK_IMPORTED_MODULE_30__["swapRTLDirection"])(info.direction, 'left'), 0), _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_style, "width", leftLockShadowWidth), _style)
51312
51619
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement("div", {
51313
- className: classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].lockShadow, _styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].leftLockShadow)
51620
+ className: classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].lockShadow, _styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].leftLockShadow)
51314
51621
  })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement("div", {
51315
- className: _styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].lockShadowMask,
51316
- style: (_style2 = {}, _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_style2, Object(_utils__WEBPACK_IMPORTED_MODULE_29__["swapRTLDirection"])(info.direction, 'right'), 0), _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_style2, "width", rightLockShadownWidth), _style2)
51622
+ className: _styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].lockShadowMask,
51623
+ style: (_style2 = {}, _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_style2, Object(_utils__WEBPACK_IMPORTED_MODULE_30__["swapRTLDirection"])(info.direction, 'right'), 0), _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_style2, "width", rightLockShadownWidth), _style2)
51317
51624
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement("div", {
51318
- className: classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].lockShadow, _styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].rightLockShadow)
51625
+ className: classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].lockShadow, _styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].rightLockShadow)
51319
51626
  })));
51320
51627
  }
51321
51628
  }, {
51322
51629
  key: "renderStickyScroll",
51323
51630
  value: function renderStickyScroll(info) {
51324
51631
  // console.log('render stickyscroll')
51325
- var _this$props5 = this.props,
51326
- hasStickyScroll = _this$props5.hasStickyScroll,
51327
- stickyBottom = _this$props5.stickyBottom;
51632
+ var _this$props6 = this.props,
51633
+ hasStickyScroll = _this$props6.hasStickyScroll,
51634
+ stickyBottom = _this$props6.stickyBottom;
51328
51635
  var hasScroll = this.state.hasScroll;
51329
51636
  var isScroll = hasStickyScroll && hasScroll;
51330
51637
  var stickyScrollContainerStyle = this.getStickyScrollContainerStyle();
51331
51638
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement("div", {
51332
- className: classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].horizontalScrollContainer, _styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].horizontalStickyScrollContainer),
51639
+ className: classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].horizontalScrollContainer, _styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].horizontalStickyScrollContainer),
51333
51640
  style: stickyScrollContainerStyle
51334
51641
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement("div", {
51335
- className: classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].horizontalScrollLeftSpacer),
51642
+ className: classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].horizontalScrollLeftSpacer),
51336
51643
  style: {
51337
51644
  width: info.leftLockTotalWidth,
51338
51645
  display: isScroll ? 'block' : 'none'
51339
51646
  }
51340
51647
  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement("div", {
51341
- className: classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].stickyScroll),
51648
+ className: classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].stickyScroll),
51342
51649
  style: {
51343
51650
  display: isScroll ? 'block' : 'none',
51344
51651
  bottom: stickyBottom
51345
51652
  }
51346
51653
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement("div", {
51347
- className: _styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].stickyScrollItem
51654
+ className: _styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].stickyScrollItem
51348
51655
  })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement("div", {
51349
- className: classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].horizontalScrollRightSpacer),
51656
+ className: classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].horizontalScrollRightSpacer),
51350
51657
  style: {
51351
51658
  width: info.rightLockTotalWidth,
51352
51659
  display: isScroll ? 'block' : 'none'
@@ -51356,14 +51663,14 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51356
51663
  }, {
51357
51664
  key: "getScrollBarWidth",
51358
51665
  value: function getScrollBarWidth() {
51359
- return this.props.scrollbarWidth || Object(_utils__WEBPACK_IMPORTED_MODULE_29__["getScrollbarSize"])().width;
51666
+ return this.props.scrollbarWidth || Object(_utils__WEBPACK_IMPORTED_MODULE_30__["getScrollbarSize"])().width;
51360
51667
  }
51361
51668
  }, {
51362
51669
  key: "getStickyScrollContainerStyle",
51363
51670
  value: function getStickyScrollContainerStyle() {
51364
- var _this$props6 = this.props,
51365
- hasStickyScroll = _this$props6.hasStickyScroll,
51366
- stickyScrollHeight = _this$props6.stickyScrollHeight;
51671
+ var _this$props7 = this.props,
51672
+ hasStickyScroll = _this$props7.hasStickyScroll,
51673
+ stickyScrollHeight = _this$props7.stickyScrollHeight;
51367
51674
  var hasScroll = this.state.hasScroll;
51368
51675
  var isScroll = hasStickyScroll && hasScroll;
51369
51676
  var height = stickyScrollHeight === 'auto' ? this.getScrollBarWidth() : stickyScrollHeight;
@@ -51381,23 +51688,24 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51381
51688
  // console.log('render table')
51382
51689
  var info = Object(_calculations__WEBPACK_IMPORTED_MODULE_19__["calculateRenderInfo"])(this);
51383
51690
  this.lastInfo = info;
51384
- var _this$props7 = this.props,
51385
- dataSource = _this$props7.dataSource,
51386
- className = _this$props7.className,
51387
- style = _this$props7.style,
51388
- hasHeader = _this$props7.hasHeader,
51389
- useOuterBorder = _this$props7.useOuterBorder,
51390
- isStickyHead = _this$props7.isStickyHead,
51391
- isStickyHeader = _this$props7.isStickyHeader,
51392
- isStickyFooter = _this$props7.isStickyFooter,
51393
- isLoading = _this$props7.isLoading,
51394
- getTableProps = _this$props7.getTableProps,
51395
- footerDataSource = _this$props7.footerDataSource,
51396
- components = _this$props7.components,
51397
- bordered = _this$props7.bordered,
51398
- direction = _this$props7.direction;
51691
+ var _this$props8 = this.props,
51692
+ dataSource = _this$props8.dataSource,
51693
+ className = _this$props8.className,
51694
+ style = _this$props8.style,
51695
+ hasHeader = _this$props8.hasHeader,
51696
+ useOuterBorder = _this$props8.useOuterBorder,
51697
+ isStickyHead = _this$props8.isStickyHead,
51698
+ isStickyHeader = _this$props8.isStickyHeader,
51699
+ isStickyFooter = _this$props8.isStickyFooter,
51700
+ isLoading = _this$props8.isLoading,
51701
+ getTableProps = _this$props8.getTableProps,
51702
+ footerDataSource = _this$props8.footerDataSource,
51703
+ components = _this$props8.components,
51704
+ bordered = _this$props8.bordered,
51705
+ direction = _this$props8.direction,
51706
+ prefixCls = _this$props8.prefixCls;
51399
51707
  info.direction = direction;
51400
- var artTableWrapperClassName = classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].artTableWrapper, (_cx = {
51708
+ var artTableWrapperClassName = classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].artTableWrapper, (_cx = {
51401
51709
  'use-outer-border': useOuterBorder,
51402
51710
  empty: dataSource.length === 0,
51403
51711
  lock: info.hasLockColumn,
@@ -51405,24 +51713,25 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51405
51713
  'sticky-header': isStickyHeader !== null && isStickyHeader !== void 0 ? isStickyHeader : isStickyHead,
51406
51714
  'has-footer': footerDataSource.length > 0,
51407
51715
  'sticky-footer': isStickyFooter
51408
- }, _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_cx, _styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].artTableBordered, bordered), _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_cx, 'ie-polyfill-wrapper', _utils__WEBPACK_IMPORTED_MODULE_30__["browserType"].isIE), _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_cx, 'sticky-polyfill-wrapper', Object(_utils__WEBPACK_IMPORTED_MODULE_30__["isStickyUIDegrade"])()), _cx), className);
51716
+ }, _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_cx, _styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].artTableBordered, bordered), _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_cx, 'ie-polyfill-wrapper', _utils__WEBPACK_IMPORTED_MODULE_31__["browserType"].isIE), _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_cx, 'sticky-polyfill-wrapper', Object(_utils__WEBPACK_IMPORTED_MODULE_31__["isStickyUIDegrade"])()), _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_cx, "".concat(prefixCls, "-table"), prefixCls), _cx), className);
51409
51717
  var artTableWrapperProps = _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()({
51410
51718
  className: artTableWrapperClassName,
51411
51719
  style: _babel_runtime_corejs3_helpers_extends__WEBPACK_IMPORTED_MODULE_5___default()(_babel_runtime_corejs3_helpers_extends__WEBPACK_IMPORTED_MODULE_5___default()({}, style), {
51412
51720
  direction: direction
51413
51721
  })
51414
- }, _utils__WEBPACK_IMPORTED_MODULE_29__["STYLED_REF_PROP"], this.artTableWrapperRef);
51722
+ }, _utils__WEBPACK_IMPORTED_MODULE_30__["STYLED_REF_PROP"], this.artTableWrapperRef);
51415
51723
  var tableProps = getTableProps() || {};
51416
- return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_16___default.a.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement(_globalStyleComponent__WEBPACK_IMPORTED_MODULE_28__["default"], {
51417
- direction: info.direction
51418
- }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement(_styles__WEBPACK_IMPORTED_MODULE_27__["StyledArtTableWrapper"], _babel_runtime_corejs3_helpers_extends__WEBPACK_IMPORTED_MODULE_5___default()({}, artTableWrapperProps, {
51724
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_16___default.a.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement(_globalStyleComponent__WEBPACK_IMPORTED_MODULE_29__["default"], {
51419
51725
  direction: info.direction
51420
- }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement(_loading__WEBPACK_IMPORTED_MODULE_26__["default"], {
51726
+ }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement(_styles__WEBPACK_IMPORTED_MODULE_28__["StyledArtTableWrapper"], _babel_runtime_corejs3_helpers_extends__WEBPACK_IMPORTED_MODULE_5___default()({}, artTableWrapperProps, {
51727
+ direction: info.direction,
51728
+ prefixCls: this.props.prefixCls
51729
+ }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement(_loading__WEBPACK_IMPORTED_MODULE_27__["default"], {
51421
51730
  visible: isLoading,
51422
51731
  LoadingIcon: components.LoadingIcon,
51423
51732
  LoadingContentWrapper: components.LoadingContentWrapper
51424
51733
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_16___default.a.createElement("div", _babel_runtime_corejs3_helpers_extends__WEBPACK_IMPORTED_MODULE_5___default()({}, tableProps, {
51425
- className: classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_27__["Classes"].artTable, tableProps.className)
51734
+ className: classnames__WEBPACK_IMPORTED_MODULE_15___default()(_styles__WEBPACK_IMPORTED_MODULE_28__["Classes"].artTable, tableProps.className)
51426
51735
  }), this.renderTableHeader(info), this.renderTableBody(info), this.renderTableFooter(info), this.renderLockShadows(info)), this.renderStickyScroll(info))));
51427
51736
  }
51428
51737
  }, {
@@ -51436,11 +51745,11 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51436
51745
  this.initSubscriptions();
51437
51746
  this.didMountOrUpdate();
51438
51747
  // console.log('did mount end')
51439
- var _this$props8 = this.props,
51440
- cssVariables = _this$props8.cssVariables,
51441
- enableCSSVariables = _this$props8.enableCSSVariables,
51442
- bordered = _this$props8.bordered;
51443
- Object(_utils__WEBPACK_IMPORTED_MODULE_29__["cssPolifill"])({
51748
+ var _this$props9 = this.props,
51749
+ cssVariables = _this$props9.cssVariables,
51750
+ enableCSSVariables = _this$props9.enableCSSVariables,
51751
+ bordered = _this$props9.bordered;
51752
+ Object(_utils__WEBPACK_IMPORTED_MODULE_30__["cssPolifill"])({
51444
51753
  variables: cssVariables || {},
51445
51754
  enableCSSVariables: enableCSSVariables,
51446
51755
  bordered: bordered
@@ -51454,12 +51763,12 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51454
51763
  value: function componentDidUpdate(prevProps, prevState) {
51455
51764
  var _a;
51456
51765
  // console.log('did update start')
51457
- var _this$props9 = this.props,
51458
- cssVariables = _this$props9.cssVariables,
51459
- enableCSSVariables = _this$props9.enableCSSVariables,
51460
- bordered = _this$props9.bordered;
51461
- if (!Object(_utils__WEBPACK_IMPORTED_MODULE_29__["shallowEqual"])(prevProps === null || prevProps === void 0 ? void 0 : prevProps.cssVariables, (_a = this.props) === null || _a === void 0 ? void 0 : _a.cssVariables)) {
51462
- Object(_utils__WEBPACK_IMPORTED_MODULE_29__["cssPolifill"])({
51766
+ var _this$props10 = this.props,
51767
+ cssVariables = _this$props10.cssVariables,
51768
+ enableCSSVariables = _this$props10.enableCSSVariables,
51769
+ bordered = _this$props10.bordered;
51770
+ if (!Object(_utils__WEBPACK_IMPORTED_MODULE_30__["shallowEqual"])(prevProps === null || prevProps === void 0 ? void 0 : prevProps.cssVariables, (_a = this.props) === null || _a === void 0 ? void 0 : _a.cssVariables)) {
51771
+ Object(_utils__WEBPACK_IMPORTED_MODULE_30__["cssPolifill"])({
51463
51772
  variables: cssVariables || {},
51464
51773
  enableCSSVariables: enableCSSVariables,
51465
51774
  bordered: bordered
@@ -51473,10 +51782,13 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51473
51782
  }, {
51474
51783
  key: "didMountOrUpdate",
51475
51784
  value: function didMountOrUpdate(prevProps, prevState) {
51476
- this.syncHorizontalScrollFromTableBody();
51477
- this.updateStickyScroll();
51478
- this.adjustNeedRenderLock();
51479
- this.updateRowHeightManager();
51785
+ var _this2 = this;
51786
+ window.requestAnimationFrame(function () {
51787
+ _this2.syncHorizontalScrollFromTableBody();
51788
+ _this2.updateStickyScroll();
51789
+ _this2.adjustNeedRenderLock();
51790
+ _this2.updateRowHeightManager();
51791
+ });
51480
51792
  this.updateScrollLeftWhenLayoutChanged(prevProps, prevState);
51481
51793
  }
51482
51794
  }, {
@@ -51491,38 +51803,38 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51491
51803
  var prevHasFooter = prevProps.footerDataSource.length > 0;
51492
51804
  var currentHasFooter = this.props.footerDataSource.length > 0;
51493
51805
  if (!prevHasFooter && currentHasFooter) {
51494
- Object(_utils__WEBPACK_IMPORTED_MODULE_29__["getTableScrollFooterDOM"])(this.domHelper).scrollLeft = this.domHelper.virtual.scrollLeft;
51806
+ Object(_utils__WEBPACK_IMPORTED_MODULE_30__["getTableScrollFooterDOM"])(this.domHelper).scrollLeft = this.domHelper.virtual.scrollLeft;
51495
51807
  }
51496
51808
  }
51497
51809
  }
51498
51810
  }, {
51499
51811
  key: "initSubscriptions",
51500
51812
  value: function initSubscriptions() {
51501
- var _this2 = this;
51813
+ var _this3 = this;
51502
51814
  var _this$domHelper2 = this.domHelper,
51503
51815
  virtual = _this$domHelper2.virtual,
51504
51816
  stickyScroll = _this$domHelper2.stickyScroll;
51505
- this.rootSubscription.add(_utils__WEBPACK_IMPORTED_MODULE_29__["throttledWindowResize$"].subscribe(function () {
51506
- _this2.updateStickyScroll();
51507
- _this2.adjustNeedRenderLock();
51817
+ this.rootSubscription.add(_utils__WEBPACK_IMPORTED_MODULE_30__["throttledWindowResize$"].subscribe(function () {
51818
+ _this3.updateStickyScroll();
51819
+ _this3.adjustNeedRenderLock();
51508
51820
  }));
51509
51821
  this.resizeSubject.pipe(rxjs_operators__WEBPACK_IMPORTED_MODULE_18__["debounceTime"](100)).subscribe(function () {
51510
51822
  var _a, _b;
51511
- (_b = (_a = _this2.props).setTableWidth) === null || _b === void 0 ? void 0 : _b.call(_a, _this2.domHelper.tableBody.clientWidth);
51823
+ (_b = (_a = _this3.props).setTableWidth) === null || _b === void 0 ? void 0 : _b.call(_a, _this3.domHelper.tableBody.clientWidth);
51512
51824
  });
51513
51825
  var handleTableWrapperResize = function handleTableWrapperResize() {
51514
- _this2.resizeSubject.next();
51826
+ _this3.resizeSubject.next();
51515
51827
  };
51516
- this.resizeObserver = Object(_utils__WEBPACK_IMPORTED_MODULE_29__["addResizeObserver"])(this.domHelper.artTableWrapper, handleTableWrapperResize);
51828
+ this.resizeObserver = Object(_utils__WEBPACK_IMPORTED_MODULE_30__["addResizeObserver"])(this.domHelper.artTableWrapper, handleTableWrapperResize);
51517
51829
  // 滚动同步
51518
- this.rootSubscription.add(Object(_utils__WEBPACK_IMPORTED_MODULE_29__["syncScrollLeft"])([Object(_utils__WEBPACK_IMPORTED_MODULE_29__["getTableScrollHeaderDOM"])(this.domHelper), virtual, Object(_utils__WEBPACK_IMPORTED_MODULE_29__["getTableScrollFooterDOM"])(this.domHelper), stickyScroll], function (scrollLeft) {
51519
- _this2.syncHorizontalScroll(scrollLeft);
51830
+ this.rootSubscription.add(Object(_utils__WEBPACK_IMPORTED_MODULE_30__["syncScrollLeft"])([Object(_utils__WEBPACK_IMPORTED_MODULE_30__["getTableScrollHeaderDOM"])(this.domHelper), virtual, Object(_utils__WEBPACK_IMPORTED_MODULE_30__["getTableScrollFooterDOM"])(this.domHelper), stickyScroll], function (scrollLeft) {
51831
+ _this3.syncHorizontalScroll(scrollLeft);
51520
51832
  }));
51521
51833
  var richVisibleRects$ = Object(_helpers_getRichVisibleRectsStream__WEBPACK_IMPORTED_MODULE_22__["getRichVisibleRectsStream"])(this.domHelper.virtual, this.props$.pipe(rxjs_operators__WEBPACK_IMPORTED_MODULE_18__["skip"](1), rxjs_operators__WEBPACK_IMPORTED_MODULE_18__["mapTo"]('structure-may-change')), this.props.virtualDebugLabel).pipe(rxjs_operators__WEBPACK_IMPORTED_MODULE_18__["shareReplay"]());
51522
51834
  // 每当可见部分发生变化的时候,调整 loading icon 的未知(如果 loading icon 存在的话)
51523
51835
  this.rootSubscription.add(Object(rxjs__WEBPACK_IMPORTED_MODULE_17__["combineLatest"])([richVisibleRects$.pipe(rxjs_operators__WEBPACK_IMPORTED_MODULE_18__["map"](function (p) {
51524
51836
  return p.clipRect;
51525
- }), rxjs_operators__WEBPACK_IMPORTED_MODULE_18__["distinctUntilChanged"](_utils__WEBPACK_IMPORTED_MODULE_29__["shallowEqual"])), this.props$.pipe(rxjs_operators__WEBPACK_IMPORTED_MODULE_18__["startWith"](null), rxjs_operators__WEBPACK_IMPORTED_MODULE_18__["pairwise"](), rxjs_operators__WEBPACK_IMPORTED_MODULE_18__["filter"](function (_ref) {
51837
+ }), rxjs_operators__WEBPACK_IMPORTED_MODULE_18__["distinctUntilChanged"](_utils__WEBPACK_IMPORTED_MODULE_30__["shallowEqual"])), this.props$.pipe(rxjs_operators__WEBPACK_IMPORTED_MODULE_18__["startWith"](null), rxjs_operators__WEBPACK_IMPORTED_MODULE_18__["pairwise"](), rxjs_operators__WEBPACK_IMPORTED_MODULE_18__["filter"](function (_ref) {
51526
51838
  var _ref2 = _babel_runtime_corejs3_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_4___default()(_ref, 2),
51527
51839
  prevProps = _ref2[0],
51528
51840
  props = _ref2[1];
@@ -51530,7 +51842,7 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51530
51842
  }))]).subscribe(function (_ref3) {
51531
51843
  var _ref4 = _babel_runtime_corejs3_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_4___default()(_ref3, 1),
51532
51844
  clipRect = _ref4[0];
51533
- var loadingIndicator = _this2.domHelper.getLoadingIndicator();
51845
+ var loadingIndicator = _this3.domHelper.getLoadingIndicator();
51534
51846
  if (!loadingIndicator) {
51535
51847
  return;
51536
51848
  }
@@ -51541,9 +51853,9 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51541
51853
  }));
51542
51854
  // 每当可见部分发生变化的时候,如果开启了虚拟滚动,则重新触发 render
51543
51855
  this.rootSubscription.add(richVisibleRects$.pipe(rxjs_operators__WEBPACK_IMPORTED_MODULE_18__["filter"](function () {
51544
- var _this2$lastInfo$useVi = _this2.lastInfo.useVirtual,
51545
- horizontal = _this2$lastInfo$useVi.horizontal,
51546
- vertical = _this2$lastInfo$useVi.vertical;
51856
+ var _this3$lastInfo$useVi = _this3.lastInfo.useVirtual,
51857
+ horizontal = _this3$lastInfo$useVi.horizontal,
51858
+ vertical = _this3$lastInfo$useVi.vertical;
51547
51859
  return horizontal || vertical;
51548
51860
  }), rxjs_operators__WEBPACK_IMPORTED_MODULE_18__["map"](function (_ref5) {
51549
51861
  var clipRect = _ref5.clipRect,
@@ -51559,9 +51871,30 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51559
51871
  return true;
51560
51872
  }
51561
51873
  // 因为 overscan 的存在,滚动较小的距离时不需要触发组件重渲染
51562
- return Math.abs(x.maxRenderWidth - y.maxRenderWidth) < _utils__WEBPACK_IMPORTED_MODULE_29__["OVERSCAN_SIZE"] / 2 && Math.abs(x.maxRenderHeight - y.maxRenderHeight) < _utils__WEBPACK_IMPORTED_MODULE_29__["OVERSCAN_SIZE"] / 2 && Math.abs(x.offsetY - y.offsetY) < _utils__WEBPACK_IMPORTED_MODULE_29__["OVERSCAN_SIZE"] / 2;
51874
+ return Math.abs(x.maxRenderWidth - y.maxRenderWidth) < _utils__WEBPACK_IMPORTED_MODULE_30__["OVERSCAN_SIZE"] / 2 && Math.abs(x.maxRenderHeight - y.maxRenderHeight) < _utils__WEBPACK_IMPORTED_MODULE_30__["OVERSCAN_SIZE"] / 2 && Math.abs(x.offsetY - y.offsetY) < _utils__WEBPACK_IMPORTED_MODULE_30__["OVERSCAN_SIZE"] / 2;
51875
+ }),
51876
+ // 快速滚动检测和处理
51877
+ rxjs_operators__WEBPACK_IMPORTED_MODULE_18__["tap"](function (sizeAndOffset) {
51878
+ // 只有在启用快速滚动时才使用 FastScrollManager 处理滚动事件
51879
+ if (_this3.props.isLowPerformance) {
51880
+ _this3.fastScrollManager.handleScrollEvent(sizeAndOffset, {
51881
+ offsetY: _this3.state.offsetY,
51882
+ maxRenderHeight: _this3.state.maxRenderHeight,
51883
+ maxRenderWidth: _this3.state.maxRenderWidth
51884
+ }, _this3.props.dataSource.length, _this3.domHelper.virtual.scrollHeight);
51885
+ }
51563
51886
  })).subscribe(function (sizeAndOffset) {
51564
- _this2.setState(sizeAndOffset);
51887
+ var _a, _b;
51888
+ // 正常滚动时也需要实时更新 blank 高度,确保缓慢滚动时的视觉连续性
51889
+ var currentRange = _this3.rowHeightManager.getRenderRange(sizeAndOffset.offsetY, sizeAndOffset.maxRenderHeight, _this3.props.dataSource.length);
51890
+ // 直接更新 DOM,避免等待下次渲染
51891
+ (_a = _this3.topBlankRef.current) === null || _a === void 0 ? void 0 : _a.updateHeight(currentRange.topBlank);
51892
+ (_b = _this3.bottomBlankRef.current) === null || _b === void 0 ? void 0 : _b.updateHeight(currentRange.bottomBlank);
51893
+ // 只有在启用快速滚动时才检查快速滚动状态
51894
+ if (_this3.props.isLowPerformance && _this3.fastScrollManager.getIsFastScrolling()) {
51895
+ return;
51896
+ }
51897
+ _this3.setState(sizeAndOffset);
51565
51898
  }));
51566
51899
  this.rootSubscription.add(richVisibleRects$.pipe(rxjs_operators__WEBPACK_IMPORTED_MODULE_18__["map"](function (_ref6) {
51567
51900
  var clipRect = _ref6.clipRect,
@@ -51579,13 +51912,13 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51579
51912
  var _a;
51580
51913
  var offsetY = sizeAndOffset.offsetY,
51581
51914
  maxRenderHeight = sizeAndOffset.maxRenderHeight;
51582
- var scrollDirection = offsetY - _this2.offsetY >= 0 ? 'down' : 'up';
51583
- _this2.offsetY = offsetY;
51584
- var rowCount = _this2.props.dataSource.length;
51585
- var vertical = _this2.rowHeightManager.getRenderRange(offsetY, maxRenderHeight, rowCount);
51915
+ var scrollDirection = offsetY - _this3.offsetY >= 0 ? 'down' : 'up';
51916
+ _this3.offsetY = offsetY;
51917
+ var rowCount = _this3.props.dataSource.length;
51918
+ var vertical = _this3.rowHeightManager.getRenderRange(offsetY, maxRenderHeight, rowCount);
51586
51919
  var topIndex = vertical.topIndex,
51587
51920
  bottomIndex = vertical.bottomIndex;
51588
- var blockSize = ((_a = _this2.props.scrollLoad) === null || _a === void 0 ? void 0 : _a.blockSize) || 200;
51921
+ var blockSize = ((_a = _this3.props.scrollLoad) === null || _a === void 0 ? void 0 : _a.blockSize) || 200;
51589
51922
  var topBlockStartIndex = Math.floor(Math.max(topIndex - 1, 0) / blockSize) * blockSize;
51590
51923
  var bottomBlockStartIndex = Math.floor((bottomIndex + 1) / blockSize) * blockSize;
51591
51924
  return scrollDirection === 'down' ? [topBlockStartIndex, bottomBlockStartIndex] : [bottomBlockStartIndex, topBlockStartIndex];
@@ -51600,7 +51933,7 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51600
51933
  // 过滤掉重复掉值
51601
51934
  rxjs_operators__WEBPACK_IMPORTED_MODULE_18__["distinctUntilChanged"]()).subscribe(function (startIndex) {
51602
51935
  var _a;
51603
- (_a = _this2.props.scrollLoad) === null || _a === void 0 ? void 0 : _a.callback(startIndex);
51936
+ (_a = _this3.props.scrollLoad) === null || _a === void 0 ? void 0 : _a.callback(startIndex);
51604
51937
  }));
51605
51938
  }
51606
51939
  }, {
@@ -51610,6 +51943,10 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51610
51943
  (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
51611
51944
  this.rootSubscription.unsubscribe();
51612
51945
  this.resizeSubject.unsubscribe();
51946
+ // 只有在启用快速滚动时才清理快速滚动管理器
51947
+ if (this.props.isLowPerformance) {
51948
+ this.fastScrollManager.cleanup();
51949
+ }
51613
51950
  }
51614
51951
  /** 更新 DOM 节点的引用,方便其他方法直接操作 DOM */
51615
51952
  }, {
@@ -51673,7 +52010,7 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
51673
52010
  hasLockColumn = _this$lastInfo2.hasLockColumn;
51674
52011
  if (hasLockColumn) {
51675
52012
  var _context;
51676
- var sumOfColWidth = Object(_utils__WEBPACK_IMPORTED_MODULE_29__["sum"])(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_14___default()(_context = flat.full).call(_context, function (col) {
52013
+ var sumOfColWidth = Object(_utils__WEBPACK_IMPORTED_MODULE_30__["sum"])(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_14___default()(_context = flat.full).call(_context, function (col) {
51677
52014
  return col.width;
51678
52015
  }));
51679
52016
  var nextNeedRenderLock = sumOfColWidth > this.domHelper.artTable.clientWidth;
@@ -51704,6 +52041,7 @@ BaseTable.defaultProps = {
51704
52041
  stickyScrollHeight: 'auto',
51705
52042
  useVirtual: 'auto',
51706
52043
  estimatedRowHeight: 48,
52044
+ isLowPerformance: false,
51707
52045
  isLoading: false,
51708
52046
  components: {},
51709
52047
  getTableProps: rxjs__WEBPACK_IMPORTED_MODULE_17__["noop"],
@@ -52706,6 +53044,8 @@ __webpack_require__.r(__webpack_exports__);
52706
53044
  /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3__);
52707
53045
  /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ "./node_modules/@kdcloudjs/table/es/table/utils/index.js");
52708
53046
  /* harmony import */ var _autoFill__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./autoFill */ "./node_modules/@kdcloudjs/table/es/table/pipeline/features/autoFill.js");
53047
+ /* harmony import */ var _utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/touchEventUtils */ "./node_modules/@kdcloudjs/table/es/table/pipeline/features/utils/touchEventUtils.js");
53048
+
52709
53049
 
52710
53050
 
52711
53051
 
@@ -52769,251 +53109,237 @@ function columnDrag() {
52769
53109
  style: style
52770
53110
  });
52771
53111
  },
52772
- headerCellProps: Object(_utils__WEBPACK_IMPORTED_MODULE_4__["mergeCellProps"])(col.headerCellProps, {
52773
- onMouseDown: !isLeaf || path.length > 1 ? undefined : function (e) {
53112
+ headerCellProps: Object(_utils__WEBPACK_IMPORTED_MODULE_4__["mergeCellProps"])(col.headerCellProps, _babel_runtime_corejs3_helpers_extends__WEBPACK_IMPORTED_MODULE_1___default()(_babel_runtime_corejs3_helpers_extends__WEBPACK_IMPORTED_MODULE_1___default()({}, isLeaf && path.length === 1 ? {
53113
+ onMouseDown: function onMouseDown(e) {
52774
53114
  if (e.button !== 0 || !e.currentTarget.contains(e.target)) {
52775
53115
  return;
52776
53116
  }
52777
- window.addEventListener('selectstart', disableSelect);
52778
- // const cx = e.clientX
52779
- // const width = col.width
52780
- // const a = startIndex
52781
- // const b = endIndex
52782
- // const newColumnDragData = [...columnDragData]
52783
- // let newColumn = [...columns]
52784
- // let newStartIndex = startIndex
52785
- // let endIdx = endIndex
52786
- var columnMoved = false;
52787
- var columns = pipeline.getColumns();
52788
- var _pipeline$getStateAtK2 = pipeline.getStateAtKey(stateKey, {}),
52789
- cloumnsTranslateData = _pipeline$getStateAtK2.cloumnsTranslateData;
52790
- var cloumnsSortData = {};
52791
- columns.forEach(function (item, index) {
52792
- cloumnsSortData[item.code] = index;
52793
- });
52794
- var currentTarget = e.currentTarget;
52795
- var rect = e.currentTarget.parentElement.getClientRects()[0];
52796
- var startX = direction === 'rtl' ? rect.right : rect.left;
52797
- var mouseDownClientX = e.clientX;
52798
- var mouseDownClientY = e.clientY;
52799
- var moveData = [];
52800
- var allColumns = Object(_utils__WEBPACK_IMPORTED_MODULE_4__["collectNodes"])(columns);
52801
- var tableBodyClientRect = tableBody.getBoundingClientRect();
52802
- var startScrollLeft = pipeline.ref.current.domHelper.virtual.scrollLeft;
52803
- var updateScrollPosition = function updateScrollPosition(client) {
52804
- var clientX = client.clientX;
52805
- var left = tableBodyClientRect.left,
52806
- width = tableBodyClientRect.width;
52807
- if (clientX + SCROLL_SIZE >= left + width) {
52808
- pipeline.ref.current.domHelper.virtual.scrollLeft += SCROLL_SIZE;
52809
- }
52810
- if (clientX - SCROLL_SIZE <= left) {
52811
- pipeline.ref.current.domHelper.virtual.scrollLeft -= SCROLL_SIZE;
52812
- }
52813
- };
52814
- function handleMouseMove(e) {
52815
- var client = {
52816
- clientX: e.clientX,
52817
- clientY: e.clientY
52818
- };
52819
- var scrollDistance = pipeline.ref.current.domHelper.virtual.scrollLeft - startScrollLeft;
52820
- var startPosition = startX - scrollDistance; // 表头最左边起点
52821
- var offsetDistance = direction === 'rtl' ? startPosition - e.clientX : e.clientX - startPosition;
52822
- updateScrollPosition(client);
52823
- if (offsetDistance < 20) {
52824
- return;
52825
- } else {
52826
- e.stopPropagation();
52827
- }
52828
- document.body.style.userSelect = 'none';
52829
- currentTarget.style.cursor = 'move';
52830
- // 循环计算每一个的位置
52831
- // if (startIndex !== replaceIndex) {
52832
- // const optionColumn = columns[startIndex]
52833
- // const move = startIndex > replaceIndex ? 1 : -1
52834
- // let index = Math.min(startIndex, replaceIndex)
52835
- // while (index < Math.max(startIndex, replaceIndex)) {
52836
- // const code = columns[index].code
52837
- // cloumnsTranslateData[code] += move * optionColumn.width
52838
- // cloumnsTranslateData[optionColumn.code] -= move * optionColumn.width
52839
- // index += move
52840
- // }
52841
- // }
52842
- // const opColumn = columns[startIndex]
52843
- // let index = Math.min(startIndex, replaceIndex)
52844
- // while (index <= Math.max(startIndex, replaceIndex)) {
52845
- // const code = columns[index].code
52846
- // if (index !== startIndex && index !== replaceIndex) {
52847
- // cloumnsTranslateData[code] += opColumn.width * (index > startIndex ? -1 : 1)
52848
- // cloumnsTranslateData[opColumn.code] += columns[index].width * (index < startIndex ? -1 : 1)
52849
- // }
52850
- // index++
52851
- // }
52852
- // 重置位置信息
52853
- cloumnsTranslateData = {};
52854
- allColumns.forEach(function (item) {
52855
- cloumnsTranslateData[item.code] = 0;
52856
- });
52857
- // 计算平移位置
52858
- var replaceIndex = 0;
52859
- var totalWitdth = getColumnWidth(columns[replaceIndex]);
52860
- while (totalWitdth < offsetDistance && replaceIndex < columns.length - 1) {
52861
- replaceIndex++;
52862
- totalWitdth += getColumnWidth(columns[replaceIndex]);
52863
- }
52864
- // 需要取最新startIndex, 不能直接用makeRecursiveMapper提供的startIndex(因为map时还没添加选择列、充满列等后面use添加的列)
52865
- var startIndex;
52866
- columns.forEach(function (column, index) {
52867
- if (column.code === col.code) {
52868
- startIndex = index;
52869
- }
52870
- });
52871
- var optionColumn = columns[startIndex];
52872
- var index = replaceIndex;
52873
- if (startIndex > replaceIndex) {
52874
- // 左移
52875
- while (index < startIndex) {
52876
- var _columns$index = columns[index],
52877
- code = _columns$index.code,
52878
- lock = _columns$index.lock,
52879
- width = _columns$index.width,
52880
- children = _columns$index.children;
52881
- if (enableMove({
52882
- code: code,
52883
- lock: lock
52884
- })) {
52885
- cloumnsTranslateData[code] += _adjustTranslation(optionColumn.width);
52886
- if (Object(_utils__WEBPACK_IMPORTED_MODULE_4__["isLeafNode"])(columns[index])) {
52887
- cloumnsTranslateData[optionColumn.code] -= _adjustTranslation(width);
52888
- } else {
52889
- cloumnsTranslateData[optionColumn.code] -= _adjustTranslation(getColumnWidth(columns[index]));
52890
- moveAllChildren(children, cloumnsTranslateData, _adjustTranslation(optionColumn.width));
52891
- }
52892
- columnMoved = true;
52893
- }
52894
- index++;
52895
- }
52896
- } else if (startIndex < replaceIndex) {
52897
- // 右移
52898
- while (startIndex < index) {
52899
- var _columns$index2 = columns[index],
52900
- _code = _columns$index2.code,
52901
- _lock = _columns$index2.lock,
52902
- _width = _columns$index2.width,
52903
- _children = _columns$index2.children;
52904
- if (enableMove({
52905
- code: _code,
52906
- lock: _lock
52907
- })) {
52908
- cloumnsTranslateData[_code] -= _adjustTranslation(optionColumn.width);
52909
- if (Object(_utils__WEBPACK_IMPORTED_MODULE_4__["isLeafNode"])(columns[index])) {
52910
- cloumnsTranslateData[optionColumn.code] += _adjustTranslation(_width);
52911
- } else {
52912
- cloumnsTranslateData[optionColumn.code] += _adjustTranslation(getColumnWidth(columns[index]));
52913
- moveAllChildren(_children, cloumnsTranslateData, _adjustTranslation(optionColumn.width), true);
52914
- }
52915
- columnMoved = true;
52916
- }
52917
- index--;
53117
+ handlePointerDown(e.nativeEvent, false, e.currentTarget);
53118
+ },
53119
+ onTouchStart: function onTouchStart(e) {
53120
+ // 阻止触摸事件的默认行为
53121
+ if (e.cancelable) {
53122
+ e.preventDefault();
53123
+ }
53124
+ handlePointerDown(e.nativeEvent, true, e.currentTarget);
53125
+ }
53126
+ } : {}), {
53127
+ style: style
53128
+ }))
53129
+ });
53130
+ // 统一的拖拽处理函数
53131
+ function handlePointerDown(startEvent, isTouch, currentTarget) {
53132
+ var _a;
53133
+ window.addEventListener('selectstart', disableSelect);
53134
+ var columnMoved = false;
53135
+ var columns = pipeline.getColumns();
53136
+ var _pipeline$getStateAtK2 = pipeline.getStateAtKey(stateKey, {}),
53137
+ cloumnsTranslateData = _pipeline$getStateAtK2.cloumnsTranslateData;
53138
+ var cloumnsSortData = {};
53139
+ columns.forEach(function (item, index) {
53140
+ cloumnsSortData[item.code] = index;
53141
+ });
53142
+ var rect = (_a = currentTarget.parentElement) === null || _a === void 0 ? void 0 : _a.getClientRects()[0];
53143
+ if (!rect) return;
53144
+ var startX = direction === 'rtl' ? rect.right : rect.left;
53145
+ var startCoordinates = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_6__["getEventCoordinates"])(startEvent);
53146
+ var mouseDownClientX = startCoordinates.clientX;
53147
+ var mouseDownClientY = startCoordinates.clientY;
53148
+ var moveData = [];
53149
+ var allColumns = Object(_utils__WEBPACK_IMPORTED_MODULE_4__["collectNodes"])(columns);
53150
+ var tableBodyClientRect = tableBody.getBoundingClientRect();
53151
+ var startScrollLeft = pipeline.ref.current.domHelper.virtual.scrollLeft;
53152
+ var updateScrollPosition = function updateScrollPosition(client) {
53153
+ var clientX = client.clientX;
53154
+ var left = tableBodyClientRect.left,
53155
+ width = tableBodyClientRect.width;
53156
+ if (clientX + SCROLL_SIZE >= left + width) {
53157
+ pipeline.ref.current.domHelper.virtual.scrollLeft += SCROLL_SIZE;
53158
+ }
53159
+ if (clientX - SCROLL_SIZE <= left) {
53160
+ pipeline.ref.current.domHelper.virtual.scrollLeft -= SCROLL_SIZE;
53161
+ }
53162
+ };
53163
+ function handlePointerMove(e) {
53164
+ // 触摸事件需要阻止默认行为,防止页面滚动
53165
+ if (isTouch && e.cancelable) {
53166
+ e.preventDefault();
53167
+ }
53168
+ var coordinates = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_6__["getEventCoordinates"])(e);
53169
+ var client = {
53170
+ clientX: coordinates.clientX,
53171
+ clientY: coordinates.clientY
53172
+ };
53173
+ var scrollDistance = pipeline.ref.current.domHelper.virtual.scrollLeft - startScrollLeft;
53174
+ var startPosition = startX - scrollDistance; // 表头最左边起点
53175
+ var offsetDistance = direction === 'rtl' ? startPosition - coordinates.clientX : coordinates.clientX - startPosition;
53176
+ updateScrollPosition(client);
53177
+ if (offsetDistance < 20) {
53178
+ return;
53179
+ } else {
53180
+ e.stopPropagation();
53181
+ }
53182
+ document.body.style.userSelect = 'none';
53183
+ currentTarget.style.cursor = 'move';
53184
+ // 重置位置信息
53185
+ cloumnsTranslateData = {};
53186
+ allColumns.forEach(function (item) {
53187
+ cloumnsTranslateData[item.code] = 0;
53188
+ });
53189
+ // 计算平移位置
53190
+ var replaceIndex = 0;
53191
+ var totalWitdth = getColumnWidth(columns[replaceIndex]);
53192
+ while (totalWitdth < offsetDistance && replaceIndex < columns.length - 1) {
53193
+ replaceIndex++;
53194
+ totalWitdth += getColumnWidth(columns[replaceIndex]);
53195
+ }
53196
+ // 需要取最新startIndex, 不能直接用makeRecursiveMapper提供的startIndex(因为map时还没添加选择列、充满列等后面use添加的列)
53197
+ var startIndex;
53198
+ columns.forEach(function (column, index) {
53199
+ if (column.code === col.code) {
53200
+ startIndex = index;
53201
+ }
53202
+ });
53203
+ var optionColumn = columns[startIndex];
53204
+ var index = replaceIndex;
53205
+ if (startIndex > replaceIndex) {
53206
+ // 左移
53207
+ while (index < startIndex) {
53208
+ var _columns$index = columns[index],
53209
+ code = _columns$index.code,
53210
+ lock = _columns$index.lock,
53211
+ width = _columns$index.width,
53212
+ children = _columns$index.children;
53213
+ if (enableMove({
53214
+ code: code,
53215
+ lock: lock
53216
+ })) {
53217
+ cloumnsTranslateData[code] += _adjustTranslation(optionColumn.width);
53218
+ if (Object(_utils__WEBPACK_IMPORTED_MODULE_4__["isLeafNode"])(columns[index])) {
53219
+ cloumnsTranslateData[optionColumn.code] -= _adjustTranslation(width);
53220
+ } else {
53221
+ cloumnsTranslateData[optionColumn.code] -= _adjustTranslation(getColumnWidth(columns[index]));
53222
+ moveAllChildren(children, cloumnsTranslateData, _adjustTranslation(optionColumn.width));
52918
53223
  }
53224
+ columnMoved = true;
52919
53225
  }
52920
- window.requestAnimationFrame(function () {
52921
- pipeline.setStateAtKey(stateKey, {
52922
- cloumnsTranslateData: cloumnsTranslateData
52923
- });
52924
- moveData = [startIndex, replaceIndex];
52925
- });
53226
+ index++;
52926
53227
  }
52927
- function handleMouseUp(e) {
52928
- document.body.removeEventListener('mousemove', handleMouseMove);
52929
- document.body.removeEventListener('mouseup', handleMouseUp);
52930
- window.removeEventListener('selectstart', disableSelect);
52931
- if (_isMoveWhenClicking(mouseDownClientX, mouseDownClientY, e.clientX, e.clientY)) {
52932
- e.stopPropagation(); // 存在移动就阻止冒泡
52933
- currentTarget.addEventListener('click', stopClickPropagation); // 阻止列头点击事件,防止拖动后触发列头过滤事件
53228
+ } else if (startIndex < replaceIndex) {
53229
+ // 右移
53230
+ while (startIndex < index) {
53231
+ var _columns$index2 = columns[index],
53232
+ _code = _columns$index2.code,
53233
+ _lock = _columns$index2.lock,
53234
+ _width = _columns$index2.width,
53235
+ _children = _columns$index2.children;
53236
+ if (enableMove({
53237
+ code: _code,
53238
+ lock: _lock
53239
+ })) {
53240
+ cloumnsTranslateData[_code] -= _adjustTranslation(optionColumn.width);
53241
+ if (Object(_utils__WEBPACK_IMPORTED_MODULE_4__["isLeafNode"])(columns[index])) {
53242
+ cloumnsTranslateData[optionColumn.code] += _adjustTranslation(_width);
53243
+ } else {
53244
+ cloumnsTranslateData[optionColumn.code] += _adjustTranslation(getColumnWidth(columns[index]));
53245
+ moveAllChildren(_children, cloumnsTranslateData, _adjustTranslation(optionColumn.width), true);
53246
+ }
53247
+ columnMoved = true;
52934
53248
  }
53249
+ index--;
53250
+ }
53251
+ }
53252
+ window.requestAnimationFrame(function () {
53253
+ pipeline.setStateAtKey(stateKey, {
53254
+ cloumnsTranslateData: cloumnsTranslateData
53255
+ });
53256
+ moveData = [startIndex, replaceIndex];
53257
+ });
53258
+ }
53259
+ function handlePointerUp(e) {
53260
+ Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_6__["removePointerEventListeners"])(document.body, {
53261
+ onPointerMove: handlePointerMove,
53262
+ onPointerUp: handlePointerUp
53263
+ }, isTouch);
53264
+ window.removeEventListener('selectstart', disableSelect);
53265
+ var endCoordinates = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_6__["getEventCoordinates"])(e);
53266
+ if (Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_6__["hasMovedEnough"])(mouseDownClientX, mouseDownClientY, endCoordinates.clientX, endCoordinates.clientY)) {
53267
+ e.stopPropagation(); // 存在移动就阻止冒泡
53268
+ currentTarget.addEventListener('click', stopClickPropagation); // 阻止列头点击事件,防止拖动后触发列头过滤事件
53269
+ }
52935
53270
 
52936
- window.requestAnimationFrame(function () {
52937
- // 取消阻止列头点击事件
52938
- currentTarget.removeEventListener('click', stopClickPropagation);
52939
- currentTarget = null;
52940
- var _moveData = moveData,
52941
- _moveData2 = _babel_runtime_corejs3_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_moveData, 2),
52942
- startIndex = _moveData2[0],
52943
- replaceIndex = _moveData2[1];
52944
- var optionColumn = columns[startIndex];
52945
- // const move = startIndex > replaceIndex ? 1 : -1
52946
- // let index = Math.min(startIndex, replaceIndex)
52947
- // while (index < Math.max(startIndex, replaceIndex) && index > 0) {
52948
- // const code = columns[index].code
52949
- // cloumnsSortData[optionColumn.code] -= move
52950
- // cloumnsSortData[code] += move
52951
- // index += move
52952
- // }
52953
- var index = replaceIndex;
52954
- if (startIndex > replaceIndex) {
52955
- // 左移
52956
- while (index < startIndex) {
52957
- var _columns$index3 = columns[index],
52958
- code = _columns$index3.code,
52959
- lock = _columns$index3.lock;
52960
- if (enableMove({
52961
- code: code,
52962
- lock: lock
52963
- })) {
52964
- cloumnsSortData[code] += 1;
52965
- cloumnsSortData[optionColumn.code] -= 1;
52966
- columnMoved = true;
52967
- }
52968
- index++;
52969
- }
52970
- } else if (startIndex < replaceIndex) {
52971
- // 右移
52972
- while (index > startIndex) {
52973
- var _columns$index4 = columns[index],
52974
- _code2 = _columns$index4.code,
52975
- _lock2 = _columns$index4.lock;
52976
- if (enableMove({
52977
- code: _code2,
52978
- lock: _lock2
52979
- })) {
52980
- cloumnsSortData[_code2] -= 1;
52981
- cloumnsSortData[optionColumn.code] += 1;
52982
- columnMoved = true;
52983
- }
52984
- index--;
52985
- }
53271
+ window.requestAnimationFrame(function () {
53272
+ // 取消阻止列头点击事件
53273
+ currentTarget.removeEventListener('click', stopClickPropagation);
53274
+ currentTarget = null;
53275
+ var _moveData = moveData,
53276
+ _moveData2 = _babel_runtime_corejs3_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_moveData, 2),
53277
+ startIndex = _moveData2[0],
53278
+ replaceIndex = _moveData2[1];
53279
+ var optionColumn = columns[startIndex];
53280
+ var index = replaceIndex;
53281
+ if (startIndex > replaceIndex) {
53282
+ // 左移
53283
+ while (index < startIndex) {
53284
+ var _columns$index3 = columns[index],
53285
+ code = _columns$index3.code,
53286
+ lock = _columns$index3.lock;
53287
+ if (enableMove({
53288
+ code: code,
53289
+ lock: lock
53290
+ })) {
53291
+ cloumnsSortData[code] += 1;
53292
+ cloumnsSortData[optionColumn.code] -= 1;
53293
+ columnMoved = true;
52986
53294
  }
52987
- var onColumnDragStopped = opts.onColumnDragStopped;
52988
- // 拖拽结束返回列顺序
52989
- if (onColumnDragStopped) {
52990
- var _context;
52991
- var isRowDragColumn = function isRowDragColumn(code) {
52992
- var rowDragColumnKey = pipeline.getFeatureOptions('rowDragColumnKey');
52993
- return code === rowDragColumnKey;
52994
- };
52995
- var newColumns = _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3___default()(_context = sortColumns(columns, cloumnsSortData)).call(_context, function (column) {
52996
- return column.code !== _autoFill__WEBPACK_IMPORTED_MODULE_5__["FILL_COLUMN_CODE"] && !isRowDragColumn(column.code) && !Object(_utils__WEBPACK_IMPORTED_MODULE_4__["isSelectColumn"])(column);
52997
- });
52998
- // TODO drag需要在resize之后use,否则这里返回的列对应的宽度不是拖拽后的
52999
- onColumnDragStopped(columnMoved, newColumns);
53295
+ index++;
53296
+ }
53297
+ } else if (startIndex < replaceIndex) {
53298
+ // 右移
53299
+ while (index > startIndex) {
53300
+ var _columns$index4 = columns[index],
53301
+ _code2 = _columns$index4.code,
53302
+ _lock2 = _columns$index4.lock;
53303
+ if (enableMove({
53304
+ code: _code2,
53305
+ lock: _lock2
53306
+ })) {
53307
+ cloumnsSortData[_code2] -= 1;
53308
+ cloumnsSortData[optionColumn.code] += 1;
53309
+ columnMoved = true;
53000
53310
  }
53001
- pipeline.setStateAtKey(stateKey, {
53002
- cloumnsTranslateData: null
53003
- });
53311
+ index--;
53312
+ }
53313
+ }
53314
+ var onColumnDragStopped = opts.onColumnDragStopped;
53315
+ // 拖拽结束返回列顺序
53316
+ if (onColumnDragStopped) {
53317
+ var _context;
53318
+ var isRowDragColumn = function isRowDragColumn(code) {
53319
+ var rowDragColumnKey = pipeline.getFeatureOptions('rowDragColumnKey');
53320
+ return code === rowDragColumnKey;
53321
+ };
53322
+ var newColumns = _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3___default()(_context = sortColumns(columns, cloumnsSortData)).call(_context, function (column) {
53323
+ return column.code !== _autoFill__WEBPACK_IMPORTED_MODULE_5__["FILL_COLUMN_CODE"] && !isRowDragColumn(column.code) && !Object(_utils__WEBPACK_IMPORTED_MODULE_4__["isSelectColumn"])(column);
53004
53324
  });
53005
- document.body.style.userSelect = '';
53006
- currentTarget.style.opacity = '';
53007
- currentTarget.style.cursor = '';
53325
+ // TODO drag需要在resize之后use,否则这里返回的列对应的宽度不是拖拽后的
53326
+ onColumnDragStopped(columnMoved, newColumns);
53008
53327
  }
53009
- var onColumnDragStart = opts.onColumnDragStart;
53010
- onColumnDragStart && onColumnDragStart(col);
53011
- document.body.addEventListener('mousemove', handleMouseMove);
53012
- document.body.addEventListener('mouseup', handleMouseUp);
53013
- },
53014
- style: style
53015
- })
53016
- });
53328
+ pipeline.setStateAtKey(stateKey, {
53329
+ cloumnsTranslateData: null
53330
+ });
53331
+ });
53332
+ document.body.style.userSelect = '';
53333
+ currentTarget.style.opacity = '';
53334
+ currentTarget.style.cursor = '';
53335
+ }
53336
+ var onColumnDragStart = opts.onColumnDragStart;
53337
+ onColumnDragStart && onColumnDragStart(col);
53338
+ Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_6__["addPointerEventListeners"])(document.body, {
53339
+ onPointerMove: handlePointerMove,
53340
+ onPointerUp: handlePointerUp
53341
+ }, isTouch);
53342
+ }
53017
53343
  }));
53018
53344
  };
53019
53345
  }
@@ -53042,15 +53368,6 @@ function moveAllChildren(cols, cloumnsTranslateData, width, isMinus) {
53042
53368
  }
53043
53369
  });
53044
53370
  }
53045
- function _isMoveWhenClicking(mouseDownClientX, mouseDownClientY, mouseUpClientX, mouseUpClientY) {
53046
- var xDiff = mouseUpClientX - mouseDownClientX;
53047
- var yDiff = mouseUpClientY - mouseDownClientY;
53048
- // 鼠标点按和松开的偏移量大于5px,认为存在移动
53049
- if (Math.sqrt(xDiff * xDiff + yDiff * yDiff) > 5) {
53050
- return true;
53051
- }
53052
- return false;
53053
- }
53054
53371
 
53055
53372
  /***/ }),
53056
53373
 
@@ -53452,6 +53769,7 @@ __webpack_require__.r(__webpack_exports__);
53452
53769
  /* harmony import */ var _internals__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../internals */ "./node_modules/@kdcloudjs/table/es/table/internals.js");
53453
53770
  /* harmony import */ var _base_styles__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../base/styles */ "./node_modules/@kdcloudjs/table/es/table/base/styles.js");
53454
53771
  /* harmony import */ var _base_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../base/utils */ "./node_modules/@kdcloudjs/table/es/table/base/utils.js");
53772
+ /* harmony import */ var _utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./utils/touchEventUtils */ "./node_modules/@kdcloudjs/table/es/table/pipeline/features/utils/touchEventUtils.js");
53455
53773
 
53456
53774
 
53457
53775
  var _templateObject, _templateObject2;
@@ -53466,6 +53784,7 @@ var _templateObject, _templateObject2;
53466
53784
 
53467
53785
 
53468
53786
 
53787
+
53469
53788
  var TableHeaderCellResize = styled_components__WEBPACK_IMPORTED_MODULE_6__["default"].div(_templateObject || (_templateObject = _babel_runtime_corejs3_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_1___default()(["\n position: absolute;\n top: 0;\n ", ": -5px;\n height: 100%;\n width: 10px;\n cursor: ew-resize;\n display: flex;\n flex-direction: column;\n align-items: center;\n z-index:1;\n\n &:after {\n content: \"\";\n position: absolute;\n display: block;\n ", ": calc(50% - 1px);\n width: 1px;\n height: calc(100% - 14px);\n top: 7px;\n }\n"])), function (props) {
53470
53789
  return Object(_base_utils__WEBPACK_IMPORTED_MODULE_12__["swapRTLDirection"])(props.direction, 'right');
53471
53790
  }, function (props) {
@@ -53519,10 +53838,12 @@ function columnResize() {
53519
53838
  var _a;
53520
53839
  (_a = opts.doubleClickCallback) === null || _a === void 0 ? void 0 : _a.call(opts, e, col);
53521
53840
  };
53522
- var handleMouseDown = function handleMouseDown(e, col) {
53841
+ // 通用的拖拽处理逻辑
53842
+ var handleResize = function handleResize(startEvent, col, eventType) {
53523
53843
  window.addEventListener('selectstart', disableSelect);
53524
53844
  var changedColumnSize = {};
53525
- var startX = e.clientX;
53845
+ var startCoordinates = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_13__["getEventCoordinates"])(startEvent);
53846
+ var startX = startCoordinates.clientX;
53526
53847
  var children = col.children,
53527
53848
  code = col.code,
53528
53849
  _col$features = col.features,
@@ -53533,9 +53854,22 @@ function columnResize() {
53533
53854
  var realMaxSize = typeof maxWidth === 'number' ? maxWidth : maxSize;
53534
53855
  var columnSize = pipeline.getFeatureOptions(COLUMN_SIZE_KEY);
53535
53856
  var recordColumnSize = columnSize;
53536
- e.stopPropagation();
53537
- var nextSize$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_7__["fromEvent"])(window, 'mousemove').pipe(rxjs_operators__WEBPACK_IMPORTED_MODULE_8__["takeUntil"](Object(rxjs__WEBPACK_IMPORTED_MODULE_7__["fromEvent"])(window, 'mouseup')), rxjs_operators__WEBPACK_IMPORTED_MODULE_8__["map"](function (e) {
53538
- var movingX = e.clientX;
53857
+ // 根据事件类型选择不同的事件监听器
53858
+ var moveEventName = eventType === 'mouse' ? 'mousemove' : 'touchmove';
53859
+ var endEventName = eventType === 'mouse' ? 'mouseup' : 'touchend';
53860
+ var moveEventOptions = eventType === 'touch' ? {
53861
+ passive: false
53862
+ } : undefined;
53863
+ var endEventOptions = eventType === 'touch' ? {
53864
+ passive: false
53865
+ } : undefined;
53866
+ var nextSize$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_7__["fromEvent"])(window, moveEventName, moveEventOptions).pipe(rxjs_operators__WEBPACK_IMPORTED_MODULE_8__["takeUntil"](Object(rxjs__WEBPACK_IMPORTED_MODULE_7__["fromEvent"])(window, endEventName, endEventOptions)), rxjs_operators__WEBPACK_IMPORTED_MODULE_8__["map"](function (e) {
53867
+ // 触摸事件需要阻止默认行为,防止页面滚动
53868
+ if (eventType === 'touch' && e.cancelable) {
53869
+ e.preventDefault();
53870
+ }
53871
+ var coordinates = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_13__["getEventCoordinates"])(e);
53872
+ var movingX = coordinates.clientX;
53539
53873
  var nextColumnSize = _babel_runtime_corejs3_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({}, columnSize);
53540
53874
  var deltaSum = pipeline.ctx.direction === 'rtl' ? startX - movingX : movingX - startX;
53541
53875
  var deltaRemaining = deltaSum;
@@ -53593,6 +53927,19 @@ function columnResize() {
53593
53927
  }
53594
53928
  });
53595
53929
  };
53930
+ var handleMouseDown = function handleMouseDown(e, col) {
53931
+ e.stopPropagation();
53932
+ handleResize(e.nativeEvent, col, 'mouse');
53933
+ };
53934
+ // 触摸事件处理函数
53935
+ var handleTouchStart = function handleTouchStart(e, col) {
53936
+ // 阻止触摸事件的默认行为
53937
+ if (e.cancelable) {
53938
+ e.preventDefault();
53939
+ }
53940
+ e.stopPropagation();
53941
+ handleResize(e.nativeEvent, col, 'touch');
53942
+ };
53596
53943
  var isGroup = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["isGroupColumn"])(pipeline.getColumns());
53597
53944
  return pipeline.mapColumns(Object(_utils__WEBPACK_IMPORTED_MODULE_9__["makeRecursiveMapper"])(function (col) {
53598
53945
  var _a;
@@ -53610,6 +53957,9 @@ function columnResize() {
53610
53957
  },
53611
53958
  onMouseDown: function onMouseDown(e) {
53612
53959
  return handleMouseDown(e, col);
53960
+ },
53961
+ onTouchStart: function onTouchStart(e) {
53962
+ return handleTouchStart(e, col);
53613
53963
  }
53614
53964
  }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(TableHeaderCellResize, {
53615
53965
  direction: pipeline.ctx.direction,
@@ -53619,6 +53969,9 @@ function columnResize() {
53619
53969
  },
53620
53970
  onMouseDown: function onMouseDown(e) {
53621
53971
  return handleMouseDown(e, col);
53972
+ },
53973
+ onTouchStart: function onTouchStart(e) {
53974
+ return handleTouchStart(e, col);
53622
53975
  }
53623
53976
  }))),
53624
53977
  headerCellProps: Object(_utils__WEBPACK_IMPORTED_MODULE_9__["mergeCellProps"])(col.headerCellProps, {
@@ -55958,6 +56311,8 @@ __webpack_require__.r(__webpack_exports__);
55958
56311
  /* harmony import */ var _base_styles__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../base/styles */ "./node_modules/@kdcloudjs/table/es/table/base/styles.js");
55959
56312
  /* harmony import */ var _const__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../const */ "./node_modules/@kdcloudjs/table/es/table/pipeline/const.js");
55960
56313
  /* harmony import */ var _internals__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../internals */ "./node_modules/@kdcloudjs/table/es/table/internals.js");
56314
+ /* harmony import */ var _utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utils/touchEventUtils */ "./node_modules/@kdcloudjs/table/es/table/pipeline/features/utils/touchEventUtils.js");
56315
+
55961
56316
 
55962
56317
 
55963
56318
 
@@ -55989,15 +56344,14 @@ var defaultRowDragColumn = {
55989
56344
  },
55990
56345
  render: function render(value, row, rowIndex) {
55991
56346
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement("svg", {
55992
- viewBox: '0 0 1024 1024',
55993
- version: '1.1',
55994
- xmlns: 'http://www.w3.org/1999/xlink',
55995
- "data-icon": 'drag',
55996
- width: '16',
55997
- height: '16'
56347
+ viewBox: "0 0 1024 1024",
56348
+ version: "1.1",
56349
+ xmlns: "http://www.w3.org/1999/xlink",
56350
+ "data-icon": "drag",
56351
+ width: "16",
56352
+ height: "16"
55998
56353
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement("path", {
55999
- d: 'M298.688 192a64 64 0 1 0 128 0 64 64 0 0 0-128 0z m298.624 0a64 64 0 1 0 128 0 64 64 0 0 0-128 0zM298.688 512a64 64 0 1 0 128 0 64 64 0 0 0-128 0z m298.624 0a64 64 0 1 0 128 0 64 64 0 0 0-128 0z m-298.624 320a64 64 0 1 0 128 0 64 64 0 0 0-128 0z m298.624 0a64 64 0 1 0 128 0 64 64 0 0 0-128 0z',
56000
- "p-id": '4278'
56354
+ d: "M298.688 192a64 64 0 1 0 128 0 64 64 0 0 0-128 0z m298.624 0a64 64 0 1 0 128 0 64 64 0 0 0-128 0zM298.688 512a64 64 0 1 0 128 0 64 64 0 0 0-128 0z m298.624 0a64 64 0 1 0 128 0 64 64 0 0 0-128 0z m-298.624 320a64 64 0 1 0 128 0 64 64 0 0 0-128 0z m298.624 0a64 64 0 1 0 128 0 64 64 0 0 0-128 0z"
56001
56355
  }));
56002
56356
  }
56003
56357
  };
@@ -56027,19 +56381,19 @@ function rowDrag(opt) {
56027
56381
  var treeModeOptions = getTreeModeOptions();
56028
56382
  var rowDragOptions = getRowDragOptions();
56029
56383
  var allowDragIntoRow = !!treeModeOptions && (rowDragOptions === null || rowDragOptions === void 0 ? void 0 : rowDragOptions.allowDragIntoRow);
56030
- var isLeave = !isMouseOnDropTarget(event, dropZoneTarget);
56384
+ var isLeave = !isPointerOnDropTarget(event, dropZoneTarget);
56031
56385
  var overIndex = -1;
56032
56386
  var direction = 'bottom';
56033
56387
  if (!isLeave && dataSource.length > 0) {
56034
- var overDragItem = getDragRowItem(event.target, dropZoneTarget, dataSource);
56388
+ var overDragItem = getDragRowItem(Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["getEventTarget"])(event), dropZoneTarget, dataSource);
56035
56389
  if (overDragItem) {
56036
56390
  var rowIndex = overDragItem.rowIndex,
56037
56391
  cell = overDragItem.cell;
56038
56392
  overIndex = rowIndex;
56039
- direction = getDirection(cell, event.clientY, allowDragIntoRow);
56393
+ direction = getDirection(cell, Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["getEventCoordinates"])(event).clientY, allowDragIntoRow);
56040
56394
  }
56041
56395
  }
56042
- if (overIndex === -1 && dataSource.length > 0 && dropZoneTarget.contains(event.target)) {
56396
+ if (overIndex === -1 && dataSource.length > 0 && dropZoneTarget.contains(Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["getEventTarget"])(event))) {
56043
56397
  overIndex = dataSource.length - 1;
56044
56398
  direction = 'bottom';
56045
56399
  }
@@ -56115,9 +56469,25 @@ function rowDrag(opt) {
56115
56469
  }
56116
56470
  };
56117
56471
  var onMouseDown = function onMouseDown(event) {
56472
+ handlePointerDown(event.nativeEvent);
56473
+ };
56474
+ // PC 单据移动端显示,兼容移动端的拖拽事件
56475
+ var onTouchStart = function onTouchStart(event) {
56476
+ // 尝试阻止触摸事件的默认行为,防止页面滚动
56477
+ try {
56478
+ if (event.cancelable) {
56479
+ event.preventDefault();
56480
+ }
56481
+ } catch (error) {
56482
+ // 忽略passive event listener错误
56483
+ console.warn('preventDefault failed in passive touch event listener');
56484
+ }
56485
+ handlePointerDown(event.nativeEvent);
56486
+ };
56487
+ // 统一的拖拽处理函数
56488
+ var handlePointerDown = function handlePointerDown(startEvent) {
56118
56489
  var _a;
56119
- var mouseDownEvent = event.nativeEvent;
56120
- var startDataItem = getDragRowItem(mouseDownEvent.target, tableBody, dataSource);
56490
+ var startDataItem = getDragRowItem(Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["getEventTarget"])(startEvent), tableBody, dataSource);
56121
56491
  if (!startDataItem || startDataItem.code !== rowDragColumn.code) return;
56122
56492
  if ((_a = opt === null || opt === void 0 ? void 0 : opt.isDisabled) === null || _a === void 0 ? void 0 : _a.call(opt, startDataItem.row, startDataItem.rowIndex)) return;
56123
56493
  var isValidDrag = false;
@@ -56129,7 +56499,7 @@ function rowDrag(opt) {
56129
56499
  var intervalId = null;
56130
56500
  var expandRowTimeoutId = null;
56131
56501
  var expandRowCallBackList = [];
56132
- var updateScrollPosition = function updateScrollPosition(tableBody, mouseMoveEvent) {
56502
+ var updateScrollPosition = function updateScrollPosition(tableBody, moveEvent) {
56133
56503
  if (opt === null || opt === void 0 ? void 0 : opt.suppressScrollMove) return;
56134
56504
  if (timeoutId) {
56135
56505
  clearTimeout(timeoutId);
@@ -56138,7 +56508,7 @@ function rowDrag(opt) {
56138
56508
  clearInterval(intervalId);
56139
56509
  }
56140
56510
  if (!tableBody) return;
56141
- var moveOffset = getScrollMoveOffset(tableBody, mouseMoveEvent);
56511
+ var moveOffset = getScrollMoveOffset(tableBody, moveEvent);
56142
56512
  if (moveOffset === 0) {
56143
56513
  return;
56144
56514
  }
@@ -56148,30 +56518,53 @@ function rowDrag(opt) {
56148
56518
  }, 50);
56149
56519
  }, 500);
56150
56520
  };
56151
- var handleDragStart = function handleDragStart(mouseDownEvent) {
56521
+ var handleDragStart = function handleDragStart(event) {
56152
56522
  var _a;
56153
- dragElement = createDragElement(mouseDownEvent, tableBody); // 创建拖拽悬浮框
56523
+ // 屏蔽默认事件,防止文本选择、框选等
56524
+ try {
56525
+ if (event.cancelable) {
56526
+ event.preventDefault();
56527
+ }
56528
+ } catch (error) {
56529
+ // 忽略passive event listener错误
56530
+ console.warn('preventDefault failed in passive event listener');
56531
+ }
56532
+ // 禁用页面的文本选择
56533
+ document.body.style.userSelect = 'none';
56534
+ document.body.style.webkitUserSelect = 'none';
56535
+ // 添加拖拽状态的CSS类,可以在样式中进一步控制
56536
+ document.body.classList.add('row-dragging');
56537
+ dragElement = createDragElement(event, tableBody); // 创建拖拽悬浮框
56154
56538
  var isTreeTable = !!pipeline.getFeatureOptions('treeModeOptions');
56155
56539
  dragLine = createDragLine(isTreeTable); // 创建拖拽插入指示线
56156
56540
  var dragText = (opt === null || opt === void 0 ? void 0 : opt.rowDragText) ? (_a = opt === null || opt === void 0 ? void 0 : opt.rowDragText) === null || _a === void 0 ? void 0 : _a.call(opt, startDataItem.row, startDataItem.rowIndex) : "\u7B2C".concat(startDataItem.rowIndex, "\u884C\u5185\u5BB9");
56157
56541
  setDragText(dragElement, dragText); // 设置悬浮框显示文本
56158
56542
  artTable.classList.add(classnames__WEBPACK_IMPORTED_MODULE_8___default()(_base_styles__WEBPACK_IMPORTED_MODULE_9__["Classes"].rowDragging));
56159
56543
  rowDragApi.setDragStatus('start');
56160
- var dragEvent = createDropTargetEvent(currentDropZone, mouseDownEvent, startDataItem, currentDropZone);
56544
+ var dragEvent = createDropTargetEvent(currentDropZone, event, startDataItem, currentDropZone);
56161
56545
  onDragStart(dragEvent);
56162
56546
  };
56163
- var handleDragMove = function handleDragMove(mouseMoveEvent) {
56547
+ var handleDragMove = function handleDragMove(moveEvent) {
56164
56548
  var _a;
56549
+ // 尝试屏蔽默认事件,在passive监听器中可能会失败
56550
+ try {
56551
+ if (moveEvent.cancelable) {
56552
+ moveEvent.preventDefault();
56553
+ }
56554
+ } catch (error) {
56555
+ // 忽略passive event listener错误
56556
+ console.warn('preventDefault failed in passive event listener');
56557
+ }
56165
56558
  var isRTL = pipeline.ctx.direction === 'rtl';
56166
- positionDragElemment(dragElement, mouseMoveEvent, isRTL); // 更新拖拽悬浮框位置
56559
+ positionDragElemment(dragElement, moveEvent, isRTL); // 更新拖拽悬浮框位置
56167
56560
  rowDragApi.setDragStatus('dragging');
56168
56561
  setDragElementIcon(dragElement, 'move');
56169
56562
  var rowDropZones = rowDragApi.getRowDropZone();
56170
56563
  var validDropZones = _babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_1___default()(rowDropZones).call(rowDropZones, currentDropZone); // 可放置区域加上自身
56171
56564
  var dropTarget = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_2___default()(validDropZones).call(validDropZones, function (zone) {
56172
- return isMouseOnDropTarget(mouseMoveEvent, zone.getContainer());
56565
+ return isPointerOnDropTarget(moveEvent, zone.getContainer());
56173
56566
  }) || null;
56174
- updateScrollPosition(dropTarget === null || dropTarget === void 0 ? void 0 : dropTarget.getContainer(), mouseMoveEvent); // 拖拽到底时让滚动条可以滚动
56567
+ updateScrollPosition(dropTarget === null || dropTarget === void 0 ? void 0 : dropTarget.getContainer(), moveEvent); // 拖拽到底时让滚动条可以滚动
56175
56568
  if (dropTarget !== lastDropTarget) {
56176
56569
  // 拖拽离开表格
56177
56570
  if (lastDropTarget !== null && dropTarget === null) {
@@ -56179,7 +56572,7 @@ function rowDrag(opt) {
56179
56572
  setDragElementIcon(dragElement, 'notAllowed');
56180
56573
  hiddenDragLine(dragLine);
56181
56574
  lastDropTarget.getContainer().classList.remove(_base_styles__WEBPACK_IMPORTED_MODULE_9__["Classes"].rowDragNoData);
56182
- var dragEvent = createDropTargetEvent(lastDropTarget, mouseMoveEvent, startDataItem, currentDropZone);
56575
+ var dragEvent = createDropTargetEvent(lastDropTarget, moveEvent, startDataItem, currentDropZone);
56183
56576
  lastDropTarget.onDragLeave(dragEvent);
56184
56577
  }
56185
56578
  }
@@ -56199,7 +56592,7 @@ function rowDrag(opt) {
56199
56592
  dragLine.classList.remove(_base_styles__WEBPACK_IMPORTED_MODULE_9__["Classes"].treeTableRowDragLine);
56200
56593
  }
56201
56594
  }
56202
- var _dragEvent = createDropTargetEvent(dropTarget, mouseMoveEvent, startDataItem, currentDropZone);
56595
+ var _dragEvent = createDropTargetEvent(dropTarget, moveEvent, startDataItem, currentDropZone);
56203
56596
  dropTarget.onDragEnter(_dragEvent);
56204
56597
  }
56205
56598
  }
@@ -56211,7 +56604,7 @@ function rowDrag(opt) {
56211
56604
  positionDragLine({
56212
56605
  lineElement: dragLine,
56213
56606
  dragZone: dropTarget,
56214
- event: mouseMoveEvent,
56607
+ event: moveEvent,
56215
56608
  isRTL: isRTL
56216
56609
  });
56217
56610
  }
@@ -56228,7 +56621,7 @@ function rowDrag(opt) {
56228
56621
  onCollapse = treeModeOptions.onCollapse;
56229
56622
  // 鼠标悬停所在的拖拽行信息
56230
56623
  var dataSource = dropTarget.tableParams.getDataSource();
56231
- var dragItem = getDragRowItem(mouseMoveEvent.target, dropTarget.getContainer(), dataSource);
56624
+ var dragItem = getDragRowItem(Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["getEventTarget"])(moveEvent), dropTarget.getContainer(), dataSource);
56232
56625
  if (!dragItem) return;
56233
56626
  var row = dragItem.row;
56234
56627
  var _row$treeMetaKey = row[treeMetaKey],
@@ -56243,15 +56636,20 @@ function rowDrag(opt) {
56243
56636
  }, 1000);
56244
56637
  }
56245
56638
  if (dropTarget.onDragging) {
56246
- var _dragEvent2 = createDropTargetEvent(dropTarget, mouseMoveEvent, startDataItem, currentDropZone);
56639
+ var _dragEvent2 = createDropTargetEvent(dropTarget, moveEvent, startDataItem, currentDropZone);
56247
56640
  dropTarget.onDragging(_dragEvent2);
56248
56641
  }
56249
56642
  }
56250
56643
  };
56251
- var handleDragStop = function handleDragStop(mouseUpEvent) {
56644
+ var handleDragStop = function handleDragStop(endEvent) {
56252
56645
  if (!isValidDrag) {
56253
56646
  return;
56254
56647
  }
56648
+ // 恢复默认的文本选择功能
56649
+ document.body.style.userSelect = '';
56650
+ document.body.style.webkitUserSelect = '';
56651
+ // 移除拖拽状态的CSS类
56652
+ document.body.classList.remove('row-dragging');
56255
56653
  removeElement(dragElement);
56256
56654
  removeElement(dragLine);
56257
56655
  artTable.classList.remove(classnames__WEBPACK_IMPORTED_MODULE_8___default()(_base_styles__WEBPACK_IMPORTED_MODULE_9__["Classes"].rowDragging));
@@ -56266,10 +56664,10 @@ function rowDrag(opt) {
56266
56664
  });
56267
56665
  var validDropZones = _babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_1___default()(rowDropZones).call(rowDropZones, currentDropZone);
56268
56666
  var dropTarget = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_2___default()(validDropZones).call(validDropZones, function (zone) {
56269
- return isMouseOnDropTarget(mouseUpEvent, zone.getContainer());
56667
+ return isPointerOnDropTarget(endEvent, zone.getContainer());
56270
56668
  });
56271
56669
  if (dropTarget && dropTarget.onDragStop) {
56272
- var dragEvent = createDropTargetEvent(dropTarget, mouseUpEvent, startDataItem, currentDropZone);
56670
+ var dragEvent = createDropTargetEvent(dropTarget, endEvent, startDataItem, currentDropZone);
56273
56671
  dropTarget.onDragStop(dragEvent);
56274
56672
  }
56275
56673
  while (expandRowCallBackList.length > 0) {
@@ -56277,32 +56675,73 @@ function rowDrag(opt) {
56277
56675
  callback();
56278
56676
  }
56279
56677
  };
56280
- var mousemove$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_6__["fromEvent"])(window, 'mousemove');
56281
- var mouseup$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_6__["fromEvent"])(window, 'mouseup');
56282
- var rowDragMove$ = mousemove$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_7__["filter"])(function (mouseMoveEvent) {
56283
- var mouseMoveClientY = mouseMoveEvent.clientY;
56284
- var mouseDownClientY = mouseDownEvent.clientY;
56285
- // 上下移动偏移量大于5才是有效的拖拽
56286
- if (Math.abs(mouseMoveClientY - mouseDownClientY) > 5) {
56287
- isValidDrag = true;
56288
- }
56289
- return isValidDrag;
56290
- }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_7__["map"])(function (mouseMoveEvent) {
56291
- if (!isDragging) {
56292
- isDragging = true;
56293
- handleDragStart(mouseDownEvent);
56294
- handleDragMove(mouseDownEvent);
56295
- }
56296
- handleDragMove(mouseMoveEvent);
56297
- }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_7__["takeUntil"])(mouseup$));
56298
- rowDragMove$.subscribe();
56299
- var rowDragEnd$ = mouseup$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_7__["map"])(function (mouseUpEvent) {
56300
- handleDragStop(mouseUpEvent);
56301
- })).subscribe({
56302
- next: function next() {
56303
- rowDragEnd$.unsubscribe();
56304
- }
56305
- });
56678
+ // 判断是鼠标事件还是触摸事件,分别监听对应的移动和结束事件
56679
+ var isTouchEvent = ('touches' in startEvent);
56680
+ if (isTouchEvent) {
56681
+ // 触摸事件处理
56682
+ var touchmove$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_6__["fromEvent"])(window, 'touchmove', {
56683
+ passive: false
56684
+ });
56685
+ var touchend$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_6__["fromEvent"])(window, 'touchend', {
56686
+ passive: false
56687
+ });
56688
+ var touchDragMove$ = touchmove$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_7__["filter"])(function (moveEvent) {
56689
+ var coordinates = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["getEventCoordinates"])(moveEvent);
56690
+ var startCoordinates = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["getEventCoordinates"])(startEvent);
56691
+ var moveClientY = coordinates.clientY;
56692
+ var startClientY = startCoordinates.clientY;
56693
+ // 上下移动偏移量大于5才是有效的拖拽
56694
+ if (Math.abs(moveClientY - startClientY) > 5) {
56695
+ isValidDrag = true;
56696
+ }
56697
+ return isValidDrag;
56698
+ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_7__["map"])(function (moveEvent) {
56699
+ if (!isDragging) {
56700
+ isDragging = true;
56701
+ handleDragStart(startEvent);
56702
+ handleDragMove(startEvent);
56703
+ }
56704
+ handleDragMove(moveEvent);
56705
+ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_7__["takeUntil"])(touchend$));
56706
+ touchDragMove$.subscribe();
56707
+ var touchDragEnd$ = touchend$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_7__["map"])(function (endEvent) {
56708
+ handleDragStop(endEvent);
56709
+ })).subscribe({
56710
+ next: function next() {
56711
+ touchDragEnd$.unsubscribe();
56712
+ }
56713
+ });
56714
+ } else {
56715
+ // 鼠标事件处理
56716
+ var mousemove$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_6__["fromEvent"])(window, 'mousemove');
56717
+ var mouseup$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_6__["fromEvent"])(window, 'mouseup');
56718
+ var rowDragMove$ = mousemove$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_7__["filter"])(function (moveEvent) {
56719
+ var coordinates = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["getEventCoordinates"])(moveEvent);
56720
+ var startCoordinates = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["getEventCoordinates"])(startEvent);
56721
+ var moveClientY = coordinates.clientY;
56722
+ var startClientY = startCoordinates.clientY;
56723
+ // 上下移动偏移量大于5才是有效的拖拽
56724
+ if (Math.abs(moveClientY - startClientY) > 5) {
56725
+ isValidDrag = true;
56726
+ }
56727
+ return isValidDrag;
56728
+ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_7__["map"])(function (moveEvent) {
56729
+ if (!isDragging) {
56730
+ isDragging = true;
56731
+ handleDragStart(startEvent);
56732
+ handleDragMove(startEvent);
56733
+ }
56734
+ handleDragMove(moveEvent);
56735
+ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_7__["takeUntil"])(mouseup$));
56736
+ rowDragMove$.subscribe();
56737
+ var rowDragEnd$ = mouseup$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_7__["map"])(function (endEvent) {
56738
+ handleDragStop(endEvent);
56739
+ })).subscribe({
56740
+ next: function next() {
56741
+ rowDragEnd$.unsubscribe();
56742
+ }
56743
+ });
56744
+ }
56306
56745
  };
56307
56746
  var rowDragColumn = (opt === null || opt === void 0 ? void 0 : opt.rowDragColumn) || defaultRowDragColumn;
56308
56747
  pipeline.setFeatureOptions('rowDragColumnKey', rowDragColumn.code);
@@ -56311,7 +56750,8 @@ function rowDrag(opt) {
56311
56750
  nextColumns.unshift(rowDragColumn);
56312
56751
  pipeline.columns(nextColumns);
56313
56752
  pipeline.addTableProps({
56314
- onMouseDown: onMouseDown
56753
+ onMouseDown: onMouseDown,
56754
+ onTouchStart: onTouchStart
56315
56755
  });
56316
56756
  pipeline.appendRowPropsGetter(function (row, rowIndex) {
56317
56757
  var _cx;
@@ -56381,13 +56821,13 @@ function isEleInFooter(target) {
56381
56821
  }
56382
56822
  return false;
56383
56823
  }
56384
- function createDragElement(mouseDownEvent, tableBody) {
56824
+ function createDragElement(event, tableBody) {
56385
56825
  var _context3, _context4;
56386
56826
  var ELEMENT_TEMPLATE = _babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_1___default()(_context3 = _babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_1___default()(_context4 = "<div class='".concat(_base_styles__WEBPACK_IMPORTED_MODULE_9__["Classes"].rowDragElement, "'>\n <span class='")).call(_context4, _base_styles__WEBPACK_IMPORTED_MODULE_9__["Classes"].rowDragElementIcon, "'></span>\n <div class='")).call(_context3, _base_styles__WEBPACK_IMPORTED_MODULE_9__["Classes"].rowDragElementLabel, "'></div>\n </div>");
56387
56827
  var element = document.createElement('div');
56388
56828
  element.innerHTML = ELEMENT_TEMPLATE;
56389
56829
  var dragElement = element.firstChild;
56390
- var targetRow = findTargetRow(mouseDownEvent.target, tableBody);
56830
+ var targetRow = findTargetRow(Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["getEventTarget"])(event), tableBody);
56391
56831
  if (targetRow) {
56392
56832
  var rect = targetRow.getBoundingClientRect();
56393
56833
  dragElement.style.height = rect.height + 'px';
@@ -56432,9 +56872,9 @@ function positionDragLine(_ref) {
56432
56872
  lineElement.style.display = 'block';
56433
56873
  }
56434
56874
  // 鼠标悬停所在的拖拽行信息
56435
- var dragItem = getDragRowItem(event.target, tableContainer, dataSource);
56875
+ var dragItem = getDragRowItem(Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["getEventTarget"])(event), tableContainer, dataSource);
56436
56876
  if (!dragItem) {
56437
- if (dataSource.length > 0 && tableContainer.contains(event.target)) {
56877
+ if (dataSource.length > 0 && tableContainer.contains(Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["getEventTarget"])(event))) {
56438
56878
  var _context5, _context6;
56439
56879
  var _rowIndex = dataSource.length - 1;
56440
56880
  var _row = dataSource[_rowIndex];
@@ -56463,7 +56903,7 @@ function positionDragLine(_ref) {
56463
56903
  rowIndex = dragItem.rowIndex,
56464
56904
  row = dragItem.row;
56465
56905
  var allowDragInto = isTreeTable && allowDragIntoRow;
56466
- var direction = getDirection(cell, event.clientY, allowDragInto);
56906
+ var direction = getDirection(cell, Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["getEventCoordinates"])(event).clientY, allowDragInto);
56467
56907
  var targetCell = isTreeTable ? tableContainer.querySelector(_babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_1___default()(_context7 = "tr[data-rowindex=\"".concat(rowIndex, "\"] .")).call(_context7, _base_styles__WEBPACK_IMPORTED_MODULE_9__["Classes"].tableExtendCell)) : cell;
56468
56908
  if (!targetCell) return;
56469
56909
  var _getLinePosition2 = getLinePosition({
@@ -56501,8 +56941,9 @@ function positionDragElemment(element, event, isRTL) {
56501
56941
  var browserWidth = (_b = (_a = document.body) === null || _a === void 0 ? void 0 : _a.clientWidth) !== null && _b !== void 0 ? _b : window.innerHeight || ((_c = document.documentElement) === null || _c === void 0 ? void 0 : _c.clientWidth) || 0;
56502
56942
  var browserHeight = (_e = (_d = document.body) === null || _d === void 0 ? void 0 : _d.clientHeight) !== null && _e !== void 0 ? _e : window.innerHeight || ((_f = document.documentElement) === null || _f === void 0 ? void 0 : _f.clientHeight) || 0;
56503
56943
  var offsetParentSize = getElementRectWithOffset(element.offsetParent);
56504
- var clientX = event.clientX,
56505
- clientY = event.clientY;
56944
+ var _getEventCoordinates = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["getEventCoordinates"])(event),
56945
+ clientX = _getEventCoordinates.clientX,
56946
+ clientY = _getEventCoordinates.clientY;
56506
56947
  var top = clientY - offsetParentSize.top - eleHeight / 2;
56507
56948
  var left = clientX - offsetParentSize.left;
56508
56949
  var right = Math.max(browserWidth - clientX, 0);
@@ -56518,12 +56959,11 @@ function positionDragElemment(element, event, isRTL) {
56518
56959
  right = Math.max(browserWidth + windowScrollX - element.clientWidth, 0);
56519
56960
  }
56520
56961
  if (isRTL) {
56521
- var _context8;
56522
- element.style.cssText += _babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_1___default()(_context8 = ";right: ".concat(right, "px; top: ")).call(_context8, top, "px;");
56523
- return;
56962
+ element.style.right = right + 'px';
56963
+ } else {
56964
+ element.style.left = left + 'px';
56524
56965
  }
56525
- element.style.left = "".concat(left, "px");
56526
- element.style.top = "".concat(top, "px");
56966
+ element.style.top = top + 'px';
56527
56967
  }
56528
56968
  function getElementRectWithOffset(el) {
56529
56969
  var offsetElementRect = el.getBoundingClientRect();
@@ -56590,12 +57030,13 @@ function setDragElementIcon(element, iconName) {
56590
57030
  elementIcon.appendChild(iconElement);
56591
57031
  }
56592
57032
  function clearElementChildren(element) {
56593
- while (element && element.firstChild) {
57033
+ while (element === null || element === void 0 ? void 0 : element.firstChild) {
56594
57034
  element.removeChild(element.firstChild);
56595
57035
  }
56596
57036
  }
56597
- function getScrollMoveOffset(tableBody, mouseMoveEvent) {
56598
- var clientY = mouseMoveEvent.clientY;
57037
+ function getScrollMoveOffset(tableBody, moveEvent) {
57038
+ var _getEventCoordinates2 = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["getEventCoordinates"])(moveEvent),
57039
+ clientY = _getEventCoordinates2.clientY;
56599
57040
  var tableBodyClientRect = tableBody.getBoundingClientRect();
56600
57041
  var top = tableBodyClientRect.top,
56601
57042
  height = tableBodyClientRect.height;
@@ -56613,15 +57054,19 @@ function setDragText(element, dragText) {
56613
57054
  var stringNode = document.createTextNode(dragTextString);
56614
57055
  elementIcon.appendChild(stringNode);
56615
57056
  }
56616
- function isMouseOnDropTarget(mouseEvent, target) {
56617
- return target.contains(mouseEvent.target);
57057
+ function isPointerOnDropTarget(pointerEvent, target) {
57058
+ var eventTarget = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["getEventTarget"])(pointerEvent);
57059
+ return target.contains(eventTarget);
56618
57060
  }
56619
57061
  function createDropTargetEvent(dropZone, event, dragItem, startDropZone) {
56620
57062
  var dropZoneTarget = dropZone.getContainer();
56621
57063
  var startDropZoneTagret = startDropZone.getContainer();
56622
57064
  var rect = dropZoneTarget.getBoundingClientRect();
56623
- var x = event.clientX - rect.left;
56624
- var y = event.clientY - rect.top;
57065
+ var _getEventCoordinates3 = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["getEventCoordinates"])(event),
57066
+ clientX = _getEventCoordinates3.clientX,
57067
+ clientY = _getEventCoordinates3.clientY;
57068
+ var x = clientX - rect.left;
57069
+ var y = clientY - rect.top;
56625
57070
  var startDropZoneOptions = startDropZone.tableParams.getRowDragOptions();
56626
57071
  var startCommonParams = startDropZoneOptions === null || startDropZoneOptions === void 0 ? void 0 : startDropZoneOptions.commonParams;
56627
57072
  var targetEvent = {
@@ -56678,10 +57123,8 @@ var getLinePosition = function getLinePosition(_ref2) {
56678
57123
  paddingRight = _getElementSize3.paddingRight;
56679
57124
  var expandCellRect = cell.getBoundingClientRect();
56680
57125
  var _row$treeMetaKey2 = row[treeMetaKey],
56681
- rowKey = _row$treeMetaKey2.rowKey,
56682
57126
  depth = _row$treeMetaKey2.depth,
56683
- isLeaf = _row$treeMetaKey2.isLeaf,
56684
- expanded = _row$treeMetaKey2.expanded;
57127
+ isLeaf = _row$treeMetaKey2.isLeaf;
56685
57128
  var addWidth = isLeaf ? iconWidth + iconGap : 0;
56686
57129
  var indent = iconIndent + depth * indentSize + addWidth;
56687
57130
  var x = expandCellRect.x,
@@ -57917,6 +58360,89 @@ function treeSelect(opts) {
57917
58360
 
57918
58361
  /***/ }),
57919
58362
 
58363
+ /***/ "./node_modules/@kdcloudjs/table/es/table/pipeline/features/utils/touchEventUtils.js":
58364
+ /*!*******************************************************************************************!*\
58365
+ !*** ./node_modules/@kdcloudjs/table/es/table/pipeline/features/utils/touchEventUtils.js ***!
58366
+ \*******************************************************************************************/
58367
+ /*! exports provided: getEventCoordinates, getEventTarget, isTouchEvent, addPointerEventListeners, removePointerEventListeners, hasMovedEnough */
58368
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
58369
+
58370
+ "use strict";
58371
+ __webpack_require__.r(__webpack_exports__);
58372
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEventCoordinates", function() { return getEventCoordinates; });
58373
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEventTarget", function() { return getEventTarget; });
58374
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isTouchEvent", function() { return isTouchEvent; });
58375
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addPointerEventListeners", function() { return addPointerEventListeners; });
58376
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removePointerEventListeners", function() { return removePointerEventListeners; });
58377
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasMovedEnough", function() { return hasMovedEnough; });
58378
+ // 统一获取事件坐标的函数
58379
+ function getEventCoordinates(event) {
58380
+ if ('touches' in event && event.touches.length > 0) {
58381
+ return {
58382
+ clientX: event.touches[0].clientX,
58383
+ clientY: event.touches[0].clientY
58384
+ };
58385
+ } else if ('changedTouches' in event && event.changedTouches.length > 0) {
58386
+ return {
58387
+ clientX: event.changedTouches[0].clientX,
58388
+ clientY: event.changedTouches[0].clientY
58389
+ };
58390
+ } else {
58391
+ return {
58392
+ clientX: event.clientX,
58393
+ clientY: event.clientY
58394
+ };
58395
+ }
58396
+ }
58397
+ // 获取事件目标元素
58398
+ function getEventTarget(event) {
58399
+ if ('touches' in event && event.touches.length > 0) {
58400
+ return document.elementFromPoint(event.touches[0].clientX, event.touches[0].clientY);
58401
+ }
58402
+ // 处理touchend事件,此时touches为空,需要使用changedTouches
58403
+ if ('changedTouches' in event && event.changedTouches.length > 0) {
58404
+ return document.elementFromPoint(event.changedTouches[0].clientX, event.changedTouches[0].clientY);
58405
+ }
58406
+ return event.target;
58407
+ }
58408
+ // 判断是否为触摸事件
58409
+ function isTouchEvent(event) {
58410
+ return 'touches' in event;
58411
+ }
58412
+ // 为元素添加统一的指针事件监听器
58413
+ function addPointerEventListeners(element, handlers, isTouchStart) {
58414
+ if (isTouchStart) {
58415
+ element.addEventListener('touchmove', handlers.onPointerMove, {
58416
+ passive: false
58417
+ });
58418
+ element.addEventListener('touchend', handlers.onPointerUp, {
58419
+ passive: false
58420
+ });
58421
+ } else {
58422
+ element.addEventListener('mousemove', handlers.onPointerMove);
58423
+ element.addEventListener('mouseup', handlers.onPointerUp);
58424
+ }
58425
+ }
58426
+ // 移除统一的指针事件监听器
58427
+ function removePointerEventListeners(element, handlers, isTouchStart) {
58428
+ if (isTouchStart) {
58429
+ element.removeEventListener('touchmove', handlers.onPointerMove);
58430
+ element.removeEventListener('touchend', handlers.onPointerUp);
58431
+ } else {
58432
+ element.removeEventListener('mousemove', handlers.onPointerMove);
58433
+ element.removeEventListener('mouseup', handlers.onPointerUp);
58434
+ }
58435
+ }
58436
+ // 检查是否移动了足够的距离(用于区分点击和拖拽)
58437
+ function hasMovedEnough(startX, startY, endX, endY) {
58438
+ var threshold = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 5;
58439
+ var xDiff = endX - startX;
58440
+ var yDiff = endY - startY;
58441
+ return Math.sqrt(xDiff * xDiff + yDiff * yDiff) > threshold;
58442
+ }
58443
+
58444
+ /***/ }),
58445
+
57920
58446
  /***/ "./node_modules/@kdcloudjs/table/es/table/pipeline/index.js":
57921
58447
  /*!******************************************************************!*\
57922
58448
  !*** ./node_modules/@kdcloudjs/table/es/table/pipeline/index.js ***!