Stop re-exporting basic diff types from gr-diff-line.ts
Also replace 'FILE' by FILE and 'LOST' by LOST.
This makes forking embed/diff/... easier.
Release-Notes: skip
Change-Id: Ief3784d6450694604c4e5156db0b6088e9f6b3c4
diff --git a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-group.ts b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-group.ts
index 6d80d78..771e298 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-group.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-group.ts
@@ -3,9 +3,8 @@
* Copyright 2016 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
-import {BLANK_LINE, GrDiffLine, GrDiffLineType} from './gr-diff-line';
-import {LineRange, Side} from '../../../api/diff';
-import {LineNumber} from './gr-diff-line';
+import {BLANK_LINE, GrDiffLine} from './gr-diff-line';
+import {GrDiffLineType, LineNumber, LineRange, Side} from '../../../api/diff';
import {assertIsDefined, assert} from '../../../utils/common-util';
import {untilRendered} from '../../../utils/dom-util';
import {isDefined} from '../../../types/types';
@@ -133,12 +132,10 @@
for (const line of group.lines) {
if (
(line.beforeNumber &&
- line.beforeNumber !== 'FILE' &&
- line.beforeNumber !== 'LOST' &&
+ typeof line.beforeNumber === 'number' &&
line.beforeNumber < leftSplit) ||
(line.afterNumber &&
- line.afterNumber !== 'FILE' &&
- line.afterNumber !== 'LOST' &&
+ typeof line.afterNumber === 'number' &&
line.afterNumber < rightSplit)
) {
before.push(line);
@@ -435,7 +432,7 @@
}
containsLine(side: Side, line: LineNumber) {
- if (line === 'FILE' || line === 'LOST') {
+ if (typeof line !== 'number') {
// For FILE and LOST, beforeNumber and afterNumber are the same
return this.lines[0]?.beforeNumber === line;
}
@@ -462,14 +459,8 @@
}
private _updateRangeWithNewLine(line: GrDiffLine) {
- if (
- line.beforeNumber === 'FILE' ||
- line.afterNumber === 'FILE' ||
- line.beforeNumber === 'LOST' ||
- line.afterNumber === 'LOST'
- ) {
- return;
- }
+ if (typeof line.beforeNumber !== 'number') return;
+ if (typeof line.afterNumber !== 'number') return;
if (line.type === GrDiffLineType.ADD || line.type === GrDiffLineType.BOTH) {
if (
@@ -505,8 +496,7 @@
// untilRendered() promise.
if (
this.skip !== undefined ||
- lineNumber === 'LOST' ||
- lineNumber === 'FILE' ||
+ typeof lineNumber !== 'number' ||
this.type === GrDiffGroupType.CONTEXT_CONTROL
) {
return Promise.resolve();
diff --git a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-group_test.ts b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-group_test.ts
index 7ead68f..bbbb4ad 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-group_test.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-group_test.ts
@@ -4,14 +4,14 @@
* SPDX-License-Identifier: Apache-2.0
*/
import '../../../test/common-test-setup';
-import {GrDiffLine, GrDiffLineType, BLANK_LINE} from './gr-diff-line';
+import {GrDiffLine, BLANK_LINE} from './gr-diff-line';
import {
GrDiffGroup,
GrDiffGroupType,
hideInContextControl,
} from './gr-diff-group';
import {assert} from '@open-wc/testing';
-import {Side} from '../../../api/diff';
+import {FILE, GrDiffLineType, LOST, Side} from '../../../api/diff';
suite('gr-diff-group tests', () => {
test('delta line pairs', () => {
@@ -297,18 +297,18 @@
test('FILE', () => {
const lines: GrDiffLine[] = [];
- lines.push(new GrDiffLine(GrDiffLineType.BOTH, 'FILE', 'FILE'));
+ lines.push(new GrDiffLine(GrDiffLineType.BOTH, FILE, FILE));
const group = new GrDiffGroup({type: GrDiffGroupType.DELTA, lines});
- assert.equal(group.startLine(Side.LEFT), 'FILE');
- assert.equal(group.startLine(Side.RIGHT), 'FILE');
+ assert.equal(group.startLine(Side.LEFT), FILE);
+ assert.equal(group.startLine(Side.RIGHT), FILE);
});
test('LOST', () => {
const lines: GrDiffLine[] = [];
- lines.push(new GrDiffLine(GrDiffLineType.BOTH, 'LOST', 'LOST'));
+ lines.push(new GrDiffLine(GrDiffLineType.BOTH, LOST, LOST));
const group = new GrDiffGroup({type: GrDiffGroupType.DELTA, lines});
- assert.equal(group.startLine(Side.LEFT), 'LOST');
- assert.equal(group.startLine(Side.RIGHT), 'LOST');
+ assert.equal(group.startLine(Side.LEFT), LOST);
+ assert.equal(group.startLine(Side.RIGHT), LOST);
});
});
});
diff --git a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-line.ts b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-line.ts
index 338a275..1a89207 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-line.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-line.ts
@@ -4,17 +4,13 @@
* SPDX-License-Identifier: Apache-2.0
*/
import {
+ FILE,
GrDiffLine as GrDiffLineApi,
GrDiffLineType,
LineNumber,
Side,
} from '../../../api/diff';
-export {GrDiffLineType};
-export type {LineNumber};
-
-export const FILE = 'FILE';
-
export class GrDiffLine implements GrDiffLineApi {
constructor(
readonly type: GrDiffLineType,
diff --git a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-utils.ts b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-utils.ts
index 669537e..927943c 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-utils.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff-utils.ts
@@ -4,12 +4,14 @@
* SPDX-License-Identifier: Apache-2.0
*/
import {BlameInfo, CommentRange} from '../../../types/common';
-import {FILE, LineNumber} from './gr-diff-line';
import {Side} from '../../../constants/constants';
import {DiffInfo} from '../../../types/diff';
import {
DiffPreferencesInfo,
DiffResponsiveMode,
+ FILE,
+ LOST,
+ LineNumber,
RenderPreferences,
} from '../../../api/diff';
import {getBaseUrl} from '../../../utils/url-util';
@@ -103,9 +105,7 @@
}
export function lineNumberToNumber(lineNumber?: LineNumber | null): number {
- if (!lineNumber) return 0;
- if (lineNumber === 'LOST') return 0;
- if (lineNumber === 'FILE') return 0;
+ if (typeof lineNumber !== 'number') return 0;
return lineNumber;
}
@@ -138,15 +138,15 @@
const lineNumberStr = lineEl.getAttribute('data-value');
if (!lineNumberStr) return null;
if (lineNumberStr === FILE) return FILE;
- if (lineNumberStr === 'LOST') return 'LOST';
+ if (lineNumberStr === LOST) return LOST;
const lineNumber = Number(lineNumberStr);
return Number.isInteger(lineNumber) ? lineNumber : null;
}
export function getLine(threadEl: HTMLElement): LineNumber {
const lineAtt = threadEl.getAttribute('line-num');
- if (lineAtt === 'LOST') return lineAtt;
- if (!lineAtt || lineAtt === 'FILE') return FILE;
+ if (lineAtt === LOST) return lineAtt;
+ if (!lineAtt || lineAtt === FILE) return FILE;
const line = Number(lineAtt);
if (isNaN(line)) throw new Error(`cannot parse line number: ${lineAtt}`);
if (line < 1) throw new Error(`line number smaller than 1: ${line}`);
diff --git a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff.ts b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff.ts
index 3929330..38cb2ba 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff.ts
@@ -12,7 +12,6 @@
import '../gr-syntax-themes/gr-syntax-theme';
import '../gr-ranged-comment-themes/gr-ranged-comment-theme';
import '../gr-ranged-comment-hint/gr-ranged-comment-hint';
-import {LineNumber} from './gr-diff-line';
import {
getLine,
getLineElByChild,
@@ -54,6 +53,8 @@
RenderPreferences,
GrDiff as GrDiffApi,
DisplayLine,
+ LineNumber,
+ LOST,
} from '../../../api/diff';
import {isSafari, toggleClass} from '../../../utils/dom-util';
import {assertIsDefined} from '../../../utils/common-util';
@@ -617,7 +618,7 @@
const el = e.target as Element;
if (
- el.getAttribute('data-value') !== 'LOST' &&
+ el.getAttribute('data-value') !== LOST &&
(el.classList.contains('lineNum') ||
el.classList.contains('lineNumButton'))
) {
@@ -980,7 +981,7 @@
}
const contentEl = this.diffBuilder.getContentTdByLineEl(lineEl);
if (!contentEl) continue;
- if (lineNum === 'LOST') {
+ if (lineNum === LOST) {
this.insertPortedCommentsWithoutRangeMessage(contentEl);
}