element-plus
Version:
A Component Library for Vue3.0
43 lines (42 loc) • 1.48 kB
TypeScript
import type { InjectionKey } from 'vue';
import type { Emitter } from 'mitt';
import type { FieldErrorList } from 'async-validator';
export interface ElFormContext {
registerLabelWidth(width: number, oldWidth: number): void;
deregisterLabelWidth(width: number): void;
autoLabelWidth: string | undefined;
formMitt: Emitter;
emit: (evt: string, ...args: any[]) => void;
labelSuffix: string;
inline?: boolean;
model?: Record<string, unknown>;
size?: string;
showMessage?: boolean;
labelPosition?: string;
labelWidth?: string;
rules?: Record<string, unknown>;
statusIcon?: boolean;
hideRequiredAsterisk?: boolean;
disabled?: boolean;
}
export interface ValidateFieldCallback {
(message?: string, invalidFields?: FieldErrorList): void;
}
export interface ElFormItemContext {
prop?: string;
formItemMitt: Emitter;
size: ComponentSize;
validateState: string;
validate(trigger?: string, callback?: ValidateFieldCallback): void;
updateComputedLabelWidth(width: number): void;
addValidateEvents(): void;
removeValidateEvents(): void;
resetField(): void;
clearValidate(): void;
}
export declare const elFormKey: InjectionKey<ElFormContext>;
export declare const elFormItemKey: InjectionKey<ElFormItemContext>;
export declare const elFormEvents: {
readonly addField: "el.form.addField";
readonly removeField: "el.form.removeField";
};