vuetify
Version:
Vue Material Component Framework
136 lines (134 loc) • 7.15 kB
TypeScript
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;
}>;
};