vue-devui
Version:
DevUI components based on Vite and Vue3
64 lines (63 loc) • 2 kB
TypeScript
import type { ExtractPropTypes, InjectionKey, PropType, SetupContext, Ref } from 'vue';
import type { DiffFile } from 'diff2html/lib/types';
export declare type DiffType = 'modify' | 'add' | 'delete' | 'rename';
export declare type OutputFormat = 'line-by-line' | 'side-by-side';
export declare type ExpandDirection = 'up' | 'down' | 'updown' | 'all';
export declare type LineSide = 'left' | 'right';
export declare type IncrementCodeInsertDirection = 'up' | 'down';
export interface CommentPosition {
left: number;
right: number;
}
export interface CodeReviewMethods {
toggleFold: (status?: boolean) => void;
insertComment: (lineNumber: number, lineSide: LineSide, commentDom: HTMLElement) => void;
removeComment: (lineNumber: number, lineSide: LineSide) => void;
}
export declare const codeReviewProps: {
diff: {
type: StringConstructor;
required: boolean;
default: string;
};
fold: {
type: BooleanConstructor;
default: boolean;
};
allowComment: {
type: BooleanConstructor;
default: boolean;
};
allowExpand: {
type: BooleanConstructor;
default: boolean;
};
showBlob: {
type: BooleanConstructor;
default: boolean;
};
diffType: {
type: PropType<DiffType>;
default: string;
};
outputFormat: {
type: PropType<OutputFormat>;
default: string;
};
expandThreshold: {
type: NumberConstructor;
default: number;
};
expandLoader: {
type: PropType<(interval: Array<number | undefined>, update: (code: string) => void) => void>;
};
};
export declare type CodeReviewProps = ExtractPropTypes<typeof codeReviewProps>;
export interface CodeReviewContext {
diffType: Ref<DiffType>;
reviewContentRef: Ref<HTMLElement>;
diffInfo: DiffFile;
isFold: Ref<boolean>;
rootCtx: SetupContext;
}
export declare const CodeReviewInjectionKey: InjectionKey<CodeReviewContext>;