@cosva-lab/form-builder
Version:
React form builder.
30 lines (29 loc) • 1.33 kB
text/typescript
import { FieldBuilder } from "../builders/FieldBuilder.mjs";
import { FieldType, FieldsProps, FieldsToObject, ValidateInputsValidator, ValidationError } from "../../types.mjs";
//#region src/utils/validate/InputsValidator.d.ts
declare class InputsValidator<Fields extends FieldBuilder<any>[]> {
valid: boolean;
get invalid(): boolean;
fields: Fields;
fieldsMap: FieldsToObject<Fields>;
_validate: ValidateInputsValidator<Fields>;
get validate(): ValidateInputsValidator<Fields> | undefined;
set validate(validate: ValidateInputsValidator<Fields> | undefined);
constructor({
fields,
validate
}: Pick<FieldsProps<Fields>, 'fields' | 'validate'>);
callbackField(callback: (field: FieldBuilder<FieldType>, cancel: () => void) => void): Promise<Fields>;
private validityBase;
validity(): Promise<boolean>;
hasErrors(params?: {
setErrors?: boolean;
throwFirstError?: boolean;
validateDisabled?: boolean;
}): Promise<boolean>;
addErrors<Field extends Fields[number]>(errors: { [key in Field['name']]?: ValidationError[] }): void;
setErrors<Field extends Fields[number]>(errors?: { [key in Field['name']]?: ValidationError[] }): void;
getErrors(): Promise<{ [P in keyof FieldsToObject<Fields>]: FieldsToObject<Fields>[P]["errors"] }>;
}
//#endregion
export { InputsValidator as default };