vee-validate 4.5.10 → 4.5.11

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/CHANGELOG.md CHANGED
@@ -3,6 +3,22 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [4.5.11](https://github.com/logaretm/vee-validate/compare/v4.5.10...v4.5.11) (2022-04-10)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * ignore validation of removed array elements closes [#3748](https://github.com/logaretm/vee-validate/issues/3748) ([3d49faa](https://github.com/logaretm/vee-validate/commit/3d49faa4101902c2e77aee0a2d43cd29b69f7b4e))
12
+
13
+
14
+ ### Features
15
+
16
+ * chain of GenericValidateFunction in useField ([#3725](https://github.com/logaretm/vee-validate/issues/3725)) ([#3726](https://github.com/logaretm/vee-validate/issues/3726)) ([8db4077](https://github.com/logaretm/vee-validate/commit/8db407785c5611c10c221eabd747c3f31770145b))
17
+
18
+
19
+
20
+
21
+
6
22
  ## [4.5.10](https://github.com/logaretm/vee-validate/compare/v4.5.9...v4.5.10) (2022-03-08)
7
23
 
8
24
  **Note:** Version bump only for package vee-validate
@@ -169,7 +169,7 @@ interface ValidationOptions {
169
169
  /**
170
170
  * Validates a value against the rules.
171
171
  */
172
- declare function validate(value: unknown, rules: string | Record<string, unknown | unknown[]> | GenericValidateFunction | YupValidator, options?: ValidationOptions): Promise<ValidationResult>;
172
+ declare function validate(value: unknown, rules: string | Record<string, unknown | unknown[]> | GenericValidateFunction | GenericValidateFunction[] | YupValidator, options?: ValidationOptions): Promise<ValidationResult>;
173
173
 
174
174
  /**
175
175
  * Adds a custom validator to the list of validation rules.
@@ -198,7 +198,7 @@ interface FieldOptions<TValue = unknown> {
198
198
  label?: MaybeRef<string | undefined>;
199
199
  standalone?: boolean;
200
200
  }
201
- declare type RuleExpression<TValue> = string | Record<string, unknown> | GenericValidateFunction | YupValidator | BaseSchema<TValue> | undefined;
201
+ declare type RuleExpression<TValue> = string | Record<string, unknown> | GenericValidateFunction | GenericValidateFunction[] | YupValidator | BaseSchema<TValue> | undefined;
202
202
  /**
203
203
  * Creates a field composite.
204
204
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * vee-validate v4.5.10
2
+ * vee-validate v4.5.11
3
3
  * (c) 2022 Abdelrahman Awad
4
4
  * @license MIT
5
5
  */
@@ -503,18 +503,34 @@ async function _validate(field, value) {
503
503
  if (isYupValidator(field.rules)) {
504
504
  return validateFieldWithYup(value, field.rules, { bails: field.bails });
505
505
  }
506
- // if a generic function, use it as the pipeline.
507
- if (isCallable(field.rules)) {
506
+ // if a generic function or chain of generic functions
507
+ if (isCallable(field.rules) || Array.isArray(field.rules)) {
508
508
  const ctx = {
509
509
  field: field.name,
510
510
  form: field.formData,
511
511
  value: value,
512
512
  };
513
- const result = await field.rules(value, ctx);
514
- const isValid = typeof result !== 'string' && result;
515
- const message = typeof result === 'string' ? result : _generateFieldError(ctx);
513
+ // Normalize the pipeline
514
+ const pipeline = Array.isArray(field.rules) ? field.rules : [field.rules];
515
+ const length = pipeline.length;
516
+ const errors = [];
517
+ for (let i = 0; i < length; i++) {
518
+ const rule = pipeline[i];
519
+ const result = await rule(value, ctx);
520
+ const isValid = typeof result !== 'string' && result;
521
+ if (isValid) {
522
+ continue;
523
+ }
524
+ const message = typeof result === 'string' ? result : _generateFieldError(ctx);
525
+ errors.push(message);
526
+ if (field.bails) {
527
+ return {
528
+ errors,
529
+ };
530
+ }
531
+ }
516
532
  return {
517
- errors: !isValid ? [message] : [],
533
+ errors,
518
534
  };
519
535
  }
520
536
  const normalizedContext = Object.assign(Object.assign({}, field), { rules: normalizeRules(field.rules) });
@@ -1299,6 +1315,8 @@ function useField(name, rules, opts) {
1299
1315
  function _useField(name, rules, opts) {
1300
1316
  const { initialValue: modelValue, validateOnMount, bails, type, checkedValue, label, validateOnValueUpdate, uncheckedValue, standalone, } = normalizeOptions(unref(name), opts);
1301
1317
  const form = !standalone ? injectWithSelf(FormContextKey) : undefined;
1318
+ // a flag indicating if the field is about to be removed/unmounted.
1319
+ let markedForRemoval = false;
1302
1320
  const { id, value, initialValue, meta, setState, errors, errorMessage } = useFieldState(name, {
1303
1321
  modelValue,
1304
1322
  standalone,
@@ -1315,7 +1333,7 @@ function _useField(name, rules, opts) {
1315
1333
  if (schema && !isYupValidator(schema)) {
1316
1334
  rulesValue = extractRuleFromSchema(schema, unref(name)) || rulesValue;
1317
1335
  }
1318
- if (isYupValidator(rulesValue) || isCallable(rulesValue)) {
1336
+ if (isYupValidator(rulesValue) || isCallable(rulesValue) || Array.isArray(rulesValue)) {
1319
1337
  return rulesValue;
1320
1338
  }
1321
1339
  return normalizeRules(rulesValue);
@@ -1335,12 +1353,19 @@ function _useField(name, rules, opts) {
1335
1353
  meta.pending = true;
1336
1354
  meta.validated = true;
1337
1355
  const result = await validateCurrentValue('validated-only');
1356
+ if (markedForRemoval) {
1357
+ result.valid = true;
1358
+ result.errors = [];
1359
+ }
1338
1360
  setState({ errors: result.errors });
1339
1361
  meta.pending = false;
1340
1362
  return result;
1341
1363
  }
1342
1364
  async function validateValidStateOnly() {
1343
1365
  const result = await validateCurrentValue('silent');
1366
+ if (markedForRemoval) {
1367
+ result.valid = true;
1368
+ }
1344
1369
  meta.valid = result.valid;
1345
1370
  return result;
1346
1371
  }
@@ -1455,13 +1480,14 @@ function _useField(name, rules, opts) {
1455
1480
  // associate the field with the given form
1456
1481
  form.register(field);
1457
1482
  onBeforeUnmount(() => {
1483
+ markedForRemoval = true;
1458
1484
  form.unregister(field);
1459
1485
  });
1460
1486
  // extract cross-field dependencies in a computed prop
1461
1487
  const dependencies = computed(() => {
1462
1488
  const rulesVal = normalizedRules.value;
1463
1489
  // is falsy, a function schema or a yup schema
1464
- if (!rulesVal || isCallable(rulesVal) || isYupValidator(rulesVal)) {
1490
+ if (!rulesVal || isCallable(rulesVal) || isYupValidator(rulesVal) || Array.isArray(rulesVal)) {
1465
1491
  return {};
1466
1492
  }
1467
1493
  return Object.keys(rulesVal).reduce((acc, rule) => {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * vee-validate v4.5.10
2
+ * vee-validate v4.5.11
3
3
  * (c) 2022 Abdelrahman Awad
4
4
  * @license MIT
5
5
  */
@@ -488,18 +488,34 @@
488
488
  if (isYupValidator(field.rules)) {
489
489
  return validateFieldWithYup(value, field.rules, { bails: field.bails });
490
490
  }
491
- // if a generic function, use it as the pipeline.
492
- if (isCallable(field.rules)) {
491
+ // if a generic function or chain of generic functions
492
+ if (isCallable(field.rules) || Array.isArray(field.rules)) {
493
493
  const ctx = {
494
494
  field: field.name,
495
495
  form: field.formData,
496
496
  value: value,
497
497
  };
498
- const result = await field.rules(value, ctx);
499
- const isValid = typeof result !== 'string' && result;
500
- const message = typeof result === 'string' ? result : _generateFieldError(ctx);
498
+ // Normalize the pipeline
499
+ const pipeline = Array.isArray(field.rules) ? field.rules : [field.rules];
500
+ const length = pipeline.length;
501
+ const errors = [];
502
+ for (let i = 0; i < length; i++) {
503
+ const rule = pipeline[i];
504
+ const result = await rule(value, ctx);
505
+ const isValid = typeof result !== 'string' && result;
506
+ if (isValid) {
507
+ continue;
508
+ }
509
+ const message = typeof result === 'string' ? result : _generateFieldError(ctx);
510
+ errors.push(message);
511
+ if (field.bails) {
512
+ return {
513
+ errors,
514
+ };
515
+ }
516
+ }
501
517
  return {
502
- errors: !isValid ? [message] : [],
518
+ errors,
503
519
  };
504
520
  }
505
521
  const normalizedContext = Object.assign(Object.assign({}, field), { rules: normalizeRules(field.rules) });
@@ -924,6 +940,8 @@
924
940
  function _useField(name, rules, opts) {
925
941
  const { initialValue: modelValue, validateOnMount, bails, type, checkedValue, label, validateOnValueUpdate, uncheckedValue, standalone, } = normalizeOptions(vue.unref(name), opts);
926
942
  const form = !standalone ? injectWithSelf(FormContextKey) : undefined;
943
+ // a flag indicating if the field is about to be removed/unmounted.
944
+ let markedForRemoval = false;
927
945
  const { id, value, initialValue, meta, setState, errors, errorMessage } = useFieldState(name, {
928
946
  modelValue,
929
947
  standalone,
@@ -940,7 +958,7 @@
940
958
  if (schema && !isYupValidator(schema)) {
941
959
  rulesValue = extractRuleFromSchema(schema, vue.unref(name)) || rulesValue;
942
960
  }
943
- if (isYupValidator(rulesValue) || isCallable(rulesValue)) {
961
+ if (isYupValidator(rulesValue) || isCallable(rulesValue) || Array.isArray(rulesValue)) {
944
962
  return rulesValue;
945
963
  }
946
964
  return normalizeRules(rulesValue);
@@ -960,12 +978,19 @@
960
978
  meta.pending = true;
961
979
  meta.validated = true;
962
980
  const result = await validateCurrentValue('validated-only');
981
+ if (markedForRemoval) {
982
+ result.valid = true;
983
+ result.errors = [];
984
+ }
963
985
  setState({ errors: result.errors });
964
986
  meta.pending = false;
965
987
  return result;
966
988
  }
967
989
  async function validateValidStateOnly() {
968
990
  const result = await validateCurrentValue('silent');
991
+ if (markedForRemoval) {
992
+ result.valid = true;
993
+ }
969
994
  meta.valid = result.valid;
970
995
  return result;
971
996
  }
@@ -1071,13 +1096,14 @@
1071
1096
  // associate the field with the given form
1072
1097
  form.register(field);
1073
1098
  vue.onBeforeUnmount(() => {
1099
+ markedForRemoval = true;
1074
1100
  form.unregister(field);
1075
1101
  });
1076
1102
  // extract cross-field dependencies in a computed prop
1077
1103
  const dependencies = vue.computed(() => {
1078
1104
  const rulesVal = normalizedRules.value;
1079
1105
  // is falsy, a function schema or a yup schema
1080
- if (!rulesVal || isCallable(rulesVal) || isYupValidator(rulesVal)) {
1106
+ if (!rulesVal || isCallable(rulesVal) || isYupValidator(rulesVal) || Array.isArray(rulesVal)) {
1081
1107
  return {};
1082
1108
  }
1083
1109
  return Object.keys(rulesVal).reduce((acc, rule) => {
@@ -1,6 +1,6 @@
1
1
  /**
2
- * vee-validate v4.5.10
2
+ * vee-validate v4.5.11
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 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 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 r(e)&&!!e.__locatorRef}function c(e){return!!e&&r(e.validate)}function f(e){return"checkbox"===e||"radio"===e}function v(e){return/^\[.+\]$/i.test(e)}function m(e){return"SELECT"===e.tagName}function p(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)||function(e,t){return function(e){return["input","textarea","select"].includes(e)}(e)&&"file"===t.type}(e,t)}function h(e){return!!e&&(!!("undefined"!=typeof Event&&r(Event)&&e instanceof Event)||!(!e||!e.srcElement))}function y(e,t){return t in e&&e[t]!==s}function g(e){return v(e)?e.replace(/\[|\]/gi,""):e}function b(e,t,r){if(!e)return r;if(v(t))return e[g(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 F(e,t,r){if(v(t))return void(e[g(t)]=r);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]]=r);a[e]in u&&!n(u[a[e]])||(u[a[e]]=i(a[e+1])?[]:{}),u=u[a[e]]}}function O(e,t){Array.isArray(e)&&i(t)?e.splice(Number(t),1):a(e)&&delete e[t]}function V(e,t){if(v(t))return void delete e[g(t)];const r=t.split(/\.|\[(\d+)\]/).filter(Boolean);let i=e;for(let e=0;e<r.length;e++){if(e===r.length-1){O(i,r[e]);break}if(!(r[e]in i)||n(i[r[e]]))break;i=i[r[e]]}const u=r.map(((t,n)=>b(e,r.slice(0,n).join("."))));for(let t=u.length-1;t>=0;t--)o=u[t],(Array.isArray(o)?0===o.length:a(o)&&0===Object.keys(o).length)&&(0!==t?O(u[t-1],r[t-1]):O(e,r[0]));var o}function A(e){return Object.keys(e)}function w(e,r){const n=t.getCurrentInstance();return(null==n?void 0:n.provides[e])||t.inject(e,r)}function j(e){t.warn(`[vee-validate]: ${e}`)}function E(e){return Array.isArray(e)?e[0]:e}function S(e,t,r){if(Array.isArray(e)){const r=[...e],n=r.indexOf(t);return n>=0?r.splice(n,1):r.push(t),r}return e===t?r:t}const k=(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 B(e){if(M(e))return e._value}function M(e){return"_value"in e}function I(e){if(!h(e))return e;const t=e.target;if(f(t.type)&&M(t))return B(t);if("file"===t.type&&t.files)return Array.from(t.files);if(m(r=t)&&r.multiple)return Array.from(t.options).filter((e=>e.selected&&!e.disabled)).map(B);var r;if(m(t)){const e=Array.from(t.options).find((e=>e.selected));return e?B(e):t.value}return t.value}function T(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]=C(n)),t}),t):"string"!=typeof e?t:e.split("|").reduce(((e,t)=>{const r=R(t);return r.name?(e[r.name]=C(r.params),e):e}),t):t}function C(e){const t=e=>"string"==typeof e&&"@"===e[0]?function(e){const t=t=>b(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 R=e=>{let t=[];const r=e.split(":")[0];return e.includes(":")&&(t=e.split(":").slice(1).join(":").split(",")),{name:r,params:t}};let x=Object.assign({},{generateMessage:({field:e})=>`${e} is not valid.`,bails:!0,validateOnBlur:!0,validateOnChange:!0,validateOnInput:!1,validateOnModelUpdate:!0});const P=()=>x,N=e=>{x=Object.assign(Object.assign({},x),e)};async function _(e,t,n={}){const a=null==n?void 0:n.bails,i={name:(null==n?void 0:n.name)||"{field}",rules:t,bails:null==a||a,formData:(null==n?void 0:n.values)||{}},u=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)){const r={field:e.name,form:e.formData,value:t},n=await e.rules(t,r),a="string"!=typeof n&&n,i="string"==typeof n?n:D(r);return{errors:a?[]:[i]}}const n=Object.assign(Object.assign({},e),{rules:T(e.rules)}),a=[],i=Object.keys(n.rules),u=i.length;for(let r=0;r<u;r++){const u=i[r],o=await $(n,t,{name:u,params:n.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 $(e,t,r){const n=(a=r.name,u[a]);var a;if(!n)throw new Error(`No such validator '${r.name}' exists.`);const i=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:i})},l=await n(t,i,o);return"string"==typeof l?{error:l}:{error:l?void 0:D(o)}}function D(e){const t=P().generateMessage;return t?t(e):"Field is invalid"}async function U(e,t,r){const n=A(e).map((async n=>{var a,i,u;const o=await _(b(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===(u=null===(i=null==r?void 0:r.bailsMap)||void 0===i?void 0:i[n])||void 0===u||u});return Object.assign(Object.assign({},o),{path:n})}));let a=!0;const i=await Promise.all(n),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 q(e,t,r){"object"==typeof r.value&&(r.value=z(r.value)),r.enumerable&&!r.get&&!r.set&&r.configurable&&r.writable&&"__proto__"!==t?e[t]=r.value:Object.defineProperty(e,t,r)}function z(e){if("object"!=typeof e)return e;var t,r,n,a=0,i=Object.prototype.toString.call(e);if("[object Object]"===i?n=Object.create(e.__proto__||null):"[object Array]"===i?n=Array(e.length):"[object Set]"===i?(n=new Set,e.forEach((function(e){n.add(z(e))}))):"[object Map]"===i?(n=new Map,e.forEach((function(e,t){n.set(z(t),z(e))}))):"[object Date]"===i?n=new Date(+e):"[object RegExp]"===i?n=new RegExp(e.source,e.flags):"[object DataView]"===i?n=new e.constructor(z(e.buffer)):"[object ArrayBuffer]"===i?n=e.slice(0):"Array]"===i.slice(-6)&&(n=new e.constructor(e)),n){for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)q(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]||q(n,t,Object.getOwnPropertyDescriptor(e,t))}return n||e}var L=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,i;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=(i=Object.keys(t)).length)!==Object.keys(r).length)return!1;for(a=n;0!=a--;)if(!Object.prototype.hasOwnProperty.call(r,i[a]))return!1;for(a=n;0!=a--;){var u=i[a];if(!e(t[u],r[u]))return!1}return!0}return t!=t&&r!=r};let K=0;function G(e,r){const{value:n,initialValue:a,setInitialValue:i}=function(e,r,n){const a=n?w(o,void 0):void 0,i=t.ref(t.unref(r));function u(){return a?b(a.meta.value.initialValues,t.unref(e),t.unref(i)):t.unref(i)}function l(r){a?a.setFieldInitialValue(t.unref(e),r):i.value=r}const s=t.computed(u);if(!a){return{value:t.ref(u()),initialValue:s,setInitialValue:l}}const d=r?t.unref(r):b(a.values,t.unref(e),t.unref(s));a.stageInitialValue(t.unref(e),d);return{value:t.computed({get:()=>b(a.values,t.unref(e)),set(r){a.setFieldValue(t.unref(e),r)}}),initialValue:s,setInitialValue:l}}(e,r.modelValue,!r.standalone),{errorMessage:u,errors:l,setErrors:s}=function(e,r){const n=r?w(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 i=t.computed((()=>n.errorBag.value[t.unref(e)]||[]));return{errors:i,errorMessage:t.computed((()=>i.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((()=>!L(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:K>=Number.MAX_SAFE_INTEGER?0:++K,path:e,value:n,initialValue:a,meta:d,errors:l,errorMessage:u,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&&i(e.initialValue)}}}function X(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:w(o),i=null==n?void 0:n.checkedValue,u=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(i);return Array.isArray(r)?r.includes(n):n===r}));function o(o,l=!0){var s,d;if(n.value===(null===(d=null===(s=o)||void 0===s?void 0:s.target)||void 0===d?void 0:d.checked))return;let c=I(o);a||(c=S(t.unref(e.value),t.unref(i),t.unref(u))),r(c,l)}return t.onBeforeUnmount((()=>{n.value&&o(t.unref(i),!1)})),Object.assign(Object.assign({},e),{checked:n,checkedValue:i,uncheckedValue:u,handleChange:o})}return l(H(e,r,n))}(e,r,n):H(e,r,n)}function H(e,n,a){const{initialValue:i,validateOnMount:u,bails:s,type:f,checkedValue:v,label:m,validateOnValueUpdate:p,uncheckedValue:h,standalone:y}=function(e,t){const r=()=>({initialValue:void 0,validateOnMount:!1,bails:!0,rules:"",label:e,validateOnValueUpdate:!0,standalone:!1});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),g=y?void 0:w(o),{id:F,value:O,initialValue:V,meta:j,setState:E,errors:S,errorMessage:k}=G(e,{modelValue:i,standalone:y}),B=t.computed((()=>{let a=t.unref(n);const i=t.unref(null==g?void 0:g.schema);return i&&!c(i)&&(a=function(e,t){if(!e)return;return e[t]}(i,t.unref(e))||a),c(a)||r(a)?a:T(a)}));async function M(r){var n,a;return(null==g?void 0:g.validateSchema)?null!==(n=(await g.validateSchema(r)).results[t.unref(e)])&&void 0!==n?n:{valid:!0,errors:[]}:_(O.value,B.value,{name:t.unref(m)||t.unref(e),values:null!==(a=null==g?void 0:g.values)&&void 0!==a?a:{},bails:s})}async function C(){j.pending=!0,j.validated=!0;const e=await M("validated-only");return E({errors:e.errors}),j.pending=!1,e}async function R(){const e=await M("silent");return j.valid=e.valid,e}let x;function P(){x=t.watch(O,p?C:R,{deep:!0})}function N(e){var r;null==x||x();const n=e&&"value"in e?e.value:V.value;E({value:z(n),initialValue:z(n),touched:null!==(r=null==e?void 0:e.touched)&&void 0!==r&&r,errors:(null==e?void 0:e.errors)||[]}),j.pending=!1,j.validated=!1,R(),t.nextTick((()=>{P()}))}t.onMounted((()=>{if(u)return C();g&&g.validateSchema||R()})),P();const $={id:F,name:e,label:m,value:O,meta:j,errors:S,errorMessage:k,type:f,checkedValue:v,uncheckedValue:h,bails:s,resetField:N,handleReset:()=>N(),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)?C():R():C()},handleChange:(e,t=!0)=>{const r=I(e);O.value=r,!p&&t&&C()},handleBlur:()=>{j.touched=!0},setState:E,setTouched:function(e){j.touched=e},setErrors:function(e){E({errors:Array.isArray(e)?e:[e]})},setValue:function(e){O.value=e}};if(t.provide(l,$),t.isRef(n)&&"function"!=typeof t.unref(n)&&t.watch(n,((e,t)=>{L(e,t)||(j.validated?C():R())}),{deep:!0}),!g)return $;g.register($),t.onBeforeUnmount((()=>{g.unregister($)}));const D=t.computed((()=>{const e=B.value;return!e||r(e)||c(e)?{}:Object.keys(e).reduce(((t,r)=>{const n=(a=e[r],Array.isArray(a)?a.filter(d):A(a).filter((e=>d(a[e]))).map((e=>a[e]))).map((e=>e.__locatorRef)).reduce(((e,t)=>{const r=b(g.values,t)||g.values[t];return void 0!==r&&(e[t]=r),e}),{});var a;return Object.assign(t,n),t}),{})}));return t.watch(D,((e,t)=>{if(!Object.keys(e).length)return;!L(e,t)&&(j.validated?C():R())})),$}function J(e,t){let r=e.as||"";return e.as||t.slots.default||(r="input"),r}function Q(e,t){return f(t.attrs.type)?y(e,"modelValue")?e.modelValue:void 0:y(e,"modelValue")?e.modelValue:t.attrs.value}const W=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:()=>P().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}},setup(e,r){const n=t.toRef(e,"rules"),a=t.toRef(e,"name"),i=t.toRef(e,"label"),u=t.toRef(e,"uncheckedValue"),o=y(e,"onUpdate:modelValue"),{errors:l,value:d,errorMessage:c,validate:v,handleChange:m,handleBlur:h,setTouched:g,resetField:b,handleReset:F,meta:O,checked:V,setErrors:A}=X(a,n,{validateOnMount:e.validateOnMount,bails:e.bails,standalone:e.standalone,type:r.attrs.type,initialValue:Q(e,r),checkedValue:r.attrs.value,uncheckedValue:u,label:i,validateOnValueUpdate:!1}),w=o?function(e,t=!0){m(e,t),r.emit("update:modelValue",d.value)}:m,j=e=>{f(r.attrs.type)||(d.value=I(e))},E=o?function(e){j(e),r.emit("update:modelValue",d.value)}:j,S=t.computed((()=>{const{validateOnInput:t,validateOnChange:n,validateOnBlur:a,validateOnModelUpdate:i}=function(e){var t,r,n,a;const{validateOnInput:i,validateOnChange:u,validateOnBlur:o,validateOnModelUpdate:l}=P();return{validateOnInput:null!==(t=e.validateOnInput)&&void 0!==t?t:i,validateOnChange:null!==(r=e.validateOnChange)&&void 0!==r?r:u,validateOnBlur:null!==(n=e.validateOnBlur)&&void 0!==n?n:o,validateOnModelUpdate:null!==(a=e.validateOnModelUpdate)&&void 0!==a?a:l}}(e),u=[h,r.attrs.onBlur,a?v:void 0].filter(Boolean),o=[e=>w(e,t),r.attrs.onInput].filter(Boolean),l=[e=>w(e,n),r.attrs.onChange].filter(Boolean),s={name:e.name,onBlur:u,onInput:o,onChange:l,"onUpdate:modelValue":e=>w(e,i)};f(r.attrs.type)&&V?s.checked=V.value:s.value=d.value;return p(J(e,r),r.attrs)&&delete s.value,s})),B=t.toRef(e,"modelValue");function M(){return{field:S.value,value:d.value,meta:O,errors:l.value,errorMessage:c.value,validate:v,resetField:b,handleChange:w,handleInput:E,handleReset:F,handleBlur:h,setTouched:g,setErrors:A}}return t.watch(B,(t=>{t===s&&void 0===d.value||t!==function(e,t){if(t.number)return function(e){const t=parseFloat(e);return isNaN(t)?e:t}(e);return e}(d.value,e.modelModifiers)&&(d.value=t===s?void 0:t,v())})),r.expose({setErrors:A,setTouched:g,reset:b,validate:v,handleChange:m}),()=>{const n=t.resolveDynamicComponent(J(e,r)),a=k(n,r,M);return n?t.h(n,Object.assign(Object.assign({},r.attrs),S.value),a):a}}});let Y=0;function Z(e){const r=Y++;let n=!1;const a=t.ref({}),i=t.ref(!1),u=t.ref(0),l={},s=t.reactive(z(t.unref(null==e?void 0:e.initialValues)||{})),{errorBag:d,setErrorBag:f,setFieldErrorBag:v}=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 i(e){r.value=A(e).reduce(((t,r)=>{const a=e[r];return a&&(t[r]=n(a)),t}),{})}e&&i(e);return{errorBag:r,setErrorBag:i,setFieldErrorBag:a}}(null==e?void 0:e.initialErrors),m=t.computed((()=>A(d.value).reduce(((e,t)=>{const r=d.value[t];return r&&r.length&&(e[t]=r[0]),e}),{})));function p(e){const t=a.value[e];return Array.isArray(t)?t[0]:t}function y(e){return!!a.value[e]}const g=t.computed((()=>A(a.value).reduce(((e,r)=>{const n=p(r);return n&&(e[r]=t.unref(n.label||n.name)||""),e}),{}))),O=t.computed((()=>A(a.value).reduce(((e,t)=>{var r;const n=p(t);return n&&(e[t]=null===(r=n.bails)||void 0===r||r),e}),{}))),w=Object.assign({},(null==e?void 0:e.initialErrors)||{}),{initialValues:j,originalInitialValues:E,setInitialValues:k}=function(e,r,n){const a=t.ref(z(t.unref(n))||{}),i=t.ref(z(t.unref(n))||{});function u(t,n=!1){a.value=z(t),i.value=z(t),n&&A(e.value).forEach((t=>{const n=e.value[t],i=Array.isArray(n)?n.some((e=>e.meta.touched)):null==n?void 0:n.meta.touched;if(!n||i)return;const u=b(a.value,t);F(r,t,z(u))}))}t.isRef(n)&&t.watch(n,(e=>{u(e,!0)}),{deep:!0});return{initialValues:a,originalInitialValues:i,setInitialValues:u}}(a,s,null==e?void 0:e.initialValues),B=function(e,r,n,a){const i={touched:"some",pending:"some",valid:"every"},u=t.computed((()=>!L(r,t.unref(n))));function o(){const t=Object.values(e.value).flat(1).filter(Boolean);return A(i).reduce(((e,r)=>{const n=i[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&&!A(a.value).length,dirty:u.value})))}(a,s,j,m),M=null==e?void 0:e.validationSchema,I={formId:r,fieldsByPath:a,values:s,errorBag:d,errors:m,schema:M,submitCount:u,meta:B,isSubmitting:i,fieldArraysLookup:l,validateSchema:t.unref(M)?async function(e){const t=await W(),r=I.fieldsByPath.value||{},n=A(I.errorBag.value);return[...new Set([...A(t.results),...A(r),...n])].reduce(((n,a)=>{const i=r[a],u=(t.results[a]||{errors:[]}).errors,o={errors:u,valid:!u.length};if(n.results[a]=o,o.valid||(n.errors[a]=o.errors[0]),!i)return x(a,u),n;if(C(i,(e=>e.meta.valid=o.valid)),"silent"===e)return n;const l=Array.isArray(i)?i.some((e=>e.meta.validated)):i.meta.validated;return"validated-only"!==e||l?(C(i,(e=>e.setState({errors:o.errors}))),n):n}),{valid:t.valid,results:{},errors:{}})}:void 0,validate:X,register:function(e){const r=t.unref(e.name);K(e,r),t.isRef(e.name)&&t.watch(e.name,(async(r,n)=>{await t.nextTick(),G(e,n),K(e,r),(m.value[n]||m.value[r])&&(x(n,void 0),H(r)),await t.nextTick(),y(n)||V(s,n)}));const n=t.unref(e.errorMessage);n&&(null==w?void 0:w[r])!==n&&H(r);delete w[r]},unregister:function(e){const r=t.unref(e.name);G(e,r),t.nextTick((()=>{y(r)||(x(r,void 0),V(s,r))}))},setFieldErrorBag:v,validateField:H,setFieldValue:N,setValues:_,setErrors:P,setFieldError:x,setFieldTouched:$,setTouched:D,resetForm:q,handleSubmit:J,stageInitialValue:function(e,t){F(s,e,t),Q(e,t)},unsetInitialValue:function(e){V(j.value,e)},setFieldInitialValue:Q};function T(e){return Array.isArray(e)}function C(e,t){return Array.isArray(e)?e.forEach(t):t(e)}function R(e){Object.values(a.value).forEach((t=>{t&&C(t,e)}))}function x(e,t){v(e,t)}function P(e){f(e)}function N(e,r,{force:i}={force:!1}){var u;const o=a.value[e],l=z(r);if(!o)return void F(s,e,l);if(T(o)&&"checkbox"===(null===(u=o[0])||void 0===u?void 0:u.type)&&!Array.isArray(r)){const t=z(S(b(s,e)||[],r,void 0));return void F(s,e,t)}let d=r;T(o)||"checkbox"!==o.type||i||n||(d=z(S(b(s,e),r,t.unref(o.uncheckedValue)))),F(s,e,d)}function _(e){A(s).forEach((e=>{delete s[e]})),A(e).forEach((t=>{N(t,e[t])})),Object.values(l).forEach((e=>e&&e.reset()))}function $(e,t){const r=a.value[e];r&&C(r,(e=>e.setTouched(t)))}function D(e){A(e).forEach((t=>{$(t,!!e[t])}))}function q(e){n=!0,(null==e?void 0:e.values)?(k(e.values),_(null==e?void 0:e.values)):(k(E.value),_(E.value)),R((e=>e.resetField())),(null==e?void 0:e.touched)&&D(e.touched),P((null==e?void 0:e.errors)||{}),u.value=(null==e?void 0:e.submitCount)||0,t.nextTick((()=>{n=!1}))}function K(e,r){const n=t.markRaw(e),i=r;if(!a.value[i])return void(a.value[i]=n);const u=a.value[i];u&&!Array.isArray(u)&&(a.value[i]=[u]),a.value[i]=[...a.value[i],n]}function G(e,t){const r=t,n=a.value[r];if(n)if(T(n)||e.id!==n.id){if(T(n)){const t=n.findIndex((t=>t.id===e.id));if(-1===t)return;if(n.splice(t,1),1===n.length)return void(a.value[r]=n[0]);n.length||delete a.value[r]}}else delete a.value[r]}async function X(e){if(R((e=>e.meta.validated=!0)),I.validateSchema)return I.validateSchema((null==e?void 0:e.mode)||"force");const r=await Promise.all(Object.values(a.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={},i={};for(const e of r)n[e.key]={valid:e.valid,errors:e.errors},e.errors.length&&(i[e.key]=e.errors[0]);return{valid:r.every((e=>e.valid)),results:n,errors:i}}async function H(e){const r=a.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 J(e,t){return function(r){return r instanceof Event&&(r.preventDefault(),r.stopPropagation()),D(A(a.value).reduce(((e,t)=>(e[t]=!0,e)),{})),i.value=!0,u.value++,X().then((n=>{if(n.valid&&"function"==typeof e)return e(z(s),{evt:r,setErrors:P,setFieldError:x,setTouched:D,setFieldTouched:$,setValues:_,setFieldValue:N,resetForm:q});n.valid||"function"!=typeof t||t({values:z(s),evt:r,errors:n.errors,results:n.results})})).then((e=>(i.value=!1,e)),(e=>{throw i.value=!1,e}))}}function Q(e,t){F(j.value,e,z(t))}const W=function(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)))}}((async function(){const e=t.unref(M);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,s):await U(e,s,{names:g.value,bailsMap:O.value});return r}),5);const Z=J(((e,{evt:t})=>{(function(e){return h(e)&&e.target&&"submit"in e.target})(t)&&t.target.submit()}));return t.onMounted((()=>{(null==e?void 0:e.initialErrors)&&P(e.initialErrors),(null==e?void 0:e.initialTouched)&&D(e.initialTouched),(null==e?void 0:e.validateOnMount)?X():I.validateSchema&&I.validateSchema("silent")})),t.isRef(M)&&t.watch(M,(()=>{var e;null===(e=I.validateSchema)||void 0===e||e.call(I,"validated-only")})),t.provide(o,I),{errors:m,meta:B,values:s,isSubmitting:i,submitCount:u,validate:X,validateField:H,handleReset:()=>q(),resetForm:q,handleSubmit:J,submitForm:Z,setFieldError:x,setErrors:P,setFieldValue:N,setValues:_,setFieldTouched:$,setTouched:D}}const ee=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}},setup(e,r){const n=t.toRef(e,"initialValues"),a=t.toRef(e,"validationSchema"),{errors:i,values:u,meta:o,isSubmitting:l,submitCount:s,validate:d,validateField:c,handleReset:f,resetForm:v,handleSubmit:m,submitForm:p,setErrors:y,setFieldError:g,setFieldValue:b,setValues:F,setFieldTouched:O,setTouched:V}=Z({validationSchema:a.value?a:void 0,initialValues:n,initialErrors:e.initialErrors,initialTouched:e.initialTouched,validateOnMount:e.validateOnMount}),A=e.onSubmit?m(e.onSubmit,e.onInvalidSubmit):p;function w(e){h(e)&&e.preventDefault(),f(),"function"==typeof r.attrs.onReset&&r.attrs.onReset()}function j(t,r){return m("function"!=typeof t||r?r:t,e.onInvalidSubmit)(t)}function E(){return{meta:o.value,errors:i.value,values:u,isSubmitting:l.value,submitCount:s.value,validate:d,validateField:c,handleSubmit:j,handleReset:f,submitForm:p,setErrors:y,setFieldError:g,setFieldValue:b,setValues:F,setFieldTouched:O,setTouched:V,resetForm:v}}return r.expose({setFieldError:g,setErrors:y,setFieldValue:b,setValues:F,setFieldTouched:O,setTouched:V,resetForm:v,validate:d,validateField:c}),function(){const n="form"===e.as?e.as:t.resolveDynamicComponent(e.as),a=k(n,r,E);if(!e.as)return a;const i="form"===e.as?{novalidate:!0}:{};return t.h(n,Object.assign(Object.assign(Object.assign({},i),r.attrs),{onSubmit:A,onReset:w}),a)}}}),te=ee;let re=0;function ne(e){const r=re++,a=w(o,void 0),i=t.ref([]),u=()=>{},l={fields:t.readonly(i),remove:u,push:u,swap:u,insert:u,update:u,replace:u,prepend:u};if(!a)return j("FieldArray requires being a child of `<Form/>` or `useForm` being called before it. Array fields may not work correctly"),l;if(!t.unref(e))return j("FieldArray requires a field path to be provided, did you forget to pass the `name` prop?"),l;let s=0;function d(){const r=b(null==a?void 0:a.values,t.unref(e),[]);i.value=r.map(f),c()}function c(){const e=i.value.length;for(let t=0;t<e;t++){const r=i.value[t];r.isFirst=0===t,r.isLast=t===e-1}}function f(r){const n=s++;return{key:n,value:t.computed((()=>{const u=b(null==a?void 0:a.values,t.unref(e),[]),o=i.value.findIndex((e=>e.key===n));return-1===o?r:u[o]})),isFirst:!1,isLast:!1}}return d(),a.fieldArraysLookup[r]={reset:d},t.onBeforeUnmount((()=>{delete a.fieldArraysLookup[r]})),{fields:t.readonly(i),remove:function(r){const n=t.unref(e),u=b(null==a?void 0:a.values,n);if(!u||!Array.isArray(u))return;const o=[...u];o.splice(r,1),null==a||a.unsetInitialValue(n+`[${r}]`),null==a||a.setFieldValue(n,o),i.value.splice(r,1),c()},push:function(r){const u=t.unref(e),o=b(null==a?void 0:a.values,u),l=n(o)?[]:o;if(!Array.isArray(l))return;const s=[...l];s.push(r),null==a||a.stageInitialValue(u+`[${s.length-1}]`,r),null==a||a.setFieldValue(u,s),i.value.push(f(r)),c()},swap:function(r,n){const u=t.unref(e),o=b(null==a?void 0:a.values,u);if(!Array.isArray(o)||!(r in o)||!(n in o))return;const l=[...o],s=[...i.value],d=l[r];l[r]=l[n],l[n]=d;const f=s[r];s[r]=s[n],s[n]=f,null==a||a.setFieldValue(u,l),i.value=s,c()},insert:function(r,n){const u=t.unref(e),o=b(null==a?void 0:a.values,u);if(!Array.isArray(o)||o.length<r)return;const l=[...o],s=[...i.value];l.splice(r,0,n),s.splice(r,0,f(n)),null==a||a.setFieldValue(u,l),i.value=s,c()},update:function(r,n){const i=t.unref(e),u=b(null==a?void 0:a.values,i);!Array.isArray(u)||u.length-1<r||null==a||a.setFieldValue(`${i}[${r}]`,n)},replace:function(r){const n=t.unref(e);null==a||a.setFieldValue(n,r),d()},prepend:function(r){const u=t.unref(e),o=b(null==a?void 0:a.values,u),l=n(o)?[]:o;if(!Array.isArray(l))return;const s=[r,...l];null==a||a.stageInitialValue(u+`[${s.length-1}]`,r),null==a||a.setFieldValue(u,s),i.value.unshift(f(r)),c()}}}const ae=t.defineComponent({name:"FieldArray",inheritAttrs:!1,props:{name:{type:String,required:!0}},setup(e,r){const{push:n,remove:a,swap:i,insert:u,replace:o,update:l,prepend:s,fields:d}=ne(t.toRef(e,"name"));function c(){return{fields:d.value,push:n,remove:a,swap:i,insert:u,update:l,replace:o,prepend:s}}return r.expose({push:n,remove:a,swap:i,insert:u,update:l,replace:o,prepend:s}),()=>k(void 0,r,c)}}),ie=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 i(){return{message:a.value}}return()=>{if(!a.value)return;const n=e.as?t.resolveDynamicComponent(e.as):e.as,u=k(n,r,i),o=Object.assign({role:"alert"},r.attrs);return n||!Array.isArray(u)&&u||!(null==u?void 0:u.length)?!Array.isArray(u)&&u||(null==u?void 0:u.length)?t.h(n,o,u):t.h(n||"span",o,a.value):u}}});e.ErrorMessage=ie,e.Field=W,e.FieldArray=ae,e.FieldContextKey=l,e.Form=te,e.FormContextKey=o,e.configure=N,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),u[e]=t},e.useField=X,e.useFieldArray=ne,e.useFieldError=function(e){const r=w(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=w(o),n=e?void 0:t.inject(l);return t.computed((()=>e?b(null==r?void 0:r.values,t.unref(e)):t.unref(null==n?void 0:n.value)))},e.useForm=Z,e.useFormErrors=function(){const e=w(o);return e||j("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=w(o);return e||j("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=w(o);let n=e?void 0:t.inject(l);return t.computed((()=>(e&&(n=E(null==r?void 0:r.fieldsByPath.value[t.unref(e)])),n?n.meta.dirty:(j(`field with name ${t.unref(e)} was not found`),!1))))},e.useIsFieldTouched=function(e){const r=w(o);let n=e?void 0:t.inject(l);return t.computed((()=>(e&&(n=E(null==r?void 0:r.fieldsByPath.value[t.unref(e)])),n?n.meta.touched:(j(`field with name ${t.unref(e)} was not found`),!1))))},e.useIsFieldValid=function(e){const r=w(o);let n=e?void 0:t.inject(l);return t.computed((()=>(e&&(n=E(null==r?void 0:r.fieldsByPath.value[t.unref(e)])),n?n.meta.valid:(j(`field with name ${t.unref(e)} was not found`),!1))))},e.useIsFormDirty=function(){const e=w(o);return e||j("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=w(o);return e||j("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=w(o);return e||j("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=w(o);return e||j("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=w(o);return e||j("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=w(o);return e||j("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=w(o);t||j("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=w(o);let n=e?void 0:t.inject(l);return function(){return e&&(n=E(null==r?void 0:r.fieldsByPath.value[t.unref(e)])),n?n.validate():(j(`field with name ${t.unref(e)} was not found`),Promise.resolve({errors:[],valid:!0}))}},e.useValidateForm=function(){const e=w(o);return e||j("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=_,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 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 r(e)&&!!e.__locatorRef}function c(e){return!!e&&r(e.validate)}function f(e){return"checkbox"===e||"radio"===e}function v(e){return/^\[.+\]$/i.test(e)}function m(e){return"SELECT"===e.tagName}function p(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)||function(e,t){return function(e){return["input","textarea","select"].includes(e)}(e)&&"file"===t.type}(e,t)}function h(e){return!!e&&(!!("undefined"!=typeof Event&&r(Event)&&e instanceof Event)||!(!e||!e.srcElement))}function y(e,t){return t in e&&e[t]!==s}function g(e){return v(e)?e.replace(/\[|\]/gi,""):e}function b(e,t,r){if(!e)return r;if(v(t))return e[g(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 F(e,t,r){if(v(t))return void(e[g(t)]=r);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]]=r);a[e]in u&&!n(u[a[e]])||(u[a[e]]=i(a[e+1])?[]:{}),u=u[a[e]]}}function O(e,t){Array.isArray(e)&&i(t)?e.splice(Number(t),1):a(e)&&delete e[t]}function V(e,t){if(v(t))return void delete e[g(t)];const r=t.split(/\.|\[(\d+)\]/).filter(Boolean);let i=e;for(let e=0;e<r.length;e++){if(e===r.length-1){O(i,r[e]);break}if(!(r[e]in i)||n(i[r[e]]))break;i=i[r[e]]}const u=r.map(((t,n)=>b(e,r.slice(0,n).join("."))));for(let t=u.length-1;t>=0;t--)o=u[t],(Array.isArray(o)?0===o.length:a(o)&&0===Object.keys(o).length)&&(0!==t?O(u[t-1],r[t-1]):O(e,r[0]));var o}function A(e){return Object.keys(e)}function w(e,r){const n=t.getCurrentInstance();return(null==n?void 0:n.provides[e])||t.inject(e,r)}function j(e){t.warn(`[vee-validate]: ${e}`)}function E(e){return Array.isArray(e)?e[0]:e}function S(e,t,r){if(Array.isArray(e)){const r=[...e],n=r.indexOf(t);return n>=0?r.splice(n,1):r.push(t),r}return e===t?r:t}const k=(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 B(e){if(M(e))return e._value}function M(e){return"_value"in e}function I(e){if(!h(e))return e;const t=e.target;if(f(t.type)&&M(t))return B(t);if("file"===t.type&&t.files)return Array.from(t.files);if(m(r=t)&&r.multiple)return Array.from(t.options).filter((e=>e.selected&&!e.disabled)).map(B);var r;if(m(t)){const e=Array.from(t.options).find((e=>e.selected));return e?B(e):t.value}return t.value}function T(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]=C(n)),t}),t):"string"!=typeof e?t:e.split("|").reduce(((e,t)=>{const r=R(t);return r.name?(e[r.name]=C(r.params),e):e}),t):t}function C(e){const t=e=>"string"==typeof e&&"@"===e[0]?function(e){const t=t=>b(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 R=e=>{let t=[];const r=e.split(":")[0];return e.includes(":")&&(t=e.split(":").slice(1).join(":").split(",")),{name:r,params:t}};let x=Object.assign({},{generateMessage:({field:e})=>`${e} is not valid.`,bails:!0,validateOnBlur:!0,validateOnChange:!0,validateOnInput:!1,validateOnModelUpdate:!0});const P=()=>x,N=e=>{x=Object.assign(Object.assign({},x),e)};async function _(e,t,n={}){const a=null==n?void 0:n.bails,i={name:(null==n?void 0:n.name)||"{field}",rules:t,bails:null==a||a,formData:(null==n?void 0:n.values)||{}},u=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,i=[];for(let u=0;u<a;u++){const a=n[u],o=await a(t,r);if("string"!=typeof o&&o)continue;const l="string"==typeof o?o:D(r);if(i.push(l),e.bails)return{errors:i}}return{errors:i}}const n=Object.assign(Object.assign({},e),{rules:T(e.rules)}),a=[],i=Object.keys(n.rules),u=i.length;for(let r=0;r<u;r++){const u=i[r],o=await $(n,t,{name:u,params:n.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 $(e,t,r){const n=(a=r.name,u[a]);var a;if(!n)throw new Error(`No such validator '${r.name}' exists.`);const i=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:i})},l=await n(t,i,o);return"string"==typeof l?{error:l}:{error:l?void 0:D(o)}}function D(e){const t=P().generateMessage;return t?t(e):"Field is invalid"}async function U(e,t,r){const n=A(e).map((async n=>{var a,i,u;const o=await _(b(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===(u=null===(i=null==r?void 0:r.bailsMap)||void 0===i?void 0:i[n])||void 0===u||u});return Object.assign(Object.assign({},o),{path:n})}));let a=!0;const i=await Promise.all(n),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 q(e,t,r){"object"==typeof r.value&&(r.value=z(r.value)),r.enumerable&&!r.get&&!r.set&&r.configurable&&r.writable&&"__proto__"!==t?e[t]=r.value:Object.defineProperty(e,t,r)}function z(e){if("object"!=typeof e)return e;var t,r,n,a=0,i=Object.prototype.toString.call(e);if("[object Object]"===i?n=Object.create(e.__proto__||null):"[object Array]"===i?n=Array(e.length):"[object Set]"===i?(n=new Set,e.forEach((function(e){n.add(z(e))}))):"[object Map]"===i?(n=new Map,e.forEach((function(e,t){n.set(z(t),z(e))}))):"[object Date]"===i?n=new Date(+e):"[object RegExp]"===i?n=new RegExp(e.source,e.flags):"[object DataView]"===i?n=new e.constructor(z(e.buffer)):"[object ArrayBuffer]"===i?n=e.slice(0):"Array]"===i.slice(-6)&&(n=new e.constructor(e)),n){for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)q(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]||q(n,t,Object.getOwnPropertyDescriptor(e,t))}return n||e}var L=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,i;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=(i=Object.keys(t)).length)!==Object.keys(r).length)return!1;for(a=n;0!=a--;)if(!Object.prototype.hasOwnProperty.call(r,i[a]))return!1;for(a=n;0!=a--;){var u=i[a];if(!e(t[u],r[u]))return!1}return!0}return t!=t&&r!=r};let K=0;function G(e,r){const{value:n,initialValue:a,setInitialValue:i}=function(e,r,n){const a=n?w(o,void 0):void 0,i=t.ref(t.unref(r));function u(){return a?b(a.meta.value.initialValues,t.unref(e),t.unref(i)):t.unref(i)}function l(r){a?a.setFieldInitialValue(t.unref(e),r):i.value=r}const s=t.computed(u);if(!a){return{value:t.ref(u()),initialValue:s,setInitialValue:l}}const d=r?t.unref(r):b(a.values,t.unref(e),t.unref(s));a.stageInitialValue(t.unref(e),d);return{value:t.computed({get:()=>b(a.values,t.unref(e)),set(r){a.setFieldValue(t.unref(e),r)}}),initialValue:s,setInitialValue:l}}(e,r.modelValue,!r.standalone),{errorMessage:u,errors:l,setErrors:s}=function(e,r){const n=r?w(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 i=t.computed((()=>n.errorBag.value[t.unref(e)]||[]));return{errors:i,errorMessage:t.computed((()=>i.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((()=>!L(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:K>=Number.MAX_SAFE_INTEGER?0:++K,path:e,value:n,initialValue:a,meta:d,errors:l,errorMessage:u,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&&i(e.initialValue)}}}function X(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:w(o),i=null==n?void 0:n.checkedValue,u=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(i);return Array.isArray(r)?r.includes(n):n===r}));function o(o,l=!0){var s,d;if(n.value===(null===(d=null===(s=o)||void 0===s?void 0:s.target)||void 0===d?void 0:d.checked))return;let c=I(o);a||(c=S(t.unref(e.value),t.unref(i),t.unref(u))),r(c,l)}return t.onBeforeUnmount((()=>{n.value&&o(t.unref(i),!1)})),Object.assign(Object.assign({},e),{checked:n,checkedValue:i,uncheckedValue:u,handleChange:o})}return l(H(e,r,n))}(e,r,n):H(e,r,n)}function H(e,n,a){const{initialValue:i,validateOnMount:u,bails:s,type:f,checkedValue:v,label:m,validateOnValueUpdate:p,uncheckedValue:h,standalone:y}=function(e,t){const r=()=>({initialValue:void 0,validateOnMount:!1,bails:!0,rules:"",label:e,validateOnValueUpdate:!0,standalone:!1});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),g=y?void 0:w(o);let F=!1;const{id:O,value:V,initialValue:j,meta:E,setState:S,errors:k,errorMessage:B}=G(e,{modelValue:i,standalone:y}),M=t.computed((()=>{let a=t.unref(n);const i=t.unref(null==g?void 0:g.schema);return i&&!c(i)&&(a=function(e,t){if(!e)return;return e[t]}(i,t.unref(e))||a),c(a)||r(a)||Array.isArray(a)?a:T(a)}));async function C(r){var n,a;return(null==g?void 0:g.validateSchema)?null!==(n=(await g.validateSchema(r)).results[t.unref(e)])&&void 0!==n?n:{valid:!0,errors:[]}:_(V.value,M.value,{name:t.unref(m)||t.unref(e),values:null!==(a=null==g?void 0:g.values)&&void 0!==a?a:{},bails:s})}async function R(){E.pending=!0,E.validated=!0;const e=await C("validated-only");return F&&(e.valid=!0,e.errors=[]),S({errors:e.errors}),E.pending=!1,e}async function x(){const e=await C("silent");return F&&(e.valid=!0),E.valid=e.valid,e}let P;function N(){P=t.watch(V,p?R:x,{deep:!0})}function $(e){var r;null==P||P();const n=e&&"value"in e?e.value:j.value;S({value:z(n),initialValue:z(n),touched:null!==(r=null==e?void 0:e.touched)&&void 0!==r&&r,errors:(null==e?void 0:e.errors)||[]}),E.pending=!1,E.validated=!1,x(),t.nextTick((()=>{N()}))}t.onMounted((()=>{if(u)return R();g&&g.validateSchema||x()})),N();const D={id:O,name:e,label:m,value:V,meta:E,errors:k,errorMessage:B,type:f,checkedValue:v,uncheckedValue:h,bails:s,resetField:$,handleReset:()=>$(),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)?R():x():R()},handleChange:(e,t=!0)=>{const r=I(e);V.value=r,!p&&t&&R()},handleBlur:()=>{E.touched=!0},setState:S,setTouched:function(e){E.touched=e},setErrors:function(e){S({errors:Array.isArray(e)?e:[e]})},setValue:function(e){V.value=e}};if(t.provide(l,D),t.isRef(n)&&"function"!=typeof t.unref(n)&&t.watch(n,((e,t)=>{L(e,t)||(E.validated?R():x())}),{deep:!0}),!g)return D;g.register(D),t.onBeforeUnmount((()=>{F=!0,g.unregister(D)}));const U=t.computed((()=>{const e=M.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):A(a).filter((e=>d(a[e]))).map((e=>a[e]))).map((e=>e.__locatorRef)).reduce(((e,t)=>{const r=b(g.values,t)||g.values[t];return void 0!==r&&(e[t]=r),e}),{});var a;return Object.assign(t,n),t}),{})}));return t.watch(U,((e,t)=>{if(!Object.keys(e).length)return;!L(e,t)&&(E.validated?R():x())})),D}function J(e,t){let r=e.as||"";return e.as||t.slots.default||(r="input"),r}function Q(e,t){return f(t.attrs.type)?y(e,"modelValue")?e.modelValue:void 0:y(e,"modelValue")?e.modelValue:t.attrs.value}const W=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:()=>P().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}},setup(e,r){const n=t.toRef(e,"rules"),a=t.toRef(e,"name"),i=t.toRef(e,"label"),u=t.toRef(e,"uncheckedValue"),o=y(e,"onUpdate:modelValue"),{errors:l,value:d,errorMessage:c,validate:v,handleChange:m,handleBlur:h,setTouched:g,resetField:b,handleReset:F,meta:O,checked:V,setErrors:A}=X(a,n,{validateOnMount:e.validateOnMount,bails:e.bails,standalone:e.standalone,type:r.attrs.type,initialValue:Q(e,r),checkedValue:r.attrs.value,uncheckedValue:u,label:i,validateOnValueUpdate:!1}),w=o?function(e,t=!0){m(e,t),r.emit("update:modelValue",d.value)}:m,j=e=>{f(r.attrs.type)||(d.value=I(e))},E=o?function(e){j(e),r.emit("update:modelValue",d.value)}:j,S=t.computed((()=>{const{validateOnInput:t,validateOnChange:n,validateOnBlur:a,validateOnModelUpdate:i}=function(e){var t,r,n,a;const{validateOnInput:i,validateOnChange:u,validateOnBlur:o,validateOnModelUpdate:l}=P();return{validateOnInput:null!==(t=e.validateOnInput)&&void 0!==t?t:i,validateOnChange:null!==(r=e.validateOnChange)&&void 0!==r?r:u,validateOnBlur:null!==(n=e.validateOnBlur)&&void 0!==n?n:o,validateOnModelUpdate:null!==(a=e.validateOnModelUpdate)&&void 0!==a?a:l}}(e),u=[h,r.attrs.onBlur,a?v:void 0].filter(Boolean),o=[e=>w(e,t),r.attrs.onInput].filter(Boolean),l=[e=>w(e,n),r.attrs.onChange].filter(Boolean),s={name:e.name,onBlur:u,onInput:o,onChange:l,"onUpdate:modelValue":e=>w(e,i)};f(r.attrs.type)&&V?s.checked=V.value:s.value=d.value;return p(J(e,r),r.attrs)&&delete s.value,s})),B=t.toRef(e,"modelValue");function M(){return{field:S.value,value:d.value,meta:O,errors:l.value,errorMessage:c.value,validate:v,resetField:b,handleChange:w,handleInput:E,handleReset:F,handleBlur:h,setTouched:g,setErrors:A}}return t.watch(B,(t=>{t===s&&void 0===d.value||t!==function(e,t){if(t.number)return function(e){const t=parseFloat(e);return isNaN(t)?e:t}(e);return e}(d.value,e.modelModifiers)&&(d.value=t===s?void 0:t,v())})),r.expose({setErrors:A,setTouched:g,reset:b,validate:v,handleChange:m}),()=>{const n=t.resolveDynamicComponent(J(e,r)),a=k(n,r,M);return n?t.h(n,Object.assign(Object.assign({},r.attrs),S.value),a):a}}});let Y=0;function Z(e){const r=Y++;let n=!1;const a=t.ref({}),i=t.ref(!1),u=t.ref(0),l={},s=t.reactive(z(t.unref(null==e?void 0:e.initialValues)||{})),{errorBag:d,setErrorBag:f,setFieldErrorBag:v}=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 i(e){r.value=A(e).reduce(((t,r)=>{const a=e[r];return a&&(t[r]=n(a)),t}),{})}e&&i(e);return{errorBag:r,setErrorBag:i,setFieldErrorBag:a}}(null==e?void 0:e.initialErrors),m=t.computed((()=>A(d.value).reduce(((e,t)=>{const r=d.value[t];return r&&r.length&&(e[t]=r[0]),e}),{})));function p(e){const t=a.value[e];return Array.isArray(t)?t[0]:t}function y(e){return!!a.value[e]}const g=t.computed((()=>A(a.value).reduce(((e,r)=>{const n=p(r);return n&&(e[r]=t.unref(n.label||n.name)||""),e}),{}))),O=t.computed((()=>A(a.value).reduce(((e,t)=>{var r;const n=p(t);return n&&(e[t]=null===(r=n.bails)||void 0===r||r),e}),{}))),w=Object.assign({},(null==e?void 0:e.initialErrors)||{}),{initialValues:j,originalInitialValues:E,setInitialValues:k}=function(e,r,n){const a=t.ref(z(t.unref(n))||{}),i=t.ref(z(t.unref(n))||{});function u(t,n=!1){a.value=z(t),i.value=z(t),n&&A(e.value).forEach((t=>{const n=e.value[t],i=Array.isArray(n)?n.some((e=>e.meta.touched)):null==n?void 0:n.meta.touched;if(!n||i)return;const u=b(a.value,t);F(r,t,z(u))}))}t.isRef(n)&&t.watch(n,(e=>{u(e,!0)}),{deep:!0});return{initialValues:a,originalInitialValues:i,setInitialValues:u}}(a,s,null==e?void 0:e.initialValues),B=function(e,r,n,a){const i={touched:"some",pending:"some",valid:"every"},u=t.computed((()=>!L(r,t.unref(n))));function o(){const t=Object.values(e.value).flat(1).filter(Boolean);return A(i).reduce(((e,r)=>{const n=i[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&&!A(a.value).length,dirty:u.value})))}(a,s,j,m),M=null==e?void 0:e.validationSchema,I={formId:r,fieldsByPath:a,values:s,errorBag:d,errors:m,schema:M,submitCount:u,meta:B,isSubmitting:i,fieldArraysLookup:l,validateSchema:t.unref(M)?async function(e){const t=await W(),r=I.fieldsByPath.value||{},n=A(I.errorBag.value);return[...new Set([...A(t.results),...A(r),...n])].reduce(((n,a)=>{const i=r[a],u=(t.results[a]||{errors:[]}).errors,o={errors:u,valid:!u.length};if(n.results[a]=o,o.valid||(n.errors[a]=o.errors[0]),!i)return x(a,u),n;if(C(i,(e=>e.meta.valid=o.valid)),"silent"===e)return n;const l=Array.isArray(i)?i.some((e=>e.meta.validated)):i.meta.validated;return"validated-only"!==e||l?(C(i,(e=>e.setState({errors:o.errors}))),n):n}),{valid:t.valid,results:{},errors:{}})}:void 0,validate:X,register:function(e){const r=t.unref(e.name);K(e,r),t.isRef(e.name)&&t.watch(e.name,(async(r,n)=>{await t.nextTick(),G(e,n),K(e,r),(m.value[n]||m.value[r])&&(x(n,void 0),H(r)),await t.nextTick(),y(n)||V(s,n)}));const n=t.unref(e.errorMessage);n&&(null==w?void 0:w[r])!==n&&H(r);delete w[r]},unregister:function(e){const r=t.unref(e.name);G(e,r),t.nextTick((()=>{y(r)||(x(r,void 0),V(s,r))}))},setFieldErrorBag:v,validateField:H,setFieldValue:N,setValues:_,setErrors:P,setFieldError:x,setFieldTouched:$,setTouched:D,resetForm:q,handleSubmit:J,stageInitialValue:function(e,t){F(s,e,t),Q(e,t)},unsetInitialValue:function(e){V(j.value,e)},setFieldInitialValue:Q};function T(e){return Array.isArray(e)}function C(e,t){return Array.isArray(e)?e.forEach(t):t(e)}function R(e){Object.values(a.value).forEach((t=>{t&&C(t,e)}))}function x(e,t){v(e,t)}function P(e){f(e)}function N(e,r,{force:i}={force:!1}){var u;const o=a.value[e],l=z(r);if(!o)return void F(s,e,l);if(T(o)&&"checkbox"===(null===(u=o[0])||void 0===u?void 0:u.type)&&!Array.isArray(r)){const t=z(S(b(s,e)||[],r,void 0));return void F(s,e,t)}let d=r;T(o)||"checkbox"!==o.type||i||n||(d=z(S(b(s,e),r,t.unref(o.uncheckedValue)))),F(s,e,d)}function _(e){A(s).forEach((e=>{delete s[e]})),A(e).forEach((t=>{N(t,e[t])})),Object.values(l).forEach((e=>e&&e.reset()))}function $(e,t){const r=a.value[e];r&&C(r,(e=>e.setTouched(t)))}function D(e){A(e).forEach((t=>{$(t,!!e[t])}))}function q(e){n=!0,(null==e?void 0:e.values)?(k(e.values),_(null==e?void 0:e.values)):(k(E.value),_(E.value)),R((e=>e.resetField())),(null==e?void 0:e.touched)&&D(e.touched),P((null==e?void 0:e.errors)||{}),u.value=(null==e?void 0:e.submitCount)||0,t.nextTick((()=>{n=!1}))}function K(e,r){const n=t.markRaw(e),i=r;if(!a.value[i])return void(a.value[i]=n);const u=a.value[i];u&&!Array.isArray(u)&&(a.value[i]=[u]),a.value[i]=[...a.value[i],n]}function G(e,t){const r=t,n=a.value[r];if(n)if(T(n)||e.id!==n.id){if(T(n)){const t=n.findIndex((t=>t.id===e.id));if(-1===t)return;if(n.splice(t,1),1===n.length)return void(a.value[r]=n[0]);n.length||delete a.value[r]}}else delete a.value[r]}async function X(e){if(R((e=>e.meta.validated=!0)),I.validateSchema)return I.validateSchema((null==e?void 0:e.mode)||"force");const r=await Promise.all(Object.values(a.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={},i={};for(const e of r)n[e.key]={valid:e.valid,errors:e.errors},e.errors.length&&(i[e.key]=e.errors[0]);return{valid:r.every((e=>e.valid)),results:n,errors:i}}async function H(e){const r=a.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 J(e,t){return function(r){return r instanceof Event&&(r.preventDefault(),r.stopPropagation()),D(A(a.value).reduce(((e,t)=>(e[t]=!0,e)),{})),i.value=!0,u.value++,X().then((n=>{if(n.valid&&"function"==typeof e)return e(z(s),{evt:r,setErrors:P,setFieldError:x,setTouched:D,setFieldTouched:$,setValues:_,setFieldValue:N,resetForm:q});n.valid||"function"!=typeof t||t({values:z(s),evt:r,errors:n.errors,results:n.results})})).then((e=>(i.value=!1,e)),(e=>{throw i.value=!1,e}))}}function Q(e,t){F(j.value,e,z(t))}const W=function(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)))}}((async function(){const e=t.unref(M);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,s):await U(e,s,{names:g.value,bailsMap:O.value});return r}),5);const Z=J(((e,{evt:t})=>{(function(e){return h(e)&&e.target&&"submit"in e.target})(t)&&t.target.submit()}));return t.onMounted((()=>{(null==e?void 0:e.initialErrors)&&P(e.initialErrors),(null==e?void 0:e.initialTouched)&&D(e.initialTouched),(null==e?void 0:e.validateOnMount)?X():I.validateSchema&&I.validateSchema("silent")})),t.isRef(M)&&t.watch(M,(()=>{var e;null===(e=I.validateSchema)||void 0===e||e.call(I,"validated-only")})),t.provide(o,I),{errors:m,meta:B,values:s,isSubmitting:i,submitCount:u,validate:X,validateField:H,handleReset:()=>q(),resetForm:q,handleSubmit:J,submitForm:Z,setFieldError:x,setErrors:P,setFieldValue:N,setValues:_,setFieldTouched:$,setTouched:D}}const ee=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}},setup(e,r){const n=t.toRef(e,"initialValues"),a=t.toRef(e,"validationSchema"),{errors:i,values:u,meta:o,isSubmitting:l,submitCount:s,validate:d,validateField:c,handleReset:f,resetForm:v,handleSubmit:m,submitForm:p,setErrors:y,setFieldError:g,setFieldValue:b,setValues:F,setFieldTouched:O,setTouched:V}=Z({validationSchema:a.value?a:void 0,initialValues:n,initialErrors:e.initialErrors,initialTouched:e.initialTouched,validateOnMount:e.validateOnMount}),A=e.onSubmit?m(e.onSubmit,e.onInvalidSubmit):p;function w(e){h(e)&&e.preventDefault(),f(),"function"==typeof r.attrs.onReset&&r.attrs.onReset()}function j(t,r){return m("function"!=typeof t||r?r:t,e.onInvalidSubmit)(t)}function E(){return{meta:o.value,errors:i.value,values:u,isSubmitting:l.value,submitCount:s.value,validate:d,validateField:c,handleSubmit:j,handleReset:f,submitForm:p,setErrors:y,setFieldError:g,setFieldValue:b,setValues:F,setFieldTouched:O,setTouched:V,resetForm:v}}return r.expose({setFieldError:g,setErrors:y,setFieldValue:b,setValues:F,setFieldTouched:O,setTouched:V,resetForm:v,validate:d,validateField:c}),function(){const n="form"===e.as?e.as:t.resolveDynamicComponent(e.as),a=k(n,r,E);if(!e.as)return a;const i="form"===e.as?{novalidate:!0}:{};return t.h(n,Object.assign(Object.assign(Object.assign({},i),r.attrs),{onSubmit:A,onReset:w}),a)}}}),te=ee;let re=0;function ne(e){const r=re++,a=w(o,void 0),i=t.ref([]),u=()=>{},l={fields:t.readonly(i),remove:u,push:u,swap:u,insert:u,update:u,replace:u,prepend:u};if(!a)return j("FieldArray requires being a child of `<Form/>` or `useForm` being called before it. Array fields may not work correctly"),l;if(!t.unref(e))return j("FieldArray requires a field path to be provided, did you forget to pass the `name` prop?"),l;let s=0;function d(){const r=b(null==a?void 0:a.values,t.unref(e),[]);i.value=r.map(f),c()}function c(){const e=i.value.length;for(let t=0;t<e;t++){const r=i.value[t];r.isFirst=0===t,r.isLast=t===e-1}}function f(r){const n=s++;return{key:n,value:t.computed((()=>{const u=b(null==a?void 0:a.values,t.unref(e),[]),o=i.value.findIndex((e=>e.key===n));return-1===o?r:u[o]})),isFirst:!1,isLast:!1}}return d(),a.fieldArraysLookup[r]={reset:d},t.onBeforeUnmount((()=>{delete a.fieldArraysLookup[r]})),{fields:t.readonly(i),remove:function(r){const n=t.unref(e),u=b(null==a?void 0:a.values,n);if(!u||!Array.isArray(u))return;const o=[...u];o.splice(r,1),null==a||a.unsetInitialValue(n+`[${r}]`),null==a||a.setFieldValue(n,o),i.value.splice(r,1),c()},push:function(r){const u=t.unref(e),o=b(null==a?void 0:a.values,u),l=n(o)?[]:o;if(!Array.isArray(l))return;const s=[...l];s.push(r),null==a||a.stageInitialValue(u+`[${s.length-1}]`,r),null==a||a.setFieldValue(u,s),i.value.push(f(r)),c()},swap:function(r,n){const u=t.unref(e),o=b(null==a?void 0:a.values,u);if(!Array.isArray(o)||!(r in o)||!(n in o))return;const l=[...o],s=[...i.value],d=l[r];l[r]=l[n],l[n]=d;const f=s[r];s[r]=s[n],s[n]=f,null==a||a.setFieldValue(u,l),i.value=s,c()},insert:function(r,n){const u=t.unref(e),o=b(null==a?void 0:a.values,u);if(!Array.isArray(o)||o.length<r)return;const l=[...o],s=[...i.value];l.splice(r,0,n),s.splice(r,0,f(n)),null==a||a.setFieldValue(u,l),i.value=s,c()},update:function(r,n){const i=t.unref(e),u=b(null==a?void 0:a.values,i);!Array.isArray(u)||u.length-1<r||null==a||a.setFieldValue(`${i}[${r}]`,n)},replace:function(r){const n=t.unref(e);null==a||a.setFieldValue(n,r),d()},prepend:function(r){const u=t.unref(e),o=b(null==a?void 0:a.values,u),l=n(o)?[]:o;if(!Array.isArray(l))return;const s=[r,...l];null==a||a.stageInitialValue(u+`[${s.length-1}]`,r),null==a||a.setFieldValue(u,s),i.value.unshift(f(r)),c()}}}const ae=t.defineComponent({name:"FieldArray",inheritAttrs:!1,props:{name:{type:String,required:!0}},setup(e,r){const{push:n,remove:a,swap:i,insert:u,replace:o,update:l,prepend:s,fields:d}=ne(t.toRef(e,"name"));function c(){return{fields:d.value,push:n,remove:a,swap:i,insert:u,update:l,replace:o,prepend:s}}return r.expose({push:n,remove:a,swap:i,insert:u,update:l,replace:o,prepend:s}),()=>k(void 0,r,c)}}),ie=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 i(){return{message:a.value}}return()=>{if(!a.value)return;const n=e.as?t.resolveDynamicComponent(e.as):e.as,u=k(n,r,i),o=Object.assign({role:"alert"},r.attrs);return n||!Array.isArray(u)&&u||!(null==u?void 0:u.length)?!Array.isArray(u)&&u||(null==u?void 0:u.length)?t.h(n,o,u):t.h(n||"span",o,a.value):u}}});e.ErrorMessage=ie,e.Field=W,e.FieldArray=ae,e.FieldContextKey=l,e.Form=te,e.FormContextKey=o,e.configure=N,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),u[e]=t},e.useField=X,e.useFieldArray=ne,e.useFieldError=function(e){const r=w(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=w(o),n=e?void 0:t.inject(l);return t.computed((()=>e?b(null==r?void 0:r.values,t.unref(e)):t.unref(null==n?void 0:n.value)))},e.useForm=Z,e.useFormErrors=function(){const e=w(o);return e||j("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=w(o);return e||j("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=w(o);let n=e?void 0:t.inject(l);return t.computed((()=>(e&&(n=E(null==r?void 0:r.fieldsByPath.value[t.unref(e)])),n?n.meta.dirty:(j(`field with name ${t.unref(e)} was not found`),!1))))},e.useIsFieldTouched=function(e){const r=w(o);let n=e?void 0:t.inject(l);return t.computed((()=>(e&&(n=E(null==r?void 0:r.fieldsByPath.value[t.unref(e)])),n?n.meta.touched:(j(`field with name ${t.unref(e)} was not found`),!1))))},e.useIsFieldValid=function(e){const r=w(o);let n=e?void 0:t.inject(l);return t.computed((()=>(e&&(n=E(null==r?void 0:r.fieldsByPath.value[t.unref(e)])),n?n.meta.valid:(j(`field with name ${t.unref(e)} was not found`),!1))))},e.useIsFormDirty=function(){const e=w(o);return e||j("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=w(o);return e||j("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=w(o);return e||j("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=w(o);return e||j("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=w(o);return e||j("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=w(o);return e||j("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=w(o);t||j("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=w(o);let n=e?void 0:t.inject(l);return function(){return e&&(n=E(null==r?void 0:r.fieldsByPath.value[t.unref(e)])),n?n.validate():(j(`field with name ${t.unref(e)} was not found`),Promise.resolve({errors:[],valid:!0}))}},e.useValidateForm=function(){const e=w(o);return e||j("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=_,Object.defineProperty(e,"__esModule",{value:!0})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vee-validate",
3
- "version": "4.5.10",
3
+ "version": "4.5.11",
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.0.0-beta.15"
35
35
  },
36
- "gitHead": "a56b3a07adf281d0c66150168f8e3a0368a96a2c"
36
+ "gitHead": "800641f56605d2d9e7d62f0a4cfaeb3ffd900b88"
37
37
  }