(root: ShadowRoot, split: boolean, line: number, side: DiffSelectionSide | undefined)
| 30 | } |
| 31 | |
| 32 | export function diffRowIndex(root: ShadowRoot, split: boolean, line: number, side: DiffSelectionSide | undefined) { |
| 33 | const rows = Array.from(root.querySelectorAll(`[data-line="${line}"], [data-alt-line="${line}"]`)).filter( |
| 34 | (node): node is HTMLElement => node instanceof HTMLElement, |
| 35 | ) |
| 36 | if (rows.length === 0) return |
| 37 | |
| 38 | const target = side ?? "additions" |
| 39 | for (const row of rows) { |
| 40 | if (findDiffSide(row) === target) return diffLineIndex(split, row) |
| 41 | if (parseInt(row.dataset.altLine ?? "", 10) === line) return diffLineIndex(split, row) |
| 42 | } |
| 43 | } |
| 44 | |
| 45 | export function fixDiffSelection(root: ShadowRoot | undefined, range: SelectedLineRange | null) { |
| 46 | if (!range) return range |
no test coverage detected