@volverjs/form-vue
Version:
Vue 3 Forms with @volverjs/ui-vue
107 lines (106 loc) • 5.13 kB
TypeScript
import { type Component, type InjectionKey, type PropType, type Ref, type ConcreteComponent } from 'vue';
import type { z } from 'zod';
import { FormFieldType } from './enums';
import type { InjectedFormData, InjectedFormWrapperData, InjectedFormFieldData, FormFieldComponentOptions, Path, FormSchema } from './types';
export declare const defineFormField: <Schema extends FormSchema>(formProvideKey: InjectionKey<InjectedFormData<Schema>>, wrapperProvideKey: InjectionKey<InjectedFormWrapperData<Schema>>, formFieldInjectionKey: InjectionKey<InjectedFormFieldData<Schema>>, options?: FormFieldComponentOptions) => import("vue").DefineComponent<{
type: {
type: 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: FormFieldType) => boolean;
default: FormFieldType;
};
is: {
type: PropType<Component>;
default: undefined;
};
name: {
type: PropType<Path<z.TypeOf<Schema>>>;
required: true;
};
props: {
type: PropType<Partial<z.TypeOf<Schema> | ((formData?: Ref<ObjectConstructor>) => Partial<z.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;
} | ConcreteComponent>;
hasProps: import("vue").ComputedRef<{
name: {} | ([{
type: PropType<Path<z.TypeOf<Schema>>>;
required: true;
}] extends [import("vue").Prop<infer V, infer D>] ? unknown extends V ? import("@vue/shared").IfAny<V, V, D> : V : {
type: PropType<Path<z.TypeOf<Schema>>>;
required: true;
});
invalid: boolean;
valid: boolean | undefined;
type: 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: 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: FormFieldType) => boolean;
default: FormFieldType;
};
is: {
type: PropType<Component>;
default: undefined;
};
name: {
type: PropType<Path<z.TypeOf<Schema>>>;
required: true;
};
props: {
type: PropType<Partial<z.TypeOf<Schema> | ((formData?: Ref<ObjectConstructor>) => Partial<z.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: PropType<Partial<z.TypeOf<Schema> | ((formData?: Ref<ObjectConstructor>) => Partial<z.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: PropType<Partial<z.TypeOf<Schema> | ((formData?: Ref<ObjectConstructor>) => Partial<z.TypeOf<Schema>> | undefined) | undefined>>;
default: () => {};
};
is: Component;
showValid: boolean;
defaultValue: string | number | boolean | unknown[] | Record<string, any>;
lazyLoad: boolean;
}, {}>;