react-monaco-json-merge
Version:
A powerful React component for 3-way JSON merging with semantic comparison, built on Monaco Editor. Features schema-aware conflict detection, interactive resolution, and real-time validation.
59 lines • 2.55 kB
TypeScript
import type * as monaco from "monaco-editor";
import type { ModifiedBaseRange } from "../types";
/**
* Configuration for editor decoration colors and styles
*/
export interface DecorationConfig {
conflictColor: string;
changeColor: string;
baseColor: string;
conflictOverviewColor: string;
changeOverviewColor: string;
baseOverviewColor: string;
}
/**
* Determines CSS classes and overview colors based on conflict type
*/
export interface DecorationClasses {
input1Class: string;
input2Class: string;
baseClass: string;
input1OverviewColor: string;
input2OverviewColor: string;
baseOverviewColor: string;
input1Symbol: string;
input2Symbol: string;
}
/**
* Determines the CSS classes and colors for decorations based on conflict type
*/
export declare function getDecorationClasses(conflict: ModifiedBaseRange, isTwoColumnMode: boolean, config: DecorationConfig): DecorationClasses;
/**
* Creates Monaco editor decorations for input1 (theirs) panel
*/
export declare function createInput1Decorations(conflict: ModifiedBaseRange, classes: DecorationClasses, monacoInstance: typeof monaco): monaco.editor.IModelDeltaDecoration[];
/**
* Creates Monaco editor decorations for input2 (ours) panel
*/
export declare function createInput2Decorations(conflict: ModifiedBaseRange, classes: DecorationClasses, monacoInstance: typeof monaco): monaco.editor.IModelDeltaDecoration[];
/**
* Creates Monaco editor decorations for base panel
*/
export declare function createBaseDecorations(conflict: ModifiedBaseRange, classes: DecorationClasses, monacoInstance: typeof monaco): monaco.editor.IModelDeltaDecoration[];
/**
* Creates all decorations for a conflict (input1, input2, and base)
*/
export declare function createConflictDecorations(conflict: ModifiedBaseRange, isTwoColumnMode: boolean, config: DecorationConfig, monacoInstance: typeof monaco): {
input1Decorations: monaco.editor.IModelDeltaDecoration[];
input2Decorations: monaco.editor.IModelDeltaDecoration[];
baseDecorations: monaco.editor.IModelDeltaDecoration[];
};
/**
* Creates decorations for all conflicts
*/
export declare function createAllDecorations(conflicts: ModifiedBaseRange[], isTwoColumnMode: boolean, config: DecorationConfig, monacoInstance: typeof monaco): {
input1Decorations: monaco.editor.IModelDeltaDecoration[];
input2Decorations: monaco.editor.IModelDeltaDecoration[];
baseDecorations: monaco.editor.IModelDeltaDecoration[];
};
//# sourceMappingURL=editorDecorations.d.ts.map