Diff-Endpunkt (GET /documents/{id}/diff) im versioningapi-Handler, Diff-Seite
mit freier Revisionswahl, Farbe+Symbol je Aenderung und Sprung zur naechsten
Aenderung im dms-browser-Frontend.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
27 lines
747 B
TypeScript
27 lines
747 B
TypeScript
import { DiffLine } from "./diffApi";
|
|
|
|
// Reine Funktion (Akzeptanzkriterium 3: Sprung zur naechsten Aenderung
|
|
// moeglich) -- unabhaengig vom DOM testbar, dieselbe Struktur wie
|
|
// virtualization.ts.
|
|
export function findNextChangeIndex(lines: DiffLine[], afterIndex: number): number {
|
|
for (let i = afterIndex + 1; i < lines.length; i++) {
|
|
if (lines[i].op !== "equal") {
|
|
return i;
|
|
}
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
export function findPreviousChangeIndex(lines: DiffLine[], beforeIndex: number): number {
|
|
for (let i = beforeIndex - 1; i >= 0; i--) {
|
|
if (lines[i].op !== "equal") {
|
|
return i;
|
|
}
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
export function countChanges(lines: DiffLine[]): number {
|
|
return lines.filter((l) => l.op !== "equal").length;
|
|
}
|