Convert gr-diff helpers to TypeScript Change-Id: If09a43e8d890f0ea51ca997b3281575c2e61d084
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-processor/gr-diff-processor.js b/polygerrit-ui/app/elements/diff/gr-diff-processor/gr-diff-processor.js index a4954a1..aa8f0a3 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff-processor/gr-diff-processor.js +++ b/polygerrit-ui/app/elements/diff/gr-diff-processor/gr-diff-processor.js
@@ -17,8 +17,8 @@ import {GestureEventListeners} from '@polymer/polymer/lib/mixins/gesture-event-listeners.js'; import {LegacyElementMixin} from '@polymer/polymer/lib/legacy/legacy-element-mixin.js'; import {PolymerElement} from '@polymer/polymer/polymer-element.js'; -import {GrDiffLine} from '../gr-diff/gr-diff-line.js'; -import {GrDiffGroup} from '../gr-diff/gr-diff-group.js'; +import {GrDiffLine, GrDiffLineType, FILE} from '../gr-diff/gr-diff-line.js'; +import {GrDiffGroup, GrDiffGroupType, hideInContextControl} from '../gr-diff/gr-diff-group.js'; import {util} from '../../../scripts/util.js'; const WHOLE_FILE = -1; @@ -308,7 +308,7 @@ const hiddenEnd = lineCount - ( firstUncollapsibleChunkIndex === chunks.length ? 0 : this.context); - groups = GrDiffGroup.hideInContextControl( + groups = hideInContextControl( groups, hiddenStart, hiddenEnd); } @@ -353,7 +353,7 @@ * @return {!Object} (GrDiffGroup) */ _chunkToGroup(chunk, offsetLeft, offsetRight) { - const type = chunk.ab ? GrDiffGroup.Type.BOTH : GrDiffGroup.Type.DELTA; + const type = chunk.ab ? GrDiffGroupType.BOTH : GrDiffGroupType.DELTA; const lines = this._linesFromChunk(chunk, offsetLeft, offsetRight); const group = new GrDiffGroup(type, lines); group.keyLocation = chunk.keyLocation; @@ -365,28 +365,28 @@ _linesFromChunk(chunk, offsetLeft, offsetRight) { if (chunk.ab) { return chunk.ab.map((row, i) => this._lineFromRow( - GrDiffLine.Type.BOTH, offsetLeft, offsetRight, row, i)); + GrDiffLineType.BOTH, offsetLeft, offsetRight, row, i)); } let lines = []; if (chunk.a) { // Avoiding a.push(...b) because that causes callstack overflows for // large b, which can occur when large files are added removed. lines = lines.concat(this._linesFromRows( - GrDiffLine.Type.REMOVE, chunk.a, offsetLeft, + GrDiffLineType.REMOVE, chunk.a, offsetLeft, chunk[DiffHighlights.REMOVED])); } if (chunk.b) { // Avoiding a.push(...b) because that causes callstack overflows for // large b, which can occur when large files are added removed. lines = lines.concat(this._linesFromRows( - GrDiffLine.Type.ADD, chunk.b, offsetRight, + GrDiffLineType.ADD, chunk.b, offsetRight, chunk[DiffHighlights.ADDED])); } return lines; } /** - * @param {string} lineType (GrDiffLine.Type) + * @param {string} lineType (GrDiffLineType) * @param {!Array<string>} rows * @param {number} offset * @param {?Array<!Gerrit.IntralineInfo>=} opt_intralineInfos @@ -400,7 +400,7 @@ } /** - * @param {string} type (GrDiffLine.Type) + * @param {string} type (GrDiffLineType) * @param {number} offsetLeft * @param {number} offsetRight * @param {string} row @@ -411,8 +411,8 @@ _lineFromRow(type, offsetLeft, offsetRight, row, i, opt_highlights) { const line = new GrDiffLine(type); line.text = row; - if (type !== GrDiffLine.Type.ADD) line.beforeNumber = offsetLeft + i; - if (type !== GrDiffLine.Type.REMOVE) line.afterNumber = offsetRight + i; + if (type !== GrDiffLineType.ADD) line.beforeNumber = offsetLeft + i; + if (type !== GrDiffLineType.REMOVE) line.afterNumber = offsetRight + i; if (opt_highlights) { line.hasIntralineInfo = true; line.highlights = opt_highlights.filter(hl => hl.contentIndex === i); @@ -423,10 +423,10 @@ } _makeFileComments() { - const line = new GrDiffLine(GrDiffLine.Type.BOTH); - line.beforeNumber = GrDiffLine.FILE; - line.afterNumber = GrDiffLine.FILE; - return new GrDiffGroup(GrDiffGroup.Type.BOTH, [line]); + const line = new GrDiffLine(GrDiffLineType.BOTH); + line.beforeNumber = FILE; + line.afterNumber = FILE; + return new GrDiffGroup(GrDiffGroupType.BOTH, [line]); } /** @@ -577,7 +577,7 @@ * * @param {!Array<string>} rows * @param {!Array<!Gerrit.IntralineInfo>} intralineInfos - * @return {!Array<!Object>} (GrDiffLine.Highlight) + * @return {!Array<!Object>} (Highlights[] from GrDiffLine) */ _convertIntralineInfos(rows, intralineInfos) { let rowIndex = 0;
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-processor/gr-diff-processor_test.js b/polygerrit-ui/app/elements/diff/gr-diff-processor/gr-diff-processor_test.js index 8634173..70c6f42 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff-processor/gr-diff-processor_test.js +++ b/polygerrit-ui/app/elements/diff/gr-diff-processor/gr-diff-processor_test.js
@@ -17,8 +17,8 @@ import '../../../test/common-test-setup-karma.js'; import './gr-diff-processor.js'; -import {GrDiffLine} from '../gr-diff/gr-diff-line.js'; -import {GrDiffGroup} from '../gr-diff/gr-diff-group.js'; +import {GrDiffLineType, FILE} from '../gr-diff/gr-diff-line.js'; +import {GrDiffGroup, GrDiffGroupType} from '../gr-diff/gr-diff-group.js'; const basicFixture = fixtureFromElement('gr-diff-processor'); @@ -76,14 +76,14 @@ assert.equal(groups.length, 4); let group = groups[0]; - assert.equal(group.type, GrDiffGroup.Type.BOTH); + assert.equal(group.type, GrDiffGroupType.BOTH); assert.equal(group.lines.length, 1); assert.equal(group.lines[0].text, ''); - assert.equal(group.lines[0].beforeNumber, GrDiffLine.FILE); - assert.equal(group.lines[0].afterNumber, GrDiffLine.FILE); + assert.equal(group.lines[0].beforeNumber, FILE); + assert.equal(group.lines[0].afterNumber, FILE); group = groups[1]; - assert.equal(group.type, GrDiffGroup.Type.BOTH); + assert.equal(group.type, GrDiffGroupType.BOTH); assert.equal(group.lines.length, 2); function beforeNumberFn(l) { return l.beforeNumber; } @@ -98,7 +98,7 @@ ]); group = groups[2]; - assert.equal(group.type, GrDiffGroup.Type.DELTA); + assert.equal(group.type, GrDiffGroupType.DELTA); assert.equal(group.lines.length, 3); assert.equal(group.adds.length, 1); assert.equal(group.removes.length, 2); @@ -113,7 +113,7 @@ ]); group = groups[3]; - assert.equal(group.type, GrDiffGroup.Type.BOTH); + assert.equal(group.type, GrDiffGroupType.BOTH); assert.equal(group.lines.length, 3); assert.deepEqual(group.lines.map(beforeNumberFn), [5, 6, 7]); assert.deepEqual(group.lines.map(afterNumberFn), [4, 5, 6]); @@ -133,11 +133,11 @@ return element.process(content).then(() => { const groups = element.groups; - assert.equal(groups[0].type, GrDiffGroup.Type.BOTH); + assert.equal(groups[0].type, GrDiffGroupType.BOTH); assert.equal(groups[0].lines.length, 1); assert.equal(groups[0].lines[0].text, ''); - assert.equal(groups[0].lines[0].beforeNumber, GrDiffLine.FILE); - assert.equal(groups[0].lines[0].afterNumber, GrDiffLine.FILE); + assert.equal(groups[0].lines[0].beforeNumber, FILE); + assert.equal(groups[0].lines[0].afterNumber, FILE); }); }); @@ -155,14 +155,14 @@ // group[0] is the file group - assert.equal(groups[1].type, GrDiffGroup.Type.CONTEXT_CONTROL); + assert.equal(groups[1].type, GrDiffGroupType.CONTEXT_CONTROL); assert.instanceOf(groups[1].contextGroups[0], GrDiffGroup); assert.equal(groups[1].contextGroups[0].lines.length, 90); for (const l of groups[1].contextGroups[0].lines) { assert.equal(l.text, 'all work and no play make jack a dull boy'); } - assert.equal(groups[2].type, GrDiffGroup.Type.BOTH); + assert.equal(groups[2].type, GrDiffGroupType.BOTH); assert.equal(groups[2].lines.length, 10); for (const l of groups[2].lines) { assert.equal(l.text, 'all work and no play make jack a dull boy'); @@ -183,7 +183,7 @@ // group[0] is the file group - assert.equal(groups[1].type, GrDiffGroup.Type.BOTH); + assert.equal(groups[1].type, GrDiffGroupType.BOTH); assert.equal(groups[1].lines.length, 5); for (const l of groups[1].lines) { assert.equal(l.text, 'all work and no play make jack a dull boy'); @@ -205,14 +205,14 @@ // group[0] is the file group // group[1] is the "a" group - assert.equal(groups[2].type, GrDiffGroup.Type.BOTH); + assert.equal(groups[2].type, GrDiffGroupType.BOTH); assert.equal(groups[2].lines.length, 10); for (const l of groups[2].lines) { assert.equal( l.text, 'all work and no play make jill a dull girl'); } - assert.equal(groups[3].type, GrDiffGroup.Type.CONTEXT_CONTROL); + assert.equal(groups[3].type, GrDiffGroupType.CONTEXT_CONTROL); assert.instanceOf(groups[3].contextGroups[0], GrDiffGroup); assert.equal(groups[3].contextGroups[0].lines.length, 90); for (const l of groups[3].contextGroups[0].lines) { @@ -236,7 +236,7 @@ // group[0] is the file group // group[1] is the "a" group - assert.equal(groups[2].type, GrDiffGroup.Type.BOTH); + assert.equal(groups[2].type, GrDiffGroupType.BOTH); assert.equal(groups[2].lines.length, 5); for (const l of groups[2].lines) { assert.equal( @@ -280,14 +280,14 @@ // The first three interleaved chunks are completely shown because // they are part of the context (3 * 3 <= 10) - assert.equal(groups[2].type, GrDiffGroup.Type.BOTH); + assert.equal(groups[2].type, GrDiffGroupType.BOTH); assert.equal(groups[2].lines.length, 3); for (const l of groups[2].lines) { assert.equal( l.text, 'all work and no play make jill a dull girl'); } - assert.equal(groups[3].type, GrDiffGroup.Type.DELTA); + assert.equal(groups[3].type, GrDiffGroupType.DELTA); assert.equal(groups[3].lines.length, 6); assert.equal(groups[3].adds.length, 3); assert.equal(groups[3].removes.length, 3); @@ -300,7 +300,7 @@ l.text, ' all work and no play make jill a dull girl'); } - assert.equal(groups[4].type, GrDiffGroup.Type.BOTH); + assert.equal(groups[4].type, GrDiffGroupType.BOTH); assert.equal(groups[4].lines.length, 3); for (const l of groups[4].lines) { assert.equal( @@ -309,7 +309,7 @@ // The next chunk is partially shown, so it results in two groups - assert.equal(groups[5].type, GrDiffGroup.Type.DELTA); + assert.equal(groups[5].type, GrDiffGroupType.DELTA); assert.equal(groups[5].lines.length, 2); assert.equal(groups[5].adds.length, 1); assert.equal(groups[5].removes.length, 1); @@ -322,7 +322,7 @@ l.text, ' all work and no play make jill a dull girl'); } - assert.equal(groups[6].type, GrDiffGroup.Type.CONTEXT_CONTROL); + assert.equal(groups[6].type, GrDiffGroupType.CONTEXT_CONTROL); assert.equal(groups[6].contextGroups.length, 2); assert.equal(groups[6].contextGroups[0].lines.length, 4); @@ -340,7 +340,7 @@ // The final chunk is completely hidden assert.equal( groups[6].contextGroups[1].type, - GrDiffGroup.Type.BOTH); + GrDiffGroupType.BOTH); assert.equal(groups[6].contextGroups[1].lines.length, 3); for (const l of groups[6].contextGroups[1].lines) { assert.equal( @@ -364,14 +364,14 @@ // group[0] is the file group // group[1] is the "a" group - assert.equal(groups[2].type, GrDiffGroup.Type.BOTH); + assert.equal(groups[2].type, GrDiffGroupType.BOTH); assert.equal(groups[2].lines.length, 10); for (const l of groups[2].lines) { assert.equal( l.text, 'all work and no play make jill a dull girl'); } - assert.equal(groups[3].type, GrDiffGroup.Type.CONTEXT_CONTROL); + assert.equal(groups[3].type, GrDiffGroupType.CONTEXT_CONTROL); assert.instanceOf(groups[3].contextGroups[0], GrDiffGroup); assert.equal(groups[3].contextGroups[0].lines.length, 80); for (const l of groups[3].contextGroups[0].lines) { @@ -379,7 +379,7 @@ l.text, 'all work and no play make jill a dull girl'); } - assert.equal(groups[4].type, GrDiffGroup.Type.BOTH); + assert.equal(groups[4].type, GrDiffGroupType.BOTH); assert.equal(groups[4].lines.length, 10); for (const l of groups[4].lines) { assert.equal( @@ -403,7 +403,7 @@ // group[0] is the file group // group[1] is the "a" group - assert.equal(groups[2].type, GrDiffGroup.Type.BOTH); + assert.equal(groups[2].type, GrDiffGroupType.BOTH); assert.equal(groups[2].lines.length, 5); for (const l of groups[2].lines) { assert.equal( @@ -644,7 +644,7 @@ // Results in one, uncollapsed group with all rows. assert.equal(result.groups.length, 1); - assert.equal(result.groups[0].type, GrDiffGroup.Type.BOTH); + assert.equal(result.groups[0].type, GrDiffGroupType.BOTH); assert.equal(result.groups[0].lines.length, rows.length); // Line numbers are set correctly. @@ -820,22 +820,22 @@ test('_linesFromRows', () => { const startLineNum = 10; - let result = element._linesFromRows(GrDiffLine.Type.ADD, rows, + let result = element._linesFromRows(GrDiffLineType.ADD, rows, startLineNum + 1); assert.equal(result.length, rows.length); - assert.equal(result[0].type, GrDiffLine.Type.ADD); + assert.equal(result[0].type, GrDiffLineType.ADD); assert.equal(result[0].afterNumber, startLineNum + 1); assert.notOk(result[0].beforeNumber); assert.equal(result[result.length - 1].afterNumber, startLineNum + rows.length); assert.notOk(result[result.length - 1].beforeNumber); - result = element._linesFromRows(GrDiffLine.Type.REMOVE, rows, + result = element._linesFromRows(GrDiffLineType.REMOVE, rows, startLineNum + 1); assert.equal(result.length, rows.length); - assert.equal(result[0].type, GrDiffLine.Type.REMOVE); + assert.equal(result[0].type, GrDiffLineType.REMOVE); assert.equal(result[0].beforeNumber, startLineNum + 1); assert.notOk(result[0].afterNumber); assert.equal(result[result.length - 1].beforeNumber,