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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue-devui",
3
- "version": "1.6.24",
3
+ "version": "1.6.26",
4
4
  "license": "MIT",
5
5
  "description": "DevUI components based on Vite and Vue3",
6
6
  "keywords": [
@@ -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, mouseMoveCb: () => void, mouseupCb: () => void): {
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, mouseMoveCb, mouseupCb) {
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
- mouseupCb();
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, updateLineNumbers, afterCheckLines);
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 = currentLeftLineNumber === -1 ? currentLeftLineNumbers : getLineNumbers(currentLeftLineNumber, currentLeftLineNumbers);
18076
- currentRightLineNumbers = currentRightLineNumber === -1 ? currentRightLineNumbers : getLineNumbers(currentRightLineNumber, 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.24",
54308
+ version: "1.6.26",
54289
54309
  install(app) {
54290
54310
  installs.forEach((p) => app.use(p));
54291
54311
  }