vue-devui 1.6.24 → 1.6.26
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 -25
- package/code-review/index.umd.js +20 -20
- 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 -26
- 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(leftLineNumber);
|
|
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,6 +17788,7 @@ function useCodeReviewLineSelection(reviewContentRef, props, mouseMoveCb, mouseu
|
|
|
17758
17788
|
let isClickedLeft;
|
|
17759
17789
|
let shouldClear;
|
|
17760
17790
|
let isMouseMoved;
|
|
17791
|
+
let checkedTrNodes = [];
|
|
17761
17792
|
const onMousedown2 = (e) => {
|
|
17762
17793
|
if (e.button === 0) {
|
|
17763
17794
|
const composedPath = e.composedPath();
|
|
@@ -17822,7 +17853,6 @@ function useCodeReviewLineSelection(reviewContentRef, props, mouseMoveCb, mouseu
|
|
|
17822
17853
|
if (endIndex === -1) {
|
|
17823
17854
|
return;
|
|
17824
17855
|
}
|
|
17825
|
-
mouseMoveCb();
|
|
17826
17856
|
if (startIndex > endIndex) {
|
|
17827
17857
|
[startIndex, endIndex] = [endIndex, startIndex];
|
|
17828
17858
|
}
|
|
@@ -17834,9 +17864,11 @@ function useCodeReviewLineSelection(reviewContentRef, props, mouseMoveCb, mouseu
|
|
|
17834
17864
|
} else {
|
|
17835
17865
|
position = "right";
|
|
17836
17866
|
}
|
|
17867
|
+
checkedTrNodes = [];
|
|
17837
17868
|
for (let i = 0; i < trNodes.length; i++) {
|
|
17838
17869
|
if (i >= startIndex && i <= endIndex) {
|
|
17839
17870
|
toggleCommentCheckedClass(trNodes[i], true, position);
|
|
17871
|
+
checkedTrNodes.push(trNodes[i]);
|
|
17840
17872
|
} else {
|
|
17841
17873
|
toggleCommentCheckedClass(trNodes[i], false, position);
|
|
17842
17874
|
}
|
|
@@ -17845,7 +17877,7 @@ function useCodeReviewLineSelection(reviewContentRef, props, mouseMoveCb, mouseu
|
|
|
17845
17877
|
function onMouseup() {
|
|
17846
17878
|
dragging = false;
|
|
17847
17879
|
if (isMouseMoved) {
|
|
17848
|
-
|
|
17880
|
+
afterMouseup(getLineNumbers(checkedTrNodes, props.outputFormat, isClickedLeft ? "left" : "right"));
|
|
17849
17881
|
}
|
|
17850
17882
|
document.removeEventListener("mouseup", onMouseup);
|
|
17851
17883
|
document.removeEventListener("mousemove", onMousemove);
|
|
@@ -17884,7 +17916,7 @@ function useCodeReviewLineSelection(reviewContentRef, props, mouseMoveCb, mouseu
|
|
|
17884
17916
|
function useCodeReviewComment(reviewContentRef, props, ctx2) {
|
|
17885
17917
|
const { outputFormat, allowComment, allowChecked } = toRefs(props);
|
|
17886
17918
|
const ns2 = useNamespace$1("code-review");
|
|
17887
|
-
const { onMousedown: onMousedown2 } = useCodeReviewLineSelection(reviewContentRef, props,
|
|
17919
|
+
const { onMousedown: onMousedown2 } = useCodeReviewLineSelection(reviewContentRef, props, afterMouseup);
|
|
17888
17920
|
const commentLeft = ref(-100);
|
|
17889
17921
|
const commentTop = ref(-100);
|
|
17890
17922
|
let currentLeftLineNumber = -1;
|
|
@@ -17987,24 +18019,6 @@ function useCodeReviewComment(reviewContentRef, props, ctx2) {
|
|
|
17987
18019
|
resetLeftTop();
|
|
17988
18020
|
}
|
|
17989
18021
|
};
|
|
17990
|
-
const getLineNumbers = (currentNumber, currentNumbers) => {
|
|
17991
|
-
if (currentNumber === -1) {
|
|
17992
|
-
return currentNumbers;
|
|
17993
|
-
}
|
|
17994
|
-
if (currentNumbers.length === 0) {
|
|
17995
|
-
return [currentNumber];
|
|
17996
|
-
}
|
|
17997
|
-
const numbers = [...currentNumbers];
|
|
17998
|
-
let max = Math.max(...numbers);
|
|
17999
|
-
let min = Math.min(...numbers);
|
|
18000
|
-
if (currentNumber < min) {
|
|
18001
|
-
min = currentNumber;
|
|
18002
|
-
}
|
|
18003
|
-
if (currentNumber > max) {
|
|
18004
|
-
max = currentNumber;
|
|
18005
|
-
}
|
|
18006
|
-
return Array.from({ length: max - min + 1 }, (_, i) => i + min);
|
|
18007
|
-
};
|
|
18008
18022
|
const getCommonClassAndJudge = () => {
|
|
18009
18023
|
const checkedLine = [currentLeftLineNumbers, currentRightLineNumbers];
|
|
18010
18024
|
return {
|
|
@@ -18071,9 +18085,9 @@ function useCodeReviewComment(reviewContentRef, props, ctx2) {
|
|
|
18071
18085
|
}
|
|
18072
18086
|
getDoubleCheckedLineCode(shouldRenderClass);
|
|
18073
18087
|
}
|
|
18074
|
-
function updateLineNumbers() {
|
|
18075
|
-
currentLeftLineNumbers =
|
|
18076
|
-
currentRightLineNumbers =
|
|
18088
|
+
function updateLineNumbers({ lefts, rights }) {
|
|
18089
|
+
currentLeftLineNumbers = lefts;
|
|
18090
|
+
currentRightLineNumbers = rights;
|
|
18077
18091
|
getCheckedLineCode(false);
|
|
18078
18092
|
afterCheckLinesEmitData = {
|
|
18079
18093
|
left: currentLeftLineNumber,
|
|
@@ -18086,6 +18100,8 @@ function useCodeReviewComment(reviewContentRef, props, ctx2) {
|
|
|
18086
18100
|
};
|
|
18087
18101
|
}
|
|
18088
18102
|
const updateCheckedLineClass = () => {
|
|
18103
|
+
const lineClassName = props.outputFormat === "line-by-line" ? ".d2h-code-linenumber" : ".d2h-code-side-linenumber";
|
|
18104
|
+
allTrNodes = reviewContentRef.value.querySelectorAll(lineClassName);
|
|
18089
18105
|
getCheckedLineCode(true);
|
|
18090
18106
|
};
|
|
18091
18107
|
const resetCommentClass = () => {
|
|
@@ -18122,6 +18138,10 @@ function useCodeReviewComment(reviewContentRef, props, ctx2) {
|
|
|
18122
18138
|
function afterCheckLines() {
|
|
18123
18139
|
ctx2.emit("afterCheckLines", afterCheckLinesEmitData);
|
|
18124
18140
|
}
|
|
18141
|
+
function afterMouseup(lineNumbers) {
|
|
18142
|
+
updateLineNumbers(lineNumbers);
|
|
18143
|
+
afterCheckLines();
|
|
18144
|
+
}
|
|
18125
18145
|
const onCommentIconClick = (e) => {
|
|
18126
18146
|
if (e) {
|
|
18127
18147
|
const composedPath = e.composedPath();
|
|
@@ -54285,7 +54305,7 @@ const installs = [
|
|
|
54285
54305
|
VirtualListInstall
|
|
54286
54306
|
];
|
|
54287
54307
|
var vueDevui = {
|
|
54288
|
-
version: "1.6.
|
|
54308
|
+
version: "1.6.26",
|
|
54289
54309
|
install(app) {
|
|
54290
54310
|
installs.forEach((p) => app.use(p));
|
|
54291
54311
|
}
|