UNPKG

strive-element

Version:

Vue3 st-element components

47 lines (46 loc) 1.44 kB
import type { InjectionKey } from 'vue'; import type { RuleItem, ValidateError, ValidateFieldsError } from 'async-validator'; export interface FormItemProps { label?: string; prop?: string; } export interface FormItemRule extends RuleItem { trigger?: string; } export type FormRules = Record<string, FormItemRule[]>; export interface FormProps { model: Record<string, any>; rules: FormRules; } export interface FormContext extends FormProps { addField: (field: FormItemContext) => void; removeField: (field: FormItemContext) => void; } export interface FormValidateFailure { errors: ValidateError[] | null; fields: ValidateFieldsError; } export interface ValidateStatusProp { state: 'init' | 'success' | 'error' | 'loading'; errorMsg: string; loading: boolean; } export interface FormItemContext { prop: string; validate: (trigger?: string) => Promise<any>; resetField(): void; clearValidate(): void; } export declare const formContextKey: InjectionKey<FormContext>; export declare const formItemContextKey: InjectionKey<FormItemContext>; export interface FormInstance { validate: () => Promise<any>; resetFields: (props?: string[]) => void; clearValidate: (props?: string[]) => void; } export interface FormItemInstance { validateStatus: ValidateStatusProp; validate: (trigger?: string) => Promise<any>; resetField(): void; clearValidate(): void; }