vue-devui
Version:
DevUI components based on Vite and Vue3
84 lines (83 loc) • 2.45 kB
TypeScript
import type { ExtractPropTypes, InjectionKey, PropType, SetupContext, Ref } from 'vue';
import type { DiffFile } from 'diff2html/lib/types';
export type DiffType = 'modify' | 'add' | 'delete' | 'rename';
export type OutputFormat = 'line-by-line' | 'side-by-side';
export type ExpandDirection = 'up' | 'down' | 'updown' | 'all';
export type LineSide = 'left' | 'right';
export type IncrementCodeInsertDirection = 'up' | 'down';
export interface CommentPosition {
left: number;
right: number;
}
export type ILineNumberTdMap = Record<number, HTMLElement[]>;
export interface IExpandLineNumberInfo {
nextL: string;
nextR: string;
prevL: string;
prevR: string;
}
export interface ICheckedLineDetails {
lefts: number[];
rights: number[];
codes: Record<string, string[]> | string[];
}
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;
};
allowChecked: {
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>;
};
options: {
type: PropType<Record<string, any>>;
default: () => {};
};
};
export 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>;