vee-validate 4.6.9 → 4.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/vee-validate.d.ts +45 -38
- package/dist/vee-validate.esm.js +92 -86
- package/dist/vee-validate.js +91 -85
- package/dist/vee-validate.min.js +2 -2
- package/package.json +2 -2
package/dist/vee-validate.d.ts
CHANGED
|
@@ -127,6 +127,7 @@ interface FormValidationResult<TValues> {
|
|
|
127
127
|
}
|
|
128
128
|
interface SubmissionContext<TValues extends GenericFormValues = GenericFormValues> extends FormActions<TValues> {
|
|
129
129
|
evt?: Event;
|
|
130
|
+
controlledValues: Partial<TValues>;
|
|
130
131
|
}
|
|
131
132
|
declare type SubmissionHandler<TValues extends GenericFormValues = GenericFormValues, TReturn = unknown> = (values: TValues, ctx: SubmissionContext<TValues>) => TReturn;
|
|
132
133
|
interface InvalidSubmissionContext<TValues extends GenericFormValues = GenericFormValues> {
|
|
@@ -141,9 +142,11 @@ declare type FieldPathLookup<TValues extends Record<string, any> = Record<string
|
|
|
141
142
|
declare type MapValues<T, TValues extends Record<string, any>> = {
|
|
142
143
|
[K in keyof T]: T[K] extends MaybeRef<infer TKey> ? TKey extends keyof TValues ? Ref<TValues[TKey]> : Ref<unknown> : Ref<unknown>;
|
|
143
144
|
};
|
|
145
|
+
declare type HandleSubmitFactory<TValues extends GenericFormValues> = <TReturn = unknown>(cb: SubmissionHandler<TValues, TReturn>, onSubmitValidationErrorCb?: InvalidSubmissionHandler<TValues>) => (e?: Event) => Promise<TReturn | undefined>;
|
|
144
146
|
interface PrivateFormContext<TValues extends Record<string, any> = Record<string, any>> extends FormActions<TValues> {
|
|
145
147
|
formId: number;
|
|
146
148
|
values: TValues;
|
|
149
|
+
controlledValues: Ref<TValues>;
|
|
147
150
|
fieldsByPath: Ref<FieldPathLookup>;
|
|
148
151
|
fieldArrays: PrivateFieldArrayContext[];
|
|
149
152
|
submitCount: Ref<number>;
|
|
@@ -161,7 +164,9 @@ interface PrivateFormContext<TValues extends Record<string, any> = Record<string
|
|
|
161
164
|
unsetInitialValue(path: string): void;
|
|
162
165
|
register(field: PrivateFieldContext): void;
|
|
163
166
|
unregister(field: PrivateFieldContext): void;
|
|
164
|
-
handleSubmit
|
|
167
|
+
handleSubmit: HandleSubmitFactory<TValues> & {
|
|
168
|
+
withControlled: HandleSubmitFactory<TValues>;
|
|
169
|
+
};
|
|
165
170
|
setFieldInitialValue(path: string, value: unknown): void;
|
|
166
171
|
useFieldModel<TPath extends keyof TValues>(path: MaybeRef<TPath>): Ref<TValues[TPath]>;
|
|
167
172
|
useFieldModel<TPath extends keyof TValues>(paths: [...MaybeRef<TPath>[]]): MapValues<typeof paths, TValues>;
|
|
@@ -206,10 +211,12 @@ interface FieldOptions<TValue = unknown> {
|
|
|
206
211
|
checkedValue?: MaybeRef<TValue>;
|
|
207
212
|
uncheckedValue?: MaybeRef<TValue>;
|
|
208
213
|
label?: MaybeRef<string | undefined>;
|
|
214
|
+
controlled?: boolean;
|
|
209
215
|
standalone?: boolean;
|
|
210
216
|
keepValueOnUnmount?: MaybeRef<boolean | undefined>;
|
|
211
217
|
modelPropName?: string;
|
|
212
218
|
syncVModel?: boolean;
|
|
219
|
+
form?: FormContext;
|
|
213
220
|
}
|
|
214
221
|
declare type RuleExpression<TValue> = string | Record<string, unknown> | GenericValidateFunction<TValue> | GenericValidateFunction<TValue>[] | YupValidator<TValue> | undefined;
|
|
215
222
|
/**
|
|
@@ -248,8 +255,8 @@ declare const Field: {
|
|
|
248
255
|
validateOnBlur: boolean;
|
|
249
256
|
validateOnModelUpdate: boolean;
|
|
250
257
|
modelValue: any;
|
|
251
|
-
standalone: boolean;
|
|
252
258
|
validateOnMount: boolean;
|
|
259
|
+
standalone: boolean;
|
|
253
260
|
modelModifiers: any;
|
|
254
261
|
rules: RuleExpression<unknown>;
|
|
255
262
|
'onUpdate:modelValue': (e: any) => unknown;
|
|
@@ -319,7 +326,7 @@ declare const Field: {
|
|
|
319
326
|
type: BooleanConstructor;
|
|
320
327
|
default: any;
|
|
321
328
|
};
|
|
322
|
-
}>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "label" | "as" | "bails" | "uncheckedValue" | "validateOnInput" | "validateOnChange" | "validateOnBlur" | "validateOnModelUpdate" | "modelValue" | "
|
|
329
|
+
}>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "label" | "as" | "bails" | "uncheckedValue" | "validateOnInput" | "validateOnChange" | "validateOnBlur" | "validateOnModelUpdate" | "modelValue" | "validateOnMount" | "standalone" | "modelModifiers" | "rules" | "onUpdate:modelValue" | "keepValue">;
|
|
323
330
|
$attrs: {
|
|
324
331
|
[x: string]: unknown;
|
|
325
332
|
};
|
|
@@ -400,13 +407,13 @@ declare const Field: {
|
|
|
400
407
|
};
|
|
401
408
|
}>>, () => VNode<vue.RendererNode, vue.RendererElement, {
|
|
402
409
|
[key: string]: any;
|
|
403
|
-
}> |
|
|
410
|
+
}> | VNode<vue.RendererNode, vue.RendererElement, {
|
|
404
411
|
[key: string]: any;
|
|
405
|
-
}>[] | {
|
|
412
|
+
}>[] | vue.Slot | {
|
|
406
413
|
default: () => VNode<vue.RendererNode, vue.RendererElement, {
|
|
407
414
|
[key: string]: any;
|
|
408
415
|
}>[];
|
|
409
|
-
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin,
|
|
416
|
+
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, {
|
|
410
417
|
label: string;
|
|
411
418
|
as: string | Record<string, any>;
|
|
412
419
|
bails: boolean;
|
|
@@ -416,8 +423,8 @@ declare const Field: {
|
|
|
416
423
|
validateOnBlur: boolean;
|
|
417
424
|
validateOnModelUpdate: boolean;
|
|
418
425
|
modelValue: any;
|
|
419
|
-
standalone: boolean;
|
|
420
426
|
validateOnMount: boolean;
|
|
427
|
+
standalone: boolean;
|
|
421
428
|
modelModifiers: any;
|
|
422
429
|
rules: RuleExpression<unknown>;
|
|
423
430
|
'onUpdate:modelValue': (e: any) => unknown;
|
|
@@ -509,9 +516,9 @@ declare const Field: {
|
|
|
509
516
|
};
|
|
510
517
|
}>> & vue.ShallowUnwrapRef<() => VNode<vue.RendererNode, vue.RendererElement, {
|
|
511
518
|
[key: string]: any;
|
|
512
|
-
}> |
|
|
519
|
+
}> | VNode<vue.RendererNode, vue.RendererElement, {
|
|
513
520
|
[key: string]: any;
|
|
514
|
-
}>[] | {
|
|
521
|
+
}>[] | vue.Slot | {
|
|
515
522
|
default: () => VNode<vue.RendererNode, vue.RendererElement, {
|
|
516
523
|
[key: string]: any;
|
|
517
524
|
}>[];
|
|
@@ -586,13 +593,13 @@ declare const Field: {
|
|
|
586
593
|
};
|
|
587
594
|
}>>, () => VNode<vue.RendererNode, vue.RendererElement, {
|
|
588
595
|
[key: string]: any;
|
|
589
|
-
}> |
|
|
596
|
+
}> | VNode<vue.RendererNode, vue.RendererElement, {
|
|
590
597
|
[key: string]: any;
|
|
591
|
-
}>[] | {
|
|
598
|
+
}>[] | vue.Slot | {
|
|
592
599
|
default: () => VNode<vue.RendererNode, vue.RendererElement, {
|
|
593
600
|
[key: string]: any;
|
|
594
601
|
}>[];
|
|
595
|
-
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin,
|
|
602
|
+
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, {
|
|
596
603
|
label: string;
|
|
597
604
|
as: string | Record<string, any>;
|
|
598
605
|
bails: boolean;
|
|
@@ -602,8 +609,8 @@ declare const Field: {
|
|
|
602
609
|
validateOnBlur: boolean;
|
|
603
610
|
validateOnModelUpdate: boolean;
|
|
604
611
|
modelValue: any;
|
|
605
|
-
standalone: boolean;
|
|
606
612
|
validateOnMount: boolean;
|
|
613
|
+
standalone: boolean;
|
|
607
614
|
modelModifiers: any;
|
|
608
615
|
rules: RuleExpression<unknown>;
|
|
609
616
|
'onUpdate:modelValue': (e: any) => unknown;
|
|
@@ -619,7 +626,7 @@ declare const Field: {
|
|
|
619
626
|
};
|
|
620
627
|
});
|
|
621
628
|
|
|
622
|
-
declare type FormSlotProps = UnwrapRef<Pick<FormContext, 'meta' | 'errors' | 'values' | 'isSubmitting' | 'submitCount' | 'validate' | 'validateField' | 'handleReset' | 'setErrors' | 'setFieldError' | 'setFieldValue' | 'setValues' | 'setFieldTouched' | 'setTouched' | 'resetForm'>> & {
|
|
629
|
+
declare type FormSlotProps = UnwrapRef<Pick<FormContext, 'meta' | 'errors' | 'values' | 'isSubmitting' | 'submitCount' | 'validate' | 'validateField' | 'handleReset' | 'setErrors' | 'setFieldError' | 'setFieldValue' | 'setValues' | 'setFieldTouched' | 'setTouched' | 'resetForm' | 'controlledValues'>> & {
|
|
623
630
|
handleSubmit: (evt: Event | SubmissionHandler, onSubmit?: SubmissionHandler) => Promise<unknown>;
|
|
624
631
|
submitForm(evt?: Event): void;
|
|
625
632
|
};
|
|
@@ -727,13 +734,13 @@ declare const Form: {
|
|
|
727
734
|
};
|
|
728
735
|
}>>, () => VNode<vue.RendererNode, vue.RendererElement, {
|
|
729
736
|
[key: string]: any;
|
|
730
|
-
}> |
|
|
737
|
+
}> | VNode<vue.RendererNode, vue.RendererElement, {
|
|
731
738
|
[key: string]: any;
|
|
732
|
-
}>[] | {
|
|
739
|
+
}>[] | vue.Slot | {
|
|
733
740
|
default: () => VNode<vue.RendererNode, vue.RendererElement, {
|
|
734
741
|
[key: string]: any;
|
|
735
742
|
}>[];
|
|
736
|
-
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin,
|
|
743
|
+
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, {
|
|
737
744
|
onSubmit: SubmissionHandler<GenericFormValues, unknown>;
|
|
738
745
|
as: string;
|
|
739
746
|
initialValues: Record<string, any>;
|
|
@@ -802,9 +809,9 @@ declare const Form: {
|
|
|
802
809
|
};
|
|
803
810
|
}>> & vue.ShallowUnwrapRef<() => VNode<vue.RendererNode, vue.RendererElement, {
|
|
804
811
|
[key: string]: any;
|
|
805
|
-
}> |
|
|
812
|
+
}> | VNode<vue.RendererNode, vue.RendererElement, {
|
|
806
813
|
[key: string]: any;
|
|
807
|
-
}>[] | {
|
|
814
|
+
}>[] | vue.Slot | {
|
|
808
815
|
default: () => VNode<vue.RendererNode, vue.RendererElement, {
|
|
809
816
|
[key: string]: any;
|
|
810
817
|
}>[];
|
|
@@ -851,13 +858,13 @@ declare const Form: {
|
|
|
851
858
|
};
|
|
852
859
|
}>>, () => VNode<vue.RendererNode, vue.RendererElement, {
|
|
853
860
|
[key: string]: any;
|
|
854
|
-
}> |
|
|
861
|
+
}> | VNode<vue.RendererNode, vue.RendererElement, {
|
|
855
862
|
[key: string]: any;
|
|
856
|
-
}>[] | {
|
|
863
|
+
}>[] | vue.Slot | {
|
|
857
864
|
default: () => VNode<vue.RendererNode, vue.RendererElement, {
|
|
858
865
|
[key: string]: any;
|
|
859
866
|
}>[];
|
|
860
|
-
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin,
|
|
867
|
+
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, {
|
|
861
868
|
onSubmit: SubmissionHandler<GenericFormValues, unknown>;
|
|
862
869
|
as: string;
|
|
863
870
|
initialValues: Record<string, any>;
|
|
@@ -910,13 +917,13 @@ declare const FieldArray: {
|
|
|
910
917
|
type: StringConstructor;
|
|
911
918
|
required: true;
|
|
912
919
|
};
|
|
913
|
-
}>>, () =>
|
|
920
|
+
}>>, () => VNode<vue.RendererNode, vue.RendererElement, {
|
|
914
921
|
[key: string]: any;
|
|
915
|
-
}>[] | {
|
|
922
|
+
}>[] | vue.Slot | {
|
|
916
923
|
default: () => VNode<vue.RendererNode, vue.RendererElement, {
|
|
917
924
|
[key: string]: any;
|
|
918
925
|
}>[];
|
|
919
|
-
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin,
|
|
926
|
+
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, {}> & {
|
|
920
927
|
beforeCreate?: (() => void) | (() => void)[];
|
|
921
928
|
created?: (() => void) | (() => void)[];
|
|
922
929
|
beforeMount?: (() => void) | (() => void)[];
|
|
@@ -941,9 +948,9 @@ declare const FieldArray: {
|
|
|
941
948
|
type: StringConstructor;
|
|
942
949
|
required: true;
|
|
943
950
|
};
|
|
944
|
-
}>> & vue.ShallowUnwrapRef<() =>
|
|
951
|
+
}>> & vue.ShallowUnwrapRef<() => VNode<vue.RendererNode, vue.RendererElement, {
|
|
945
952
|
[key: string]: any;
|
|
946
|
-
}>[] | {
|
|
953
|
+
}>[] | vue.Slot | {
|
|
947
954
|
default: () => VNode<vue.RendererNode, vue.RendererElement, {
|
|
948
955
|
[key: string]: any;
|
|
949
956
|
}>[];
|
|
@@ -956,13 +963,13 @@ declare const FieldArray: {
|
|
|
956
963
|
type: StringConstructor;
|
|
957
964
|
required: true;
|
|
958
965
|
};
|
|
959
|
-
}>>, () =>
|
|
966
|
+
}>>, () => VNode<vue.RendererNode, vue.RendererElement, {
|
|
960
967
|
[key: string]: any;
|
|
961
|
-
}>[] | {
|
|
968
|
+
}>[] | vue.Slot | {
|
|
962
969
|
default: () => VNode<vue.RendererNode, vue.RendererElement, {
|
|
963
970
|
[key: string]: any;
|
|
964
971
|
}>[];
|
|
965
|
-
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin,
|
|
972
|
+
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, {}> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new () => {
|
|
966
973
|
push: FieldArrayContext['push'];
|
|
967
974
|
remove: FieldArrayContext['remove'];
|
|
968
975
|
swap: FieldArrayContext['swap'];
|
|
@@ -1019,13 +1026,13 @@ declare const ErrorMessage: {
|
|
|
1019
1026
|
};
|
|
1020
1027
|
}>>, () => VNode<vue.RendererNode, vue.RendererElement, {
|
|
1021
1028
|
[key: string]: any;
|
|
1022
|
-
}> |
|
|
1029
|
+
}> | VNode<vue.RendererNode, vue.RendererElement, {
|
|
1023
1030
|
[key: string]: any;
|
|
1024
|
-
}>[] | {
|
|
1031
|
+
}>[] | vue.Slot | {
|
|
1025
1032
|
default: () => VNode<vue.RendererNode, vue.RendererElement, {
|
|
1026
1033
|
[key: string]: any;
|
|
1027
1034
|
}>[];
|
|
1028
|
-
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin,
|
|
1035
|
+
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, {
|
|
1029
1036
|
as: string;
|
|
1030
1037
|
}> & {
|
|
1031
1038
|
beforeCreate?: (() => void) | (() => void)[];
|
|
@@ -1058,9 +1065,9 @@ declare const ErrorMessage: {
|
|
|
1058
1065
|
};
|
|
1059
1066
|
}>> & vue.ShallowUnwrapRef<() => VNode<vue.RendererNode, vue.RendererElement, {
|
|
1060
1067
|
[key: string]: any;
|
|
1061
|
-
}> |
|
|
1068
|
+
}> | VNode<vue.RendererNode, vue.RendererElement, {
|
|
1062
1069
|
[key: string]: any;
|
|
1063
|
-
}>[] | {
|
|
1070
|
+
}>[] | vue.Slot | {
|
|
1064
1071
|
default: () => VNode<vue.RendererNode, vue.RendererElement, {
|
|
1065
1072
|
[key: string]: any;
|
|
1066
1073
|
}>[];
|
|
@@ -1079,13 +1086,13 @@ declare const ErrorMessage: {
|
|
|
1079
1086
|
};
|
|
1080
1087
|
}>>, () => VNode<vue.RendererNode, vue.RendererElement, {
|
|
1081
1088
|
[key: string]: any;
|
|
1082
|
-
}> |
|
|
1089
|
+
}> | VNode<vue.RendererNode, vue.RendererElement, {
|
|
1083
1090
|
[key: string]: any;
|
|
1084
|
-
}>[] | {
|
|
1091
|
+
}>[] | vue.Slot | {
|
|
1085
1092
|
default: () => VNode<vue.RendererNode, vue.RendererElement, {
|
|
1086
1093
|
[key: string]: any;
|
|
1087
1094
|
}>[];
|
|
1088
|
-
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin,
|
|
1095
|
+
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, {
|
|
1089
1096
|
as: string;
|
|
1090
1097
|
}> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new () => {
|
|
1091
1098
|
$slots: {
|
package/dist/vee-validate.esm.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* vee-validate v4.
|
|
2
|
+
* vee-validate v4.7.0
|
|
3
3
|
* (c) 2022 Abdelrahman Awad
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { getCurrentInstance, inject, warn as warn$1, ref, unref, computed, reactive, watch, onUnmounted, nextTick, onMounted, provide, isRef, onBeforeUnmount, defineComponent, toRef, resolveDynamicComponent, h, watchEffect, markRaw } from 'vue';
|
|
7
7
|
import { setupDevtoolsPlugin } from '@vue/devtools-api';
|
|
8
8
|
|
|
9
9
|
function isCallable(fn) {
|
|
@@ -50,6 +50,7 @@ const FormContextKey = Symbol('vee-validate-form');
|
|
|
50
50
|
const FieldContextKey = Symbol('vee-validate-field-instance');
|
|
51
51
|
const IS_ABSENT = Symbol('Default empty value');
|
|
52
52
|
|
|
53
|
+
const isClient = typeof window !== 'undefined';
|
|
53
54
|
function isLocator(value) {
|
|
54
55
|
return isCallable(value) && !!value.__locatorRef;
|
|
55
56
|
}
|
|
@@ -163,7 +164,7 @@ function isEqual(a, b) {
|
|
|
163
164
|
}
|
|
164
165
|
// We added this part for file comparison, arguably a little naive but should work for most cases.
|
|
165
166
|
// #3911
|
|
166
|
-
if (a
|
|
167
|
+
if (isFile(a) && isFile(b)) {
|
|
167
168
|
if (a.size !== b.size)
|
|
168
169
|
return false;
|
|
169
170
|
if (a.name !== b.name)
|
|
@@ -216,6 +217,12 @@ function isEqual(a, b) {
|
|
|
216
217
|
// true if both NaN, false otherwise
|
|
217
218
|
// eslint-disable-next-line no-self-compare
|
|
218
219
|
return a !== a && b !== b;
|
|
220
|
+
}
|
|
221
|
+
function isFile(a) {
|
|
222
|
+
if (!isClient) {
|
|
223
|
+
return false;
|
|
224
|
+
}
|
|
225
|
+
return a instanceof File;
|
|
219
226
|
}
|
|
220
227
|
|
|
221
228
|
// do not edit .js files directly - edit src/index.jst
|
|
@@ -893,8 +900,8 @@ function klona(x) {
|
|
|
893
900
|
|
|
894
901
|
let ID_COUNTER = 0;
|
|
895
902
|
function useFieldState(path, init) {
|
|
896
|
-
const { value, initialValue, setInitialValue } = _useFieldValue(path, init.modelValue,
|
|
897
|
-
const { errorMessage, errors, setErrors } = _useFieldErrors(path,
|
|
903
|
+
const { value, initialValue, setInitialValue } = _useFieldValue(path, init.modelValue, init.form);
|
|
904
|
+
const { errorMessage, errors, setErrors } = _useFieldErrors(path, init.form);
|
|
898
905
|
const meta = _useFieldMeta(value, initialValue, errors);
|
|
899
906
|
const id = ID_COUNTER >= Number.MAX_SAFE_INTEGER ? 0 : ++ID_COUNTER;
|
|
900
907
|
function setState(state) {
|
|
@@ -926,8 +933,7 @@ function useFieldState(path, init) {
|
|
|
926
933
|
/**
|
|
927
934
|
* Creates the field value and resolves the initial value
|
|
928
935
|
*/
|
|
929
|
-
function _useFieldValue(path, modelValue,
|
|
930
|
-
const form = shouldInjectForm === true ? injectWithSelf(FormContextKey, undefined) : undefined;
|
|
936
|
+
function _useFieldValue(path, modelValue, form) {
|
|
931
937
|
const modelRef = ref(unref(modelValue));
|
|
932
938
|
function resolveInitialValue() {
|
|
933
939
|
if (!form) {
|
|
@@ -998,8 +1004,7 @@ function _useFieldMeta(currentValue, initialValue, errors) {
|
|
|
998
1004
|
/**
|
|
999
1005
|
* Creates the error message state for the field state
|
|
1000
1006
|
*/
|
|
1001
|
-
function _useFieldErrors(path,
|
|
1002
|
-
const form = shouldInjectForm ? injectWithSelf(FormContextKey, undefined) : undefined;
|
|
1007
|
+
function _useFieldErrors(path, form) {
|
|
1003
1008
|
function normalizeErrors(messages) {
|
|
1004
1009
|
if (!messages) {
|
|
1005
1010
|
return [];
|
|
@@ -1396,13 +1401,14 @@ function useField(name, rules, opts) {
|
|
|
1396
1401
|
return _useField(name, rules, opts);
|
|
1397
1402
|
}
|
|
1398
1403
|
function _useField(name, rules, opts) {
|
|
1399
|
-
const { initialValue: modelValue, validateOnMount, bails, type, checkedValue, label, validateOnValueUpdate, uncheckedValue,
|
|
1400
|
-
const
|
|
1404
|
+
const { initialValue: modelValue, validateOnMount, bails, type, checkedValue, label, validateOnValueUpdate, uncheckedValue, controlled, keepValueOnUnmount, modelPropName, syncVModel, form: controlForm, } = normalizeOptions(unref(name), opts);
|
|
1405
|
+
const injectedForm = controlled ? injectWithSelf(FormContextKey) : undefined;
|
|
1406
|
+
const form = controlForm || injectedForm;
|
|
1401
1407
|
// a flag indicating if the field is about to be removed/unmounted.
|
|
1402
1408
|
let markedForRemoval = false;
|
|
1403
1409
|
const { id, value, initialValue, meta, setState, errors, errorMessage } = useFieldState(name, {
|
|
1404
1410
|
modelValue,
|
|
1405
|
-
|
|
1411
|
+
form,
|
|
1406
1412
|
});
|
|
1407
1413
|
if (syncVModel) {
|
|
1408
1414
|
useVModel({ value, prop: modelPropName, handleChange });
|
|
@@ -1619,20 +1625,20 @@ function normalizeOptions(name, opts) {
|
|
|
1619
1625
|
initialValue: undefined,
|
|
1620
1626
|
validateOnMount: false,
|
|
1621
1627
|
bails: true,
|
|
1622
|
-
rules: '',
|
|
1623
1628
|
label: name,
|
|
1624
1629
|
validateOnValueUpdate: true,
|
|
1625
|
-
standalone: false,
|
|
1626
1630
|
keepValueOnUnmount: undefined,
|
|
1627
1631
|
modelPropName: 'modelValue',
|
|
1628
1632
|
syncVModel: true,
|
|
1633
|
+
controlled: true,
|
|
1629
1634
|
});
|
|
1630
1635
|
if (!opts) {
|
|
1631
1636
|
return defaults();
|
|
1632
1637
|
}
|
|
1633
1638
|
// TODO: Deprecate this in next major release
|
|
1634
1639
|
const checkedValue = 'valueProp' in opts ? opts.valueProp : opts.checkedValue;
|
|
1635
|
-
|
|
1640
|
+
const controlled = 'standalone' in opts ? !opts.standalone : opts.controlled;
|
|
1641
|
+
return Object.assign(Object.assign(Object.assign({}, defaults()), (opts || {})), { controlled: controlled !== null && controlled !== void 0 ? controlled : true, checkedValue });
|
|
1636
1642
|
}
|
|
1637
1643
|
/**
|
|
1638
1644
|
* Extracts the validation rules from a schema
|
|
@@ -1903,6 +1909,7 @@ let FORM_COUNTER = 0;
|
|
|
1903
1909
|
function useForm(opts) {
|
|
1904
1910
|
var _a;
|
|
1905
1911
|
const formId = FORM_COUNTER++;
|
|
1912
|
+
const controlledModelPaths = new Set();
|
|
1906
1913
|
// Prevents fields from double resetting their values, which causes checkboxes to toggle their initial value
|
|
1907
1914
|
// TODO: This won't be needed if we centralize all the state inside the `form` for form inputs
|
|
1908
1915
|
let RESET_LOCK = false;
|
|
@@ -1965,6 +1972,13 @@ function useForm(opts) {
|
|
|
1965
1972
|
const { initialValues, originalInitialValues, setInitialValues } = useFormInitialValues(fieldsByPath, formValues, opts === null || opts === void 0 ? void 0 : opts.initialValues);
|
|
1966
1973
|
// form meta aggregations
|
|
1967
1974
|
const meta = useFormMeta(fieldsByPath, formValues, originalInitialValues, errors);
|
|
1975
|
+
const controlledValues = computed(() => {
|
|
1976
|
+
return [...controlledModelPaths, ...keysOf(fieldsByPath.value)].reduce((acc, path) => {
|
|
1977
|
+
const value = getFromPath(formValues, path);
|
|
1978
|
+
setInPath(acc, path, value);
|
|
1979
|
+
return acc;
|
|
1980
|
+
}, {});
|
|
1981
|
+
});
|
|
1968
1982
|
const schema = opts === null || opts === void 0 ? void 0 : opts.validationSchema;
|
|
1969
1983
|
/**
|
|
1970
1984
|
* Batches validation runs in 5ms batches
|
|
@@ -2014,10 +2028,65 @@ function useForm(opts) {
|
|
|
2014
2028
|
return validation;
|
|
2015
2029
|
}, { valid: formResult.valid, results: {}, errors: {} });
|
|
2016
2030
|
});
|
|
2031
|
+
function makeSubmissionFactory(onlyControlled) {
|
|
2032
|
+
return function submitHandlerFactory(fn, onValidationError) {
|
|
2033
|
+
return function submissionHandler(e) {
|
|
2034
|
+
if (e instanceof Event) {
|
|
2035
|
+
e.preventDefault();
|
|
2036
|
+
e.stopPropagation();
|
|
2037
|
+
}
|
|
2038
|
+
// Touch all fields
|
|
2039
|
+
setTouched(keysOf(fieldsByPath.value).reduce((acc, field) => {
|
|
2040
|
+
acc[field] = true;
|
|
2041
|
+
return acc;
|
|
2042
|
+
}, {}));
|
|
2043
|
+
isSubmitting.value = true;
|
|
2044
|
+
submitCount.value++;
|
|
2045
|
+
return validate()
|
|
2046
|
+
.then(result => {
|
|
2047
|
+
const values = klona(formValues);
|
|
2048
|
+
if (result.valid && typeof fn === 'function') {
|
|
2049
|
+
const controlled = klona(controlledValues.value);
|
|
2050
|
+
return fn(onlyControlled ? controlled : values, {
|
|
2051
|
+
evt: e,
|
|
2052
|
+
controlledValues: controlled,
|
|
2053
|
+
setErrors,
|
|
2054
|
+
setFieldError,
|
|
2055
|
+
setTouched,
|
|
2056
|
+
setFieldTouched,
|
|
2057
|
+
setValues,
|
|
2058
|
+
setFieldValue,
|
|
2059
|
+
resetForm,
|
|
2060
|
+
});
|
|
2061
|
+
}
|
|
2062
|
+
if (!result.valid && typeof onValidationError === 'function') {
|
|
2063
|
+
onValidationError({
|
|
2064
|
+
values,
|
|
2065
|
+
evt: e,
|
|
2066
|
+
errors: result.errors,
|
|
2067
|
+
results: result.results,
|
|
2068
|
+
});
|
|
2069
|
+
}
|
|
2070
|
+
})
|
|
2071
|
+
.then(returnVal => {
|
|
2072
|
+
isSubmitting.value = false;
|
|
2073
|
+
return returnVal;
|
|
2074
|
+
}, err => {
|
|
2075
|
+
isSubmitting.value = false;
|
|
2076
|
+
// re-throw the err so it doesn't go silent
|
|
2077
|
+
throw err;
|
|
2078
|
+
});
|
|
2079
|
+
};
|
|
2080
|
+
};
|
|
2081
|
+
}
|
|
2082
|
+
const handleSubmitImpl = makeSubmissionFactory(false);
|
|
2083
|
+
const handleSubmit = handleSubmitImpl;
|
|
2084
|
+
handleSubmit.withControlled = makeSubmissionFactory(true);
|
|
2017
2085
|
const formCtx = {
|
|
2018
2086
|
formId,
|
|
2019
2087
|
fieldsByPath,
|
|
2020
2088
|
values: formValues,
|
|
2089
|
+
controlledValues,
|
|
2021
2090
|
errorBag,
|
|
2022
2091
|
errors,
|
|
2023
2092
|
schema,
|
|
@@ -2116,7 +2185,7 @@ function useForm(opts) {
|
|
|
2116
2185
|
fieldArrays.forEach(f => f && f.reset());
|
|
2117
2186
|
}
|
|
2118
2187
|
function createModel(path) {
|
|
2119
|
-
const { value } = _useFieldValue(path);
|
|
2188
|
+
const { value } = _useFieldValue(path, undefined, formCtx);
|
|
2120
2189
|
watch(value, () => {
|
|
2121
2190
|
if (!fieldExists(unref(path))) {
|
|
2122
2191
|
validate({ mode: 'validated-only' });
|
|
@@ -2124,6 +2193,7 @@ function useForm(opts) {
|
|
|
2124
2193
|
}, {
|
|
2125
2194
|
deep: true,
|
|
2126
2195
|
});
|
|
2196
|
+
controlledModelPaths.add(unref(path));
|
|
2127
2197
|
return value;
|
|
2128
2198
|
}
|
|
2129
2199
|
function useFieldModel(path) {
|
|
@@ -2340,55 +2410,6 @@ function useForm(opts) {
|
|
|
2340
2410
|
}
|
|
2341
2411
|
return fieldInstance.validate();
|
|
2342
2412
|
}
|
|
2343
|
-
function handleSubmit(fn, onValidationError) {
|
|
2344
|
-
return function submissionHandler(e) {
|
|
2345
|
-
if (e instanceof Event) {
|
|
2346
|
-
e.preventDefault();
|
|
2347
|
-
e.stopPropagation();
|
|
2348
|
-
}
|
|
2349
|
-
// Touch all fields
|
|
2350
|
-
setTouched(keysOf(fieldsByPath.value).reduce((acc, field) => {
|
|
2351
|
-
acc[field] = true;
|
|
2352
|
-
return acc;
|
|
2353
|
-
}, {}));
|
|
2354
|
-
isSubmitting.value = true;
|
|
2355
|
-
submitCount.value++;
|
|
2356
|
-
return validate()
|
|
2357
|
-
.then(result => {
|
|
2358
|
-
if (result.valid && typeof fn === 'function') {
|
|
2359
|
-
return fn(klona(formValues), {
|
|
2360
|
-
evt: e,
|
|
2361
|
-
setErrors,
|
|
2362
|
-
setFieldError,
|
|
2363
|
-
setTouched,
|
|
2364
|
-
setFieldTouched,
|
|
2365
|
-
setValues,
|
|
2366
|
-
setFieldValue,
|
|
2367
|
-
resetForm,
|
|
2368
|
-
});
|
|
2369
|
-
}
|
|
2370
|
-
if (!result.valid && typeof onValidationError === 'function') {
|
|
2371
|
-
onValidationError({
|
|
2372
|
-
values: klona(formValues),
|
|
2373
|
-
evt: e,
|
|
2374
|
-
errors: result.errors,
|
|
2375
|
-
results: result.results,
|
|
2376
|
-
});
|
|
2377
|
-
}
|
|
2378
|
-
})
|
|
2379
|
-
.then(returnVal => {
|
|
2380
|
-
isSubmitting.value = false;
|
|
2381
|
-
return returnVal;
|
|
2382
|
-
}, err => {
|
|
2383
|
-
isSubmitting.value = false;
|
|
2384
|
-
// re-throw the err so it doesn't go silent
|
|
2385
|
-
throw err;
|
|
2386
|
-
});
|
|
2387
|
-
};
|
|
2388
|
-
}
|
|
2389
|
-
function setFieldInitialValue(path, value) {
|
|
2390
|
-
setInPath(initialValues.value, path, klona(value));
|
|
2391
|
-
}
|
|
2392
2413
|
function unsetInitialValue(path) {
|
|
2393
2414
|
unsetPath(initialValues.value, path);
|
|
2394
2415
|
}
|
|
@@ -2402,6 +2423,9 @@ function useForm(opts) {
|
|
|
2402
2423
|
setInPath(originalInitialValues.value, path, klona(value));
|
|
2403
2424
|
}
|
|
2404
2425
|
}
|
|
2426
|
+
function setFieldInitialValue(path, value) {
|
|
2427
|
+
setInPath(initialValues.value, path, klona(value));
|
|
2428
|
+
}
|
|
2405
2429
|
async function _validateSchema() {
|
|
2406
2430
|
const schemaValue = unref(schema);
|
|
2407
2431
|
if (!schemaValue) {
|
|
@@ -2453,26 +2477,7 @@ function useForm(opts) {
|
|
|
2453
2477
|
deep: true,
|
|
2454
2478
|
});
|
|
2455
2479
|
}
|
|
2456
|
-
return {
|
|
2457
|
-
errors,
|
|
2458
|
-
meta,
|
|
2459
|
-
values: formValues,
|
|
2460
|
-
isSubmitting,
|
|
2461
|
-
submitCount,
|
|
2462
|
-
validate,
|
|
2463
|
-
validateField,
|
|
2464
|
-
handleReset: () => resetForm(),
|
|
2465
|
-
resetForm,
|
|
2466
|
-
handleSubmit,
|
|
2467
|
-
submitForm,
|
|
2468
|
-
setFieldError,
|
|
2469
|
-
setErrors,
|
|
2470
|
-
setFieldValue,
|
|
2471
|
-
setValues,
|
|
2472
|
-
setFieldTouched,
|
|
2473
|
-
setTouched,
|
|
2474
|
-
useFieldModel,
|
|
2475
|
-
};
|
|
2480
|
+
return Object.assign(Object.assign({}, formCtx), { handleReset: () => resetForm(), submitForm });
|
|
2476
2481
|
}
|
|
2477
2482
|
/**
|
|
2478
2483
|
* Manages form meta aggregation
|
|
@@ -2632,7 +2637,7 @@ const FormImpl = defineComponent({
|
|
|
2632
2637
|
const initialValues = toRef(props, 'initialValues');
|
|
2633
2638
|
const validationSchema = toRef(props, 'validationSchema');
|
|
2634
2639
|
const keepValues = toRef(props, 'keepValues');
|
|
2635
|
-
const { errors, values, meta, isSubmitting, submitCount, validate, validateField, handleReset, resetForm, handleSubmit, setErrors, setFieldError, setFieldValue, setValues, setFieldTouched, setTouched, } = useForm({
|
|
2640
|
+
const { errors, values, meta, isSubmitting, submitCount, controlledValues, validate, validateField, handleReset, resetForm, handleSubmit, setErrors, setFieldError, setFieldValue, setValues, setFieldTouched, setTouched, } = useForm({
|
|
2636
2641
|
validationSchema: validationSchema.value ? validationSchema : undefined,
|
|
2637
2642
|
initialValues,
|
|
2638
2643
|
initialErrors: props.initialErrors,
|
|
@@ -2667,6 +2672,7 @@ const FormImpl = defineComponent({
|
|
|
2667
2672
|
values: values,
|
|
2668
2673
|
isSubmitting: isSubmitting.value,
|
|
2669
2674
|
submitCount: submitCount.value,
|
|
2675
|
+
controlledValues: controlledValues.value,
|
|
2670
2676
|
validate,
|
|
2671
2677
|
validateField,
|
|
2672
2678
|
handleSubmit: handleScopedSlotSubmit,
|
package/dist/vee-validate.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* vee-validate v4.
|
|
2
|
+
* vee-validate v4.7.0
|
|
3
3
|
* (c) 2022 Abdelrahman Awad
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
@@ -53,6 +53,7 @@
|
|
|
53
53
|
const FieldContextKey = Symbol('vee-validate-field-instance');
|
|
54
54
|
const IS_ABSENT = Symbol('Default empty value');
|
|
55
55
|
|
|
56
|
+
const isClient = typeof window !== 'undefined';
|
|
56
57
|
function isLocator(value) {
|
|
57
58
|
return isCallable(value) && !!value.__locatorRef;
|
|
58
59
|
}
|
|
@@ -166,7 +167,7 @@
|
|
|
166
167
|
}
|
|
167
168
|
// We added this part for file comparison, arguably a little naive but should work for most cases.
|
|
168
169
|
// #3911
|
|
169
|
-
if (a
|
|
170
|
+
if (isFile(a) && isFile(b)) {
|
|
170
171
|
if (a.size !== b.size)
|
|
171
172
|
return false;
|
|
172
173
|
if (a.name !== b.name)
|
|
@@ -219,6 +220,12 @@
|
|
|
219
220
|
// true if both NaN, false otherwise
|
|
220
221
|
// eslint-disable-next-line no-self-compare
|
|
221
222
|
return a !== a && b !== b;
|
|
223
|
+
}
|
|
224
|
+
function isFile(a) {
|
|
225
|
+
if (!isClient) {
|
|
226
|
+
return false;
|
|
227
|
+
}
|
|
228
|
+
return a instanceof File;
|
|
222
229
|
}
|
|
223
230
|
|
|
224
231
|
// do not edit .js files directly - edit src/index.jst
|
|
@@ -878,8 +885,8 @@
|
|
|
878
885
|
|
|
879
886
|
let ID_COUNTER = 0;
|
|
880
887
|
function useFieldState(path, init) {
|
|
881
|
-
const { value, initialValue, setInitialValue } = _useFieldValue(path, init.modelValue,
|
|
882
|
-
const { errorMessage, errors, setErrors } = _useFieldErrors(path,
|
|
888
|
+
const { value, initialValue, setInitialValue } = _useFieldValue(path, init.modelValue, init.form);
|
|
889
|
+
const { errorMessage, errors, setErrors } = _useFieldErrors(path, init.form);
|
|
883
890
|
const meta = _useFieldMeta(value, initialValue, errors);
|
|
884
891
|
const id = ID_COUNTER >= Number.MAX_SAFE_INTEGER ? 0 : ++ID_COUNTER;
|
|
885
892
|
function setState(state) {
|
|
@@ -911,8 +918,7 @@
|
|
|
911
918
|
/**
|
|
912
919
|
* Creates the field value and resolves the initial value
|
|
913
920
|
*/
|
|
914
|
-
function _useFieldValue(path, modelValue,
|
|
915
|
-
const form = shouldInjectForm === true ? injectWithSelf(FormContextKey, undefined) : undefined;
|
|
921
|
+
function _useFieldValue(path, modelValue, form) {
|
|
916
922
|
const modelRef = vue.ref(vue.unref(modelValue));
|
|
917
923
|
function resolveInitialValue() {
|
|
918
924
|
if (!form) {
|
|
@@ -983,8 +989,7 @@
|
|
|
983
989
|
/**
|
|
984
990
|
* Creates the error message state for the field state
|
|
985
991
|
*/
|
|
986
|
-
function _useFieldErrors(path,
|
|
987
|
-
const form = shouldInjectForm ? injectWithSelf(FormContextKey, undefined) : undefined;
|
|
992
|
+
function _useFieldErrors(path, form) {
|
|
988
993
|
function normalizeErrors(messages) {
|
|
989
994
|
if (!messages) {
|
|
990
995
|
return [];
|
|
@@ -1021,13 +1026,14 @@
|
|
|
1021
1026
|
return _useField(name, rules, opts);
|
|
1022
1027
|
}
|
|
1023
1028
|
function _useField(name, rules, opts) {
|
|
1024
|
-
const { initialValue: modelValue, validateOnMount, bails, type, checkedValue, label, validateOnValueUpdate, uncheckedValue,
|
|
1025
|
-
const
|
|
1029
|
+
const { initialValue: modelValue, validateOnMount, bails, type, checkedValue, label, validateOnValueUpdate, uncheckedValue, controlled, keepValueOnUnmount, modelPropName, syncVModel, form: controlForm, } = normalizeOptions(vue.unref(name), opts);
|
|
1030
|
+
const injectedForm = controlled ? injectWithSelf(FormContextKey) : undefined;
|
|
1031
|
+
const form = controlForm || injectedForm;
|
|
1026
1032
|
// a flag indicating if the field is about to be removed/unmounted.
|
|
1027
1033
|
let markedForRemoval = false;
|
|
1028
1034
|
const { id, value, initialValue, meta, setState, errors, errorMessage } = useFieldState(name, {
|
|
1029
1035
|
modelValue,
|
|
1030
|
-
|
|
1036
|
+
form,
|
|
1031
1037
|
});
|
|
1032
1038
|
if (syncVModel) {
|
|
1033
1039
|
useVModel({ value, prop: modelPropName, handleChange });
|
|
@@ -1235,20 +1241,20 @@
|
|
|
1235
1241
|
initialValue: undefined,
|
|
1236
1242
|
validateOnMount: false,
|
|
1237
1243
|
bails: true,
|
|
1238
|
-
rules: '',
|
|
1239
1244
|
label: name,
|
|
1240
1245
|
validateOnValueUpdate: true,
|
|
1241
|
-
standalone: false,
|
|
1242
1246
|
keepValueOnUnmount: undefined,
|
|
1243
1247
|
modelPropName: 'modelValue',
|
|
1244
1248
|
syncVModel: true,
|
|
1249
|
+
controlled: true,
|
|
1245
1250
|
});
|
|
1246
1251
|
if (!opts) {
|
|
1247
1252
|
return defaults();
|
|
1248
1253
|
}
|
|
1249
1254
|
// TODO: Deprecate this in next major release
|
|
1250
1255
|
const checkedValue = 'valueProp' in opts ? opts.valueProp : opts.checkedValue;
|
|
1251
|
-
|
|
1256
|
+
const controlled = 'standalone' in opts ? !opts.standalone : opts.controlled;
|
|
1257
|
+
return Object.assign(Object.assign(Object.assign({}, defaults()), (opts || {})), { controlled: controlled !== null && controlled !== void 0 ? controlled : true, checkedValue });
|
|
1252
1258
|
}
|
|
1253
1259
|
/**
|
|
1254
1260
|
* Extracts the validation rules from a schema
|
|
@@ -1516,6 +1522,7 @@
|
|
|
1516
1522
|
function useForm(opts) {
|
|
1517
1523
|
var _a;
|
|
1518
1524
|
const formId = FORM_COUNTER++;
|
|
1525
|
+
const controlledModelPaths = new Set();
|
|
1519
1526
|
// Prevents fields from double resetting their values, which causes checkboxes to toggle their initial value
|
|
1520
1527
|
// TODO: This won't be needed if we centralize all the state inside the `form` for form inputs
|
|
1521
1528
|
let RESET_LOCK = false;
|
|
@@ -1578,6 +1585,13 @@
|
|
|
1578
1585
|
const { initialValues, originalInitialValues, setInitialValues } = useFormInitialValues(fieldsByPath, formValues, opts === null || opts === void 0 ? void 0 : opts.initialValues);
|
|
1579
1586
|
// form meta aggregations
|
|
1580
1587
|
const meta = useFormMeta(fieldsByPath, formValues, originalInitialValues, errors);
|
|
1588
|
+
const controlledValues = vue.computed(() => {
|
|
1589
|
+
return [...controlledModelPaths, ...keysOf(fieldsByPath.value)].reduce((acc, path) => {
|
|
1590
|
+
const value = getFromPath(formValues, path);
|
|
1591
|
+
setInPath(acc, path, value);
|
|
1592
|
+
return acc;
|
|
1593
|
+
}, {});
|
|
1594
|
+
});
|
|
1581
1595
|
const schema = opts === null || opts === void 0 ? void 0 : opts.validationSchema;
|
|
1582
1596
|
/**
|
|
1583
1597
|
* Batches validation runs in 5ms batches
|
|
@@ -1627,10 +1641,65 @@
|
|
|
1627
1641
|
return validation;
|
|
1628
1642
|
}, { valid: formResult.valid, results: {}, errors: {} });
|
|
1629
1643
|
});
|
|
1644
|
+
function makeSubmissionFactory(onlyControlled) {
|
|
1645
|
+
return function submitHandlerFactory(fn, onValidationError) {
|
|
1646
|
+
return function submissionHandler(e) {
|
|
1647
|
+
if (e instanceof Event) {
|
|
1648
|
+
e.preventDefault();
|
|
1649
|
+
e.stopPropagation();
|
|
1650
|
+
}
|
|
1651
|
+
// Touch all fields
|
|
1652
|
+
setTouched(keysOf(fieldsByPath.value).reduce((acc, field) => {
|
|
1653
|
+
acc[field] = true;
|
|
1654
|
+
return acc;
|
|
1655
|
+
}, {}));
|
|
1656
|
+
isSubmitting.value = true;
|
|
1657
|
+
submitCount.value++;
|
|
1658
|
+
return validate()
|
|
1659
|
+
.then(result => {
|
|
1660
|
+
const values = klona(formValues);
|
|
1661
|
+
if (result.valid && typeof fn === 'function') {
|
|
1662
|
+
const controlled = klona(controlledValues.value);
|
|
1663
|
+
return fn(onlyControlled ? controlled : values, {
|
|
1664
|
+
evt: e,
|
|
1665
|
+
controlledValues: controlled,
|
|
1666
|
+
setErrors,
|
|
1667
|
+
setFieldError,
|
|
1668
|
+
setTouched,
|
|
1669
|
+
setFieldTouched,
|
|
1670
|
+
setValues,
|
|
1671
|
+
setFieldValue,
|
|
1672
|
+
resetForm,
|
|
1673
|
+
});
|
|
1674
|
+
}
|
|
1675
|
+
if (!result.valid && typeof onValidationError === 'function') {
|
|
1676
|
+
onValidationError({
|
|
1677
|
+
values,
|
|
1678
|
+
evt: e,
|
|
1679
|
+
errors: result.errors,
|
|
1680
|
+
results: result.results,
|
|
1681
|
+
});
|
|
1682
|
+
}
|
|
1683
|
+
})
|
|
1684
|
+
.then(returnVal => {
|
|
1685
|
+
isSubmitting.value = false;
|
|
1686
|
+
return returnVal;
|
|
1687
|
+
}, err => {
|
|
1688
|
+
isSubmitting.value = false;
|
|
1689
|
+
// re-throw the err so it doesn't go silent
|
|
1690
|
+
throw err;
|
|
1691
|
+
});
|
|
1692
|
+
};
|
|
1693
|
+
};
|
|
1694
|
+
}
|
|
1695
|
+
const handleSubmitImpl = makeSubmissionFactory(false);
|
|
1696
|
+
const handleSubmit = handleSubmitImpl;
|
|
1697
|
+
handleSubmit.withControlled = makeSubmissionFactory(true);
|
|
1630
1698
|
const formCtx = {
|
|
1631
1699
|
formId,
|
|
1632
1700
|
fieldsByPath,
|
|
1633
1701
|
values: formValues,
|
|
1702
|
+
controlledValues,
|
|
1634
1703
|
errorBag,
|
|
1635
1704
|
errors,
|
|
1636
1705
|
schema,
|
|
@@ -1729,7 +1798,7 @@
|
|
|
1729
1798
|
fieldArrays.forEach(f => f && f.reset());
|
|
1730
1799
|
}
|
|
1731
1800
|
function createModel(path) {
|
|
1732
|
-
const { value } = _useFieldValue(path);
|
|
1801
|
+
const { value } = _useFieldValue(path, undefined, formCtx);
|
|
1733
1802
|
vue.watch(value, () => {
|
|
1734
1803
|
if (!fieldExists(vue.unref(path))) {
|
|
1735
1804
|
validate({ mode: 'validated-only' });
|
|
@@ -1737,6 +1806,7 @@
|
|
|
1737
1806
|
}, {
|
|
1738
1807
|
deep: true,
|
|
1739
1808
|
});
|
|
1809
|
+
controlledModelPaths.add(vue.unref(path));
|
|
1740
1810
|
return value;
|
|
1741
1811
|
}
|
|
1742
1812
|
function useFieldModel(path) {
|
|
@@ -1953,55 +2023,6 @@
|
|
|
1953
2023
|
}
|
|
1954
2024
|
return fieldInstance.validate();
|
|
1955
2025
|
}
|
|
1956
|
-
function handleSubmit(fn, onValidationError) {
|
|
1957
|
-
return function submissionHandler(e) {
|
|
1958
|
-
if (e instanceof Event) {
|
|
1959
|
-
e.preventDefault();
|
|
1960
|
-
e.stopPropagation();
|
|
1961
|
-
}
|
|
1962
|
-
// Touch all fields
|
|
1963
|
-
setTouched(keysOf(fieldsByPath.value).reduce((acc, field) => {
|
|
1964
|
-
acc[field] = true;
|
|
1965
|
-
return acc;
|
|
1966
|
-
}, {}));
|
|
1967
|
-
isSubmitting.value = true;
|
|
1968
|
-
submitCount.value++;
|
|
1969
|
-
return validate()
|
|
1970
|
-
.then(result => {
|
|
1971
|
-
if (result.valid && typeof fn === 'function') {
|
|
1972
|
-
return fn(klona(formValues), {
|
|
1973
|
-
evt: e,
|
|
1974
|
-
setErrors,
|
|
1975
|
-
setFieldError,
|
|
1976
|
-
setTouched,
|
|
1977
|
-
setFieldTouched,
|
|
1978
|
-
setValues,
|
|
1979
|
-
setFieldValue,
|
|
1980
|
-
resetForm,
|
|
1981
|
-
});
|
|
1982
|
-
}
|
|
1983
|
-
if (!result.valid && typeof onValidationError === 'function') {
|
|
1984
|
-
onValidationError({
|
|
1985
|
-
values: klona(formValues),
|
|
1986
|
-
evt: e,
|
|
1987
|
-
errors: result.errors,
|
|
1988
|
-
results: result.results,
|
|
1989
|
-
});
|
|
1990
|
-
}
|
|
1991
|
-
})
|
|
1992
|
-
.then(returnVal => {
|
|
1993
|
-
isSubmitting.value = false;
|
|
1994
|
-
return returnVal;
|
|
1995
|
-
}, err => {
|
|
1996
|
-
isSubmitting.value = false;
|
|
1997
|
-
// re-throw the err so it doesn't go silent
|
|
1998
|
-
throw err;
|
|
1999
|
-
});
|
|
2000
|
-
};
|
|
2001
|
-
}
|
|
2002
|
-
function setFieldInitialValue(path, value) {
|
|
2003
|
-
setInPath(initialValues.value, path, klona(value));
|
|
2004
|
-
}
|
|
2005
2026
|
function unsetInitialValue(path) {
|
|
2006
2027
|
unsetPath(initialValues.value, path);
|
|
2007
2028
|
}
|
|
@@ -2015,6 +2036,9 @@
|
|
|
2015
2036
|
setInPath(originalInitialValues.value, path, klona(value));
|
|
2016
2037
|
}
|
|
2017
2038
|
}
|
|
2039
|
+
function setFieldInitialValue(path, value) {
|
|
2040
|
+
setInPath(initialValues.value, path, klona(value));
|
|
2041
|
+
}
|
|
2018
2042
|
async function _validateSchema() {
|
|
2019
2043
|
const schemaValue = vue.unref(schema);
|
|
2020
2044
|
if (!schemaValue) {
|
|
@@ -2060,26 +2084,7 @@
|
|
|
2060
2084
|
}
|
|
2061
2085
|
// Provide injections
|
|
2062
2086
|
vue.provide(FormContextKey, formCtx);
|
|
2063
|
-
return {
|
|
2064
|
-
errors,
|
|
2065
|
-
meta,
|
|
2066
|
-
values: formValues,
|
|
2067
|
-
isSubmitting,
|
|
2068
|
-
submitCount,
|
|
2069
|
-
validate,
|
|
2070
|
-
validateField,
|
|
2071
|
-
handleReset: () => resetForm(),
|
|
2072
|
-
resetForm,
|
|
2073
|
-
handleSubmit,
|
|
2074
|
-
submitForm,
|
|
2075
|
-
setFieldError,
|
|
2076
|
-
setErrors,
|
|
2077
|
-
setFieldValue,
|
|
2078
|
-
setValues,
|
|
2079
|
-
setFieldTouched,
|
|
2080
|
-
setTouched,
|
|
2081
|
-
useFieldModel,
|
|
2082
|
-
};
|
|
2087
|
+
return Object.assign(Object.assign({}, formCtx), { handleReset: () => resetForm(), submitForm });
|
|
2083
2088
|
}
|
|
2084
2089
|
/**
|
|
2085
2090
|
* Manages form meta aggregation
|
|
@@ -2239,7 +2244,7 @@
|
|
|
2239
2244
|
const initialValues = vue.toRef(props, 'initialValues');
|
|
2240
2245
|
const validationSchema = vue.toRef(props, 'validationSchema');
|
|
2241
2246
|
const keepValues = vue.toRef(props, 'keepValues');
|
|
2242
|
-
const { errors, values, meta, isSubmitting, submitCount, validate, validateField, handleReset, resetForm, handleSubmit, setErrors, setFieldError, setFieldValue, setValues, setFieldTouched, setTouched, } = useForm({
|
|
2247
|
+
const { errors, values, meta, isSubmitting, submitCount, controlledValues, validate, validateField, handleReset, resetForm, handleSubmit, setErrors, setFieldError, setFieldValue, setValues, setFieldTouched, setTouched, } = useForm({
|
|
2243
2248
|
validationSchema: validationSchema.value ? validationSchema : undefined,
|
|
2244
2249
|
initialValues,
|
|
2245
2250
|
initialErrors: props.initialErrors,
|
|
@@ -2274,6 +2279,7 @@
|
|
|
2274
2279
|
values: values,
|
|
2275
2280
|
isSubmitting: isSubmitting.value,
|
|
2276
2281
|
submitCount: submitCount.value,
|
|
2282
|
+
controlledValues: controlledValues.value,
|
|
2277
2283
|
validate,
|
|
2278
2284
|
validateField,
|
|
2279
2285
|
handleSubmit: handleScopedSlotSubmit,
|
package/dist/vee-validate.min.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* vee-validate v4.
|
|
2
|
+
* vee-validate v4.7.0
|
|
3
3
|
* (c) 2022 Abdelrahman Awad
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
6
|
-
!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 i(e){return Number(e)>=0}const u={};const o=Symbol("vee-validate-form"),l=Symbol("vee-validate-field-instance"),s=Symbol("Default empty value");function d(e){return n(e)&&!!e.__locatorRef}function c(e){return!!e&&n(e.validate)}function f(e){return"checkbox"===e||"radio"===e}function v(e){return Array.isArray(e)?0===e.length:a(e)&&0===Object.keys(e).length}function p(e){return/^\[.+\]$/i.test(e)}function m(e){return"SELECT"===e.tagName}function h(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&&!f(t.type)}function y(e){return g(e)&&e.target&&"submit"in e.target}function g(e){return!!e&&(!!("undefined"!=typeof Event&&n(Event)&&e instanceof Event)||!(!e||!e.srcElement))}function b(e,t){return t in e&&e[t]!==s}function O(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(!O(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(!O(r[1],t.get(r[0])))return!1;return!0}if(e instanceof File&&t instanceof File)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 i=a[r];if(!O(e[i],t[i]))return!1}return!0}return e!=e&&t!=t}var V=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;var r,a,i;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(a=r;0!=a--;)if(!e(t[a],n[a]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(i=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(a=r;0!=a--;)if(!Object.prototype.hasOwnProperty.call(n,i[a]))return!1;for(a=r;0!=a--;){var u=i[a];if(!e(t[u],n[u]))return!1}return!0}return t!=t&&n!=n};function F(e){return p(e)?e.replace(/\[|\]/gi,""):e}function A(e,t,n){if(!e)return n;if(p(t))return e[F(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 j(e,t,n){if(p(t))return void(e[F(t)]=n);const a=t.split(/\.|\[(\d+)\]/).filter(Boolean);let u=e;for(let e=0;e<a.length;e++){if(e===a.length-1)return void(u[a[e]]=n);a[e]in u&&!r(u[a[e]])||(u[a[e]]=i(a[e+1])?[]:{}),u=u[a[e]]}}function w(e,t){Array.isArray(e)&&i(t)?e.splice(Number(t),1):a(e)&&delete e[t]}function E(e,t){if(p(t))return void delete e[F(t)];const n=t.split(/\.|\[(\d+)\]/).filter(Boolean);let a=e;for(let e=0;e<n.length;e++){if(e===n.length-1){w(a,n[e]);break}if(!(n[e]in a)||r(a[n[e]]))break;a=a[n[e]]}const i=n.map(((t,r)=>A(e,n.slice(0,r).join("."))));for(let t=i.length-1;t>=0;t--)v(i[t])&&(0!==t?w(i[t-1],n[t-1]):w(e,n[0]))}function S(e){return Object.keys(e)}function k(e,n){const r=t.getCurrentInstance();return(null==r?void 0:r.provides[e])||t.inject(e,n)}function B(e){t.warn(`[vee-validate]: ${e}`)}function I(e){return Array.isArray(e)?e[0]:e}function M(e,t,n){if(Array.isArray(e)){const n=[...e],r=n.findIndex((e=>V(e,t)));return r>=0?n.splice(r,1):n.push(t),n}return V(e,t)?n:t}function T(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 C(e,t){return a(t)&&t.number?function(e){const t=parseFloat(e);return isNaN(t)?e:t}(e):e}function R(e,t){let n;return async function(...r){const a=e(...r);n=a;const i=await a;return a!==n||(n=void 0,t(i,r)),i}}const x=(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 P(e){if(N(e))return e._value}function N(e){return"_value"in e}function _(e){if(!g(e))return e;const t=e.target;if(f(t.type)&&N(t))return P(t);if("file"===t.type&&t.files){const e=Array.from(t.files);return t.multiple?e:e[0]}if(m(n=t)&&n.multiple)return Array.from(t.options).filter((e=>e.selected&&!e.disabled)).map(P);var n;if(m(t)){const e=Array.from(t.options).find((e=>e.selected));return e?P(e):t.value}return t.value}function U(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]=$(r)),t}),t):"string"!=typeof e?t:e.split("|").reduce(((e,t)=>{const n=D(t);return n.name?(e[n.name]=$(n.params),e):e}),t):t}function $(e){const t=e=>"string"==typeof e&&"@"===e[0]?function(e){const t=t=>A(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 D=e=>{let t=[];const n=e.split(":")[0];return e.includes(":")&&(t=e.split(":").slice(1).join(":").split(",")),{name:n,params:t}};let z=Object.assign({},{generateMessage:({field:e})=>`${e} is not valid.`,bails:!0,validateOnBlur:!0,validateOnChange:!0,validateOnInput:!1,validateOnModelUpdate:!0});const q=()=>z,L=e=>{z=Object.assign(Object.assign({},z),e)};async function K(e,t,r={}){const a=null==r?void 0:r.bails,i={name:(null==r?void 0:r.name)||"{field}",rules:t,bails:null==a||a,formData:(null==r?void 0:r.values)||{}},u=await async function(e,t){if(c(e.rules))return async function(e,t,n){var r;return{errors:await t.validate(e,{abortEarly:null===(r=n.bails)||void 0===r||r}).then((()=>[])).catch((e=>{if("ValidationError"===e.name)return e.errors;throw e}))}}(t,e.rules,{bails:e.bails});if(n(e.rules)||Array.isArray(e.rules)){const n={field:e.name,form:e.formData,value:t},r=Array.isArray(e.rules)?e.rules:[e.rules],a=r.length,i=[];for(let u=0;u<a;u++){const a=r[u],o=await a(t,n);if("string"!=typeof o&&o)continue;const l="string"==typeof o?o:X(n);if(i.push(l),e.bails)return{errors:i}}return{errors:i}}const r=Object.assign(Object.assign({},e),{rules:U(e.rules)}),a=[],i=Object.keys(r.rules),u=i.length;for(let n=0;n<u;n++){const u=i[n],o=await G(r,t,{name:u,params:r.rules[u]});if(o.error&&(a.push(o.error),e.bails))return{errors:a}}return{errors:a}}(i,e),o=u.errors;return{errors:o,valid:!o.length}}async function G(e,t,n){const r=(a=n.name,u[a]);var a;if(!r)throw new Error(`No such validator '${n.name}' exists.`);const i=function(e,t){const n=e=>d(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),o={field:e.name,value:t,form:e.formData,rule:Object.assign(Object.assign({},n),{params:i})},l=await r(t,i,o);return"string"==typeof l?{error:l}:{error:l?void 0:X(o)}}function X(e){const t=q().generateMessage;return t?t(e):"Field is invalid"}async function H(e,t,n){const r=S(e).map((async r=>{var a,i,u;const o=await K(A(t,r),e[r],{name:(null===(a=null==n?void 0:n.names)||void 0===a?void 0:a[r])||r,values:t,bails:null===(u=null===(i=null==n?void 0:n.bailsMap)||void 0===i?void 0:i[r])||void 0===u||u});return Object.assign(Object.assign({},o),{path:r})}));let a=!0;const i=await Promise.all(r),u={},o={};for(const e of i)u[e.path]={valid:e.valid,errors:e.errors},e.valid||(a=!1,o[e.path]=e.errors[0]);return{valid:a,results:u,errors:o}}function J(e,t,n){"object"==typeof n.value&&(n.value=Q(n.value)),n.enumerable&&!n.get&&!n.set&&n.configurable&&n.writable&&"__proto__"!==t?e[t]=n.value:Object.defineProperty(e,t,n)}function Q(e){if("object"!=typeof e)return e;var t,n,r,a=0,i=Object.prototype.toString.call(e);if("[object Object]"===i?r=Object.create(e.__proto__||null):"[object Array]"===i?r=Array(e.length):"[object Set]"===i?(r=new Set,e.forEach((function(e){r.add(Q(e))}))):"[object Map]"===i?(r=new Map,e.forEach((function(e,t){r.set(Q(t),Q(e))}))):"[object Date]"===i?r=new Date(+e):"[object RegExp]"===i?r=new RegExp(e.source,e.flags):"[object DataView]"===i?r=new e.constructor(Q(e.buffer)):"[object ArrayBuffer]"===i?r=e.slice(0):"Array]"===i.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}let W=0;function Y(e,n){const{value:r,initialValue:a,setInitialValue:i}=Z(e,n.modelValue,!n.standalone),{errorMessage:u,errors:l,setErrors:s}=function(e,n){const r=n?k(o,void 0):void 0;function a(e){return e?Array.isArray(e)?e:[e]:[]}if(!r){const e=t.ref([]);return{errors:e,errorMessage:t.computed((()=>e.value[0])),setErrors:t=>{e.value=a(t)}}}const i=t.computed((()=>r.errorBag.value[t.unref(e)]||[]));return{errors:i,errorMessage:t.computed((()=>i.value[0])),setErrors:n=>{r.setFieldErrorBag(t.unref(e),a(n))}}}(e,!n.standalone),d=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((()=>!O(t.unref(e),t.unref(n))))});return t.watch(r,(e=>{a.valid=!e.length}),{immediate:!0,flush:"sync"}),a}(r,a,l);return{id:W>=Number.MAX_SAFE_INTEGER?0:++W,path:e,value:r,initialValue:a,meta:d,errors:l,errorMessage:u,setState:function(e){var t;"value"in e&&(r.value=e.value),"errors"in e&&s(e.errors),"touched"in e&&(d.touched=null!==(t=e.touched)&&void 0!==t?t:d.touched),"initialValue"in e&&i(e.initialValue)}}}function Z(e,n,r=!0){const a=!0===r?k(o,void 0):void 0,i=t.ref(t.unref(n));function u(){return a?A(a.meta.value.initialValues,t.unref(e),t.unref(i)):t.unref(i)}function l(n){a?a.stageInitialValue(t.unref(e),n,!0):i.value=n}const s=t.computed(u);if(!a){return{value:t.ref(u()),initialValue:s,setInitialValue:l}}const d=n?t.unref(n):A(a.values,t.unref(e),t.unref(s));a.stageInitialValue(t.unref(e),d,!0);return{value:t.computed({get:()=>A(a.values,t.unref(e)),set(n){a.setFieldValue(t.unref(e),n)}}),initialValue:s,setInitialValue:l}}function ee(e,n,r){return f(null==r?void 0:r.type)?function(e,n,r){const a=(null==r?void 0:r.standalone)?void 0:k(o),i=null==r?void 0:r.checkedValue,u=null==r?void 0:r.uncheckedValue;function l(e){const n=e.handleChange,r=t.computed((()=>{const n=t.unref(e.value),r=t.unref(i);return Array.isArray(n)?n.findIndex((e=>O(e,r)))>=0:O(r,n)}));function o(o,l=!0){var s;if(r.value===(null===(s=null==o?void 0:o.target)||void 0===s?void 0:s.checked))return void(l&&e.validate());let d=_(o);a||(d=M(t.unref(e.value),t.unref(i),t.unref(u))),n(d,l)}return Object.assign(Object.assign({},e),{checked:r,checkedValue:i,uncheckedValue:u,handleChange:o})}return l(te(e,n,r))}(e,n,r):te(e,n,r)}function te(e,r,a){const{initialValue:i,validateOnMount:u,bails:f,type:v,checkedValue:p,label:m,validateOnValueUpdate:h,uncheckedValue:y,standalone:g,keepValueOnUnmount:b,modelPropName:V,syncVModel:F}=function(e,t){const n=()=>({initialValue:void 0,validateOnMount:!1,bails:!0,rules:"",label:e,validateOnValueUpdate:!0,standalone:!1,keepValueOnUnmount:void 0,modelPropName:"modelValue",syncVModel:!0});if(!t)return n();const r="valueProp"in t?t.valueProp:t.checkedValue;return Object.assign(Object.assign(Object.assign({},n()),t||{}),{checkedValue:r})}(t.unref(e),a),j=g?void 0:k(o);let w=!1;const{id:E,value:B,initialValue:I,meta:M,setState:T,errors:x,errorMessage:P}=Y(e,{modelValue:i,standalone:g});F&&function({prop:e,value:n,handleChange:r}){const a=t.getCurrentInstance();if(!a)return;const i=e||"modelValue",u=`update:${i}`;if(!(i in a.props))return;t.watch(n,(e=>{O(e,ne(a,i))||a.emit(u,e)})),t.watch((()=>ne(a,i)),(e=>{if(e===s&&void 0===n.value)return;const t=e===s?void 0:e;O(t,C(n.value,a.props.modelModifiers))||r(t)}))}({value:B,prop:V,handleChange:q});const N=t.computed((()=>{let a=t.unref(r);const i=t.unref(null==j?void 0:j.schema);return i&&!c(i)&&(a=function(e,t){if(!e)return;return e[t]}(i,t.unref(e))||a),c(a)||n(a)||Array.isArray(a)?a:U(a)}));async function $(n){var r,a;return(null==j?void 0:j.validateSchema)?null!==(r=(await j.validateSchema(n)).results[t.unref(e)])&&void 0!==r?r:{valid:!0,errors:[]}:K(B.value,N.value,{name:t.unref(m)||t.unref(e),values:null!==(a=null==j?void 0:j.values)&&void 0!==a?a:{},bails:f})}const D=R((async()=>(M.pending=!0,M.validated=!0,$("validated-only"))),(e=>(w&&(e.valid=!0,e.errors=[]),T({errors:e.errors}),M.pending=!1,e))),z=R((async()=>$("silent")),(e=>(w&&(e.valid=!0),M.valid=e.valid,e)));function q(e,t=!0){const n=_(e);B.value=n,!h&&t&&D()}let L;t.onMounted((()=>{if(u)return D();j&&j.validateSchema||z()}));let G=Q(B.value);function X(){L=t.watch(B,((e,t)=>{if(O(e,t)&&O(e,G))return;(h?D:z)(),G=Q(e)}),{deep:!0})}function H(e){var n;null==L||L();const r=e&&"value"in e?e.value:I.value;T({value:Q(r),initialValue:Q(r),touched:null!==(n=null==e?void 0:e.touched)&&void 0!==n&&n,errors:(null==e?void 0:e.errors)||[]}),M.pending=!1,M.validated=!1,z(),t.nextTick((()=>{X()}))}X();const J={id:E,name:e,label:m,value:B,meta:M,errors:x,errorMessage:P,type:v,checkedValue:p,uncheckedValue:y,bails:f,keepValueOnUnmount:b,resetField:H,handleReset:()=>H(),validate:function(e){return"silent"===(null==e?void 0:e.mode)?z():D()},handleChange:q,handleBlur:()=>{M.touched=!0},setState:T,setTouched:function(e){M.touched=e},setErrors:function(e){T({errors:Array.isArray(e)?e:[e]})},setValue:function(e){B.value=e}};if(t.provide(l,J),t.isRef(r)&&"function"!=typeof t.unref(r)&&t.watch(r,((e,t)=>{O(e,t)||(M.validated?D():z())}),{deep:!0}),!j)return J;j.register(J),t.onBeforeUnmount((()=>{w=!0,j.unregister(J)}));const W=t.computed((()=>{const e=N.value;return!e||n(e)||c(e)||Array.isArray(e)?{}:Object.keys(e).reduce(((t,n)=>{const r=(a=e[n],Array.isArray(a)?a.filter(d):S(a).filter((e=>d(a[e]))).map((e=>a[e]))).map((e=>e.__locatorRef)).reduce(((e,t)=>{const n=A(j.values,t)||j.values[t];return void 0!==n&&(e[t]=n),e}),{});var a;return Object.assign(t,r),t}),{})}));return t.watch(W,((e,t)=>{if(!Object.keys(e).length)return;!O(e,t)&&(M.validated?D():z())})),J}function ne(e,t){return e.props[t]}function re(e,t){let n=e.as||"";return e.as||t.slots.default||(n="input"),n}function ae(e,t){return f(t.attrs.type)?b(e,"modelValue")?e.modelValue:void 0:b(e,"modelValue")?e.modelValue:t.attrs.value}const ie=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:()=>q().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"),i=t.toRef(e,"label"),u=t.toRef(e,"uncheckedValue"),o=t.toRef(e,"keepValue"),{errors:l,value:s,errorMessage:d,validate:c,handleChange:v,handleBlur:p,setTouched:m,resetField:y,handleReset:g,meta:b,checked:O,setErrors:V}=ee(a,r,{validateOnMount:e.validateOnMount,bails:e.bails,standalone:e.standalone,type:n.attrs.type,initialValue:ae(e,n),checkedValue:n.attrs.value,uncheckedValue:u,label:i,validateOnValueUpdate:!1,keepValueOnUnmount:o}),F=function(e,t=!0){v(e,t),n.emit("update:modelValue",s.value)},A=function(e){(e=>{f(n.attrs.type)||(s.value=_(e))})(e),n.emit("update:modelValue",s.value)},j=t.computed((()=>{const{validateOnInput:t,validateOnChange:r,validateOnBlur:a,validateOnModelUpdate:i}=function(e){var t,n,r,a;const{validateOnInput:i,validateOnChange:u,validateOnBlur:o,validateOnModelUpdate:l}=q();return{validateOnInput:null!==(t=e.validateOnInput)&&void 0!==t?t:i,validateOnChange:null!==(n=e.validateOnChange)&&void 0!==n?n:u,validateOnBlur:null!==(r=e.validateOnBlur)&&void 0!==r?r:o,validateOnModelUpdate:null!==(a=e.validateOnModelUpdate)&&void 0!==a?a:l}}(e),u=[p,n.attrs.onBlur,a?c:void 0].filter(Boolean),o=[e=>F(e,t),n.attrs.onInput].filter(Boolean),l=[e=>F(e,r),n.attrs.onChange].filter(Boolean),d={name:e.name,onBlur:u,onInput:o,onChange:l,"onUpdate:modelValue":e=>F(e,i)};f(n.attrs.type)&&O&&(d.checked=O.value);return h(re(e,n),n.attrs)&&(d.value=s.value),d}));function w(){return{field:j.value,value:s.value,meta:b,errors:l.value,errorMessage:d.value,validate:c,resetField:y,handleChange:F,handleInput:A,handleReset:g,handleBlur:p,setTouched:m,setErrors:V}}return n.expose({setErrors:V,setTouched:m,reset:y,validate:c,handleChange:v}),()=>{const r=t.resolveDynamicComponent(re(e,n)),a=x(r,n,w);return r?t.h(r,Object.assign(Object.assign({},n.attrs),j.value),a):a}}});let ue=0;function oe(e){var n;const r=ue++;let a=!1;const i=t.ref({}),u=t.ref(!1),l=t.ref(0),s=[],d=t.reactive(Q(t.unref(null==e?void 0:e.initialValues)||{})),{errorBag:f,setErrorBag:p,setFieldErrorBag:m}=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 i(e){n.value=S(e).reduce(((t,n)=>{const a=e[n];return a&&(t[n]=r(a)),t}),{})}e&&i(e);return{errorBag:n,setErrorBag:i,setFieldErrorBag:a}}(null==e?void 0:e.initialErrors),h=t.computed((()=>S(f.value).reduce(((e,t)=>{const n=f.value[t];return n&&n.length&&(e[t]=n[0]),e}),{})));function g(e){const t=i.value[e];return Array.isArray(t)?t[0]:t}function b(e){return!!i.value[e]}const V=t.computed((()=>S(i.value).reduce(((e,n)=>{const r=g(n);return r&&(e[n]=t.unref(r.label||r.name)||""),e}),{}))),F=t.computed((()=>S(i.value).reduce(((e,t)=>{var n;const r=g(t);return r&&(e[t]=null===(n=r.bails)||void 0===n||n),e}),{}))),w=Object.assign({},(null==e?void 0:e.initialErrors)||{}),k=null!==(n=null==e?void 0:e.keepValuesOnUnmount)&&void 0!==n&&n,{initialValues:B,originalInitialValues:I,setInitialValues:C}=function(e,n,r){const a=t.ref(Q(t.unref(r))||{}),i=t.ref(Q(t.unref(r))||{});function u(t,r=!1){a.value=Q(t),i.value=Q(t),r&&S(e.value).forEach((t=>{const r=e.value[t],i=Array.isArray(r)?r.some((e=>e.meta.touched)):null==r?void 0:r.meta.touched;if(!r||i)return;const u=A(a.value,t);j(n,t,Q(u))}))}t.isRef(r)&&t.watch(r,(e=>{u(e,!0)}),{deep:!0});return{initialValues:a,originalInitialValues:i,setInitialValues:u}}(i,d,null==e?void 0:e.initialValues),x=function(e,n,r,a){const i={touched:"some",pending:"some",valid:"every"},u=t.computed((()=>!O(n,t.unref(r))));function o(){const t=Object.values(e.value).flat(1).filter(Boolean);return S(i).reduce(((e,n)=>{const r=i[n];return e[n]=t[r]((e=>e.meta[n])),e}),{})}const l=t.reactive(o());return t.watchEffect((()=>{const e=o();l.touched=e.touched,l.valid=e.valid,l.pending=e.pending})),t.computed((()=>Object.assign(Object.assign({initialValues:t.unref(r)},l),{valid:l.valid&&!S(a.value).length,dirty:u.value})))}(i,d,I,h),P=null==e?void 0:e.validationSchema,N=T(se,5),_=T(se,5),U=R((async e=>"silent"===await e?N():_()),((e,[t])=>{const n=$.fieldsByPath.value||{},r=S($.errorBag.value);return[...new Set([...S(e.results),...S(n),...r])].reduce(((r,a)=>{const i=n[a],u=(e.results[a]||{errors:[]}).errors,o={errors:u,valid:!u.length};if(r.results[a]=o,o.valid||(r.errors[a]=o.errors[0]),!i)return L(a,u),r;if(z(i,(e=>e.meta.valid=o.valid)),"silent"===t)return r;const l=Array.isArray(i)?i.some((e=>e.meta.validated)):i.meta.validated;return"validated-only"!==t||l?(z(i,(e=>e.setState({errors:o.errors}))),r):r}),{valid:e.valid,results:{},errors:{}})})),$={formId:r,fieldsByPath:i,values:d,errorBag:f,errors:h,schema:P,submitCount:l,meta:x,isSubmitting:u,fieldArrays:s,keepValuesOnUnmount:k,validateSchema:t.unref(P)?U:void 0,validate:ae,register:function(e){const n=t.unref(e.name);ne(e,n),t.isRef(e.name)&&t.watch(e.name,(async(n,r)=>{await t.nextTick(),re(e,r),ne(e,n),(h.value[r]||h.value[n])&&(L(r,void 0),ie(n)),await t.nextTick(),b(r)||E(d,r)}));const r=t.unref(e.errorMessage);r&&(null==w?void 0:w[n])!==r&&ie(n);delete w[n]},unregister:function(e){const n=t.unref(e.name),r=i.value[n],a=!!r&&D(r);re(e,n),t.nextTick((()=>{var u;const o=null!==(u=t.unref(e.keepValueOnUnmount))&&void 0!==u?u:t.unref(k),l=A(d,n);if(a&&(r===i.value[n]||!i.value[n])&&Array.isArray(l)&&!o){const r=l.findIndex((n=>O(n,t.unref(e.checkedValue))));if(r>-1){const e=[...l];e.splice(r,1),G(n,e,{force:!0})}}if(!b(n)){if(L(n,void 0),o)return;if(a&&!v(A(d,n)))return;E(d,n)}}))},setFieldErrorBag:m,validateField:ie,setFieldValue:G,setValues:X,setErrors:K,setFieldError:L,setFieldTouched:Y,setTouched:ee,resetForm:te,handleSubmit:oe,stageInitialValue:function(t,n,r=!1){j(d,t,n),le(t,n),r&&!(null==e?void 0:e.initialValues)&&j(I.value,t,Q(n))},unsetInitialValue:function(e){E(B.value,e)},setFieldInitialValue:le,useFieldModel:W};function D(e){return Array.isArray(e)}function z(e,t){return Array.isArray(e)?e.forEach(t):t(e)}function q(e){Object.values(i.value).forEach((t=>{t&&z(t,e)}))}function L(e,t){m(e,t)}function K(e){p(e)}function G(e,n,{force:r}={force:!1}){var u;const o=i.value[e],l=Q(n);if(!o)return void j(d,e,l);if(D(o)&&"checkbox"===(null===(u=o[0])||void 0===u?void 0:u.type)&&!Array.isArray(n)){const t=Q(M(A(d,e)||[],n,void 0));return void j(d,e,t)}let s=n;D(o)||"checkbox"!==o.type||r||a||(s=Q(M(A(d,e),n,t.unref(o.uncheckedValue)))),j(d,e,s)}function X(e){S(d).forEach((e=>{delete d[e]})),S(e).forEach((t=>{G(t,e[t])})),s.forEach((e=>e&&e.reset()))}function J(e){const{value:n}=Z(e);return t.watch(n,(()=>{b(t.unref(e))||ae({mode:"validated-only"})}),{deep:!0}),n}function W(e){return Array.isArray(e)?e.map(J):J(e)}function Y(e,t){const n=i.value[e];n&&z(n,(e=>e.setTouched(t)))}function ee(e){S(e).forEach((t=>{Y(t,!!e[t])}))}function te(e){a=!0,q((e=>e.resetField())),(null==e?void 0:e.values)?(C(e.values),X(null==e?void 0:e.values)):(C(I.value),X(I.value)),(null==e?void 0:e.touched)&&ee(e.touched),K((null==e?void 0:e.errors)||{}),l.value=(null==e?void 0:e.submitCount)||0,t.nextTick((()=>{a=!1}))}function ne(e,n){const r=t.markRaw(e),a=n;if(!i.value[a])return void(i.value[a]=r);const u=i.value[a];u&&!Array.isArray(u)&&(i.value[a]=[u]),i.value[a]=[...i.value[a],r]}function re(e,t){const n=t,r=i.value[n];if(r)if(D(r)||e.id!==r.id){if(D(r)){const t=r.findIndex((t=>t.id===e.id));if(-1===t)return;r.splice(t,1),r.length||delete i.value[n]}}else delete i.value[n]}async function ae(e){if(q((e=>e.meta.validated=!0)),$.validateSchema)return $.validateSchema((null==e?void 0:e.mode)||"force");const n=await Promise.all(Object.values(i.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:[]})}))),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 ie(e){const n=i.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 oe(e,t){return function(n){return n instanceof Event&&(n.preventDefault(),n.stopPropagation()),ee(S(i.value).reduce(((e,t)=>(e[t]=!0,e)),{})),u.value=!0,l.value++,ae().then((r=>{if(r.valid&&"function"==typeof e)return e(Q(d),{evt:n,setErrors:K,setFieldError:L,setTouched:ee,setFieldTouched:Y,setValues:X,setFieldValue:G,resetForm:te});r.valid||"function"!=typeof t||t({values:Q(d),evt:n,errors:r.errors,results:r.results})})).then((e=>(u.value=!1,e)),(e=>{throw u.value=!1,e}))}}function le(e,t){j(B.value,e,Q(t))}async function se(){const e=t.unref(P);if(!e)return{valid:!0,results:{},errors:{}};const n=c(e)?await async function(e,t){const n=await e.validate(t,{abortEarly:!1}).then((()=>[])).catch((e=>{if("ValidationError"!==e.name)throw e;return e.inner||[]})),r={},a={};for(const e of n){const t=e.errors;r[e.path]={valid:!t.length,errors:t},t.length&&(a[e.path]=t[0])}return{valid:!n.length,results:r,errors:a}}(e,d):await H(e,d,{names:V.value,bailsMap:F.value});return n}const de=oe(((e,{evt:t})=>{y(t)&&t.target.submit()}));return t.onMounted((()=>{(null==e?void 0:e.initialErrors)&&K(e.initialErrors),(null==e?void 0:e.initialTouched)&&ee(e.initialTouched),(null==e?void 0:e.validateOnMount)?ae():$.validateSchema&&$.validateSchema("silent")})),t.isRef(P)&&t.watch(P,(()=>{var e;null===(e=$.validateSchema)||void 0===e||e.call($,"validated-only")})),t.provide(o,$),{errors:h,meta:x,values:d,isSubmitting:u,submitCount:l,validate:ae,validateField:ie,handleReset:()=>te(),resetForm:te,handleSubmit:oe,submitForm:de,setFieldError:L,setErrors:K,setFieldValue:G,setValues:X,setFieldTouched:Y,setTouched:ee,useFieldModel:W}}const le=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"),i=t.toRef(e,"keepValues"),{errors:u,values:o,meta:l,isSubmitting:s,submitCount:d,validate:c,validateField:f,handleReset:v,resetForm:p,handleSubmit:m,setErrors:h,setFieldError:b,setFieldValue:O,setValues:V,setFieldTouched:F,setTouched:A}=oe({validationSchema:a.value?a:void 0,initialValues:r,initialErrors:e.initialErrors,initialTouched:e.initialTouched,validateOnMount:e.validateOnMount,keepValuesOnUnmount:i}),j=m(((e,{evt:t})=>{y(t)&&t.target.submit()}),e.onInvalidSubmit),w=e.onSubmit?m(e.onSubmit,e.onInvalidSubmit):j;function E(e){g(e)&&e.preventDefault(),v(),"function"==typeof n.attrs.onReset&&n.attrs.onReset()}function S(t,n){return m("function"!=typeof t||n?n:t,e.onInvalidSubmit)(t)}function k(){return{meta:l.value,errors:u.value,values:o,isSubmitting:s.value,submitCount:d.value,validate:c,validateField:f,handleSubmit:S,handleReset:v,submitForm:j,setErrors:h,setFieldError:b,setFieldValue:O,setValues:V,setFieldTouched:F,setTouched:A,resetForm:p}}return n.expose({setFieldError:b,setErrors:h,setFieldValue:O,setValues:V,setFieldTouched:F,setTouched:A,resetForm:p,validate:c,validateField:f}),function(){const r="form"===e.as?e.as:t.resolveDynamicComponent(e.as),a=x(r,n,k);if(!e.as)return a;const i="form"===e.as?{novalidate:!0}:{};return t.h(r,Object.assign(Object.assign(Object.assign({},i),n.attrs),{onSubmit:w,onReset:E}),a)}}}),se=le;function de(e){const n=k(o,void 0),a=t.ref([]),i=()=>{},u={fields:a,remove:i,push:i,swap:i,insert:i,update:i,replace:i,prepend:i,move:i};if(!n)return B("FieldArray requires being a child of `<Form/>` or `useForm` being called before it. Array fields may not work correctly"),u;if(!t.unref(e))return B("FieldArray requires a field path to be provided, did you forget to pass the `name` prop?"),u;const l=n.fieldArrays.find((n=>t.unref(n.path)===t.unref(e)));if(l)return l;let s=0;function d(){const r=A(null==n?void 0:n.values,t.unref(e),[])||[];a.value=r.map(f),c()}function c(){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(r){const i=s++,u={key:i,value:t.computed({get(){const u=A(null==n?void 0:n.values,t.unref(e),[])||[],o=a.value.findIndex((e=>e.key===i));return-1===o?r:u[o]},set(e){const t=a.value.findIndex((e=>e.key===i));-1!==t?v(t,e):B("Attempting to update a non-existent array item")}}),isFirst:!1,isLast:!1};return u}function v(r,a){const i=t.unref(e),u=A(null==n?void 0:n.values,i);!Array.isArray(u)||u.length-1<r||null==n||n.setFieldValue(`${i}[${r}]`,a)}d();const p={fields:a,remove:function(r){const i=t.unref(e),u=A(null==n?void 0:n.values,i);if(!u||!Array.isArray(u))return;const o=[...u];o.splice(r,1),null==n||n.unsetInitialValue(i+`[${r}]`),null==n||n.setFieldValue(i,o),a.value.splice(r,1),c()},push:function(i){const u=t.unref(e),o=A(null==n?void 0:n.values,u),l=r(o)?[]:o;if(!Array.isArray(l))return;const s=[...l];s.push(i),null==n||n.stageInitialValue(u+`[${s.length-1}]`,i),null==n||n.setFieldValue(u,s),a.value.push(f(i)),c()},swap:function(r,i){const u=t.unref(e),o=A(null==n?void 0:n.values,u);if(!Array.isArray(o)||!(r in o)||!(i in o))return;const l=[...o],s=[...a.value],d=l[r];l[r]=l[i],l[i]=d;const f=s[r];s[r]=s[i],s[i]=f,null==n||n.setFieldValue(u,l),a.value=s,c()},insert:function(r,i){const u=t.unref(e),o=A(null==n?void 0:n.values,u);if(!Array.isArray(o)||o.length<r)return;const l=[...o],s=[...a.value];l.splice(r,0,i),s.splice(r,0,f(i)),null==n||n.setFieldValue(u,l),a.value=s,c()},update:v,replace:function(r){const a=t.unref(e);null==n||n.setFieldValue(a,r),d()},prepend:function(i){const u=t.unref(e),o=A(null==n?void 0:n.values,u),l=r(o)?[]:o;if(!Array.isArray(l))return;const s=[i,...l];null==n||n.stageInitialValue(u+`[${s.length-1}]`,i),null==n||n.setFieldValue(u,s),a.value.unshift(f(i)),c()},move:function(i,u){const o=t.unref(e),l=A(null==n?void 0:n.values,o),s=r(l)?[]:[...l];if(!Array.isArray(l)||!(i in l)||!(u in l))return;const d=[...a.value],f=d[i];d.splice(i,1),d.splice(u,0,f);const v=s[i];s.splice(i,1),s.splice(u,0,v),null==n||n.setFieldValue(o,s),a.value=d,c()}};return n.fieldArrays.push(Object.assign({path:e,reset:d},p)),t.onBeforeUnmount((()=>{const r=n.fieldArrays.findIndex((n=>t.unref(n.path)===t.unref(e)));r>=0&&n.fieldArrays.splice(r,1)})),p}const ce=t.defineComponent({name:"FieldArray",inheritAttrs:!1,props:{name:{type:String,required:!0}},setup(e,n){const{push:r,remove:a,swap:i,insert:u,replace:o,update:l,prepend:s,move:d,fields:c}=de(t.toRef(e,"name"));function f(){return{fields:c.value,push:r,remove:a,swap:i,insert:u,update:l,replace:o,prepend:s,move:d}}return n.expose({push:r,remove:a,swap:i,insert:u,update:l,replace:o,prepend:s,move:d}),()=>x(void 0,n,f)}}),fe=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 i(){return{message:a.value}}return()=>{if(!a.value)return;const r=e.as?t.resolveDynamicComponent(e.as):e.as,u=x(r,n,i),o=Object.assign({role:"alert"},n.attrs);return r||!Array.isArray(u)&&u||!(null==u?void 0:u.length)?!Array.isArray(u)&&u||(null==u?void 0:u.length)?t.h(r,o,u):t.h(r||"span",o,a.value):u}}});e.ErrorMessage=fe,e.Field=ie,e.FieldArray=ce,e.FieldContextKey=l,e.Form=se,e.FormContextKey=o,e.IS_ABSENT=s,e.configure=L,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=ee,e.useFieldArray=de,e.useFieldError=function(e){const n=k(o),r=e?void 0:t.inject(l);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=k(o),r=e?void 0:t.inject(l);return t.computed((()=>e?A(null==n?void 0:n.values,t.unref(e)):t.unref(null==r?void 0:r.value)))},e.useForm=oe,e.useFormErrors=function(){const e=k(o);return e||B("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=k(o);return e||B("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=k(o);let r=e?void 0:t.inject(l);return t.computed((()=>(e&&(r=I(null==n?void 0:n.fieldsByPath.value[t.unref(e)])),r?r.meta.dirty:(B(`field with name ${t.unref(e)} was not found`),!1))))},e.useIsFieldTouched=function(e){const n=k(o);let r=e?void 0:t.inject(l);return t.computed((()=>(e&&(r=I(null==n?void 0:n.fieldsByPath.value[t.unref(e)])),r?r.meta.touched:(B(`field with name ${t.unref(e)} was not found`),!1))))},e.useIsFieldValid=function(e){const n=k(o);let r=e?void 0:t.inject(l);return t.computed((()=>(e&&(r=I(null==n?void 0:n.fieldsByPath.value[t.unref(e)])),r?r.meta.valid:(B(`field with name ${t.unref(e)} was not found`),!1))))},e.useIsFormDirty=function(){const e=k(o);return e||B("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=k(o);return e||B("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=k(o);return e||B("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=k(o);return e||B("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=k(o);return e||B("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=k(o);return e||B("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=k(o);t||B("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=k(o);let r=e?void 0:t.inject(l);return function(){return e&&(r=I(null==n?void 0:n.fieldsByPath.value[t.unref(e)])),r?r.validate():(B(`field with name ${t.unref(e)} was not found`),Promise.resolve({errors:[],valid:!0}))}},e.useValidateForm=function(){const e=k(o);return e||B("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=K,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
6
|
+
!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 i={};const o=Symbol("vee-validate-form"),l=Symbol("vee-validate-field-instance"),s=Symbol("Default empty value"),c="undefined"!=typeof window;function d(e){return n(e)&&!!e.__locatorRef}function f(e){return!!e&&n(e.validate)}function v(e){return"checkbox"===e||"radio"===e}function p(e){return Array.isArray(e)?0===e.length:a(e)&&0===Object.keys(e).length}function m(e){return/^\[.+\]$/i.test(e)}function y(e){return"SELECT"===e.tagName}function h(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&&!v(t.type)}function g(e){return b(e)&&e.target&&"submit"in e.target}function b(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 V(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(!V(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(!V(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(!V(e[u],t[u]))return!1}return!0}return e!=e&&t!=t}function A(e){return!!c&&e instanceof File}var F=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;var r,a,u;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(a=r;0!=a--;)if(!e(t[a],n[a]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(u=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(a=r;0!=a--;)if(!Object.prototype.hasOwnProperty.call(n,u[a]))return!1;for(a=r;0!=a--;){var i=u[a];if(!e(t[i],n[i]))return!1}return!0}return t!=t&&n!=n};function j(e){return m(e)?e.replace(/\[|\]/gi,""):e}function w(e,t,n){if(!e)return n;if(m(t))return e[j(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 E(e,t,n){if(m(t))return void(e[j(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]]=u(a[e+1])?[]:{}),i=i[a[e]]}}function S(e,t){Array.isArray(e)&&u(t)?e.splice(Number(t),1):a(e)&&delete e[t]}function k(e,t){if(m(t))return void delete e[j(t)];const n=t.split(/\.|\[(\d+)\]/).filter(Boolean);let a=e;for(let e=0;e<n.length;e++){if(e===n.length-1){S(a,n[e]);break}if(!(n[e]in a)||r(a[n[e]]))break;a=a[n[e]]}const u=n.map(((t,r)=>w(e,n.slice(0,r).join("."))));for(let t=u.length-1;t>=0;t--)p(u[t])&&(0!==t?S(u[t-1],n[t-1]):S(e,n[0]))}function B(e){return Object.keys(e)}function I(e,n){const r=t.getCurrentInstance();return(null==r?void 0:r.provides[e])||t.inject(e,n)}function M(e){t.warn(`[vee-validate]: ${e}`)}function C(e){return Array.isArray(e)?e[0]:e}function T(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 P(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}}const N=(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 _(e){if(U(e))return e._value}function U(e){return"_value"in e}function $(e){if(!b(e))return e;const t=e.target;if(v(t.type)&&U(t))return _(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(_);var n;if(y(t)){const e=Array.from(t.options).find((e=>e.selected));return e?_(e):t.value}return t.value}function D(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]=z(r)),t}),t):"string"!=typeof e?t:e.split("|").reduce(((e,t)=>{const n=q(t);return n.name?(e[n.name]=z(n.params),e):e}),t):t}function z(e){const t=e=>"string"==typeof e&&"@"===e[0]?function(e){const t=t=>w(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 q=e=>{let t=[];const n=e.split(":")[0];return e.includes(":")&&(t=e.split(":").slice(1).join(":").split(",")),{name:n,params:t}};let L=Object.assign({},{generateMessage:({field:e})=>`${e} is not valid.`,bails:!0,validateOnBlur:!0,validateOnChange:!0,validateOnInput:!1,validateOnModelUpdate:!0});const K=()=>L,G=e=>{L=Object.assign(Object.assign({},L),e)};async function X(e,t,r={}){const a=null==r?void 0:r.bails,u={name:(null==r?void 0:r.name)||"{field}",rules:t,bails:null==a||a,formData:(null==r?void 0:r.values)||{}},i=await async function(e,t){if(f(e.rules))return async function(e,t,n){var r;return{errors:await t.validate(e,{abortEarly:null===(r=n.bails)||void 0===r||r}).then((()=>[])).catch((e=>{if("ValidationError"===e.name)return e.errors;throw e}))}}(t,e.rules,{bails:e.bails});if(n(e.rules)||Array.isArray(e.rules)){const n={field:e.name,form:e.formData,value:t},r=Array.isArray(e.rules)?e.rules:[e.rules],a=r.length,u=[];for(let i=0;i<a;i++){const a=r[i],o=await a(t,n);if("string"!=typeof o&&o)continue;const l="string"==typeof o?o:J(n);if(u.push(l),e.bails)return{errors:u}}return{errors:u}}const r=Object.assign(Object.assign({},e),{rules:D(e.rules)}),a=[],u=Object.keys(r.rules),i=u.length;for(let n=0;n<i;n++){const i=u[n],o=await H(r,t,{name:i,params:r.rules[i]});if(o.error&&(a.push(o.error),e.bails))return{errors:a}}return{errors:a}}(u,e),o=i.errors;return{errors:o,valid:!o.length}}async function H(e,t,n){const r=(a=n.name,i[a]);var a;if(!r)throw new Error(`No such validator '${n.name}' exists.`);const u=function(e,t){const n=e=>d(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),o={field:e.name,value:t,form:e.formData,rule:Object.assign(Object.assign({},n),{params:u})},l=await r(t,u,o);return"string"==typeof l?{error:l}:{error:l?void 0:J(o)}}function J(e){const t=K().generateMessage;return t?t(e):"Field is invalid"}async function Q(e,t,n){const r=B(e).map((async r=>{var a,u,i;const o=await X(w(t,r),e[r],{name:(null===(a=null==n?void 0:n.names)||void 0===a?void 0:a[r])||r,values:t,bails:null===(i=null===(u=null==n?void 0:n.bailsMap)||void 0===u?void 0:u[r])||void 0===i||i});return Object.assign(Object.assign({},o),{path:r})}));let a=!0;const u=await Promise.all(r),i={},o={};for(const e of u)i[e.path]={valid:e.valid,errors:e.errors},e.valid||(a=!1,o[e.path]=e.errors[0]);return{valid:a,results:i,errors:o}}function W(e,t,n){"object"==typeof n.value&&(n.value=Y(n.value)),n.enumerable&&!n.get&&!n.set&&n.configurable&&n.writable&&"__proto__"!==t?e[t]=n.value:Object.defineProperty(e,t,n)}function Y(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(Y(e))}))):"[object Map]"===u?(r=new Map,e.forEach((function(e,t){r.set(Y(t),Y(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(Y(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}let Z=0;function ee(e,n){const{value:r,initialValue:a,setInitialValue:u}=te(e,n.modelValue,n.form),{errorMessage:i,errors:o,setErrors:l}=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((()=>!V(t.unref(e),t.unref(n))))});return t.watch(r,(e=>{a.valid=!e.length}),{immediate:!0,flush:"sync"}),a}(r,a,o);return{id:Z>=Number.MAX_SAFE_INTEGER?0:++Z,path:e,value:r,initialValue:a,meta:s,errors:o,errorMessage:i,setState:function(e){var t;"value"in e&&(r.value=e.value),"errors"in e&&l(e.errors),"touched"in e&&(s.touched=null!==(t=e.touched)&&void 0!==t?t:s.touched),"initialValue"in e&&u(e.initialValue)}}}function te(e,n,r){const a=t.ref(t.unref(n));function u(){return r?w(r.meta.value.initialValues,t.unref(e),t.unref(a)):t.unref(a)}function i(n){r?r.stageInitialValue(t.unref(e),n,!0):a.value=n}const o=t.computed(u);if(!r){return{value:t.ref(u()),initialValue:o,setInitialValue:i}}const l=n?t.unref(n):w(r.values,t.unref(e),t.unref(o));r.stageInitialValue(t.unref(e),l,!0);return{value:t.computed({get:()=>w(r.values,t.unref(e)),set(n){r.setFieldValue(t.unref(e),n)}}),initialValue:o,setInitialValue:i}}function ne(e,n,r){return v(null==r?void 0:r.type)?function(e,n,r){const a=(null==r?void 0:r.standalone)?void 0:I(o),u=null==r?void 0:r.checkedValue,i=null==r?void 0:r.uncheckedValue;function l(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=>V(e,r)))>=0:V(r,n)}));function o(o,l=!0){var s;if(r.value===(null===(s=null==o?void 0:o.target)||void 0===s?void 0:s.checked))return void(l&&e.validate());let c=$(o);a||(c=T(t.unref(e.value),t.unref(u),t.unref(i))),n(c,l)}return Object.assign(Object.assign({},e),{checked:r,checkedValue:u,uncheckedValue:i,handleChange:o})}return l(re(e,n,r))}(e,n,r):re(e,n,r)}function re(e,r,a){const{initialValue:u,validateOnMount:i,bails:c,type:v,checkedValue:p,label:m,validateOnValueUpdate:y,uncheckedValue:h,controlled:g,keepValueOnUnmount:b,modelPropName:O,syncVModel:A,form:F}=function(e,t){const n=()=>({initialValue:void 0,validateOnMount:!1,bails:!0,label:e,validateOnValueUpdate:!0,keepValueOnUnmount:void 0,modelPropName:"modelValue",syncVModel:!0,controlled:!0});if(!t)return n();const r="valueProp"in t?t.valueProp:t.checkedValue,a="standalone"in t?!t.standalone:t.controlled;return Object.assign(Object.assign(Object.assign({},n()),t||{}),{controlled:null==a||a,checkedValue:r})}(t.unref(e),a),j=g?I(o):void 0,E=F||j;let S=!1;const{id:k,value:M,initialValue:C,meta:T,setState:R,errors:N,errorMessage:_}=ee(e,{modelValue:u,form:E});A&&function({prop:e,value:n,handleChange:r}){const a=t.getCurrentInstance();if(!a)return;const u=e||"modelValue",i=`update:${u}`;if(!(u in a.props))return;t.watch(n,(e=>{V(e,ae(a,u))||a.emit(i,e)})),t.watch((()=>ae(a,u)),(e=>{if(e===s&&void 0===n.value)return;const t=e===s?void 0:e;V(t,x(n.value,a.props.modelModifiers))||r(t)}))}({value:M,prop:O,handleChange:K});const U=t.computed((()=>{let a=t.unref(r);const u=t.unref(null==E?void 0:E.schema);return u&&!f(u)&&(a=function(e,t){if(!e)return;return e[t]}(u,t.unref(e))||a),f(a)||n(a)||Array.isArray(a)?a:D(a)}));async function z(n){var r,a;return(null==E?void 0:E.validateSchema)?null!==(r=(await E.validateSchema(n)).results[t.unref(e)])&&void 0!==r?r:{valid:!0,errors:[]}:X(M.value,U.value,{name:t.unref(m)||t.unref(e),values:null!==(a=null==E?void 0:E.values)&&void 0!==a?a:{},bails:c})}const q=P((async()=>(T.pending=!0,T.validated=!0,z("validated-only"))),(e=>(S&&(e.valid=!0,e.errors=[]),R({errors:e.errors}),T.pending=!1,e))),L=P((async()=>z("silent")),(e=>(S&&(e.valid=!0),T.valid=e.valid,e)));function K(e,t=!0){const n=$(e);M.value=n,!y&&t&&q()}let G;t.onMounted((()=>{if(i)return q();E&&E.validateSchema||L()}));let H=Y(M.value);function J(){G=t.watch(M,((e,t)=>{if(V(e,t)&&V(e,H))return;(y?q:L)(),H=Y(e)}),{deep:!0})}function Q(e){var n;null==G||G();const r=e&&"value"in e?e.value:C.value;R({value:Y(r),initialValue:Y(r),touched:null!==(n=null==e?void 0:e.touched)&&void 0!==n&&n,errors:(null==e?void 0:e.errors)||[]}),T.pending=!1,T.validated=!1,L(),t.nextTick((()=>{J()}))}J();const W={id:k,name:e,label:m,value:M,meta:T,errors:N,errorMessage:_,type:v,checkedValue:p,uncheckedValue:h,bails:c,keepValueOnUnmount:b,resetField:Q,handleReset:()=>Q(),validate:function(e){return"silent"===(null==e?void 0:e.mode)?L():q()},handleChange:K,handleBlur:()=>{T.touched=!0},setState:R,setTouched:function(e){T.touched=e},setErrors:function(e){R({errors:Array.isArray(e)?e:[e]})},setValue:function(e){M.value=e}};if(t.provide(l,W),t.isRef(r)&&"function"!=typeof t.unref(r)&&t.watch(r,((e,t)=>{V(e,t)||(T.validated?q():L())}),{deep:!0}),!E)return W;E.register(W),t.onBeforeUnmount((()=>{S=!0,E.unregister(W)}));const Z=t.computed((()=>{const e=U.value;return!e||n(e)||f(e)||Array.isArray(e)?{}:Object.keys(e).reduce(((t,n)=>{const r=(a=e[n],Array.isArray(a)?a.filter(d):B(a).filter((e=>d(a[e]))).map((e=>a[e]))).map((e=>e.__locatorRef)).reduce(((e,t)=>{const n=w(E.values,t)||E.values[t];return void 0!==n&&(e[t]=n),e}),{});var a;return Object.assign(t,r),t}),{})}));return t.watch(Z,((e,t)=>{if(!Object.keys(e).length)return;!V(e,t)&&(T.validated?q():L())})),W}function ae(e,t){return e.props[t]}function ue(e,t){let n=e.as||"";return e.as||t.slots.default||(n="input"),n}function ie(e,t){return v(t.attrs.type)?O(e,"modelValue")?e.modelValue:void 0:O(e,"modelValue")?e.modelValue:t.attrs.value}const oe=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:()=>K().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"),i=t.toRef(e,"uncheckedValue"),o=t.toRef(e,"keepValue"),{errors:l,value:s,errorMessage:c,validate:d,handleChange:f,handleBlur:p,setTouched:m,resetField:y,handleReset:g,meta:b,checked:O,setErrors:V}=ne(a,r,{validateOnMount:e.validateOnMount,bails:e.bails,standalone:e.standalone,type:n.attrs.type,initialValue:ie(e,n),checkedValue:n.attrs.value,uncheckedValue:i,label:u,validateOnValueUpdate:!1,keepValueOnUnmount:o}),A=function(e,t=!0){f(e,t),n.emit("update:modelValue",s.value)},F=function(e){(e=>{v(n.attrs.type)||(s.value=$(e))})(e),n.emit("update:modelValue",s.value)},j=t.computed((()=>{const{validateOnInput:t,validateOnChange:r,validateOnBlur:a,validateOnModelUpdate:u}=function(e){var t,n,r,a;const{validateOnInput:u,validateOnChange:i,validateOnBlur:o,validateOnModelUpdate:l}=K();return{validateOnInput:null!==(t=e.validateOnInput)&&void 0!==t?t:u,validateOnChange:null!==(n=e.validateOnChange)&&void 0!==n?n:i,validateOnBlur:null!==(r=e.validateOnBlur)&&void 0!==r?r:o,validateOnModelUpdate:null!==(a=e.validateOnModelUpdate)&&void 0!==a?a:l}}(e),i=[p,n.attrs.onBlur,a?d:void 0].filter(Boolean),o=[e=>A(e,t),n.attrs.onInput].filter(Boolean),l=[e=>A(e,r),n.attrs.onChange].filter(Boolean),c={name:e.name,onBlur:i,onInput:o,onChange:l,"onUpdate:modelValue":e=>A(e,u)};v(n.attrs.type)&&O&&(c.checked=O.value);return h(ue(e,n),n.attrs)&&(c.value=s.value),c}));function w(){return{field:j.value,value:s.value,meta:b,errors:l.value,errorMessage:c.value,validate:d,resetField:y,handleChange:A,handleInput:F,handleReset:g,handleBlur:p,setTouched:m,setErrors:V}}return n.expose({setErrors:V,setTouched:m,reset:y,validate:d,handleChange:f}),()=>{const r=t.resolveDynamicComponent(ue(e,n)),a=N(r,n,w);return r?t.h(r,Object.assign(Object.assign({},n.attrs),j.value),a):a}}});let le=0;function se(e){var n;const r=le++,a=new Set;let u=!1;const i=t.ref({}),l=t.ref(!1),s=t.ref(0),c=[],d=t.reactive(Y(t.unref(null==e?void 0:e.initialValues)||{})),{errorBag:v,setErrorBag:m,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=B(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),h=t.computed((()=>B(v.value).reduce(((e,t)=>{const n=v.value[t];return n&&n.length&&(e[t]=n[0]),e}),{})));function b(e){const t=i.value[e];return Array.isArray(t)?t[0]:t}function O(e){return!!i.value[e]}const A=t.computed((()=>B(i.value).reduce(((e,n)=>{const r=b(n);return r&&(e[n]=t.unref(r.label||r.name)||""),e}),{}))),F=t.computed((()=>B(i.value).reduce(((e,t)=>{var n;const r=b(t);return r&&(e[t]=null===(n=r.bails)||void 0===n||n),e}),{}))),j=Object.assign({},(null==e?void 0:e.initialErrors)||{}),S=null!==(n=null==e?void 0:e.keepValuesOnUnmount)&&void 0!==n&&n,{initialValues:I,originalInitialValues:M,setInitialValues:C}=function(e,n,r){const a=t.ref(Y(t.unref(r))||{}),u=t.ref(Y(t.unref(r))||{});function i(t,r=!1){a.value=Y(t),u.value=Y(t),r&&B(e.value).forEach((t=>{const r=e.value[t],u=Array.isArray(r)?r.some((e=>e.meta.touched)):null==r?void 0:r.meta.touched;if(!r||u)return;const i=w(a.value,t);E(n,t,Y(i))}))}t.isRef(r)&&t.watch(r,(e=>{i(e,!0)}),{deep:!0});return{initialValues:a,originalInitialValues:u,setInitialValues:i}}(i,d,null==e?void 0:e.initialValues),x=function(e,n,r,a){const u={touched:"some",pending:"some",valid:"every"},i=t.computed((()=>!V(n,t.unref(r))));function o(){const t=Object.values(e.value).flat(1).filter(Boolean);return B(u).reduce(((e,n)=>{const r=u[n];return e[n]=t[r]((e=>e.meta[n])),e}),{})}const l=t.reactive(o());return t.watchEffect((()=>{const e=o();l.touched=e.touched,l.valid=e.valid,l.pending=e.pending})),t.computed((()=>Object.assign(Object.assign({initialValues:t.unref(r)},l),{valid:l.valid&&!B(a.value).length,dirty:i.value})))}(i,d,M,h),N=t.computed((()=>[...a,...B(i.value)].reduce(((e,t)=>(E(e,t,w(d,t)),e)),{}))),_=null==e?void 0:e.validationSchema,U=R(de,5),$=R(de,5),D=P((async e=>"silent"===await e?U():$()),((e,[t])=>{const n=L.fieldsByPath.value||{},r=B(L.errorBag.value);return[...new Set([...B(e.results),...B(n),...r])].reduce(((r,a)=>{const u=n[a],i=(e.results[a]||{errors:[]}).errors,o={errors:i,valid:!i.length};if(r.results[a]=o,o.valid||(r.errors[a]=o.errors[0]),!u)return H(a,i),r;if(G(u,(e=>e.meta.valid=o.valid)),"silent"===t)return r;const l=Array.isArray(u)?u.some((e=>e.meta.validated)):u.meta.validated;return"validated-only"!==t||l?(G(u,(e=>e.setState({errors:o.errors}))),r):r}),{valid:e.valid,results:{},errors:{}})}));function z(e){return function(t,n){return function(r){return r instanceof Event&&(r.preventDefault(),r.stopPropagation()),re(B(i.value).reduce(((e,t)=>(e[t]=!0,e)),{})),l.value=!0,s.value++,oe().then((a=>{const u=Y(d);if(a.valid&&"function"==typeof t){const n=Y(N.value);return t(e?n:u,{evt:r,controlledValues:n,setErrors:J,setFieldError:H,setTouched:re,setFieldTouched:ne,setValues:Z,setFieldValue:W,resetForm:ae})}a.valid||"function"!=typeof n||n({values:u,evt:r,errors:a.errors,results:a.results})})).then((e=>(l.value=!1,e)),(e=>{throw l.value=!1,e}))}}}const q=z(!1);q.withControlled=z(!0);const L={formId:r,fieldsByPath:i,values:d,controlledValues:N,errorBag:v,errors:h,schema:_,submitCount:s,meta:x,isSubmitting:l,fieldArrays:c,keepValuesOnUnmount:S,validateSchema:t.unref(_)?D:void 0,validate:oe,register:function(e){const n=t.unref(e.name);ue(e,n),t.isRef(e.name)&&t.watch(e.name,(async(n,r)=>{await t.nextTick(),ie(e,r),ue(e,n),(h.value[r]||h.value[n])&&(H(r,void 0),se(n)),await t.nextTick(),O(r)||k(d,r)}));const r=t.unref(e.errorMessage);r&&(null==j?void 0:j[n])!==r&&se(n);delete j[n]},unregister:function(e){const n=t.unref(e.name),r=i.value[n],a=!!r&&K(r);ie(e,n),t.nextTick((()=>{var u;const o=null!==(u=t.unref(e.keepValueOnUnmount))&&void 0!==u?u:t.unref(S),l=w(d,n);if(a&&(r===i.value[n]||!i.value[n])&&Array.isArray(l)&&!o){const r=l.findIndex((n=>V(n,t.unref(e.checkedValue))));if(r>-1){const e=[...l];e.splice(r,1),W(n,e,{force:!0})}}if(!O(n)){if(H(n,void 0),o)return;if(a&&!p(w(d,n)))return;k(d,n)}}))},setFieldErrorBag:y,validateField:se,setFieldValue:W,setValues:Z,setErrors:J,setFieldError:H,setFieldTouched:ne,setTouched:re,resetForm:ae,handleSubmit:q,stageInitialValue:function(t,n,r=!1){E(d,t,n),ce(t,n),r&&!(null==e?void 0:e.initialValues)&&E(M.value,t,Y(n))},unsetInitialValue:function(e){k(I.value,e)},setFieldInitialValue:ce,useFieldModel:function(e){if(!Array.isArray(e))return ee(e);return e.map(ee)}};function K(e){return Array.isArray(e)}function G(e,t){return Array.isArray(e)?e.forEach(t):t(e)}function X(e){Object.values(i.value).forEach((t=>{t&&G(t,e)}))}function H(e,t){y(e,t)}function J(e){m(e)}function W(e,n,{force:r}={force:!1}){var a;const o=i.value[e],l=Y(n);if(!o)return void E(d,e,l);if(K(o)&&"checkbox"===(null===(a=o[0])||void 0===a?void 0:a.type)&&!Array.isArray(n)){const t=Y(T(w(d,e)||[],n,void 0));return void E(d,e,t)}let s=n;K(o)||"checkbox"!==o.type||r||u||(s=Y(T(w(d,e),n,t.unref(o.uncheckedValue)))),E(d,e,s)}function Z(e){B(d).forEach((e=>{delete d[e]})),B(e).forEach((t=>{W(t,e[t])})),c.forEach((e=>e&&e.reset()))}function ee(e){const{value:n}=te(e,void 0,L);return t.watch(n,(()=>{O(t.unref(e))||oe({mode:"validated-only"})}),{deep:!0}),a.add(t.unref(e)),n}function ne(e,t){const n=i.value[e];n&&G(n,(e=>e.setTouched(t)))}function re(e){B(e).forEach((t=>{ne(t,!!e[t])}))}function ae(e){u=!0,X((e=>e.resetField())),(null==e?void 0:e.values)?(C(e.values),Z(null==e?void 0:e.values)):(C(M.value),Z(M.value)),(null==e?void 0:e.touched)&&re(e.touched),J((null==e?void 0:e.errors)||{}),s.value=(null==e?void 0:e.submitCount)||0,t.nextTick((()=>{u=!1}))}function ue(e,n){const r=t.markRaw(e),a=n;if(!i.value[a])return void(i.value[a]=r);const u=i.value[a];u&&!Array.isArray(u)&&(i.value[a]=[u]),i.value[a]=[...i.value[a],r]}function ie(e,t){const n=t,r=i.value[n];if(r)if(K(r)||e.id!==r.id){if(K(r)){const t=r.findIndex((t=>t.id===e.id));if(-1===t)return;r.splice(t,1),r.length||delete i.value[n]}}else delete i.value[n]}async function oe(e){if(X((e=>e.meta.validated=!0)),L.validateSchema)return L.validateSchema((null==e?void 0:e.mode)||"force");const n=await Promise.all(Object.values(i.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:[]})}))),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=i.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 ce(e,t){E(I.value,e,Y(t))}async function de(){const e=t.unref(_);if(!e)return{valid:!0,results:{},errors:{}};const n=f(e)?await async function(e,t){const n=await e.validate(t,{abortEarly:!1}).then((()=>[])).catch((e=>{if("ValidationError"!==e.name)throw e;return e.inner||[]})),r={},a={};for(const e of n){const t=e.errors;r[e.path]={valid:!t.length,errors:t},t.length&&(a[e.path]=t[0])}return{valid:!n.length,results:r,errors:a}}(e,d):await Q(e,d,{names:A.value,bailsMap:F.value});return n}const fe=q(((e,{evt:t})=>{g(t)&&t.target.submit()}));return t.onMounted((()=>{(null==e?void 0:e.initialErrors)&&J(e.initialErrors),(null==e?void 0:e.initialTouched)&&re(e.initialTouched),(null==e?void 0:e.validateOnMount)?oe():L.validateSchema&&L.validateSchema("silent")})),t.isRef(_)&&t.watch(_,(()=>{var e;null===(e=L.validateSchema)||void 0===e||e.call(L,"validated-only")})),t.provide(o,L),Object.assign(Object.assign({},L),{handleReset:()=>ae(),submitForm:fe})}const ce=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:i,values:o,meta:l,isSubmitting:s,submitCount:c,controlledValues:d,validate:f,validateField:v,handleReset:p,resetForm:m,handleSubmit:y,setErrors:h,setFieldError:O,setFieldValue:V,setValues:A,setFieldTouched:F,setTouched:j}=se({validationSchema:a.value?a:void 0,initialValues:r,initialErrors:e.initialErrors,initialTouched:e.initialTouched,validateOnMount:e.validateOnMount,keepValuesOnUnmount:u}),w=y(((e,{evt:t})=>{g(t)&&t.target.submit()}),e.onInvalidSubmit),E=e.onSubmit?y(e.onSubmit,e.onInvalidSubmit):w;function S(e){b(e)&&e.preventDefault(),p(),"function"==typeof n.attrs.onReset&&n.attrs.onReset()}function k(t,n){return y("function"!=typeof t||n?n:t,e.onInvalidSubmit)(t)}function B(){return{meta:l.value,errors:i.value,values:o,isSubmitting:s.value,submitCount:c.value,controlledValues:d.value,validate:f,validateField:v,handleSubmit:k,handleReset:p,submitForm:w,setErrors:h,setFieldError:O,setFieldValue:V,setValues:A,setFieldTouched:F,setTouched:j,resetForm:m}}return n.expose({setFieldError:O,setErrors:h,setFieldValue:V,setValues:A,setFieldTouched:F,setTouched:j,resetForm:m,validate:f,validateField:v}),function(){const r="form"===e.as?e.as:t.resolveDynamicComponent(e.as),a=N(r,n,B);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:E,onReset:S}),a)}}}),de=ce;function fe(e){const n=I(o,void 0),a=t.ref([]),u=()=>{},i={fields:a,remove:u,push:u,swap:u,insert:u,update:u,replace:u,prepend:u,move:u};if(!n)return M("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 M("FieldArray requires a field path to be provided, did you forget to pass the `name` prop?"),i;const l=n.fieldArrays.find((n=>t.unref(n.path)===t.unref(e)));if(l)return l;let s=0;function c(){const r=w(null==n?void 0:n.values,t.unref(e),[])||[];a.value=r.map(f),d()}function d(){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(r){const u=s++,i={key:u,value:t.computed({get(){const i=w(null==n?void 0:n.values,t.unref(e),[])||[],o=a.value.findIndex((e=>e.key===u));return-1===o?r:i[o]},set(e){const t=a.value.findIndex((e=>e.key===u));-1!==t?v(t,e):M("Attempting to update a non-existent array item")}}),isFirst:!1,isLast:!1};return i}function v(r,a){const u=t.unref(e),i=w(null==n?void 0:n.values,u);!Array.isArray(i)||i.length-1<r||null==n||n.setFieldValue(`${u}[${r}]`,a)}c();const p={fields:a,remove:function(r){const u=t.unref(e),i=w(null==n?void 0:n.values,u);if(!i||!Array.isArray(i))return;const o=[...i];o.splice(r,1),null==n||n.unsetInitialValue(u+`[${r}]`),null==n||n.setFieldValue(u,o),a.value.splice(r,1),d()},push:function(u){const i=t.unref(e),o=w(null==n?void 0:n.values,i),l=r(o)?[]:o;if(!Array.isArray(l))return;const s=[...l];s.push(u),null==n||n.stageInitialValue(i+`[${s.length-1}]`,u),null==n||n.setFieldValue(i,s),a.value.push(f(u)),d()},swap:function(r,u){const i=t.unref(e),o=w(null==n?void 0:n.values,i);if(!Array.isArray(o)||!(r in o)||!(u in o))return;const l=[...o],s=[...a.value],c=l[r];l[r]=l[u],l[u]=c;const f=s[r];s[r]=s[u],s[u]=f,null==n||n.setFieldValue(i,l),a.value=s,d()},insert:function(r,u){const i=t.unref(e),o=w(null==n?void 0:n.values,i);if(!Array.isArray(o)||o.length<r)return;const l=[...o],s=[...a.value];l.splice(r,0,u),s.splice(r,0,f(u)),null==n||n.setFieldValue(i,l),a.value=s,d()},update:v,replace:function(r){const a=t.unref(e);null==n||n.setFieldValue(a,r),c()},prepend:function(u){const i=t.unref(e),o=w(null==n?void 0:n.values,i),l=r(o)?[]:o;if(!Array.isArray(l))return;const s=[u,...l];null==n||n.stageInitialValue(i+`[${s.length-1}]`,u),null==n||n.setFieldValue(i,s),a.value.unshift(f(u)),d()},move:function(u,i){const o=t.unref(e),l=w(null==n?void 0:n.values,o),s=r(l)?[]:[...l];if(!Array.isArray(l)||!(u in l)||!(i in l))return;const c=[...a.value],f=c[u];c.splice(u,1),c.splice(i,0,f);const v=s[u];s.splice(u,1),s.splice(i,0,v),null==n||n.setFieldValue(o,s),a.value=c,d()}};return n.fieldArrays.push(Object.assign({path:e,reset:c},p)),t.onBeforeUnmount((()=>{const r=n.fieldArrays.findIndex((n=>t.unref(n.path)===t.unref(e)));r>=0&&n.fieldArrays.splice(r,1)})),p}const ve=t.defineComponent({name:"FieldArray",inheritAttrs:!1,props:{name:{type:String,required:!0}},setup(e,n){const{push:r,remove:a,swap:u,insert:i,replace:o,update:l,prepend:s,move:c,fields:d}=fe(t.toRef(e,"name"));function f(){return{fields:d.value,push:r,remove:a,swap:u,insert:i,update:l,replace:o,prepend:s,move:c}}return n.expose({push:r,remove:a,swap:u,insert:i,update:l,replace:o,prepend:s,move:c}),()=>N(void 0,n,f)}}),pe=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 u(){return{message:a.value}}return()=>{if(!a.value)return;const r=e.as?t.resolveDynamicComponent(e.as):e.as,i=N(r,n,u),o=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,o,i):t.h(r||"span",o,a.value):i}}});e.ErrorMessage=pe,e.Field=oe,e.FieldArray=ve,e.FieldContextKey=l,e.Form=de,e.FormContextKey=o,e.IS_ABSENT=s,e.configure=G,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),i[e]=t},e.useField=ne,e.useFieldArray=fe,e.useFieldError=function(e){const n=I(o),r=e?void 0:t.inject(l);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=I(o),r=e?void 0:t.inject(l);return t.computed((()=>e?w(null==n?void 0:n.values,t.unref(e)):t.unref(null==r?void 0:r.value)))},e.useForm=se,e.useFormErrors=function(){const e=I(o);return e||M("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=I(o);return e||M("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=I(o);let r=e?void 0:t.inject(l);return t.computed((()=>(e&&(r=C(null==n?void 0:n.fieldsByPath.value[t.unref(e)])),r?r.meta.dirty:(M(`field with name ${t.unref(e)} was not found`),!1))))},e.useIsFieldTouched=function(e){const n=I(o);let r=e?void 0:t.inject(l);return t.computed((()=>(e&&(r=C(null==n?void 0:n.fieldsByPath.value[t.unref(e)])),r?r.meta.touched:(M(`field with name ${t.unref(e)} was not found`),!1))))},e.useIsFieldValid=function(e){const n=I(o);let r=e?void 0:t.inject(l);return t.computed((()=>(e&&(r=C(null==n?void 0:n.fieldsByPath.value[t.unref(e)])),r?r.meta.valid:(M(`field with name ${t.unref(e)} was not found`),!1))))},e.useIsFormDirty=function(){const e=I(o);return e||M("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=I(o);return e||M("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=I(o);return e||M("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=I(o);return e||M("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=I(o);return e||M("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=I(o);return e||M("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=I(o);t||M("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=I(o);let r=e?void 0:t.inject(l);return function(){return e&&(r=C(null==n?void 0:n.fieldsByPath.value[t.unref(e)])),r?r.validate():(M(`field with name ${t.unref(e)} was not found`),Promise.resolve({errors:[],valid:!0}))}},e.useValidateForm=function(){const e=I(o);return e||M("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=X,Object.defineProperty(e,"__esModule",{value:!0})}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vee-validate",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.7.0",
|
|
4
4
|
"description": "Form Validation for Vue.js",
|
|
5
5
|
"author": "Abdelrahman Awad <logaretm1@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -33,5 +33,5 @@
|
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@vue/devtools-api": "^6.1.4"
|
|
35
35
|
},
|
|
36
|
-
"gitHead": "
|
|
36
|
+
"gitHead": "45e0b22343b4bb60422b21179b156b9a2c342054"
|
|
37
37
|
}
|