UNPKG

@volverjs/form-vue

Version:

Vue 3 Forms with @volverjs/ui-vue

130 lines (129 loc) 5.72 kB
import { Component, ConcreteComponent, DeepReadonly, InjectionKey, PropType, Ref, SlotsType } from 'vue'; import { FormFieldComponentOptions, FormSchema, InjectedFormData, InjectedFormFieldData, InjectedFormWrapperData, Path, InferSchema, InferFormattedError } from './types'; import { FormFieldType } from './enums'; export declare function defineFormField<Schema extends FormSchema, Type = undefined>(formProvideKey: InjectionKey<InjectedFormData<Schema, Type>>, wrapperProvideKey: InjectionKey<InjectedFormWrapperData<Schema>>, formFieldInjectionKey: InjectionKey<InjectedFormFieldData<Schema>>, options?: FormFieldComponentOptions): import('vue').DefineComponent<import('vue').ExtractPropTypes<{ type: { type: PropType<`${FormFieldType}`>; validator: (value: FormFieldType) => boolean; default: FormFieldType; }; is: { type: PropType<Component | string>; default: undefined; }; name: { type: PropType<Path<InferSchema<Schema>>>; required: true; }; props: { type: PropType<Partial<InferSchema<Schema> | undefined | ((formData?: Ref<ObjectConstructor>) => Partial<InferSchema<Schema>> | undefined)>>; default: () => {}; }; showValid: { type: BooleanConstructor; default: boolean; }; defaultValue: { type: (ArrayConstructor | NumberConstructor | ObjectConstructor | BooleanConstructor | StringConstructor)[]; default: undefined; }; lazyLoad: { type: BooleanConstructor; default: boolean; }; readonly: { type: BooleanConstructor; default: undefined; }; }>, { component: import('vue').ComputedRef<{ new (...args: any[]): any; __isFragment?: never; __isTeleport?: never; __isSuspense?: never; } | ConcreteComponent>; hasProps: import('vue').ComputedRef<{ name: {} | ([{ type: PropType<Path<InferSchema<Schema>>>; required: true; }] extends [import('vue').Prop<infer V, infer D>] ? unknown extends V ? keyof V extends never ? import('@vue/shared').IfAny<V, V, D> : V : V : { type: PropType<Path<InferSchema<Schema>>>; required: true; }); invalid: boolean; valid: boolean | undefined; type: FormFieldType | undefined; invalidLabel: string[] | undefined; modelValue: unknown; readonly: boolean; 'onUpdate:modelValue': (value: unknown) => void; }>; invalid: import('vue').ComputedRef<boolean>; }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("invalid" | "valid" | "update:modelValue" | "update:formData")[], "invalid" | "valid" | "update:modelValue" | "update:formData", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{ type: { type: PropType<`${FormFieldType}`>; validator: (value: FormFieldType) => boolean; default: FormFieldType; }; is: { type: PropType<Component | string>; default: undefined; }; name: { type: PropType<Path<InferSchema<Schema>>>; required: true; }; props: { type: PropType<Partial<InferSchema<Schema> | undefined | ((formData?: Ref<ObjectConstructor>) => Partial<InferSchema<Schema>> | undefined)>>; default: () => {}; }; showValid: { type: BooleanConstructor; default: boolean; }; defaultValue: { type: (ArrayConstructor | NumberConstructor | ObjectConstructor | BooleanConstructor | StringConstructor)[]; default: undefined; }; lazyLoad: { type: BooleanConstructor; default: boolean; }; readonly: { type: BooleanConstructor; default: undefined; }; }>> & Readonly<{ onInvalid?: ((...args: any[]) => any) | undefined; onValid?: ((...args: any[]) => any) | undefined; "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined; "onUpdate:formData"?: ((...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"; readonly: boolean; props: [{ type: PropType<Partial<InferSchema<Schema> | undefined | ((formData?: Ref<ObjectConstructor>) => Partial<InferSchema<Schema>> | undefined)>>; default: () => {}; }] extends [import('vue').Prop<infer V, infer D>] ? unknown extends V ? keyof V extends never ? import('@vue/shared').IfAny<V, V, D> : V : V : { type: PropType<Partial<InferSchema<Schema> | undefined | ((formData?: Ref<ObjectConstructor>) => Partial<InferSchema<Schema>> | undefined)>>; default: () => {}; }; is: string | Component; showValid: boolean; defaultValue: string | number | boolean | unknown[] | Record<string, any>; lazyLoad: boolean; }, SlotsType<{ [key: string]: any; default: { errors: DeepReadonly<InferFormattedError<Schema> | undefined>; formData?: undefined extends Type ? Partial<InferSchema<Schema>> : Type; formErrors?: DeepReadonly<InferFormattedError<Schema>>; invalid: boolean; invalidLabel?: string[]; modelValue: any; readonly: boolean; onUpdate: (value: unknown) => void; submit?: InjectedFormData<Schema, Type>["submit"]; validate?: InjectedFormData<Schema, Type>["validate"]; }; }>, {}, {}, "invalid" | "type" | "errors" | "component" | "hasProps" | "invalidLabel" | "is", import('vue').ComponentProvideOptions, true, {}, any>;