vee-validate 4.6.4 → 4.6.7

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/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  </p>
6
6
 
7
7
  <p align="center">
8
- Painless Vue forms with declarative and composition toolkit
8
+ Painless Vue forms
9
9
  </p>
10
10
 
11
11
  <p align="center">
@@ -99,7 +99,7 @@ interface PrivateFieldContext<TValue = unknown> {
99
99
  setValue(value: TValue): void;
100
100
  }
101
101
  declare type FieldContext<TValue = unknown> = Omit<PrivateFieldContext<TValue>, 'id' | 'instances'>;
102
- declare type GenericValidateFunction = (value: unknown, ctx: FieldValidationMetaInfo) => boolean | string | Promise<boolean | string>;
102
+ declare type GenericValidateFunction<TValue = unknown> = (value: TValue, ctx: FieldValidationMetaInfo) => boolean | string | Promise<boolean | string>;
103
103
  interface FormState<TValues> {
104
104
  values: TValues;
105
105
  errors: Partial<Record<keyof TValues, string | undefined>>;
@@ -179,7 +179,7 @@ interface ValidationOptions {
179
179
  /**
180
180
  * Validates a value against the rules.
181
181
  */
182
- declare function validate(value: unknown, rules: string | Record<string, unknown | unknown[]> | GenericValidateFunction | GenericValidateFunction[] | YupValidator, options?: ValidationOptions): Promise<ValidationResult>;
182
+ declare function validate<TValue = unknown>(value: TValue, rules: string | Record<string, unknown | unknown[]> | GenericValidateFunction<TValue> | GenericValidateFunction<TValue>[] | YupValidator, options?: ValidationOptions): Promise<ValidationResult>;
183
183
 
184
184
  /**
185
185
  * Adds a custom validator to the list of validation rules.
@@ -211,7 +211,7 @@ interface FieldOptions<TValue = unknown> {
211
211
  modelPropName?: string;
212
212
  syncVModel?: boolean;
213
213
  }
214
- declare type RuleExpression<TValue> = string | Record<string, unknown> | GenericValidateFunction | GenericValidateFunction[] | YupValidator<TValue> | undefined;
214
+ declare type RuleExpression<TValue> = string | Record<string, unknown> | GenericValidateFunction<TValue> | GenericValidateFunction<TValue>[] | YupValidator<TValue> | undefined;
215
215
  /**
216
216
  * Creates a field composite.
217
217
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * vee-validate v4.6.4
2
+ * vee-validate v4.6.7
3
3
  * (c) 2022 Abdelrahman Awad
4
4
  * @license MIT
5
5
  */
@@ -128,6 +128,51 @@ function isPropPresent(obj, prop) {
128
128
  return prop in obj && obj[prop] !== IS_ABSENT;
129
129
  }
130
130
 
131
+ // do not edit .js files directly - edit src/index.jst
132
+
133
+
134
+
135
+ var fastDeepEqual = function equal(a, b) {
136
+ if (a === b) return true;
137
+
138
+ if (a && b && typeof a == 'object' && typeof b == 'object') {
139
+ if (a.constructor !== b.constructor) return false;
140
+
141
+ var length, i, keys;
142
+ if (Array.isArray(a)) {
143
+ length = a.length;
144
+ if (length != b.length) return false;
145
+ for (i = length; i-- !== 0;)
146
+ if (!equal(a[i], b[i])) return false;
147
+ return true;
148
+ }
149
+
150
+
151
+
152
+ if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
153
+ if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
154
+ if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();
155
+
156
+ keys = Object.keys(a);
157
+ length = keys.length;
158
+ if (length !== Object.keys(b).length) return false;
159
+
160
+ for (i = length; i-- !== 0;)
161
+ if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
162
+
163
+ for (i = length; i-- !== 0;) {
164
+ var key = keys[i];
165
+
166
+ if (!equal(a[key], b[key])) return false;
167
+ }
168
+
169
+ return true;
170
+ }
171
+
172
+ // true if both NaN, false otherwise
173
+ return a!==a && b!==b;
174
+ };
175
+
131
176
  function cleanupNonNestedPath(path) {
132
177
  if (isNotNestedPath(path)) {
133
178
  return path.replace(/\[|\]/gi, '');
@@ -248,11 +293,12 @@ function normalizeField(field) {
248
293
  function resolveNextCheckboxValue(currentValue, checkedValue, uncheckedValue) {
249
294
  if (Array.isArray(currentValue)) {
250
295
  const newVal = [...currentValue];
251
- const idx = newVal.indexOf(checkedValue);
296
+ // Use isEqual since checked object values can possibly fail the equality check #3883
297
+ const idx = newVal.findIndex(v => fastDeepEqual(v, checkedValue));
252
298
  idx >= 0 ? newVal.splice(idx, 1) : newVal.push(checkedValue);
253
299
  return newVal;
254
300
  }
255
- return currentValue === checkedValue ? uncheckedValue : checkedValue;
301
+ return fastDeepEqual(currentValue, checkedValue) ? uncheckedValue : checkedValue;
256
302
  }
257
303
  /**
258
304
  * Creates a throttled function that only invokes the provided function (`func`) at most once per within a given number of milliseconds
@@ -292,12 +338,26 @@ function debounceAsync(inner, ms = 0) {
292
338
  }
293
339
  function applyModelModifiers(value, modifiers) {
294
340
  if (!isObject(modifiers)) {
295
- return;
341
+ return value;
296
342
  }
297
343
  if (modifiers.number) {
298
344
  return toNumber(value);
299
345
  }
300
346
  return value;
347
+ }
348
+ function withLatest(fn, onDone) {
349
+ let latestRun;
350
+ return async function runLatest(...args) {
351
+ const pending = fn(...args);
352
+ latestRun = pending;
353
+ const result = await pending;
354
+ if (pending !== latestRun) {
355
+ return result;
356
+ }
357
+ latestRun = undefined;
358
+ onDone(result, args);
359
+ return result;
360
+ };
301
361
  }
302
362
 
303
363
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -855,7 +915,7 @@ function _useFieldValue(path, modelValue, shouldInjectForm = true) {
855
915
  modelRef.value = value;
856
916
  return;
857
917
  }
858
- form.setFieldInitialValue(unref(path), value);
918
+ form.stageInitialValue(unref(path), value, true);
859
919
  }
860
920
  const initialValue = computed(resolveInitialValue);
861
921
  // if no form is associated, use a regular ref.
@@ -1350,10 +1410,11 @@ function _useField(name, rules, opts) {
1350
1410
  bails,
1351
1411
  });
1352
1412
  }
1353
- async function validateWithStateMutation() {
1413
+ const validateWithStateMutation = withLatest(async () => {
1354
1414
  meta.pending = true;
1355
1415
  meta.validated = true;
1356
- const result = await validateCurrentValue('validated-only');
1416
+ return validateCurrentValue('validated-only');
1417
+ }, result => {
1357
1418
  if (markedForRemoval) {
1358
1419
  result.valid = true;
1359
1420
  result.errors = [];
@@ -1361,23 +1422,21 @@ function _useField(name, rules, opts) {
1361
1422
  setState({ errors: result.errors });
1362
1423
  meta.pending = false;
1363
1424
  return result;
1364
- }
1365
- async function validateValidStateOnly() {
1366
- const result = await validateCurrentValue('silent');
1425
+ });
1426
+ const validateValidStateOnly = withLatest(async () => {
1427
+ return validateCurrentValue('silent');
1428
+ }, result => {
1367
1429
  if (markedForRemoval) {
1368
1430
  result.valid = true;
1369
1431
  }
1370
1432
  meta.valid = result.valid;
1371
1433
  return result;
1372
- }
1434
+ });
1373
1435
  function validate$1(opts) {
1374
- if (!(opts === null || opts === void 0 ? void 0 : opts.mode) || (opts === null || opts === void 0 ? void 0 : opts.mode) === 'force') {
1375
- return validateWithStateMutation();
1376
- }
1377
- if ((opts === null || opts === void 0 ? void 0 : opts.mode) === 'validated-only') {
1378
- return validateWithStateMutation();
1436
+ if ((opts === null || opts === void 0 ? void 0 : opts.mode) === 'silent') {
1437
+ return validateValidStateOnly();
1379
1438
  }
1380
- return validateValidStateOnly();
1439
+ return validateWithStateMutation();
1381
1440
  }
1382
1441
  // Common input/change event handler
1383
1442
  function handleChange(e, shouldValidate = true) {
@@ -1568,7 +1627,9 @@ function useCheckboxField(name, rules, opts) {
1568
1627
  const checked = computed(() => {
1569
1628
  const currentValue = unref(field.value);
1570
1629
  const checkedVal = unref(checkedValue);
1571
- return Array.isArray(currentValue) ? currentValue.includes(checkedVal) : checkedVal === currentValue;
1630
+ return Array.isArray(currentValue)
1631
+ ? currentValue.findIndex(v => es6(v, checkedVal)) >= 0
1632
+ : es6(checkedVal, currentValue);
1572
1633
  });
1573
1634
  function handleCheckboxChange(e, shouldValidate = true) {
1574
1635
  var _a;
@@ -1875,6 +1936,54 @@ function useForm(opts) {
1875
1936
  // form meta aggregations
1876
1937
  const meta = useFormMeta(fieldsByPath, formValues, originalInitialValues, errors);
1877
1938
  const schema = opts === null || opts === void 0 ? void 0 : opts.validationSchema;
1939
+ /**
1940
+ * Batches validation runs in 5ms batches
1941
+ * Must have two distinct batch queues to make sure they don't override each other settings #3783
1942
+ */
1943
+ const debouncedSilentValidation = debounceAsync(_validateSchema, 5);
1944
+ const debouncedValidation = debounceAsync(_validateSchema, 5);
1945
+ const validateSchema = withLatest(async (mode) => {
1946
+ return (await mode) === 'silent' ? debouncedSilentValidation() : debouncedValidation();
1947
+ }, (formResult, [mode]) => {
1948
+ // fields by id lookup
1949
+ const fieldsById = formCtx.fieldsByPath.value || {};
1950
+ // errors fields names, we need it to also check if custom errors are updated
1951
+ const currentErrorsPaths = keysOf(formCtx.errorBag.value);
1952
+ // collect all the keys from the schema and all fields
1953
+ // this ensures we have a complete keymap of all the fields
1954
+ const paths = [
1955
+ ...new Set([...keysOf(formResult.results), ...keysOf(fieldsById), ...currentErrorsPaths]),
1956
+ ];
1957
+ // aggregates the paths into a single result object while applying the results on the fields
1958
+ return paths.reduce((validation, path) => {
1959
+ const field = fieldsById[path];
1960
+ const messages = (formResult.results[path] || { errors: [] }).errors;
1961
+ const fieldResult = {
1962
+ errors: messages,
1963
+ valid: !messages.length,
1964
+ };
1965
+ validation.results[path] = fieldResult;
1966
+ if (!fieldResult.valid) {
1967
+ validation.errors[path] = fieldResult.errors[0];
1968
+ }
1969
+ // field not rendered
1970
+ if (!field) {
1971
+ setFieldError(path, messages);
1972
+ return validation;
1973
+ }
1974
+ // always update the valid flag regardless of the mode
1975
+ applyFieldMutation(field, f => (f.meta.valid = fieldResult.valid));
1976
+ if (mode === 'silent') {
1977
+ return validation;
1978
+ }
1979
+ const wasValidated = Array.isArray(field) ? field.some(f => f.meta.validated) : field.meta.validated;
1980
+ if (mode === 'validated-only' && !wasValidated) {
1981
+ return validation;
1982
+ }
1983
+ applyFieldMutation(field, f => f.setState({ errors: fieldResult.errors }));
1984
+ return validation;
1985
+ }, { valid: formResult.valid, results: {}, errors: {} });
1986
+ });
1878
1987
  const formCtx = {
1879
1988
  formId,
1880
1989
  fieldsByPath,
@@ -2276,53 +2385,6 @@ function useForm(opts) {
2276
2385
  });
2277
2386
  return formResult;
2278
2387
  }
2279
- /**
2280
- * Batches validation runs in 5ms batches
2281
- * Must have two distinct batch queues to make sure they don't override each other settings #3783
2282
- */
2283
- const debouncedSilentValidation = debounceAsync(_validateSchema, 5);
2284
- const debouncedValidation = debounceAsync(_validateSchema, 5);
2285
- async function validateSchema(mode) {
2286
- const formResult = await (mode === 'silent' ? debouncedSilentValidation() : debouncedValidation());
2287
- // fields by id lookup
2288
- const fieldsById = formCtx.fieldsByPath.value || {};
2289
- // errors fields names, we need it to also check if custom errors are updated
2290
- const currentErrorsPaths = keysOf(formCtx.errorBag.value);
2291
- // collect all the keys from the schema and all fields
2292
- // this ensures we have a complete keymap of all the fields
2293
- const paths = [
2294
- ...new Set([...keysOf(formResult.results), ...keysOf(fieldsById), ...currentErrorsPaths]),
2295
- ];
2296
- // aggregates the paths into a single result object while applying the results on the fields
2297
- return paths.reduce((validation, path) => {
2298
- const field = fieldsById[path];
2299
- const messages = (formResult.results[path] || { errors: [] }).errors;
2300
- const fieldResult = {
2301
- errors: messages,
2302
- valid: !messages.length,
2303
- };
2304
- validation.results[path] = fieldResult;
2305
- if (!fieldResult.valid) {
2306
- validation.errors[path] = fieldResult.errors[0];
2307
- }
2308
- // field not rendered
2309
- if (!field) {
2310
- setFieldError(path, messages);
2311
- return validation;
2312
- }
2313
- // always update the valid flag regardless of the mode
2314
- applyFieldMutation(field, f => (f.meta.valid = fieldResult.valid));
2315
- if (mode === 'silent') {
2316
- return validation;
2317
- }
2318
- const wasValidated = Array.isArray(field) ? field.some(f => f.meta.validated) : field.meta.validated;
2319
- if (mode === 'validated-only' && !wasValidated) {
2320
- return validation;
2321
- }
2322
- applyFieldMutation(field, f => f.setState({ errors: fieldResult.errors }));
2323
- return validation;
2324
- }, { valid: formResult.valid, results: {}, errors: {} });
2325
- }
2326
2388
  const submitForm = handleSubmit((_, { evt }) => {
2327
2389
  if (isFormSubmitEvent(evt)) {
2328
2390
  evt.target.submit();
@@ -1,5 +1,5 @@
1
1
  /**
2
- * vee-validate v4.6.4
2
+ * vee-validate v4.6.7
3
3
  * (c) 2022 Abdelrahman Awad
4
4
  * @license MIT
5
5
  */
@@ -131,6 +131,51 @@
131
131
  return prop in obj && obj[prop] !== IS_ABSENT;
132
132
  }
133
133
 
134
+ // do not edit .js files directly - edit src/index.jst
135
+
136
+
137
+
138
+ var fastDeepEqual = function equal(a, b) {
139
+ if (a === b) return true;
140
+
141
+ if (a && b && typeof a == 'object' && typeof b == 'object') {
142
+ if (a.constructor !== b.constructor) return false;
143
+
144
+ var length, i, keys;
145
+ if (Array.isArray(a)) {
146
+ length = a.length;
147
+ if (length != b.length) return false;
148
+ for (i = length; i-- !== 0;)
149
+ if (!equal(a[i], b[i])) return false;
150
+ return true;
151
+ }
152
+
153
+
154
+
155
+ if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
156
+ if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
157
+ if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();
158
+
159
+ keys = Object.keys(a);
160
+ length = keys.length;
161
+ if (length !== Object.keys(b).length) return false;
162
+
163
+ for (i = length; i-- !== 0;)
164
+ if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
165
+
166
+ for (i = length; i-- !== 0;) {
167
+ var key = keys[i];
168
+
169
+ if (!equal(a[key], b[key])) return false;
170
+ }
171
+
172
+ return true;
173
+ }
174
+
175
+ // true if both NaN, false otherwise
176
+ return a!==a && b!==b;
177
+ };
178
+
134
179
  function cleanupNonNestedPath(path) {
135
180
  if (isNotNestedPath(path)) {
136
181
  return path.replace(/\[|\]/gi, '');
@@ -251,11 +296,12 @@
251
296
  function resolveNextCheckboxValue(currentValue, checkedValue, uncheckedValue) {
252
297
  if (Array.isArray(currentValue)) {
253
298
  const newVal = [...currentValue];
254
- const idx = newVal.indexOf(checkedValue);
299
+ // Use isEqual since checked object values can possibly fail the equality check #3883
300
+ const idx = newVal.findIndex(v => fastDeepEqual(v, checkedValue));
255
301
  idx >= 0 ? newVal.splice(idx, 1) : newVal.push(checkedValue);
256
302
  return newVal;
257
303
  }
258
- return currentValue === checkedValue ? uncheckedValue : checkedValue;
304
+ return fastDeepEqual(currentValue, checkedValue) ? uncheckedValue : checkedValue;
259
305
  }
260
306
  function debounceAsync(inner, ms = 0) {
261
307
  let timer = null;
@@ -277,12 +323,26 @@
277
323
  }
278
324
  function applyModelModifiers(value, modifiers) {
279
325
  if (!isObject(modifiers)) {
280
- return;
326
+ return value;
281
327
  }
282
328
  if (modifiers.number) {
283
329
  return toNumber(value);
284
330
  }
285
331
  return value;
332
+ }
333
+ function withLatest(fn, onDone) {
334
+ let latestRun;
335
+ return async function runLatest(...args) {
336
+ const pending = fn(...args);
337
+ latestRun = pending;
338
+ const result = await pending;
339
+ if (pending !== latestRun) {
340
+ return result;
341
+ }
342
+ latestRun = undefined;
343
+ onDone(result, args);
344
+ return result;
345
+ };
286
346
  }
287
347
 
288
348
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -840,7 +900,7 @@
840
900
  modelRef.value = value;
841
901
  return;
842
902
  }
843
- form.setFieldInitialValue(vue.unref(path), value);
903
+ form.stageInitialValue(vue.unref(path), value, true);
844
904
  }
845
905
  const initialValue = vue.computed(resolveInitialValue);
846
906
  // if no form is associated, use a regular ref.
@@ -975,10 +1035,11 @@
975
1035
  bails,
976
1036
  });
977
1037
  }
978
- async function validateWithStateMutation() {
1038
+ const validateWithStateMutation = withLatest(async () => {
979
1039
  meta.pending = true;
980
1040
  meta.validated = true;
981
- const result = await validateCurrentValue('validated-only');
1041
+ return validateCurrentValue('validated-only');
1042
+ }, result => {
982
1043
  if (markedForRemoval) {
983
1044
  result.valid = true;
984
1045
  result.errors = [];
@@ -986,23 +1047,21 @@
986
1047
  setState({ errors: result.errors });
987
1048
  meta.pending = false;
988
1049
  return result;
989
- }
990
- async function validateValidStateOnly() {
991
- const result = await validateCurrentValue('silent');
1050
+ });
1051
+ const validateValidStateOnly = withLatest(async () => {
1052
+ return validateCurrentValue('silent');
1053
+ }, result => {
992
1054
  if (markedForRemoval) {
993
1055
  result.valid = true;
994
1056
  }
995
1057
  meta.valid = result.valid;
996
1058
  return result;
997
- }
1059
+ });
998
1060
  function validate$1(opts) {
999
- if (!(opts === null || opts === void 0 ? void 0 : opts.mode) || (opts === null || opts === void 0 ? void 0 : opts.mode) === 'force') {
1000
- return validateWithStateMutation();
1001
- }
1002
- if ((opts === null || opts === void 0 ? void 0 : opts.mode) === 'validated-only') {
1003
- return validateWithStateMutation();
1061
+ if ((opts === null || opts === void 0 ? void 0 : opts.mode) === 'silent') {
1062
+ return validateValidStateOnly();
1004
1063
  }
1005
- return validateValidStateOnly();
1064
+ return validateWithStateMutation();
1006
1065
  }
1007
1066
  // Common input/change event handler
1008
1067
  function handleChange(e, shouldValidate = true) {
@@ -1184,7 +1243,9 @@
1184
1243
  const checked = vue.computed(() => {
1185
1244
  const currentValue = vue.unref(field.value);
1186
1245
  const checkedVal = vue.unref(checkedValue);
1187
- return Array.isArray(currentValue) ? currentValue.includes(checkedVal) : checkedVal === currentValue;
1246
+ return Array.isArray(currentValue)
1247
+ ? currentValue.findIndex(v => es6(v, checkedVal)) >= 0
1248
+ : es6(checkedVal, currentValue);
1188
1249
  });
1189
1250
  function handleCheckboxChange(e, shouldValidate = true) {
1190
1251
  var _a;
@@ -1488,6 +1549,54 @@
1488
1549
  // form meta aggregations
1489
1550
  const meta = useFormMeta(fieldsByPath, formValues, originalInitialValues, errors);
1490
1551
  const schema = opts === null || opts === void 0 ? void 0 : opts.validationSchema;
1552
+ /**
1553
+ * Batches validation runs in 5ms batches
1554
+ * Must have two distinct batch queues to make sure they don't override each other settings #3783
1555
+ */
1556
+ const debouncedSilentValidation = debounceAsync(_validateSchema, 5);
1557
+ const debouncedValidation = debounceAsync(_validateSchema, 5);
1558
+ const validateSchema = withLatest(async (mode) => {
1559
+ return (await mode) === 'silent' ? debouncedSilentValidation() : debouncedValidation();
1560
+ }, (formResult, [mode]) => {
1561
+ // fields by id lookup
1562
+ const fieldsById = formCtx.fieldsByPath.value || {};
1563
+ // errors fields names, we need it to also check if custom errors are updated
1564
+ const currentErrorsPaths = keysOf(formCtx.errorBag.value);
1565
+ // collect all the keys from the schema and all fields
1566
+ // this ensures we have a complete keymap of all the fields
1567
+ const paths = [
1568
+ ...new Set([...keysOf(formResult.results), ...keysOf(fieldsById), ...currentErrorsPaths]),
1569
+ ];
1570
+ // aggregates the paths into a single result object while applying the results on the fields
1571
+ return paths.reduce((validation, path) => {
1572
+ const field = fieldsById[path];
1573
+ const messages = (formResult.results[path] || { errors: [] }).errors;
1574
+ const fieldResult = {
1575
+ errors: messages,
1576
+ valid: !messages.length,
1577
+ };
1578
+ validation.results[path] = fieldResult;
1579
+ if (!fieldResult.valid) {
1580
+ validation.errors[path] = fieldResult.errors[0];
1581
+ }
1582
+ // field not rendered
1583
+ if (!field) {
1584
+ setFieldError(path, messages);
1585
+ return validation;
1586
+ }
1587
+ // always update the valid flag regardless of the mode
1588
+ applyFieldMutation(field, f => (f.meta.valid = fieldResult.valid));
1589
+ if (mode === 'silent') {
1590
+ return validation;
1591
+ }
1592
+ const wasValidated = Array.isArray(field) ? field.some(f => f.meta.validated) : field.meta.validated;
1593
+ if (mode === 'validated-only' && !wasValidated) {
1594
+ return validation;
1595
+ }
1596
+ applyFieldMutation(field, f => f.setState({ errors: fieldResult.errors }));
1597
+ return validation;
1598
+ }, { valid: formResult.valid, results: {}, errors: {} });
1599
+ });
1491
1600
  const formCtx = {
1492
1601
  formId,
1493
1602
  fieldsByPath,
@@ -1889,53 +1998,6 @@
1889
1998
  });
1890
1999
  return formResult;
1891
2000
  }
1892
- /**
1893
- * Batches validation runs in 5ms batches
1894
- * Must have two distinct batch queues to make sure they don't override each other settings #3783
1895
- */
1896
- const debouncedSilentValidation = debounceAsync(_validateSchema, 5);
1897
- const debouncedValidation = debounceAsync(_validateSchema, 5);
1898
- async function validateSchema(mode) {
1899
- const formResult = await (mode === 'silent' ? debouncedSilentValidation() : debouncedValidation());
1900
- // fields by id lookup
1901
- const fieldsById = formCtx.fieldsByPath.value || {};
1902
- // errors fields names, we need it to also check if custom errors are updated
1903
- const currentErrorsPaths = keysOf(formCtx.errorBag.value);
1904
- // collect all the keys from the schema and all fields
1905
- // this ensures we have a complete keymap of all the fields
1906
- const paths = [
1907
- ...new Set([...keysOf(formResult.results), ...keysOf(fieldsById), ...currentErrorsPaths]),
1908
- ];
1909
- // aggregates the paths into a single result object while applying the results on the fields
1910
- return paths.reduce((validation, path) => {
1911
- const field = fieldsById[path];
1912
- const messages = (formResult.results[path] || { errors: [] }).errors;
1913
- const fieldResult = {
1914
- errors: messages,
1915
- valid: !messages.length,
1916
- };
1917
- validation.results[path] = fieldResult;
1918
- if (!fieldResult.valid) {
1919
- validation.errors[path] = fieldResult.errors[0];
1920
- }
1921
- // field not rendered
1922
- if (!field) {
1923
- setFieldError(path, messages);
1924
- return validation;
1925
- }
1926
- // always update the valid flag regardless of the mode
1927
- applyFieldMutation(field, f => (f.meta.valid = fieldResult.valid));
1928
- if (mode === 'silent') {
1929
- return validation;
1930
- }
1931
- const wasValidated = Array.isArray(field) ? field.some(f => f.meta.validated) : field.meta.validated;
1932
- if (mode === 'validated-only' && !wasValidated) {
1933
- return validation;
1934
- }
1935
- applyFieldMutation(field, f => f.setState({ errors: fieldResult.errors }));
1936
- return validation;
1937
- }, { valid: formResult.valid, results: {}, errors: {} });
1938
- }
1939
2001
  const submitForm = handleSubmit((_, { evt }) => {
1940
2002
  if (isFormSubmitEvent(evt)) {
1941
2003
  evt.target.submit();
@@ -1,6 +1,6 @@
1
1
  /**
2
- * vee-validate v4.6.4
2
+ * vee-validate v4.6.7
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 V(e){return p(e)?e.replace(/\[|\]/gi,""):e}function O(e,t,n){if(!e)return n;if(p(t))return e[V(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 F(e,t,n){if(p(t))return void(e[V(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 A(e,t){Array.isArray(e)&&i(t)?e.splice(Number(t),1):a(e)&&delete e[t]}function w(e,t){if(p(t))return void delete e[V(t)];const n=t.split(/\.|\[(\d+)\]/).filter(Boolean);let a=e;for(let e=0;e<n.length;e++){if(e===n.length-1){A(a,n[e]);break}if(!(n[e]in a)||r(a[n[e]]))break;a=a[n[e]]}const i=n.map(((t,r)=>O(e,n.slice(0,r).join("."))));for(let t=i.length-1;t>=0;t--)v(i[t])&&(0!==t?A(i[t-1],n[t-1]):A(e,n[0]))}function j(e){return Object.keys(e)}function E(e,n){const r=t.getCurrentInstance();return(null==r?void 0:r.provides[e])||t.inject(e,n)}function S(e){t.warn(`[vee-validate]: ${e}`)}function k(e){return Array.isArray(e)?e[0]:e}function B(e,t,n){if(Array.isArray(e)){const n=[...e],r=n.indexOf(t);return r>=0?n.splice(r,1):n.push(t),n}return e===t?n:t}function I(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 M(e,t){if(a(t))return t.number?function(e){const t=parseFloat(e);return isNaN(t)?e:t}(e):e}const T=(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 C(e){if(R(e))return e._value}function R(e){return"_value"in e}function x(e){if(!g(e))return e;const t=e.target;if(f(t.type)&&R(t))return C(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(C);var n;if(m(t)){const e=Array.from(t.options).find((e=>e.selected));return e?C(e):t.value}return t.value}function N(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]=P(r)),t}),t):"string"!=typeof e?t:e.split("|").reduce(((e,t)=>{const n=_(t);return n.name?(e[n.name]=P(n.params),e):e}),t):t}function P(e){const t=e=>"string"==typeof e&&"@"===e[0]?function(e){const t=t=>O(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 _=e=>{let t=[];const n=e.split(":")[0];return e.includes(":")&&(t=e.split(":").slice(1).join(":").split(",")),{name:n,params:t}};let U=Object.assign({},{generateMessage:({field:e})=>`${e} is not valid.`,bails:!0,validateOnBlur:!0,validateOnChange:!0,validateOnInput:!1,validateOnModelUpdate:!0});const $=()=>U,D=e=>{U=Object.assign(Object.assign({},U),e)};async function q(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:L(n);if(i.push(l),e.bails)return{errors:i}}return{errors:i}}const r=Object.assign(Object.assign({},e),{rules:N(e.rules)}),a=[],i=Object.keys(r.rules),u=i.length;for(let n=0;n<u;n++){const u=i[n],o=await z(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 z(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:L(o)}}function L(e){const t=$().generateMessage;return t?t(e):"Field is invalid"}async function K(e,t,n){const r=j(e).map((async r=>{var a,i,u;const o=await q(O(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 G(e,t,n){"object"==typeof n.value&&(n.value=X(n.value)),n.enumerable&&!n.get&&!n.set&&n.configurable&&n.writable&&"__proto__"!==t?e[t]=n.value:Object.defineProperty(e,t,n)}function X(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(X(e))}))):"[object Map]"===i?(r=new Map,e.forEach((function(e,t){r.set(X(t),X(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(X(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++)G(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]||G(r,t,Object.getOwnPropertyDescriptor(e,t))}return r||e}var H=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 instanceof Map&&n instanceof Map){if(t.size!==n.size)return!1;for(a of t.entries())if(!n.has(a[0]))return!1;for(a of t.entries())if(!e(a[1],n.get(a[0])))return!1;return!0}if(t instanceof Set&&n instanceof Set){if(t.size!==n.size)return!1;for(a of t.entries())if(!n.has(a[0]))return!1;return!0}if(ArrayBuffer.isView(t)&&ArrayBuffer.isView(n)){if((r=t.length)!=n.length)return!1;for(a=r;0!=a--;)if(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};let J=0;function Q(e,n){const{value:r,initialValue:a,setInitialValue:i}=W(e,n.modelValue,!n.standalone),{errorMessage:u,errors:l,setErrors:s}=function(e,n){const r=n?E(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((()=>!H(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:J>=Number.MAX_SAFE_INTEGER?0:++J,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 W(e,n,r=!0){const a=!0===r?E(o,void 0):void 0,i=t.ref(t.unref(n));function u(){return a?O(a.meta.value.initialValues,t.unref(e),t.unref(i)):t.unref(i)}function l(n){a?a.setFieldInitialValue(t.unref(e),n):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):O(a.values,t.unref(e),t.unref(s));a.stageInitialValue(t.unref(e),d,!0);return{value:t.computed({get:()=>O(a.values,t.unref(e)),set(n){a.setFieldValue(t.unref(e),n)}}),initialValue:s,setInitialValue:l}}function Y(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:E(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.includes(r):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;let d=x(o);a||(d=B(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(Z(e,n,r))}(e,n,r):Z(e,n,r)}function Z(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),A=g?void 0:E(o);let w=!1;const{id:S,value:k,initialValue:B,meta:I,setState:T,errors:C,errorMessage:R}=Q(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=>{H(e,ee(a,i))||a.emit(u,e)})),t.watch((()=>ee(a,i)),(e=>{if(e===s&&void 0===n.value)return;const t=e===s?void 0:e;H(t,M(n.value,a.props.modelModifiers))||r(t)}))}({value:k,prop:V,handleChange:D});const P=t.computed((()=>{let a=t.unref(r);const i=t.unref(null==A?void 0:A.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:N(a)}));async function _(n){var r,a;return(null==A?void 0:A.validateSchema)?null!==(r=(await A.validateSchema(n)).results[t.unref(e)])&&void 0!==r?r:{valid:!0,errors:[]}:q(k.value,P.value,{name:t.unref(m)||t.unref(e),values:null!==(a=null==A?void 0:A.values)&&void 0!==a?a:{},bails:f})}async function U(){I.pending=!0,I.validated=!0;const e=await _("validated-only");return w&&(e.valid=!0,e.errors=[]),T({errors:e.errors}),I.pending=!1,e}async function $(){const e=await _("silent");return w&&(e.valid=!0),I.valid=e.valid,e}function D(e,t=!0){const n=x(e);k.value=n,!h&&t&&U()}let z;function L(){z=t.watch(k,((e,t)=>{if(H(e,t))return;(h?U:$)()}),{deep:!0})}function K(e){var n;null==z||z();const r=e&&"value"in e?e.value:B.value;T({value:X(r),initialValue:X(r),touched:null!==(n=null==e?void 0:e.touched)&&void 0!==n&&n,errors:(null==e?void 0:e.errors)||[]}),I.pending=!1,I.validated=!1,$(),t.nextTick((()=>{L()}))}t.onMounted((()=>{if(u)return U();A&&A.validateSchema||$()})),L();const G={id:S,name:e,label:m,value:k,meta:I,errors:C,errorMessage:R,type:v,checkedValue:p,uncheckedValue:y,bails:f,keepValueOnUnmount:b,resetField:K,handleReset:()=>K(),validate:function(e){return(null==e?void 0:e.mode)&&"force"!==(null==e?void 0:e.mode)?"validated-only"===(null==e?void 0:e.mode)?U():$():U()},handleChange:D,handleBlur:()=>{I.touched=!0},setState:T,setTouched:function(e){I.touched=e},setErrors:function(e){T({errors:Array.isArray(e)?e:[e]})},setValue:function(e){k.value=e}};if(t.provide(l,G),t.isRef(r)&&"function"!=typeof t.unref(r)&&t.watch(r,((e,t)=>{H(e,t)||(I.validated?U():$())}),{deep:!0}),!A)return G;A.register(G),t.onBeforeUnmount((()=>{w=!0,A.unregister(G)}));const J=t.computed((()=>{const e=P.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):j(a).filter((e=>d(a[e]))).map((e=>a[e]))).map((e=>e.__locatorRef)).reduce(((e,t)=>{const n=O(A.values,t)||A.values[t];return void 0!==n&&(e[t]=n),e}),{});var a;return Object.assign(t,r),t}),{})}));return t.watch(J,((e,t)=>{if(!Object.keys(e).length)return;!H(e,t)&&(I.validated?U():$())})),G}function ee(e,t){return e.props[t]}function te(e,t){let n=e.as||"";return e.as||t.slots.default||(n="input"),n}function ne(e,t){return f(t.attrs.type)?b(e,"modelValue")?e.modelValue:void 0:b(e,"modelValue")?e.modelValue:t.attrs.value}const re=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:()=>$().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:V,setErrors:O}=Y(a,r,{validateOnMount:e.validateOnMount,bails:e.bails,standalone:e.standalone,type:n.attrs.type,initialValue:ne(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=x(e))})(e),n.emit("update:modelValue",s.value)},w=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}=$();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)&&V&&(d.checked=V.value);return h(te(e,n),n.attrs)&&(d.value=s.value),d}));function j(){return{field:w.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:O}}return n.expose({setErrors:O,setTouched:m,reset:y,validate:c,handleChange:v}),()=>{const r=t.resolveDynamicComponent(te(e,n)),a=T(r,n,j);return r?t.h(r,Object.assign(Object.assign({},n.attrs),w.value),a):a}}});let ae=0;function ie(e){var n;const r=ae++;let a=!1;const i=t.ref({}),u=t.ref(!1),l=t.ref(0),s=[],d=t.reactive(X(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=j(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((()=>j(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((()=>j(i.value).reduce(((e,n)=>{const r=g(n);return r&&(e[n]=t.unref(r.label||r.name)||""),e}),{}))),A=t.computed((()=>j(i.value).reduce(((e,t)=>{var n;const r=g(t);return r&&(e[t]=null===(n=r.bails)||void 0===n||n),e}),{}))),E=Object.assign({},(null==e?void 0:e.initialErrors)||{}),S=null!==(n=null==e?void 0:e.keepValuesOnUnmount)&&void 0!==n&&n,{initialValues:k,originalInitialValues:M,setInitialValues:T}=function(e,n,r){const a=t.ref(X(t.unref(r))||{}),i=t.ref(X(t.unref(r))||{});function u(t,r=!1){a.value=X(t),i.value=X(t),r&&j(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=O(a.value,t);F(n,t,X(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),C=function(e,n,r,a){const i={touched:"some",pending:"some",valid:"every"},u=t.computed((()=>!H(n,t.unref(r))));function o(){const t=Object.values(e.value).flat(1).filter(Boolean);return j(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&&!j(a.value).length,dirty:u.value})))}(i,d,M,h),R=null==e?void 0:e.validationSchema,x={formId:r,fieldsByPath:i,values:d,errorBag:f,errors:h,schema:R,submitCount:l,meta:C,isSubmitting:u,fieldArrays:s,keepValuesOnUnmount:S,validateSchema:t.unref(R)?async function(e){const t=await("silent"===e?ue():oe()),n=x.fieldsByPath.value||{},r=j(x.errorBag.value);return[...new Set([...j(t.results),...j(n),...r])].reduce(((r,a)=>{const i=n[a],u=(t.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 U(a,u),r;if(P(i,(e=>e.meta.valid=o.valid)),"silent"===e)return r;const l=Array.isArray(i)?i.some((e=>e.meta.validated)):i.meta.validated;return"validated-only"!==e||l?(P(i,(e=>e.setState({errors:o.errors}))),r):r}),{valid:t.valid,results:{},errors:{}})}:void 0,validate:ee,register:function(e){const n=t.unref(e.name);Y(e,n),t.isRef(e.name)&&t.watch(e.name,(async(n,r)=>{await t.nextTick(),Z(e,r),Y(e,n),(h.value[r]||h.value[n])&&(U(r,void 0),te(n)),await t.nextTick(),b(r)||w(d,r)}));const r=t.unref(e.errorMessage);r&&(null==E?void 0:E[n])!==r&&te(n);delete E[n]},unregister:function(e){const n=t.unref(e.name),r=i.value[n],a=!!r&&N(r);Z(e,n),t.nextTick((()=>{var u;const o=null!==(u=t.unref(e.keepValueOnUnmount))&&void 0!==u?u:t.unref(S),l=O(d,n);if(a&&(r===i.value[n]||!i.value[n])&&Array.isArray(l)&&!o){const r=l.findIndex((n=>H(n,t.unref(e.checkedValue))));if(r>-1){const e=[...l];e.splice(r,1),D(n,e,{force:!0})}}if(!b(n)){if(U(n,void 0),o)return;if(a&&!v(O(d,n)))return;w(d,n)}}))},setFieldErrorBag:m,validateField:te,setFieldValue:D,setValues:q,setErrors:$,setFieldError:U,setFieldTouched:G,setTouched:J,resetForm:Q,handleSubmit:ne,stageInitialValue:function(t,n,r=!1){F(d,t,n),re(t,n),r&&!(null==e?void 0:e.initialValues)&&F(M.value,t,X(n))},unsetInitialValue:function(e){w(k.value,e)},setFieldInitialValue:re,useFieldModel:L};function N(e){return Array.isArray(e)}function P(e,t){return Array.isArray(e)?e.forEach(t):t(e)}function _(e){Object.values(i.value).forEach((t=>{t&&P(t,e)}))}function U(e,t){m(e,t)}function $(e){p(e)}function D(e,n,{force:r}={force:!1}){var u;const o=i.value[e],l=X(n);if(!o)return void F(d,e,l);if(N(o)&&"checkbox"===(null===(u=o[0])||void 0===u?void 0:u.type)&&!Array.isArray(n)){const t=X(B(O(d,e)||[],n,void 0));return void F(d,e,t)}let s=n;N(o)||"checkbox"!==o.type||r||a||(s=X(B(O(d,e),n,t.unref(o.uncheckedValue)))),F(d,e,s)}function q(e){j(d).forEach((e=>{delete d[e]})),j(e).forEach((t=>{D(t,e[t])})),s.forEach((e=>e&&e.reset()))}function z(e){const{value:n}=W(e);return t.watch(n,(()=>{b(t.unref(e))||ee({mode:"validated-only"})}),{deep:!0}),n}function L(e){return Array.isArray(e)?e.map(z):z(e)}function G(e,t){const n=i.value[e];n&&P(n,(e=>e.setTouched(t)))}function J(e){j(e).forEach((t=>{G(t,!!e[t])}))}function Q(e){a=!0,(null==e?void 0:e.values)?(T(e.values),q(null==e?void 0:e.values)):(T(M.value),q(M.value)),_((e=>e.resetField())),(null==e?void 0:e.touched)&&J(e.touched),$((null==e?void 0:e.errors)||{}),l.value=(null==e?void 0:e.submitCount)||0,t.nextTick((()=>{a=!1}))}function Y(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 Z(e,t){const n=t,r=i.value[n];if(r)if(N(r)||e.id!==r.id){if(N(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 ee(e){if(_((e=>e.meta.validated=!0)),x.validateSchema)return x.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 te(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 ne(e,t){return function(n){return n instanceof Event&&(n.preventDefault(),n.stopPropagation()),J(j(i.value).reduce(((e,t)=>(e[t]=!0,e)),{})),u.value=!0,l.value++,ee().then((r=>{if(r.valid&&"function"==typeof e)return e(X(d),{evt:n,setErrors:$,setFieldError:U,setTouched:J,setFieldTouched:G,setValues:q,setFieldValue:D,resetForm:Q});r.valid||"function"!=typeof t||t({values:X(d),evt:n,errors:r.errors,results:r.results})})).then((e=>(u.value=!1,e)),(e=>{throw u.value=!1,e}))}}function re(e,t){F(k.value,e,X(t))}async function ie(){const e=t.unref(R);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 K(e,d,{names:V.value,bailsMap:A.value});return n}const ue=I(ie,5),oe=I(ie,5);const le=ne(((e,{evt:t})=>{y(t)&&t.target.submit()}));return t.onMounted((()=>{(null==e?void 0:e.initialErrors)&&$(e.initialErrors),(null==e?void 0:e.initialTouched)&&J(e.initialTouched),(null==e?void 0:e.validateOnMount)?ee():x.validateSchema&&x.validateSchema("silent")})),t.isRef(R)&&t.watch(R,(()=>{var e;null===(e=x.validateSchema)||void 0===e||e.call(x,"validated-only")})),t.provide(o,x),{errors:h,meta:C,values:d,isSubmitting:u,submitCount:l,validate:ee,validateField:te,handleReset:()=>Q(),resetForm:Q,handleSubmit:ne,submitForm:le,setFieldError:U,setErrors:$,setFieldValue:D,setValues:q,setFieldTouched:G,setTouched:J,useFieldModel:L}}const ue=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:V,setValues:O,setFieldTouched:F,setTouched:A}=ie({validationSchema:a.value?a:void 0,initialValues:r,initialErrors:e.initialErrors,initialTouched:e.initialTouched,validateOnMount:e.validateOnMount,keepValuesOnUnmount:i}),w=m(((e,{evt:t})=>{y(t)&&t.target.submit()}),e.onInvalidSubmit),j=e.onSubmit?m(e.onSubmit,e.onInvalidSubmit):w;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:w,setErrors:h,setFieldError:b,setFieldValue:V,setValues:O,setFieldTouched:F,setTouched:A,resetForm:p}}return n.expose({setFieldError:b,setErrors:h,setFieldValue:V,setValues:O,setFieldTouched:F,setTouched:A,resetForm:p,validate:c,validateField:f}),function(){const r="form"===e.as?e.as:t.resolveDynamicComponent(e.as),a=T(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:j,onReset:E}),a)}}}),oe=ue;function le(e){const n=E(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 S("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 S("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=O(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=O(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):S("Attempting to update a non-existent array item")}}),isFirst:!1,isLast:!1};return u}function v(r,a){const i=t.unref(e),u=O(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=O(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=O(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=O(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=O(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=O(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=O(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 se=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}=le(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}),()=>T(void 0,n,f)}}),de=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=T(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=de,e.Field=re,e.FieldArray=se,e.FieldContextKey=l,e.Form=oe,e.FormContextKey=o,e.IS_ABSENT=s,e.configure=D,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=Y,e.useFieldArray=le,e.useFieldError=function(e){const n=E(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=E(o),r=e?void 0:t.inject(l);return t.computed((()=>e?O(null==n?void 0:n.values,t.unref(e)):t.unref(null==r?void 0:r.value)))},e.useForm=ie,e.useFormErrors=function(){const e=E(o);return e||S("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=E(o);return e||S("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=E(o);let r=e?void 0:t.inject(l);return t.computed((()=>(e&&(r=k(null==n?void 0:n.fieldsByPath.value[t.unref(e)])),r?r.meta.dirty:(S(`field with name ${t.unref(e)} was not found`),!1))))},e.useIsFieldTouched=function(e){const n=E(o);let r=e?void 0:t.inject(l);return t.computed((()=>(e&&(r=k(null==n?void 0:n.fieldsByPath.value[t.unref(e)])),r?r.meta.touched:(S(`field with name ${t.unref(e)} was not found`),!1))))},e.useIsFieldValid=function(e){const n=E(o);let r=e?void 0:t.inject(l);return t.computed((()=>(e&&(r=k(null==n?void 0:n.fieldsByPath.value[t.unref(e)])),r?r.meta.valid:(S(`field with name ${t.unref(e)} was not found`),!1))))},e.useIsFormDirty=function(){const e=E(o);return e||S("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=E(o);return e||S("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=E(o);return e||S("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=E(o);return e||S("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=E(o);return e||S("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=E(o);return e||S("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=E(o);t||S("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=E(o);let r=e?void 0:t.inject(l);return function(){return e&&(r=k(null==n?void 0:n.fieldsByPath.value[t.unref(e)])),r?r.validate():(S(`field with name ${t.unref(e)} was not found`),Promise.resolve({errors:[],valid:!0}))}},e.useValidateForm=function(){const e=E(o);return e||S("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=q,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 r(e){return"function"==typeof e}function n(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");function d(e){return r(e)&&!!e.__locatorRef}function c(e){return!!e&&r(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 r=![!1,null,void 0,0].includes(t.multiple)&&!Number.isNaN(t.multiple);return"select"===e&&"multiple"in t&&r}(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&&r(Event)&&e instanceof Event)||!(!e||!e.srcElement))}function b(e,t){return t in e&&e[t]!==s}var O=function e(t,r){if(t===r)return!0;if(t&&r&&"object"==typeof t&&"object"==typeof r){if(t.constructor!==r.constructor)return!1;var n,a,u;if(Array.isArray(t)){if((n=t.length)!=r.length)return!1;for(a=n;0!=a--;)if(!e(t[a],r[a]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if((n=(u=Object.keys(t)).length)!==Object.keys(r).length)return!1;for(a=n;0!=a--;)if(!Object.prototype.hasOwnProperty.call(r,u[a]))return!1;for(a=n;0!=a--;){var i=u[a];if(!e(t[i],r[i]))return!1}return!0}return t!=t&&r!=r};function V(e){return p(e)?e.replace(/\[|\]/gi,""):e}function F(e,t,r){if(!e)return r;if(p(t))return e[V(t)];return(t||"").split(/\.|\[(\d+)\]/).filter(Boolean).reduce(((e,t)=>{return(a(n=e)||Array.isArray(n))&&t in e?e[t]:r;var n}),e)}function A(e,t,r){if(p(t))return void(e[V(t)]=r);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]]=r);a[e]in i&&!n(i[a[e]])||(i[a[e]]=u(a[e+1])?[]:{}),i=i[a[e]]}}function j(e,t){Array.isArray(e)&&u(t)?e.splice(Number(t),1):a(e)&&delete e[t]}function w(e,t){if(p(t))return void delete e[V(t)];const r=t.split(/\.|\[(\d+)\]/).filter(Boolean);let a=e;for(let e=0;e<r.length;e++){if(e===r.length-1){j(a,r[e]);break}if(!(r[e]in a)||n(a[r[e]]))break;a=a[r[e]]}const u=r.map(((t,n)=>F(e,r.slice(0,n).join("."))));for(let t=u.length-1;t>=0;t--)v(u[t])&&(0!==t?j(u[t-1],r[t-1]):j(e,r[0]))}function E(e){return Object.keys(e)}function S(e,r){const n=t.getCurrentInstance();return(null==n?void 0:n.provides[e])||t.inject(e,r)}function k(e){t.warn(`[vee-validate]: ${e}`)}function B(e){return Array.isArray(e)?e[0]:e}function I(e,t,r){if(Array.isArray(e)){const r=[...e],n=r.findIndex((e=>O(e,t)));return n>=0?r.splice(n,1):r.push(t),r}return O(e,t)?r:t}function M(e,t=0){let r=null,n=[];return function(...a){return r&&window.clearTimeout(r),r=window.setTimeout((()=>{const t=e(...a);n.forEach((e=>e(t))),n=[]}),t),new Promise((e=>n.push(e)))}}function T(e,t){return a(t)&&t.number?function(e){const t=parseFloat(e);return isNaN(t)?e:t}(e):e}function C(e,t){let r;return async function(...n){const a=e(...n);r=a;const u=await a;return a!==r||(r=void 0,t(u,n)),u}}const R=(e,t,r)=>t.slots.default?"string"!=typeof e&&e?{default:()=>{var e,n;return null===(n=(e=t.slots).default)||void 0===n?void 0:n.call(e,r())}}:t.slots.default(r()):t.slots.default;function x(e){if(P(e))return e._value}function P(e){return"_value"in e}function N(e){if(!g(e))return e;const t=e.target;if(f(t.type)&&P(t))return x(t);if("file"===t.type&&t.files){const e=Array.from(t.files);return t.multiple?e:e[0]}if(m(r=t)&&r.multiple)return Array.from(t.options).filter((e=>e.selected&&!e.disabled)).map(x);var r;if(m(t)){const e=Array.from(t.options).find((e=>e.selected));return e?x(e):t.value}return t.value}function _(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,r)=>{const n=function(e){if(!0===e)return[];if(Array.isArray(e))return e;if(a(e))return e;return[e]}(e[r]);return!1!==e[r]&&(t[r]=U(n)),t}),t):"string"!=typeof e?t:e.split("|").reduce(((e,t)=>{const r=$(t);return r.name?(e[r.name]=U(r.params),e):e}),t):t}function U(e){const t=e=>"string"==typeof e&&"@"===e[0]?function(e){const t=t=>F(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(((r,n)=>(r[n]=t(e[n]),r)),{})}const $=e=>{let t=[];const r=e.split(":")[0];return e.includes(":")&&(t=e.split(":").slice(1).join(":").split(",")),{name:r,params:t}};let D=Object.assign({},{generateMessage:({field:e})=>`${e} is not valid.`,bails:!0,validateOnBlur:!0,validateOnChange:!0,validateOnInput:!1,validateOnModelUpdate:!0});const q=()=>D,z=e=>{D=Object.assign(Object.assign({},D),e)};async function L(e,t,n={}){const a=null==n?void 0:n.bails,u={name:(null==n?void 0:n.name)||"{field}",rules:t,bails:null==a||a,formData:(null==n?void 0:n.values)||{}},i=await async function(e,t){if(c(e.rules))return async function(e,t,r){var n;return{errors:await t.validate(e,{abortEarly:null===(n=r.bails)||void 0===n||n}).then((()=>[])).catch((e=>{if("ValidationError"===e.name)return e.errors;throw e}))}}(t,e.rules,{bails:e.bails});if(r(e.rules)||Array.isArray(e.rules)){const r={field:e.name,form:e.formData,value:t},n=Array.isArray(e.rules)?e.rules:[e.rules],a=n.length,u=[];for(let i=0;i<a;i++){const a=n[i],o=await a(t,r);if("string"!=typeof o&&o)continue;const l="string"==typeof o?o:G(r);if(u.push(l),e.bails)return{errors:u}}return{errors:u}}const n=Object.assign(Object.assign({},e),{rules:_(e.rules)}),a=[],u=Object.keys(n.rules),i=u.length;for(let r=0;r<i;r++){const i=u[r],o=await K(n,t,{name:i,params:n.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 K(e,t,r){const n=(a=r.name,i[a]);var a;if(!n)throw new Error(`No such validator '${r.name}' exists.`);const u=function(e,t){const r=e=>d(e)?e(t):e;if(Array.isArray(e))return e.map(r);return Object.keys(e).reduce(((t,n)=>(t[n]=r(e[n]),t)),{})}(r.params,e.formData),o={field:e.name,value:t,form:e.formData,rule:Object.assign(Object.assign({},r),{params:u})},l=await n(t,u,o);return"string"==typeof l?{error:l}:{error:l?void 0:G(o)}}function G(e){const t=q().generateMessage;return t?t(e):"Field is invalid"}async function X(e,t,r){const n=E(e).map((async n=>{var a,u,i;const o=await L(F(t,n),e[n],{name:(null===(a=null==r?void 0:r.names)||void 0===a?void 0:a[n])||n,values:t,bails:null===(i=null===(u=null==r?void 0:r.bailsMap)||void 0===u?void 0:u[n])||void 0===i||i});return Object.assign(Object.assign({},o),{path:n})}));let a=!0;const u=await Promise.all(n),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 H(e,t,r){"object"==typeof r.value&&(r.value=J(r.value)),r.enumerable&&!r.get&&!r.set&&r.configurable&&r.writable&&"__proto__"!==t?e[t]=r.value:Object.defineProperty(e,t,r)}function J(e){if("object"!=typeof e)return e;var t,r,n,a=0,u=Object.prototype.toString.call(e);if("[object Object]"===u?n=Object.create(e.__proto__||null):"[object Array]"===u?n=Array(e.length):"[object Set]"===u?(n=new Set,e.forEach((function(e){n.add(J(e))}))):"[object Map]"===u?(n=new Map,e.forEach((function(e,t){n.set(J(t),J(e))}))):"[object Date]"===u?n=new Date(+e):"[object RegExp]"===u?n=new RegExp(e.source,e.flags):"[object DataView]"===u?n=new e.constructor(J(e.buffer)):"[object ArrayBuffer]"===u?n=e.slice(0):"Array]"===u.slice(-6)&&(n=new e.constructor(e)),n){for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)H(n,r[a],Object.getOwnPropertyDescriptor(e,r[a]));for(a=0,r=Object.getOwnPropertyNames(e);a<r.length;a++)Object.hasOwnProperty.call(n,t=r[a])&&n[t]===e[t]||H(n,t,Object.getOwnPropertyDescriptor(e,t))}return n||e}var Q=function e(t,r){if(t===r)return!0;if(t&&r&&"object"==typeof t&&"object"==typeof r){if(t.constructor!==r.constructor)return!1;var n,a,u;if(Array.isArray(t)){if((n=t.length)!=r.length)return!1;for(a=n;0!=a--;)if(!e(t[a],r[a]))return!1;return!0}if(t instanceof Map&&r instanceof Map){if(t.size!==r.size)return!1;for(a of t.entries())if(!r.has(a[0]))return!1;for(a of t.entries())if(!e(a[1],r.get(a[0])))return!1;return!0}if(t instanceof Set&&r instanceof Set){if(t.size!==r.size)return!1;for(a of t.entries())if(!r.has(a[0]))return!1;return!0}if(ArrayBuffer.isView(t)&&ArrayBuffer.isView(r)){if((n=t.length)!=r.length)return!1;for(a=n;0!=a--;)if(t[a]!==r[a])return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if((n=(u=Object.keys(t)).length)!==Object.keys(r).length)return!1;for(a=n;0!=a--;)if(!Object.prototype.hasOwnProperty.call(r,u[a]))return!1;for(a=n;0!=a--;){var i=u[a];if(!e(t[i],r[i]))return!1}return!0}return t!=t&&r!=r};let W=0;function Y(e,r){const{value:n,initialValue:a,setInitialValue:u}=Z(e,r.modelValue,!r.standalone),{errorMessage:i,errors:l,setErrors:s}=function(e,r){const n=r?S(o,void 0):void 0;function a(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=a(t)}}}const u=t.computed((()=>n.errorBag.value[t.unref(e)]||[]));return{errors:u,errorMessage:t.computed((()=>u.value[0])),setErrors:r=>{n.setFieldErrorBag(t.unref(e),a(r))}}}(e,!r.standalone),d=function(e,r,n){const a=t.reactive({touched:!1,pending:!1,valid:!0,validated:!!t.unref(n).length,initialValue:t.computed((()=>t.unref(r))),dirty:t.computed((()=>!Q(t.unref(e),t.unref(r))))});return t.watch(n,(e=>{a.valid=!e.length}),{immediate:!0,flush:"sync"}),a}(n,a,l);return{id:W>=Number.MAX_SAFE_INTEGER?0:++W,path:e,value:n,initialValue:a,meta:d,errors:l,errorMessage:i,setState:function(e){var t;"value"in e&&(n.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&&u(e.initialValue)}}}function Z(e,r,n=!0){const a=!0===n?S(o,void 0):void 0,u=t.ref(t.unref(r));function i(){return a?F(a.meta.value.initialValues,t.unref(e),t.unref(u)):t.unref(u)}function l(r){a?a.stageInitialValue(t.unref(e),r,!0):u.value=r}const s=t.computed(i);if(!a){return{value:t.ref(i()),initialValue:s,setInitialValue:l}}const d=r?t.unref(r):F(a.values,t.unref(e),t.unref(s));a.stageInitialValue(t.unref(e),d,!0);return{value:t.computed({get:()=>F(a.values,t.unref(e)),set(r){a.setFieldValue(t.unref(e),r)}}),initialValue:s,setInitialValue:l}}function ee(e,r,n){return f(null==n?void 0:n.type)?function(e,r,n){const a=(null==n?void 0:n.standalone)?void 0:S(o),u=null==n?void 0:n.checkedValue,i=null==n?void 0:n.uncheckedValue;function l(e){const r=e.handleChange,n=t.computed((()=>{const r=t.unref(e.value),n=t.unref(u);return Array.isArray(r)?r.findIndex((e=>Q(e,n)))>=0:Q(n,r)}));function o(o,l=!0){var s;if(n.value===(null===(s=null==o?void 0:o.target)||void 0===s?void 0:s.checked))return;let d=N(o);a||(d=I(t.unref(e.value),t.unref(u),t.unref(i))),r(d,l)}return Object.assign(Object.assign({},e),{checked:n,checkedValue:u,uncheckedValue:i,handleChange:o})}return l(te(e,r,n))}(e,r,n):te(e,r,n)}function te(e,n,a){const{initialValue:u,validateOnMount:i,bails:f,type:v,checkedValue:p,label:m,validateOnValueUpdate:h,uncheckedValue:y,standalone:g,keepValueOnUnmount:b,modelPropName:O,syncVModel:V}=function(e,t){const r=()=>({initialValue:void 0,validateOnMount:!1,bails:!0,rules:"",label:e,validateOnValueUpdate:!0,standalone:!1,keepValueOnUnmount:void 0,modelPropName:"modelValue",syncVModel:!0});if(!t)return r();const n="valueProp"in t?t.valueProp:t.checkedValue;return Object.assign(Object.assign(Object.assign({},r()),t||{}),{checkedValue:n})}(t.unref(e),a),A=g?void 0:S(o);let j=!1;const{id:w,value:k,initialValue:B,meta:I,setState:M,errors:R,errorMessage:x}=Y(e,{modelValue:u,standalone:g});V&&function({prop:e,value:r,handleChange:n}){const a=t.getCurrentInstance();if(!a)return;const u=e||"modelValue",i=`update:${u}`;if(!(u in a.props))return;t.watch(r,(e=>{Q(e,re(a,u))||a.emit(i,e)})),t.watch((()=>re(a,u)),(e=>{if(e===s&&void 0===r.value)return;const t=e===s?void 0:e;Q(t,T(r.value,a.props.modelModifiers))||n(t)}))}({value:k,prop:O,handleChange:q});const P=t.computed((()=>{let a=t.unref(n);const u=t.unref(null==A?void 0:A.schema);return u&&!c(u)&&(a=function(e,t){if(!e)return;return e[t]}(u,t.unref(e))||a),c(a)||r(a)||Array.isArray(a)?a:_(a)}));async function U(r){var n,a;return(null==A?void 0:A.validateSchema)?null!==(n=(await A.validateSchema(r)).results[t.unref(e)])&&void 0!==n?n:{valid:!0,errors:[]}:L(k.value,P.value,{name:t.unref(m)||t.unref(e),values:null!==(a=null==A?void 0:A.values)&&void 0!==a?a:{},bails:f})}const $=C((async()=>(I.pending=!0,I.validated=!0,U("validated-only"))),(e=>(j&&(e.valid=!0,e.errors=[]),M({errors:e.errors}),I.pending=!1,e))),D=C((async()=>U("silent")),(e=>(j&&(e.valid=!0),I.valid=e.valid,e)));function q(e,t=!0){const r=N(e);k.value=r,!h&&t&&$()}let z;function K(){z=t.watch(k,((e,t)=>{if(Q(e,t))return;(h?$:D)()}),{deep:!0})}function G(e){var r;null==z||z();const n=e&&"value"in e?e.value:B.value;M({value:J(n),initialValue:J(n),touched:null!==(r=null==e?void 0:e.touched)&&void 0!==r&&r,errors:(null==e?void 0:e.errors)||[]}),I.pending=!1,I.validated=!1,D(),t.nextTick((()=>{K()}))}t.onMounted((()=>{if(i)return $();A&&A.validateSchema||D()})),K();const X={id:w,name:e,label:m,value:k,meta:I,errors:R,errorMessage:x,type:v,checkedValue:p,uncheckedValue:y,bails:f,keepValueOnUnmount:b,resetField:G,handleReset:()=>G(),validate:function(e){return"silent"===(null==e?void 0:e.mode)?D():$()},handleChange:q,handleBlur:()=>{I.touched=!0},setState:M,setTouched:function(e){I.touched=e},setErrors:function(e){M({errors:Array.isArray(e)?e:[e]})},setValue:function(e){k.value=e}};if(t.provide(l,X),t.isRef(n)&&"function"!=typeof t.unref(n)&&t.watch(n,((e,t)=>{Q(e,t)||(I.validated?$():D())}),{deep:!0}),!A)return X;A.register(X),t.onBeforeUnmount((()=>{j=!0,A.unregister(X)}));const H=t.computed((()=>{const e=P.value;return!e||r(e)||c(e)||Array.isArray(e)?{}:Object.keys(e).reduce(((t,r)=>{const n=(a=e[r],Array.isArray(a)?a.filter(d):E(a).filter((e=>d(a[e]))).map((e=>a[e]))).map((e=>e.__locatorRef)).reduce(((e,t)=>{const r=F(A.values,t)||A.values[t];return void 0!==r&&(e[t]=r),e}),{});var a;return Object.assign(t,n),t}),{})}));return t.watch(H,((e,t)=>{if(!Object.keys(e).length)return;!Q(e,t)&&(I.validated?$():D())})),X}function re(e,t){return e.props[t]}function ne(e,t){let r=e.as||"";return e.as||t.slots.default||(r="input"),r}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 ue=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,r){const n=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:d,validate:c,handleChange:v,handleBlur:p,setTouched:m,resetField:y,handleReset:g,meta:b,checked:O,setErrors:V}=ee(a,n,{validateOnMount:e.validateOnMount,bails:e.bails,standalone:e.standalone,type:r.attrs.type,initialValue:ae(e,r),checkedValue:r.attrs.value,uncheckedValue:i,label:u,validateOnValueUpdate:!1,keepValueOnUnmount:o}),F=function(e,t=!0){v(e,t),r.emit("update:modelValue",s.value)},A=function(e){(e=>{f(r.attrs.type)||(s.value=N(e))})(e),r.emit("update:modelValue",s.value)},j=t.computed((()=>{const{validateOnInput:t,validateOnChange:n,validateOnBlur:a,validateOnModelUpdate:u}=function(e){var t,r,n,a;const{validateOnInput:u,validateOnChange:i,validateOnBlur:o,validateOnModelUpdate:l}=q();return{validateOnInput:null!==(t=e.validateOnInput)&&void 0!==t?t:u,validateOnChange:null!==(r=e.validateOnChange)&&void 0!==r?r:i,validateOnBlur:null!==(n=e.validateOnBlur)&&void 0!==n?n:o,validateOnModelUpdate:null!==(a=e.validateOnModelUpdate)&&void 0!==a?a:l}}(e),i=[p,r.attrs.onBlur,a?c:void 0].filter(Boolean),o=[e=>F(e,t),r.attrs.onInput].filter(Boolean),l=[e=>F(e,n),r.attrs.onChange].filter(Boolean),d={name:e.name,onBlur:i,onInput:o,onChange:l,"onUpdate:modelValue":e=>F(e,u)};f(r.attrs.type)&&O&&(d.checked=O.value);return h(ne(e,r),r.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 r.expose({setErrors:V,setTouched:m,reset:y,validate:c,handleChange:v}),()=>{const n=t.resolveDynamicComponent(ne(e,r)),a=R(n,r,w);return n?t.h(n,Object.assign(Object.assign({},r.attrs),j.value),a):a}}});let ie=0;function oe(e){var r;const n=ie++;let a=!1;const u=t.ref({}),i=t.ref(!1),l=t.ref(0),s=[],d=t.reactive(J(t.unref(null==e?void 0:e.initialValues)||{})),{errorBag:f,setErrorBag:p,setFieldErrorBag:m}=function(e){const r=t.ref({});function n(e){return Array.isArray(e)?e:e?[e]:[]}function a(e,t){t?r.value[e]=n(t):delete r.value[e]}function u(e){r.value=E(e).reduce(((t,r)=>{const a=e[r];return a&&(t[r]=n(a)),t}),{})}e&&u(e);return{errorBag:r,setErrorBag:u,setFieldErrorBag:a}}(null==e?void 0:e.initialErrors),h=t.computed((()=>E(f.value).reduce(((e,t)=>{const r=f.value[t];return r&&r.length&&(e[t]=r[0]),e}),{})));function g(e){const t=u.value[e];return Array.isArray(t)?t[0]:t}function b(e){return!!u.value[e]}const O=t.computed((()=>E(u.value).reduce(((e,r)=>{const n=g(r);return n&&(e[r]=t.unref(n.label||n.name)||""),e}),{}))),V=t.computed((()=>E(u.value).reduce(((e,t)=>{var r;const n=g(t);return n&&(e[t]=null===(r=n.bails)||void 0===r||r),e}),{}))),j=Object.assign({},(null==e?void 0:e.initialErrors)||{}),S=null!==(r=null==e?void 0:e.keepValuesOnUnmount)&&void 0!==r&&r,{initialValues:k,originalInitialValues:B,setInitialValues:T}=function(e,r,n){const a=t.ref(J(t.unref(n))||{}),u=t.ref(J(t.unref(n))||{});function i(t,n=!1){a.value=J(t),u.value=J(t),n&&E(e.value).forEach((t=>{const n=e.value[t],u=Array.isArray(n)?n.some((e=>e.meta.touched)):null==n?void 0:n.meta.touched;if(!n||u)return;const i=F(a.value,t);A(r,t,J(i))}))}t.isRef(n)&&t.watch(n,(e=>{i(e,!0)}),{deep:!0});return{initialValues:a,originalInitialValues:u,setInitialValues:i}}(u,d,null==e?void 0:e.initialValues),R=function(e,r,n,a){const u={touched:"some",pending:"some",valid:"every"},i=t.computed((()=>!Q(r,t.unref(n))));function o(){const t=Object.values(e.value).flat(1).filter(Boolean);return E(u).reduce(((e,r)=>{const n=u[r];return e[r]=t[n]((e=>e.meta[r])),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(n)},l),{valid:l.valid&&!E(a.value).length,dirty:i.value})))}(u,d,B,h),x=null==e?void 0:e.validationSchema,P=M(se,5),N=M(se,5),_=C((async e=>"silent"===await e?P():N()),((e,[t])=>{const r=U.fieldsByPath.value||{},n=E(U.errorBag.value);return[...new Set([...E(e.results),...E(r),...n])].reduce(((n,a)=>{const u=r[a],i=(e.results[a]||{errors:[]}).errors,o={errors:i,valid:!i.length};if(n.results[a]=o,o.valid||(n.errors[a]=o.errors[0]),!u)return z(a,i),n;if(D(u,(e=>e.meta.valid=o.valid)),"silent"===t)return n;const l=Array.isArray(u)?u.some((e=>e.meta.validated)):u.meta.validated;return"validated-only"!==t||l?(D(u,(e=>e.setState({errors:o.errors}))),n):n}),{valid:e.valid,results:{},errors:{}})})),U={formId:n,fieldsByPath:u,values:d,errorBag:f,errors:h,schema:x,submitCount:l,meta:R,isSubmitting:i,fieldArrays:s,keepValuesOnUnmount:S,validateSchema:t.unref(x)?_:void 0,validate:ae,register:function(e){const r=t.unref(e.name);re(e,r),t.isRef(e.name)&&t.watch(e.name,(async(r,n)=>{await t.nextTick(),ne(e,n),re(e,r),(h.value[n]||h.value[r])&&(z(n,void 0),ue(r)),await t.nextTick(),b(n)||w(d,n)}));const n=t.unref(e.errorMessage);n&&(null==j?void 0:j[r])!==n&&ue(r);delete j[r]},unregister:function(e){const r=t.unref(e.name),n=u.value[r],a=!!n&&$(n);ne(e,r),t.nextTick((()=>{var i;const o=null!==(i=t.unref(e.keepValueOnUnmount))&&void 0!==i?i:t.unref(S),l=F(d,r);if(a&&(n===u.value[r]||!u.value[r])&&Array.isArray(l)&&!o){const n=l.findIndex((r=>Q(r,t.unref(e.checkedValue))));if(n>-1){const e=[...l];e.splice(n,1),K(r,e,{force:!0})}}if(!b(r)){if(z(r,void 0),o)return;if(a&&!v(F(d,r)))return;w(d,r)}}))},setFieldErrorBag:m,validateField:ue,setFieldValue:K,setValues:G,setErrors:L,setFieldError:z,setFieldTouched:Y,setTouched:ee,resetForm:te,handleSubmit:oe,stageInitialValue:function(t,r,n=!1){A(d,t,r),le(t,r),n&&!(null==e?void 0:e.initialValues)&&A(B.value,t,J(r))},unsetInitialValue:function(e){w(k.value,e)},setFieldInitialValue:le,useFieldModel:W};function $(e){return Array.isArray(e)}function D(e,t){return Array.isArray(e)?e.forEach(t):t(e)}function q(e){Object.values(u.value).forEach((t=>{t&&D(t,e)}))}function z(e,t){m(e,t)}function L(e){p(e)}function K(e,r,{force:n}={force:!1}){var i;const o=u.value[e],l=J(r);if(!o)return void A(d,e,l);if($(o)&&"checkbox"===(null===(i=o[0])||void 0===i?void 0:i.type)&&!Array.isArray(r)){const t=J(I(F(d,e)||[],r,void 0));return void A(d,e,t)}let s=r;$(o)||"checkbox"!==o.type||n||a||(s=J(I(F(d,e),r,t.unref(o.uncheckedValue)))),A(d,e,s)}function G(e){E(d).forEach((e=>{delete d[e]})),E(e).forEach((t=>{K(t,e[t])})),s.forEach((e=>e&&e.reset()))}function H(e){const{value:r}=Z(e);return t.watch(r,(()=>{b(t.unref(e))||ae({mode:"validated-only"})}),{deep:!0}),r}function W(e){return Array.isArray(e)?e.map(H):H(e)}function Y(e,t){const r=u.value[e];r&&D(r,(e=>e.setTouched(t)))}function ee(e){E(e).forEach((t=>{Y(t,!!e[t])}))}function te(e){a=!0,(null==e?void 0:e.values)?(T(e.values),G(null==e?void 0:e.values)):(T(B.value),G(B.value)),q((e=>e.resetField())),(null==e?void 0:e.touched)&&ee(e.touched),L((null==e?void 0:e.errors)||{}),l.value=(null==e?void 0:e.submitCount)||0,t.nextTick((()=>{a=!1}))}function re(e,r){const n=t.markRaw(e),a=r;if(!u.value[a])return void(u.value[a]=n);const i=u.value[a];i&&!Array.isArray(i)&&(u.value[a]=[i]),u.value[a]=[...u.value[a],n]}function ne(e,t){const r=t,n=u.value[r];if(n)if($(n)||e.id!==n.id){if($(n)){const t=n.findIndex((t=>t.id===e.id));if(-1===t)return;n.splice(t,1),n.length||delete u.value[r]}}else delete u.value[r]}async function ae(e){if(q((e=>e.meta.validated=!0)),U.validateSchema)return U.validateSchema((null==e?void 0:e.mode)||"force");const r=await Promise.all(Object.values(u.value).map((r=>{const n=Array.isArray(r)?r[0]:r;return n?n.validate(e).then((e=>({key:t.unref(n.name),valid:e.valid,errors:e.errors}))):Promise.resolve({key:"",valid:!0,errors:[]})}))),n={},a={};for(const e of r)n[e.key]={valid:e.valid,errors:e.errors},e.errors.length&&(a[e.key]=e.errors[0]);return{valid:r.every((e=>e.valid)),results:n,errors:a}}async function ue(e){const r=u.value[e];return r?Array.isArray(r)?r.map((e=>e.validate()))[0]:r.validate():(t.warn(`field with name ${e} was not found`),Promise.resolve({errors:[],valid:!0}))}function oe(e,t){return function(r){return r instanceof Event&&(r.preventDefault(),r.stopPropagation()),ee(E(u.value).reduce(((e,t)=>(e[t]=!0,e)),{})),i.value=!0,l.value++,ae().then((n=>{if(n.valid&&"function"==typeof e)return e(J(d),{evt:r,setErrors:L,setFieldError:z,setTouched:ee,setFieldTouched:Y,setValues:G,setFieldValue:K,resetForm:te});n.valid||"function"!=typeof t||t({values:J(d),evt:r,errors:n.errors,results:n.results})})).then((e=>(i.value=!1,e)),(e=>{throw i.value=!1,e}))}}function le(e,t){A(k.value,e,J(t))}async function se(){const e=t.unref(x);if(!e)return{valid:!0,results:{},errors:{}};const r=c(e)?await async function(e,t){const r=await e.validate(t,{abortEarly:!1}).then((()=>[])).catch((e=>{if("ValidationError"!==e.name)throw e;return e.inner||[]})),n={},a={};for(const e of r){const t=e.errors;n[e.path]={valid:!t.length,errors:t},t.length&&(a[e.path]=t[0])}return{valid:!r.length,results:n,errors:a}}(e,d):await X(e,d,{names:O.value,bailsMap:V.value});return r}const de=oe(((e,{evt:t})=>{y(t)&&t.target.submit()}));return t.onMounted((()=>{(null==e?void 0:e.initialErrors)&&L(e.initialErrors),(null==e?void 0:e.initialTouched)&&ee(e.initialTouched),(null==e?void 0:e.validateOnMount)?ae():U.validateSchema&&U.validateSchema("silent")})),t.isRef(x)&&t.watch(x,(()=>{var e;null===(e=U.validateSchema)||void 0===e||e.call(U,"validated-only")})),t.provide(o,U),{errors:h,meta:R,values:d,isSubmitting:i,submitCount:l,validate:ae,validateField:ue,handleReset:()=>te(),resetForm:te,handleSubmit:oe,submitForm:de,setFieldError:z,setErrors:L,setFieldValue:K,setValues:G,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,r){const n=t.toRef(e,"initialValues"),a=t.toRef(e,"validationSchema"),u=t.toRef(e,"keepValues"),{errors:i,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:n,initialErrors:e.initialErrors,initialTouched:e.initialTouched,validateOnMount:e.validateOnMount,keepValuesOnUnmount:u}),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 r.attrs.onReset&&r.attrs.onReset()}function S(t,r){return m("function"!=typeof t||r?r:t,e.onInvalidSubmit)(t)}function k(){return{meta:l.value,errors:i.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 r.expose({setFieldError:b,setErrors:h,setFieldValue:O,setValues:V,setFieldTouched:F,setTouched:A,resetForm:p,validate:c,validateField:f}),function(){const n="form"===e.as?e.as:t.resolveDynamicComponent(e.as),a=R(n,r,k);if(!e.as)return a;const u="form"===e.as?{novalidate:!0}:{};return t.h(n,Object.assign(Object.assign(Object.assign({},u),r.attrs),{onSubmit:w,onReset:E}),a)}}}),se=le;function de(e){const r=S(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(!r)return k("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 k("FieldArray requires a field path to be provided, did you forget to pass the `name` prop?"),i;const l=r.fieldArrays.find((r=>t.unref(r.path)===t.unref(e)));if(l)return l;let s=0;function d(){const n=F(null==r?void 0:r.values,t.unref(e),[])||[];a.value=n.map(f),c()}function c(){const e=a.value.length;for(let t=0;t<e;t++){const r=a.value[t];r.isFirst=0===t,r.isLast=t===e-1}}function f(n){const u=s++,i={key:u,value:t.computed({get(){const i=F(null==r?void 0:r.values,t.unref(e),[])||[],o=a.value.findIndex((e=>e.key===u));return-1===o?n:i[o]},set(e){const t=a.value.findIndex((e=>e.key===u));-1!==t?v(t,e):k("Attempting to update a non-existent array item")}}),isFirst:!1,isLast:!1};return i}function v(n,a){const u=t.unref(e),i=F(null==r?void 0:r.values,u);!Array.isArray(i)||i.length-1<n||null==r||r.setFieldValue(`${u}[${n}]`,a)}d();const p={fields:a,remove:function(n){const u=t.unref(e),i=F(null==r?void 0:r.values,u);if(!i||!Array.isArray(i))return;const o=[...i];o.splice(n,1),null==r||r.unsetInitialValue(u+`[${n}]`),null==r||r.setFieldValue(u,o),a.value.splice(n,1),c()},push:function(u){const i=t.unref(e),o=F(null==r?void 0:r.values,i),l=n(o)?[]:o;if(!Array.isArray(l))return;const s=[...l];s.push(u),null==r||r.stageInitialValue(i+`[${s.length-1}]`,u),null==r||r.setFieldValue(i,s),a.value.push(f(u)),c()},swap:function(n,u){const i=t.unref(e),o=F(null==r?void 0:r.values,i);if(!Array.isArray(o)||!(n in o)||!(u in o))return;const l=[...o],s=[...a.value],d=l[n];l[n]=l[u],l[u]=d;const f=s[n];s[n]=s[u],s[u]=f,null==r||r.setFieldValue(i,l),a.value=s,c()},insert:function(n,u){const i=t.unref(e),o=F(null==r?void 0:r.values,i);if(!Array.isArray(o)||o.length<n)return;const l=[...o],s=[...a.value];l.splice(n,0,u),s.splice(n,0,f(u)),null==r||r.setFieldValue(i,l),a.value=s,c()},update:v,replace:function(n){const a=t.unref(e);null==r||r.setFieldValue(a,n),d()},prepend:function(u){const i=t.unref(e),o=F(null==r?void 0:r.values,i),l=n(o)?[]:o;if(!Array.isArray(l))return;const s=[u,...l];null==r||r.stageInitialValue(i+`[${s.length-1}]`,u),null==r||r.setFieldValue(i,s),a.value.unshift(f(u)),c()},move:function(u,i){const o=t.unref(e),l=F(null==r?void 0:r.values,o),s=n(l)?[]:[...l];if(!Array.isArray(l)||!(u in l)||!(i in l))return;const d=[...a.value],f=d[u];d.splice(u,1),d.splice(i,0,f);const v=s[u];s.splice(u,1),s.splice(i,0,v),null==r||r.setFieldValue(o,s),a.value=d,c()}};return r.fieldArrays.push(Object.assign({path:e,reset:d},p)),t.onBeforeUnmount((()=>{const n=r.fieldArrays.findIndex((r=>t.unref(r.path)===t.unref(e)));n>=0&&r.fieldArrays.splice(n,1)})),p}const ce=t.defineComponent({name:"FieldArray",inheritAttrs:!1,props:{name:{type:String,required:!0}},setup(e,r){const{push:n,remove:a,swap:u,insert:i,replace:o,update:l,prepend:s,move:d,fields:c}=de(t.toRef(e,"name"));function f(){return{fields:c.value,push:n,remove:a,swap:u,insert:i,update:l,replace:o,prepend:s,move:d}}return r.expose({push:n,remove:a,swap:u,insert:i,update:l,replace:o,prepend:s,move:d}),()=>R(void 0,r,f)}}),fe=t.defineComponent({name:"ErrorMessage",props:{as:{type:String,default:void 0},name:{type:String,required:!0}},setup(e,r){const n=t.inject(o,void 0),a=t.computed((()=>null==n?void 0:n.errors.value[e.name]));function u(){return{message:a.value}}return()=>{if(!a.value)return;const n=e.as?t.resolveDynamicComponent(e.as):e.as,i=R(n,r,u),o=Object.assign({role:"alert"},r.attrs);return n||!Array.isArray(i)&&i||!(null==i?void 0:i.length)?!Array.isArray(i)&&i||(null==i?void 0:i.length)?t.h(n,o,i):t.h(n||"span",o,a.value):i}}});e.ErrorMessage=fe,e.Field=ue,e.FieldArray=ce,e.FieldContextKey=l,e.Form=se,e.FormContextKey=o,e.IS_ABSENT=s,e.configure=z,e.defineRule=function(e,t){!function(e,t){if(r(t))return;throw new Error(`Extension Error: The validator '${e}' must be a function.`)}(e,t),i[e]=t},e.useField=ee,e.useFieldArray=de,e.useFieldError=function(e){const r=S(o),n=e?void 0:t.inject(l);return t.computed((()=>e?null==r?void 0:r.errors.value[t.unref(e)]:null==n?void 0:n.errorMessage.value))},e.useFieldValue=function(e){const r=S(o),n=e?void 0:t.inject(l);return t.computed((()=>e?F(null==r?void 0:r.values,t.unref(e)):t.unref(null==n?void 0:n.value)))},e.useForm=oe,e.useFormErrors=function(){const e=S(o);return e||k("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=S(o);return e||k("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 r=S(o);let n=e?void 0:t.inject(l);return t.computed((()=>(e&&(n=B(null==r?void 0:r.fieldsByPath.value[t.unref(e)])),n?n.meta.dirty:(k(`field with name ${t.unref(e)} was not found`),!1))))},e.useIsFieldTouched=function(e){const r=S(o);let n=e?void 0:t.inject(l);return t.computed((()=>(e&&(n=B(null==r?void 0:r.fieldsByPath.value[t.unref(e)])),n?n.meta.touched:(k(`field with name ${t.unref(e)} was not found`),!1))))},e.useIsFieldValid=function(e){const r=S(o);let n=e?void 0:t.inject(l);return t.computed((()=>(e&&(n=B(null==r?void 0:r.fieldsByPath.value[t.unref(e)])),n?n.meta.valid:(k(`field with name ${t.unref(e)} was not found`),!1))))},e.useIsFormDirty=function(){const e=S(o);return e||k("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=S(o);return e||k("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=S(o);return e||k("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=S(o);return e||k("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=S(o);return e||k("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=S(o);return e||k("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=S(o);t||k("No vee-validate <Form /> or `useForm` was detected in the component tree");const r=t?t.handleSubmit(e):void 0;return function(e){if(r)return r(e)}},e.useValidateField=function(e){const r=S(o);let n=e?void 0:t.inject(l);return function(){return e&&(n=B(null==r?void 0:r.fieldsByPath.value[t.unref(e)])),n?n.validate():(k(`field with name ${t.unref(e)} was not found`),Promise.resolve({errors:[],valid:!0}))}},e.useValidateForm=function(){const e=S(o);return e||k("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=L,Object.defineProperty(e,"__esModule",{value:!0})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vee-validate",
3
- "version": "4.6.4",
3
+ "version": "4.6.7",
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": "4dbafc1704829bbfe0ec84faa11c06f4e180214c"
36
+ "gitHead": "3c9d79f14b74df699dbaf9781725220b68096c81"
37
37
  }