UNPKG

@volverjs/form-vue

Version:

Vue 3 Forms with @volverjs/ui-vue

810 lines (809 loc) 117 kB
import { type InjectionKey, type Plugin } from 'vue'; import { defineFormField } from './VvFormField'; import { defineForm } from './VvForm'; import { defineFormWrapper } from './VvFormWrapper'; import { defineFormTemplate } from './VvFormTemplate'; import type { InjectedFormData, InjectedFormWrapperData, InjectedFormFieldData, FormComposableOptions, FormPluginOptions, FormTemplateItem, Path, PathValue, FormSchema, FormTemplate } from './types'; import type { AnyZodObject } from 'zod'; export declare const pluginInjectionKey: InjectionKey<FormPluginOptions>; export declare const createForm: (options: FormPluginOptions) => Plugin & Partial<ReturnType<typeof useForm>>; export declare const useForm: <Schema extends FormSchema>(schema: Schema, options?: FormComposableOptions<Schema>) => { VvForm: { new (...args: any[]): { $: import("vue").ComponentInternalInstance; $data: {}; $props: { template?: FormTemplate<Schema> | undefined; modelValue?: Record<string, any> | undefined; updateThrottle?: number | undefined; continuosValidation?: boolean | undefined; onInvalid?: ((...args: any[]) => any) | undefined; onValid?: ((...args: any[]) => any) | undefined; "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined; key?: string | number | symbol | undefined; onSubmit?: ((...args: any[]) => any) | undefined; ref?: import("vue").VNodeRef | undefined; ref_for?: boolean | undefined; ref_key?: string | undefined; onVnodeBeforeMount?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; onVnodeMounted?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; onVnodeBeforeUpdate?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, oldVNode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, oldVNode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; onVnodeUpdated?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, oldVNode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, oldVNode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; onVnodeBeforeUnmount?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; onVnodeUnmounted?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; class?: unknown; style?: unknown; }; $attrs: { [x: string]: unknown; }; $refs: { [x: string]: unknown; }; $slots: Readonly<{ [name: string]: import("vue").Slot<any> | undefined; }>; $root: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null; $parent: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null; $emit: (event: "invalid" | "valid" | "update:modelValue" | "submit", ...args: any[]) => void; $el: any; $options: import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{ modelValue: { type: ObjectConstructor; default: () => {}; }; updateThrottle: { type: NumberConstructor; default: number; }; continuosValidation: { type: BooleanConstructor; default: boolean; }; template: { type: import("vue").PropType<FormTemplate<Schema>>; default: undefined; }; }>> & { onInvalid?: ((...args: any[]) => any) | undefined; onValid?: ((...args: any[]) => any) | undefined; "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined; onSubmit?: ((...args: any[]) => any) | undefined; }, { formData: import("vue").Ref<Partial<import("zod").TypeOf<Schema> | undefined>>; submit: () => boolean; validate: (value?: Partial<import("zod").TypeOf<Schema> | undefined>) => boolean; errors: Readonly<import("vue").Ref<import("vue").DeepReadonly<import("zod").inferFormattedError<Schema, string>> | undefined>>; status: Readonly<import("vue").Ref<import("./enums").FormStatus | undefined>>; invalid: import("vue").ComputedRef<boolean>; }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("invalid" | "valid" | "update:modelValue" | "submit")[], string, { template: FormTemplate<Schema>; modelValue: Record<string, any>; updateThrottle: number; continuosValidation: boolean; }, {}, string, {}> & { beforeCreate?: ((() => void) | (() => void)[]) | undefined; created?: ((() => void) | (() => void)[]) | undefined; beforeMount?: ((() => void) | (() => void)[]) | undefined; mounted?: ((() => void) | (() => void)[]) | undefined; beforeUpdate?: ((() => void) | (() => void)[]) | undefined; updated?: ((() => void) | (() => void)[]) | undefined; activated?: ((() => void) | (() => void)[]) | undefined; deactivated?: ((() => void) | (() => void)[]) | undefined; beforeDestroy?: ((() => void) | (() => void)[]) | undefined; beforeUnmount?: ((() => void) | (() => void)[]) | undefined; destroyed?: ((() => void) | (() => void)[]) | undefined; unmounted?: ((() => void) | (() => void)[]) | undefined; renderTracked?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined; renderTriggered?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined; errorCaptured?: (((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null, info: string) => boolean | void)[]) | undefined; }; $forceUpdate: () => void; $nextTick: typeof import("vue").nextTick; $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (args_0: R, args_1: R) => any : (...args: any) => any, options?: import("vue").WatchOptions<boolean> | undefined): import("vue").WatchStopHandle; } & Readonly<import("vue").ExtractPropTypes<{ modelValue: { type: ObjectConstructor; default: () => {}; }; updateThrottle: { type: NumberConstructor; default: number; }; continuosValidation: { type: BooleanConstructor; default: boolean; }; template: { type: import("vue").PropType<FormTemplate<Schema>>; default: undefined; }; }>> & { onInvalid?: ((...args: any[]) => any) | undefined; onValid?: ((...args: any[]) => any) | undefined; "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined; onSubmit?: ((...args: any[]) => any) | undefined; } & import("vue").ShallowUnwrapRef<{ formData: import("vue").Ref<Partial<import("zod").TypeOf<Schema> | undefined>>; submit: () => boolean; validate: (value?: Partial<import("zod").TypeOf<Schema> | undefined>) => boolean; errors: Readonly<import("vue").Ref<import("vue").DeepReadonly<import("zod").inferFormattedError<Schema, string>> | undefined>>; status: Readonly<import("vue").Ref<import("./enums").FormStatus | undefined>>; invalid: import("vue").ComputedRef<boolean>; }> & {} & import("vue").ComponentCustomProperties & {}; __isFragment?: undefined; __isTeleport?: undefined; __isSuspense?: undefined; } & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{ modelValue: { type: ObjectConstructor; default: () => {}; }; updateThrottle: { type: NumberConstructor; default: number; }; continuosValidation: { type: BooleanConstructor; default: boolean; }; template: { type: import("vue").PropType<FormTemplate<Schema>>; default: undefined; }; }>> & { onInvalid?: ((...args: any[]) => any) | undefined; onValid?: ((...args: any[]) => any) | undefined; "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined; onSubmit?: ((...args: any[]) => any) | undefined; }, { formData: import("vue").Ref<Partial<import("zod").TypeOf<Schema> | undefined>>; submit: () => boolean; validate: (value?: Partial<import("zod").TypeOf<Schema> | undefined>) => boolean; errors: Readonly<import("vue").Ref<import("vue").DeepReadonly<import("zod").inferFormattedError<Schema, string>> | undefined>>; status: Readonly<import("vue").Ref<import("./enums").FormStatus | undefined>>; invalid: import("vue").ComputedRef<boolean>; }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("invalid" | "valid" | "update:modelValue" | "submit")[], "invalid" | "valid" | "update:modelValue" | "submit", { template: FormTemplate<Schema>; modelValue: Record<string, any>; updateThrottle: number; continuosValidation: boolean; }, {}, string, {}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => { $slots: { default: (_: { formData: unknown extends Partial<import("zod").TypeOf<Schema>> | undefined ? undefined : Partial<import("zod").TypeOf<Schema>> | undefined; submit: () => boolean; validate: () => boolean; errors: Readonly<import("vue").Ref<import("vue").DeepReadonly<import("zod").inferFormattedError<Schema, string>>>>; status: import("vue").Ref<import("vue").DeepReadonly<"invalid" | "valid" | undefined>>; invalid: import("vue").Ref<import("vue").DeepReadonly<boolean>>; }) => any; }; }); VvFormWrapper: { new (...args: any[]): { $: import("vue").ComponentInternalInstance; $data: {}; $props: { tag?: string | undefined; readonly name: string; onInvalid?: ((...args: any[]) => any) | undefined; onValid?: ((...args: any[]) => any) | undefined; key?: string | number | symbol | undefined; ref?: import("vue").VNodeRef | undefined; ref_for?: boolean | undefined; ref_key?: string | undefined; onVnodeBeforeMount?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; onVnodeMounted?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; onVnodeBeforeUpdate?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, oldVNode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, oldVNode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; onVnodeUpdated?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, oldVNode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, oldVNode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; onVnodeBeforeUnmount?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; onVnodeUnmounted?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; class?: unknown; style?: unknown; }; $attrs: { [x: string]: unknown; }; $refs: { [x: string]: unknown; }; $slots: Readonly<{ [name: string]: import("vue").Slot<any> | undefined; }>; $root: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null; $parent: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null; $emit: (event: "invalid" | "valid", ...args: any[]) => void; $el: any; $options: import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{ name: { type: StringConstructor; required: true; }; tag: { type: StringConstructor; default: undefined; }; }>> & { onInvalid?: ((...args: any[]) => any) | undefined; onValid?: ((...args: any[]) => any) | undefined; }, { formData: import("vue").Ref<Partial<import("zod").TypeOf<Schema>> | undefined> | undefined; errors: Readonly<import("vue").Ref<import("vue").DeepReadonly<import("zod").inferFormattedError<Schema, string>> | undefined>> | undefined; submit: (() => boolean) | undefined; validate: (() => boolean) | undefined; invalid: import("vue").ComputedRef<boolean>; fields: import("vue").Ref<Set<string>>; fieldsErrors: import("vue").Ref<Map<string, import("zod").inferFormattedError<Schema, string>>>; }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("invalid" | "valid")[], string, { tag: string; }, {}, string, {}> & { beforeCreate?: ((() => void) | (() => void)[]) | undefined; created?: ((() => void) | (() => void)[]) | undefined; beforeMount?: ((() => void) | (() => void)[]) | undefined; mounted?: ((() => void) | (() => void)[]) | undefined; beforeUpdate?: ((() => void) | (() => void)[]) | undefined; updated?: ((() => void) | (() => void)[]) | undefined; activated?: ((() => void) | (() => void)[]) | undefined; deactivated?: ((() => void) | (() => void)[]) | undefined; beforeDestroy?: ((() => void) | (() => void)[]) | undefined; beforeUnmount?: ((() => void) | (() => void)[]) | undefined; destroyed?: ((() => void) | (() => void)[]) | undefined; unmounted?: ((() => void) | (() => void)[]) | undefined; renderTracked?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined; renderTriggered?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined; errorCaptured?: (((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null, info: string) => boolean | void)[]) | undefined; }; $forceUpdate: () => void; $nextTick: typeof import("vue").nextTick; $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (args_0: R, args_1: R) => any : (...args: any) => any, options?: import("vue").WatchOptions<boolean> | undefined): import("vue").WatchStopHandle; } & Readonly<import("vue").ExtractPropTypes<{ name: { type: StringConstructor; required: true; }; tag: { type: StringConstructor; default: undefined; }; }>> & { onInvalid?: ((...args: any[]) => any) | undefined; onValid?: ((...args: any[]) => any) | undefined; } & import("vue").ShallowUnwrapRef<{ formData: import("vue").Ref<Partial<import("zod").TypeOf<Schema>> | undefined> | undefined; errors: Readonly<import("vue").Ref<import("vue").DeepReadonly<import("zod").inferFormattedError<Schema, string>> | undefined>> | undefined; submit: (() => boolean) | undefined; validate: (() => boolean) | undefined; invalid: import("vue").ComputedRef<boolean>; fields: import("vue").Ref<Set<string>>; fieldsErrors: import("vue").Ref<Map<string, import("zod").inferFormattedError<Schema, string>>>; }> & {} & import("vue").ComponentCustomProperties & {}; __isFragment?: undefined; __isTeleport?: undefined; __isSuspense?: undefined; } & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{ name: { type: StringConstructor; required: true; }; tag: { type: StringConstructor; default: undefined; }; }>> & { onInvalid?: ((...args: any[]) => any) | undefined; onValid?: ((...args: any[]) => any) | undefined; }, { formData: import("vue").Ref<Partial<import("zod").TypeOf<Schema>> | undefined> | undefined; errors: Readonly<import("vue").Ref<import("vue").DeepReadonly<import("zod").inferFormattedError<Schema, string>> | undefined>> | undefined; submit: (() => boolean) | undefined; validate: (() => boolean) | undefined; invalid: import("vue").ComputedRef<boolean>; fields: import("vue").Ref<Set<string>>; fieldsErrors: import("vue").Ref<Map<string, import("zod").inferFormattedError<Schema, string>>>; }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("invalid" | "valid")[], "invalid" | "valid", { tag: string; }, {}, string, {}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => { $slots: { default: (_: { invalid: boolean; formData: unknown extends Partial<import("zod").TypeOf<Schema>> | undefined ? undefined : Partial<import("zod").TypeOf<Schema>> | undefined; submit: () => boolean; validate: () => boolean; errors: Readonly<import("vue").Ref<import("vue").DeepReadonly<import("zod").inferFormattedError<Schema, string>>>>; fieldsErrors: Map<string, Record<string, { _errors: string[]; }>>; }) => any; }; }); VvFormField: import("vue").DefineComponent<{ type: { type: import("vue").PropType<"number" | "text" | "email" | "password" | "tel" | "url" | "search" | "date" | "time" | "datetime-local" | "month" | "week" | "color" | "select" | "checkbox" | "radio" | "textarea" | "radioGroup" | "checkboxGroup" | "combobox" | "custom">; validator: (value: import("./enums").FormFieldType) => boolean; default: import("./enums").FormFieldType; }; is: { type: import("vue").PropType<import("vue").Component>; default: undefined; }; name: { type: import("vue").PropType<Path<import("zod").TypeOf<Schema>>>; required: true; }; props: { type: import("vue").PropType<Partial<import("zod").TypeOf<Schema> | ((formData?: import("vue").Ref<ObjectConstructor> | undefined) => Partial<import("zod").TypeOf<Schema>> | undefined) | undefined>>; default: () => {}; }; showValid: { type: BooleanConstructor; default: boolean; }; defaultValue: { type: (StringConstructor | ObjectConstructor | NumberConstructor | BooleanConstructor | ArrayConstructor)[]; default: undefined; }; lazyLoad: { type: BooleanConstructor; default: boolean; }; }, { component: import("vue").ComputedRef<{ new (...args: any[]): any; __isFragment?: undefined; __isTeleport?: undefined; __isSuspense?: undefined; } | import("vue").ConcreteComponent>; hasProps: import("vue").ComputedRef<{ name: {} | ([{ type: import("vue").PropType<Path<import("zod").TypeOf<Schema>>>; required: true; }] extends [import("vue").Prop<infer V, infer D>] ? unknown extends V ? import("@vue/shared").IfAny<V, V, D> : V : { type: import("vue").PropType<Path<import("zod").TypeOf<Schema>>>; required: true; }); invalid: boolean; valid: boolean | undefined; type: import("./enums").FormFieldType | undefined; invalidLabel: any; modelValue: any; 'onUpdate:modelValue': (value: unknown) => void; }>; invalid: import("vue").ComputedRef<boolean>; }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("invalid" | "valid" | "update:formData" | "update:modelValue")[], "invalid" | "valid" | "update:formData" | "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{ type: { type: import("vue").PropType<"number" | "text" | "email" | "password" | "tel" | "url" | "search" | "date" | "time" | "datetime-local" | "month" | "week" | "color" | "select" | "checkbox" | "radio" | "textarea" | "radioGroup" | "checkboxGroup" | "combobox" | "custom">; validator: (value: import("./enums").FormFieldType) => boolean; default: import("./enums").FormFieldType; }; is: { type: import("vue").PropType<import("vue").Component>; default: undefined; }; name: { type: import("vue").PropType<Path<import("zod").TypeOf<Schema>>>; required: true; }; props: { type: import("vue").PropType<Partial<import("zod").TypeOf<Schema> | ((formData?: import("vue").Ref<ObjectConstructor> | undefined) => Partial<import("zod").TypeOf<Schema>> | undefined) | undefined>>; default: () => {}; }; showValid: { type: BooleanConstructor; default: boolean; }; defaultValue: { type: (StringConstructor | ObjectConstructor | NumberConstructor | BooleanConstructor | ArrayConstructor)[]; default: undefined; }; lazyLoad: { type: BooleanConstructor; default: boolean; }; }>> & { onInvalid?: ((...args: any[]) => any) | undefined; onValid?: ((...args: any[]) => any) | undefined; "onUpdate:formData"?: ((...args: any[]) => any) | undefined; "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined; }, { type: "number" | "text" | "email" | "password" | "tel" | "url" | "search" | "date" | "time" | "datetime-local" | "month" | "week" | "color" | "select" | "checkbox" | "radio" | "textarea" | "radioGroup" | "checkboxGroup" | "combobox" | "custom"; props: [{ type: import("vue").PropType<Partial<import("zod").TypeOf<Schema> | ((formData?: import("vue").Ref<ObjectConstructor> | undefined) => Partial<import("zod").TypeOf<Schema>> | undefined) | undefined>>; default: () => {}; }] extends [import("vue").Prop<infer V, infer D>] ? unknown extends V ? import("@vue/shared").IfAny<V, V, D> : V : { type: import("vue").PropType<Partial<import("zod").TypeOf<Schema> | ((formData?: import("vue").Ref<ObjectConstructor> | undefined) => Partial<import("zod").TypeOf<Schema>> | undefined) | undefined>>; default: () => {}; }; is: import("vue").Component; showValid: boolean; defaultValue: string | number | boolean | unknown[] | Record<string, any>; lazyLoad: boolean; }, {}>; VvFormTemplate: { new (...args: any[]): { $: import("vue").ComponentInternalInstance; $data: {}; $props: { readonly schema: FormTemplate<Schema>; key?: string | number | symbol | undefined; ref?: import("vue").VNodeRef | undefined; ref_for?: boolean | undefined; ref_key?: string | undefined; onVnodeBeforeMount?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; onVnodeMounted?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; onVnodeBeforeUpdate?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, oldVNode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, oldVNode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; onVnodeUpdated?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, oldVNode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, oldVNode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; onVnodeBeforeUnmount?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; onVnodeUnmounted?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; class?: unknown; style?: unknown; }; $attrs: { [x: string]: unknown; }; $refs: { [x: string]: unknown; }; $slots: Readonly<{ [name: string]: import("vue").Slot<any> | undefined; }>; $root: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null; $parent: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null; $emit: (event: string, ...args: any[]) => void; $el: any; $options: import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{ schema: { type: import("vue").PropType<FormTemplate<Schema>>; required: true; }; }>>, (() => (import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>[] | undefined)[]) | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {}, {}, string, {}> & { beforeCreate?: ((() => void) | (() => void)[]) | undefined; created?: ((() => void) | (() => void)[]) | undefined; beforeMount?: ((() => void) | (() => void)[]) | undefined; mounted?: ((() => void) | (() => void)[]) | undefined; beforeUpdate?: ((() => void) | (() => void)[]) | undefined; updated?: ((() => void) | (() => void)[]) | undefined; activated?: ((() => void) | (() => void)[]) | undefined; deactivated?: ((() => void) | (() => void)[]) | undefined; beforeDestroy?: ((() => void) | (() => void)[]) | undefined; beforeUnmount?: ((() => void) | (() => void)[]) | undefined; destroyed?: ((() => void) | (() => void)[]) | undefined; unmounted?: ((() => void) | (() => void)[]) | undefined; renderTracked?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined; renderTriggered?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined; errorCaptured?: (((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null, info: string) => boolean | void)[]) | undefined; }; $forceUpdate: () => void; $nextTick: typeof import("vue").nextTick; $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (args_0: R, args_1: R) => any : (...args: any) => any, options?: import("vue").WatchOptions<boolean> | undefined): import("vue").WatchStopHandle; } & Readonly<import("vue").ExtractPropTypes<{ schema: { type: import("vue").PropType<FormTemplate<Schema>>; required: true; }; }>> & import("vue").ShallowUnwrapRef<{} | (() => (import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>[] | undefined)[])> & {} & import("vue").ComponentCustomProperties & {}; __isFragment?: undefined; __isTeleport?: undefined; __isSuspense?: undefined; } & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{ schema: { type: import("vue").PropType<FormTemplate<Schema>>; required: true; }; }>>, (() => (import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }> | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>[] | undefined)[]) | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {}, {}, string, {}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => { $slots: { default: (_: { formData: unknown extends Partial<import("zod").TypeOf<Schema>> | undefined ? undefined : Partial<import("zod").TypeOf<Schema>> | undefined; submit: () => boolean; validate: () => boolean; errors: Readonly<import("vue").Ref<import("vue").DeepReadonly<import("zod").inferFormattedError<Schema, string>>>>; status: import("vue").Ref<import("vue").DeepReadonly<"invalid" | "valid" | undefined>>; invalid: import("vue").Ref<import("vue").DeepReadonly<boolean>>; }) => any; }; }); formInjectionKey: InjectionKey<InjectedFormData<Schema>>; formWrapperInjectionKey: InjectionKey<InjectedFormWrapperData<Schema>>; formFieldInjectionKey: InjectionKey<InjectedFormFieldData<Schema>>; errors: import("vue").Ref<import("zod").inferFormattedError<Schema, string> | undefined>; status: import("vue").Ref<import("./enums").FormStatus | undefined>; formData: import("vue").Ref<Partial<import("zod").TypeOf<Schema> | undefined>>; } | { VvForm: { new (...args: any[]): { $: import("vue").ComponentInternalInstance; $data: {}; $props: { template?: FormTemplate<AnyZodObject> | undefined; modelValue?: Record<string, any> | undefined; updateThrottle?: number | undefined; continuosValidation?: boolean | undefined; onInvalid?: ((...args: any[]) => any) | undefined; onValid?: ((...args: any[]) => any) | undefined; "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined; key?: string | number | symbol | undefined; onSubmit?: ((...args: any[]) => any) | undefined; ref?: import("vue").VNodeRef | undefined; ref_for?: boolean | undefined; ref_key?: string | undefined; onVnodeBeforeMount?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; onVnodeMounted?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; onVnodeBeforeUpdate?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, oldVNode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, oldVNode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; onVnodeUpdated?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, oldVNode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, oldVNode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; onVnodeBeforeUnmount?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; onVnodeUnmounted?: ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void) | ((vnode: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>) => void)[] | undefined; class?: unknown; style?: unknown; }; $attrs: { [x: string]: unknown; }; $refs: { [x: string]: unknown; }; $slots: Readonly<{ [name: string]: import("vue").Slot<any> | undefined; }>; $root: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null; $parent: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null; $emit: (event: "invalid" | "valid" | "update:modelValue" | "submit", ...args: any[]) => void; $el: any; $options: import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{ modelValue: { type: ObjectConstructor; default: () => {}; }; updateThrottle: { type: NumberConstructor; default: number; }; continuosValidation: { type: BooleanConstructor; default: boolean; }; template: { type: import("vue").PropType<FormTemplate<AnyZodObject>>; default: undefined; }; }>> & { onInvalid?: ((...args: any[]) => any) | undefined; onValid?: ((...args: any[]) => any) | undefined; "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined; onSubmit?: ((...args: any[]) => any) | undefined; }, { formData: import("vue").Ref<Partial<{ [x: string]: any; } | undefined>>; submit: () => boolean; validate: (value?: Partial<{ [x: string]: any; } | undefined>) => boolean; errors: Readonly<import("vue").Ref<{ readonly [x: string]: { readonly _errors: readonly string[]; } | undefined; readonly _errors: readonly string[]; } | undefined>>; status: Readonly<import("vue").Ref<import("./enums").FormStatus | undefined>>; invalid: import("vue").ComputedRef<boolean>; }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("invalid" | "valid" | "update:modelValue" | "submit")[], string, { template: FormTemplate<AnyZodObject>; modelValue: Record<string, any>; updateThrottle: number; continuosValidation: boolean; }, {}, string, {}> & { beforeCreate?: ((() => void) | (() => void)[]) | undefined; created?: ((() => void) | (() => void)[]) | undefined; beforeMount?: ((() => void) | (() => void)[]) | undefined; mounted?: ((() => void) | (() => void)[]) | undefined; beforeUpdate?: ((() => void) | (() => void)[]) | undefined; updated?: ((() => void) | (() => void)[]) | undefined; activated?: ((() => void) | (() => void)[]) | undefined; deactivated?: ((() => void) | (() => void)[]) | undefined; beforeDestroy?: ((() => void) | (() => void)[]) | undefined; beforeUnmount?: ((() => void) | (() => void)[]) | undefined; destroyed?: ((() => void) | (() => void)[]) | undefined; unmounted?: ((() => void) | (() => void)[]) | undefined; renderTracked?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined; renderTriggered?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined; errorCaptured?: (((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null, info: string) => boolean | void)[]) | undefined; }; $forceUpdate: () => void; $nextTick: typeof import("vue").nextTick; $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (args_0: R, args_1: R) => any : (...args: any) => any, options?: import("vue").WatchOptions<boolean> | undefined): import("vue").WatchStopHandle; } & Readonly<import("vue").ExtractPropTypes<{ modelValue: { type: ObjectConstructor; default: () => {}; }; updateThrottle: { type: NumberConstructor; default: number; }; continuosValidation: { type: BooleanConstructor; default: boolean; }; template: { type: import("vue").PropType<FormTemplate<AnyZodObject>>; default: undefined; }; }>> & { onInvalid?: ((...args: any[]) => any) | undefined; onValid?: ((...args: any[]) => any) | undefined; "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined; onSubmit?: ((...args: any[]) => any) | undefined; } & import("vue").ShallowUnwrapRef<{ formData: import("vue").Ref<Partial<{ [x: string]: any; } | undefined>>; submit: () => boolean; validate: (value?: Partial<{ [x: string]: any; } | undefined>) => boolean; errors: Readonly<import("vue").Ref<{ readonly [x: string]: { readonly _errors: readonly string[]; } | undefined; readonly _errors: readonly string[]; } | undefined>>; status: Readonly<import("vue").Ref<import("./enums").FormStatus | undefined>>; invalid: import("vue").ComputedRef<boolean>; }> & {} & import("vue").ComponentCustomProperties & {}; __isFragment?: undefined; __isTeleport?: undefined; __isSuspense?: undefined; } & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{ modelValue: { type: ObjectConstructor; default: () => {}; }; updateThrottle: { type: NumberConstructor; default: number; }; continuosValidation: { type: BooleanConstructor; default: boolean; }; template: {