@vnmfify/core
Version:
```shell npm i @vnmfify/core -S ```
47 lines (46 loc) • 1.86 kB
TypeScript
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>;
}