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.
@@ -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, mouseMoveCb, mouseupCb) {
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 startClientY;
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
- mouseupCb();
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, updateLineNumbers, afterCheckLines);
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(moveDirection) {
7367
- currentLeftLineNumbers = currentLeftLineNumber === -1 ? currentLeftLineNumbers : getLineNumbers(currentLeftLineNumber, currentLeftLineNumbers, moveDirection);
7368
- currentRightLineNumbers = currentRightLineNumber === -1 ? currentRightLineNumbers : getLineNumbers(currentRightLineNumber, currentRightLineNumbers, moveDirection);
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();