UNPKG

@vnmfify/core

Version:

```shell npm i @vnmfify/core -S ```

47 lines (46 loc) 1.86 kB
import { ReactNode } from "react"; export interface FormInstance { validateFields(name?: string | string[]): Promise<void>; setFieldsValue(values: any): void; getFieldsValue<V>(): V; getErrors(name?: string | string[]): FormValidError[]; setErrors(errors: FormValidError[]): void; getValues<V>(name?: string | string[]): V; setValues(values: any): void; validate<V>(name?: string | string[]): Promise<V>; reset(): void; } export declare type FormLabelAlign = "left" | "center" | "right"; export declare type FormControlAlign = "left" | "center" | "right"; export declare type FormFeedbackAlign = "left" | "center" | "right"; export declare type FormFeedbackStatus = "valid" | "warning" | "invalid"; export declare type FormValidateTrigger = "onBlur" | "onChange" | "onSubmit"; export declare type FormValidateStatus = FormFeedbackStatus; export interface FormValidError { name?: string; errors: ReactNode[]; } export declare type FormRuleMessage = string | ((value: any, rule: FormRule) => string); export declare type FormRuleValidator = (value: any, rule: FormRule) => boolean | string | Error | Promise<boolean | string | Error>; export declare type FiledRuleFormatter = (value: any, rule: FormRule) => string; export interface FormRule { pattern?: RegExp; trigger?: FormValidateTrigger; message?: FormRuleMessage; required?: boolean; validator?: FormRuleValidator; formatter?: FiledRuleFormatter; } export interface FormController<V> { name?: string; value?: V; validateStatus?: FormValidateStatus; onChange?(value: V): void; onBlur?(value: V): void; } export interface FormItemInstance { readonly name?: string; getValue(): any; setValue(value: any): void; validate(rules?: FormRule[]): Promise<void>; }