vue-devui 1.6.25 → 1.6.27
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/code-review/index.es.js +45 -27
- package/code-review/index.umd.js +22 -22
- package/package.json +1 -1
- package/types/code-review/src/composables/use-code-review-line-selection.d.ts +4 -1
- package/types/code-review/src/utils.d.ts +4 -0
- package/vue-devui.es.js +46 -28
- package/vue-devui.umd.js +65 -65
package/code-review/index.es.js
CHANGED
|
@@ -6813,6 +6813,36 @@ function findParentTrNode(node) {
|
|
|
6813
6813
|
}
|
|
6814
6814
|
return findParentTrNode(node.parentElement);
|
|
6815
6815
|
}
|
|
6816
|
+
function getFullNumberList(min, max) {
|
|
6817
|
+
return Array.from({ length: max - min + 1 }, (_, i) => i + min);
|
|
6818
|
+
}
|
|
6819
|
+
function getLineNumbers(trNodes, outputFormat, side) {
|
|
6820
|
+
var _a, _b;
|
|
6821
|
+
const leftNumbers = [];
|
|
6822
|
+
const rightNumbers = [];
|
|
6823
|
+
for (let i = 0; i < trNodes.length; i++) {
|
|
6824
|
+
const itemTrNode = trNodes[i];
|
|
6825
|
+
if (outputFormat === "line-by-line") {
|
|
6826
|
+
const lineNumberTdNode = Array.from(itemTrNode.children)[0];
|
|
6827
|
+
const leftLineNumber = parseInt((_a = lineNumberTdNode.children[0]) == null ? void 0 : _a.innerText);
|
|
6828
|
+
const rightLineNumber = parseInt((_b = lineNumberTdNode.children[1]) == null ? void 0 : _b.innerText);
|
|
6829
|
+
leftLineNumber && leftNumbers.push(leftLineNumber);
|
|
6830
|
+
rightLineNumber && rightNumbers.push(rightLineNumber);
|
|
6831
|
+
} else {
|
|
6832
|
+
const tdNodes = Array.from(itemTrNode.children);
|
|
6833
|
+
const lineNumberTdNode = tdNodes[side === "left" ? 0 : 2];
|
|
6834
|
+
if (lineNumberTdNode && notEmptyNode(lineNumberTdNode)) {
|
|
6835
|
+
const lineNumber = parseInt(lineNumberTdNode.innerText);
|
|
6836
|
+
if (lineNumber) {
|
|
6837
|
+
side === "left" ? leftNumbers.push(lineNumber) : rightNumbers.push(lineNumber);
|
|
6838
|
+
}
|
|
6839
|
+
}
|
|
6840
|
+
}
|
|
6841
|
+
}
|
|
6842
|
+
const lefts = leftNumbers.length ? getFullNumberList(leftNumbers[0], leftNumbers[leftNumbers.length - 1]) : leftNumbers;
|
|
6843
|
+
const rights = rightNumbers.length ? getFullNumberList(rightNumbers[0], rightNumbers[rightNumbers.length - 1]) : rightNumbers;
|
|
6844
|
+
return { lefts, rights };
|
|
6845
|
+
}
|
|
6816
6846
|
function useCodeReviewExpand(reviewContentRef, props) {
|
|
6817
6847
|
const { outputFormat, expandThreshold, expandLoader } = toRefs(props);
|
|
6818
6848
|
const processSideBySide = () => {
|
|
@@ -7040,7 +7070,7 @@ function useCodeReviewFold(props, ctx) {
|
|
|
7040
7070
|
});
|
|
7041
7071
|
return { isFold, toggleFold };
|
|
7042
7072
|
}
|
|
7043
|
-
function useCodeReviewLineSelection(reviewContentRef, props,
|
|
7073
|
+
function useCodeReviewLineSelection(reviewContentRef, props, afterMouseup) {
|
|
7044
7074
|
const ns2 = useNamespace("code-review");
|
|
7045
7075
|
let dragging = false;
|
|
7046
7076
|
let startTrNode;
|
|
@@ -7048,7 +7078,7 @@ function useCodeReviewLineSelection(reviewContentRef, props, mouseMoveCb, mouseu
|
|
|
7048
7078
|
let isClickedLeft;
|
|
7049
7079
|
let shouldClear;
|
|
7050
7080
|
let isMouseMoved;
|
|
7051
|
-
let
|
|
7081
|
+
let checkedTrNodes = [];
|
|
7052
7082
|
const onMousedown = (e) => {
|
|
7053
7083
|
if (e.button === 0) {
|
|
7054
7084
|
const composedPath = e.composedPath();
|
|
@@ -7081,7 +7111,6 @@ function useCodeReviewLineSelection(reviewContentRef, props, mouseMoveCb, mouseu
|
|
|
7081
7111
|
dragging = true;
|
|
7082
7112
|
shouldClear = true;
|
|
7083
7113
|
isMouseMoved = false;
|
|
7084
|
-
startClientY = e.clientY;
|
|
7085
7114
|
e.preventDefault();
|
|
7086
7115
|
e.stopPropagation();
|
|
7087
7116
|
document.addEventListener("mousemove", onMousemove);
|
|
@@ -7114,7 +7143,6 @@ function useCodeReviewLineSelection(reviewContentRef, props, mouseMoveCb, mouseu
|
|
|
7114
7143
|
if (endIndex === -1) {
|
|
7115
7144
|
return;
|
|
7116
7145
|
}
|
|
7117
|
-
mouseMoveCb(e.clientY > startClientY ? "down" : "up");
|
|
7118
7146
|
if (startIndex > endIndex) {
|
|
7119
7147
|
[startIndex, endIndex] = [endIndex, startIndex];
|
|
7120
7148
|
}
|
|
@@ -7126,9 +7154,11 @@ function useCodeReviewLineSelection(reviewContentRef, props, mouseMoveCb, mouseu
|
|
|
7126
7154
|
} else {
|
|
7127
7155
|
position = "right";
|
|
7128
7156
|
}
|
|
7157
|
+
checkedTrNodes = [];
|
|
7129
7158
|
for (let i = 0; i < trNodes.length; i++) {
|
|
7130
7159
|
if (i >= startIndex && i <= endIndex) {
|
|
7131
7160
|
toggleCommentCheckedClass(trNodes[i], true, position);
|
|
7161
|
+
checkedTrNodes.push(trNodes[i]);
|
|
7132
7162
|
} else {
|
|
7133
7163
|
toggleCommentCheckedClass(trNodes[i], false, position);
|
|
7134
7164
|
}
|
|
@@ -7137,7 +7167,7 @@ function useCodeReviewLineSelection(reviewContentRef, props, mouseMoveCb, mouseu
|
|
|
7137
7167
|
function onMouseup() {
|
|
7138
7168
|
dragging = false;
|
|
7139
7169
|
if (isMouseMoved) {
|
|
7140
|
-
|
|
7170
|
+
afterMouseup(getLineNumbers(checkedTrNodes, props.outputFormat, isClickedLeft ? "left" : "right"));
|
|
7141
7171
|
}
|
|
7142
7172
|
document.removeEventListener("mouseup", onMouseup);
|
|
7143
7173
|
document.removeEventListener("mousemove", onMousemove);
|
|
@@ -7176,7 +7206,7 @@ function useCodeReviewLineSelection(reviewContentRef, props, mouseMoveCb, mouseu
|
|
|
7176
7206
|
function useCodeReviewComment(reviewContentRef, props, ctx) {
|
|
7177
7207
|
const { outputFormat, allowComment, allowChecked } = toRefs(props);
|
|
7178
7208
|
const ns2 = useNamespace("code-review");
|
|
7179
|
-
const { onMousedown } = useCodeReviewLineSelection(reviewContentRef, props,
|
|
7209
|
+
const { onMousedown } = useCodeReviewLineSelection(reviewContentRef, props, afterMouseup);
|
|
7180
7210
|
const commentLeft = ref(-100);
|
|
7181
7211
|
const commentTop = ref(-100);
|
|
7182
7212
|
let currentLeftLineNumber = -1;
|
|
@@ -7279,24 +7309,6 @@ function useCodeReviewComment(reviewContentRef, props, ctx) {
|
|
|
7279
7309
|
resetLeftTop();
|
|
7280
7310
|
}
|
|
7281
7311
|
};
|
|
7282
|
-
const getLineNumbers = (currentNumber, currentNumbers, moveDirection) => {
|
|
7283
|
-
if (currentNumber === -1) {
|
|
7284
|
-
return currentNumbers;
|
|
7285
|
-
}
|
|
7286
|
-
if (currentNumbers.length === 0) {
|
|
7287
|
-
return [currentNumber];
|
|
7288
|
-
}
|
|
7289
|
-
const numbers = [...currentNumbers];
|
|
7290
|
-
let max = Math.max(...numbers);
|
|
7291
|
-
let min = Math.min(...numbers);
|
|
7292
|
-
if (moveDirection === "down") {
|
|
7293
|
-
max = currentNumber;
|
|
7294
|
-
}
|
|
7295
|
-
if (moveDirection === "up") {
|
|
7296
|
-
min = currentNumber;
|
|
7297
|
-
}
|
|
7298
|
-
return Array.from({ length: max - min + 1 }, (_, i) => i + min);
|
|
7299
|
-
};
|
|
7300
7312
|
const getCommonClassAndJudge = () => {
|
|
7301
7313
|
const checkedLine = [currentLeftLineNumbers, currentRightLineNumbers];
|
|
7302
7314
|
return {
|
|
@@ -7363,9 +7375,9 @@ function useCodeReviewComment(reviewContentRef, props, ctx) {
|
|
|
7363
7375
|
}
|
|
7364
7376
|
getDoubleCheckedLineCode(shouldRenderClass);
|
|
7365
7377
|
}
|
|
7366
|
-
function updateLineNumbers(
|
|
7367
|
-
currentLeftLineNumbers =
|
|
7368
|
-
currentRightLineNumbers =
|
|
7378
|
+
function updateLineNumbers({ lefts, rights }) {
|
|
7379
|
+
currentLeftLineNumbers = lefts;
|
|
7380
|
+
currentRightLineNumbers = rights;
|
|
7369
7381
|
getCheckedLineCode(false);
|
|
7370
7382
|
afterCheckLinesEmitData = {
|
|
7371
7383
|
left: currentLeftLineNumber,
|
|
@@ -7378,6 +7390,8 @@ function useCodeReviewComment(reviewContentRef, props, ctx) {
|
|
|
7378
7390
|
};
|
|
7379
7391
|
}
|
|
7380
7392
|
const updateCheckedLineClass = () => {
|
|
7393
|
+
const lineClassName = props.outputFormat === "line-by-line" ? ".d2h-code-linenumber" : ".d2h-code-side-linenumber";
|
|
7394
|
+
allTrNodes = reviewContentRef.value.querySelectorAll(lineClassName);
|
|
7381
7395
|
getCheckedLineCode(true);
|
|
7382
7396
|
};
|
|
7383
7397
|
const resetCommentClass = () => {
|
|
@@ -7414,6 +7428,10 @@ function useCodeReviewComment(reviewContentRef, props, ctx) {
|
|
|
7414
7428
|
function afterCheckLines() {
|
|
7415
7429
|
ctx.emit("afterCheckLines", afterCheckLinesEmitData);
|
|
7416
7430
|
}
|
|
7431
|
+
function afterMouseup(lineNumbers) {
|
|
7432
|
+
updateLineNumbers(lineNumbers);
|
|
7433
|
+
afterCheckLines();
|
|
7434
|
+
}
|
|
7417
7435
|
const onCommentIconClick = (e) => {
|
|
7418
7436
|
if (e) {
|
|
7419
7437
|
const composedPath = e.composedPath();
|