@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.
- package/dist/@kdcloudjs/table.css +1 -1
- package/dist/@kdcloudjs/table.js +540 -331
- package/dist/@kdcloudjs/table.js.map +1 -1
- package/dist/@kdcloudjs/table.min.css +1 -1
- package/dist/@kdcloudjs/table.min.js +4 -4
- package/dist/@kdcloudjs/table.min.js.map +1 -1
- package/es/table/base/BlankComponent.d.ts +0 -1
- package/es/table/base/BlankComponent.js +16 -9
- package/es/table/pipeline/features/columnDrag.js +220 -242
- package/es/table/pipeline/features/columnResizeWidth.js +40 -5
- package/es/table/pipeline/features/rowDrag.js +169 -80
- package/es/table/pipeline/features/utils/touchEventUtils.d.ts +15 -0
- package/es/table/pipeline/features/utils/touchEventUtils.js +65 -0
- package/lib/table/base/BlankComponent.d.ts +0 -1
- package/lib/table/base/BlankComponent.js +15 -8
- package/lib/table/pipeline/features/columnDrag.js +220 -242
- package/lib/table/pipeline/features/columnResizeWidth.js +40 -5
- package/lib/table/pipeline/features/rowDrag.js +169 -80
- package/lib/table/pipeline/features/utils/touchEventUtils.d.ts +15 -0
- package/lib/table/pipeline/features/utils/touchEventUtils.js +76 -0
- package/package.json +2 -1
package/dist/@kdcloudjs/table.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
*
|
|
3
|
-
* @kdcloudjs/table v1.2.2-canary.
|
|
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
|
|
833
|
-
|
|
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
|
|
855
|
-
|
|
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'
|
|
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
|
|
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
|
|
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:
|
|
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
|
-
|
|
5830
|
-
|
|
5831
|
-
|
|
5832
|
-
//
|
|
5833
|
-
|
|
5834
|
-
|
|
5835
|
-
|
|
5836
|
-
|
|
5837
|
-
|
|
5838
|
-
|
|
5839
|
-
|
|
5840
|
-
|
|
5841
|
-
|
|
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
|
-
|
|
5915
|
-
|
|
5916
|
-
|
|
5917
|
-
|
|
5918
|
-
|
|
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
|
-
|
|
5922
|
-
|
|
5923
|
-
|
|
5924
|
-
|
|
5925
|
-
|
|
5926
|
-
|
|
5927
|
-
|
|
5928
|
-
|
|
5929
|
-
|
|
5930
|
-
|
|
5931
|
-
|
|
5932
|
-
|
|
5933
|
-
|
|
5934
|
-
|
|
5935
|
-
|
|
5936
|
-
|
|
5937
|
-
|
|
5938
|
-
|
|
5939
|
-
|
|
5940
|
-
|
|
5941
|
-
|
|
5942
|
-
|
|
5943
|
-
|
|
5944
|
-
|
|
5945
|
-
|
|
5946
|
-
|
|
5947
|
-
|
|
5948
|
-
|
|
5949
|
-
|
|
5950
|
-
|
|
5951
|
-
|
|
5952
|
-
|
|
5953
|
-
|
|
5954
|
-
|
|
5955
|
-
|
|
5956
|
-
|
|
5957
|
-
|
|
5958
|
-
|
|
5959
|
-
|
|
5960
|
-
|
|
5961
|
-
|
|
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
|
-
|
|
5978
|
-
pipeline.setStateAtKey(stateKey, {
|
|
5979
|
-
cloumnsTranslateData: cloumnsTranslateData
|
|
5980
|
-
});
|
|
5981
|
-
moveData = [startIndex, replaceIndex];
|
|
5982
|
-
});
|
|
5951
|
+
index++;
|
|
5983
5952
|
}
|
|
5984
|
-
|
|
5985
|
-
|
|
5986
|
-
|
|
5987
|
-
|
|
5988
|
-
|
|
5989
|
-
|
|
5990
|
-
|
|
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
|
-
|
|
5994
|
-
|
|
5995
|
-
|
|
5996
|
-
|
|
5997
|
-
|
|
5998
|
-
|
|
5999
|
-
|
|
6000
|
-
|
|
6001
|
-
|
|
6002
|
-
|
|
6003
|
-
|
|
6004
|
-
|
|
6005
|
-
|
|
6006
|
-
|
|
6007
|
-
|
|
6008
|
-
|
|
6009
|
-
|
|
6010
|
-
|
|
6011
|
-
|
|
6012
|
-
|
|
6013
|
-
|
|
6014
|
-
|
|
6015
|
-
|
|
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
|
-
|
|
6045
|
-
|
|
6046
|
-
|
|
6047
|
-
|
|
6048
|
-
|
|
6049
|
-
|
|
6050
|
-
|
|
6051
|
-
|
|
6052
|
-
|
|
6053
|
-
|
|
6054
|
-
|
|
6055
|
-
|
|
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
|
-
|
|
6058
|
-
|
|
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
|
-
|
|
6062
|
-
|
|
6063
|
-
currentTarget.style.cursor = '';
|
|
6049
|
+
// TODO drag需要在resize之后use,否则这里返回的列对应的宽度不是拖拽后的
|
|
6050
|
+
onColumnDragStopped(columnMoved, newColumns);
|
|
6064
6051
|
}
|
|
6065
|
-
|
|
6066
|
-
|
|
6067
|
-
|
|
6068
|
-
|
|
6069
|
-
|
|
6070
|
-
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
|
-
|
|
6662
|
+
|
|
6663
|
+
// 通用的拖拽处理逻辑
|
|
6664
|
+
var handleResize = function handleResize(startEvent, col, eventType) {
|
|
6676
6665
|
window.addEventListener('selectstart', disableSelect);
|
|
6677
6666
|
var changedColumnSize = {};
|
|
6678
|
-
var
|
|
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
|
-
|
|
6690
|
-
|
|
6691
|
-
|
|
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 = !
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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(
|
|
9571
|
+
var handleDragStart = function handleDragStart(event) {
|
|
9529
9572
|
var _opt$rowDragText;
|
|
9530
|
-
|
|
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,
|
|
9595
|
+
var dragEvent = createDropTargetEvent(currentDropZone, event, startDataItem, currentDropZone);
|
|
9538
9596
|
onDragStart(dragEvent);
|
|
9539
9597
|
};
|
|
9540
|
-
var handleDragMove = function handleDragMove(
|
|
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,
|
|
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
|
|
9615
|
+
return isPointerOnDropTarget(moveEvent, zone.getContainer());
|
|
9549
9616
|
}) || null;
|
|
9550
|
-
updateScrollPosition(dropTarget === null || dropTarget === void 0 ? void 0 : dropTarget.getContainer(),
|
|
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,
|
|
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,
|
|
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:
|
|
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(
|
|
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,
|
|
9693
|
+
var _dragEvent2 = createDropTargetEvent(dropTarget, moveEvent, startDataItem, currentDropZone);
|
|
9627
9694
|
dropTarget.onDragging(_dragEvent2);
|
|
9628
9695
|
}
|
|
9629
9696
|
}
|
|
9630
9697
|
};
|
|
9631
|
-
var handleDragStop = function handleDragStop(
|
|
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
|
|
9723
|
+
return isPointerOnDropTarget(endEvent, zone.getContainer());
|
|
9650
9724
|
});
|
|
9651
9725
|
if (dropTarget && dropTarget.onDragStop) {
|
|
9652
|
-
var dragEvent = createDropTargetEvent(dropTarget,
|
|
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
|
-
|
|
9661
|
-
|
|
9662
|
-
var
|
|
9663
|
-
|
|
9664
|
-
|
|
9665
|
-
|
|
9666
|
-
|
|
9667
|
-
|
|
9668
|
-
|
|
9669
|
-
|
|
9670
|
-
|
|
9671
|
-
|
|
9672
|
-
|
|
9673
|
-
|
|
9674
|
-
|
|
9675
|
-
|
|
9676
|
-
|
|
9677
|
-
|
|
9678
|
-
|
|
9679
|
-
|
|
9680
|
-
|
|
9681
|
-
|
|
9682
|
-
|
|
9683
|
-
|
|
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(
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
9881
|
-
|
|
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.
|
|
9898
|
-
|
|
10015
|
+
element.style.right = right + 'px';
|
|
10016
|
+
} else {
|
|
10017
|
+
element.style.left = left + 'px';
|
|
9899
10018
|
}
|
|
9900
|
-
element.style.
|
|
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,
|
|
9973
|
-
var
|
|
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
|
|
9992
|
-
|
|
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
|
|
9999
|
-
|
|
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 ***!
|