@kdcloudjs/table 1.2.2-canary.13 → 1.2.2-canary.14-hotfix

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * @kdcloudjs/table v1.2.2-canary.12
3
+ * @kdcloudjs/table v1.2.2-canary.14
4
4
  *
5
5
  * Copyright 2020-present, Kingdee, Inc.
6
6
  * All rights reserved.
@@ -829,8 +829,11 @@ __webpack_require__.r(__webpack_exports__);
829
829
 
830
830
 
831
831
  var TopBlankComponent = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_1__["forwardRef"])(function (_ref, ref) {
832
- var initialHeight = _ref.height;
833
- var _useState = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(initialHeight),
832
+ var heightFromProps = _ref.height;
833
+ Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(function () {
834
+ setHeight(heightFromProps);
835
+ }, [heightFromProps]);
836
+ var _useState = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(heightFromProps),
834
837
  _useState2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_useState, 2),
835
838
  height = _useState2[0],
836
839
  setHeight = _useState2[1];
@@ -844,6 +847,8 @@ var TopBlankComponent = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_1__["
844
847
  };
845
848
  }, [height]);
846
849
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
850
+ key: "top-blank",
851
+ className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(_styles__WEBPACK_IMPORTED_MODULE_3__["Classes"].virtualBlank, 'bottom'),
847
852
  style: {
848
853
  height: height
849
854
  }
@@ -851,12 +856,14 @@ var TopBlankComponent = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_1__["
851
856
  });
852
857
  TopBlankComponent.displayName = 'TopBlank';
853
858
  var BottomBlankComponent = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_1__["forwardRef"])(function (_ref2, ref) {
854
- var initialHeight = _ref2.height,
855
- className = _ref2.className;
856
- var _useState3 = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(initialHeight),
859
+ var heightFromProps = _ref2.height;
860
+ var _useState3 = Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(heightFromProps),
857
861
  _useState4 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_useState3, 2),
858
862
  height = _useState4[0],
859
863
  setHeight = _useState4[1];
864
+ Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(function () {
865
+ setHeight(heightFromProps);
866
+ }, [heightFromProps]);
860
867
  Object(react__WEBPACK_IMPORTED_MODULE_1__["useImperativeHandle"])(ref, function () {
861
868
  return {
862
869
  updateHeight: function updateHeight(newHeight) {
@@ -871,7 +878,7 @@ var BottomBlankComponent = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_1_
871
878
  }
872
879
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {
873
880
  key: "bottom-blank",
874
- className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(_styles__WEBPACK_IMPORTED_MODULE_3__["Classes"].virtualBlank, 'bottom', className),
881
+ className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(_styles__WEBPACK_IMPORTED_MODULE_3__["Classes"].virtualBlank, 'bottom'),
875
882
  style: {
876
883
  height: height
877
884
  }
@@ -881,10 +888,10 @@ BottomBlankComponent.displayName = 'BottomBlank';
881
888
 
882
889
  // 使用 memo 优化,只有当 height 或 className 改变时才重新渲染
883
890
  var TopBlank = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_1__["memo"])(TopBlankComponent, function (prevProps, nextProps) {
884
- return prevProps.height === nextProps.height && prevProps.className === nextProps.className;
891
+ return prevProps.height === nextProps.height;
885
892
  });
886
893
  var BottomBlank = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_1__["memo"])(BottomBlankComponent, function (prevProps, nextProps) {
887
- return prevProps.height === nextProps.height && prevProps.className === nextProps.className;
894
+ return prevProps.height === nextProps.height;
888
895
  });
889
896
 
890
897
  /***/ }),
@@ -5749,6 +5756,7 @@ __webpack_require__.r(__webpack_exports__);
5749
5756
  /* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_9__);
5750
5757
  /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../utils */ "./components/table/utils/index.tsx");
5751
5758
  /* harmony import */ var _autoFill__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./autoFill */ "./components/table/pipeline/features/autoFill.tsx");
5759
+ /* harmony import */ var _utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utils/touchEventUtils */ "./components/table/pipeline/features/utils/touchEventUtils.tsx");
5752
5760
 
5753
5761
 
5754
5762
 
@@ -5763,6 +5771,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
5763
5771
 
5764
5772
 
5765
5773
 
5774
+
5766
5775
  var stateKey = 'columnDrag';
5767
5776
  var SCROLL_SIZE = 30;
5768
5777
  function disableSelect(event) {
@@ -5821,255 +5830,240 @@ function columnDrag() {
5821
5830
  style: style
5822
5831
  });
5823
5832
  },
5824
- headerCellProps: Object(_utils__WEBPACK_IMPORTED_MODULE_10__["mergeCellProps"])(col.headerCellProps, {
5825
- onMouseDown: !isLeaf || path.length > 1 ? undefined : function (e) {
5833
+ headerCellProps: Object(_utils__WEBPACK_IMPORTED_MODULE_10__["mergeCellProps"])(col.headerCellProps, _objectSpread(_objectSpread({}, isLeaf && path.length === 1 ? {
5834
+ onMouseDown: function onMouseDown(e) {
5826
5835
  if (e.button !== 0 || !e.currentTarget.contains(e.target)) {
5827
5836
  return;
5828
5837
  }
5829
- window.addEventListener('selectstart', disableSelect);
5830
- // const cx = e.clientX
5831
- // const width = col.width
5832
- // const a = startIndex
5833
- // const b = endIndex
5834
- // const newColumnDragData = [...columnDragData]
5835
- // let newColumn = [...columns]
5836
- // let newStartIndex = startIndex
5837
- // let endIdx = endIndex
5838
- var columnMoved = false;
5839
- var columns = pipeline.getColumns();
5840
- var _pipeline$getStateAtK2 = pipeline.getStateAtKey(stateKey, {}),
5841
- cloumnsTranslateData = _pipeline$getStateAtK2.cloumnsTranslateData;
5842
- var cloumnsSortData = {};
5843
- columns.forEach(function (item, index) {
5844
- cloumnsSortData[item.code] = index;
5845
- });
5846
- var currentTarget = e.currentTarget;
5847
- var rect = e.currentTarget.parentElement.getClientRects()[0];
5848
- var startX = direction === 'rtl' ? rect.right : rect.left;
5849
- var mouseDownClientX = e.clientX;
5850
- var mouseDownClientY = e.clientY;
5851
- var moveData = [];
5852
- var allColumns = Object(_utils__WEBPACK_IMPORTED_MODULE_10__["collectNodes"])(columns);
5853
- var tableBodyClientRect = tableBody.getBoundingClientRect();
5854
- var startScrollLeft = pipeline.ref.current.domHelper.virtual.scrollLeft;
5855
- var updateScrollPosition = function updateScrollPosition(client) {
5856
- var clientX = client.clientX;
5857
- var left = tableBodyClientRect.left,
5858
- width = tableBodyClientRect.width;
5859
- if (clientX + SCROLL_SIZE >= left + width) {
5860
- pipeline.ref.current.domHelper.virtual.scrollLeft += SCROLL_SIZE;
5861
- }
5862
- if (clientX - SCROLL_SIZE <= left) {
5863
- pipeline.ref.current.domHelper.virtual.scrollLeft -= SCROLL_SIZE;
5864
- }
5865
- };
5866
- function handleMouseMove(e) {
5867
- var client = {
5868
- clientX: e.clientX,
5869
- clientY: e.clientY
5870
- };
5871
- var scrollDistance = pipeline.ref.current.domHelper.virtual.scrollLeft - startScrollLeft;
5872
- var startPosition = startX - scrollDistance; // 表头最左边起点
5873
- var offsetDistance = direction === 'rtl' ? startPosition - e.clientX : e.clientX - startPosition;
5874
- updateScrollPosition(client);
5875
- if (offsetDistance < 20) {
5876
- return;
5877
- } else {
5878
- e.stopPropagation();
5879
- }
5880
- document.body.style.userSelect = 'none';
5881
- currentTarget.style.cursor = 'move';
5882
-
5883
- // 循环计算每一个的位置
5884
- // if (startIndex !== replaceIndex) {
5885
- // const optionColumn = columns[startIndex]
5886
- // const move = startIndex > replaceIndex ? 1 : -1
5887
- // let index = Math.min(startIndex, replaceIndex)
5888
- // while (index < Math.max(startIndex, replaceIndex)) {
5889
- // const code = columns[index].code
5890
- // cloumnsTranslateData[code] += move * optionColumn.width
5891
- // cloumnsTranslateData[optionColumn.code] -= move * optionColumn.width
5892
- // index += move
5893
- // }
5894
- // }
5895
-
5896
- // const opColumn = columns[startIndex]
5897
- // let index = Math.min(startIndex, replaceIndex)
5898
- // while (index <= Math.max(startIndex, replaceIndex)) {
5899
- // const code = columns[index].code
5900
- // if (index !== startIndex && index !== replaceIndex) {
5901
- // cloumnsTranslateData[code] += opColumn.width * (index > startIndex ? -1 : 1)
5902
- // cloumnsTranslateData[opColumn.code] += columns[index].width * (index < startIndex ? -1 : 1)
5903
- // }
5904
- // index++
5905
- // }
5906
-
5907
- // 重置位置信息
5908
- cloumnsTranslateData = {};
5909
- allColumns.forEach(function (item) {
5910
- cloumnsTranslateData[item.code] = 0;
5911
- });
5838
+ handlePointerDown(e.nativeEvent, false, e.currentTarget);
5839
+ },
5840
+ onTouchStart: function onTouchStart(e) {
5841
+ // 阻止触摸事件的默认行为
5842
+ if (e.cancelable) {
5843
+ e.preventDefault();
5844
+ }
5845
+ handlePointerDown(e.nativeEvent, true, e.currentTarget);
5846
+ }
5847
+ } : {}), {}, {
5848
+ style: style
5849
+ }))
5850
+ });
5912
5851
 
5913
- // 计算平移位置
5914
- var replaceIndex = 0;
5915
- var totalWitdth = getColumnWidth(columns[replaceIndex]);
5916
- while (totalWitdth < offsetDistance && replaceIndex < columns.length - 1) {
5917
- replaceIndex++;
5918
- totalWitdth += getColumnWidth(columns[replaceIndex]);
5919
- }
5852
+ // 统一的拖拽处理函数
5853
+ function handlePointerDown(startEvent, isTouch, currentTarget) {
5854
+ var _currentTarget$parent;
5855
+ window.addEventListener('selectstart', disableSelect);
5856
+ var columnMoved = false;
5857
+ var columns = pipeline.getColumns();
5858
+ var _pipeline$getStateAtK2 = pipeline.getStateAtKey(stateKey, {}),
5859
+ cloumnsTranslateData = _pipeline$getStateAtK2.cloumnsTranslateData;
5860
+ var cloumnsSortData = {};
5861
+ columns.forEach(function (item, index) {
5862
+ cloumnsSortData[item.code] = index;
5863
+ });
5864
+ var rect = (_currentTarget$parent = currentTarget.parentElement) === null || _currentTarget$parent === void 0 ? void 0 : _currentTarget$parent.getClientRects()[0];
5865
+ if (!rect) return;
5866
+ var startX = direction === 'rtl' ? rect.right : rect.left;
5867
+ var startCoordinates = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["getEventCoordinates"])(startEvent);
5868
+ var mouseDownClientX = startCoordinates.clientX;
5869
+ var mouseDownClientY = startCoordinates.clientY;
5870
+ var moveData = [];
5871
+ var allColumns = Object(_utils__WEBPACK_IMPORTED_MODULE_10__["collectNodes"])(columns);
5872
+ var tableBodyClientRect = tableBody.getBoundingClientRect();
5873
+ var startScrollLeft = pipeline.ref.current.domHelper.virtual.scrollLeft;
5874
+ var updateScrollPosition = function updateScrollPosition(client) {
5875
+ var clientX = client.clientX;
5876
+ var left = tableBodyClientRect.left,
5877
+ width = tableBodyClientRect.width;
5878
+ if (clientX + SCROLL_SIZE >= left + width) {
5879
+ pipeline.ref.current.domHelper.virtual.scrollLeft += SCROLL_SIZE;
5880
+ }
5881
+ if (clientX - SCROLL_SIZE <= left) {
5882
+ pipeline.ref.current.domHelper.virtual.scrollLeft -= SCROLL_SIZE;
5883
+ }
5884
+ };
5885
+ function handlePointerMove(e) {
5886
+ // 触摸事件需要阻止默认行为,防止页面滚动
5887
+ if (isTouch && e.cancelable) {
5888
+ e.preventDefault();
5889
+ }
5890
+ var coordinates = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["getEventCoordinates"])(e);
5891
+ var client = {
5892
+ clientX: coordinates.clientX,
5893
+ clientY: coordinates.clientY
5894
+ };
5895
+ var scrollDistance = pipeline.ref.current.domHelper.virtual.scrollLeft - startScrollLeft;
5896
+ var startPosition = startX - scrollDistance; // 表头最左边起点
5897
+ var offsetDistance = direction === 'rtl' ? startPosition - coordinates.clientX : coordinates.clientX - startPosition;
5898
+ updateScrollPosition(client);
5899
+ if (offsetDistance < 20) {
5900
+ return;
5901
+ } else {
5902
+ e.stopPropagation();
5903
+ }
5904
+ document.body.style.userSelect = 'none';
5905
+ currentTarget.style.cursor = 'move';
5920
5906
 
5921
- // 需要取最新startIndex, 不能直接用makeRecursiveMapper提供的startIndex(因为map时还没添加选择列、充满列等后面use添加的列)
5922
- var startIndex;
5923
- columns.forEach(function (column, index) {
5924
- if (column.code === col.code) {
5925
- startIndex = index;
5926
- }
5927
- });
5928
- var optionColumn = columns[startIndex];
5929
- var index = replaceIndex;
5930
- if (startIndex > replaceIndex) {
5931
- // 左移
5932
- while (index < startIndex) {
5933
- var _columns$index = columns[index],
5934
- code = _columns$index.code,
5935
- lock = _columns$index.lock,
5936
- width = _columns$index.width,
5937
- children = _columns$index.children;
5938
- if (enableMove({
5939
- code: code,
5940
- lock: lock
5941
- })) {
5942
- cloumnsTranslateData[code] += _adjustTranslation(optionColumn.width);
5943
- if (Object(_utils__WEBPACK_IMPORTED_MODULE_10__["isLeafNode"])(columns[index])) {
5944
- cloumnsTranslateData[optionColumn.code] -= _adjustTranslation(width);
5945
- } else {
5946
- cloumnsTranslateData[optionColumn.code] -= _adjustTranslation(getColumnWidth(columns[index]));
5947
- moveAllChildren(children, cloumnsTranslateData, _adjustTranslation(optionColumn.width));
5948
- }
5949
- columnMoved = true;
5950
- }
5951
- index++;
5952
- }
5953
- } else if (startIndex < replaceIndex) {
5954
- // 右移
5955
- while (startIndex < index) {
5956
- var _columns$index2 = columns[index],
5957
- _code = _columns$index2.code,
5958
- _lock = _columns$index2.lock,
5959
- _width = _columns$index2.width,
5960
- _children = _columns$index2.children;
5961
- if (enableMove({
5962
- code: _code,
5963
- lock: _lock
5964
- })) {
5965
- cloumnsTranslateData[_code] -= _adjustTranslation(optionColumn.width);
5966
- if (Object(_utils__WEBPACK_IMPORTED_MODULE_10__["isLeafNode"])(columns[index])) {
5967
- cloumnsTranslateData[optionColumn.code] += _adjustTranslation(_width);
5968
- } else {
5969
- cloumnsTranslateData[optionColumn.code] += _adjustTranslation(getColumnWidth(columns[index]));
5970
- moveAllChildren(_children, cloumnsTranslateData, _adjustTranslation(optionColumn.width), true);
5971
- }
5972
- columnMoved = true;
5973
- }
5974
- index--;
5907
+ // 重置位置信息
5908
+ cloumnsTranslateData = {};
5909
+ allColumns.forEach(function (item) {
5910
+ cloumnsTranslateData[item.code] = 0;
5911
+ });
5912
+
5913
+ // 计算平移位置
5914
+ var replaceIndex = 0;
5915
+ var totalWitdth = getColumnWidth(columns[replaceIndex]);
5916
+ while (totalWitdth < offsetDistance && replaceIndex < columns.length - 1) {
5917
+ replaceIndex++;
5918
+ totalWitdth += getColumnWidth(columns[replaceIndex]);
5919
+ }
5920
+
5921
+ // 需要取最新startIndex, 不能直接用makeRecursiveMapper提供的startIndex(因为map时还没添加选择列、充满列等后面use添加的列)
5922
+ var startIndex;
5923
+ columns.forEach(function (column, index) {
5924
+ if (column.code === col.code) {
5925
+ startIndex = index;
5926
+ }
5927
+ });
5928
+ var optionColumn = columns[startIndex];
5929
+ var index = replaceIndex;
5930
+ if (startIndex > replaceIndex) {
5931
+ // 左移
5932
+ while (index < startIndex) {
5933
+ var _columns$index = columns[index],
5934
+ code = _columns$index.code,
5935
+ lock = _columns$index.lock,
5936
+ width = _columns$index.width,
5937
+ children = _columns$index.children;
5938
+ if (enableMove({
5939
+ code: code,
5940
+ lock: lock
5941
+ })) {
5942
+ cloumnsTranslateData[code] += _adjustTranslation(optionColumn.width);
5943
+ if (Object(_utils__WEBPACK_IMPORTED_MODULE_10__["isLeafNode"])(columns[index])) {
5944
+ cloumnsTranslateData[optionColumn.code] -= _adjustTranslation(width);
5945
+ } else {
5946
+ cloumnsTranslateData[optionColumn.code] -= _adjustTranslation(getColumnWidth(columns[index]));
5947
+ moveAllChildren(children, cloumnsTranslateData, _adjustTranslation(optionColumn.width));
5975
5948
  }
5949
+ columnMoved = true;
5976
5950
  }
5977
- window.requestAnimationFrame(function () {
5978
- pipeline.setStateAtKey(stateKey, {
5979
- cloumnsTranslateData: cloumnsTranslateData
5980
- });
5981
- moveData = [startIndex, replaceIndex];
5982
- });
5951
+ index++;
5983
5952
  }
5984
- function handleMouseUp(e) {
5985
- document.body.removeEventListener('mousemove', handleMouseMove);
5986
- document.body.removeEventListener('mouseup', handleMouseUp);
5987
- window.removeEventListener('selectstart', disableSelect);
5988
- if (_isMoveWhenClicking(mouseDownClientX, mouseDownClientY, e.clientX, e.clientY)) {
5989
- e.stopPropagation(); // 存在移动就阻止冒泡
5990
- currentTarget.addEventListener('click', stopClickPropagation); // 阻止列头点击事件,防止拖动后触发列头过滤事件
5953
+ } else if (startIndex < replaceIndex) {
5954
+ // 右移
5955
+ while (startIndex < index) {
5956
+ var _columns$index2 = columns[index],
5957
+ _code = _columns$index2.code,
5958
+ _lock = _columns$index2.lock,
5959
+ _width = _columns$index2.width,
5960
+ _children = _columns$index2.children;
5961
+ if (enableMove({
5962
+ code: _code,
5963
+ lock: _lock
5964
+ })) {
5965
+ cloumnsTranslateData[_code] -= _adjustTranslation(optionColumn.width);
5966
+ if (Object(_utils__WEBPACK_IMPORTED_MODULE_10__["isLeafNode"])(columns[index])) {
5967
+ cloumnsTranslateData[optionColumn.code] += _adjustTranslation(_width);
5968
+ } else {
5969
+ cloumnsTranslateData[optionColumn.code] += _adjustTranslation(getColumnWidth(columns[index]));
5970
+ moveAllChildren(_children, cloumnsTranslateData, _adjustTranslation(optionColumn.width), true);
5971
+ }
5972
+ columnMoved = true;
5991
5973
  }
5974
+ index--;
5975
+ }
5976
+ }
5977
+ window.requestAnimationFrame(function () {
5978
+ pipeline.setStateAtKey(stateKey, {
5979
+ cloumnsTranslateData: cloumnsTranslateData
5980
+ });
5981
+ moveData = [startIndex, replaceIndex];
5982
+ });
5983
+ }
5984
+ function handlePointerUp(e) {
5985
+ Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["removePointerEventListeners"])(document.body, {
5986
+ onPointerMove: handlePointerMove,
5987
+ onPointerUp: handlePointerUp
5988
+ }, isTouch);
5989
+ window.removeEventListener('selectstart', disableSelect);
5990
+ var endCoordinates = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["getEventCoordinates"])(e);
5991
+ if (Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["hasMovedEnough"])(mouseDownClientX, mouseDownClientY, endCoordinates.clientX, endCoordinates.clientY)) {
5992
+ e.stopPropagation(); // 存在移动就阻止冒泡
5993
+ currentTarget.addEventListener('click', stopClickPropagation); // 阻止列头点击事件,防止拖动后触发列头过滤事件
5994
+ }
5992
5995
 
5993
- window.requestAnimationFrame(function () {
5994
- // 取消阻止列头点击事件
5995
- currentTarget.removeEventListener('click', stopClickPropagation);
5996
- currentTarget = null;
5997
- var _moveData = moveData,
5998
- _moveData2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_4___default()(_moveData, 2),
5999
- startIndex = _moveData2[0],
6000
- replaceIndex = _moveData2[1];
6001
- var optionColumn = columns[startIndex];
6002
- // const move = startIndex > replaceIndex ? 1 : -1
6003
- // let index = Math.min(startIndex, replaceIndex)
6004
- // while (index < Math.max(startIndex, replaceIndex) && index > 0) {
6005
- // const code = columns[index].code
6006
- // cloumnsSortData[optionColumn.code] -= move
6007
- // cloumnsSortData[code] += move
6008
- // index += move
6009
- // }
6010
- var index = replaceIndex;
6011
- if (startIndex > replaceIndex) {
6012
- // 左移
6013
- while (index < startIndex) {
6014
- var _columns$index3 = columns[index],
6015
- code = _columns$index3.code,
6016
- lock = _columns$index3.lock;
6017
- if (enableMove({
6018
- code: code,
6019
- lock: lock
6020
- })) {
6021
- cloumnsSortData[code] += 1;
6022
- cloumnsSortData[optionColumn.code] -= 1;
6023
- columnMoved = true;
6024
- }
6025
- index++;
6026
- }
6027
- } else if (startIndex < replaceIndex) {
6028
- // 右移
6029
- while (index > startIndex) {
6030
- var _columns$index4 = columns[index],
6031
- _code2 = _columns$index4.code,
6032
- _lock2 = _columns$index4.lock;
6033
- if (enableMove({
6034
- code: _code2,
6035
- lock: _lock2
6036
- })) {
6037
- cloumnsSortData[_code2] -= 1;
6038
- cloumnsSortData[optionColumn.code] += 1;
6039
- columnMoved = true;
6040
- }
6041
- index--;
6042
- }
5996
+ window.requestAnimationFrame(function () {
5997
+ // 取消阻止列头点击事件
5998
+ currentTarget.removeEventListener('click', stopClickPropagation);
5999
+ currentTarget = null;
6000
+ var _moveData = moveData,
6001
+ _moveData2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_4___default()(_moveData, 2),
6002
+ startIndex = _moveData2[0],
6003
+ replaceIndex = _moveData2[1];
6004
+ var optionColumn = columns[startIndex];
6005
+ var index = replaceIndex;
6006
+ if (startIndex > replaceIndex) {
6007
+ // 左移
6008
+ while (index < startIndex) {
6009
+ var _columns$index3 = columns[index],
6010
+ code = _columns$index3.code,
6011
+ lock = _columns$index3.lock;
6012
+ if (enableMove({
6013
+ code: code,
6014
+ lock: lock
6015
+ })) {
6016
+ cloumnsSortData[code] += 1;
6017
+ cloumnsSortData[optionColumn.code] -= 1;
6018
+ columnMoved = true;
6043
6019
  }
6044
- var onColumnDragStopped = opts.onColumnDragStopped;
6045
- // 拖拽结束返回列顺序
6046
- if (onColumnDragStopped) {
6047
- var isRowDragColumn = function isRowDragColumn(code) {
6048
- var rowDragColumnKey = pipeline.getFeatureOptions('rowDragColumnKey');
6049
- return code === rowDragColumnKey;
6050
- };
6051
- var newColumns = sortColumns(columns, cloumnsSortData).filter(function (column) {
6052
- return column.code !== _autoFill__WEBPACK_IMPORTED_MODULE_11__["FILL_COLUMN_CODE"] && !isRowDragColumn(column.code) && !Object(_utils__WEBPACK_IMPORTED_MODULE_10__["isSelectColumn"])(column);
6053
- });
6054
- // TODO drag需要在resize之后use,否则这里返回的列对应的宽度不是拖拽后的
6055
- onColumnDragStopped(columnMoved, newColumns);
6020
+ index++;
6021
+ }
6022
+ } else if (startIndex < replaceIndex) {
6023
+ // 右移
6024
+ while (index > startIndex) {
6025
+ var _columns$index4 = columns[index],
6026
+ _code2 = _columns$index4.code,
6027
+ _lock2 = _columns$index4.lock;
6028
+ if (enableMove({
6029
+ code: _code2,
6030
+ lock: _lock2
6031
+ })) {
6032
+ cloumnsSortData[_code2] -= 1;
6033
+ cloumnsSortData[optionColumn.code] += 1;
6034
+ columnMoved = true;
6056
6035
  }
6057
- pipeline.setStateAtKey(stateKey, {
6058
- cloumnsTranslateData: null
6059
- });
6036
+ index--;
6037
+ }
6038
+ }
6039
+ var onColumnDragStopped = opts.onColumnDragStopped;
6040
+ // 拖拽结束返回列顺序
6041
+ if (onColumnDragStopped) {
6042
+ var isRowDragColumn = function isRowDragColumn(code) {
6043
+ var rowDragColumnKey = pipeline.getFeatureOptions('rowDragColumnKey');
6044
+ return code === rowDragColumnKey;
6045
+ };
6046
+ var newColumns = sortColumns(columns, cloumnsSortData).filter(function (column) {
6047
+ return column.code !== _autoFill__WEBPACK_IMPORTED_MODULE_11__["FILL_COLUMN_CODE"] && !isRowDragColumn(column.code) && !Object(_utils__WEBPACK_IMPORTED_MODULE_10__["isSelectColumn"])(column);
6060
6048
  });
6061
- document.body.style.userSelect = '';
6062
- currentTarget.style.opacity = '';
6063
- currentTarget.style.cursor = '';
6049
+ // TODO drag需要在resize之后use,否则这里返回的列对应的宽度不是拖拽后的
6050
+ onColumnDragStopped(columnMoved, newColumns);
6064
6051
  }
6065
- var onColumnDragStart = opts.onColumnDragStart;
6066
- onColumnDragStart && onColumnDragStart(col);
6067
- document.body.addEventListener('mousemove', handleMouseMove);
6068
- document.body.addEventListener('mouseup', handleMouseUp);
6069
- },
6070
- style: style
6071
- })
6072
- });
6052
+ pipeline.setStateAtKey(stateKey, {
6053
+ cloumnsTranslateData: null
6054
+ });
6055
+ });
6056
+ document.body.style.userSelect = '';
6057
+ currentTarget.style.opacity = '';
6058
+ currentTarget.style.cursor = '';
6059
+ }
6060
+ var onColumnDragStart = opts.onColumnDragStart;
6061
+ onColumnDragStart && onColumnDragStart(col);
6062
+ Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_12__["addPointerEventListeners"])(document.body, {
6063
+ onPointerMove: handlePointerMove,
6064
+ onPointerUp: handlePointerUp
6065
+ }, isTouch);
6066
+ }
6073
6067
  }));
6074
6068
  };
6075
6069
  }
@@ -6098,15 +6092,6 @@ function moveAllChildren(cols, cloumnsTranslateData, width, isMinus) {
6098
6092
  }
6099
6093
  });
6100
6094
  }
6101
- function _isMoveWhenClicking(mouseDownClientX, mouseDownClientY, mouseUpClientX, mouseUpClientY) {
6102
- var xDiff = mouseUpClientX - mouseDownClientX;
6103
- var yDiff = mouseUpClientY - mouseDownClientY;
6104
- // 鼠标点按和松开的偏移量大于5px,认为存在移动
6105
- if (Math.sqrt(xDiff * xDiff + yDiff * yDiff) > 5) {
6106
- return true;
6107
- }
6108
- return false;
6109
- }
6110
6095
 
6111
6096
  /***/ }),
6112
6097
 
@@ -6593,6 +6578,7 @@ __webpack_require__.r(__webpack_exports__);
6593
6578
  /* harmony import */ var _internals__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../internals */ "./components/table/internals.ts");
6594
6579
  /* harmony import */ var _base_styles__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../../base/styles */ "./components/table/base/styles.ts");
6595
6580
  /* harmony import */ var _base_utils__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../../base/utils */ "./components/table/base/utils.tsx");
6581
+ /* harmony import */ var _utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./utils/touchEventUtils */ "./components/table/pipeline/features/utils/touchEventUtils.tsx");
6596
6582
 
6597
6583
 
6598
6584
 
@@ -6618,6 +6604,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
6618
6604
 
6619
6605
 
6620
6606
 
6607
+
6621
6608
  var TableHeaderCellResize = styled_components__WEBPACK_IMPORTED_MODULE_15__["default"].div(_templateObject || (_templateObject = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_5___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) {
6622
6609
  return Object(_base_utils__WEBPACK_IMPORTED_MODULE_21__["swapRTLDirection"])(props.direction, 'right');
6623
6610
  }, function (props) {
@@ -6672,10 +6659,13 @@ function columnResize() {
6672
6659
  var _opts$doubleClickCall;
6673
6660
  (_opts$doubleClickCall = opts.doubleClickCallback) === null || _opts$doubleClickCall === void 0 ? void 0 : _opts$doubleClickCall.call(opts, e, col);
6674
6661
  };
6675
- var handleMouseDown = function handleMouseDown(e, col) {
6662
+
6663
+ // 通用的拖拽处理逻辑
6664
+ var handleResize = function handleResize(startEvent, col, eventType) {
6676
6665
  window.addEventListener('selectstart', disableSelect);
6677
6666
  var changedColumnSize = {};
6678
- var startX = e.clientX;
6667
+ var startCoordinates = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_22__["getEventCoordinates"])(startEvent);
6668
+ var startX = startCoordinates.clientX;
6679
6669
  var children = col.children,
6680
6670
  code = col.code,
6681
6671
  _col$features = col.features,
@@ -6686,9 +6676,23 @@ function columnResize() {
6686
6676
  var realMaxSize = typeof maxWidth === 'number' ? maxWidth : maxSize;
6687
6677
  var columnSize = pipeline.getFeatureOptions(COLUMN_SIZE_KEY);
6688
6678
  var recordColumnSize = columnSize;
6689
- e.stopPropagation();
6690
- var nextSize$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_16__["fromEvent"])(window, 'mousemove').pipe(rxjs_operators__WEBPACK_IMPORTED_MODULE_17__["takeUntil"](Object(rxjs__WEBPACK_IMPORTED_MODULE_16__["fromEvent"])(window, 'mouseup')), rxjs_operators__WEBPACK_IMPORTED_MODULE_17__["map"](function (e) {
6691
- var movingX = e.clientX;
6679
+
6680
+ // 根据事件类型选择不同的事件监听器
6681
+ var moveEventName = eventType === 'mouse' ? 'mousemove' : 'touchmove';
6682
+ var endEventName = eventType === 'mouse' ? 'mouseup' : 'touchend';
6683
+ var moveEventOptions = eventType === 'touch' ? {
6684
+ passive: false
6685
+ } : undefined;
6686
+ var endEventOptions = eventType === 'touch' ? {
6687
+ passive: false
6688
+ } : undefined;
6689
+ var nextSize$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_16__["fromEvent"])(window, moveEventName, moveEventOptions).pipe(rxjs_operators__WEBPACK_IMPORTED_MODULE_17__["takeUntil"](Object(rxjs__WEBPACK_IMPORTED_MODULE_16__["fromEvent"])(window, endEventName, endEventOptions)), rxjs_operators__WEBPACK_IMPORTED_MODULE_17__["map"](function (e) {
6690
+ // 触摸事件需要阻止默认行为,防止页面滚动
6691
+ if (eventType === 'touch' && e.cancelable) {
6692
+ e.preventDefault();
6693
+ }
6694
+ var coordinates = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_22__["getEventCoordinates"])(e);
6695
+ var movingX = coordinates.clientX;
6692
6696
  var nextColumnSize = _objectSpread({}, columnSize);
6693
6697
  var deltaSum = pipeline.ctx.direction === 'rtl' ? startX - movingX : movingX - startX;
6694
6698
  var deltaRemaining = deltaSum;
@@ -6745,6 +6749,20 @@ function columnResize() {
6745
6749
  }
6746
6750
  });
6747
6751
  };
6752
+ var handleMouseDown = function handleMouseDown(e, col) {
6753
+ e.stopPropagation();
6754
+ handleResize(e.nativeEvent, col, 'mouse');
6755
+ };
6756
+
6757
+ // 触摸事件处理函数
6758
+ var handleTouchStart = function handleTouchStart(e, col) {
6759
+ // 阻止触摸事件的默认行为
6760
+ if (e.cancelable) {
6761
+ e.preventDefault();
6762
+ }
6763
+ e.stopPropagation();
6764
+ handleResize(e.nativeEvent, col, 'touch');
6765
+ };
6748
6766
  var isGroup = Object(_utils__WEBPACK_IMPORTED_MODULE_18__["isGroupColumn"])(pipeline.getColumns());
6749
6767
  return pipeline.mapColumns(Object(_utils__WEBPACK_IMPORTED_MODULE_18__["makeRecursiveMapper"])(function (col) {
6750
6768
  var _columnSize$code;
@@ -6762,6 +6780,9 @@ function columnResize() {
6762
6780
  },
6763
6781
  onMouseDown: function onMouseDown(e) {
6764
6782
  return handleMouseDown(e, col);
6783
+ },
6784
+ onTouchStart: function onTouchStart(e) {
6785
+ return handleTouchStart(e, col);
6765
6786
  }
6766
6787
  }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_14___default.a.createElement(TableHeaderCellResize, {
6767
6788
  direction: pipeline.ctx.direction,
@@ -6771,6 +6792,9 @@ function columnResize() {
6771
6792
  },
6772
6793
  onMouseDown: function onMouseDown(e) {
6773
6794
  return handleMouseDown(e, col);
6795
+ },
6796
+ onTouchStart: function onTouchStart(e) {
6797
+ return handleTouchStart(e, col);
6774
6798
  }
6775
6799
  }))),
6776
6800
  headerCellProps: Object(_utils__WEBPACK_IMPORTED_MODULE_18__["mergeCellProps"])(col.headerCellProps, {
@@ -9333,6 +9357,8 @@ __webpack_require__.r(__webpack_exports__);
9333
9357
  /* harmony import */ var _base_styles__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../base/styles */ "./components/table/base/styles.ts");
9334
9358
  /* harmony import */ var _const__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../const */ "./components/table/pipeline/const.ts");
9335
9359
  /* harmony import */ var _internals__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../internals */ "./components/table/internals.ts");
9360
+ /* harmony import */ var _utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./utils/touchEventUtils */ "./components/table/pipeline/features/utils/touchEventUtils.tsx");
9361
+
9336
9362
 
9337
9363
 
9338
9364
 
@@ -9374,8 +9400,7 @@ var defaultRowDragColumn = {
9374
9400
  width: "16",
9375
9401
  height: "16"
9376
9402
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8___default.a.createElement("path", {
9377
- 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",
9378
- "p-id": "4278"
9403
+ 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"
9379
9404
  }));
9380
9405
  }
9381
9406
  };
@@ -9404,19 +9429,19 @@ function rowDrag(opt) {
9404
9429
  var treeModeOptions = getTreeModeOptions();
9405
9430
  var rowDragOptions = getRowDragOptions();
9406
9431
  var allowDragIntoRow = !!treeModeOptions && (rowDragOptions === null || rowDragOptions === void 0 ? void 0 : rowDragOptions.allowDragIntoRow);
9407
- var isLeave = !isMouseOnDropTarget(event, dropZoneTarget);
9432
+ var isLeave = !isPointerOnDropTarget(event, dropZoneTarget);
9408
9433
  var overIndex = -1;
9409
9434
  var direction = 'bottom';
9410
9435
  if (!isLeave && dataSource.length > 0) {
9411
- var overDragItem = getDragRowItem(event.target, dropZoneTarget, dataSource);
9436
+ var overDragItem = getDragRowItem(Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_15__["getEventTarget"])(event), dropZoneTarget, dataSource);
9412
9437
  if (overDragItem) {
9413
9438
  var _rowIndex = overDragItem.rowIndex,
9414
9439
  cell = overDragItem.cell;
9415
9440
  overIndex = _rowIndex;
9416
- direction = getDirection(cell, event.clientY, allowDragIntoRow);
9441
+ direction = getDirection(cell, Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_15__["getEventCoordinates"])(event).clientY, allowDragIntoRow);
9417
9442
  }
9418
9443
  }
9419
- if (overIndex === -1 && dataSource.length > 0 && dropZoneTarget.contains(event.target)) {
9444
+ if (overIndex === -1 && dataSource.length > 0 && dropZoneTarget.contains(Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_15__["getEventTarget"])(event))) {
9420
9445
  overIndex = dataSource.length - 1;
9421
9446
  direction = 'bottom';
9422
9447
  }
@@ -9492,9 +9517,27 @@ function rowDrag(opt) {
9492
9517
  }
9493
9518
  };
9494
9519
  var onMouseDown = function onMouseDown(event) {
9520
+ handlePointerDown(event.nativeEvent);
9521
+ };
9522
+
9523
+ // PC 单据移动端显示,兼容移动端的拖拽事件
9524
+ var onTouchStart = function onTouchStart(event) {
9525
+ // 尝试阻止触摸事件的默认行为,防止页面滚动
9526
+ try {
9527
+ if (event.cancelable) {
9528
+ event.preventDefault();
9529
+ }
9530
+ } catch (error) {
9531
+ // 忽略passive event listener错误
9532
+ console.warn('preventDefault failed in passive touch event listener');
9533
+ }
9534
+ handlePointerDown(event.nativeEvent);
9535
+ };
9536
+
9537
+ // 统一的拖拽处理函数
9538
+ var handlePointerDown = function handlePointerDown(startEvent) {
9495
9539
  var _opt$isDisabled;
9496
- var mouseDownEvent = event.nativeEvent;
9497
- var startDataItem = getDragRowItem(mouseDownEvent.target, tableBody, dataSource);
9540
+ var startDataItem = getDragRowItem(Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_15__["getEventTarget"])(startEvent), tableBody, dataSource);
9498
9541
  if (!startDataItem || startDataItem.code !== rowDragColumn.code) return;
9499
9542
  if (opt !== null && opt !== void 0 && (_opt$isDisabled = opt.isDisabled) !== null && _opt$isDisabled !== void 0 && _opt$isDisabled.call(opt, startDataItem.row, startDataItem.rowIndex)) return;
9500
9543
  var isValidDrag = false;
@@ -9506,7 +9549,7 @@ function rowDrag(opt) {
9506
9549
  var intervalId = null;
9507
9550
  var expandRowTimeoutId = null;
9508
9551
  var expandRowCallBackList = [];
9509
- var updateScrollPosition = function updateScrollPosition(tableBody, mouseMoveEvent) {
9552
+ var updateScrollPosition = function updateScrollPosition(tableBody, moveEvent) {
9510
9553
  if (opt !== null && opt !== void 0 && opt.suppressScrollMove) return;
9511
9554
  if (timeoutId) {
9512
9555
  clearTimeout(timeoutId);
@@ -9515,7 +9558,7 @@ function rowDrag(opt) {
9515
9558
  clearInterval(intervalId);
9516
9559
  }
9517
9560
  if (!tableBody) return;
9518
- var moveOffset = getScrollMoveOffset(tableBody, mouseMoveEvent);
9561
+ var moveOffset = getScrollMoveOffset(tableBody, moveEvent);
9519
9562
  if (moveOffset === 0) {
9520
9563
  return;
9521
9564
  }
@@ -9525,29 +9568,53 @@ function rowDrag(opt) {
9525
9568
  }, 50);
9526
9569
  }, 500);
9527
9570
  };
9528
- var handleDragStart = function handleDragStart(mouseDownEvent) {
9571
+ var handleDragStart = function handleDragStart(event) {
9529
9572
  var _opt$rowDragText;
9530
- dragElement = createDragElement(mouseDownEvent, tableBody); // 创建拖拽悬浮框
9573
+ // 屏蔽默认事件,防止文本选择、框选等
9574
+ try {
9575
+ if (event.cancelable) {
9576
+ event.preventDefault();
9577
+ }
9578
+ } catch (error) {
9579
+ // 忽略passive event listener错误
9580
+ console.warn('preventDefault failed in passive event listener');
9581
+ }
9582
+ // 禁用页面的文本选择
9583
+ document.body.style.userSelect = 'none';
9584
+ document.body.style.webkitUserSelect = 'none';
9585
+
9586
+ // 添加拖拽状态的CSS类,可以在样式中进一步控制
9587
+ document.body.classList.add('row-dragging');
9588
+ dragElement = createDragElement(event, tableBody); // 创建拖拽悬浮框
9531
9589
  var isTreeTable = !!pipeline.getFeatureOptions('treeModeOptions');
9532
9590
  dragLine = createDragLine(isTreeTable); // 创建拖拽插入指示线
9533
9591
  var dragText = opt !== null && opt !== void 0 && opt.rowDragText ? opt === null || opt === void 0 ? void 0 : (_opt$rowDragText = opt.rowDragText) === null || _opt$rowDragText === void 0 ? void 0 : _opt$rowDragText.call(opt, startDataItem.row, startDataItem.rowIndex) : "\u7B2C".concat(startDataItem.rowIndex, "\u884C\u5185\u5BB9");
9534
9592
  setDragText(dragElement, dragText); // 设置悬浮框显示文本
9535
9593
  artTable.classList.add(classnames__WEBPACK_IMPORTED_MODULE_11___default()(_base_styles__WEBPACK_IMPORTED_MODULE_12__["Classes"].rowDragging));
9536
9594
  rowDragApi.setDragStatus('start');
9537
- var dragEvent = createDropTargetEvent(currentDropZone, mouseDownEvent, startDataItem, currentDropZone);
9595
+ var dragEvent = createDropTargetEvent(currentDropZone, event, startDataItem, currentDropZone);
9538
9596
  onDragStart(dragEvent);
9539
9597
  };
9540
- var handleDragMove = function handleDragMove(mouseMoveEvent) {
9598
+ var handleDragMove = function handleDragMove(moveEvent) {
9599
+ // 尝试屏蔽默认事件,在passive监听器中可能会失败
9600
+ try {
9601
+ if (moveEvent.cancelable) {
9602
+ moveEvent.preventDefault();
9603
+ }
9604
+ } catch (error) {
9605
+ // 忽略passive event listener错误
9606
+ console.warn('preventDefault failed in passive event listener');
9607
+ }
9541
9608
  var isRTL = pipeline.ctx.direction === 'rtl';
9542
- positionDragElemment(dragElement, mouseMoveEvent, isRTL); // 更新拖拽悬浮框位置
9609
+ positionDragElemment(dragElement, moveEvent, isRTL); // 更新拖拽悬浮框位置
9543
9610
  rowDragApi.setDragStatus('dragging');
9544
9611
  setDragElementIcon(dragElement, 'move');
9545
9612
  var rowDropZones = rowDragApi.getRowDropZone();
9546
9613
  var validDropZones = rowDropZones.concat(currentDropZone); // 可放置区域加上自身
9547
9614
  var dropTarget = validDropZones.find(function (zone) {
9548
- return isMouseOnDropTarget(mouseMoveEvent, zone.getContainer());
9615
+ return isPointerOnDropTarget(moveEvent, zone.getContainer());
9549
9616
  }) || null;
9550
- updateScrollPosition(dropTarget === null || dropTarget === void 0 ? void 0 : dropTarget.getContainer(), mouseMoveEvent); // 拖拽到底时让滚动条可以滚动
9617
+ updateScrollPosition(dropTarget === null || dropTarget === void 0 ? void 0 : dropTarget.getContainer(), moveEvent); // 拖拽到底时让滚动条可以滚动
9551
9618
 
9552
9619
  if (dropTarget !== lastDropTarget) {
9553
9620
  // 拖拽离开表格
@@ -9556,7 +9623,7 @@ function rowDrag(opt) {
9556
9623
  setDragElementIcon(dragElement, 'notAllowed');
9557
9624
  hiddenDragLine(dragLine);
9558
9625
  lastDropTarget.getContainer().classList.remove(_base_styles__WEBPACK_IMPORTED_MODULE_12__["Classes"].rowDragNoData);
9559
- var dragEvent = createDropTargetEvent(lastDropTarget, mouseMoveEvent, startDataItem, currentDropZone);
9626
+ var dragEvent = createDropTargetEvent(lastDropTarget, moveEvent, startDataItem, currentDropZone);
9560
9627
  lastDropTarget.onDragLeave(dragEvent);
9561
9628
  }
9562
9629
  }
@@ -9577,7 +9644,7 @@ function rowDrag(opt) {
9577
9644
  dragLine.classList.remove(_base_styles__WEBPACK_IMPORTED_MODULE_12__["Classes"].treeTableRowDragLine);
9578
9645
  }
9579
9646
  }
9580
- var _dragEvent = createDropTargetEvent(dropTarget, mouseMoveEvent, startDataItem, currentDropZone);
9647
+ var _dragEvent = createDropTargetEvent(dropTarget, moveEvent, startDataItem, currentDropZone);
9581
9648
  dropTarget.onDragEnter(_dragEvent);
9582
9649
  }
9583
9650
  }
@@ -9590,7 +9657,7 @@ function rowDrag(opt) {
9590
9657
  positionDragLine({
9591
9658
  lineElement: dragLine,
9592
9659
  dragZone: dropTarget,
9593
- event: mouseMoveEvent,
9660
+ event: moveEvent,
9594
9661
  isRTL: isRTL
9595
9662
  });
9596
9663
  }
@@ -9608,7 +9675,7 @@ function rowDrag(opt) {
9608
9675
  onCollapse = treeModeOptions.onCollapse;
9609
9676
  // 鼠标悬停所在的拖拽行信息
9610
9677
  var dataSource = dropTarget.tableParams.getDataSource();
9611
- var dragItem = getDragRowItem(mouseMoveEvent.target, dropTarget.getContainer(), dataSource);
9678
+ var dragItem = getDragRowItem(Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_15__["getEventTarget"])(moveEvent), dropTarget.getContainer(), dataSource);
9612
9679
  if (!dragItem) return;
9613
9680
  var row = dragItem.row;
9614
9681
  var _row$treeMetaKey = row[treeMetaKey],
@@ -9623,15 +9690,22 @@ function rowDrag(opt) {
9623
9690
  }, 1000);
9624
9691
  }
9625
9692
  if (dropTarget.onDragging) {
9626
- var _dragEvent2 = createDropTargetEvent(dropTarget, mouseMoveEvent, startDataItem, currentDropZone);
9693
+ var _dragEvent2 = createDropTargetEvent(dropTarget, moveEvent, startDataItem, currentDropZone);
9627
9694
  dropTarget.onDragging(_dragEvent2);
9628
9695
  }
9629
9696
  }
9630
9697
  };
9631
- var handleDragStop = function handleDragStop(mouseUpEvent) {
9698
+ var handleDragStop = function handleDragStop(endEvent) {
9632
9699
  if (!isValidDrag) {
9633
9700
  return;
9634
9701
  }
9702
+
9703
+ // 恢复默认的文本选择功能
9704
+ document.body.style.userSelect = '';
9705
+ document.body.style.webkitUserSelect = '';
9706
+
9707
+ // 移除拖拽状态的CSS类
9708
+ document.body.classList.remove('row-dragging');
9635
9709
  removeElement(dragElement);
9636
9710
  removeElement(dragLine);
9637
9711
  artTable.classList.remove(classnames__WEBPACK_IMPORTED_MODULE_11___default()(_base_styles__WEBPACK_IMPORTED_MODULE_12__["Classes"].rowDragging));
@@ -9646,10 +9720,10 @@ function rowDrag(opt) {
9646
9720
  });
9647
9721
  var validDropZones = rowDropZones.concat(currentDropZone);
9648
9722
  var dropTarget = validDropZones.find(function (zone) {
9649
- return isMouseOnDropTarget(mouseUpEvent, zone.getContainer());
9723
+ return isPointerOnDropTarget(endEvent, zone.getContainer());
9650
9724
  });
9651
9725
  if (dropTarget && dropTarget.onDragStop) {
9652
- var dragEvent = createDropTargetEvent(dropTarget, mouseUpEvent, startDataItem, currentDropZone);
9726
+ var dragEvent = createDropTargetEvent(dropTarget, endEvent, startDataItem, currentDropZone);
9653
9727
  dropTarget.onDragStop(dragEvent);
9654
9728
  }
9655
9729
  while (expandRowCallBackList.length > 0) {
@@ -9657,32 +9731,74 @@ function rowDrag(opt) {
9657
9731
  callback();
9658
9732
  }
9659
9733
  };
9660
- var mousemove$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_9__["fromEvent"])(window, 'mousemove');
9661
- var mouseup$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_9__["fromEvent"])(window, 'mouseup');
9662
- var rowDragMove$ = mousemove$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_10__["filter"])(function (mouseMoveEvent) {
9663
- var mouseMoveClientY = mouseMoveEvent.clientY;
9664
- var mouseDownClientY = mouseDownEvent.clientY;
9665
- // 上下移动偏移量大于5才是有效的拖拽
9666
- if (Math.abs(mouseMoveClientY - mouseDownClientY) > 5) {
9667
- isValidDrag = true;
9668
- }
9669
- return isValidDrag;
9670
- }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_10__["map"])(function (mouseMoveEvent) {
9671
- if (!isDragging) {
9672
- isDragging = true;
9673
- handleDragStart(mouseDownEvent);
9674
- handleDragMove(mouseDownEvent);
9675
- }
9676
- handleDragMove(mouseMoveEvent);
9677
- }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_10__["takeUntil"])(mouseup$));
9678
- rowDragMove$.subscribe();
9679
- var rowDragEnd$ = mouseup$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_10__["map"])(function (mouseUpEvent) {
9680
- handleDragStop(mouseUpEvent);
9681
- })).subscribe({
9682
- next: function next() {
9683
- rowDragEnd$.unsubscribe();
9684
- }
9685
- });
9734
+
9735
+ // 判断是鼠标事件还是触摸事件,分别监听对应的移动和结束事件
9736
+ var isTouchEvent = ('touches' in startEvent);
9737
+ if (isTouchEvent) {
9738
+ // 触摸事件处理
9739
+ var touchmove$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_9__["fromEvent"])(window, 'touchmove', {
9740
+ passive: false
9741
+ });
9742
+ var touchend$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_9__["fromEvent"])(window, 'touchend', {
9743
+ passive: false
9744
+ });
9745
+ var touchDragMove$ = touchmove$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_10__["filter"])(function (moveEvent) {
9746
+ var coordinates = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_15__["getEventCoordinates"])(moveEvent);
9747
+ var startCoordinates = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_15__["getEventCoordinates"])(startEvent);
9748
+ var moveClientY = coordinates.clientY;
9749
+ var startClientY = startCoordinates.clientY;
9750
+ // 上下移动偏移量大于5才是有效的拖拽
9751
+ if (Math.abs(moveClientY - startClientY) > 5) {
9752
+ isValidDrag = true;
9753
+ }
9754
+ return isValidDrag;
9755
+ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_10__["map"])(function (moveEvent) {
9756
+ if (!isDragging) {
9757
+ isDragging = true;
9758
+ handleDragStart(startEvent);
9759
+ handleDragMove(startEvent);
9760
+ }
9761
+ handleDragMove(moveEvent);
9762
+ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_10__["takeUntil"])(touchend$));
9763
+ touchDragMove$.subscribe();
9764
+ var touchDragEnd$ = touchend$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_10__["map"])(function (endEvent) {
9765
+ handleDragStop(endEvent);
9766
+ })).subscribe({
9767
+ next: function next() {
9768
+ touchDragEnd$.unsubscribe();
9769
+ }
9770
+ });
9771
+ } else {
9772
+ // 鼠标事件处理
9773
+ var mousemove$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_9__["fromEvent"])(window, 'mousemove');
9774
+ var mouseup$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_9__["fromEvent"])(window, 'mouseup');
9775
+ var rowDragMove$ = mousemove$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_10__["filter"])(function (moveEvent) {
9776
+ var coordinates = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_15__["getEventCoordinates"])(moveEvent);
9777
+ var startCoordinates = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_15__["getEventCoordinates"])(startEvent);
9778
+ var moveClientY = coordinates.clientY;
9779
+ var startClientY = startCoordinates.clientY;
9780
+ // 上下移动偏移量大于5才是有效的拖拽
9781
+ if (Math.abs(moveClientY - startClientY) > 5) {
9782
+ isValidDrag = true;
9783
+ }
9784
+ return isValidDrag;
9785
+ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_10__["map"])(function (moveEvent) {
9786
+ if (!isDragging) {
9787
+ isDragging = true;
9788
+ handleDragStart(startEvent);
9789
+ handleDragMove(startEvent);
9790
+ }
9791
+ handleDragMove(moveEvent);
9792
+ }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_10__["takeUntil"])(mouseup$));
9793
+ rowDragMove$.subscribe();
9794
+ var rowDragEnd$ = mouseup$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_10__["map"])(function (endEvent) {
9795
+ handleDragStop(endEvent);
9796
+ })).subscribe({
9797
+ next: function next() {
9798
+ rowDragEnd$.unsubscribe();
9799
+ }
9800
+ });
9801
+ }
9686
9802
  };
9687
9803
  var rowDragColumn = (opt === null || opt === void 0 ? void 0 : opt.rowDragColumn) || defaultRowDragColumn;
9688
9804
  pipeline.setFeatureOptions('rowDragColumnKey', rowDragColumn.code);
@@ -9691,7 +9807,8 @@ function rowDrag(opt) {
9691
9807
  nextColumns.unshift(rowDragColumn);
9692
9808
  pipeline.columns(nextColumns);
9693
9809
  pipeline.addTableProps({
9694
- onMouseDown: onMouseDown
9810
+ onMouseDown: onMouseDown,
9811
+ onTouchStart: onTouchStart
9695
9812
  });
9696
9813
  pipeline.appendRowPropsGetter(function (row, rowIndex) {
9697
9814
  var _cx;
@@ -9760,12 +9877,12 @@ function isEleInFooter(target) {
9760
9877
  }
9761
9878
  return false;
9762
9879
  }
9763
- function createDragElement(mouseDownEvent, tableBody) {
9880
+ function createDragElement(event, tableBody) {
9764
9881
  var ELEMENT_TEMPLATE = "<div class='".concat(_base_styles__WEBPACK_IMPORTED_MODULE_12__["Classes"].rowDragElement, "'>\n <span class='").concat(_base_styles__WEBPACK_IMPORTED_MODULE_12__["Classes"].rowDragElementIcon, "'></span>\n <div class='").concat(_base_styles__WEBPACK_IMPORTED_MODULE_12__["Classes"].rowDragElementLabel, "'></div>\n </div>");
9765
9882
  var element = document.createElement('div');
9766
9883
  element.innerHTML = ELEMENT_TEMPLATE;
9767
9884
  var dragElement = element.firstChild;
9768
- var targetRow = findTargetRow(mouseDownEvent.target, tableBody);
9885
+ var targetRow = findTargetRow(Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_15__["getEventTarget"])(event), tableBody);
9769
9886
  if (targetRow) {
9770
9887
  var rect = targetRow.getBoundingClientRect();
9771
9888
  dragElement.style.height = rect.height + 'px';
@@ -9809,9 +9926,9 @@ function positionDragLine(_ref) {
9809
9926
  lineElement.style.display = 'block';
9810
9927
  }
9811
9928
  // 鼠标悬停所在的拖拽行信息
9812
- var dragItem = getDragRowItem(event.target, tableContainer, dataSource);
9929
+ var dragItem = getDragRowItem(Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_15__["getEventTarget"])(event), tableContainer, dataSource);
9813
9930
  if (!dragItem) {
9814
- if (dataSource.length > 0 && tableContainer.contains(event.target)) {
9931
+ if (dataSource.length > 0 && tableContainer.contains(Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_15__["getEventTarget"])(event))) {
9815
9932
  var _rowIndex3 = dataSource.length - 1;
9816
9933
  var _row2 = dataSource[_rowIndex3];
9817
9934
  var _direction = 'bottom';
@@ -9839,7 +9956,7 @@ function positionDragLine(_ref) {
9839
9956
  rowIndex = dragItem.rowIndex,
9840
9957
  row = dragItem.row;
9841
9958
  var allowDragInto = isTreeTable && allowDragIntoRow;
9842
- var direction = getDirection(cell, event.clientY, allowDragInto);
9959
+ var direction = getDirection(cell, Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_15__["getEventCoordinates"])(event).clientY, allowDragInto);
9843
9960
  var targetCell = isTreeTable ? tableContainer.querySelector("tr[data-rowindex=\"".concat(rowIndex, "\"] .").concat(_base_styles__WEBPACK_IMPORTED_MODULE_12__["Classes"].tableExtendCell)) : cell;
9844
9961
  if (!targetCell) return;
9845
9962
  var _getLinePosition2 = getLinePosition({
@@ -9877,8 +9994,9 @@ function positionDragElemment(element, event, isRTL) {
9877
9994
  var browserWidth = (_document$body$client = (_document$body = document.body) === null || _document$body === void 0 ? void 0 : _document$body.clientWidth) !== null && _document$body$client !== void 0 ? _document$body$client : window.innerHeight || ((_document$documentEle = document.documentElement) === null || _document$documentEle === void 0 ? void 0 : _document$documentEle.clientWidth) || 0;
9878
9995
  var browserHeight = (_document$body$client2 = (_document$body2 = document.body) === null || _document$body2 === void 0 ? void 0 : _document$body2.clientHeight) !== null && _document$body$client2 !== void 0 ? _document$body$client2 : window.innerHeight || ((_document$documentEle2 = document.documentElement) === null || _document$documentEle2 === void 0 ? void 0 : _document$documentEle2.clientHeight) || 0;
9879
9996
  var offsetParentSize = getElementRectWithOffset(element.offsetParent);
9880
- var clientX = event.clientX,
9881
- clientY = event.clientY;
9997
+ var _getEventCoordinates = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_15__["getEventCoordinates"])(event),
9998
+ clientX = _getEventCoordinates.clientX,
9999
+ clientY = _getEventCoordinates.clientY;
9882
10000
  var top = clientY - offsetParentSize.top - eleHeight / 2;
9883
10001
  var left = clientX - offsetParentSize.left;
9884
10002
  var right = Math.max(browserWidth - clientX, 0);
@@ -9894,11 +10012,11 @@ function positionDragElemment(element, event, isRTL) {
9894
10012
  right = Math.max(browserWidth + windowScrollX - element.clientWidth, 0);
9895
10013
  }
9896
10014
  if (isRTL) {
9897
- element.style.cssText += ";right: ".concat(right, "px; top: ").concat(top, "px;");
9898
- return;
10015
+ element.style.right = right + 'px';
10016
+ } else {
10017
+ element.style.left = left + 'px';
9899
10018
  }
9900
- element.style.left = "".concat(left, "px");
9901
- element.style.top = "".concat(top, "px");
10019
+ element.style.top = top + 'px';
9902
10020
  }
9903
10021
  function getElementRectWithOffset(el) {
9904
10022
  var offsetElementRect = el.getBoundingClientRect();
@@ -9965,12 +10083,13 @@ function setDragElementIcon(element, iconName) {
9965
10083
  elementIcon.appendChild(iconElement);
9966
10084
  }
9967
10085
  function clearElementChildren(element) {
9968
- while (element && element.firstChild) {
10086
+ while (element !== null && element !== void 0 && element.firstChild) {
9969
10087
  element.removeChild(element.firstChild);
9970
10088
  }
9971
10089
  }
9972
- function getScrollMoveOffset(tableBody, mouseMoveEvent) {
9973
- var clientY = mouseMoveEvent.clientY;
10090
+ function getScrollMoveOffset(tableBody, moveEvent) {
10091
+ var _getEventCoordinates2 = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_15__["getEventCoordinates"])(moveEvent),
10092
+ clientY = _getEventCoordinates2.clientY;
9974
10093
  var tableBodyClientRect = tableBody.getBoundingClientRect();
9975
10094
  var top = tableBodyClientRect.top,
9976
10095
  height = tableBodyClientRect.height;
@@ -9988,15 +10107,19 @@ function setDragText(element, dragText) {
9988
10107
  var stringNode = document.createTextNode(dragTextString);
9989
10108
  elementIcon.appendChild(stringNode);
9990
10109
  }
9991
- function isMouseOnDropTarget(mouseEvent, target) {
9992
- return target.contains(mouseEvent.target);
10110
+ function isPointerOnDropTarget(pointerEvent, target) {
10111
+ var eventTarget = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_15__["getEventTarget"])(pointerEvent);
10112
+ return target.contains(eventTarget);
9993
10113
  }
9994
10114
  function createDropTargetEvent(dropZone, event, dragItem, startDropZone) {
9995
10115
  var dropZoneTarget = dropZone.getContainer();
9996
10116
  var startDropZoneTagret = startDropZone.getContainer();
9997
10117
  var rect = dropZoneTarget.getBoundingClientRect();
9998
- var x = event.clientX - rect.left;
9999
- var y = event.clientY - rect.top;
10118
+ var _getEventCoordinates3 = Object(_utils_touchEventUtils__WEBPACK_IMPORTED_MODULE_15__["getEventCoordinates"])(event),
10119
+ clientX = _getEventCoordinates3.clientX,
10120
+ clientY = _getEventCoordinates3.clientY;
10121
+ var x = clientX - rect.left;
10122
+ var y = clientY - rect.top;
10000
10123
  var startDropZoneOptions = startDropZone.tableParams.getRowDragOptions();
10001
10124
  var startCommonParams = startDropZoneOptions === null || startDropZoneOptions === void 0 ? void 0 : startDropZoneOptions.commonParams;
10002
10125
  var targetEvent = {
@@ -10053,10 +10176,8 @@ var getLinePosition = function getLinePosition(_ref2) {
10053
10176
  paddingRight = _getElementSize3.paddingRight;
10054
10177
  var expandCellRect = cell.getBoundingClientRect();
10055
10178
  var _row$treeMetaKey2 = row[treeMetaKey],
10056
- rowKey = _row$treeMetaKey2.rowKey,
10057
10179
  depth = _row$treeMetaKey2.depth,
10058
- isLeaf = _row$treeMetaKey2.isLeaf,
10059
- expanded = _row$treeMetaKey2.expanded;
10180
+ isLeaf = _row$treeMetaKey2.isLeaf;
10060
10181
  var addWidth = isLeaf ? iconWidth + iconGap : 0;
10061
10182
  var indent = iconIndent + depth * indentSize + addWidth;
10062
10183
  var x = expandCellRect.x,
@@ -11443,6 +11564,94 @@ function treeSelect(opts) {
11443
11564
 
11444
11565
  /***/ }),
11445
11566
 
11567
+ /***/ "./components/table/pipeline/features/utils/touchEventUtils.tsx":
11568
+ /*!**********************************************************************!*\
11569
+ !*** ./components/table/pipeline/features/utils/touchEventUtils.tsx ***!
11570
+ \**********************************************************************/
11571
+ /*! exports provided: getEventCoordinates, getEventTarget, isTouchEvent, addPointerEventListeners, removePointerEventListeners, hasMovedEnough */
11572
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
11573
+
11574
+ "use strict";
11575
+ __webpack_require__.r(__webpack_exports__);
11576
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEventCoordinates", function() { return getEventCoordinates; });
11577
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEventTarget", function() { return getEventTarget; });
11578
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isTouchEvent", function() { return isTouchEvent; });
11579
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addPointerEventListeners", function() { return addPointerEventListeners; });
11580
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removePointerEventListeners", function() { return removePointerEventListeners; });
11581
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasMovedEnough", function() { return hasMovedEnough; });
11582
+ // 统一获取事件坐标的函数
11583
+ function getEventCoordinates(event) {
11584
+ if ('touches' in event && event.touches.length > 0) {
11585
+ return {
11586
+ clientX: event.touches[0].clientX,
11587
+ clientY: event.touches[0].clientY
11588
+ };
11589
+ } else if ('changedTouches' in event && event.changedTouches.length > 0) {
11590
+ return {
11591
+ clientX: event.changedTouches[0].clientX,
11592
+ clientY: event.changedTouches[0].clientY
11593
+ };
11594
+ } else {
11595
+ return {
11596
+ clientX: event.clientX,
11597
+ clientY: event.clientY
11598
+ };
11599
+ }
11600
+ }
11601
+
11602
+ // 获取事件目标元素
11603
+ function getEventTarget(event) {
11604
+ if ('touches' in event && event.touches.length > 0) {
11605
+ return document.elementFromPoint(event.touches[0].clientX, event.touches[0].clientY);
11606
+ }
11607
+ // 处理touchend事件,此时touches为空,需要使用changedTouches
11608
+ if ('changedTouches' in event && event.changedTouches.length > 0) {
11609
+ return document.elementFromPoint(event.changedTouches[0].clientX, event.changedTouches[0].clientY);
11610
+ }
11611
+ return event.target;
11612
+ }
11613
+
11614
+ // 判断是否为触摸事件
11615
+ function isTouchEvent(event) {
11616
+ return 'touches' in event;
11617
+ }
11618
+
11619
+ // 为元素添加统一的指针事件监听器
11620
+ function addPointerEventListeners(element, handlers, isTouchStart) {
11621
+ if (isTouchStart) {
11622
+ element.addEventListener('touchmove', handlers.onPointerMove, {
11623
+ passive: false
11624
+ });
11625
+ element.addEventListener('touchend', handlers.onPointerUp, {
11626
+ passive: false
11627
+ });
11628
+ } else {
11629
+ element.addEventListener('mousemove', handlers.onPointerMove);
11630
+ element.addEventListener('mouseup', handlers.onPointerUp);
11631
+ }
11632
+ }
11633
+
11634
+ // 移除统一的指针事件监听器
11635
+ function removePointerEventListeners(element, handlers, isTouchStart) {
11636
+ if (isTouchStart) {
11637
+ element.removeEventListener('touchmove', handlers.onPointerMove);
11638
+ element.removeEventListener('touchend', handlers.onPointerUp);
11639
+ } else {
11640
+ element.removeEventListener('mousemove', handlers.onPointerMove);
11641
+ element.removeEventListener('mouseup', handlers.onPointerUp);
11642
+ }
11643
+ }
11644
+
11645
+ // 检查是否移动了足够的距离(用于区分点击和拖拽)
11646
+ function hasMovedEnough(startX, startY, endX, endY) {
11647
+ var threshold = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 5;
11648
+ var xDiff = endX - startX;
11649
+ var yDiff = endY - startY;
11650
+ return Math.sqrt(xDiff * xDiff + yDiff * yDiff) > threshold;
11651
+ }
11652
+
11653
+ /***/ }),
11654
+
11446
11655
  /***/ "./components/table/pipeline/index.ts":
11447
11656
  /*!********************************************!*\
11448
11657
  !*** ./components/table/pipeline/index.ts ***!