@pierre/diffs
Version:
71 lines (70 loc) • 4.33 kB
TypeScript
import { FileContents, FileDiffMetadata, MergeConflictActionPayload, MergeConflictMarkerRow, MergeConflictResolution, PostRenderPhase } from "../types.js";
import { WorkerPoolManager } from "../worker/WorkerPoolManager.js";
import { HunksRenderResult } from "../renderers/DiffHunksRenderer.js";
import { FileDiff, FileDiffOptions, FileDiffRenderBaseProps } from "./FileDiff.js";
import { MergeConflictDiffAction } from "../utils/parseMergeConflictDiffFromFile.js";
import { UnresolvedFileHunksRenderer, UnresolvedFileHunksRendererOptions } from "../renderers/UnresolvedFileHunksRenderer.js";
//#region src/components/UnresolvedFile.d.ts
type RenderMergeConflictActions<LAnnotation> = (action: MergeConflictDiffAction, instance: UnresolvedFile<LAnnotation>) => HTMLElement | DocumentFragment | null | undefined;
type MergeConflictActionsTypeOption<LAnnotation> = 'none' | 'default' | RenderMergeConflictActions<LAnnotation>;
interface UnresolvedFileOptions<LAnnotation> extends Omit<FileDiffOptions<LAnnotation, undefined>, 'diffStyle' | 'onPostRender'> {
onPostRender?(node: HTMLElement, instance: UnresolvedFile<LAnnotation>, phase: PostRenderPhase): unknown;
mergeConflictActionsType?: MergeConflictActionsTypeOption<LAnnotation>;
onMergeConflictAction?(payload: MergeConflictActionPayload, instance: UnresolvedFile<LAnnotation>): void;
onMergeConflictResolve?(file: FileContents, payload: MergeConflictActionPayload): void;
maxContextLines?: number;
}
interface UnresolvedFileRenderProps<LAnnotation> extends FileDiffRenderBaseProps<LAnnotation> {
file?: FileContents;
actions?: (MergeConflictDiffAction | undefined)[];
markerRows?: MergeConflictMarkerRow[];
}
interface UnresolvedFileHydrationProps<LAnnotation> extends Omit<UnresolvedFileRenderProps<LAnnotation>, 'file'> {
file?: FileContents;
fileContainer: HTMLElement;
prerenderedHTML?: string;
}
interface GetOrComputeDiffProps {
file: FileContents | undefined;
fileDiff: FileDiffMetadata | undefined;
actions: (MergeConflictDiffAction | undefined)[] | undefined;
markerRows: MergeConflictMarkerRow[] | undefined;
}
interface ResolveConflictReturn {
file: FileContents;
fileDiff: FileDiffMetadata;
actions: (MergeConflictDiffAction | undefined)[];
markerRows: MergeConflictMarkerRow[];
}
type UnresolvedFileDataCache = GetOrComputeDiffProps;
declare class UnresolvedFile<LAnnotation = undefined> extends FileDiff<LAnnotation, undefined> {
options: UnresolvedFileOptions<LAnnotation>;
readonly __id: string;
readonly type = "unresolved-file";
protected computedCache: UnresolvedFileDataCache;
private conflictActions;
private markerRows;
private conflictActionCache;
constructor(options?: UnresolvedFileOptions<LAnnotation>, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean);
setOptions(options: UnresolvedFileOptions<LAnnotation> | undefined): void;
protected syncInteractionOptions(): void;
protected createHunksRenderer(options: UnresolvedFileOptions<LAnnotation>): UnresolvedFileHunksRenderer<LAnnotation>;
protected getHunksRendererOptions(options: UnresolvedFileOptions<LAnnotation>): UnresolvedFileHunksRendererOptions;
protected applyPreNodeAttributes(pre: HTMLPreElement, result: HunksRenderResult): void;
cleanUp(): void;
private getOrComputeDiff;
hydrate(props: UnresolvedFileHydrationProps<LAnnotation>): void;
rerender(): void;
render(props?: UnresolvedFileRenderProps<LAnnotation>): boolean;
resolveConflict(conflictIndex: number, resolution: MergeConflictResolution, fileDiff?: FileDiffMetadata | undefined): ResolveConflictReturn | undefined;
private resolveConflictAndRender;
private setActiveMergeConflictState;
private handleMergeConflictActionClick;
private renderMergeConflictActionSlots;
private renderMergeConflictAction;
private clearMergeConflictActionCache;
}
declare function getUnresolvedDiffHunksRendererOptions<LAnnotation>(options?: UnresolvedFileOptions<LAnnotation>, baseOptions?: UnresolvedFileOptions<LAnnotation>): UnresolvedFileHunksRendererOptions;
//#endregion
export { MergeConflictActionsTypeOption, RenderMergeConflictActions, UnresolvedFile, UnresolvedFileHydrationProps, UnresolvedFileOptions, UnresolvedFileRenderProps, getUnresolvedDiffHunksRendererOptions };
//# sourceMappingURL=UnresolvedFile.d.ts.map