maz-ui
Version:
A standalone components library for Vue.Js 3 & Nuxt.Js 3
24 lines (23 loc) • 2.04 kB
TypeScript
import { DeepPartial } from '@maz-ui/utils/ts-helpers/DeepPartial';
import { MaybeRefOrGetter, Ref } from 'vue';
import { BaseFormPayload, ExtractModelKey, FieldsStates, FormSchema, FormValidatorOptions, InferOutputSchemaFormValidator, InferSchemaFormValidator } from './useFormValidator/types';
import { scrollToError } from './useFormValidator/dom-events';
export declare function useFormValidator<TSchema extends MaybeRefOrGetter<FormSchema<BaseFormPayload>>>({ schema, defaultValues, model, options }: {
schema: TSchema;
defaultValues?: MaybeRefOrGetter<DeepPartial<InferSchemaFormValidator<TSchema>> | undefined | null>;
model?: Ref<DeepPartial<InferSchemaFormValidator<TSchema>> | undefined | null>;
options?: FormValidatorOptions<InferSchemaFormValidator<TSchema>>;
}): {
identifier: string | symbol;
isDirty: import('vue').ComputedRef<boolean>;
isSubmitting: Ref<boolean, boolean>;
isSubmitted: Ref<boolean, boolean>;
isValid: import('vue').ComputedRef<boolean>;
errors: import('vue').ComputedRef<Record<ExtractModelKey<FormSchema<InferSchemaFormValidator<TSchema>>>, import('./useFormValidator/types').ValidationIssues>>;
model: Ref<InferSchemaFormValidator<TSchema>, InferSchemaFormValidator<TSchema>>;
fieldsStates: Ref<FieldsStates<InferSchemaFormValidator<TSchema>, ExtractModelKey<FormSchema<InferSchemaFormValidator<TSchema>>>>, FieldsStates<InferSchemaFormValidator<TSchema>, ExtractModelKey<FormSchema<InferSchemaFormValidator<TSchema>>>>>;
validateForm: (setErrors?: boolean) => Promise<void[]>;
scrollToError: typeof scrollToError;
handleSubmit: <Func extends (model: InferOutputSchemaFormValidator<TSchema>) => Promise<Awaited<ReturnType<Func>>> | ReturnType<Func>>(successCallback: Func, enableScrollOrSelector?: FormValidatorOptions["scrollToError"]) => (event?: Event) => Promise<ReturnType<Func> | undefined>;
errorMessages: import('vue').ComputedRef<Record<ExtractModelKey<FormSchema<InferSchemaFormValidator<TSchema>>>, string | undefined>>;
};