vee-validate
Advanced tools
Comparing version 4.8.6 to 4.9.0
import * as vue from 'vue'; | ||
import { Ref, ComputedRef, PropType, VNode, UnwrapRef, InjectionKey } from 'vue'; | ||
import { PartialDeep } from 'type-fest'; | ||
type BrowserNativeObject = Date | FileList | File; | ||
type Primitive = null | undefined | string | number | boolean | symbol | bigint; | ||
/** | ||
* Checks whether the type is any | ||
* See {@link https://stackoverflow.com/a/49928360/3406963} | ||
* @typeParam T - type which may be any | ||
* ``` | ||
* IsAny<any> = true | ||
* IsAny<string> = false | ||
* ``` | ||
*/ | ||
type IsAny<T> = 0 extends 1 & T ? true : false; | ||
/** | ||
* Checks whether T1 can be exactly (mutually) assigned to T2 | ||
* @typeParam T1 - type to check | ||
* @typeParam T2 - type to check against | ||
* ``` | ||
* IsEqual<string, string> = true | ||
* IsEqual<'foo', 'foo'> = true | ||
* IsEqual<string, number> = false | ||
* IsEqual<string, number> = false | ||
* IsEqual<string, 'foo'> = false | ||
* IsEqual<'foo', string> = false | ||
* IsEqual<'foo' | 'bar', 'foo'> = boolean // 'foo' is assignable, but 'bar' is not (true | false) -> boolean | ||
* ``` | ||
*/ | ||
type IsEqual<T1, T2> = T1 extends T2 ? (<G>() => G extends T1 ? 1 : 2) extends <G>() => G extends T2 ? 1 : 2 ? true : false : false; | ||
/** | ||
* Type to query whether an array type T is a tuple type. | ||
* @typeParam T - type which may be an array or tuple | ||
* @example | ||
* ``` | ||
* IsTuple<[number]> = true | ||
* IsTuple<number[]> = false | ||
* ``` | ||
*/ | ||
type IsTuple<T extends ReadonlyArray<any>> = number extends T['length'] ? false : true; | ||
/** | ||
* Type which can be used to index an array or tuple type. | ||
*/ | ||
type ArrayKey = number; | ||
/** | ||
* Helper function to break apart T1 and check if any are equal to T2 | ||
* | ||
* See {@link IsEqual} | ||
*/ | ||
type AnyIsEqual<T1, T2> = T1 extends T2 ? (IsEqual<T1, T2> extends true ? true : never) : never; | ||
/** | ||
* Type which given a tuple type returns its own keys, i.e. only its indices. | ||
* @typeParam T - tuple type | ||
* @example | ||
* ``` | ||
* TupleKeys<[number, string]> = '0' | '1' | ||
* ``` | ||
*/ | ||
type TupleKeys<T extends ReadonlyArray<any>> = Exclude<keyof T, keyof any[]>; | ||
/** | ||
* Helper type for recursively constructing paths through a type. | ||
* This actually constructs the strings and recurses into nested | ||
* object types. | ||
* | ||
* See {@link Path} | ||
*/ | ||
type PathImpl<K extends string | number, V, TraversedTypes> = V extends Primitive | BrowserNativeObject ? `${K}` : true extends AnyIsEqual<TraversedTypes, V> ? `${K}` : `${K}` | `${K}.${PathInternal<V, TraversedTypes | V>}`; | ||
/** | ||
* Helper type for recursively constructing paths through a type. | ||
* This obscures the internal type param TraversedTypes from ed contract. | ||
* | ||
* See {@link Path} | ||
*/ | ||
type PathInternal<T, TraversedTypes = T> = T extends ReadonlyArray<infer V> ? IsTuple<T> extends true ? { | ||
[K in TupleKeys<T>]-?: PathImpl<K & string, T[K], TraversedTypes>; | ||
}[TupleKeys<T>] : PathImpl<ArrayKey, V, TraversedTypes> : { | ||
[K in keyof T]-?: PathImpl<K & string, T[K], TraversedTypes>; | ||
}[keyof T]; | ||
/** | ||
* Helper type for recursively constructing paths through a type. | ||
* This actually constructs the strings and recurses into nested | ||
* object types. | ||
* | ||
* See {@link ArrayPath} | ||
*/ | ||
type ArrayPathImpl<K extends string | number, V, TraversedTypes> = V extends Primitive | BrowserNativeObject ? IsAny<V> extends true ? string : never : V extends ReadonlyArray<infer U> ? U extends Primitive | BrowserNativeObject ? IsAny<V> extends true ? string : never : true extends AnyIsEqual<TraversedTypes, V> ? never : `${K}` | `${K}.${ArrayPathInternal<V, TraversedTypes | V>}` : true extends AnyIsEqual<TraversedTypes, V> ? never : `${K}.${ArrayPathInternal<V, TraversedTypes | V>}`; | ||
/** | ||
* Helper type for recursively constructing paths through a type. | ||
* This obscures the internal type param TraversedTypes from ed contract. | ||
* | ||
* See {@link ArrayPath} | ||
*/ | ||
type ArrayPathInternal<T, TraversedTypes = T> = T extends ReadonlyArray<infer V> ? IsTuple<T> extends true ? { | ||
[K in TupleKeys<T>]-?: ArrayPathImpl<K & string, T[K], TraversedTypes>; | ||
}[TupleKeys<T>] : ArrayPathImpl<ArrayKey, V, TraversedTypes> : { | ||
[K in keyof T]-?: ArrayPathImpl<K & string, T[K], TraversedTypes>; | ||
}[keyof T]; | ||
/** | ||
* Type which eagerly collects all paths through a type which point to an array | ||
* type. | ||
* @typeParam T - type which should be introspected. | ||
* @example | ||
* ``` | ||
* Path<{foo: {bar: string[], baz: number[]}}> = 'foo.bar' | 'foo.baz' | ||
* ``` | ||
*/ | ||
type ArrayPath<T> = T extends any ? ArrayPathInternal<T> : never; | ||
/** | ||
* Type to evaluate the type which the given path points to. | ||
* @typeParam T - deeply nested type which is indexed by the path | ||
* @typeParam P - path into the deeply nested type | ||
* @example | ||
* ``` | ||
* PathValue<{foo: {bar: string}}, 'foo.bar'> = string | ||
* PathValue<[number, string], '1'> = string | ||
* ``` | ||
*/ | ||
type PathValue<T, P extends Path<T> | ArrayPath<T>> = T extends any ? P extends `${infer K}.${infer R}` ? K extends keyof T ? R extends Path<T[K]> ? PathValue<T[K], R> : never : K extends `${ArrayKey}` ? T extends ReadonlyArray<infer V> ? PathValue<V, R & Path<V>> : never : never : P extends keyof T ? T[P] : P extends `${ArrayKey}` ? T extends ReadonlyArray<infer V> ? V : never : never : never; | ||
/** | ||
* Type which eagerly collects all paths through a type | ||
* @typeParam T - type which should be introspected | ||
* @example | ||
* ``` | ||
* Path<{foo: {bar: string}}> = 'foo' | 'foo.bar' | ||
* ``` | ||
*/ | ||
type Path<T> = T extends any ? PathInternal<T> : never; | ||
type GenericObject = Record<string, any>; | ||
type MaybeRef<T> = Ref<T> | T; | ||
type MaybeRefOrLazy<T> = MaybeRef<T> | (() => T); | ||
type MapValuesPathsToRefs<TValues extends GenericObject, TPaths extends readonly [...MaybeRef<Path<TValues>>[]]> = { | ||
readonly [K in keyof TPaths]: TPaths[K] extends MaybeRef<infer TKey> ? TKey extends Path<TValues> ? Ref<PathValue<TValues, TKey>> : Ref<unknown> : Ref<unknown>; | ||
}; | ||
type FlattenAndSetPathsType<TRecord, TType> = { | ||
[K in Path<TRecord>]: TType; | ||
}; | ||
interface FieldValidationMetaInfo { | ||
@@ -19,3 +155,2 @@ field: string; | ||
type GenericFormValues = Record<string, any>; | ||
interface ValidationResult { | ||
@@ -39,6 +174,4 @@ errors: string[]; | ||
__isYupSchema__: boolean; | ||
validate(value: any, options: Record<string, any>): Promise<any>; | ||
validate(value: any, options: GenericObject): Promise<any>; | ||
}; | ||
type MaybeRef<T> = Ref<T> | T; | ||
type MaybeRefOrLazy<T> = MaybeRef<T> | (() => T); | ||
interface FieldMeta<TValue> { | ||
@@ -52,3 +185,3 @@ touched: boolean; | ||
} | ||
interface FormMeta<TValues extends Record<string, any>> { | ||
interface FormMeta<TValues extends GenericObject> { | ||
touched: boolean; | ||
@@ -66,2 +199,3 @@ dirty: boolean; | ||
} | ||
type InputType = 'checkbox' | 'radio' | 'default'; | ||
/** | ||
@@ -76,2 +210,27 @@ * validated-only: only mutate the previously validated fields | ||
} | ||
type FieldValidator = (opts?: Partial<ValidationOptions$1>) => Promise<ValidationResult>; | ||
interface PathStateConfig { | ||
bails: boolean; | ||
label: MaybeRef<string | undefined>; | ||
type: InputType; | ||
validate: FieldValidator; | ||
} | ||
interface PathState<TValue = unknown> { | ||
id: number | number[]; | ||
path: string; | ||
touched: boolean; | ||
dirty: boolean; | ||
valid: boolean; | ||
validated: boolean; | ||
pending: boolean; | ||
initialValue: TValue | undefined; | ||
value: TValue | undefined; | ||
errors: string[]; | ||
bails: boolean; | ||
label: string | undefined; | ||
type: InputType; | ||
multiple: boolean; | ||
fieldsCount: number; | ||
validate?: FieldValidator; | ||
} | ||
interface FieldEntry<TValue = unknown> { | ||
@@ -114,3 +273,3 @@ value: TValue; | ||
handleReset(): void; | ||
validate(opts?: Partial<ValidationOptions$1>): Promise<ValidationResult>; | ||
validate: FieldValidator; | ||
handleChange(e: Event | unknown, shouldValidate?: boolean): void; | ||
@@ -126,51 +285,47 @@ handleBlur(e?: Event): void; | ||
interface FormState<TValues> { | ||
values: TValues; | ||
errors: Partial<Record<keyof TValues, string | undefined>>; | ||
touched: Partial<Record<keyof TValues, boolean>>; | ||
values: PartialDeep<TValues>; | ||
errors: Partial<Record<Path<TValues>, string | undefined>>; | ||
touched: Partial<Record<Path<TValues>, boolean>>; | ||
submitCount: number; | ||
} | ||
type FormErrors<TValues extends GenericFormValues> = Partial<Record<keyof TValues, string | undefined>>; | ||
type FormErrorBag<TValues extends GenericFormValues> = Partial<Record<keyof TValues, string[]>>; | ||
type FormErrors<TValues extends GenericObject> = Partial<Record<Path<TValues>, string | undefined>>; | ||
type FormErrorBag<TValues extends GenericObject> = Partial<Record<Path<TValues>, string[]>>; | ||
interface SetFieldValueOptions { | ||
force: boolean; | ||
} | ||
interface FormActions<TValues extends GenericFormValues, TOutput extends TValues = TValues> { | ||
setFieldValue<T extends keyof TValues>(field: T, value: TValues[T], opts?: Partial<SetFieldValueOptions>): void; | ||
setFieldError(field: keyof TValues, message: string | string[] | undefined): void; | ||
interface FormActions<TValues extends GenericObject, TOutput = TValues> { | ||
setFieldValue<T extends Path<TValues>>(field: T, value: PathValue<TValues, T>, opts?: Partial<SetFieldValueOptions>): void; | ||
setFieldError(field: Path<TValues>, message: string | string[] | undefined): void; | ||
setErrors(fields: FormErrors<TValues>): void; | ||
setValues<T extends keyof TValues>(fields: Partial<Record<T, TValues[T]>>): void; | ||
setFieldTouched(field: keyof TValues, isTouched: boolean): void; | ||
setTouched(fields: Partial<Record<keyof TValues, boolean>>): void; | ||
setValues(fields: PartialDeep<TValues>): void; | ||
setFieldTouched(field: Path<TValues>, isTouched: boolean): void; | ||
setTouched(fields: Partial<Record<Path<TValues>, boolean>>): void; | ||
resetForm(state?: Partial<FormState<TValues>>): void; | ||
resetField(field: keyof TValues, state?: Partial<FieldState>): void; | ||
resetField(field: Path<TValues>, state?: Partial<FieldState>): void; | ||
} | ||
interface FormValidationResult<TValues, TOutput = TValues> { | ||
valid: boolean; | ||
results: Partial<Record<keyof TValues, ValidationResult>>; | ||
errors: Partial<Record<keyof TValues, string>>; | ||
results: Partial<Record<Path<TValues>, ValidationResult>>; | ||
errors: Partial<Record<Path<TValues>, string>>; | ||
values?: TOutput; | ||
} | ||
interface SubmissionContext<TValues extends GenericFormValues = GenericFormValues> extends FormActions<TValues> { | ||
interface SubmissionContext<TValues extends GenericObject = GenericObject> extends FormActions<TValues> { | ||
evt?: Event; | ||
controlledValues: Partial<TValues>; | ||
} | ||
type SubmissionHandler<TValues extends GenericFormValues = GenericFormValues, TOutput extends TValues = TValues, TReturn = unknown> = (values: TOutput, ctx: SubmissionContext<TValues>) => TReturn; | ||
interface InvalidSubmissionContext<TValues extends GenericFormValues = GenericFormValues> { | ||
type SubmissionHandler<TValues extends GenericObject = GenericObject, TOutput = TValues, TReturn = unknown> = (values: TOutput, ctx: SubmissionContext<TValues>) => TReturn; | ||
interface InvalidSubmissionContext<TValues extends GenericObject = GenericObject> { | ||
values: TValues; | ||
evt?: Event; | ||
errors: Partial<Record<keyof TValues, string>>; | ||
results: Partial<Record<keyof TValues, ValidationResult>>; | ||
errors: Partial<Record<Path<TValues>, string>>; | ||
results: Partial<Record<Path<TValues>, ValidationResult>>; | ||
} | ||
type InvalidSubmissionHandler<TValues extends GenericFormValues = GenericFormValues> = (ctx: InvalidSubmissionContext<TValues>) => void; | ||
type RawFormSchema<TValues> = Record<keyof TValues, string | GenericValidateFunction | Record<string, any>>; | ||
type FieldPathLookup<TValues extends Record<string, any> = Record<string, any>> = Partial<Record<keyof TValues, PrivateFieldContext | PrivateFieldContext[]>>; | ||
type MapValues<T, TValues extends Record<string, any>> = { | ||
[K in keyof T]: T[K] extends MaybeRef<infer TKey> ? TKey extends keyof TValues ? Ref<TValues[TKey]> : Ref<unknown> : Ref<unknown>; | ||
}; | ||
type HandleSubmitFactory<TValues extends GenericFormValues, TOutput extends TValues = TValues> = <TReturn = unknown>(cb: SubmissionHandler<TValues, TOutput, TReturn>, onSubmitValidationErrorCb?: InvalidSubmissionHandler<TValues>) => (e?: Event) => Promise<TReturn | undefined>; | ||
interface PrivateFormContext<TValues extends GenericFormValues = GenericFormValues, TOutput extends TValues = TValues> extends FormActions<TValues> { | ||
type InvalidSubmissionHandler<TValues extends GenericObject = GenericObject> = (ctx: InvalidSubmissionContext<TValues>) => void; | ||
type RawFormSchema<TValues> = Record<Path<TValues>, string | GenericValidateFunction | GenericObject>; | ||
type HandleSubmitFactory<TValues extends GenericObject, TOutput = TValues> = <TReturn = unknown>(cb: SubmissionHandler<TValues, TOutput, TReturn>, onSubmitValidationErrorCb?: InvalidSubmissionHandler<TValues>) => (e?: Event) => Promise<TReturn | undefined>; | ||
interface PrivateFormContext<TValues extends GenericObject = GenericObject, TOutput = TValues> extends FormActions<TValues> { | ||
formId: number; | ||
values: TValues; | ||
initialValues: Ref<Partial<TValues>>; | ||
controlledValues: Ref<TValues>; | ||
fieldsByPath: Ref<FieldPathLookup>; | ||
fieldArrays: PrivateFieldArrayContext[]; | ||
@@ -185,9 +340,6 @@ submitCount: Ref<number>; | ||
validateSchema?: (mode: SchemaValidationMode) => Promise<FormValidationResult<TValues, TOutput>>; | ||
validate(opts?: Partial<ValidationOptions$1>): Promise<FormValidationResult<TValues>>; | ||
validateField(field: keyof TValues): Promise<ValidationResult>; | ||
setFieldErrorBag(field: string, messages: string | string[]): void; | ||
validate(opts?: Partial<ValidationOptions$1>): Promise<FormValidationResult<TValues, TOutput>>; | ||
validateField(field: Path<TValues>): Promise<ValidationResult>; | ||
stageInitialValue(path: string, value: unknown, updateOriginal?: boolean): void; | ||
unsetInitialValue(path: string): void; | ||
register(field: PrivateFieldContext): void; | ||
unregister(field: PrivateFieldContext): void; | ||
handleSubmit: HandleSubmitFactory<TValues, TOutput> & { | ||
@@ -197,8 +349,49 @@ withControlled: HandleSubmitFactory<TValues, TOutput>; | ||
setFieldInitialValue(path: string, value: unknown): void; | ||
useFieldModel<TPath extends keyof TValues>(path: MaybeRef<TPath>): Ref<TValues[TPath]>; | ||
useFieldModel<TPath extends keyof TValues>(paths: [...MaybeRef<TPath>[]]): MapValues<typeof paths, TValues>; | ||
useFieldModel<TPath extends Path<TValues>>(path: TPath): Ref<PathValue<TValues, TPath>>; | ||
useFieldModel<TPaths extends readonly [...MaybeRef<Path<TValues>>[]]>(paths: TPaths): MapValuesPathsToRefs<TValues, TPaths>; | ||
createPathState<TPath extends Path<TValues>>(path: MaybeRef<TPath>, config?: Partial<PathStateConfig>): PathState<PathValue<TValues, TPath>>; | ||
getPathState<TPath extends Path<TValues>>(path: TPath): PathState<PathValue<TValues, TPath>> | undefined; | ||
getAllPathStates(): PathState[]; | ||
removePathState<TPath extends Path<TValues>>(path: TPath): void; | ||
unsetPathValue<TPath extends Path<TValues>>(path: TPath): void; | ||
} | ||
interface FormContext<TValues extends Record<string, any> = Record<string, any>, TOutput extends TValues = TValues> extends Omit<PrivateFormContext<TValues, TOutput>, 'formId' | 'register' | 'unregister' | 'fieldsByPath' | 'schema' | 'validateSchema' | 'setFieldErrorBag' | 'stageInitialValue' | 'setFieldInitialValue' | 'unsetInitialValue' | 'fieldArrays' | 'keepValuesOnUnmount'> { | ||
interface BaseComponentBinds<TValue = unknown> { | ||
modelValue: TValue | undefined; | ||
'onUpdate:modelValue': (value: TValue) => void; | ||
onBlur: () => void; | ||
} | ||
type PublicPathState<TValue = unknown> = Omit<PathState<TValue>, 'bails' | 'label' | 'multiple' | 'fieldsCount' | 'validate' | 'id' | 'type'>; | ||
interface ComponentBindsConfig<TValue = unknown, TExtraProps extends GenericObject = GenericObject> { | ||
mapProps: (state: PublicPathState<TValue>) => TExtraProps; | ||
validateOnBlur: boolean; | ||
validateOnModelUpdate: boolean; | ||
} | ||
type LazyComponentBindsConfig<TValue = unknown, TExtraProps extends GenericObject = GenericObject> = (state: PublicPathState<TValue>) => Partial<{ | ||
props: TExtraProps; | ||
validateOnBlur: boolean; | ||
validateOnModelUpdate: boolean; | ||
}>; | ||
interface BaseInputBinds<TValue = unknown> { | ||
value: TValue | undefined; | ||
onBlur: (e: Event) => void; | ||
onChange: (e: Event) => void; | ||
onInput: (e: Event) => void; | ||
} | ||
interface InputBindsConfig<TValue = unknown, TExtraProps extends GenericObject = GenericObject> { | ||
mapAttrs: (state: PublicPathState<TValue>) => TExtraProps; | ||
validateOnBlur: boolean; | ||
validateOnChange: boolean; | ||
validateOnInput: boolean; | ||
} | ||
type LazyInputBindsConfig<TValue = unknown, TExtraProps extends GenericObject = GenericObject> = (state: PublicPathState<TValue>) => Partial<{ | ||
attrs: TExtraProps; | ||
validateOnBlur: boolean; | ||
validateOnChange: boolean; | ||
validateOnInput: boolean; | ||
}>; | ||
interface FormContext<TValues extends GenericObject = GenericObject, TOutput = TValues> extends Omit<PrivateFormContext<TValues, TOutput>, 'formId' | 'schema' | 'initialValues' | 'getPathState' | 'getAllPathStates' | 'removePathState' | 'unsetPathValue' | 'validateSchema' | 'stageInitialValue' | 'setFieldInitialValue' | 'unsetInitialValue' | 'fieldArrays' | 'keepValuesOnUnmount'> { | ||
handleReset: () => void; | ||
submitForm: (e?: unknown) => Promise<void>; | ||
defineComponentBinds<TPath extends Path<TValues>, TValue = PathValue<TValues, TPath>, TExtras extends GenericObject = GenericObject>(path: MaybeRefOrLazy<TPath>, config?: Partial<ComponentBindsConfig<TValue, TExtras>> | LazyComponentBindsConfig<TValue, TExtras>): Ref<BaseComponentBinds<TValue> & TExtras>; | ||
defineInputBinds<TPath extends Path<TValues>, TValue = PathValue<TValues, TPath>, TExtras extends GenericObject = GenericObject>(path: MaybeRefOrLazy<TPath>, config?: Partial<InputBindsConfig<TValue, TExtras>> | LazyInputBindsConfig<TValue, TExtras>): Ref<BaseInputBinds<TValue> & TExtras>; | ||
} | ||
@@ -244,3 +437,3 @@ | ||
bails?: boolean; | ||
type?: string; | ||
type?: InputType; | ||
valueProp?: MaybeRef<TValue>; | ||
@@ -263,7 +456,8 @@ checkedValue?: MaybeRef<TValue>; | ||
type EventHandlerBinding<T> = T | T[]; | ||
interface FieldBindingObject<TValue = unknown> { | ||
name: string; | ||
onBlur: (e: Event) => unknown; | ||
onInput: (e: Event) => unknown; | ||
onChange: (e: Event) => unknown; | ||
onBlur: EventHandlerBinding<(e: Event) => unknown>; | ||
onInput: EventHandlerBinding<(e: Event) => unknown>; | ||
onChange: EventHandlerBinding<(e: Event) => unknown>; | ||
'onUpdate:modelValue'?: ((e: TValue) => unknown) | undefined; | ||
@@ -669,5 +863,5 @@ value?: unknown; | ||
submitForm(evt?: Event): void; | ||
getValues<TValues extends GenericFormValues = GenericFormValues>(): TValues; | ||
getMeta<TValues extends GenericFormValues = GenericFormValues>(): FormMeta<TValues>; | ||
getErrors<TValues extends GenericFormValues = GenericFormValues>(): FormErrors<TValues>; | ||
getValues<TValues extends GenericObject = GenericObject>(): TValues; | ||
getMeta<TValues extends GenericObject = GenericObject>(): FormMeta<TValues>; | ||
getErrors<TValues extends GenericObject = GenericObject>(): FormErrors<TValues>; | ||
}; | ||
@@ -679,3 +873,3 @@ declare const Form: { | ||
$props: Partial<{ | ||
onSubmit: SubmissionHandler<GenericFormValues, GenericFormValues, unknown>; | ||
onSubmit: SubmissionHandler; | ||
as: string; | ||
@@ -687,3 +881,3 @@ initialValues: Record<string, any>; | ||
initialTouched: Record<string, any>; | ||
onInvalidSubmit: InvalidSubmissionHandler<GenericFormValues>; | ||
onInvalidSubmit: InvalidSubmissionHandler; | ||
keepValues: boolean; | ||
@@ -716,7 +910,7 @@ }> & Omit<Readonly<vue.ExtractPropTypes<{ | ||
onSubmit: { | ||
type: PropType<SubmissionHandler<GenericFormValues, GenericFormValues, unknown>>; | ||
type: PropType<SubmissionHandler>; | ||
default: any; | ||
}; | ||
onInvalidSubmit: { | ||
type: PropType<InvalidSubmissionHandler<GenericFormValues>>; | ||
type: PropType<InvalidSubmissionHandler>; | ||
default: any; | ||
@@ -768,7 +962,7 @@ }; | ||
onSubmit: { | ||
type: PropType<SubmissionHandler<GenericFormValues, GenericFormValues, unknown>>; | ||
type: PropType<SubmissionHandler>; | ||
default: any; | ||
}; | ||
onInvalidSubmit: { | ||
type: PropType<InvalidSubmissionHandler<GenericFormValues>>; | ||
type: PropType<InvalidSubmissionHandler>; | ||
default: any; | ||
@@ -789,3 +983,3 @@ }; | ||
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, { | ||
onSubmit: SubmissionHandler<GenericFormValues, GenericFormValues, unknown>; | ||
onSubmit: SubmissionHandler; | ||
as: string; | ||
@@ -797,3 +991,3 @@ initialValues: Record<string, any>; | ||
initialTouched: Record<string, any>; | ||
onInvalidSubmit: InvalidSubmissionHandler<GenericFormValues>; | ||
onInvalidSubmit: InvalidSubmissionHandler; | ||
keepValues: boolean; | ||
@@ -846,7 +1040,7 @@ }, {}, string> & { | ||
onSubmit: { | ||
type: PropType<SubmissionHandler<GenericFormValues, GenericFormValues, unknown>>; | ||
type: PropType<SubmissionHandler>; | ||
default: any; | ||
}; | ||
onInvalidSubmit: { | ||
type: PropType<InvalidSubmissionHandler<GenericFormValues>>; | ||
type: PropType<InvalidSubmissionHandler>; | ||
default: any; | ||
@@ -896,7 +1090,7 @@ }; | ||
onSubmit: { | ||
type: PropType<SubmissionHandler<GenericFormValues, GenericFormValues, unknown>>; | ||
type: PropType<SubmissionHandler>; | ||
default: any; | ||
}; | ||
onInvalidSubmit: { | ||
type: PropType<InvalidSubmissionHandler<GenericFormValues>>; | ||
type: PropType<InvalidSubmissionHandler>; | ||
default: any; | ||
@@ -917,3 +1111,3 @@ }; | ||
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, { | ||
onSubmit: SubmissionHandler<GenericFormValues, GenericFormValues, unknown>; | ||
onSubmit: SubmissionHandler; | ||
as: string; | ||
@@ -925,3 +1119,3 @@ initialValues: Record<string, any>; | ||
initialTouched: Record<string, any>; | ||
onInvalidSubmit: InvalidSubmissionHandler<GenericFormValues>; | ||
onInvalidSubmit: InvalidSubmissionHandler; | ||
keepValues: boolean; | ||
@@ -1158,12 +1352,12 @@ }, {}, string> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new () => { | ||
type FormSchema<TValues> = Record<keyof TValues, GenericValidateFunction | string | GenericFormValues> | undefined; | ||
interface FormOptions<TValues extends GenericFormValues, TOutput extends TValues = TValues, TSchema extends TypedSchema<TValues, TOutput> | FormSchema<TValues> = FormSchema<TValues> | TypedSchema<TValues, TOutput>> { | ||
type FormSchema<TValues extends Record<string, unknown>> = FlattenAndSetPathsType<TValues, GenericValidateFunction | string | GenericObject> | undefined; | ||
interface FormOptions<TValues extends GenericObject, TOutput = TValues, TSchema extends TypedSchema<TValues, TOutput> | FormSchema<TValues> = FormSchema<TValues> | TypedSchema<TValues, TOutput>> { | ||
validationSchema?: MaybeRef<TSchema extends TypedSchema ? TypedSchema<TValues, TOutput> : any>; | ||
initialValues?: MaybeRef<Partial<TValues>>; | ||
initialErrors?: Record<keyof TValues, string | undefined>; | ||
initialTouched?: Record<keyof TValues, boolean>; | ||
initialValues?: MaybeRef<PartialDeep<TValues>>; | ||
initialErrors?: FlattenAndSetPathsType<TValues, string | undefined>; | ||
initialTouched?: FlattenAndSetPathsType<TValues, boolean>; | ||
validateOnMount?: boolean; | ||
keepValuesOnUnmount?: MaybeRef<boolean>; | ||
} | ||
declare function useForm<TValues extends GenericFormValues = GenericFormValues, TOutput extends TValues = TValues, TSchema extends FormSchema<TValues> | TypedSchema<TValues, TOutput> = FormSchema<TValues> | TypedSchema<TValues, TOutput>>(opts?: FormOptions<TValues, TOutput, TSchema>): FormContext<TValues, TOutput>; | ||
declare function useForm<TValues extends GenericObject = GenericObject, TOutput = TValues, TSchema extends FormSchema<TValues> | TypedSchema<TValues, TOutput> = FormSchema<TValues> | TypedSchema<TValues, TOutput>>(opts?: FormOptions<TValues, TOutput, TSchema>): FormContext<TValues, TOutput>; | ||
@@ -1237,3 +1431,3 @@ declare function useFieldArray<TValue = unknown>(arrayPath: MaybeRef<string>): FieldArrayContext<TValue>; | ||
*/ | ||
declare function useFormErrors<TValues extends Record<string, unknown> = Record<string, unknown>>(): vue.ComputedRef<Partial<Record<keyof TValues, string>>>; | ||
declare function useFormErrors<TValues extends Record<string, unknown> = Record<string, unknown>>(): vue.ComputedRef<Partial<Record<Path<TValues>, string>>>; | ||
@@ -1251,2 +1445,2 @@ /** | ||
export { ErrorMessage, Field, FieldArray, FieldArrayContext, FieldContext, FieldContextKey, FieldEntry, FieldMeta, FieldOptions, FieldState, Form, FormActions, FormContext, FormContextKey, FormMeta, FormOptions, FormState, FormValidationResult, GenericValidateFunction, IS_ABSENT, InvalidSubmissionContext, InvalidSubmissionHandler, RawFormSchema, RuleExpression, SubmissionContext, SubmissionHandler, TypedSchema, TypedSchemaError, ValidationOptions$1 as ValidationOptions, ValidationResult, configure, defineRule, useField, useFieldArray, useFieldError, useFieldValue, useForm, useFormErrors, useFormValues, useIsFieldDirty, useIsFieldTouched, useIsFieldValid, useIsFormDirty, useIsFormTouched, useIsFormValid, useIsSubmitting, useResetForm, useSubmitCount, useSubmitForm, useValidateField, useValidateForm, validate, validateObjectSchema as validateObject }; | ||
export { ComponentBindsConfig, ErrorMessage, Field, FieldArray, FieldArrayContext, FieldContext, FieldContextKey, FieldEntry, FieldMeta, FieldOptions, FieldState, Form, FormActions, FormContext, FormContextKey, FormMeta, FormOptions, FormState, FormValidationResult, GenericValidateFunction, IS_ABSENT, InputBindsConfig, InvalidSubmissionContext, InvalidSubmissionHandler, LazyComponentBindsConfig, LazyInputBindsConfig, Path, PublicPathState as PathState, RawFormSchema, RuleExpression, SubmissionContext, SubmissionHandler, TypedSchema, TypedSchemaError, ValidationOptions$1 as ValidationOptions, ValidationResult, configure, defineRule, useField, useFieldArray, useFieldError, useFieldValue, useForm, useFormErrors, useFormValues, useIsFieldDirty, useIsFieldTouched, useIsFieldValid, useIsFormDirty, useIsFormTouched, useIsFormValid, useIsSubmitting, useResetForm, useSubmitCount, useSubmitForm, useValidateField, useValidateForm, validate, validateObjectSchema as validateObject }; |
/** | ||
* vee-validate v4.8.6 | ||
* vee-validate v4.9.0 | ||
* (c) 2023 Abdelrahman Awad | ||
* @license MIT | ||
*/ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).VeeValidate={},e.Vue)}(this,(function(e,t){"use strict";function n(e){return"function"==typeof e}function r(e){return null==e}const a=e=>null!==e&&!!e&&"object"==typeof e&&!Array.isArray(e);function u(e){return Number(e)>=0}const l={};const i=Symbol("vee-validate-form"),o=Symbol("vee-validate-field-instance"),s=Symbol("Default empty value"),d="undefined"!=typeof window;function c(e){return n(e)&&!!e.__locatorRef}function f(e){return!!e&&n(e.parse)&&"VVTypedSchema"===e.__type}function v(e){return!!e&&n(e.validate)}function p(e){return"checkbox"===e||"radio"===e}function m(e){return Array.isArray(e)?0===e.length:a(e)&&0===Object.keys(e).length}function h(e){return/^\[.+\]$/i.test(e)}function y(e){return"SELECT"===e.tagName}function g(e,t){return!function(e,t){const n=![!1,null,void 0,0].includes(t.multiple)&&!Number.isNaN(t.multiple);return"select"===e&&"multiple"in t&&n}(e,t)&&"file"!==t.type&&!p(t.type)}function b(e){return V(e)&&e.target&&"submit"in e.target}function V(e){return!!e&&(!!("undefined"!=typeof Event&&n(Event)&&e instanceof Event)||!(!e||!e.srcElement))}function O(e,t){return t in e&&e[t]!==s}function F(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor!==t.constructor)return!1;var n,r,a;if(Array.isArray(e)){if((n=e.length)!=t.length)return!1;for(r=n;0!=r--;)if(!F(e[r],t[r]))return!1;return!0}if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(r of e.entries())if(!t.has(r[0]))return!1;for(r of e.entries())if(!F(r[1],t.get(r[0])))return!1;return!0}if(A(e)&&A(t))return e.size===t.size&&(e.name===t.name&&(e.lastModified===t.lastModified&&e.type===t.type));if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(r of e.entries())if(!t.has(r[0]))return!1;return!0}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if((n=e.length)!=t.length)return!1;for(r=n;0!=r--;)if(e[r]!==t[r])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if((n=(a=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(r=n;0!=r--;)if(!Object.prototype.hasOwnProperty.call(t,a[r]))return!1;for(r=n;0!=r--;){var u=a[r];if(!F(e[u],t[u]))return!1}return!0}return e!=e&&t!=t}function A(e){return!!d&&e instanceof File}function w(e,t,n){"object"==typeof n.value&&(n.value=j(n.value)),n.enumerable&&!n.get&&!n.set&&n.configurable&&n.writable&&"__proto__"!==t?e[t]=n.value:Object.defineProperty(e,t,n)}function j(e){if("object"!=typeof e)return e;var t,n,r,a=0,u=Object.prototype.toString.call(e);if("[object Object]"===u?r=Object.create(e.__proto__||null):"[object Array]"===u?r=Array(e.length):"[object Set]"===u?(r=new Set,e.forEach((function(e){r.add(j(e))}))):"[object Map]"===u?(r=new Map,e.forEach((function(e,t){r.set(j(t),j(e))}))):"[object Date]"===u?r=new Date(+e):"[object RegExp]"===u?r=new RegExp(e.source,e.flags):"[object DataView]"===u?r=new e.constructor(j(e.buffer)):"[object ArrayBuffer]"===u?r=e.slice(0):"Array]"===u.slice(-6)&&(r=new e.constructor(e)),r){for(n=Object.getOwnPropertySymbols(e);a<n.length;a++)w(r,n[a],Object.getOwnPropertyDescriptor(e,n[a]));for(a=0,n=Object.getOwnPropertyNames(e);a<n.length;a++)Object.hasOwnProperty.call(r,t=n[a])&&r[t]===e[t]||w(r,t,Object.getOwnPropertyDescriptor(e,t))}return r||e}function E(e){return h(e)?e.replace(/\[|\]/gi,""):e}function S(e,t,n){if(!e)return n;if(h(t))return e[E(t)];return(t||"").split(/\.|\[(\d+)\]/).filter(Boolean).reduce(((e,t)=>{return(a(r=e)||Array.isArray(r))&&t in e?e[t]:n;var r}),e)}function k(e,t,n){if(h(t))return void(e[E(t)]=n);const a=t.split(/\.|\[(\d+)\]/).filter(Boolean);let l=e;for(let e=0;e<a.length;e++){if(e===a.length-1)return void(l[a[e]]=n);a[e]in l&&!r(l[a[e]])||(l[a[e]]=u(a[e+1])?[]:{}),l=l[a[e]]}}function B(e,t){Array.isArray(e)&&u(t)?e.splice(Number(t),1):a(e)&&delete e[t]}function I(e,t){if(h(t))return void delete e[E(t)];const n=t.split(/\.|\[(\d+)\]/).filter(Boolean);let a=e;for(let e=0;e<n.length;e++){if(e===n.length-1){B(a,n[e]);break}if(!(n[e]in a)||r(a[n[e]]))break;a=a[n[e]]}const u=n.map(((t,r)=>S(e,n.slice(0,r).join("."))));for(let t=u.length-1;t>=0;t--)m(u[t])&&(0!==t?B(u[t-1],n[t-1]):B(e,n[0]))}function M(e){return Object.keys(e)}function T(e,n=undefined){const r=t.getCurrentInstance();return(null==r?void 0:r.provides[e])||t.inject(e,n)}function C(e){t.warn(`[vee-validate]: ${e}`)}function R(e){return Array.isArray(e)?e[0]:e}function x(e,t,n){if(Array.isArray(e)){const n=[...e],r=n.findIndex((e=>F(e,t)));return r>=0?n.splice(r,1):n.push(t),n}return F(e,t)?n:t}function N(e,t=0){let n=null,r=[];return function(...a){return n&&window.clearTimeout(n),n=window.setTimeout((()=>{const t=e(...a);r.forEach((e=>e(t))),r=[]}),t),new Promise((e=>r.push(e)))}}function P(e,t){return a(t)&&t.number?function(e){const t=parseFloat(e);return isNaN(t)?e:t}(e):e}function _(e,t){let n;return async function(...r){const a=e(...r);n=a;const u=await a;return a!==n||(n=void 0,t(u,r)),u}}function U({get:e,set:n}){const r=t.ref(j(e()));return t.watch(e,(e=>{F(e,r.value)||(r.value=j(e))}),{deep:!0}),t.watch(r,(t=>{F(t,e())||n(j(t))}),{deep:!0}),r}function $(e){return t.computed((()=>function(e){return n(e)?e():t.unref(e)}(e)))}const D=(e,t,n)=>t.slots.default?"string"!=typeof e&&e?{default:()=>{var e,r;return null===(r=(e=t.slots).default)||void 0===r?void 0:r.call(e,n())}}:t.slots.default(n()):t.slots.default;function z(e){if(q(e))return e._value}function q(e){return"_value"in e}function L(e){if(!V(e))return e;const t=e.target;if(p(t.type)&&q(t))return z(t);if("file"===t.type&&t.files){const e=Array.from(t.files);return t.multiple?e:e[0]}if(y(n=t)&&n.multiple)return Array.from(t.options).filter((e=>e.selected&&!e.disabled)).map(z);var n;if(y(t)){const e=Array.from(t.options).find((e=>e.selected));return e?z(e):t.value}return t.value}function K(e){const t={};return Object.defineProperty(t,"_$$isNormalized",{value:!0,writable:!1,enumerable:!1,configurable:!1}),e?a(e)&&e._$$isNormalized?e:a(e)?Object.keys(e).reduce(((t,n)=>{const r=function(e){if(!0===e)return[];if(Array.isArray(e))return e;if(a(e))return e;return[e]}(e[n]);return!1!==e[n]&&(t[n]=G(r)),t}),t):"string"!=typeof e?t:e.split("|").reduce(((e,t)=>{const n=X(t);return n.name?(e[n.name]=G(n.params),e):e}),t):t}function G(e){const t=e=>"string"==typeof e&&"@"===e[0]?function(e){const t=t=>S(t,e)||t[e];return t.__locatorRef=e,t}(e.slice(1)):e;return Array.isArray(e)?e.map(t):e instanceof RegExp?[e]:Object.keys(e).reduce(((n,r)=>(n[r]=t(e[r]),n)),{})}const X=e=>{let t=[];const n=e.split(":")[0];return e.includes(":")&&(t=e.split(":").slice(1).join(":").split(",")),{name:n,params:t}};let H=Object.assign({},{generateMessage:({field:e})=>`${e} is not valid.`,bails:!0,validateOnBlur:!0,validateOnChange:!0,validateOnInput:!1,validateOnModelUpdate:!0});const J=()=>H,Q=e=>{H=Object.assign(Object.assign({},H),e)};async function W(e,t,r={}){const a=null==r?void 0:r.bails,u={name:(null==r?void 0:r.name)||"{field}",rules:t,label:null==r?void 0:r.label,bails:null==a||a,formData:(null==r?void 0:r.values)||{}},l=await async function(e,t){if(f(e.rules)||v(e.rules))return async function(e,t){const n=f(t)?t:Y(t),r=await n.parse(e),a=[];for(const e of r.errors)e.errors.length&&a.push(...e.errors);return{errors:a}}(t,e.rules);if(n(e.rules)||Array.isArray(e.rules)){const n={field:e.label||e.name,name:e.name,label:e.label,form:e.formData,value:t},r=Array.isArray(e.rules)?e.rules:[e.rules],a=r.length,u=[];for(let l=0;l<a;l++){const a=r[l],i=await a(t,n);if("string"!=typeof i&&i)continue;const o="string"==typeof i?i:ee(n);if(u.push(o),e.bails)return{errors:u}}return{errors:u}}const r=Object.assign(Object.assign({},e),{rules:K(e.rules)}),a=[],u=Object.keys(r.rules),l=u.length;for(let n=0;n<l;n++){const l=u[n],i=await Z(r,t,{name:l,params:r.rules[l]});if(i.error&&(a.push(i.error),e.bails))return{errors:a}}return{errors:a}}(u,e),i=l.errors;return{errors:i,valid:!i.length}}function Y(e){return{__type:"VVTypedSchema",async parse(t){var n;try{return{output:await e.validate(t,{abortEarly:!1}),errors:[]}}catch(e){if(!function(e){return!!e&&"ValidationError"===e.name}(e))throw e;if(!(null===(n=e.inner)||void 0===n?void 0:n.length)&&e.errors.length)return{errors:[{path:e.path,errors:e.errors}]};const t=e.inner.reduce(((e,t)=>{const n=t.path||"";return e[n]||(e[n]={errors:[],path:n}),e[n].errors.push(...t.errors),e}),{});return{errors:Object.values(t)}}}}}async function Z(e,t,n){const r=(a=n.name,l[a]);var a;if(!r)throw new Error(`No such validator '${n.name}' exists.`);const u=function(e,t){const n=e=>c(e)?e(t):e;if(Array.isArray(e))return e.map(n);return Object.keys(e).reduce(((t,r)=>(t[r]=n(e[r]),t)),{})}(n.params,e.formData),i={field:e.label||e.name,name:e.name,label:e.label,value:t,form:e.formData,rule:Object.assign(Object.assign({},n),{params:u})},o=await r(t,u,i);return"string"==typeof o?{error:o}:{error:o?void 0:ee(i)}}function ee(e){const t=J().generateMessage;return t?t(e):"Field is invalid"}async function te(e,t,n){const r=M(e).map((async r=>{var a,u,l;const i=null===(a=null==n?void 0:n.names)||void 0===a?void 0:a[r],o=await W(S(t,r),e[r],{name:(null==i?void 0:i.name)||r,label:null==i?void 0:i.label,values:t,bails:null===(l=null===(u=null==n?void 0:n.bailsMap)||void 0===u?void 0:u[r])||void 0===l||l});return Object.assign(Object.assign({},o),{path:r})}));let a=!0;const u=await Promise.all(r),l={},i={};for(const e of u)l[e.path]={valid:e.valid,errors:e.errors},e.valid||(a=!1,i[e.path]=e.errors[0]);return{valid:a,results:l,errors:i}}let ne=0;function re(e,n){const{value:r,initialValue:a,setInitialValue:u}=ae(e,n.modelValue,n.form),{errorMessage:l,errors:i,setErrors:o}=function(e,n){function r(e){return e?Array.isArray(e)?e:[e]:[]}if(!n){const e=t.ref([]);return{errors:e,errorMessage:t.computed((()=>e.value[0])),setErrors:t=>{e.value=r(t)}}}const a=t.computed((()=>n.errorBag.value[t.unref(e)]||[]));return{errors:a,errorMessage:t.computed((()=>a.value[0])),setErrors:a=>{n.setFieldErrorBag(t.unref(e),r(a))}}}(e,n.form),s=function(e,n,r){const a=t.reactive({touched:!1,pending:!1,valid:!0,validated:!!t.unref(r).length,initialValue:t.computed((()=>t.unref(n))),dirty:t.computed((()=>!F(t.unref(e),t.unref(n))))});return t.watch(r,(e=>{a.valid=!e.length}),{immediate:!0,flush:"sync"}),a}(r,a,i);return{id:ne>=Number.MAX_SAFE_INTEGER?0:++ne,path:e,value:r,initialValue:a,meta:s,errors:i,errorMessage:l,setState:function(e){var t;"value"in e&&(r.value=e.value),"errors"in e&&o(e.errors),"touched"in e&&(s.touched=null!==(t=e.touched)&&void 0!==t?t:s.touched),"initialValue"in e&&u(e.initialValue)}}}function ae(e,n,r){const a=t.ref(t.unref(n));function u(){return r?S(r.meta.value.initialValues,t.unref(e),t.unref(a)):t.unref(a)}function l(n){r?r.stageInitialValue(t.unref(e),n,!0):a.value=n}const i=t.computed(u);if(!r){return{value:t.ref(u()),initialValue:i,setInitialValue:l}}const o=function(e,n,r,a){if(t.isRef(e))return t.unref(e);if(void 0!==e)return e;return S(n.values,t.unref(a),t.unref(r))}(n,r,i,e);r.stageInitialValue(t.unref(e),o,!0);return{value:t.computed({get:()=>S(r.values,t.unref(e)),set(n){r.setFieldValue(t.unref(e),n)}}),initialValue:i,setInitialValue:l}}function ue(e,n,r){return p(null==r?void 0:r.type)?function(e,n,r){const a=(null==r?void 0:r.standalone)?void 0:T(i),u=null==r?void 0:r.checkedValue,l=null==r?void 0:r.uncheckedValue;function o(e){const n=e.handleChange,r=t.computed((()=>{const n=t.unref(e.value),r=t.unref(u);return Array.isArray(n)?n.findIndex((e=>F(e,r)))>=0:F(r,n)}));function i(i,o=!0){var s;if(r.value===(null===(s=null==i?void 0:i.target)||void 0===s?void 0:s.checked))return void(o&&e.validate());let d=L(i);a||(d=x(t.unref(e.value),t.unref(u),t.unref(l))),n(d,o)}return Object.assign(Object.assign({},e),{checked:r,checkedValue:u,uncheckedValue:l,handleChange:i})}return o(le(e,n,r))}(e,n,r):le(e,n,r)}function le(e,r,a){const{initialValue:u,validateOnMount:l,bails:d,type:p,checkedValue:m,label:h,validateOnValueUpdate:y,uncheckedValue:g,controlled:b,keepValueOnUnmount:V,modelPropName:O,syncVModel:A,form:w}=function(e){var n;const r=()=>({initialValue:void 0,validateOnMount:!1,bails:!0,label:void 0,validateOnValueUpdate:!0,keepValueOnUnmount:void 0,modelPropName:"modelValue",syncVModel:!0,controlled:!0}),a=null===(n=null==e?void 0:e.syncVModel)||void 0===n||n,u=a&&!("initialValue"in(e||{}))?ie(t.getCurrentInstance(),(null==e?void 0:e.modelPropName)||"modelValue"):null==e?void 0:e.initialValue;if(!e)return Object.assign(Object.assign({},r()),{initialValue:u});const l="valueProp"in e?e.valueProp:e.checkedValue,i="standalone"in e?!e.standalone:e.controlled;return Object.assign(Object.assign(Object.assign({},r()),e||{}),{initialValue:u,controlled:null==i||i,checkedValue:l})}(a),E=b?T(i):void 0,k=w||E,B=$(e);let I=!1;const{id:C,value:R,initialValue:x,meta:N,setState:U,errors:D,errorMessage:z}=re(B,{modelValue:u,form:k});A&&function({prop:e,value:n,handleChange:r}){const a=t.getCurrentInstance();if(!a)return;const u=e||"modelValue",l=`update:${u}`;if(!(u in a.props))return;t.watch(n,(e=>{F(e,ie(a,u))||a.emit(l,e)})),t.watch((()=>ie(a,u)),(e=>{if(e===s&&void 0===n.value)return;const t=e===s?void 0:e;F(t,P(n.value,a.props.modelModifiers))||r(t)}))}({value:R,prop:O,handleChange:J});const q=t.computed((()=>{let e=t.unref(r);const a=t.unref(null==k?void 0:k.schema);return!a||v(a)||f(a)||(e=function(e,t){if(!e)return;return e[t]}(a,t.unref(B))||e),v(e)||f(e)||n(e)||Array.isArray(e)?e:K(e)}));async function G(e){var n,r;return(null==k?void 0:k.validateSchema)?null!==(n=(await k.validateSchema(e)).results[t.unref(B)])&&void 0!==n?n:{valid:!0,errors:[]}:W(R.value,q.value,{name:t.unref(B),label:t.unref(h),values:null!==(r=null==k?void 0:k.values)&&void 0!==r?r:{},bails:d})}const X=_((async()=>(N.pending=!0,N.validated=!0,G("validated-only"))),(e=>(I&&(e.valid=!0,e.errors=[]),U({errors:e.errors}),N.pending=!1,e))),H=_((async()=>G("silent")),(e=>(I&&(e.valid=!0),N.valid=e.valid,e)));function J(e,t=!0){const n=L(e);R.value=n,!y&&t&&X()}let Q;t.onMounted((()=>{if(l)return X();k&&k.validateSchema||H()}));let Y=j(R.value);function Z(){Q=t.watch(R,((e,t)=>{if(F(e,t)&&F(e,Y))return;(y?X:H)(),Y=j(e)}),{deep:!0})}function ee(e){var n;null==Q||Q();const r=e&&"value"in e?e.value:x.value;U({value:j(r),initialValue:j(r),touched:null!==(n=null==e?void 0:e.touched)&&void 0!==n&&n,errors:(null==e?void 0:e.errors)||[]}),N.pending=!1,N.validated=!1,H(),t.nextTick((()=>{Z()}))}Z();const te={id:C,name:B,label:h,value:R,meta:N,errors:D,errorMessage:z,type:p,checkedValue:m,uncheckedValue:g,bails:d,keepValueOnUnmount:V,resetField:ee,handleReset:()=>ee(),validate:function(e){return"silent"===(null==e?void 0:e.mode)?H():X()},handleChange:J,handleBlur:()=>{N.touched=!0},setState:U,setTouched:function(e){N.touched=e},setErrors:function(e){U({errors:Array.isArray(e)?e:[e]})},setValue:function(e){R.value=e}};if(t.provide(o,te),t.isRef(r)&&"function"!=typeof t.unref(r)&&t.watch(r,((e,t)=>{F(e,t)||(N.validated?X():H())}),{deep:!0}),!k)return te;k.register(te),t.onBeforeUnmount((()=>{I=!0,k.unregister(te)}));const ne=t.computed((()=>{const e=q.value;return!e||n(e)||v(e)||f(e)||Array.isArray(e)?{}:Object.keys(e).reduce(((t,n)=>{const r=(a=e[n],Array.isArray(a)?a.filter(c):M(a).filter((e=>c(a[e]))).map((e=>a[e]))).map((e=>e.__locatorRef)).reduce(((e,t)=>{const n=S(k.values,t)||k.values[t];return void 0!==n&&(e[t]=n),e}),{});var a;return Object.assign(t,r),t}),{})}));return t.watch(ne,((e,t)=>{if(!Object.keys(e).length)return;!F(e,t)&&(N.validated?X():H())})),te}function ie(e,t){if(e)return e.props[t]}function oe(e,t){let n=e.as||"";return e.as||t.slots.default||(n="input"),n}function se(e,t){return p(t.attrs.type)?O(e,"modelValue")?e.modelValue:void 0:O(e,"modelValue")?e.modelValue:t.attrs.value}const de=t.defineComponent({name:"Field",inheritAttrs:!1,props:{as:{type:[String,Object],default:void 0},name:{type:String,required:!0},rules:{type:[Object,String,Function],default:void 0},validateOnMount:{type:Boolean,default:!1},validateOnBlur:{type:Boolean,default:void 0},validateOnChange:{type:Boolean,default:void 0},validateOnInput:{type:Boolean,default:void 0},validateOnModelUpdate:{type:Boolean,default:void 0},bails:{type:Boolean,default:()=>J().bails},label:{type:String,default:void 0},uncheckedValue:{type:null,default:void 0},modelValue:{type:null,default:s},modelModifiers:{type:null,default:()=>({})},"onUpdate:modelValue":{type:null,default:void 0},standalone:{type:Boolean,default:!1},keepValue:{type:Boolean,default:void 0}},setup(e,n){const r=t.toRef(e,"rules"),a=t.toRef(e,"name"),u=t.toRef(e,"label"),l=t.toRef(e,"uncheckedValue"),i=t.toRef(e,"keepValue"),{errors:o,value:s,errorMessage:d,validate:c,handleChange:f,handleBlur:v,setTouched:m,resetField:h,handleReset:y,meta:b,checked:V,setErrors:O}=ue(a,r,{validateOnMount:e.validateOnMount,bails:e.bails,standalone:e.standalone,type:n.attrs.type,initialValue:se(e,n),checkedValue:n.attrs.value,uncheckedValue:l,label:u,validateOnValueUpdate:!1,keepValueOnUnmount:i}),F=function(e,t=!0){f(e,t),n.emit("update:modelValue",s.value)},A=function(e){(e=>{p(n.attrs.type)||(s.value=L(e))})(e),n.emit("update:modelValue",s.value)},w=t.computed((()=>{const{validateOnInput:t,validateOnChange:r,validateOnBlur:a,validateOnModelUpdate:u}=function(e){var t,n,r,a;const{validateOnInput:u,validateOnChange:l,validateOnBlur:i,validateOnModelUpdate:o}=J();return{validateOnInput:null!==(t=e.validateOnInput)&&void 0!==t?t:u,validateOnChange:null!==(n=e.validateOnChange)&&void 0!==n?n:l,validateOnBlur:null!==(r=e.validateOnBlur)&&void 0!==r?r:i,validateOnModelUpdate:null!==(a=e.validateOnModelUpdate)&&void 0!==a?a:o}}(e),l=[v,n.attrs.onBlur,a?c:void 0].filter(Boolean),i=[e=>F(e,t),n.attrs.onInput].filter(Boolean),o=[e=>F(e,r),n.attrs.onChange].filter(Boolean),d={name:e.name,onBlur:l,onInput:i,onChange:o,"onUpdate:modelValue":e=>F(e,u)};p(n.attrs.type)&&V&&(d.checked=V.value);return g(oe(e,n),n.attrs)&&(d.value=s.value),d}));function j(){return{field:w.value,value:s.value,meta:b,errors:o.value,errorMessage:d.value,validate:c,resetField:h,handleChange:F,handleInput:A,handleReset:y,handleBlur:v,setTouched:m,setErrors:O}}return n.expose({setErrors:O,setTouched:m,reset:h,validate:c,handleChange:f}),()=>{const r=t.resolveDynamicComponent(oe(e,n)),a=D(r,n,j);return r?t.h(r,Object.assign(Object.assign({},n.attrs),w.value),a):a}}});let ce=0;function fe(e){const r=t.unref(null==e?void 0:e.initialValues)||{},a=t.unref(null==e?void 0:e.validationSchema);return a&&f(a)&&n(a.cast)?j(a.cast(r)||{}):j(r)}function ve(e){var n;const r=ce++,a=new Set;let u=!1;const l=t.ref({}),o=t.ref(!1),s=t.ref(0),d=[],c=t.reactive(fe(e)),{errorBag:p,setErrorBag:h,setFieldErrorBag:y}=function(e){const n=t.ref({});function r(e){return Array.isArray(e)?e:e?[e]:[]}function a(e,t){t?n.value[e]=r(t):delete n.value[e]}function u(e){n.value=M(e).reduce(((t,n)=>{const a=e[n];return a&&(t[n]=r(a)),t}),{})}e&&u(e);return{errorBag:n,setErrorBag:u,setFieldErrorBag:a}}(null==e?void 0:e.initialErrors),g=t.computed((()=>M(p.value).reduce(((e,t)=>{const n=p.value[t];return n&&n.length&&(e[t]=n[0]),e}),{})));function V(e){const t=l.value[e];return Array.isArray(t)?t[0]:t}function O(e){return!!l.value[e]}const A=t.computed((()=>M(l.value).reduce(((e,n)=>{const r=V(n);return r&&(e[n]={name:t.unref(r.name)||"",label:t.unref(r.label)||""}),e}),{}))),w=t.computed((()=>M(l.value).reduce(((e,t)=>{var n;const r=V(t);return r&&(e[t]=null===(n=r.bails)||void 0===n||n),e}),{}))),E=Object.assign({},(null==e?void 0:e.initialErrors)||{}),B=null!==(n=null==e?void 0:e.keepValuesOnUnmount)&&void 0!==n&&n,{initialValues:T,originalInitialValues:C,setInitialValues:R}=function(e,n,r){const a=fe(r),u=null==r?void 0:r.initialValues,l=t.ref(a),i=t.ref(j(a));function o(t,r=!1){l.value=j(t),i.value=j(t),r&&M(e.value).forEach((t=>{const r=e.value[t],a=Array.isArray(r)?r.some((e=>e.meta.touched)):null==r?void 0:r.meta.touched;if(!r||a)return;const u=S(l.value,t);k(n,t,j(u))}))}t.isRef(u)&&t.watch(u,(e=>{o(e,!0)}),{deep:!0});return{initialValues:l,originalInitialValues:i,setInitialValues:o}}(l,c,e),P=function(e,n,r,a){const u={touched:"some",pending:"some",valid:"every"},l=t.computed((()=>!F(n,t.unref(r))));function i(){const t=Object.values(e.value).flat(1).filter(Boolean);return M(u).reduce(((e,n)=>{const r=u[n];return e[n]=t[r]((e=>e.meta[n])),e}),{})}const o=t.reactive(i());return t.watchEffect((()=>{const e=i();o.touched=e.touched,o.valid=e.valid,o.pending=e.pending})),t.computed((()=>Object.assign(Object.assign({initialValues:t.unref(r)},o),{valid:o.valid&&!M(a.value).length,dirty:l.value})))}(l,c,C,g),U=t.computed((()=>[...a,...M(l.value)].reduce(((e,t)=>(k(e,t,S(c,t)),e)),{}))),$=null==e?void 0:e.validationSchema,D=N(me,5),z=N(me,5),q=_((async e=>"silent"===await e?D():z()),((e,[t])=>{const n=G.fieldsByPath.value||{},r=M(G.errorBag.value);return[...new Set([...M(e.results),...M(n),...r])].reduce(((r,a)=>{const u=n[a],l=(e.results[a]||{errors:[]}).errors,i={errors:l,valid:!l.length};if(r.results[a]=i,i.valid||(r.errors[a]=i.errors[0]),!u)return Q(a,l),r;if(H(u,(e=>e.meta.valid=i.valid)),"silent"===t)return r;const o=Array.isArray(u)?u.some((e=>e.meta.validated)):u.meta.validated;return"validated-only"!==t||o?(H(u,(e=>e.setState({errors:i.errors}))),r):r}),{valid:e.valid,results:{},errors:{}})}));function L(e){return function(t,n){return function(r){return r instanceof Event&&(r.preventDefault(),r.stopPropagation()),ue(M(l.value).reduce(((e,t)=>(e[t]=!0,e)),{})),o.value=!0,s.value++,de().then((a=>{const u=j(c);if(a.valid&&"function"==typeof t){const n=j(U.value);let l=e?n:u;return a.values&&(l=a.values),t(l,{evt:r,controlledValues:n,setErrors:W,setFieldError:Q,setTouched:ue,setFieldTouched:re,setValues:ee,setFieldValue:Z,resetForm:ie,resetField:le})}a.valid||"function"!=typeof n||n({values:u,evt:r,errors:a.errors,results:a.results})})).then((e=>(o.value=!1,e)),(e=>{throw o.value=!1,e}))}}}const K=L(!1);K.withControlled=L(!0);const G={formId:r,fieldsByPath:l,values:c,controlledValues:U,errorBag:p,errors:g,schema:$,submitCount:s,meta:P,isSubmitting:o,fieldArrays:d,keepValuesOnUnmount:B,validateSchema:t.unref($)?q:void 0,validate:de,register:function(e){const n=t.unref(e.name);oe(e,n),t.isRef(e.name)&&t.watch(e.name,(async(n,r)=>{await t.nextTick(),se(e,r),oe(e,n),(g.value[r]||g.value[n])&&(Q(r,void 0),ve(n)),await t.nextTick(),O(r)||I(c,r)}));const r=t.unref(e.errorMessage);r&&(null==E?void 0:E[n])!==r&&ve(n);delete E[n]},unregister:function(e){const n=t.unref(e.name),r=l.value[n],a=!!r&&X(r);se(e,n),t.nextTick((()=>{var u;const i=null!==(u=t.unref(e.keepValueOnUnmount))&&void 0!==u?u:t.unref(B),o=S(c,n);if(a&&(r===l.value[n]||!l.value[n])&&!i)if(Array.isArray(o)){const r=o.findIndex((n=>F(n,t.unref(e.checkedValue))));if(r>-1){const e=[...o];e.splice(r,1),Z(n,e,{force:!0})}}else o===t.unref(e.checkedValue)&&I(c,n);if(!O(n)){if(Q(n,void 0),i)return;if(a&&Array.isArray(o)&&!m(o))return;I(c,n)}}))},setFieldErrorBag:y,validateField:ve,setFieldValue:Z,setValues:ee,setErrors:W,setFieldError:Q,setFieldTouched:re,setTouched:ue,resetForm:ie,resetField:le,handleSubmit:K,stageInitialValue:function(t,n,r=!1){k(c,t,n),pe(t,n),r&&!(null==e?void 0:e.initialValues)&&k(C.value,t,j(n))},unsetInitialValue:function(e){I(T.value,e)},setFieldInitialValue:pe,useFieldModel:function(e){if(!Array.isArray(e))return ne(e);return e.map(ne)}};function X(e){return Array.isArray(e)}function H(e,t){return Array.isArray(e)?e.forEach(t):t(e)}function J(e){Object.values(l.value).forEach((t=>{t&&H(t,e)}))}function Q(e,t){y(e,t)}function W(e){h(e)}function Z(e,n,{force:r}={force:!1}){var a;const i=l.value[e],o=j(n);if(!i)return void k(c,e,o);if(X(i)&&"checkbox"===(null===(a=i[0])||void 0===a?void 0:a.type)&&!Array.isArray(n)){const t=j(x(S(c,e)||[],n,void 0));return void k(c,e,t)}let s=o;X(i)||"checkbox"!==i.type||r||u||(s=j(x(S(c,e),n,t.unref(i.uncheckedValue)))),k(c,e,s)}function ee(e){M(c).forEach((e=>{delete c[e]})),M(e).forEach((t=>{Z(t,e[t])})),d.forEach((e=>e&&e.reset()))}function ne(e){const{value:n}=ae(e,void 0,G);return t.watch(n,(()=>{O(t.unref(e))||de({mode:"validated-only"})}),{deep:!0}),a.add(t.unref(e)),n}function re(e,t){const n=l.value[e];n&&H(n,(e=>e.setTouched(t)))}function ue(e){M(e).forEach((t=>{re(t,!!e[t])}))}function le(e,t){const n=l.value[e];n&&H(n,(e=>e.resetField(t)))}function ie(e){u=!0,J((e=>e.resetField()));const n=(null==e?void 0:e.values)?e.values:C.value;R(n),ee(n),(null==e?void 0:e.touched)&&ue(e.touched),W((null==e?void 0:e.errors)||{}),s.value=(null==e?void 0:e.submitCount)||0,t.nextTick((()=>{u=!1}))}function oe(e,n){const r=t.markRaw(e),a=n;if(!l.value[a])return void(l.value[a]=r);const u=l.value[a];u&&!Array.isArray(u)&&(l.value[a]=[u]),l.value[a]=[...l.value[a],r]}function se(e,t){const n=t,r=l.value[n];if(r)if(X(r)||e.id!==r.id){if(X(r)){const t=r.findIndex((t=>t.id===e.id));if(-1===t)return;r.splice(t,1),r.length||delete l.value[n]}}else delete l.value[n]}async function de(e){const n=(null==e?void 0:e.mode)||"force";if("force"===n&&J((e=>e.meta.validated=!0)),G.validateSchema)return G.validateSchema(n);const r=await Promise.all(Object.values(l.value).map((n=>{const r=Array.isArray(n)?n[0]:n;return r?r.validate(e).then((e=>({key:t.unref(r.name),valid:e.valid,errors:e.errors}))):Promise.resolve({key:"",valid:!0,errors:[]})}))),a={},u={};for(const e of r)a[e.key]={valid:e.valid,errors:e.errors},e.errors.length&&(u[e.key]=e.errors[0]);return{valid:r.every((e=>e.valid)),results:a,errors:u}}async function ve(e){const n=l.value[e];return n?Array.isArray(n)?n.map((e=>e.validate()))[0]:n.validate():(t.warn(`field with name ${e} was not found`),Promise.resolve({errors:[],valid:!0}))}function pe(e,t){k(T.value,e,j(t))}async function me(){const e=t.unref($);if(!e)return{valid:!0,results:{},errors:{}};const n=v(e)||f(e)?await async function(e,t){const n=f(e)?e:Y(e),r=await n.parse(t),a={},u={};for(const e of r.errors){const t=e.errors,n=(e.path||"").replace(/\["(\d+)"\]/g,((e,t)=>`[${t}]`));a[n]={valid:!t.length,errors:t},t.length&&(u[n]=t[0])}return{valid:!r.errors.length,results:a,errors:u,values:r.value}}(e,c):await te(e,c,{names:A.value,bailsMap:w.value});return n}const he=K(((e,{evt:t})=>{b(t)&&t.target.submit()}));return t.onMounted((()=>{(null==e?void 0:e.initialErrors)&&W(e.initialErrors),(null==e?void 0:e.initialTouched)&&ue(e.initialTouched),(null==e?void 0:e.validateOnMount)?de():G.validateSchema&&G.validateSchema("silent")})),t.isRef($)&&t.watch($,(()=>{var e;null===(e=G.validateSchema)||void 0===e||e.call(G,"validated-only")})),t.provide(i,G),Object.assign(Object.assign({},G),{handleReset:()=>ie(),submitForm:he})}const pe=t.defineComponent({name:"Form",inheritAttrs:!1,props:{as:{type:String,default:"form"},validationSchema:{type:Object,default:void 0},initialValues:{type:Object,default:void 0},initialErrors:{type:Object,default:void 0},initialTouched:{type:Object,default:void 0},validateOnMount:{type:Boolean,default:!1},onSubmit:{type:Function,default:void 0},onInvalidSubmit:{type:Function,default:void 0},keepValues:{type:Boolean,default:!1}},setup(e,n){const r=t.toRef(e,"initialValues"),a=t.toRef(e,"validationSchema"),u=t.toRef(e,"keepValues"),{errors:l,errorBag:i,values:o,meta:s,isSubmitting:d,submitCount:c,controlledValues:f,validate:v,validateField:p,handleReset:m,resetForm:h,handleSubmit:y,setErrors:g,setFieldError:O,setFieldValue:F,setValues:A,setFieldTouched:w,setTouched:E,resetField:S}=ve({validationSchema:a.value?a:void 0,initialValues:r,initialErrors:e.initialErrors,initialTouched:e.initialTouched,validateOnMount:e.validateOnMount,keepValuesOnUnmount:u}),k=y(((e,{evt:t})=>{b(t)&&t.target.submit()}),e.onInvalidSubmit),B=e.onSubmit?y(e.onSubmit,e.onInvalidSubmit):k;function I(e){V(e)&&e.preventDefault(),m(),"function"==typeof n.attrs.onReset&&n.attrs.onReset()}function M(t,n){return y("function"!=typeof t||n?n:t,e.onInvalidSubmit)(t)}function T(){return j(o)}function C(){return j(s.value)}function R(){return j(l.value)}function x(){return{meta:s.value,errors:l.value,errorBag:i.value,values:o,isSubmitting:d.value,submitCount:c.value,controlledValues:f.value,validate:v,validateField:p,handleSubmit:M,handleReset:m,submitForm:k,setErrors:g,setFieldError:O,setFieldValue:F,setValues:A,setFieldTouched:w,setTouched:E,resetForm:h,resetField:S,getValues:T,getMeta:C,getErrors:R}}return n.expose({setFieldError:O,setErrors:g,setFieldValue:F,setValues:A,setFieldTouched:w,setTouched:E,resetForm:h,validate:v,validateField:p,resetField:S,getValues:T,getMeta:C,getErrors:R}),function(){const r="form"===e.as?e.as:t.resolveDynamicComponent(e.as),a=D(r,n,x);if(!e.as)return a;const u="form"===e.as?{novalidate:!0}:{};return t.h(r,Object.assign(Object.assign(Object.assign({},u),n.attrs),{onSubmit:B,onReset:I}),a)}}}),me=pe;function he(e){const n=T(i,void 0),a=t.ref([]),u=()=>{},l={fields:a,remove:u,push:u,swap:u,insert:u,update:u,replace:u,prepend:u,move:u};if(!n)return C("FieldArray requires being a child of `<Form/>` or `useForm` being called before it. Array fields may not work correctly"),l;if(!t.unref(e))return C("FieldArray requires a field path to be provided, did you forget to pass the `name` prop?"),l;const o=n.fieldArrays.find((n=>t.unref(n.path)===t.unref(e)));if(o)return o;let s=0;function d(){return S(null==n?void 0:n.values,t.unref(e),[])||[]}function c(){const e=d();a.value=e.map(v),f()}function f(){const e=a.value.length;for(let t=0;t<e;t++){const n=a.value[t];n.isFirst=0===t,n.isLast=t===e-1}}function v(r){const u=s++,l={key:u,value:U({get(){const l=S(null==n?void 0:n.values,t.unref(e),[])||[],i=a.value.findIndex((e=>e.key===u));return-1===i?r:l[i]},set(e){const t=a.value.findIndex((e=>e.key===u));-1!==t?m(t,e):C("Attempting to update a non-existent array item")}}),isFirst:!1,isLast:!1};return l}function p(){f(),null==n||n.validate({mode:"silent"})}function m(r,a){const u=t.unref(e),l=S(null==n?void 0:n.values,u);!Array.isArray(l)||l.length-1<r||(null==n||n.setFieldValue(`${u}[${r}]`,a),null==n||n.validate({mode:"validated-only"}))}c();const h={fields:a,remove:function(r){const u=t.unref(e),l=S(null==n?void 0:n.values,u);if(!l||!Array.isArray(l))return;const i=[...l];i.splice(r,1),null==n||n.unsetInitialValue(u+`[${r}]`),null==n||n.setFieldValue(u,i),a.value.splice(r,1),p()},push:function(u){const l=t.unref(e),i=S(null==n?void 0:n.values,l),o=r(i)?[]:i;if(!Array.isArray(o))return;const s=[...o];s.push(u),null==n||n.stageInitialValue(l+`[${s.length-1}]`,u),null==n||n.setFieldValue(l,s),a.value.push(v(u)),p()},swap:function(r,u){const l=t.unref(e),i=S(null==n?void 0:n.values,l);if(!Array.isArray(i)||!(r in i)||!(u in i))return;const o=[...i],s=[...a.value],d=o[r];o[r]=o[u],o[u]=d;const c=s[r];s[r]=s[u],s[u]=c,null==n||n.setFieldValue(l,o),a.value=s,f()},insert:function(r,u){const l=t.unref(e),i=S(null==n?void 0:n.values,l);if(!Array.isArray(i)||i.length<r)return;const o=[...i],s=[...a.value];o.splice(r,0,u),s.splice(r,0,v(u)),null==n||n.setFieldValue(l,o),a.value=s,p()},update:m,replace:function(r){const a=t.unref(e);null==n||n.setFieldValue(a,r),c(),p()},prepend:function(u){const l=t.unref(e),i=S(null==n?void 0:n.values,l),o=r(i)?[]:i;if(!Array.isArray(o))return;const s=[u,...o];null==n||n.stageInitialValue(l+`[${s.length-1}]`,u),null==n||n.setFieldValue(l,s),a.value.unshift(v(u)),p()},move:function(u,l){const i=t.unref(e),o=S(null==n?void 0:n.values,i),s=r(o)?[]:[...o];if(!Array.isArray(o)||!(u in o)||!(l in o))return;const d=[...a.value],c=d[u];d.splice(u,1),d.splice(l,0,c);const f=s[u];s.splice(u,1),s.splice(l,0,f),null==n||n.setFieldValue(i,s),a.value=d,p()}};return n.fieldArrays.push(Object.assign({path:e,reset:c},h)),t.onBeforeUnmount((()=>{const r=n.fieldArrays.findIndex((n=>t.unref(n.path)===t.unref(e)));r>=0&&n.fieldArrays.splice(r,1)})),t.watch(d,(e=>{F(e,a.value.map((e=>e.value)))||c()})),h}const ye=t.defineComponent({name:"FieldArray",inheritAttrs:!1,props:{name:{type:String,required:!0}},setup(e,n){const{push:r,remove:a,swap:u,insert:l,replace:i,update:o,prepend:s,move:d,fields:c}=he(t.toRef(e,"name"));function f(){return{fields:c.value,push:r,remove:a,swap:u,insert:l,update:o,replace:i,prepend:s,move:d}}return n.expose({push:r,remove:a,swap:u,insert:l,update:o,replace:i,prepend:s,move:d}),()=>D(void 0,n,f)}}),ge=t.defineComponent({name:"ErrorMessage",props:{as:{type:String,default:void 0},name:{type:String,required:!0}},setup(e,n){const r=t.inject(i,void 0),a=t.computed((()=>null==r?void 0:r.errors.value[e.name]));function u(){return{message:a.value}}return()=>{if(!a.value)return;const r=e.as?t.resolveDynamicComponent(e.as):e.as,l=D(r,n,u),i=Object.assign({role:"alert"},n.attrs);return r||!Array.isArray(l)&&l||!(null==l?void 0:l.length)?!Array.isArray(l)&&l||(null==l?void 0:l.length)?t.h(r,i,l):t.h(r||"span",i,a.value):l}}});e.ErrorMessage=ge,e.Field=de,e.FieldArray=ye,e.FieldContextKey=o,e.Form=me,e.FormContextKey=i,e.IS_ABSENT=s,e.configure=Q,e.defineRule=function(e,t){!function(e,t){if(n(t))return;throw new Error(`Extension Error: The validator '${e}' must be a function.`)}(e,t),l[e]=t},e.useField=ue,e.useFieldArray=he,e.useFieldError=function(e){const n=T(i),r=e?void 0:t.inject(o);return t.computed((()=>e?null==n?void 0:n.errors.value[t.unref(e)]:null==r?void 0:r.errorMessage.value))},e.useFieldValue=function(e){const n=T(i),r=e?void 0:t.inject(o);return t.computed((()=>e?S(null==n?void 0:n.values,t.unref(e)):t.unref(null==r?void 0:r.value)))},e.useForm=ve,e.useFormErrors=function(){const e=T(i);return e||C("No vee-validate <Form /> or `useForm` was detected in the component tree"),t.computed((()=>(null==e?void 0:e.errors.value)||{}))},e.useFormValues=function(){const e=T(i);return e||C("No vee-validate <Form /> or `useForm` was detected in the component tree"),t.computed((()=>(null==e?void 0:e.values)||{}))},e.useIsFieldDirty=function(e){const n=T(i);let r=e?void 0:t.inject(o);return t.computed((()=>(e&&(r=R(null==n?void 0:n.fieldsByPath.value[t.unref(e)])),r?r.meta.dirty:(C(`field with name ${t.unref(e)} was not found`),!1))))},e.useIsFieldTouched=function(e){const n=T(i);let r=e?void 0:t.inject(o);return t.computed((()=>(e&&(r=R(null==n?void 0:n.fieldsByPath.value[t.unref(e)])),r?r.meta.touched:(C(`field with name ${t.unref(e)} was not found`),!1))))},e.useIsFieldValid=function(e){const n=T(i);let r=e?void 0:t.inject(o);return t.computed((()=>(e&&(r=R(null==n?void 0:n.fieldsByPath.value[t.unref(e)])),r?r.meta.valid:(C(`field with name ${t.unref(e)} was not found`),!1))))},e.useIsFormDirty=function(){const e=T(i);return e||C("No vee-validate <Form /> or `useForm` was detected in the component tree"),t.computed((()=>{var t;return null!==(t=null==e?void 0:e.meta.value.dirty)&&void 0!==t&&t}))},e.useIsFormTouched=function(){const e=T(i);return e||C("No vee-validate <Form /> or `useForm` was detected in the component tree"),t.computed((()=>{var t;return null!==(t=null==e?void 0:e.meta.value.touched)&&void 0!==t&&t}))},e.useIsFormValid=function(){const e=T(i);return e||C("No vee-validate <Form /> or `useForm` was detected in the component tree"),t.computed((()=>{var t;return null!==(t=null==e?void 0:e.meta.value.valid)&&void 0!==t&&t}))},e.useIsSubmitting=function(){const e=T(i);return e||C("No vee-validate <Form /> or `useForm` was detected in the component tree"),t.computed((()=>{var t;return null!==(t=null==e?void 0:e.isSubmitting.value)&&void 0!==t&&t}))},e.useResetForm=function(){const e=T(i);return e||C("No vee-validate <Form /> or `useForm` was detected in the component tree"),function(t){if(e)return e.resetForm(t)}},e.useSubmitCount=function(){const e=T(i);return e||C("No vee-validate <Form /> or `useForm` was detected in the component tree"),t.computed((()=>{var t;return null!==(t=null==e?void 0:e.submitCount.value)&&void 0!==t?t:0}))},e.useSubmitForm=function(e){const t=T(i);t||C("No vee-validate <Form /> or `useForm` was detected in the component tree");const n=t?t.handleSubmit(e):void 0;return function(e){if(n)return n(e)}},e.useValidateField=function(e){const n=T(i);let r=e?void 0:t.inject(o);return function(){return e&&(r=R(null==n?void 0:n.fieldsByPath.value[t.unref(e)])),r?r.validate():(C(`field with name ${t.unref(e)} was not found`),Promise.resolve({errors:[],valid:!0}))}},e.useValidateForm=function(){const e=T(i);return e||C("No vee-validate <Form /> or `useForm` was detected in the component tree"),function(){return e?e.validate():Promise.resolve({results:{},errors:{},valid:!0})}},e.validate=W,e.validateObject=te})); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).VeeValidate={},e.Vue)}(this,(function(e,t){"use strict";function n(e){return"function"==typeof e}function r(e){return null==e}const a=e=>null!==e&&!!e&&"object"==typeof e&&!Array.isArray(e);function l(e){return Number(e)>=0}function i(e,t){return Object.keys(t).forEach((n=>{if(a(t[n]))return e[n]||(e[n]={}),void i(e[n],t[n]);e[n]=t[n]})),e}const u={};const o=Symbol("vee-validate-form"),s=Symbol("vee-validate-field-instance"),d=Symbol("Default empty value"),c="undefined"!=typeof window;function v(e){return n(e)&&!!e.__locatorRef}function f(e){return!!e&&n(e.parse)&&"VVTypedSchema"===e.__type}function p(e){return!!e&&n(e.validate)}function m(e){return"checkbox"===e||"radio"===e}function h(e){return/^\[.+\]$/i.test(e)}function y(e){return"SELECT"===e.tagName}function g(e,t){return!function(e,t){const n=![!1,null,void 0,0].includes(t.multiple)&&!Number.isNaN(t.multiple);return"select"===e&&"multiple"in t&&n}(e,t)&&"file"!==t.type&&!m(t.type)}function b(e){return O(e)&&e.target&&"submit"in e.target}function O(e){return!!e&&(!!("undefined"!=typeof Event&&n(Event)&&e instanceof Event)||!(!e||!e.srcElement))}function V(e,t){return t in e&&e[t]!==d}function F(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor!==t.constructor)return!1;var n,r,a;if(Array.isArray(e)){if((n=e.length)!=t.length)return!1;for(r=n;0!=r--;)if(!F(e[r],t[r]))return!1;return!0}if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(r of e.entries())if(!t.has(r[0]))return!1;for(r of e.entries())if(!F(r[1],t.get(r[0])))return!1;return!0}if(A(e)&&A(t))return e.size===t.size&&(e.name===t.name&&(e.lastModified===t.lastModified&&e.type===t.type));if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(r of e.entries())if(!t.has(r[0]))return!1;return!0}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if((n=e.length)!=t.length)return!1;for(r=n;0!=r--;)if(e[r]!==t[r])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if((n=(a=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(r=n;0!=r--;)if(!Object.prototype.hasOwnProperty.call(t,a[r]))return!1;for(r=n;0!=r--;){var l=a[r];if(!F(e[l],t[l]))return!1}return!0}return e!=e&&t!=t}function A(e){return!!c&&e instanceof File}function j(e,t,n){"object"==typeof n.value&&(n.value=w(n.value)),n.enumerable&&!n.get&&!n.set&&n.configurable&&n.writable&&"__proto__"!==t?e[t]=n.value:Object.defineProperty(e,t,n)}function w(e){if("object"!=typeof e)return e;var t,n,r,a=0,l=Object.prototype.toString.call(e);if("[object Object]"===l?r=Object.create(e.__proto__||null):"[object Array]"===l?r=Array(e.length):"[object Set]"===l?(r=new Set,e.forEach((function(e){r.add(w(e))}))):"[object Map]"===l?(r=new Map,e.forEach((function(e,t){r.set(w(t),w(e))}))):"[object Date]"===l?r=new Date(+e):"[object RegExp]"===l?r=new RegExp(e.source,e.flags):"[object DataView]"===l?r=new e.constructor(w(e.buffer)):"[object ArrayBuffer]"===l?r=e.slice(0):"Array]"===l.slice(-6)&&(r=new e.constructor(e)),r){for(n=Object.getOwnPropertySymbols(e);a<n.length;a++)j(r,n[a],Object.getOwnPropertyDescriptor(e,n[a]));for(a=0,n=Object.getOwnPropertyNames(e);a<n.length;a++)Object.hasOwnProperty.call(r,t=n[a])&&r[t]===e[t]||j(r,t,Object.getOwnPropertyDescriptor(e,t))}return r||e}function S(e){return h(e)?e.replace(/\[|\]/gi,""):e}function E(e,t,n){if(!e)return n;if(h(t))return e[S(t)];return(t||"").split(/\.|\[(\d+)\]/).filter(Boolean).reduce(((e,t)=>{return(a(r=e)||Array.isArray(r))&&t in e?e[t]:n;var r}),e)}function k(e,t,n){if(h(t))return void(e[S(t)]=n);const a=t.split(/\.|\[(\d+)\]/).filter(Boolean);let i=e;for(let e=0;e<a.length;e++){if(e===a.length-1)return void(i[a[e]]=n);a[e]in i&&!r(i[a[e]])||(i[a[e]]=l(a[e+1])?[]:{}),i=i[a[e]]}}function I(e,t){Array.isArray(e)&&l(t)?e.splice(Number(t),1):a(e)&&delete e[t]}function C(e,t){if(h(t))return void delete e[S(t)];const n=t.split(/\.|\[(\d+)\]/).filter(Boolean);let l=e;for(let e=0;e<n.length;e++){if(e===n.length-1){I(l,n[e]);break}if(!(n[e]in l)||r(l[n[e]]))break;l=l[n[e]]}const i=n.map(((t,r)=>E(e,n.slice(0,r).join("."))));for(let t=i.length-1;t>=0;t--)u=i[t],(Array.isArray(u)?0===u.length:a(u)&&0===Object.keys(u).length)&&(0!==t?I(i[t-1],n[t-1]):I(e,n[0]));var u}function B(e){return Object.keys(e)}function M(e,n=void 0){const r=t.getCurrentInstance();return(null==r?void 0:r.provides[e])||t.inject(e,n)}function T(e){t.warn(`[vee-validate]: ${e}`)}function P(e,t,n){if(Array.isArray(e)){const n=[...e],r=n.findIndex((e=>F(e,t)));return r>=0?n.splice(r,1):n.push(t),n}return F(e,t)?n:t}function R(e,t=0){let n=null,r=[];return function(...a){return n&&window.clearTimeout(n),n=window.setTimeout((()=>{const t=e(...a);r.forEach((e=>e(t))),r=[]}),t),new Promise((e=>r.push(e)))}}function x(e,t){return a(t)&&t.number?function(e){const t=parseFloat(e);return isNaN(t)?e:t}(e):e}function N(e,t){let n;return async function(...r){const a=e(...r);n=a;const l=await a;return a!==n||(n=void 0,t(l,r)),l}}function U({get:e,set:n}){const r=t.ref(w(e()));return t.watch(e,(e=>{F(e,r.value)||(r.value=w(e))}),{deep:!0}),t.watch(r,(t=>{F(t,e())||n(w(t))}),{deep:!0}),r}function _(e){return n(e)?e():t.unref(e)}function $(e){return Array.isArray(e)?e:e?[e]:[]}function D(e){const n=M(o),r=e?t.computed((()=>null==n?void 0:n.getPathState(t.unref(e)))):void 0,a=e?void 0:t.inject(s);return a||(null==r?void 0:r.value)||T(`field with name ${t.unref(e)} was not found`),r||a}function z(e,t){const n={};for(const r in e)t.includes(r)||(n[r]=e[r]);return n}const q=(e,t,n)=>t.slots.default?"string"!=typeof e&&e?{default:()=>{var e,r;return null===(r=(e=t.slots).default)||void 0===r?void 0:r.call(e,n())}}:t.slots.default(n()):t.slots.default;function L(e){if(K(e))return e._value}function K(e){return"_value"in e}function G(e){if(!O(e))return e;const t=e.target;if(m(t.type)&&K(t))return L(t);if("file"===t.type&&t.files){const e=Array.from(t.files);return t.multiple?e:e[0]}if(y(n=t)&&n.multiple)return Array.from(t.options).filter((e=>e.selected&&!e.disabled)).map(L);var n;if(y(t)){const e=Array.from(t.options).find((e=>e.selected));return e?L(e):t.value}return t.value}function X(e){const t={};return Object.defineProperty(t,"_$$isNormalized",{value:!0,writable:!1,enumerable:!1,configurable:!1}),e?a(e)&&e._$$isNormalized?e:a(e)?Object.keys(e).reduce(((t,n)=>{const r=function(e){if(!0===e)return[];if(Array.isArray(e))return e;if(a(e))return e;return[e]}(e[n]);return!1!==e[n]&&(t[n]=H(r)),t}),t):"string"!=typeof e?t:e.split("|").reduce(((e,t)=>{const n=J(t);return n.name?(e[n.name]=H(n.params),e):e}),t):t}function H(e){const t=e=>"string"==typeof e&&"@"===e[0]?function(e){const t=t=>E(t,e)||t[e];return t.__locatorRef=e,t}(e.slice(1)):e;return Array.isArray(e)?e.map(t):e instanceof RegExp?[e]:Object.keys(e).reduce(((n,r)=>(n[r]=t(e[r]),n)),{})}const J=e=>{let t=[];const n=e.split(":")[0];return e.includes(":")&&(t=e.split(":").slice(1).join(":").split(",")),{name:n,params:t}};let Q=Object.assign({},{generateMessage:({field:e})=>`${e} is not valid.`,bails:!0,validateOnBlur:!0,validateOnChange:!0,validateOnInput:!1,validateOnModelUpdate:!0});const W=()=>Q,Y=e=>{Q=Object.assign(Object.assign({},Q),e)};async function Z(e,t,r={}){const a=null==r?void 0:r.bails,l={name:(null==r?void 0:r.name)||"{field}",rules:t,label:null==r?void 0:r.label,bails:null==a||a,formData:(null==r?void 0:r.values)||{}},i=await async function(e,t){if(f(e.rules)||p(e.rules))return async function(e,t){const n=f(t)?t:ee(t),r=await n.parse(e),a=[];for(const e of r.errors)e.errors.length&&a.push(...e.errors);return{errors:a}}(t,e.rules);if(n(e.rules)||Array.isArray(e.rules)){const n={field:e.label||e.name,name:e.name,label:e.label,form:e.formData,value:t},r=Array.isArray(e.rules)?e.rules:[e.rules],a=r.length,l=[];for(let i=0;i<a;i++){const a=r[i],u=await a(t,n);if("string"!=typeof u&&u)continue;const o="string"==typeof u?u:ne(n);if(l.push(o),e.bails)return{errors:l}}return{errors:l}}const r=Object.assign(Object.assign({},e),{rules:X(e.rules)}),a=[],l=Object.keys(r.rules),i=l.length;for(let n=0;n<i;n++){const i=l[n],u=await te(r,t,{name:i,params:r.rules[i]});if(u.error&&(a.push(u.error),e.bails))return{errors:a}}return{errors:a}}(l,e),u=i.errors;return{errors:u,valid:!u.length}}function ee(e){return{__type:"VVTypedSchema",async parse(t){var n;try{return{output:await e.validate(t,{abortEarly:!1}),errors:[]}}catch(e){if(!function(e){return!!e&&"ValidationError"===e.name}(e))throw e;if(!(null===(n=e.inner)||void 0===n?void 0:n.length)&&e.errors.length)return{errors:[{path:e.path,errors:e.errors}]};const t=e.inner.reduce(((e,t)=>{const n=t.path||"";return e[n]||(e[n]={errors:[],path:n}),e[n].errors.push(...t.errors),e}),{});return{errors:Object.values(t)}}}}}async function te(e,t,n){const r=(a=n.name,u[a]);var a;if(!r)throw new Error(`No such validator '${n.name}' exists.`);const l=function(e,t){const n=e=>v(e)?e(t):e;if(Array.isArray(e))return e.map(n);return Object.keys(e).reduce(((t,r)=>(t[r]=n(e[r]),t)),{})}(n.params,e.formData),i={field:e.label||e.name,name:e.name,label:e.label,value:t,form:e.formData,rule:Object.assign(Object.assign({},n),{params:l})},o=await r(t,l,i);return"string"==typeof o?{error:o}:{error:o?void 0:ne(i)}}function ne(e){const t=W().generateMessage;return t?t(e):"Field is invalid"}async function re(e,t,n){const r=B(e).map((async r=>{var a,l,i;const u=null===(a=null==n?void 0:n.names)||void 0===a?void 0:a[r],o=await Z(E(t,r),e[r],{name:(null==u?void 0:u.name)||r,label:null==u?void 0:u.label,values:t,bails:null===(i=null===(l=null==n?void 0:n.bailsMap)||void 0===l?void 0:l[r])||void 0===i||i});return Object.assign(Object.assign({},o),{path:r})}));let a=!0;const l=await Promise.all(r),i={},u={};for(const e of l)i[e.path]={valid:e.valid,errors:e.errors},e.valid||(a=!1,u[e.path]=e.errors[0]);return{valid:a,results:i,errors:u}}let ae=0;function le(e,n){const{value:r,initialValue:a,setInitialValue:l}=function(e,n,r){const a=t.ref(t.unref(n));function l(){return r?E(r.initialValues.value,t.unref(e),t.unref(a)):t.unref(a)}function i(n){r?r.stageInitialValue(t.unref(e),n,!0):a.value=n}const u=t.computed(l);if(!r){return{value:t.ref(l()),initialValue:u,setInitialValue:i}}const o=function(e,n,r,a){if(t.isRef(e))return t.unref(e);if(void 0!==e)return e;return E(n.values,t.unref(a),t.unref(r))}(n,r,u,e);r.stageInitialValue(t.unref(e),o,!0);const s=t.computed({get:()=>E(r.values,t.unref(e)),set(n){r.setFieldValue(t.unref(e),n)}});return{value:s,initialValue:u,setInitialValue:i}}(e,n.modelValue,n.form);if(!n.form){const{errors:o,setErrors:s}=function(){const e=t.ref([]);return{errors:e,setErrors:t=>{e.value=$(t)}}}(),d=ae>=Number.MAX_SAFE_INTEGER?0:++ae,c=function(e,n,r){const a=t.reactive({touched:!1,pending:!1,valid:!0,validated:!!t.unref(r).length,initialValue:t.computed((()=>t.unref(n))),dirty:t.computed((()=>!F(t.unref(e),t.unref(n))))});return t.watch(r,(e=>{a.valid=!e.length}),{immediate:!0,flush:"sync"}),a}(r,a,o);function v(e){var t;"value"in e&&(r.value=e.value),"errors"in e&&s(e.errors),"touched"in e&&(c.touched=null!==(t=e.touched)&&void 0!==t?t:c.touched),"initialValue"in e&&l(e.initialValue)}return{id:d,path:e,value:r,initialValue:a,meta:c,errors:o,setState:v}}const i=n.form.createPathState(e,{bails:n.bails,label:n.label,type:n.type,validate:n.validate}),u=t.computed((()=>i.errors));return{id:Array.isArray(i.id)?i.id[i.id.length-1]:i.id,path:e,value:r,errors:u,meta:i,initialValue:a,setState:function(a){var i,u,o;"value"in a&&(r.value=a.value),"errors"in a&&(null===(i=n.form)||void 0===i||i.setFieldError(t.unref(e),a.errors)),"touched"in a&&(null===(u=n.form)||void 0===u||u.setFieldTouched(t.unref(e),null!==(o=a.touched)&&void 0!==o&&o)),"initialValue"in a&&l(a.initialValue)}}}function ie(e,n,r){return m(null==r?void 0:r.type)?function(e,n,r){const a=(null==r?void 0:r.standalone)?void 0:M(o),l=null==r?void 0:r.checkedValue,i=null==r?void 0:r.uncheckedValue;function u(n){const r=n.handleChange,u=t.computed((()=>{const e=t.unref(n.value),r=t.unref(l);return Array.isArray(e)?e.findIndex((e=>F(e,r)))>=0:F(r,e)}));function o(o,s=!0){var d;if(u.value===(null===(d=null==o?void 0:o.target)||void 0===d?void 0:d.checked))return void(s&&n.validate());const c=_(e),v=null==a?void 0:a.getPathState(c),f=G(o);let p;p=a&&(null==v?void 0:v.multiple)&&"checkbox"===v.type?P(E(a.values,c)||[],f,void 0):P(t.unref(n.value),t.unref(l),t.unref(i)),r(p,s)}return Object.assign(Object.assign({},n),{checked:u,checkedValue:l,uncheckedValue:i,handleChange:o})}return u(ue(e,n,r))}(e,n,r):ue(e,n,r)}function ue(e,r,a){const{initialValue:l,validateOnMount:i,bails:u,type:c,checkedValue:m,label:h,validateOnValueUpdate:y,uncheckedValue:g,controlled:b,keepValueOnUnmount:O,modelPropName:V,syncVModel:A,form:j}=function(e){var n;const r=()=>({initialValue:void 0,validateOnMount:!1,bails:!0,label:void 0,validateOnValueUpdate:!0,keepValueOnUnmount:void 0,modelPropName:"modelValue",syncVModel:!0,controlled:!0}),a=null===(n=null==e?void 0:e.syncVModel)||void 0===n||n,l=a&&!("initialValue"in(e||{}))?oe(t.getCurrentInstance(),(null==e?void 0:e.modelPropName)||"modelValue"):null==e?void 0:e.initialValue;if(!e)return Object.assign(Object.assign({},r()),{initialValue:l});const i="valueProp"in e?e.valueProp:e.checkedValue,u="standalone"in e?!e.standalone:e.controlled;return Object.assign(Object.assign(Object.assign({},r()),e||{}),{initialValue:l,controlled:null==u||u,checkedValue:i})}(a),S=b?M(o):void 0,k=j||S,I=function(e){return t.computed((()=>_(e)))}(e);let C=!1;const T=t.computed((()=>{if(t.unref(null==k?void 0:k.schema))return;const e=t.unref(r);return p(e)||f(e)||n(e)||Array.isArray(e)?e:X(e)})),{id:P,value:R,initialValue:U,meta:$,setState:D,errors:z}=le(I,{modelValue:l,form:k,bails:u,label:h,type:c,validate:T.value?J:void 0}),q=t.computed((()=>z.value[0]));A&&function({prop:e,value:n,handleChange:r}){const a=t.getCurrentInstance();if(!a)return;const l=e||"modelValue",i=`update:${l}`;if(!(l in a.props))return;t.watch(n,(e=>{F(e,oe(a,l))||a.emit(i,e)})),t.watch((()=>oe(a,l)),(e=>{if(e===d&&void 0===n.value)return;const t=e===d?void 0:e;F(t,x(n.value,a.props.modelModifiers))||r(t)}))}({value:R,prop:V,handleChange:Q});async function L(e){var n,r;return(null==k?void 0:k.validateSchema)?null!==(n=(await k.validateSchema(e)).results[t.unref(I)])&&void 0!==n?n:{valid:!0,errors:[]}:T.value?Z(R.value,T.value,{name:t.unref(I),label:t.unref(h),values:null!==(r=null==k?void 0:k.values)&&void 0!==r?r:{},bails:u}):{valid:!0,errors:[]}}const K=N((async()=>($.pending=!0,$.validated=!0,L("validated-only"))),(e=>{if(!C)return D({errors:e.errors}),$.pending=!1,$.valid=e.valid,e})),H=N((async()=>L("silent")),(e=>($.valid=e.valid,e)));function J(e){return"silent"===(null==e?void 0:e.mode)?H():K()}function Q(e,t=!0){Y(G(e),!1),!y&&t&&K()}function W(e){var t;const n=e&&"value"in e?e.value:U.value;D({value:w(n),initialValue:w(n),touched:null!==(t=null==e?void 0:e.touched)&&void 0!==t&&t,errors:(null==e?void 0:e.errors)||[]}),$.pending=!1,$.validated=!1,H()}function Y(e,t=!0){if(R.value=e,!t)return;(y?K:H)()}t.onMounted((()=>{if(i)return K();k&&k.validateSchema||H()}));const ee=t.computed({get:()=>R.value,set(e){Y(e,y)}}),te={id:P,name:I,label:h,value:ee,meta:$,errors:z,errorMessage:q,type:c,checkedValue:m,uncheckedValue:g,bails:u,keepValueOnUnmount:O,resetField:W,handleReset:()=>W(),validate:J,handleChange:Q,handleBlur:()=>{$.touched=!0},setState:D,setTouched:function(e){$.touched=e},setErrors:function(e){D({errors:Array.isArray(e)?e:[e]})},setValue:Y};if(t.provide(s,te),t.isRef(r)&&"function"!=typeof t.unref(r)&&t.watch(r,((e,t)=>{F(e,t)||($.validated?K():H())}),{deep:!0}),!k)return te;const ne=t.computed((()=>{const e=T.value;return!e||n(e)||p(e)||f(e)||Array.isArray(e)?{}:Object.keys(e).reduce(((t,n)=>{const r=(a=e[n],Array.isArray(a)?a.filter(v):B(a).filter((e=>v(a[e]))).map((e=>a[e]))).map((e=>e.__locatorRef)).reduce(((e,t)=>{const n=E(k.values,t)||k.values[t];return void 0!==n&&(e[t]=n),e}),{});var a;return Object.assign(t,r),t}),{})}));return t.watch(ne,((e,t)=>{if(!Object.keys(e).length)return;!F(e,t)&&($.validated?K():H())})),t.onBeforeUnmount((()=>{var e;C=!0;if((null!==(e=t.unref(te.keepValueOnUnmount))&&void 0!==e?e:t.unref(k.keepValuesOnUnmount))||!k)return;const n=_(I),r=k.getPathState(n);if(Array.isArray(null==r?void 0:r.id)&&(null==r?void 0:r.multiple)?null==r?void 0:r.id.includes(te.id):(null==r?void 0:r.id)===te.id){if((null==r?void 0:r.multiple)&&Array.isArray(r.value)){const e=r.value.findIndex((e=>F(e,t.unref(te.checkedValue))));if(e>-1){const t=[...r.value];t.splice(e,1),k.setFieldValue(n,t)}Array.isArray(r.id)&&r.id.splice(r.id.indexOf(te.id),1)}else k.unsetPathValue(n);k.removePathState(n)}})),te}function oe(e,t){if(e)return e.props[t]}function se(e,t){let n=e.as||"";return e.as||t.slots.default||(n="input"),n}function de(e,t){return m(t.attrs.type)?V(e,"modelValue")?e.modelValue:void 0:V(e,"modelValue")?e.modelValue:t.attrs.value}const ce=t.defineComponent({name:"Field",inheritAttrs:!1,props:{as:{type:[String,Object],default:void 0},name:{type:String,required:!0},rules:{type:[Object,String,Function],default:void 0},validateOnMount:{type:Boolean,default:!1},validateOnBlur:{type:Boolean,default:void 0},validateOnChange:{type:Boolean,default:void 0},validateOnInput:{type:Boolean,default:void 0},validateOnModelUpdate:{type:Boolean,default:void 0},bails:{type:Boolean,default:()=>W().bails},label:{type:String,default:void 0},uncheckedValue:{type:null,default:void 0},modelValue:{type:null,default:d},modelModifiers:{type:null,default:()=>({})},"onUpdate:modelValue":{type:null,default:void 0},standalone:{type:Boolean,default:!1},keepValue:{type:Boolean,default:void 0}},setup(e,n){const r=t.toRef(e,"rules"),a=t.toRef(e,"name"),l=t.toRef(e,"label"),i=t.toRef(e,"uncheckedValue"),u=t.toRef(e,"keepValue"),{errors:o,value:s,errorMessage:d,validate:c,handleChange:v,handleBlur:f,setTouched:p,resetField:h,handleReset:y,meta:b,checked:O,setErrors:V}=ie(a,r,{validateOnMount:e.validateOnMount,bails:e.bails,standalone:e.standalone,type:n.attrs.type,initialValue:de(e,n),checkedValue:n.attrs.value,uncheckedValue:i,label:l,validateOnValueUpdate:!1,keepValueOnUnmount:u}),F=function(e,t=!0){v(e,t),n.emit("update:modelValue",s.value)},A=function(e){(e=>{m(n.attrs.type)||(s.value=G(e))})(e),n.emit("update:modelValue",s.value)},j=t.computed((()=>{const{validateOnInput:t,validateOnChange:r,validateOnBlur:a,validateOnModelUpdate:l}=function(e){var t,n,r,a;const{validateOnInput:l,validateOnChange:i,validateOnBlur:u,validateOnModelUpdate:o}=W();return{validateOnInput:null!==(t=e.validateOnInput)&&void 0!==t?t:l,validateOnChange:null!==(n=e.validateOnChange)&&void 0!==n?n:i,validateOnBlur:null!==(r=e.validateOnBlur)&&void 0!==r?r:u,validateOnModelUpdate:null!==(a=e.validateOnModelUpdate)&&void 0!==a?a:o}}(e),i=[f,n.attrs.onBlur,a?c:void 0].filter(Boolean),u=[e=>F(e,t),n.attrs.onInput].filter(Boolean),o=[e=>F(e,r),n.attrs.onChange].filter(Boolean),d={name:e.name,onBlur:i,onInput:u,onChange:o,"onUpdate:modelValue":e=>F(e,l)};m(n.attrs.type)&&O&&(d.checked=O.value);return g(se(e,n),n.attrs)&&(d.value=s.value),d}));function w(){return{field:j.value,value:s.value,meta:b,errors:o.value,errorMessage:d.value,validate:c,resetField:h,handleChange:F,handleInput:A,handleReset:y,handleBlur:f,setTouched:p,setErrors:V}}return n.expose({setErrors:V,setTouched:p,reset:h,validate:c,handleChange:v}),()=>{const r=t.resolveDynamicComponent(se(e,n)),a=q(r,n,w);return r?t.h(r,Object.assign(Object.assign({},n.attrs),j.value),a):a}}});let ve=0;const fe=["bails","fieldsCount","id","multiple","type","validate"];function pe(e){const r=t.unref(null==e?void 0:e.initialValues)||{},a=t.unref(null==e?void 0:e.validationSchema);return a&&f(a)&&n(a.cast)?w(a.cast(r)||{}):w(r)}function me(e){var r;const a=ve++;let l=0;const u=t.ref(!1),s=t.ref(0),d=[],c=t.reactive(pe(e)),v=t.ref([]),m=t.ref({});function h(e,t){const n=H(e);n?n.errors=$(t):m.value[e]=$(t)}function y(e){B(e).forEach((t=>{h(t,e[t])}))}(null==e?void 0:e.initialErrors)&&y(e.initialErrors);const g=t.computed((()=>{const e=v.value.reduce(((e,t)=>(t.errors.length&&(e[t.path]=t.errors),e)),{});return Object.assign(Object.assign({},m.value),e)})),O=t.computed((()=>B(g.value).reduce(((e,t)=>{const n=g.value[t];return(null==n?void 0:n.length)&&(e[t]=n[0]),e}),{}))),V=t.computed((()=>v.value.reduce(((e,t)=>(e[t.path]={name:t.path||"",label:t.label||""},e)),{}))),A=t.computed((()=>v.value.reduce(((e,t)=>{var n;return e[t.path]=null===(n=t.bails)||void 0===n||n,e}),{}))),j=Object.assign({},(null==e?void 0:e.initialErrors)||{}),S=null!==(r=null==e?void 0:e.keepValuesOnUnmount)&&void 0!==r&&r,{initialValues:I,originalInitialValues:M,setInitialValues:T}=function(e,n,r){const a=pe(r),l=null==r?void 0:r.initialValues,i=t.ref(a),u=t.ref(w(a));function o(t,r=!1){i.value=w(t),u.value=w(t),r&&e.value.forEach((e=>{if(e.touched)return;const t=E(i.value,e.path);k(n,e.path,w(t))}))}t.isRef(l)&&t.watch(l,(e=>{o(e,!0)}),{deep:!0});return{initialValues:i,originalInitialValues:u,setInitialValues:o}}(v,c,e),P=function(e,n,r,a){const l={touched:"some",pending:"some",valid:"every"},i=t.computed((()=>!F(n,t.unref(r))));function u(){const t=e.value;return B(l).reduce(((e,n)=>{const r=l[n];return e[n]=t[r]((e=>e[n])),e}),{})}const o=t.reactive(u());return t.watchEffect((()=>{const e=u();o.touched=e.touched,o.valid=e.valid,o.pending=e.pending})),t.computed((()=>Object.assign(Object.assign({initialValues:t.unref(r)},o),{valid:o.valid&&!B(a.value).length,dirty:i.value})))}(v,c,M,O),x=t.computed((()=>v.value.reduce(((e,t)=>{const n=E(c,t.path);return k(e,t.path,n),e}),{}))),U=null==e?void 0:e.validationSchema;function D(e,n){var r,a;const i=t.computed((()=>E(I.value,_(e)))),u=v.value.find((n=>n.path===t.unref(e)));if(u)return"checkbox"!==(null==n?void 0:n.type)&&"radio"!==(null==n?void 0:n.type)||(u.multiple=!0),Array.isArray(u.id)?u.id.push(l++):u.id=[u.id,l++],u.fieldsCount++,u;const o=t.computed((()=>E(c,_(e)))),s=_(e),d=t.reactive({id:l++,path:e,touched:!1,pending:!1,valid:!0,validated:!!(null===(r=j[s])||void 0===r?void 0:r.length),initialValue:i,errors:t.shallowRef([]),bails:null!==(a=null==n?void 0:n.bails)&&void 0!==a&&a,label:null==n?void 0:n.label,type:(null==n?void 0:n.type)||"default",value:o,multiple:!1,fieldsCount:1,validate:null==n?void 0:n.validate,dirty:t.computed((()=>!F(t.unref(o),t.unref(i))))});return v.value.push(d),O.value[s]&&!j[s]&&t.nextTick((()=>{se(s)})),t.isRef(e)&&t.watch(e,(e=>{const n=w(o.value);t.nextTick((()=>{k(c,e,n)}))})),d}const q=R(me,5),L=R(me,5),K=N((async e=>"silent"===await e?q():L()),((e,[t])=>{const n=B(Y.errorBag.value);return[...new Set([...B(e.results),...v.value.map((e=>e.path)),...n])].reduce(((n,r)=>{const a=r,l=H(a),i=(e.results[a]||{errors:[]}).errors,u={errors:i,valid:!i.length};return n.results[a]=u,u.valid||(n.errors[a]=u.errors[0]),l&&m.value[a]&&delete m.value[a],l?(l.valid=u.valid,"silent"===t?n:"validated-only"!==t||l.validated?(h(l,u.errors),n):n):(h(a,i),n)}),{valid:e.valid,results:{},errors:{}})}));function X(e){v.value.forEach(e)}function H(e){return"string"==typeof e?v.value.find((t=>t.path===e)):e}function J(e){return function(t,n){return function(r){return r instanceof Event&&(r.preventDefault(),r.stopPropagation()),X((e=>e.touched=!0)),u.value=!0,s.value++,oe().then((a=>{const l=w(c);if(a.valid&&"function"==typeof t){const n=w(x.value);let i=e?n:l;return a.values&&(i=a.values),t(i,{evt:r,controlledValues:n,setErrors:y,setFieldError:h,setTouched:le,setFieldTouched:ae,setValues:te,setFieldValue:Z,resetForm:ue,resetField:ie})}a.valid||"function"!=typeof n||n({values:l,evt:r,errors:a.errors,results:a.results})})).then((e=>(u.value=!1,e)),(e=>{throw u.value=!1,e}))}}}const Q=J(!1);Q.withControlled=J(!0);const Y={formId:a,values:c,controlledValues:x,errorBag:g,errors:O,schema:U,submitCount:s,meta:P,isSubmitting:u,fieldArrays:d,keepValuesOnUnmount:S,validateSchema:t.unref(U)?K:void 0,validate:oe,setFieldError:h,validateField:se,setFieldValue:Z,setValues:te,setErrors:y,setFieldTouched:ae,setTouched:le,resetForm:ue,resetField:ie,handleSubmit:Q,stageInitialValue:function(t,n,r=!1){ce(t,n),k(c,t,n),r&&!(null==e?void 0:e.initialValues)&&k(M.value,t,w(n))},unsetInitialValue:de,setFieldInitialValue:ce,useFieldModel:function(e){if(!Array.isArray(e))return ne(e);return e.map(ne)},createPathState:D,getPathState:H,unsetPathValue:function(e){C(c,e)},removePathState:function(e){const t=v.value.findIndex((t=>t.path===e)),n=v.value[t];-1!==t&&n&&(n.multiple&&n.fieldsCount&&n.fieldsCount--,(!n.multiple||n.fieldsCount<=0)&&(v.value.splice(t,1),de(e)))},initialValues:I,getAllPathStates:()=>v.value};function Z(e,t){const n=w(t),r="string"==typeof e?e:e.path;H(r)||D(r),k(c,r,n)}function te(e){i(c,e),d.forEach((e=>e&&e.reset()))}function ne(e){const n=H(t.unref(e))||D(e);return t.computed({get:()=>n.value,set(r){const a=t.unref(e);Z(a,r),n.validated=!0,n.pending=!0,se(a).then((()=>{n.pending=!1}))}})}function ae(e,t){const n=H(e);n&&(n.touched=t)}function le(e){B(e).forEach((t=>{ae(t,!!e[t])}))}function ie(e,t){var n;const r=t&&"value"in t?t.value:E(I.value,e);ce(e,w(r)),Z(e,r),ae(e,null!==(n=null==t?void 0:t.touched)&&void 0!==n&&n),h(e,(null==t?void 0:t.errors)||[])}function ue(e){const n=(null==e?void 0:e.values)?e.values:M.value;T(n),te(n),X((t=>{var r;t.validated=!1,t.touched=(null===(r=null==e?void 0:e.touched)||void 0===r?void 0:r[t.path])||!1,Z(t.path,E(n,t.path)),h(t.path,void 0)})),y((null==e?void 0:e.errors)||{}),s.value=(null==e?void 0:e.submitCount)||0,t.nextTick((()=>{oe({mode:"silent"})}))}async function oe(e){const t=(null==e?void 0:e.mode)||"force";if("force"===t&&X((e=>e.validated=!0)),Y.validateSchema)return Y.validateSchema(t);const n=await Promise.all(v.value.map((t=>t.validate?t.validate(e).then((e=>({key:t.path,valid:e.valid,errors:e.errors}))):Promise.resolve({key:t.path,valid:!0,errors:[]})))),r={},a={};for(const e of n)r[e.key]={valid:e.valid,errors:e.errors},e.errors.length&&(a[e.key]=e.errors[0]);return{valid:n.every((e=>e.valid)),results:r,errors:a}}async function se(e){const n=H(e);if(n&&(n.validated=!0),U){const{results:t}=await K("validated-only");return t[e]||{errors:[],valid:!0}}return(null==n?void 0:n.validate)?n.validate():(n||t.warn(`field with path ${e} was not found`),Promise.resolve({errors:[],valid:!0}))}function de(e){C(I.value,e)}function ce(e,t){k(I.value,e,w(t))}async function me(){const e=t.unref(U);if(!e)return{valid:!0,results:{},errors:{}};const n=p(e)||f(e)?await async function(e,t){const n=f(e)?e:ee(e),r=await n.parse(t),a={},l={};for(const e of r.errors){const t=e.errors,n=(e.path||"").replace(/\["(\d+)"\]/g,((e,t)=>`[${t}]`));a[n]={valid:!t.length,errors:t},t.length&&(l[n]=t[0])}return{valid:!r.errors.length,results:a,errors:l,values:r.value}}(e,c):await re(e,c,{names:V.value,bailsMap:A.value});return n}const he=Q(((e,{evt:t})=>{b(t)&&t.target.submit()}));return t.onMounted((()=>{(null==e?void 0:e.initialErrors)&&y(e.initialErrors),(null==e?void 0:e.initialTouched)&&le(e.initialTouched),(null==e?void 0:e.validateOnMount)?oe():Y.validateSchema&&Y.validateSchema("silent")})),t.isRef(U)&&t.watch(U,(()=>{var e;null===(e=Y.validateSchema)||void 0===e||e.call(Y,"validated-only")})),t.provide(o,Y),Object.assign(Object.assign({},Y),{handleReset:()=>ue(),submitForm:he,defineComponentBinds:function(e,r){const a=H(_(e))||D(e),l=()=>n(r)?r(z(a,fe)):r||{};function i(){var e;a.touched=!0;(null!==(e=l().validateOnBlur)&&void 0!==e?e:W().validateOnBlur)&&se(a.path)}function u(e){var t;Z(a.path,e);(null!==(t=l().validateOnModelUpdate)&&void 0!==t?t:W().validateOnModelUpdate)&&se(a.path)}return t.computed((()=>{const e={modelValue:a.value,"onUpdate:modelValue":u,onBlur:i};return n(r)?Object.assign(Object.assign({},e),r(a).props||{}):(null==r?void 0:r.mapProps)?Object.assign(Object.assign({},e),r.mapProps(z(a,fe))):e}))},defineInputBinds:function(e,r){const a=H(_(e))||D(e),l=()=>n(r)?r(z(a,fe)):r||{};function i(){var e;a.touched=!0;(null!==(e=l().validateOnBlur)&&void 0!==e?e:W().validateOnBlur)&&se(a.path)}function u(e){var t;const n=G(e);Z(a.path,n);(null!==(t=l().validateOnInput)&&void 0!==t?t:W().validateOnInput)&&se(a.path)}function o(e){var t;const n=G(e);Z(a.path,n);(null!==(t=l().validateOnChange)&&void 0!==t?t:W().validateOnChange)&&se(a.path)}return t.computed((()=>{const e={value:a.value,onChange:o,onInput:u,onBlur:i};return n(r)?Object.assign(Object.assign({},e),r(z(a,fe)).attrs||{}):(null==r?void 0:r.mapAttrs)?Object.assign(Object.assign({},e),r.mapAttrs(z(a,fe))):e}))}})}const he=t.defineComponent({name:"Form",inheritAttrs:!1,props:{as:{type:String,default:"form"},validationSchema:{type:Object,default:void 0},initialValues:{type:Object,default:void 0},initialErrors:{type:Object,default:void 0},initialTouched:{type:Object,default:void 0},validateOnMount:{type:Boolean,default:!1},onSubmit:{type:Function,default:void 0},onInvalidSubmit:{type:Function,default:void 0},keepValues:{type:Boolean,default:!1}},setup(e,n){const r=t.toRef(e,"initialValues"),a=t.toRef(e,"validationSchema"),l=t.toRef(e,"keepValues"),{errors:i,errorBag:u,values:o,meta:s,isSubmitting:d,submitCount:c,controlledValues:v,validate:f,validateField:p,handleReset:m,resetForm:h,handleSubmit:y,setErrors:g,setFieldError:V,setFieldValue:F,setValues:A,setFieldTouched:j,setTouched:S,resetField:E}=me({validationSchema:a.value?a:void 0,initialValues:r,initialErrors:e.initialErrors,initialTouched:e.initialTouched,validateOnMount:e.validateOnMount,keepValuesOnUnmount:l}),k=y(((e,{evt:t})=>{b(t)&&t.target.submit()}),e.onInvalidSubmit),I=e.onSubmit?y(e.onSubmit,e.onInvalidSubmit):k;function C(e){O(e)&&e.preventDefault(),m(),"function"==typeof n.attrs.onReset&&n.attrs.onReset()}function B(t,n){return y("function"!=typeof t||n?n:t,e.onInvalidSubmit)(t)}function M(){return w(o)}function T(){return w(s.value)}function P(){return w(i.value)}function R(){return{meta:s.value,errors:i.value,errorBag:u.value,values:o,isSubmitting:d.value,submitCount:c.value,controlledValues:v.value,validate:f,validateField:p,handleSubmit:B,handleReset:m,submitForm:k,setErrors:g,setFieldError:V,setFieldValue:F,setValues:A,setFieldTouched:j,setTouched:S,resetForm:h,resetField:E,getValues:M,getMeta:T,getErrors:P}}return n.expose({setFieldError:V,setErrors:g,setFieldValue:F,setValues:A,setFieldTouched:j,setTouched:S,resetForm:h,validate:f,validateField:p,resetField:E,getValues:M,getMeta:T,getErrors:P}),function(){const r="form"===e.as?e.as:t.resolveDynamicComponent(e.as),a=q(r,n,R);if(!e.as)return a;const l="form"===e.as?{novalidate:!0}:{};return t.h(r,Object.assign(Object.assign(Object.assign({},l),n.attrs),{onSubmit:I,onReset:C}),a)}}}),ye=he;function ge(e){const n=M(o,void 0),a=t.ref([]),l=()=>{},i={fields:a,remove:l,push:l,swap:l,insert:l,update:l,replace:l,prepend:l,move:l};if(!n)return T("FieldArray requires being a child of `<Form/>` or `useForm` being called before it. Array fields may not work correctly"),i;if(!t.unref(e))return T("FieldArray requires a field path to be provided, did you forget to pass the `name` prop?"),i;const u=n.fieldArrays.find((n=>t.unref(n.path)===t.unref(e)));if(u)return u;let s=0;function d(){return E(null==n?void 0:n.values,t.unref(e),[])||[]}function c(){const e=d();Array.isArray(e)&&(a.value=e.map(((e,t)=>f(e,t,a.value))),v())}function v(){const e=a.value.length;for(let t=0;t<e;t++){const n=a.value[t];n.isFirst=0===t,n.isLast=t===e-1}}function f(l,i,u){if(u&&!r(i)&&u[i])return u[i];const o=s++,d={key:o,value:U({get(){const r=E(null==n?void 0:n.values,t.unref(e),[])||[],i=a.value.findIndex((e=>e.key===o));return-1===i?l:r[i]},set(e){const t=a.value.findIndex((e=>e.key===o));-1!==t?m(t,e):T("Attempting to update a non-existent array item")}}),isFirst:!1,isLast:!1};return d}function p(){v(),null==n||n.validate({mode:"silent"})}function m(r,a){const l=t.unref(e),i=E(null==n?void 0:n.values,l);!Array.isArray(i)||i.length-1<r||(k(n.values,`${l}[${r}]`,a),null==n||n.validate({mode:"validated-only"}))}c();const h={fields:a,remove:function(r){const l=t.unref(e),i=E(null==n?void 0:n.values,l);if(!i||!Array.isArray(i))return;const u=[...i];u.splice(r,1);const o=l+`[${r}]`;n.unsetInitialValue(o),k(n.values,l,u),a.value.splice(r,1),p()},push:function(l){const i=t.unref(e),u=E(null==n?void 0:n.values,i),o=r(u)?[]:u;if(!Array.isArray(o))return;const s=[...o];s.push(l),n.stageInitialValue(i+`[${s.length-1}]`,l),k(n.values,i,s),a.value.push(f(l)),p()},swap:function(r,l){const i=t.unref(e),u=E(null==n?void 0:n.values,i);if(!Array.isArray(u)||!(r in u)||!(l in u))return;const o=[...u],s=[...a.value],d=o[r];o[r]=o[l],o[l]=d;const c=s[r];s[r]=s[l],s[l]=c,k(n.values,i,o),a.value=s,v()},insert:function(r,l){const i=t.unref(e),u=E(null==n?void 0:n.values,i);if(!Array.isArray(u)||u.length<r)return;const o=[...u],s=[...a.value];o.splice(r,0,l),s.splice(r,0,f(l)),k(n.values,i,o),a.value=s,p()},update:m,replace:function(r){const a=t.unref(e);n.stageInitialValue(a,r),k(n.values,a,r),c(),p()},prepend:function(l){const i=t.unref(e),u=E(null==n?void 0:n.values,i),o=r(u)?[]:u;if(!Array.isArray(o))return;const s=[l,...o];n.stageInitialValue(i+`[${s.length-1}]`,l),k(n.values,i,s),a.value.unshift(f(l)),p()},move:function(l,i){const u=t.unref(e),o=E(null==n?void 0:n.values,u),s=r(o)?[]:[...o];if(!Array.isArray(o)||!(l in o)||!(i in o))return;const d=[...a.value],c=d[l];d.splice(l,1),d.splice(i,0,c);const v=s[l];s.splice(l,1),s.splice(i,0,v),k(n.values,u,s),a.value=d,p()}};return n.fieldArrays.push(Object.assign({path:e,reset:c},h)),t.onBeforeUnmount((()=>{const r=n.fieldArrays.findIndex((n=>t.unref(n.path)===t.unref(e)));r>=0&&n.fieldArrays.splice(r,1)})),t.watch(d,(e=>{F(e,a.value.map((e=>e.value)))||c()})),h}const be=t.defineComponent({name:"FieldArray",inheritAttrs:!1,props:{name:{type:String,required:!0}},setup(e,n){const{push:r,remove:a,swap:l,insert:i,replace:u,update:o,prepend:s,move:d,fields:c}=ge(t.toRef(e,"name"));function v(){return{fields:c.value,push:r,remove:a,swap:l,insert:i,update:o,replace:u,prepend:s,move:d}}return n.expose({push:r,remove:a,swap:l,insert:i,update:o,replace:u,prepend:s,move:d}),()=>q(void 0,n,v)}}),Oe=t.defineComponent({name:"ErrorMessage",props:{as:{type:String,default:void 0},name:{type:String,required:!0}},setup(e,n){const r=t.inject(o,void 0),a=t.computed((()=>null==r?void 0:r.errors.value[e.name]));function l(){return{message:a.value}}return()=>{if(!a.value)return;const r=e.as?t.resolveDynamicComponent(e.as):e.as,i=q(r,n,l),u=Object.assign({role:"alert"},n.attrs);return r||!Array.isArray(i)&&i||!(null==i?void 0:i.length)?!Array.isArray(i)&&i||(null==i?void 0:i.length)?t.h(r,u,i):t.h(r||"span",u,a.value):i}}});e.ErrorMessage=Oe,e.Field=ce,e.FieldArray=be,e.FieldContextKey=s,e.Form=ye,e.FormContextKey=o,e.IS_ABSENT=d,e.configure=Y,e.defineRule=function(e,t){!function(e,t){if(n(t))return;throw new Error(`Extension Error: The validator '${e}' must be a function.`)}(e,t),u[e]=t},e.useField=ie,e.useFieldArray=ge,e.useFieldError=function(e){const n=M(o),r=e?void 0:t.inject(s);return t.computed((()=>e?null==n?void 0:n.errors.value[t.unref(e)]:null==r?void 0:r.errorMessage.value))},e.useFieldValue=function(e){const n=M(o),r=e?void 0:t.inject(s);return t.computed((()=>e?E(null==n?void 0:n.values,t.unref(e)):t.unref(null==r?void 0:r.value)))},e.useForm=me,e.useFormErrors=function(){const e=M(o);return e||T("No vee-validate <Form /> or `useForm` was detected in the component tree"),t.computed((()=>(null==e?void 0:e.errors.value)||{}))},e.useFormValues=function(){const e=M(o);return e||T("No vee-validate <Form /> or `useForm` was detected in the component tree"),t.computed((()=>(null==e?void 0:e.values)||{}))},e.useIsFieldDirty=function(e){const n=D(e);return t.computed((()=>{var e,t;return!!n&&(null!==(t="meta"in n?n.meta.dirty:null===(e=null==n?void 0:n.value)||void 0===e?void 0:e.dirty)&&void 0!==t&&t)}))},e.useIsFieldTouched=function(e){const n=D(e);return t.computed((()=>{var e,t;return!!n&&(null!==(t="meta"in n?n.meta.touched:null===(e=null==n?void 0:n.value)||void 0===e?void 0:e.touched)&&void 0!==t&&t)}))},e.useIsFieldValid=function(e){const n=D(e);return t.computed((()=>{var e,t;return!!n&&(null!==(t="meta"in n?n.meta.valid:null===(e=null==n?void 0:n.value)||void 0===e?void 0:e.valid)&&void 0!==t&&t)}))},e.useIsFormDirty=function(){const e=M(o);return e||T("No vee-validate <Form /> or `useForm` was detected in the component tree"),t.computed((()=>{var t;return null!==(t=null==e?void 0:e.meta.value.dirty)&&void 0!==t&&t}))},e.useIsFormTouched=function(){const e=M(o);return e||T("No vee-validate <Form /> or `useForm` was detected in the component tree"),t.computed((()=>{var t;return null!==(t=null==e?void 0:e.meta.value.touched)&&void 0!==t&&t}))},e.useIsFormValid=function(){const e=M(o);return e||T("No vee-validate <Form /> or `useForm` was detected in the component tree"),t.computed((()=>{var t;return null!==(t=null==e?void 0:e.meta.value.valid)&&void 0!==t&&t}))},e.useIsSubmitting=function(){const e=M(o);return e||T("No vee-validate <Form /> or `useForm` was detected in the component tree"),t.computed((()=>{var t;return null!==(t=null==e?void 0:e.isSubmitting.value)&&void 0!==t&&t}))},e.useResetForm=function(){const e=M(o);return e||T("No vee-validate <Form /> or `useForm` was detected in the component tree"),function(t){if(e)return e.resetForm(t)}},e.useSubmitCount=function(){const e=M(o);return e||T("No vee-validate <Form /> or `useForm` was detected in the component tree"),t.computed((()=>{var t;return null!==(t=null==e?void 0:e.submitCount.value)&&void 0!==t?t:0}))},e.useSubmitForm=function(e){const t=M(o);t||T("No vee-validate <Form /> or `useForm` was detected in the component tree");const n=t?t.handleSubmit(e):void 0;return function(e){if(n)return n(e)}},e.useValidateField=function(e){const n=M(o),r=e?void 0:t.inject(s);return function(){return r?r.validate():n&&e?null==n?void 0:n.validateField(t.unref(e)):(T(`field with name ${t.unref(e)} was not found`),Promise.resolve({errors:[],valid:!0}))}},e.useValidateForm=function(){const e=M(o);return e||T("No vee-validate <Form /> or `useForm` was detected in the component tree"),function(){return e?e.validate():Promise.resolve({results:{},errors:{},valid:!0})}},e.validate=Z,e.validateObject=re})); |
{ | ||
"name": "vee-validate", | ||
"version": "4.8.6", | ||
"version": "4.9.0", | ||
"description": "Form Validation for Vue.js", | ||
@@ -5,0 +5,0 @@ "author": "Abdelrahman Awad <logaretm1@gmail.com>", |
@@ -171,2 +171,3 @@ <p align="center"> | ||
- v4 API Inspired by [Formik's](https://github.com/formium/formik) | ||
- Nested path types by [react-hook-form](https://github.com/react-hook-form/react-hook-form) | ||
- Logo by [Baianat](https://github.com/baianat) | ||
@@ -173,0 +174,0 @@ |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
343523
7794
183
5