@kdcloudjs/table 1.2.0-canary.16 → 1.2.0-canary.17
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 +37 -13
- package/dist/@kdcloudjs/table.js.map +1 -1
- package/dist/@kdcloudjs/table.min.css +1 -1
- package/dist/@kdcloudjs/table.min.js +6 -6
- package/dist/@kdcloudjs/table.min.js.map +1 -1
- package/es/table/base/helpers/TableDOMUtils.js +3 -1
- package/es/table/base/table.js +2 -2
- package/es/table/pipeline/features/rowDrag.js +31 -9
- package/lib/table/base/helpers/TableDOMUtils.js +3 -1
- package/lib/table/base/table.js +2 -2
- package/lib/table/pipeline/features/rowDrag.js +31 -9
- package/package.json +1 -1
|
@@ -94,7 +94,9 @@ export var TableDOMHelper = /*#__PURE__*/function () {
|
|
|
94
94
|
|
|
95
95
|
var stickyScrollSelector = _concatInstanceProperty(_context2 = _concatInstanceProperty(_context3 = ".".concat(Classes.artTable, " + .")).call(_context3, Classes.horizontalStickyScrollContainer, " .")).call(_context2, Classes.stickyScroll);
|
|
96
96
|
|
|
97
|
-
|
|
97
|
+
var stickyScrolls = artTableWrapper.querySelectorAll(stickyScrollSelector);
|
|
98
|
+
this.stickyScroll = stickyScrolls[stickyScrolls.length - 1]; // 当嵌套多层表格时,需要查找最后一个,否则会查找到父表格内嵌套的子表格的
|
|
99
|
+
|
|
98
100
|
this.stickyScrollItem = this.stickyScroll.querySelector(".".concat(Classes.stickyScrollItem));
|
|
99
101
|
}
|
|
100
102
|
|
package/es/table/base/table.js
CHANGED
|
@@ -252,10 +252,10 @@ export var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
252
252
|
// }
|
|
253
253
|
this.hasScrollY = true;
|
|
254
254
|
} else {
|
|
255
|
-
stickyScroll.style.paddingRight =
|
|
255
|
+
// stickyScroll.style.paddingRight = `${stickyScrollHeight}px`
|
|
256
|
+
// this.setState({
|
|
256
257
|
// hasScrollY: false
|
|
257
258
|
// })
|
|
258
|
-
|
|
259
259
|
this.hasScrollY = false;
|
|
260
260
|
}
|
|
261
261
|
|
|
@@ -119,15 +119,32 @@ export function rowDrag(opt) {
|
|
|
119
119
|
var tableWidth = tableBody.clientWidth;
|
|
120
120
|
var startRowRects = startRowInfo.cell.getBoundingClientRect(); // 光标位置距离初始拖拽行的偏移量
|
|
121
121
|
|
|
122
|
-
var startOffset = mouseDownEvent.clientY - startRowRects.
|
|
122
|
+
var startOffset = mouseDownEvent.clientY - startRowRects.top;
|
|
123
123
|
var dragElement = createDragElement(startRowRects, tableWidth, rowHeight); // 可拖拽的范围
|
|
124
124
|
|
|
125
125
|
var dragRange = getDragRange(tableBody, {
|
|
126
126
|
startOffset: startOffset,
|
|
127
|
-
rowHeight:
|
|
127
|
+
rowHeight: rowHeight
|
|
128
128
|
});
|
|
129
|
+
var mousePosition = {
|
|
130
|
+
x: mouseDownEvent.clientX,
|
|
131
|
+
y: mouseDownEvent.clientY
|
|
132
|
+
};
|
|
129
133
|
var mousemove$ = fromEvent(window, 'mousemove');
|
|
130
134
|
var mouseup$ = fromEvent(window, 'mouseup');
|
|
135
|
+
|
|
136
|
+
var scrollCallback = function scrollCallback(event) {
|
|
137
|
+
// 在当前表格内滚动不处理
|
|
138
|
+
if (event.target === tableBody) return;
|
|
139
|
+
dragRange = getDragRange(tableBody, {
|
|
140
|
+
startOffset: startOffset,
|
|
141
|
+
rowHeight: rowHeight
|
|
142
|
+
});
|
|
143
|
+
var isOutOfRange = isOutOfDragRange(mousePosition, dragRange);
|
|
144
|
+
updateCurSorStyle(isOutOfRange);
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
document.addEventListener('scroll', scrollCallback, true);
|
|
131
148
|
var rowDrag$ = mousemove$.pipe(map(function (mouseMoveEvent) {
|
|
132
149
|
var clientX = mouseMoveEvent.clientX,
|
|
133
150
|
clientY = mouseMoveEvent.clientY;
|
|
@@ -139,12 +156,16 @@ export function rowDrag(opt) {
|
|
|
139
156
|
|
|
140
157
|
var targetRowRects = endRowInfo.cell.getBoundingClientRect(); // 判断拖拽插入的位置,拖拽框上边框位于目标行之上则向上插入,否则向下插入
|
|
141
158
|
|
|
142
|
-
var isMoveToTop = clientY - startOffset < targetRowRects.
|
|
159
|
+
var isMoveToTop = clientY - startOffset < targetRowRects.top;
|
|
143
160
|
dragPosition = isMoveToTop ? 'top' : 'bottom';
|
|
144
161
|
isOutOfRange = isOutOfDragRange({
|
|
145
162
|
x: clientX,
|
|
146
163
|
y: clientY
|
|
147
164
|
}, dragRange);
|
|
165
|
+
mousePosition = {
|
|
166
|
+
x: clientX,
|
|
167
|
+
y: clientY
|
|
168
|
+
};
|
|
148
169
|
updateScrollPosition(mouseMoveEvent); // 拖拽到底时让滚动条可以滚动
|
|
149
170
|
|
|
150
171
|
updateDragElementPosition(dragElement, dragRange, {
|
|
@@ -178,6 +199,7 @@ export function rowDrag(opt) {
|
|
|
178
199
|
handleDragEnd(dragEndEvent, isOutOfRange);
|
|
179
200
|
removeDragElement(dragElement);
|
|
180
201
|
removeCurSorStyle();
|
|
202
|
+
document.removeEventListener('scroll', scrollCallback, true);
|
|
181
203
|
}
|
|
182
204
|
});
|
|
183
205
|
};
|
|
@@ -291,13 +313,13 @@ function getDragRange(tableBody, _ref4) {
|
|
|
291
313
|
var tableBodyClientRect = tableBody.getBoundingClientRect();
|
|
292
314
|
var height = tableBodyClientRect.height,
|
|
293
315
|
width = tableBodyClientRect.width,
|
|
294
|
-
|
|
295
|
-
|
|
316
|
+
top = tableBodyClientRect.top,
|
|
317
|
+
left = tableBodyClientRect.left;
|
|
296
318
|
return {
|
|
297
|
-
minX:
|
|
298
|
-
maxX:
|
|
299
|
-
minY:
|
|
300
|
-
maxY:
|
|
319
|
+
minX: left,
|
|
320
|
+
maxX: left + width,
|
|
321
|
+
minY: top - rowHeight + startOffset,
|
|
322
|
+
maxY: top + height + startOffset
|
|
301
323
|
};
|
|
302
324
|
}
|
|
303
325
|
|
|
@@ -107,7 +107,9 @@ var TableDOMHelper = /*#__PURE__*/function () {
|
|
|
107
107
|
this.tableFooter = this.artTable.querySelector(".".concat(_styles.Classes.tableFooter));
|
|
108
108
|
this.tableFooterMain = this.artTable.querySelector(".".concat(_styles.Classes.tableFooterMain));
|
|
109
109
|
var stickyScrollSelector = (0, _concat.default)(_context2 = (0, _concat.default)(_context3 = ".".concat(_styles.Classes.artTable, " + .")).call(_context3, _styles.Classes.horizontalStickyScrollContainer, " .")).call(_context2, _styles.Classes.stickyScroll);
|
|
110
|
-
|
|
110
|
+
var stickyScrolls = artTableWrapper.querySelectorAll(stickyScrollSelector);
|
|
111
|
+
this.stickyScroll = stickyScrolls[stickyScrolls.length - 1]; // 当嵌套多层表格时,需要查找最后一个,否则会查找到父表格内嵌套的子表格的
|
|
112
|
+
|
|
111
113
|
this.stickyScrollItem = this.stickyScroll.querySelector(".".concat(_styles.Classes.stickyScrollItem));
|
|
112
114
|
}
|
|
113
115
|
|
package/lib/table/base/table.js
CHANGED
|
@@ -303,10 +303,10 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
303
303
|
// }
|
|
304
304
|
this.hasScrollY = true;
|
|
305
305
|
} else {
|
|
306
|
-
stickyScroll.style.paddingRight =
|
|
306
|
+
// stickyScroll.style.paddingRight = `${stickyScrollHeight}px`
|
|
307
|
+
// this.setState({
|
|
307
308
|
// hasScrollY: false
|
|
308
309
|
// })
|
|
309
|
-
|
|
310
310
|
this.hasScrollY = false;
|
|
311
311
|
}
|
|
312
312
|
|
|
@@ -143,15 +143,32 @@ function rowDrag(opt) {
|
|
|
143
143
|
var tableWidth = tableBody.clientWidth;
|
|
144
144
|
var startRowRects = startRowInfo.cell.getBoundingClientRect(); // 光标位置距离初始拖拽行的偏移量
|
|
145
145
|
|
|
146
|
-
var startOffset = mouseDownEvent.clientY - startRowRects.
|
|
146
|
+
var startOffset = mouseDownEvent.clientY - startRowRects.top;
|
|
147
147
|
var dragElement = createDragElement(startRowRects, tableWidth, rowHeight); // 可拖拽的范围
|
|
148
148
|
|
|
149
149
|
var dragRange = getDragRange(tableBody, {
|
|
150
150
|
startOffset: startOffset,
|
|
151
|
-
rowHeight:
|
|
151
|
+
rowHeight: rowHeight
|
|
152
152
|
});
|
|
153
|
+
var mousePosition = {
|
|
154
|
+
x: mouseDownEvent.clientX,
|
|
155
|
+
y: mouseDownEvent.clientY
|
|
156
|
+
};
|
|
153
157
|
var mousemove$ = (0, _rxjs.fromEvent)(window, 'mousemove');
|
|
154
158
|
var mouseup$ = (0, _rxjs.fromEvent)(window, 'mouseup');
|
|
159
|
+
|
|
160
|
+
var scrollCallback = function scrollCallback(event) {
|
|
161
|
+
// 在当前表格内滚动不处理
|
|
162
|
+
if (event.target === tableBody) return;
|
|
163
|
+
dragRange = getDragRange(tableBody, {
|
|
164
|
+
startOffset: startOffset,
|
|
165
|
+
rowHeight: rowHeight
|
|
166
|
+
});
|
|
167
|
+
var isOutOfRange = isOutOfDragRange(mousePosition, dragRange);
|
|
168
|
+
updateCurSorStyle(isOutOfRange);
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
document.addEventListener('scroll', scrollCallback, true);
|
|
155
172
|
var rowDrag$ = mousemove$.pipe((0, _mapInstanceProperty(_operators))(function (mouseMoveEvent) {
|
|
156
173
|
var clientX = mouseMoveEvent.clientX,
|
|
157
174
|
clientY = mouseMoveEvent.clientY;
|
|
@@ -163,12 +180,16 @@ function rowDrag(opt) {
|
|
|
163
180
|
|
|
164
181
|
var targetRowRects = endRowInfo.cell.getBoundingClientRect(); // 判断拖拽插入的位置,拖拽框上边框位于目标行之上则向上插入,否则向下插入
|
|
165
182
|
|
|
166
|
-
var isMoveToTop = clientY - startOffset < targetRowRects.
|
|
183
|
+
var isMoveToTop = clientY - startOffset < targetRowRects.top;
|
|
167
184
|
dragPosition = isMoveToTop ? 'top' : 'bottom';
|
|
168
185
|
isOutOfRange = isOutOfDragRange({
|
|
169
186
|
x: clientX,
|
|
170
187
|
y: clientY
|
|
171
188
|
}, dragRange);
|
|
189
|
+
mousePosition = {
|
|
190
|
+
x: clientX,
|
|
191
|
+
y: clientY
|
|
192
|
+
};
|
|
172
193
|
updateScrollPosition(mouseMoveEvent); // 拖拽到底时让滚动条可以滚动
|
|
173
194
|
|
|
174
195
|
updateDragElementPosition(dragElement, dragRange, {
|
|
@@ -202,6 +223,7 @@ function rowDrag(opt) {
|
|
|
202
223
|
handleDragEnd(dragEndEvent, isOutOfRange);
|
|
203
224
|
removeDragElement(dragElement);
|
|
204
225
|
removeCurSorStyle();
|
|
226
|
+
document.removeEventListener('scroll', scrollCallback, true);
|
|
205
227
|
}
|
|
206
228
|
});
|
|
207
229
|
};
|
|
@@ -313,13 +335,13 @@ function getDragRange(tableBody, _ref4) {
|
|
|
313
335
|
var tableBodyClientRect = tableBody.getBoundingClientRect();
|
|
314
336
|
var height = tableBodyClientRect.height,
|
|
315
337
|
width = tableBodyClientRect.width,
|
|
316
|
-
|
|
317
|
-
|
|
338
|
+
top = tableBodyClientRect.top,
|
|
339
|
+
left = tableBodyClientRect.left;
|
|
318
340
|
return {
|
|
319
|
-
minX:
|
|
320
|
-
maxX:
|
|
321
|
-
minY:
|
|
322
|
-
maxY:
|
|
341
|
+
minX: left,
|
|
342
|
+
maxX: left + width,
|
|
343
|
+
minY: top - rowHeight + startOffset,
|
|
344
|
+
maxY: top + height + startOffset
|
|
323
345
|
};
|
|
324
346
|
}
|
|
325
347
|
|