UNPKG

vuetify

Version:

Vue Material Component Framework

136 lines (134 loc) 7.15 kB
import type { PropType } from 'vue'; import type { EventProp, MaybeRef } from "../util/index.js"; export type ValidationResult = string | boolean; export type ValidationRule = ValidationResult | PromiseLike<ValidationResult> | ((value: any) => ValidationResult) | ((value: any) => PromiseLike<ValidationResult>); type ValidateOnValue = 'blur' | 'input' | 'submit' | 'invalid-input'; type ValidateOn = ValidateOnValue | `${ValidateOnValue} lazy` | `${ValidateOnValue} eager` | `lazy ${ValidateOnValue}` | `eager ${ValidateOnValue}` | 'lazy' | 'eager'; export interface ValidationProps { disabled: boolean | null; error: boolean; errorMessages: string | readonly string[] | null; focused: boolean; maxErrors: string | number; name: string | undefined; label: string | undefined; readonly: boolean | null; rules: readonly ValidationRule[]; modelValue: any; 'onUpdate:modelValue': EventProp | undefined; validateOn?: ValidateOn; validationValue: any; } export declare const makeValidationProps: <Defaults extends { focused?: unknown; 'onUpdate:focused'?: unknown; disabled?: unknown; error?: unknown; errorMessages?: unknown; maxErrors?: unknown; name?: unknown; label?: unknown; readonly?: unknown; rules?: unknown; modelValue?: unknown; validateOn?: unknown; validationValue?: unknown; } = {}>(defaults?: Defaults | undefined) => { focused: unknown extends Defaults["focused"] ? BooleanConstructor : { type: PropType<unknown extends Defaults["focused"] ? boolean : boolean | Defaults["focused"]>; default: unknown extends Defaults["focused"] ? boolean : boolean | Defaults["focused"]; }; 'onUpdate:focused': unknown extends Defaults["onUpdate:focused"] ? PropType<(args_0: boolean) => void> : { type: PropType<unknown extends Defaults["onUpdate:focused"] ? (args_0: boolean) => void : ((args_0: boolean) => void) | Defaults["onUpdate:focused"]>; default: unknown extends Defaults["onUpdate:focused"] ? (args_0: boolean) => void : ((args_0: boolean) => void) | Defaults["onUpdate:focused"]; }; disabled: unknown extends Defaults["disabled"] ? { type: PropType<boolean | null>; default: null; } : Omit<{ type: PropType<boolean | null>; default: null; }, "type" | "default"> & { type: PropType<unknown extends Defaults["disabled"] ? boolean | null : boolean | Defaults["disabled"] | null>; default: unknown extends Defaults["disabled"] ? boolean | null : NonNullable<boolean | null> | Defaults["disabled"]; }; error: unknown extends Defaults["error"] ? BooleanConstructor : { type: PropType<unknown extends Defaults["error"] ? boolean : boolean | Defaults["error"]>; default: unknown extends Defaults["error"] ? boolean : boolean | Defaults["error"]; }; errorMessages: unknown extends Defaults["errorMessages"] ? { type: PropType<string | readonly string[] | null>; default: () => never[]; } : Omit<{ type: PropType<string | readonly string[] | null>; default: () => never[]; }, "type" | "default"> & { type: PropType<unknown extends Defaults["errorMessages"] ? string | readonly string[] | null : string | readonly string[] | Defaults["errorMessages"] | null>; default: unknown extends Defaults["errorMessages"] ? string | readonly string[] | null : Defaults["errorMessages"] | NonNullable<string | readonly string[] | null>; }; maxErrors: unknown extends Defaults["maxErrors"] ? { type: (StringConstructor | NumberConstructor)[]; default: number; } : Omit<{ type: (StringConstructor | NumberConstructor)[]; default: number; }, "type" | "default"> & { type: PropType<unknown extends Defaults["maxErrors"] ? string | number : string | number | Defaults["maxErrors"]>; default: unknown extends Defaults["maxErrors"] ? string | number : NonNullable<string | number> | Defaults["maxErrors"]; }; name: unknown extends Defaults["name"] ? StringConstructor : { type: PropType<unknown extends Defaults["name"] ? string : string | Defaults["name"]>; default: unknown extends Defaults["name"] ? string : string | Defaults["name"]; }; label: unknown extends Defaults["label"] ? StringConstructor : { type: PropType<unknown extends Defaults["label"] ? string : string | Defaults["label"]>; default: unknown extends Defaults["label"] ? string : string | Defaults["label"]; }; readonly: unknown extends Defaults["readonly"] ? { type: PropType<boolean | null>; default: null; } : Omit<{ type: PropType<boolean | null>; default: null; }, "type" | "default"> & { type: PropType<unknown extends Defaults["readonly"] ? boolean | null : boolean | Defaults["readonly"] | null>; default: unknown extends Defaults["readonly"] ? boolean | null : NonNullable<boolean | null> | Defaults["readonly"]; }; rules: unknown extends Defaults["rules"] ? { type: PropType<readonly ValidationRule[]>; default: () => never[]; } : Omit<{ type: PropType<readonly ValidationRule[]>; default: () => never[]; }, "type" | "default"> & { type: PropType<unknown extends Defaults["rules"] ? readonly ValidationRule[] : readonly ValidationRule[] | Defaults["rules"]>; default: unknown extends Defaults["rules"] ? readonly ValidationRule[] : readonly ValidationRule[] | Defaults["rules"]; }; modelValue: unknown extends Defaults["modelValue"] ? null : { type: PropType<unknown extends Defaults["modelValue"] ? any : any>; default: unknown extends Defaults["modelValue"] ? any : any; }; validateOn: unknown extends Defaults["validateOn"] ? PropType<ValidateOn | undefined> : { type: PropType<unknown extends Defaults["validateOn"] ? ValidateOn | undefined : ValidateOn | Defaults["validateOn"] | undefined>; default: unknown extends Defaults["validateOn"] ? ValidateOn | undefined : Defaults["validateOn"] | NonNullable<ValidateOn | undefined>; }; validationValue: unknown extends Defaults["validationValue"] ? null : { type: PropType<unknown extends Defaults["validationValue"] ? any : any>; default: unknown extends Defaults["validationValue"] ? any : any; }; }; export declare function useValidation(props: ValidationProps, name?: string, id?: MaybeRef<string | number>): { errorMessages: import("vue").ComputedRef<string[]>; isDirty: import("vue").ComputedRef<boolean>; isDisabled: import("vue").ComputedRef<boolean>; isReadonly: import("vue").ComputedRef<boolean>; isPristine: import("vue").ShallowRef<boolean, boolean>; isValid: import("vue").ComputedRef<boolean | null>; isValidating: import("vue").ShallowRef<boolean, boolean>; reset: () => Promise<void>; resetValidation: () => Promise<void>; validate: (silent?: boolean) => Promise<string[]>; validationClasses: import("vue").ComputedRef<{ [x: string]: boolean; }>; };