| /** | |
| * @license | |
| * Copyright 2017 Google LLC | |
| * SPDX-License-Identifier: Apache-2.0 | |
| */ | |
| import {GrDiffBuilderUnified} from './gr-diff-builder-unified'; | |
| import {DiffInfo, DiffPreferencesInfo} from '../../../types/diff'; | |
| import {createElementDiff} from '../gr-diff/gr-diff-utils'; | |
| import {GrDiffGroup} from '../gr-diff/gr-diff-group'; | |
| import {GrDiffLine} from '../gr-diff/gr-diff-line'; | |
| import {GrDiffLineType} from '../../../api/diff'; | |
| import {queryAndAssert} from '../../../utils/common-util'; | |
| import {html, render} from 'lit'; | |
| export class GrDiffBuilderBinary extends GrDiffBuilderUnified { | |
| constructor( | |
| diff: DiffInfo, | |
| prefs: DiffPreferencesInfo, | |
| outputEl: HTMLElement | |
| ) { | |
| super(diff, prefs, outputEl); | |
| } | |
| override buildSectionElement(group: GrDiffGroup): HTMLElement { | |
| const section = createElementDiff('tbody', 'binary-diff'); | |
| // Do not create a diff row for 'LOST'. | |
| if (group.lines[0].beforeNumber !== 'FILE') return section; | |
| const line = new GrDiffLine(GrDiffLineType.BOTH, 'FILE', 'FILE'); | |
| const fileRow = this.createRow(line); | |
| const contentTd = queryAndAssert<HTMLTableCellElement>( | |
| fileRow, | |
| 'td.both.file' | |
| )!; | |
| const div = document.createElement('div'); | |
| render(html`<span>Difference in binary files</span>`, div); | |
| contentTd.insertBefore(div, contentTd.firstChild); | |
| section.appendChild(fileRow); | |
| return section; | |
| } | |
| } |