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/package.json
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { Ref } from 'vue';
|
|
2
2
|
import type { CodeReviewProps } from '../code-review-types';
|
|
3
|
-
export declare function useCodeReviewLineSelection(reviewContentRef: Ref<HTMLElement>, props: CodeReviewProps,
|
|
3
|
+
export declare function useCodeReviewLineSelection(reviewContentRef: Ref<HTMLElement>, props: CodeReviewProps, afterMouseup: (lineNumbers: {
|
|
4
|
+
lefts: number[];
|
|
5
|
+
rights: number[];
|
|
6
|
+
}) => void): {
|
|
4
7
|
onMousedown: (e: MouseEvent) => void;
|
|
5
8
|
};
|
|
@@ -19,3 +19,7 @@ export declare function addCommentToPageForDoubleColumn(lineHost: HTMLElement, c
|
|
|
19
19
|
export declare function findReferenceDomForSingleColumn(parentNode: HTMLElement, lineNumber: number, lineSide: LineSide): HTMLTableRowElement | undefined;
|
|
20
20
|
export declare function findReferenceDomForDoubleColumn(parentNode: HTMLElement, lineNumber: number, lineSide: LineSide): HTMLTableRowElement | undefined;
|
|
21
21
|
export declare function findParentTrNode(node: HTMLElement | null): any;
|
|
22
|
+
export declare function getLineNumbers(trNodes: HTMLElement[], outputFormat: OutputFormat, side: LineSide): {
|
|
23
|
+
lefts: number[];
|
|
24
|
+
rights: number[];
|
|
25
|
+
};
|
package/vue-devui.es.js
CHANGED
|
@@ -17523,6 +17523,36 @@ function findParentTrNode(node) {
|
|
|
17523
17523
|
}
|
|
17524
17524
|
return findParentTrNode(node.parentElement);
|
|
17525
17525
|
}
|
|
17526
|
+
function getFullNumberList(min, max) {
|
|
17527
|
+
return Array.from({ length: max - min + 1 }, (_, i) => i + min);
|
|
17528
|
+
}
|
|
17529
|
+
function getLineNumbers(trNodes, outputFormat, side) {
|
|
17530
|
+
var _a, _b;
|
|
17531
|
+
const leftNumbers = [];
|
|
17532
|
+
const rightNumbers = [];
|
|
17533
|
+
for (let i = 0; i < trNodes.length; i++) {
|
|
17534
|
+
const itemTrNode = trNodes[i];
|
|
17535
|
+
if (outputFormat === "line-by-line") {
|
|
17536
|
+
const lineNumberTdNode = Array.from(itemTrNode.children)[0];
|
|
17537
|
+
const leftLineNumber = parseInt((_a = lineNumberTdNode.children[0]) == null ? void 0 : _a.innerText);
|
|
17538
|
+
const rightLineNumber = parseInt((_b = lineNumberTdNode.children[1]) == null ? void 0 : _b.innerText);
|
|
17539
|
+
leftLineNumber && leftNumbers.push(leftLineNumber);
|
|
17540
|
+
rightLineNumber && rightNumbers.push(rightLineNumber);
|
|
17541
|
+
} else {
|
|
17542
|
+
const tdNodes = Array.from(itemTrNode.children);
|
|
17543
|
+
const lineNumberTdNode = tdNodes[side === "left" ? 0 : 2];
|
|
17544
|
+
if (lineNumberTdNode && notEmptyNode(lineNumberTdNode)) {
|
|
17545
|
+
const lineNumber = parseInt(lineNumberTdNode.innerText);
|
|
17546
|
+
if (lineNumber) {
|
|
17547
|
+
side === "left" ? leftNumbers.push(lineNumber) : rightNumbers.push(lineNumber);
|
|
17548
|
+
}
|
|
17549
|
+
}
|
|
17550
|
+
}
|
|
17551
|
+
}
|
|
17552
|
+
const lefts = leftNumbers.length ? getFullNumberList(leftNumbers[0], leftNumbers[leftNumbers.length - 1]) : leftNumbers;
|
|
17553
|
+
const rights = rightNumbers.length ? getFullNumberList(rightNumbers[0], rightNumbers[rightNumbers.length - 1]) : rightNumbers;
|
|
17554
|
+
return { lefts, rights };
|
|
17555
|
+
}
|
|
17526
17556
|
function useCodeReviewExpand(reviewContentRef, props) {
|
|
17527
17557
|
const { outputFormat, expandThreshold, expandLoader } = toRefs(props);
|
|
17528
17558
|
const processSideBySide = () => {
|
|
@@ -17750,7 +17780,7 @@ function useCodeReviewFold(props, ctx2) {
|
|
|
17750
17780
|
});
|
|
17751
17781
|
return { isFold, toggleFold };
|
|
17752
17782
|
}
|
|
17753
|
-
function useCodeReviewLineSelection(reviewContentRef, props,
|
|
17783
|
+
function useCodeReviewLineSelection(reviewContentRef, props, afterMouseup) {
|
|
17754
17784
|
const ns2 = useNamespace$1("code-review");
|
|
17755
17785
|
let dragging = false;
|
|
17756
17786
|
let startTrNode;
|
|
@@ -17758,7 +17788,7 @@ function useCodeReviewLineSelection(reviewContentRef, props, mouseMoveCb, mouseu
|
|
|
17758
17788
|
let isClickedLeft;
|
|
17759
17789
|
let shouldClear;
|
|
17760
17790
|
let isMouseMoved;
|
|
17761
|
-
let
|
|
17791
|
+
let checkedTrNodes = [];
|
|
17762
17792
|
const onMousedown2 = (e) => {
|
|
17763
17793
|
if (e.button === 0) {
|
|
17764
17794
|
const composedPath = e.composedPath();
|
|
@@ -17791,7 +17821,6 @@ function useCodeReviewLineSelection(reviewContentRef, props, mouseMoveCb, mouseu
|
|
|
17791
17821
|
dragging = true;
|
|
17792
17822
|
shouldClear = true;
|
|
17793
17823
|
isMouseMoved = false;
|
|
17794
|
-
startClientY = e.clientY;
|
|
17795
17824
|
e.preventDefault();
|
|
17796
17825
|
e.stopPropagation();
|
|
17797
17826
|
document.addEventListener("mousemove", onMousemove);
|
|
@@ -17824,7 +17853,6 @@ function useCodeReviewLineSelection(reviewContentRef, props, mouseMoveCb, mouseu
|
|
|
17824
17853
|
if (endIndex === -1) {
|
|
17825
17854
|
return;
|
|
17826
17855
|
}
|
|
17827
|
-
mouseMoveCb(e.clientY > startClientY ? "down" : "up");
|
|
17828
17856
|
if (startIndex > endIndex) {
|
|
17829
17857
|
[startIndex, endIndex] = [endIndex, startIndex];
|
|
17830
17858
|
}
|
|
@@ -17836,9 +17864,11 @@ function useCodeReviewLineSelection(reviewContentRef, props, mouseMoveCb, mouseu
|
|
|
17836
17864
|
} else {
|
|
17837
17865
|
position = "right";
|
|
17838
17866
|
}
|
|
17867
|
+
checkedTrNodes = [];
|
|
17839
17868
|
for (let i = 0; i < trNodes.length; i++) {
|
|
17840
17869
|
if (i >= startIndex && i <= endIndex) {
|
|
17841
17870
|
toggleCommentCheckedClass(trNodes[i], true, position);
|
|
17871
|
+
checkedTrNodes.push(trNodes[i]);
|
|
17842
17872
|
} else {
|
|
17843
17873
|
toggleCommentCheckedClass(trNodes[i], false, position);
|
|
17844
17874
|
}
|
|
@@ -17847,7 +17877,7 @@ function useCodeReviewLineSelection(reviewContentRef, props, mouseMoveCb, mouseu
|
|
|
17847
17877
|
function onMouseup() {
|
|
17848
17878
|
dragging = false;
|
|
17849
17879
|
if (isMouseMoved) {
|
|
17850
|
-
|
|
17880
|
+
afterMouseup(getLineNumbers(checkedTrNodes, props.outputFormat, isClickedLeft ? "left" : "right"));
|
|
17851
17881
|
}
|
|
17852
17882
|
document.removeEventListener("mouseup", onMouseup);
|
|
17853
17883
|
document.removeEventListener("mousemove", onMousemove);
|
|
@@ -17886,7 +17916,7 @@ function useCodeReviewLineSelection(reviewContentRef, props, mouseMoveCb, mouseu
|
|
|
17886
17916
|
function useCodeReviewComment(reviewContentRef, props, ctx2) {
|
|
17887
17917
|
const { outputFormat, allowComment, allowChecked } = toRefs(props);
|
|
17888
17918
|
const ns2 = useNamespace$1("code-review");
|
|
17889
|
-
const { onMousedown: onMousedown2 } = useCodeReviewLineSelection(reviewContentRef, props,
|
|
17919
|
+
const { onMousedown: onMousedown2 } = useCodeReviewLineSelection(reviewContentRef, props, afterMouseup);
|
|
17890
17920
|
const commentLeft = ref(-100);
|
|
17891
17921
|
const commentTop = ref(-100);
|
|
17892
17922
|
let currentLeftLineNumber = -1;
|
|
@@ -17989,24 +18019,6 @@ function useCodeReviewComment(reviewContentRef, props, ctx2) {
|
|
|
17989
18019
|
resetLeftTop();
|
|
17990
18020
|
}
|
|
17991
18021
|
};
|
|
17992
|
-
const getLineNumbers = (currentNumber, currentNumbers, moveDirection) => {
|
|
17993
|
-
if (currentNumber === -1) {
|
|
17994
|
-
return currentNumbers;
|
|
17995
|
-
}
|
|
17996
|
-
if (currentNumbers.length === 0) {
|
|
17997
|
-
return [currentNumber];
|
|
17998
|
-
}
|
|
17999
|
-
const numbers = [...currentNumbers];
|
|
18000
|
-
let max = Math.max(...numbers);
|
|
18001
|
-
let min = Math.min(...numbers);
|
|
18002
|
-
if (moveDirection === "down") {
|
|
18003
|
-
max = currentNumber;
|
|
18004
|
-
}
|
|
18005
|
-
if (moveDirection === "up") {
|
|
18006
|
-
min = currentNumber;
|
|
18007
|
-
}
|
|
18008
|
-
return Array.from({ length: max - min + 1 }, (_, i) => i + min);
|
|
18009
|
-
};
|
|
18010
18022
|
const getCommonClassAndJudge = () => {
|
|
18011
18023
|
const checkedLine = [currentLeftLineNumbers, currentRightLineNumbers];
|
|
18012
18024
|
return {
|
|
@@ -18073,9 +18085,9 @@ function useCodeReviewComment(reviewContentRef, props, ctx2) {
|
|
|
18073
18085
|
}
|
|
18074
18086
|
getDoubleCheckedLineCode(shouldRenderClass);
|
|
18075
18087
|
}
|
|
18076
|
-
function updateLineNumbers(
|
|
18077
|
-
currentLeftLineNumbers =
|
|
18078
|
-
currentRightLineNumbers =
|
|
18088
|
+
function updateLineNumbers({ lefts, rights }) {
|
|
18089
|
+
currentLeftLineNumbers = lefts;
|
|
18090
|
+
currentRightLineNumbers = rights;
|
|
18079
18091
|
getCheckedLineCode(false);
|
|
18080
18092
|
afterCheckLinesEmitData = {
|
|
18081
18093
|
left: currentLeftLineNumber,
|
|
@@ -18088,6 +18100,8 @@ function useCodeReviewComment(reviewContentRef, props, ctx2) {
|
|
|
18088
18100
|
};
|
|
18089
18101
|
}
|
|
18090
18102
|
const updateCheckedLineClass = () => {
|
|
18103
|
+
const lineClassName = props.outputFormat === "line-by-line" ? ".d2h-code-linenumber" : ".d2h-code-side-linenumber";
|
|
18104
|
+
allTrNodes = reviewContentRef.value.querySelectorAll(lineClassName);
|
|
18091
18105
|
getCheckedLineCode(true);
|
|
18092
18106
|
};
|
|
18093
18107
|
const resetCommentClass = () => {
|
|
@@ -18124,6 +18138,10 @@ function useCodeReviewComment(reviewContentRef, props, ctx2) {
|
|
|
18124
18138
|
function afterCheckLines() {
|
|
18125
18139
|
ctx2.emit("afterCheckLines", afterCheckLinesEmitData);
|
|
18126
18140
|
}
|
|
18141
|
+
function afterMouseup(lineNumbers) {
|
|
18142
|
+
updateLineNumbers(lineNumbers);
|
|
18143
|
+
afterCheckLines();
|
|
18144
|
+
}
|
|
18127
18145
|
const onCommentIconClick = (e) => {
|
|
18128
18146
|
if (e) {
|
|
18129
18147
|
const composedPath = e.composedPath();
|
|
@@ -54287,7 +54305,7 @@ const installs = [
|
|
|
54287
54305
|
VirtualListInstall
|
|
54288
54306
|
];
|
|
54289
54307
|
var vueDevui = {
|
|
54290
|
-
version: "1.6.
|
|
54308
|
+
version: "1.6.27",
|
|
54291
54309
|
install(app) {
|
|
54292
54310
|
installs.forEach((p) => app.use(p));
|
|
54293
54311
|
}
|