@regle/core 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -615,7 +615,7 @@ function createReactiveRuleStatus({
615
615
  });
616
616
  $unwatchState = vue.watch(scopeState?.$params, () => {
617
617
  if (modifiers.$autoDirty.value || modifiers.$rewardEarly.value && scopeState.$fieldError.value) {
618
- $validate();
618
+ $parse();
619
619
  }
620
620
  });
621
621
  }
@@ -661,7 +661,7 @@ function createReactiveRuleStatus({
661
661
  return ruleResult;
662
662
  }
663
663
  const $computeAsyncDebounce = debounce(computeAsyncResult, $debounce ?? 200);
664
- async function $validate() {
664
+ async function $parse() {
665
665
  try {
666
666
  $validating.value = true;
667
667
  let ruleResult = false;
@@ -713,7 +713,7 @@ function createReactiveRuleStatus({
713
713
  $metadata,
714
714
  $haveAsync,
715
715
  $validating,
716
- $validate,
716
+ $parse,
717
717
  $unwatch,
718
718
  $watch,
719
719
  $reset
@@ -1094,7 +1094,7 @@ function createReactiveFieldStatus({
1094
1094
  }
1095
1095
  function $commitHandler() {
1096
1096
  Object.values($rules.value).forEach((rule) => {
1097
- rule.$validate();
1097
+ rule.$parse();
1098
1098
  });
1099
1099
  }
1100
1100
  const $rules = vue.ref({});
@@ -1130,7 +1130,7 @@ function createReactiveFieldStatus({
1130
1130
  }
1131
1131
  if (!scopeState.$lazy.value && scopeState.$autoDirty.value) {
1132
1132
  Object.values($rules.value).forEach((rule) => {
1133
- return rule.$validate();
1133
+ return rule.$parse();
1134
1134
  });
1135
1135
  }
1136
1136
  if (!fromParent) {
@@ -1156,16 +1156,16 @@ function createReactiveFieldStatus({
1156
1156
  if (!scopeState.$dirty.value) {
1157
1157
  scopeState.$dirty.value = true;
1158
1158
  } else if (scopeState.$autoDirty.value && scopeState.$dirty.value && !scopeState.$pending.value) {
1159
- return { result: !scopeState.$error.value, data };
1159
+ return { valid: !scopeState.$error.value, data };
1160
1160
  }
1161
1161
  if (schemaMode) {
1162
- return { result: !schemaErrors?.value?.length, data };
1162
+ return { valid: !schemaErrors?.value?.length, data };
1163
1163
  } else if (isEmpty($rules.value)) {
1164
- return { result: true, data };
1164
+ return { valid: true, data };
1165
1165
  }
1166
1166
  const results = await Promise.allSettled(
1167
1167
  Object.entries($rules.value).map(([key, rule]) => {
1168
- return rule.$validate();
1168
+ return rule.$parse();
1169
1169
  })
1170
1170
  );
1171
1171
  const validationResults = results.every((value) => {
@@ -1175,9 +1175,9 @@ function createReactiveFieldStatus({
1175
1175
  return false;
1176
1176
  }
1177
1177
  });
1178
- return { result: validationResults, data };
1178
+ return { valid: validationResults, data };
1179
1179
  } catch (e) {
1180
- return { result: false, data: state.value };
1180
+ return { valid: false, data: state.value };
1181
1181
  }
1182
1182
  }
1183
1183
  function $extractDirtyFields(filterNullishValues = true) {
@@ -1639,20 +1639,20 @@ function createReactiveCollectionStatus({
1639
1639
  try {
1640
1640
  const results = await Promise.allSettled([
1641
1641
  $selfStatus.value.$validate(),
1642
- ...$eachStatus.value.map((rule) => {
1643
- return rule.$validate();
1642
+ ...$eachStatus.value.map((status) => {
1643
+ return status.$validate();
1644
1644
  })
1645
1645
  ]);
1646
1646
  const validationResults = results.every((value) => {
1647
1647
  if (value.status === "fulfilled") {
1648
- return value.value.result === true;
1648
+ return value.value.valid === true;
1649
1649
  } else {
1650
1650
  return false;
1651
1651
  }
1652
1652
  });
1653
- return { result: validationResults, data };
1653
+ return { valid: validationResults, data };
1654
1654
  } catch (e) {
1655
- return { result: false, data };
1655
+ return { valid: false, data };
1656
1656
  }
1657
1657
  }
1658
1658
  function $clearExternalErrors() {
@@ -1886,7 +1886,7 @@ function createReactiveNestedStatus({
1886
1886
  });
1887
1887
  });
1888
1888
  const $invalid = vue.computed(() => {
1889
- return Object.entries($fields.value).some(([_, statusOrField]) => {
1889
+ return !!Object.entries($fields.value).length && Object.entries($fields.value).some(([_, statusOrField]) => {
1890
1890
  return statusOrField?.$invalid;
1891
1891
  });
1892
1892
  });
@@ -1904,7 +1904,11 @@ function createReactiveNestedStatus({
1904
1904
  }
1905
1905
  return false;
1906
1906
  });
1907
- const $error = vue.computed(() => $anyDirty.value && !$pending.value && $invalid.value);
1907
+ const $error = vue.computed(() => {
1908
+ return !!Object.entries($fields.value).length && Object.entries($fields.value).some(([_, statusOrField]) => {
1909
+ return statusOrField?.$error;
1910
+ });
1911
+ });
1908
1912
  const $rewardEarly = vue.computed(() => {
1909
1913
  if (vue.unref(commonArgs.options.rewardEarly) != null) {
1910
1914
  return vue.unref(commonArgs.options.rewardEarly);
@@ -2122,7 +2126,7 @@ function createReactiveNestedStatus({
2122
2126
  scopeState.$localPending.value = true;
2123
2127
  return commonArgs.onValidate();
2124
2128
  } else {
2125
- return { result: false, data: state.value };
2129
+ return { valid: false, data: state.value };
2126
2130
  }
2127
2131
  } else {
2128
2132
  const data = state.value;
@@ -2133,15 +2137,15 @@ function createReactiveNestedStatus({
2133
2137
  );
2134
2138
  const validationResults = results.every((value) => {
2135
2139
  if (value.status === "fulfilled") {
2136
- return value.value.result === true;
2140
+ return value.value.valid === true;
2137
2141
  } else {
2138
2142
  return false;
2139
2143
  }
2140
2144
  });
2141
- return { result: validationResults, data };
2145
+ return { valid: validationResults, data };
2142
2146
  }
2143
2147
  } catch (e) {
2144
- return { result: false, data: state.value };
2148
+ return { valid: false, data: state.value };
2145
2149
  } finally {
2146
2150
  scopeState.$localPending.value = false;
2147
2151
  }
@@ -2437,14 +2441,14 @@ function mergeRegles(regles, _scoped) {
2437
2441
  );
2438
2442
  const validationResults = results.every((value) => {
2439
2443
  if (value.status === "fulfilled") {
2440
- return value.value.result === true;
2444
+ return value.value.valid === true;
2441
2445
  } else {
2442
2446
  return false;
2443
2447
  }
2444
2448
  });
2445
- return { result: validationResults, data };
2449
+ return { valid: validationResults, data };
2446
2450
  } catch (e) {
2447
- return { result: false, data: $value.value };
2451
+ return { valid: false, data: $value.value };
2448
2452
  }
2449
2453
  }
2450
2454
  return vue.reactive({
@@ -1466,14 +1466,14 @@ type PartialFormState<TState extends Record<string, any>> = [unknown] extends [T
1466
1466
  [K in keyof TState as ExtendOnlyRealRecord<TState[K]> extends true ? K : TState[K] extends Array<any> ? K : never]: NonNullable<TState[K]> extends Array<infer U extends Record<string, any>> ? PartialFormState<U>[] : PartialFormState<TState[K]>;
1467
1467
  }>;
1468
1468
  type RegleResult<Data extends Record<string, any> | any[] | unknown, TRules extends ReglePartialRuleTree<any>> = {
1469
- result: false;
1469
+ valid: false;
1470
1470
  data: NonNullable<Data> extends Date | File ? Maybe<Data> : NonNullable<Data> extends Array<infer U extends Record<string, any>> ? PartialFormState<U>[] : NonNullable<Data> extends Record<string, any> ? PartialFormState<NonNullable<Data>> : Maybe<Data>;
1471
1471
  } | {
1472
- result: true;
1472
+ valid: true;
1473
1473
  data: Data extends Array<infer U extends Record<string, any>> ? DeepSafeFormState<U, TRules>[] : Data extends Date | File ? SafeFieldProperty<Data, TRules> : Data extends Record<string, any> ? DeepSafeFormState<Data, TRules> : SafeFieldProperty<Data, TRules>;
1474
1474
  };
1475
1475
  type $InternalRegleResult = {
1476
- result: boolean;
1476
+ valid: boolean;
1477
1477
  data: any;
1478
1478
  };
1479
1479
 
@@ -1696,7 +1696,7 @@ type RegleRuleStatus<TValue = any, TParams extends any[] = any[], TMetadata exte
1696
1696
  /** Contains the metadata returned by the validator function. */
1697
1697
  readonly $metadata: TMetadata;
1698
1698
  /** Run the rule validator and compute its properties like $message and $active */
1699
- $validate(): Promise<boolean>;
1699
+ $parse(): Promise<boolean>;
1700
1700
  /** Reset the $valid, $metadata and $pending states */
1701
1701
  $reset(): void;
1702
1702
  /** Returns the original rule validator function. */
@@ -1729,7 +1729,7 @@ interface $InternalRegleRuleStatus {
1729
1729
  $fieldCorrect: boolean;
1730
1730
  $fieldError: boolean;
1731
1731
  $validator(value: any, ...args: any[]): RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>;
1732
- $validate(): Promise<boolean>;
1732
+ $parse(): Promise<boolean>;
1733
1733
  $reset(): void;
1734
1734
  $unwatch(): void;
1735
1735
  $watch(): void;
@@ -1873,17 +1873,17 @@ type MergedScopedRegles<TValue extends Record<string, unknown>[] = Record<string
1873
1873
  readonly $silentErrors: RegleValidationErrors<Record<string, unknown>>[];
1874
1874
  };
1875
1875
  type MergedReglesResult<TRegles extends Record<string, SuperCompatibleRegleRoot>> = {
1876
- result: false;
1876
+ valid: false;
1877
1877
  data: {
1878
1878
  [K in keyof TRegles]: Extract<PromiseReturn<ReturnType<TRegles[K]['$validate']>>, {
1879
- result: false;
1879
+ valid: false;
1880
1880
  }>['data'];
1881
1881
  };
1882
1882
  } | {
1883
- result: true;
1883
+ valid: true;
1884
1884
  data: {
1885
1885
  [K in keyof TRegles]: Extract<PromiseReturn<ReturnType<TRegles[K]['$validate']>>, {
1886
- result: true;
1886
+ valid: true;
1887
1887
  }>['data'];
1888
1888
  };
1889
1889
  };
@@ -1466,14 +1466,14 @@ type PartialFormState<TState extends Record<string, any>> = [unknown] extends [T
1466
1466
  [K in keyof TState as ExtendOnlyRealRecord<TState[K]> extends true ? K : TState[K] extends Array<any> ? K : never]: NonNullable<TState[K]> extends Array<infer U extends Record<string, any>> ? PartialFormState<U>[] : PartialFormState<TState[K]>;
1467
1467
  }>;
1468
1468
  type RegleResult<Data extends Record<string, any> | any[] | unknown, TRules extends ReglePartialRuleTree<any>> = {
1469
- result: false;
1469
+ valid: false;
1470
1470
  data: NonNullable<Data> extends Date | File ? Maybe<Data> : NonNullable<Data> extends Array<infer U extends Record<string, any>> ? PartialFormState<U>[] : NonNullable<Data> extends Record<string, any> ? PartialFormState<NonNullable<Data>> : Maybe<Data>;
1471
1471
  } | {
1472
- result: true;
1472
+ valid: true;
1473
1473
  data: Data extends Array<infer U extends Record<string, any>> ? DeepSafeFormState<U, TRules>[] : Data extends Date | File ? SafeFieldProperty<Data, TRules> : Data extends Record<string, any> ? DeepSafeFormState<Data, TRules> : SafeFieldProperty<Data, TRules>;
1474
1474
  };
1475
1475
  type $InternalRegleResult = {
1476
- result: boolean;
1476
+ valid: boolean;
1477
1477
  data: any;
1478
1478
  };
1479
1479
 
@@ -1696,7 +1696,7 @@ type RegleRuleStatus<TValue = any, TParams extends any[] = any[], TMetadata exte
1696
1696
  /** Contains the metadata returned by the validator function. */
1697
1697
  readonly $metadata: TMetadata;
1698
1698
  /** Run the rule validator and compute its properties like $message and $active */
1699
- $validate(): Promise<boolean>;
1699
+ $parse(): Promise<boolean>;
1700
1700
  /** Reset the $valid, $metadata and $pending states */
1701
1701
  $reset(): void;
1702
1702
  /** Returns the original rule validator function. */
@@ -1729,7 +1729,7 @@ interface $InternalRegleRuleStatus {
1729
1729
  $fieldCorrect: boolean;
1730
1730
  $fieldError: boolean;
1731
1731
  $validator(value: any, ...args: any[]): RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>;
1732
- $validate(): Promise<boolean>;
1732
+ $parse(): Promise<boolean>;
1733
1733
  $reset(): void;
1734
1734
  $unwatch(): void;
1735
1735
  $watch(): void;
@@ -1873,17 +1873,17 @@ type MergedScopedRegles<TValue extends Record<string, unknown>[] = Record<string
1873
1873
  readonly $silentErrors: RegleValidationErrors<Record<string, unknown>>[];
1874
1874
  };
1875
1875
  type MergedReglesResult<TRegles extends Record<string, SuperCompatibleRegleRoot>> = {
1876
- result: false;
1876
+ valid: false;
1877
1877
  data: {
1878
1878
  [K in keyof TRegles]: Extract<PromiseReturn<ReturnType<TRegles[K]['$validate']>>, {
1879
- result: false;
1879
+ valid: false;
1880
1880
  }>['data'];
1881
1881
  };
1882
1882
  } | {
1883
- result: true;
1883
+ valid: true;
1884
1884
  data: {
1885
1885
  [K in keyof TRegles]: Extract<PromiseReturn<ReturnType<TRegles[K]['$validate']>>, {
1886
- result: true;
1886
+ valid: true;
1887
1887
  }>['data'];
1888
1888
  };
1889
1889
  };
@@ -1,2 +1,2 @@
1
- 'use strict';var vue=require('vue');function ee(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var pt=Symbol("regle-rule");function Lt(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function G(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>G(n)))),r=="Map"&&(t=new Map([...e].map(n=>[G(n[0]),G(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Lt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=G(e[n]);}return t}function ae(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function We(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Fe(e,t,r){let n,l=(...c)=>new Promise(p=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...c])).then(p);},t);});return l.cancel=()=>{clearTimeout(n),n=undefined;},l}var Le=(r=>(r.Inline="__inline",r.Async="__async",r))(Le||{});function mt(e,t){return e.some(r=>r[t])}function yt(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function te(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function gt(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function vt(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(p=>p.trim()).filter(p=>p.length>0).length:0}function Be(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(d,...$){return e.validator(d,...te($.length?$:t))},message(d){return typeof e.message=="function"?e.message({...d,$params:te(d?.$params?.length?d.$params:t)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:te(d?.$params?.length?d.$params:t)}):e.active??true},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:te(d?.$params?.length?d.$params:t)}):e.tooltip??[]},exec(d){let $=e.validator(d,...te(t)),m;return $ instanceof Promise?$.then(b=>(m=b,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)):(m=$,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:l,_params:gt(t),_brand:pt}}function He(e){if(typeof e.validator=="function"){let r=Be(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(vt(e.validator)>1){let l=function(...c){return Be(e,...c)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=false,l._tooltip_pacthed=false,l._async=n,l}else return r}throw new Error("Validator must be a function")}function ze(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),l=vue.shallowRef(new Map),c=vue.shallowRef(new Map);function p(v){let E=t.value.get(v);if(E)return E;{let D=vue.ref({});return t.value.set(v,D),D}}function d(v){let E=r.value.get(v);if(E)return E;{let D=vue.ref([]);return r.value.set(v,D),D}}function $(v,E,D){c.value.set(`${v}-${E}`,D);}function m(v,E){return c.value.get(`${v}-${E}`)}function b(v,E){v&&E!=null&&c.value.delete(`${v}-${E}`);}function V(v,E){n.value.set(v,E);}function C(v){return n.value.get(v)??false}function M(v,E){e.value.set(v,E);}function w(v,E){let D=e.value.get(v);return D?a(E,D)?{valid:true}:{valid:false}:undefined}function a(v,E){let D=Object.keys(E),f=Object.keys(v);return f.length!==D.length||!f.every(o=>D.includes(o))?false:f.every(o=>{let s=v[o],h=E[o];return !h||!s||typeof s=="function"||typeof h=="function"||typeof s=="number"||typeof s=="boolean"?false:s._params?s._params?.every((P,q)=>{if(typeof h=="number"||typeof h=="boolean")return true;{let U=te(h._params),X=te(s._params);return U?.[q]===X?.[q]}}):true})}function O(v){let E=l.value.get(v);if(E)return E;{let D=vue.ref(false),f=vue.ref(true),S=vue.ref({}),o=vue.ref(false);return l.value.set(v,{$pending:D,$valid:f,$metadata:S,$validating:o}),{$pending:D,$valid:f,$metadata:S,$validating:o}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),c.value.clear();}),{addRuleDeclEntry:M,setDirtyEntry:V,checkRuleDeclEntry:w,getDirtyState:C,trySetRuleStatusRef:O,getFieldsEntry:p,getCollectionsEntry:d,getArrayStatus:m,addArrayStatus:$,deleteArrayStatus:b,arrayStatusStorage:c}}function je(e){return ae(e.value)}function qe(e,t,r){let n=vue.effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function Xt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let c=Number(r[l]),p=Number(n[l]);if(c>p)return 1;if(p>c)return -1;if(!isNaN(c)&&isNaN(p))return 1;if(isNaN(c)&&!isNaN(p))return -1}return 0}var Ve=Xt(vue.version,"3.5.0")!==-1;function Zt(){return Math.floor(Math.random()*Date.now()).toString()}function Se(){return typeof window>"u"?Zt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function $t(e){return vue.getCurrentScope()?(vue.onScopeDispose(e),true):false}function St(e){let t=false,r,n=vue.effectScope(true);return (...l)=>(t||(r=n.run(()=>e(...l)),t=true),r)}function ht(e,t){return je(e)||ae(t.value)&&!ee(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function bt(e,t){return !!e.value&&ae(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Et(e){return !!e.value&&ae(e.value)}function we(e){return ae(e)&&"_validator"in e}function Oe(e){return typeof e.value!="function"}function Tt(e){return ae(e)&&"$fields"in e}function xt(e){return !!e&&"$rules"in e}function Ke({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Dt({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function Ct({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:c,$debounce:p,modifiers:d}){let $=vue.effectScope(),m={},b,V=vue.ref(false),{$pending:C,$valid:M,$metadata:w,$validating:a}=c.trySetRuleStatusRef(`${l}.${r}`);function O(){$=vue.effectScope(),m=$.run(()=>{let s=vue.ref(false),h=vue.ref(false),P=vue.ref(true),q=vue.ref(false),U=vue.ref(false),X=vue.computed(()=>({$value:n.value,$error:h.value,$dirty:s.value,$pending:q.value,$correct:U.value,$invalid:P.value,$rule:{$valid:M.value,$invalid:!M.value,$pending:C.value},$params:i.value,...w.value})),I=vue.computed(()=>Oe(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function B(T){let F="",H=e?e[r]?.[T]:undefined;if(H&&(typeof H=="function"?F=H(X.value):F=H),Oe(t)){let y=`_${T}_patched`;H&&!t.value[y]||(typeof t.value[T]=="function"?F=t.value[T](X.value):F=t.value[T]??"");}return F}let de=vue.computed(()=>{let T=B("message");return ee(T)&&(T="This field is not valid"),T}),ye=vue.computed(()=>B("tooltip")),ie=vue.computed(()=>Oe(t)&&t.value.type?t.value.type:r),u=vue.computed(()=>Oe(t)?t.value.validator:t.value),i=vue.computed(()=>typeof t.value=="function"?[]:te(t.value._params??[])),R=vue.computed(()=>`${l}.${ie.value}`);return {$active:I,$message:de,$type:ie,$validator:u,$params:i,$path:R,$tooltip:ye,$fieldCorrect:U,$fieldError:h,$fieldDirty:s,$fieldPending:q,$fieldInvalid:P}}),b=vue.watch(m?.$params,()=>{(d.$autoDirty.value||d.$rewardEarly.value&&m.$fieldError.value)&&f();});}O();function v(){M.value=true,m.$fieldDirty.value&&(C.value=true);}async function E(){let s=false;try{let h=m.$validator.value;if(typeof h!="function")return console.error(`${l}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let P=h(n.value,...m.$params.value),q=n.value;v();let U;if(P instanceof Promise?U=await P:U=P,n.value!==q)return !0;if(typeof U=="boolean")s=U;else {let{$valid:X,...I}=U;s=X,w.value=I;}}catch{s=false;}finally{C.value=false;}return s}let D=Fe(E,p??200);async function f(){try{a.value=!0;let s=!1;if(we(t.value)&&t.value._async)s=await D();else {let h=m.$validator.value,P=h(n.value,...m.$params.value);if(P instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(P!=null)if(typeof P=="boolean")s=P;else {let{$valid:q,...U}=P;s=q,w.value=U;}}return M.value=s,s}catch{return false}finally{a.value=false;}}function S(){M.value=true,w.value={},C.value=false,a.value=false,O();}function o(){b(),$.stop(),$=vue.effectScope();}return vue.reactive({...m,$pending:C,$valid:M,$metadata:w,$haveAsync:V,$validating:a,$validate:f,$unwatch:o,$watch:O,$reset:S})}function _e({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:c,options:p,externalErrors:d,schemaErrors:$,schemaMode:m,onUnwatch:b,$isArray:V,initialState:C,shortcuts:M}){let w=vue.effectScope(),a,O=[],v,E,D,f,S,o=()=>{};function s(){let g=t.value,k=c.checkRuleDeclEntry(n,g);B.value=Object.fromEntries(Object.entries(g).filter(([A])=>A.startsWith("$"))),q(),I.value=Object.fromEntries(Object.entries(t.value).filter(([A])=>!A.startsWith("$")).map(([A,x])=>{if(x){let ue=vue.toRef(()=>x);return [A,Ct({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:ue,ruleKey:A,state:e,path:n,storage:c,$debounce:B.value.$debounce})]}return []}).filter(A=>!!A.length)),a.processShortcuts(),h(),k?.valid!=null&&(a.$dirty.value=c.getDirtyState(n),(a.$dirty.value&&a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o()),c.addRuleDeclEntry(n,g);}function h(){o=a.$debounce.value?Fe(X,a.$debounce.value??a.$haveAnyAsyncRule?100:0):X;}function P(){I.value&&Object.entries(I.value).forEach(([g,k])=>{k.$unwatch();}),D(),S?.(),a.$dirty.value&&c.setDirtyEntry(n,a.$dirty.value),v?.(),E?.(),w.stop(),w=vue.effectScope(),O.forEach(g=>g.stop()),O=[],b?.(),f?.();}function q(){I.value&&Object.entries(I.value).forEach(([g,k])=>{k.$watch();}),a=w.run(()=>{let g=vue.ref(false),k=vue.ref(false),A=vue.computed(()=>g.value),x=vue.computed(()=>B.value.$debounce),ue=vue.computed(()=>B.value.$lazy!=null?B.value.$lazy:vue.unref(p.lazy)!=null?vue.unref(p.lazy):false),le=vue.computed(()=>B.value.$rewardEarly!=null?B.value.$rewardEarly:vue.unref(p.rewardEarly)!=null?vue.unref(p.rewardEarly):false),pe=vue.computed(()=>B.value.$clearExternalErrorsOnChange!=null?B.value.$clearExternalErrorsOnChange:vue.unref(p.clearExternalErrorsOnChange)!=null?vue.unref(p.clearExternalErrorsOnChange):true),W=vue.computed(()=>B.value.$autoDirty!=null?B.value.$autoDirty:vue.unref(p.autoDirty)!=null?vue.unref(p.autoDirty):!le.value),j=vue.computed(()=>Object.entries(I.value).some(([oe,Q])=>Q.$validating)),z=vue.computed({get:()=>e.value,set(oe){v(),e.value=oe,U();}}),me=vue.computed(()=>ge.value&&!Ie.value&&g.value),at=vue.computed(()=>Ke({field:{$rules:I.value,$error:me.value,$externalErrors:d?.value,$schemaErrors:$?.value}})),lt=vue.computed(()=>Ke({field:{$rules:I.value,$error:me.value,$externalErrors:d?.value,$schemaErrors:$?.value},silent:true})),Ue=vue.computed(()=>g.value?C.value instanceof Date&&e.value instanceof Date?We(C.value).getDate()!==We(e.value).getDate():C.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(C.value)?e.value.length!==C.value.length:C.value!==e.value:false),ot=vue.computed(()=>Ue.value),st=vue.computed(()=>Dt({field:{$rules:I.value}})),ut=vue.computed(()=>W.value?A.value&&!(ge.value||Ie.value):!(ge.value||Ie.value)),Ie=vue.computed(()=>k.value||!le.value?Object.entries(I.value).some(([oe,Q])=>Q.$pending):false),ge=vue.computed(()=>d?.value?.length||$?.value?.length?true:Me.value?false:!le.value||le.value&&k.value?Object.entries(I.value).some(([oe,Q])=>!Q.$valid):false),it=vue.computed(()=>l),Me=vue.computed(()=>!!(ee(I.value)&&!m)),ct=vue.computed(()=>d?.value?.length||Me.value?false:g.value&&!ee(e.value)&&!j.value?m?!$?.value?.length:Object.values(I.value).some(Q=>Q.$active)?Object.values(I.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),Ut=vue.computed(()=>Object.entries(I.value).some(([oe,Q])=>Q.$haveAsync));function Wt(){M?.fields&&Object.entries(M.fields).forEach(([oe,Q])=>{let Rt=vue.effectScope();ft[oe]=Rt.run(()=>{let dt=vue.ref();return vue.watchEffect(()=>{dt.value=Q(vue.reactive({$dirty:g,$externalErrors:d?.value??[],$value:e,$silentValue:z,$rules:I,$error:me,$pending:Ie,$invalid:ge,$correct:ct,$errors:at,$ready:ut,$silentErrors:lt,$anyDirty:A,$tooltips:st,$name:it,$inactive:Me,$edited:Ue,$anyEdited:ot}));}),dt}),O.push(Rt);});}let ft={};return vue.watch(ge,oe=>{oe||(k.value=false);}),{$error:me,$pending:Ie,$invalid:ge,$correct:ct,$debounce:x,$lazy:ue,$errors:at,$ready:ut,$silentErrors:lt,$rewardEarly:le,$autoDirty:W,$clearExternalErrorsOnChange:pe,$anyDirty:A,$edited:Ue,$anyEdited:ot,$name:it,$haveAnyAsyncRule:Ut,$shortcuts:ft,$validating:j,$tooltips:st,$dirty:g,triggerPunishment:k,processShortcuts:Wt,$silentValue:z,$inactive:Me}}),U(),D=vue.watch(a.$dirty,g=>{c.setDirtyEntry(n,g),Object.values(I.value).forEach(k=>{k.$fieldDirty=g;});}),S=vue.watch([a.$error,a.$correct,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(g=>{g.$fieldError=a.$error.value,g.$fieldInvalid=a.$invalid.value,g.$fieldPending=a.$pending.value,g.$fieldCorrect=a.$correct.value;});}),E=vue.watch(a.$invalid,g=>{a.$rewardEarly.value&&!g&&(a.triggerPunishment.value=false);}),f=vue.watch(a.$haveAnyAsyncRule,h);}function U(){v=vue.watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&s(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&i();},{deep:V?true:Ve?1:true,flush:"post"});}function X(){Object.values(I.value).forEach(g=>{g.$validate();});}let I=vue.ref({}),B=vue.ref({});s();function de(g,k){if(i(),a.$dirty.value=false,a.triggerPunishment.value=false,c.setDirtyEntry(n,false),!k)if(g?.toInitialState)P(),e.value=G(C);else if(g?.toState){P();let A;typeof g?.toState=="function"?A=g?.toState():A=g?.toState,C.value=G(A),e.value=G(A);}else C.value=ae(e.value)?G(e.value):Array.isArray(e.value)?[...e.value]:e.value;k||Object.entries(I.value).forEach(([A,x])=>{x.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(A=>A.$validate()),k||s();}function ye(g=true,k=false){a.$dirty.value||(a.$dirty.value=true),k&&g?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o():g&&o();}async function ie(){try{let g=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:g};return m?{result:!$?.value?.length,data:g}:ee(I.value)?{result:!0,data:g}:{result:(await Promise.allSettled(Object.entries(I.value).map(([x,ue])=>ue.$validate()))).every(x=>x.status==="fulfilled"?x.value===!0:!1),data:g}}catch{return {result:false,data:e.value}}}function u(g=true){return a.$dirty.value?e.value:g?{_null:true}:null}function i(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&o();let{$shortcuts:R,$validating:T,$autoDirty:F,$rewardEarly:H,$clearExternalErrorsOnChange:y,$haveAnyAsyncRule:_,$debounce:K,$lazy:Z,triggerPunishment:J,...se}=a;return vue.reactive({...se,$externalErrors:d,$value:e,$rules:I,...R,$reset:de,$touch:ye,$validate:ie,$unwatch:P,$watch:q,$extractDirtyFields:u,$clearExternalErrors:i})}function Qe({$id:e,path:t,index:r,options:n,storage:l,stateValue:c,customMessages:p,rules:d,externalErrors:$,schemaErrors:m,initialState:b,shortcuts:V,fieldName:C,schemaMode:M}){let w=d.$key?d.$key:Se(),a=`${t}.${String(w)}`;typeof c.value=="object"&&c.value!=null&&(c.value.$id?a=`${t}.${c.value.$id}`:Object.defineProperties(c.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let O=vue.toRef($?.value??[],r),v=vue.computed(()=>m?.value?.[r]),E=Ee({state:c,rulesDef:vue.toRef(()=>d),customMessages:p,path:a,storage:l,options:n,externalErrors:O,schemaErrors:v,initialState:b,shortcuts:V,fieldName:C,schemaMode:M});if(E){let D=c.value?.$id;E.$id=D??String(w),l.addArrayStatus(e,E.$id,E);}return E}function Pt({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:c,externalErrors:p,schemaErrors:d,schemaMode:$,initialState:m,shortcuts:b,fieldName:V}){let C=vue.effectScope(),M,w=vue.effectScope(),a,O=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let v=vue.ref(),E=vue.ref(e.value),D,f=vue.ref({}),S=l.getCollectionsEntry(n);a=w.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(i=>typeof i!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(i=>we(i)||typeof i=="function"):false)})),o(),P();function o(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(v.value=Se(),Object.defineProperties(e.value,{$id:{value:v.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(v.value=e.value.$id)),E.value=f.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?S.value=e.value.filter(u=>typeof u=="object").map((u,i)=>{let{scope:R,unwrapped:T}=qe(t.value.$each,vue.toRef(()=>u),i);R&&O.push(R);let F=vue.toRef(m.value??[],i),H=vue.toRef(p?.value??{},"$each"),y=vue.computed(()=>d?.value?.$each),_=Qe({$id:v.value,path:n,customMessages:r,rules:T??{},stateValue:vue.toRef(()=>u),index:i,options:c,storage:l,externalErrors:H,schemaErrors:y,initialState:F,shortcuts:b,fieldName:V,schemaMode:$});return _||null}).filter(u=>!!u):S.value=[],f.value=_e({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:c,externalErrors:vue.toRef(p?.value??{},"$self"),schemaErrors:vue.computed(()=>d?.value?.$self),$isArray:true,initialState:m,shortcuts:b,fieldName:V,schemaMode:$});}function s(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let u=G(S.value);S.value=e.value.filter(i=>typeof i=="object").map((i,R)=>{let T=vue.toRef(()=>i);if(i.$id&&S.value.find(F=>F.$id===i.$id)){let F=l.getArrayStatus(v.value,i.$id);return F?(F.$value=T,F):null}else {let{scope:F,unwrapped:H}=qe(t.value.$each,T,R);F&&O.push(F);let y=vue.toRef(p?.value??{},"$each"),_=vue.computed(()=>d?.value?.$each??[]),K=Qe({$id:v.value,path:n,customMessages:r,rules:H??{},stateValue:T,index:R,options:c,storage:l,externalErrors:y,schemaErrors:_,initialState:vue.toRef(m.value??[],R),shortcuts:b,fieldName:V,schemaMode:$});return K||null}}).filter(i=>!!i),u.filter(i=>!e.value?.find(R=>i.$id===R.$id)).forEach((i,R)=>{l.deleteArrayStatus(v.value,R.toString());});}else S.value=[];}function h(){D=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?o():s();},{deep:Ve?1:true,flush:"pre"});}function P(){h(),C=vue.effectScope(),M=C.run(()=>{let u=vue.computed({get:()=>e.value,set(x){D(),e.value=x,h();}}),i=vue.computed(()=>f.value.$dirty&&(!S.value.length||S.value.every(x=>x.$dirty))),R=vue.computed(()=>f.value.$anyDirty||S.value.some(x=>x.$anyDirty)),T=vue.computed(()=>f.value.$invalid||S.value.some(x=>x.$invalid)),F=vue.computed(()=>(ee(f.value.$rules)?true:f.value.$correct)&&(!S.value.length||S.value.every(x=>x.$correct||x.$anyDirty&&!x.$invalid))),H=vue.computed(()=>f.value.$error||S.value.some(x=>x.$error)),y=vue.computed(()=>!(T.value||_.value)),_=vue.computed(()=>f.value.$pending||S.value.some(x=>x.$pending)),K=vue.computed(()=>!!S.value.length&&S.value.every(x=>x.$edited)),Z=vue.computed(()=>f.value.$anyEdited||S.value.some(x=>x.$anyEdited)),J=vue.computed(()=>({$self:f.value.$errors,$each:S.value.map(x=>x.$errors)})),se=vue.computed(()=>({$self:f.value.$silentErrors,$each:S.value.map(x=>x.$silentErrors)})),g=vue.computed(()=>V);function k(){b?.collections&&Object.entries(b?.collections).forEach(([x,ue])=>{let le=vue.effectScope();A[x]=le.run(()=>{let pe=vue.ref();return vue.watchEffect(()=>{pe.value=ue(vue.reactive({$dirty:i,$error:H,$silentValue:u,$pending:_,$invalid:T,$correct:F,$errors:J,$ready:y,$silentErrors:se,$anyDirty:R,$name:g,$each:S,$self:f,$value:e,$edited:K,$anyEdited:Z}));}),pe}),O.push(le);});}let A={};return k(),{$dirty:i,$anyDirty:R,$invalid:T,$correct:F,$error:H,$pending:_,$errors:J,$silentErrors:se,$ready:y,$name:g,$shortcuts:A,$silentValue:u,$edited:K,$anyEdited:Z}}),a.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function q(){D&&D(),f.value&&f.value.$unwatch(),S.value&&S.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),C.stop(),C=vue.effectScope(),w.stop(),w=vue.effectScope(true),O.forEach(u=>u.stop()),O=[];}function U(u=true,i=false){f.value.$touch(u,i),S.value.forEach(R=>{R.$touch(u,i);});}function X(u,i){if(q(),!i)if(u?.toInitialState)e.value=G(m.value);else if(u?.toState){let R;typeof u?.toState=="function"?R=u?.toState():R=u?.toState,m.value=G(R),e.value=G(R);}else m.value=G(e.value);f.value.$reset(),S.value.forEach(R=>{R.$reset(u,true);}),i||o();}async function I(){let u=e.value;try{return {result:(await Promise.allSettled([f.value.$validate(),...S.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:u}}catch{return {result:false,data:u}}}function B(){f.value.$clearExternalErrors(),S.value.forEach(u=>{u.$clearExternalErrors();});}function de(u=true){let i=S.value.map(R=>{if(Tt(R))return R.$extractDirtyFields(u)});return u&&i.every(R=>ee(R))&&(i=[]),i}let{$shortcuts:ye,...ie}=M;return vue.reactive({$self:f,...ie,...ye,$each:S,$value:e,$validate:I,$unwatch:q,$watch:P,$touch:U,$reset:X,$extractDirtyFields:de,$clearExternalErrors:B})}function Ne({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:c,rootSchemaErrors:p,validationGroups:d,initialState:$,fieldName:m,...b}){let V=vue.effectScope(),C,M=[],w=null,a=null,O=null,v=null;async function D(u=true){let i=Object.entries(e.value),R=Object.fromEntries(i.filter(([y,_])=>!!_).map(([y,_])=>{if(_){let K=vue.toRef(t.value??{},y),Z=vue.toRef(()=>_),J=vue.toRef(l?.value??{},y),se=vue.computed(()=>c?.value?.[y]),g=vue.toRef($?.value??{},y);return [y,Ee({state:K,rulesDef:Z,path:r?`${r}.${y}`:y,externalErrors:J,schemaErrors:se,initialState:g,fieldName:y,...b})]}return []})),T=Object.fromEntries(Object.entries(vue.unref(l)??{}).filter(([y,_])=>!(y in e.value)&&!!_).map(([y])=>{let _=vue.toRef(t.value??{},y),K=vue.toRef(l?.value??{},y),Z=vue.computed(()=>c?.value?.[y]),J=vue.toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:J,fieldName:y,...b})]})),F=Object.fromEntries(Object.entries(vue.unref(c)??{}).map(([y])=>{let _=vue.toRef(t.value??{},y),K=vue.toRef(l?.value??{},y),Z=vue.computed(()=>c?.value?.[y]),J=vue.toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:J,fieldName:y,...b})]})),H=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(T??{}))&&!(y in(F??{}))).map(([y])=>{let _=vue.toRef(t.value??{},y),K=vue.toRef(l?.value??{},y),Z=vue.computed(()=>c?.value?.[y]),J=vue.toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:J,fieldName:y,...b})]}));f.value={...R,...T,...F,...H},u&&s();}let f=b.storage.getFieldsEntry(r);D();function S(){l&&(O=vue.watch(l,()=>{h(),D();},{deep:true}));}function o(){v=vue.watch(t,()=>{h(),D(),U(true,true);},{flush:"sync"});}function s(){n&&(w?.(),w=vue.watch(n,()=>{h(),D();},{deep:true,flush:"post"}),S()),p&&(a?.(),a=vue.watch(p,()=>{h(),D();},{deep:true,flush:"post"})),o(),C=V.run(()=>{let u=vue.computed({get:()=>t.value,set(W){h(),t.value=W,D();}}),i=vue.computed(()=>!!Object.entries(f.value).length&&Object.entries(f.value).every(([W,j])=>j?.$dirty)),R=vue.computed(()=>Object.entries(f.value).some(([W,j])=>j?.$anyDirty)),T=vue.computed(()=>Object.entries(f.value).some(([W,j])=>j?.$invalid)),F=vue.computed(()=>{let W=Object.entries(f.value).filter(([j,z])=>xt(z)?!z.$inactive:true);return W.length?W.every(([j,z])=>z?.$correct||z.$anyDirty&&!z.$invalid):false}),H=vue.computed(()=>R.value&&!J.value&&T.value),y=vue.computed(()=>vue.unref(b.options.rewardEarly)!=null?vue.unref(b.options.rewardEarly):false),_=vue.computed(()=>vue.unref(b.options.autoDirty)!=null?vue.unref(b.options.autoDirty):!y.value),K=vue.computed(()=>_.value?R.value&&!(T.value||J.value):!(T.value||J.value)),Z=vue.ref(false),J=vue.computed(()=>Z.value||Object.entries(f.value).some(([W,j])=>j?.$pending)),se=vue.computed(()=>Object.fromEntries(Object.entries(f.value).map(([W,j])=>[W,j?.$errors]))),g=vue.computed(()=>Object.fromEntries(Object.entries(f.value).map(([W,j])=>[W,j?.$silentErrors]))),k=vue.computed(()=>!!Object.entries(f.value).length&&Object.entries(f.value).every(([W,j])=>j?.$edited)),A=vue.computed(()=>Object.entries(f.value).some(([W,j])=>j?.$anyEdited)),x=vue.computed(()=>m);function ue(){b.shortcuts?.nested&&Object.entries(b.shortcuts.nested).forEach(([W,j])=>{let z=vue.effectScope();pe[W]=z.run(()=>{let me=vue.ref();return vue.watchEffect(()=>{me.value=j(vue.reactive({$dirty:i,$value:t,$silentValue:u,$error:H,$pending:J,$invalid:T,$correct:F,$ready:K,$anyDirty:R,$name:x,$silentErrors:g,$errors:se,$fields:f,$edited:k,$anyEdited:A}));}),me}),M.push(z);});}let le=vue.computed({get:()=>d?Object.fromEntries(Object.entries(d?.(f.value)??{}).map(([W,j])=>j.length?[W,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(z=>[z,mt(j,z)])),...Object.fromEntries(["$errors","$silentErrors"].map(z=>[z,yt(j,z)]))}]:[])):{},set(){}}),pe={};return ue(),{$dirty:i,$anyDirty:R,$invalid:T,$correct:F,$error:H,$pending:J,$errors:se,$silentErrors:g,$ready:K,$name:x,$shortcuts:pe,$groups:le,$silentValue:u,$edited:k,$anyEdited:A,$localPending:Z}});}function h(){w?.(),O?.(),v?.(),a?.(),M=[],C={},f.value&&Object.entries(f.value).forEach(([u,i])=>{i.$unwatch();});}function P(){Object.entries(f.value).forEach(([u,i])=>{i.$clearExternalErrors();});}function q(u,i){if(O?.(),h(),!i)if(u?.toInitialState)t.value=G({...$.value??{}});else if(u?.toState){let R;typeof u?.toState=="function"?R=u?.toState():R=u?.toState,$.value=G(R),t.value=G(R);}else $.value=G(t.value);Object.values(f.value).forEach(R=>{R.$reset(u,true);}),S(),i||D();}function U(u=true,i=false){Object.values(f.value).forEach(R=>{R.$touch(u,i);});}function X(u){return u.filter(([i,R])=>ae(R)?!(R&&typeof R=="object"&&"_null"in R)&&!ee(R):Array.isArray(R)?R.length:true)}function I(u=true){let i=Object.entries(f.value).map(([R,T])=>[R,T.$extractDirtyFields(u)]);return u&&(i=X(i)),Object.fromEntries(i)}async function B(){try{if(b.schemaMode)return b.onValidate?(U(!1),C.$localPending.value=!0,b.onValidate()):{result:!1,data:t.value};{let u=t.value;return {result:(await Promise.allSettled(Object.values(f.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:u}}}catch{return {result:false,data:t.value}}finally{C.$localPending.value=false;}}let{$shortcuts:de,$localPending:ye,...ie}=C;return vue.reactive({...ie,...de,$fields:f,$value:t,$reset:q,$touch:U,$validate:B,$unwatch:h,$watch:s,$clearExternalErrors:P,$extractDirtyFields:I})}function Ee({rulesDef:e,...t}){if(bt(e,t.state))return Pt({rulesDef:e,...t});if(ht(t.state,e)){if(je(t.state))return Ne({rulesDef:e,...t});{let n=vue.effectScope().run(()=>{let p=vue.toRef(t.state.value?t.state:vue.ref({}));return vue.watch(()=>t.state.value,d=>{p.value=d;},{deep:true}),vue.watch(p,d=>{t.state.value=d;},{deep:true}),{fakeState:p}}),{state:l,...c}=t;return Ne({rulesDef:e,...c,state:n.fakeState})}}else if(Et(e))return _e({rulesDef:e,...t})}function Ce({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:c,schemaErrors:p,schemaMode:d=false,onValidate:$}){let m=ze(),b=vue.ref();return b.value=Ne({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:c,fieldName:"root",path:"",schemaErrors:p,rootSchemaErrors:p,schemaMode:d,onValidate:$}),vue.getCurrentScope()&&vue.onScopeDispose(()=>{b.value?.$unwatch();}),vue.reactive({regle:b})}function et(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(c,p,d){let $=vue.isRef(p)?p:vue.computed(typeof p=="function"?p:()=>p),m={...n,...d},b=vue.isRef(c)?c:vue.ref(c),V=vue.ref({...G(b.value)});return {r$:Ce({scopeRules:$,state:b,options:m,initialState:V,customRules:e,shortcuts:r}).regle}}return l}var Ge=et();function tt(){function e(t,r){return r}return e}var rt=tt();function jt({rules:e,modifiers:t,shortcuts:r}){let n=et(e,t,r),l=tt();return {useRegle:n,inferRules:l}}function Ae(e,t){let r=t??false,n=vue.computed({get:()=>r?Object.values(e).map(o=>o.$value):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$value])),set:o=>{r||typeof o=="object"&&Object.entries(o).forEach(([s,h])=>e[s].$value=h);}}),l=vue.computed({get:()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentValue])),set:o=>{typeof o=="object"&&Object.entries(o).forEach(([s,h])=>e[s].$silentValue=h);}}),c=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$dirty)}),p=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$anyDirty)),d=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$invalid)),$=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$correct||h.$anyDirty&&!h.$invalid)}),m=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$error)),b=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$ready)}),V=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$pending)),C=vue.computed(()=>r?Object.entries(e).map(([o,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$errors]))),M=vue.computed(()=>r?Object.entries(e).map(([o,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentErrors]))),w=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$edited)}),a=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$anyEdited)),O=vue.computed(()=>r?Object.values(e):e);function v(o){Object.values(e).forEach(s=>{s.$reset(o);});}function E(){Object.values(e).forEach(o=>{o.$touch();});}function D(o=true){return Object.values(e).map(s=>s.$extractDirtyFields(o))}function f(){Object.values(e).forEach(o=>{o.$clearExternalErrors();});}async function S(){try{let o=n.value;return {result:(await Promise.allSettled(Object.values(e).map(P=>P.$validate()))).every(P=>P.status==="fulfilled"?P.value.result===!0:!1),data:o}}catch{return {result:false,data:n.value}}}return vue.reactive({...!r&&{$silentValue:l},$errors:C,$silentErrors:M,$instances:O,$value:n,$dirty:c,$anyDirty:p,$invalid:d,$correct:$,$error:m,$pending:V,$ready:b,$edited:w,$anyEdited:a,$reset:v,$touch:E,$validate:S,$extractDirtyFields:D,$clearExternalErrors:f})}function _t(e){function t(r){let n=vue.computed(()=>vue.toValue(r));p();let l=vue.ref(d(e.value)),c=vue.reactive({r$:l});function p(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}vue.watch(n,p),vue.watch(e,$=>{l.value=d($);},{deep:true});function d($){if(n.value){let m=$[n.value]??{};return Ae(m,true)}else return Ae($["~~global"]??{},true)}return {r$:c.r$}}return {useCollectScope:t}}function Gt(e,t){let r=t??Ge;return {useScopedRegle:(l,c,p)=>{let{namespace:d,...$}=p??{},m=vue.computed(()=>vue.toValue(d)),b=vue.ref(`${Object.keys(e.value).length+1}-${Se()}`),V=vue.computed(()=>`instance-${b.value}`),{r$:C}=r(l,c,$);w(),$t(M),vue.watch(m,(a,O)=>{M(O),w();}),vue.getCurrentInstance()&&vue.onMounted(()=>{let a=vue.getCurrentInstance();typeof window<"u"&&a?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(a?.proxy?.$el?.parentElement)&&M();});function M(a){let O=a??m.value;O?e.value[O]&&delete e.value[O][V.value]:e.value["~~global"][V.value]&&delete e.value["~~global"][V.value];}function w(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][V.value]=C):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][V.value]=C);}return {r$:C,dispose:M,register:w}}}}function nt(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):St(()=>vue.ref({"~~global":{}})))(),{useScopedRegle:n}=Gt(r,e?.customUseRegle),{useCollectScope:l}=_t(r);return {useScopedRegle:n,useCollectScope:l}}
1
+ 'use strict';var vue=require('vue');function ee(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var pt=Symbol("regle-rule");function Lt(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function U(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>U(n)))),r=="Map"&&(t=new Map([...e].map(n=>[U(n[0]),U(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Lt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=U(e[n]);}return t}function ae(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function We(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Fe(e,t,r){let n,l=(...f)=>new Promise(p=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...f])).then(p);},t);});return l.cancel=()=>{clearTimeout(n),n=undefined;},l}var Le=(r=>(r.Inline="__inline",r.Async="__async",r))(Le||{});function mt(e,t){return e.some(r=>r[t])}function yt(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function te(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function gt(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function vt(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(p=>p.trim()).filter(p=>p.length>0).length:0}function Be(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(d,...$){return e.validator(d,...te($.length?$:t))},message(d){return typeof e.message=="function"?e.message({...d,$params:te(d?.$params?.length?d.$params:t)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:te(d?.$params?.length?d.$params:t)}):e.active??true},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:te(d?.$params?.length?d.$params:t)}):e.tooltip??[]},exec(d){let $=e.validator(d,...te(t)),m;return $ instanceof Promise?$.then(b=>(m=b,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)):(m=$,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:l,_params:gt(t),_brand:pt}}function He(e){if(typeof e.validator=="function"){let r=Be(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(vt(e.validator)>1){let l=function(...f){return Be(e,...f)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=false,l._tooltip_pacthed=false,l._async=n,l}else return r}throw new Error("Validator must be a function")}function ze(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),l=vue.shallowRef(new Map),f=vue.shallowRef(new Map);function p(v){let E=t.value.get(v);if(E)return E;{let D=vue.ref({});return t.value.set(v,D),D}}function d(v){let E=r.value.get(v);if(E)return E;{let D=vue.ref([]);return r.value.set(v,D),D}}function $(v,E,D){f.value.set(`${v}-${E}`,D);}function m(v,E){return f.value.get(`${v}-${E}`)}function b(v,E){v&&E!=null&&f.value.delete(`${v}-${E}`);}function V(v,E){n.value.set(v,E);}function C(v){return n.value.get(v)??false}function F(v,E){e.value.set(v,E);}function O(v,E){let D=e.value.get(v);return D?a(E,D)?{valid:true}:{valid:false}:undefined}function a(v,E){let D=Object.keys(E),i=Object.keys(v);return i.length!==D.length||!i.every(o=>D.includes(o))?false:i.every(o=>{let s=v[o],h=E[o];return !h||!s||typeof s=="function"||typeof h=="function"||typeof s=="number"||typeof s=="boolean"?false:s._params?s._params?.every((A,q)=>{if(typeof h=="number"||typeof h=="boolean")return true;{let W=te(h._params),X=te(s._params);return W?.[q]===X?.[q]}}):true})}function w(v){let E=l.value.get(v);if(E)return E;{let D=vue.ref(false),i=vue.ref(true),S=vue.ref({}),o=vue.ref(false);return l.value.set(v,{$pending:D,$valid:i,$metadata:S,$validating:o}),{$pending:D,$valid:i,$metadata:S,$validating:o}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),f.value.clear();}),{addRuleDeclEntry:F,setDirtyEntry:V,checkRuleDeclEntry:O,getDirtyState:C,trySetRuleStatusRef:w,getFieldsEntry:p,getCollectionsEntry:d,getArrayStatus:m,addArrayStatus:$,deleteArrayStatus:b,arrayStatusStorage:f}}function je(e){return ae(e.value)}function qe(e,t,r){let n=vue.effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function Xt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let f=Number(r[l]),p=Number(n[l]);if(f>p)return 1;if(p>f)return -1;if(!isNaN(f)&&isNaN(p))return 1;if(isNaN(f)&&!isNaN(p))return -1}return 0}var Ve=Xt(vue.version,"3.5.0")!==-1;function Zt(){return Math.floor(Math.random()*Date.now()).toString()}function Se(){return typeof window>"u"?Zt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function $t(e){return vue.getCurrentScope()?(vue.onScopeDispose(e),true):false}function St(e){let t=false,r,n=vue.effectScope(true);return (...l)=>(t||(r=n.run(()=>e(...l)),t=true),r)}function ht(e,t){return je(e)||ae(t.value)&&!ee(t.value)&&!Object.entries(t.value).some(([r,n])=>Oe(n)||typeof n=="function")}function bt(e,t){return !!e.value&&ae(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Et(e){return !!e.value&&ae(e.value)}function Oe(e){return ae(e)&&"_validator"in e}function we(e){return typeof e.value!="function"}function Tt(e){return ae(e)&&"$fields"in e}function xt(e){return !!e&&"$rules"in e}function Ke({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Dt({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function Ct({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:f,$debounce:p,modifiers:d}){let $=vue.effectScope(),m={},b,V=vue.ref(false),{$pending:C,$valid:F,$metadata:O,$validating:a}=f.trySetRuleStatusRef(`${l}.${r}`);function w(){$=vue.effectScope(),m=$.run(()=>{let s=vue.ref(false),h=vue.ref(false),A=vue.ref(true),q=vue.ref(false),W=vue.ref(false),X=vue.computed(()=>({$value:n.value,$error:h.value,$dirty:s.value,$pending:q.value,$correct:W.value,$invalid:A.value,$rule:{$valid:F.value,$invalid:!F.value,$pending:C.value},$params:c.value,...O.value})),I=vue.computed(()=>we(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function B(T){let j="",H=e?e[r]?.[T]:undefined;if(H&&(typeof H=="function"?j=H(X.value):j=H),we(t)){let y=`_${T}_patched`;H&&!t.value[y]||(typeof t.value[T]=="function"?j=t.value[T](X.value):j=t.value[T]??"");}return j}let de=vue.computed(()=>{let T=B("message");return ee(T)&&(T="This field is not valid"),T}),ye=vue.computed(()=>B("tooltip")),ie=vue.computed(()=>we(t)&&t.value.type?t.value.type:r),u=vue.computed(()=>we(t)?t.value.validator:t.value),c=vue.computed(()=>typeof t.value=="function"?[]:te(t.value._params??[])),R=vue.computed(()=>`${l}.${ie.value}`);return {$active:I,$message:de,$type:ie,$validator:u,$params:c,$path:R,$tooltip:ye,$fieldCorrect:W,$fieldError:h,$fieldDirty:s,$fieldPending:q,$fieldInvalid:A}}),b=vue.watch(m?.$params,()=>{(d.$autoDirty.value||d.$rewardEarly.value&&m.$fieldError.value)&&i();});}w();function v(){F.value=true,m.$fieldDirty.value&&(C.value=true);}async function E(){let s=false;try{let h=m.$validator.value;if(typeof h!="function")return console.error(`${l}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let A=h(n.value,...m.$params.value),q=n.value;v();let W;if(A instanceof Promise?W=await A:W=A,n.value!==q)return !0;if(typeof W=="boolean")s=W;else {let{$valid:X,...I}=W;s=X,O.value=I;}}catch{s=false;}finally{C.value=false;}return s}let D=Fe(E,p??200);async function i(){try{a.value=!0;let s=!1;if(Oe(t.value)&&t.value._async)s=await D();else {let h=m.$validator.value,A=h(n.value,...m.$params.value);if(A instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(A!=null)if(typeof A=="boolean")s=A;else {let{$valid:q,...W}=A;s=q,O.value=W;}}return F.value=s,s}catch{return false}finally{a.value=false;}}function S(){F.value=true,O.value={},C.value=false,a.value=false,w();}function o(){b(),$.stop(),$=vue.effectScope();}return vue.reactive({...m,$pending:C,$valid:F,$metadata:O,$haveAsync:V,$validating:a,$parse:i,$unwatch:o,$watch:w,$reset:S})}function _e({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:f,options:p,externalErrors:d,schemaErrors:$,schemaMode:m,onUnwatch:b,$isArray:V,initialState:C,shortcuts:F}){let O=vue.effectScope(),a,w=[],v,E,D,i,S,o=()=>{};function s(){let g=t.value,k=f.checkRuleDeclEntry(n,g);B.value=Object.fromEntries(Object.entries(g).filter(([M])=>M.startsWith("$"))),q(),I.value=Object.fromEntries(Object.entries(t.value).filter(([M])=>!M.startsWith("$")).map(([M,x])=>{if(x){let ue=vue.toRef(()=>x);return [M,Ct({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:ue,ruleKey:M,state:e,path:n,storage:f,$debounce:B.value.$debounce})]}return []}).filter(M=>!!M.length)),a.processShortcuts(),h(),k?.valid!=null&&(a.$dirty.value=f.getDirtyState(n),(a.$dirty.value&&a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o()),f.addRuleDeclEntry(n,g);}function h(){o=a.$debounce.value?Fe(X,a.$debounce.value??a.$haveAnyAsyncRule?100:0):X;}function A(){I.value&&Object.entries(I.value).forEach(([g,k])=>{k.$unwatch();}),D(),S?.(),a.$dirty.value&&f.setDirtyEntry(n,a.$dirty.value),v?.(),E?.(),O.stop(),O=vue.effectScope(),w.forEach(g=>g.stop()),w=[],b?.(),i?.();}function q(){I.value&&Object.entries(I.value).forEach(([g,k])=>{k.$watch();}),a=O.run(()=>{let g=vue.ref(false),k=vue.ref(false),M=vue.computed(()=>g.value),x=vue.computed(()=>B.value.$debounce),ue=vue.computed(()=>B.value.$lazy!=null?B.value.$lazy:vue.unref(p.lazy)!=null?vue.unref(p.lazy):false),le=vue.computed(()=>B.value.$rewardEarly!=null?B.value.$rewardEarly:vue.unref(p.rewardEarly)!=null?vue.unref(p.rewardEarly):false),pe=vue.computed(()=>B.value.$clearExternalErrorsOnChange!=null?B.value.$clearExternalErrorsOnChange:vue.unref(p.clearExternalErrorsOnChange)!=null?vue.unref(p.clearExternalErrorsOnChange):true),G=vue.computed(()=>B.value.$autoDirty!=null?B.value.$autoDirty:vue.unref(p.autoDirty)!=null?vue.unref(p.autoDirty):!le.value),P=vue.computed(()=>Object.entries(I.value).some(([oe,Q])=>Q.$validating)),z=vue.computed({get:()=>e.value,set(oe){v(),e.value=oe,W();}}),me=vue.computed(()=>ge.value&&!Ie.value&&g.value),at=vue.computed(()=>Ke({field:{$rules:I.value,$error:me.value,$externalErrors:d?.value,$schemaErrors:$?.value}})),lt=vue.computed(()=>Ke({field:{$rules:I.value,$error:me.value,$externalErrors:d?.value,$schemaErrors:$?.value},silent:true})),Ue=vue.computed(()=>g.value?C.value instanceof Date&&e.value instanceof Date?We(C.value).getDate()!==We(e.value).getDate():C.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(C.value)?e.value.length!==C.value.length:C.value!==e.value:false),ot=vue.computed(()=>Ue.value),st=vue.computed(()=>Dt({field:{$rules:I.value}})),ut=vue.computed(()=>G.value?M.value&&!(ge.value||Ie.value):!(ge.value||Ie.value)),Ie=vue.computed(()=>k.value||!le.value?Object.entries(I.value).some(([oe,Q])=>Q.$pending):false),ge=vue.computed(()=>d?.value?.length||$?.value?.length?true:Me.value?false:!le.value||le.value&&k.value?Object.entries(I.value).some(([oe,Q])=>!Q.$valid):false),it=vue.computed(()=>l),Me=vue.computed(()=>!!(ee(I.value)&&!m)),ct=vue.computed(()=>d?.value?.length||Me.value?false:g.value&&!ee(e.value)&&!P.value?m?!$?.value?.length:Object.values(I.value).some(Q=>Q.$active)?Object.values(I.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),Ut=vue.computed(()=>Object.entries(I.value).some(([oe,Q])=>Q.$haveAsync));function Wt(){F?.fields&&Object.entries(F.fields).forEach(([oe,Q])=>{let Rt=vue.effectScope();ft[oe]=Rt.run(()=>{let dt=vue.ref();return vue.watchEffect(()=>{dt.value=Q(vue.reactive({$dirty:g,$externalErrors:d?.value??[],$value:e,$silentValue:z,$rules:I,$error:me,$pending:Ie,$invalid:ge,$correct:ct,$errors:at,$ready:ut,$silentErrors:lt,$anyDirty:M,$tooltips:st,$name:it,$inactive:Me,$edited:Ue,$anyEdited:ot}));}),dt}),w.push(Rt);});}let ft={};return vue.watch(ge,oe=>{oe||(k.value=false);}),{$error:me,$pending:Ie,$invalid:ge,$correct:ct,$debounce:x,$lazy:ue,$errors:at,$ready:ut,$silentErrors:lt,$rewardEarly:le,$autoDirty:G,$clearExternalErrorsOnChange:pe,$anyDirty:M,$edited:Ue,$anyEdited:ot,$name:it,$haveAnyAsyncRule:Ut,$shortcuts:ft,$validating:P,$tooltips:st,$dirty:g,triggerPunishment:k,processShortcuts:Wt,$silentValue:z,$inactive:Me}}),W(),D=vue.watch(a.$dirty,g=>{f.setDirtyEntry(n,g),Object.values(I.value).forEach(k=>{k.$fieldDirty=g;});}),S=vue.watch([a.$error,a.$correct,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(g=>{g.$fieldError=a.$error.value,g.$fieldInvalid=a.$invalid.value,g.$fieldPending=a.$pending.value,g.$fieldCorrect=a.$correct.value;});}),E=vue.watch(a.$invalid,g=>{a.$rewardEarly.value&&!g&&(a.triggerPunishment.value=false);}),i=vue.watch(a.$haveAnyAsyncRule,h);}function W(){v=vue.watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&s(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&c();},{deep:V?true:Ve?1:true,flush:"post"});}function X(){Object.values(I.value).forEach(g=>{g.$parse();});}let I=vue.ref({}),B=vue.ref({});s();function de(g,k){if(c(),a.$dirty.value=false,a.triggerPunishment.value=false,f.setDirtyEntry(n,false),!k)if(g?.toInitialState)A(),e.value=U(C);else if(g?.toState){A();let M;typeof g?.toState=="function"?M=g?.toState():M=g?.toState,C.value=U(M),e.value=U(M);}else C.value=ae(e.value)?U(e.value):Array.isArray(e.value)?[...e.value]:e.value;k||Object.entries(I.value).forEach(([M,x])=>{x.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(M=>M.$parse()),k||s();}function ye(g=true,k=false){a.$dirty.value||(a.$dirty.value=true),k&&g?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o():g&&o();}async function ie(){try{let g=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {valid:!a.$error.value,data:g};return m?{valid:!$?.value?.length,data:g}:ee(I.value)?{valid:!0,data:g}:{valid:(await Promise.allSettled(Object.entries(I.value).map(([x,ue])=>ue.$parse()))).every(x=>x.status==="fulfilled"?x.value===!0:!1),data:g}}catch{return {valid:false,data:e.value}}}function u(g=true){return a.$dirty.value?e.value:g?{_null:true}:null}function c(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&o();let{$shortcuts:R,$validating:T,$autoDirty:j,$rewardEarly:H,$clearExternalErrorsOnChange:y,$haveAnyAsyncRule:_,$debounce:K,$lazy:Z,triggerPunishment:Y,...se}=a;return vue.reactive({...se,$externalErrors:d,$value:e,$rules:I,...R,$reset:de,$touch:ye,$validate:ie,$unwatch:A,$watch:q,$extractDirtyFields:u,$clearExternalErrors:c})}function Qe({$id:e,path:t,index:r,options:n,storage:l,stateValue:f,customMessages:p,rules:d,externalErrors:$,schemaErrors:m,initialState:b,shortcuts:V,fieldName:C,schemaMode:F}){let O=d.$key?d.$key:Se(),a=`${t}.${String(O)}`;typeof f.value=="object"&&f.value!=null&&(f.value.$id?a=`${t}.${f.value.$id}`:Object.defineProperties(f.value,{$id:{value:O,enumerable:false,configurable:false,writable:false}}));let w=vue.toRef($?.value??[],r),v=vue.computed(()=>m?.value?.[r]),E=Ee({state:f,rulesDef:vue.toRef(()=>d),customMessages:p,path:a,storage:l,options:n,externalErrors:w,schemaErrors:v,initialState:b,shortcuts:V,fieldName:C,schemaMode:F});if(E){let D=f.value?.$id;E.$id=D??String(O),l.addArrayStatus(e,E.$id,E);}return E}function Pt({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:f,externalErrors:p,schemaErrors:d,schemaMode:$,initialState:m,shortcuts:b,fieldName:V}){let C=vue.effectScope(),F,O=vue.effectScope(),a,w=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let v=vue.ref(),E=vue.ref(e.value),D,i=vue.ref({}),S=l.getCollectionsEntry(n);a=O.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(c=>typeof c!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(c=>Oe(c)||typeof c=="function"):false)})),o(),A();function o(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(v.value=Se(),Object.defineProperties(e.value,{$id:{value:v.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(v.value=e.value.$id)),E.value=i.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?S.value=e.value.filter(u=>typeof u=="object").map((u,c)=>{let{scope:R,unwrapped:T}=qe(t.value.$each,vue.toRef(()=>u),c);R&&w.push(R);let j=vue.toRef(m.value??[],c),H=vue.toRef(p?.value??{},"$each"),y=vue.computed(()=>d?.value?.$each),_=Qe({$id:v.value,path:n,customMessages:r,rules:T??{},stateValue:vue.toRef(()=>u),index:c,options:f,storage:l,externalErrors:H,schemaErrors:y,initialState:j,shortcuts:b,fieldName:V,schemaMode:$});return _||null}).filter(u=>!!u):S.value=[],i.value=_e({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:f,externalErrors:vue.toRef(p?.value??{},"$self"),schemaErrors:vue.computed(()=>d?.value?.$self),$isArray:true,initialState:m,shortcuts:b,fieldName:V,schemaMode:$});}function s(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let u=U(S.value);S.value=e.value.filter(c=>typeof c=="object").map((c,R)=>{let T=vue.toRef(()=>c);if(c.$id&&S.value.find(j=>j.$id===c.$id)){let j=l.getArrayStatus(v.value,c.$id);return j?(j.$value=T,j):null}else {let{scope:j,unwrapped:H}=qe(t.value.$each,T,R);j&&w.push(j);let y=vue.toRef(p?.value??{},"$each"),_=vue.computed(()=>d?.value?.$each??[]),K=Qe({$id:v.value,path:n,customMessages:r,rules:H??{},stateValue:T,index:R,options:f,storage:l,externalErrors:y,schemaErrors:_,initialState:vue.toRef(m.value??[],R),shortcuts:b,fieldName:V,schemaMode:$});return K||null}}).filter(c=>!!c),u.filter(c=>!e.value?.find(R=>c.$id===R.$id)).forEach((c,R)=>{l.deleteArrayStatus(v.value,R.toString());});}else S.value=[];}function h(){D=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?o():s();},{deep:Ve?1:true,flush:"pre"});}function A(){h(),C=vue.effectScope(),F=C.run(()=>{let u=vue.computed({get:()=>e.value,set(x){D(),e.value=x,h();}}),c=vue.computed(()=>i.value.$dirty&&(!S.value.length||S.value.every(x=>x.$dirty))),R=vue.computed(()=>i.value.$anyDirty||S.value.some(x=>x.$anyDirty)),T=vue.computed(()=>i.value.$invalid||S.value.some(x=>x.$invalid)),j=vue.computed(()=>(ee(i.value.$rules)?true:i.value.$correct)&&(!S.value.length||S.value.every(x=>x.$correct||x.$anyDirty&&!x.$invalid))),H=vue.computed(()=>i.value.$error||S.value.some(x=>x.$error)),y=vue.computed(()=>!(T.value||_.value)),_=vue.computed(()=>i.value.$pending||S.value.some(x=>x.$pending)),K=vue.computed(()=>!!S.value.length&&S.value.every(x=>x.$edited)),Z=vue.computed(()=>i.value.$anyEdited||S.value.some(x=>x.$anyEdited)),Y=vue.computed(()=>({$self:i.value.$errors,$each:S.value.map(x=>x.$errors)})),se=vue.computed(()=>({$self:i.value.$silentErrors,$each:S.value.map(x=>x.$silentErrors)})),g=vue.computed(()=>V);function k(){b?.collections&&Object.entries(b?.collections).forEach(([x,ue])=>{let le=vue.effectScope();M[x]=le.run(()=>{let pe=vue.ref();return vue.watchEffect(()=>{pe.value=ue(vue.reactive({$dirty:c,$error:H,$silentValue:u,$pending:_,$invalid:T,$correct:j,$errors:Y,$ready:y,$silentErrors:se,$anyDirty:R,$name:g,$each:S,$self:i,$value:e,$edited:K,$anyEdited:Z}));}),pe}),w.push(le);});}let M={};return k(),{$dirty:c,$anyDirty:R,$invalid:T,$correct:j,$error:H,$pending:_,$errors:Y,$silentErrors:se,$ready:y,$name:g,$shortcuts:M,$silentValue:u,$edited:K,$anyEdited:Z}}),a.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function q(){D&&D(),i.value&&i.value.$unwatch(),S.value&&S.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),C.stop(),C=vue.effectScope(),O.stop(),O=vue.effectScope(true),w.forEach(u=>u.stop()),w=[];}function W(u=true,c=false){i.value.$touch(u,c),S.value.forEach(R=>{R.$touch(u,c);});}function X(u,c){if(q(),!c)if(u?.toInitialState)e.value=U(m.value);else if(u?.toState){let R;typeof u?.toState=="function"?R=u?.toState():R=u?.toState,m.value=U(R),e.value=U(R);}else m.value=U(e.value);i.value.$reset(),S.value.forEach(R=>{R.$reset(u,true);}),c||o();}async function I(){let u=e.value;try{return {valid:(await Promise.allSettled([i.value.$validate(),...S.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.valid===!0:!1),data:u}}catch{return {valid:false,data:u}}}function B(){i.value.$clearExternalErrors(),S.value.forEach(u=>{u.$clearExternalErrors();});}function de(u=true){let c=S.value.map(R=>{if(Tt(R))return R.$extractDirtyFields(u)});return u&&c.every(R=>ee(R))&&(c=[]),c}let{$shortcuts:ye,...ie}=F;return vue.reactive({$self:i,...ie,...ye,$each:S,$value:e,$validate:I,$unwatch:q,$watch:A,$touch:W,$reset:X,$extractDirtyFields:de,$clearExternalErrors:B})}function Ne({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:f,rootSchemaErrors:p,validationGroups:d,initialState:$,fieldName:m,...b}){let V=vue.effectScope(),C,F=[],O=null,a=null,w=null,v=null;async function D(u=true){let c=Object.entries(e.value),R=Object.fromEntries(c.filter(([y,_])=>!!_).map(([y,_])=>{if(_){let K=vue.toRef(t.value??{},y),Z=vue.toRef(()=>_),Y=vue.toRef(l?.value??{},y),se=vue.computed(()=>f?.value?.[y]),g=vue.toRef($?.value??{},y);return [y,Ee({state:K,rulesDef:Z,path:r?`${r}.${y}`:y,externalErrors:Y,schemaErrors:se,initialState:g,fieldName:y,...b})]}return []})),T=Object.fromEntries(Object.entries(vue.unref(l)??{}).filter(([y,_])=>!(y in e.value)&&!!_).map(([y])=>{let _=vue.toRef(t.value??{},y),K=vue.toRef(l?.value??{},y),Z=vue.computed(()=>f?.value?.[y]),Y=vue.toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:y,...b})]})),j=Object.fromEntries(Object.entries(vue.unref(f)??{}).map(([y])=>{let _=vue.toRef(t.value??{},y),K=vue.toRef(l?.value??{},y),Z=vue.computed(()=>f?.value?.[y]),Y=vue.toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:y,...b})]})),H=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(T??{}))&&!(y in(j??{}))).map(([y])=>{let _=vue.toRef(t.value??{},y),K=vue.toRef(l?.value??{},y),Z=vue.computed(()=>f?.value?.[y]),Y=vue.toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:y,...b})]}));i.value={...R,...T,...j,...H},u&&s();}let i=b.storage.getFieldsEntry(r);D();function S(){l&&(w=vue.watch(l,()=>{h(),D();},{deep:true}));}function o(){v=vue.watch(t,()=>{h(),D(),W(true,true);},{flush:"sync"});}function s(){n&&(O?.(),O=vue.watch(n,()=>{h(),D();},{deep:true,flush:"post"}),S()),p&&(a?.(),a=vue.watch(p,()=>{h(),D();},{deep:true,flush:"post"})),o(),C=V.run(()=>{let u=vue.computed({get:()=>t.value,set(G){h(),t.value=G,D();}}),c=vue.computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([G,P])=>P?.$dirty)),R=vue.computed(()=>Object.entries(i.value).some(([G,P])=>P?.$anyDirty)),T=vue.computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).some(([G,P])=>P?.$invalid)),j=vue.computed(()=>{let G=Object.entries(i.value).filter(([P,z])=>xt(z)?!z.$inactive:true);return G.length?G.every(([P,z])=>z?.$correct||z.$anyDirty&&!z.$invalid):false}),H=vue.computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).some(([G,P])=>P?.$error)),y=vue.computed(()=>vue.unref(b.options.rewardEarly)!=null?vue.unref(b.options.rewardEarly):false),_=vue.computed(()=>vue.unref(b.options.autoDirty)!=null?vue.unref(b.options.autoDirty):!y.value),K=vue.computed(()=>_.value?R.value&&!(T.value||Y.value):!(T.value||Y.value)),Z=vue.ref(false),Y=vue.computed(()=>Z.value||Object.entries(i.value).some(([G,P])=>P?.$pending)),se=vue.computed(()=>Object.fromEntries(Object.entries(i.value).map(([G,P])=>[G,P?.$errors]))),g=vue.computed(()=>Object.fromEntries(Object.entries(i.value).map(([G,P])=>[G,P?.$silentErrors]))),k=vue.computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([G,P])=>P?.$edited)),M=vue.computed(()=>Object.entries(i.value).some(([G,P])=>P?.$anyEdited)),x=vue.computed(()=>m);function ue(){b.shortcuts?.nested&&Object.entries(b.shortcuts.nested).forEach(([G,P])=>{let z=vue.effectScope();pe[G]=z.run(()=>{let me=vue.ref();return vue.watchEffect(()=>{me.value=P(vue.reactive({$dirty:c,$value:t,$silentValue:u,$error:H,$pending:Y,$invalid:T,$correct:j,$ready:K,$anyDirty:R,$name:x,$silentErrors:g,$errors:se,$fields:i,$edited:k,$anyEdited:M}));}),me}),F.push(z);});}let le=vue.computed({get:()=>d?Object.fromEntries(Object.entries(d?.(i.value)??{}).map(([G,P])=>P.length?[G,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(z=>[z,mt(P,z)])),...Object.fromEntries(["$errors","$silentErrors"].map(z=>[z,yt(P,z)]))}]:[])):{},set(){}}),pe={};return ue(),{$dirty:c,$anyDirty:R,$invalid:T,$correct:j,$error:H,$pending:Y,$errors:se,$silentErrors:g,$ready:K,$name:x,$shortcuts:pe,$groups:le,$silentValue:u,$edited:k,$anyEdited:M,$localPending:Z}});}function h(){O?.(),w?.(),v?.(),a?.(),F=[],C={},i.value&&Object.entries(i.value).forEach(([u,c])=>{c.$unwatch();});}function A(){Object.entries(i.value).forEach(([u,c])=>{c.$clearExternalErrors();});}function q(u,c){if(w?.(),h(),!c)if(u?.toInitialState)t.value=U({...$.value??{}});else if(u?.toState){let R;typeof u?.toState=="function"?R=u?.toState():R=u?.toState,$.value=U(R),t.value=U(R);}else $.value=U(t.value);Object.values(i.value).forEach(R=>{R.$reset(u,true);}),S(),c||D();}function W(u=true,c=false){Object.values(i.value).forEach(R=>{R.$touch(u,c);});}function X(u){return u.filter(([c,R])=>ae(R)?!(R&&typeof R=="object"&&"_null"in R)&&!ee(R):Array.isArray(R)?R.length:true)}function I(u=true){let c=Object.entries(i.value).map(([R,T])=>[R,T.$extractDirtyFields(u)]);return u&&(c=X(c)),Object.fromEntries(c)}async function B(){try{if(b.schemaMode)return b.onValidate?(W(!1),C.$localPending.value=!0,b.onValidate()):{valid:!1,data:t.value};{let u=t.value;return {valid:(await Promise.allSettled(Object.values(i.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.valid===!0:!1),data:u}}}catch{return {valid:false,data:t.value}}finally{C.$localPending.value=false;}}let{$shortcuts:de,$localPending:ye,...ie}=C;return vue.reactive({...ie,...de,$fields:i,$value:t,$reset:q,$touch:W,$validate:B,$unwatch:h,$watch:s,$clearExternalErrors:A,$extractDirtyFields:I})}function Ee({rulesDef:e,...t}){if(bt(e,t.state))return Pt({rulesDef:e,...t});if(ht(t.state,e)){if(je(t.state))return Ne({rulesDef:e,...t});{let n=vue.effectScope().run(()=>{let p=vue.toRef(t.state.value?t.state:vue.ref({}));return vue.watch(()=>t.state.value,d=>{p.value=d;},{deep:true}),vue.watch(p,d=>{t.state.value=d;},{deep:true}),{fakeState:p}}),{state:l,...f}=t;return Ne({rulesDef:e,...f,state:n.fakeState})}}else if(Et(e))return _e({rulesDef:e,...t})}function Ce({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:f,schemaErrors:p,schemaMode:d=false,onValidate:$}){let m=ze(),b=vue.ref();return b.value=Ne({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:f,fieldName:"root",path:"",schemaErrors:p,rootSchemaErrors:p,schemaMode:d,onValidate:$}),vue.getCurrentScope()&&vue.onScopeDispose(()=>{b.value?.$unwatch();}),vue.reactive({regle:b})}function et(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(f,p,d){let $=vue.isRef(p)?p:vue.computed(typeof p=="function"?p:()=>p),m={...n,...d},b=vue.isRef(f)?f:vue.ref(f),V=vue.ref({...U(b.value)});return {r$:Ce({scopeRules:$,state:b,options:m,initialState:V,customRules:e,shortcuts:r}).regle}}return l}var Ge=et();function tt(){function e(t,r){return r}return e}var rt=tt();function jt({rules:e,modifiers:t,shortcuts:r}){let n=et(e,t,r),l=tt();return {useRegle:n,inferRules:l}}function Ae(e,t){let r=t??false,n=vue.computed({get:()=>r?Object.values(e).map(o=>o.$value):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$value])),set:o=>{r||typeof o=="object"&&Object.entries(o).forEach(([s,h])=>e[s].$value=h);}}),l=vue.computed({get:()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentValue])),set:o=>{typeof o=="object"&&Object.entries(o).forEach(([s,h])=>e[s].$silentValue=h);}}),f=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$dirty)}),p=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$anyDirty)),d=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$invalid)),$=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$correct||h.$anyDirty&&!h.$invalid)}),m=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$error)),b=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$ready)}),V=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$pending)),C=vue.computed(()=>r?Object.entries(e).map(([o,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$errors]))),F=vue.computed(()=>r?Object.entries(e).map(([o,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentErrors]))),O=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$edited)}),a=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$anyEdited)),w=vue.computed(()=>r?Object.values(e):e);function v(o){Object.values(e).forEach(s=>{s.$reset(o);});}function E(){Object.values(e).forEach(o=>{o.$touch();});}function D(o=true){return Object.values(e).map(s=>s.$extractDirtyFields(o))}function i(){Object.values(e).forEach(o=>{o.$clearExternalErrors();});}async function S(){try{let o=n.value;return {valid:(await Promise.allSettled(Object.values(e).map(A=>A.$validate()))).every(A=>A.status==="fulfilled"?A.value.valid===!0:!1),data:o}}catch{return {valid:false,data:n.value}}}return vue.reactive({...!r&&{$silentValue:l},$errors:C,$silentErrors:F,$instances:w,$value:n,$dirty:f,$anyDirty:p,$invalid:d,$correct:$,$error:m,$pending:V,$ready:b,$edited:O,$anyEdited:a,$reset:v,$touch:E,$validate:S,$extractDirtyFields:D,$clearExternalErrors:i})}function _t(e){function t(r){let n=vue.computed(()=>vue.toValue(r));p();let l=vue.ref(d(e.value)),f=vue.reactive({r$:l});function p(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}vue.watch(n,p),vue.watch(e,$=>{l.value=d($);},{deep:true});function d($){if(n.value){let m=$[n.value]??{};return Ae(m,true)}else return Ae($["~~global"]??{},true)}return {r$:f.r$}}return {useCollectScope:t}}function Gt(e,t){let r=t??Ge;return {useScopedRegle:(l,f,p)=>{let{namespace:d,...$}=p??{},m=vue.computed(()=>vue.toValue(d)),b=vue.ref(`${Object.keys(e.value).length+1}-${Se()}`),V=vue.computed(()=>`instance-${b.value}`),{r$:C}=r(l,f,$);O(),$t(F),vue.watch(m,(a,w)=>{F(w),O();}),vue.getCurrentInstance()&&vue.onMounted(()=>{let a=vue.getCurrentInstance();typeof window<"u"&&a?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(a?.proxy?.$el?.parentElement)&&F();});function F(a){let w=a??m.value;w?e.value[w]&&delete e.value[w][V.value]:e.value["~~global"][V.value]&&delete e.value["~~global"][V.value];}function O(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][V.value]=C):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][V.value]=C);}return {r$:C,dispose:F,register:O}}}}function nt(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):St(()=>vue.ref({"~~global":{}})))(),{useScopedRegle:n}=Gt(r,e?.customUseRegle),{useCollectScope:l}=_t(r);return {useScopedRegle:n,useCollectScope:l}}
2
2
  exports.InternalRuleType=Le;exports.createRule=He;exports.createScopedUseRegle=nt;exports.defineRegleConfig=jt;exports.inferRules=rt;exports.mergeRegles=Ae;exports.unwrapRuleParameters=te;exports.useRegle=Ge;exports.useRootStorage=Ce;
@@ -1,2 +1,2 @@
1
- import {toValue,version,ref,getCurrentScope,onScopeDispose,reactive,computed,shallowRef,effectScope,watch,getCurrentInstance,onMounted,isRef,toRef,unref,watchEffect}from'vue';function ee(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var pt=Symbol("regle-rule");function Lt(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function G(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>G(n)))),r=="Map"&&(t=new Map([...e].map(n=>[G(n[0]),G(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Lt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=G(e[n]);}return t}function ae(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function We(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Fe(e,t,r){let n,l=(...c)=>new Promise(p=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...c])).then(p);},t);});return l.cancel=()=>{clearTimeout(n),n=undefined;},l}var Le=(r=>(r.Inline="__inline",r.Async="__async",r))(Le||{});function mt(e,t){return e.some(r=>r[t])}function yt(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function te(e){try{return e.map(t=>toValue(t))}catch{return []}}function gt(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function vt(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(p=>p.trim()).filter(p=>p.length>0).length:0}function Be(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(d,...$){return e.validator(d,...te($.length?$:t))},message(d){return typeof e.message=="function"?e.message({...d,$params:te(d?.$params?.length?d.$params:t)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:te(d?.$params?.length?d.$params:t)}):e.active??true},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:te(d?.$params?.length?d.$params:t)}):e.tooltip??[]},exec(d){let $=e.validator(d,...te(t)),m;return $ instanceof Promise?$.then(b=>(m=b,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)):(m=$,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:l,_params:gt(t),_brand:pt}}function He(e){if(typeof e.validator=="function"){let r=Be(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(vt(e.validator)>1){let l=function(...c){return Be(e,...c)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=false,l._tooltip_pacthed=false,l._async=n,l}else return r}throw new Error("Validator must be a function")}function ze(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),l=shallowRef(new Map),c=shallowRef(new Map);function p(v){let E=t.value.get(v);if(E)return E;{let D=ref({});return t.value.set(v,D),D}}function d(v){let E=r.value.get(v);if(E)return E;{let D=ref([]);return r.value.set(v,D),D}}function $(v,E,D){c.value.set(`${v}-${E}`,D);}function m(v,E){return c.value.get(`${v}-${E}`)}function b(v,E){v&&E!=null&&c.value.delete(`${v}-${E}`);}function V(v,E){n.value.set(v,E);}function C(v){return n.value.get(v)??false}function M(v,E){e.value.set(v,E);}function w(v,E){let D=e.value.get(v);return D?a(E,D)?{valid:true}:{valid:false}:undefined}function a(v,E){let D=Object.keys(E),f=Object.keys(v);return f.length!==D.length||!f.every(o=>D.includes(o))?false:f.every(o=>{let s=v[o],h=E[o];return !h||!s||typeof s=="function"||typeof h=="function"||typeof s=="number"||typeof s=="boolean"?false:s._params?s._params?.every((P,q)=>{if(typeof h=="number"||typeof h=="boolean")return true;{let U=te(h._params),X=te(s._params);return U?.[q]===X?.[q]}}):true})}function O(v){let E=l.value.get(v);if(E)return E;{let D=ref(false),f=ref(true),S=ref({}),o=ref(false);return l.value.set(v,{$pending:D,$valid:f,$metadata:S,$validating:o}),{$pending:D,$valid:f,$metadata:S,$validating:o}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),c.value.clear();}),{addRuleDeclEntry:M,setDirtyEntry:V,checkRuleDeclEntry:w,getDirtyState:C,trySetRuleStatusRef:O,getFieldsEntry:p,getCollectionsEntry:d,getArrayStatus:m,addArrayStatus:$,deleteArrayStatus:b,arrayStatusStorage:c}}function je(e){return ae(e.value)}function qe(e,t,r){let n=effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function Xt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let c=Number(r[l]),p=Number(n[l]);if(c>p)return 1;if(p>c)return -1;if(!isNaN(c)&&isNaN(p))return 1;if(isNaN(c)&&!isNaN(p))return -1}return 0}var Ve=Xt(version,"3.5.0")!==-1;function Zt(){return Math.floor(Math.random()*Date.now()).toString()}function Se(){return typeof window>"u"?Zt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function $t(e){return getCurrentScope()?(onScopeDispose(e),true):false}function St(e){let t=false,r,n=effectScope(true);return (...l)=>(t||(r=n.run(()=>e(...l)),t=true),r)}function ht(e,t){return je(e)||ae(t.value)&&!ee(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function bt(e,t){return !!e.value&&ae(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Et(e){return !!e.value&&ae(e.value)}function we(e){return ae(e)&&"_validator"in e}function Oe(e){return typeof e.value!="function"}function Tt(e){return ae(e)&&"$fields"in e}function xt(e){return !!e&&"$rules"in e}function Ke({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Dt({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function Ct({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:c,$debounce:p,modifiers:d}){let $=effectScope(),m={},b,V=ref(false),{$pending:C,$valid:M,$metadata:w,$validating:a}=c.trySetRuleStatusRef(`${l}.${r}`);function O(){$=effectScope(),m=$.run(()=>{let s=ref(false),h=ref(false),P=ref(true),q=ref(false),U=ref(false),X=computed(()=>({$value:n.value,$error:h.value,$dirty:s.value,$pending:q.value,$correct:U.value,$invalid:P.value,$rule:{$valid:M.value,$invalid:!M.value,$pending:C.value},$params:i.value,...w.value})),I=computed(()=>Oe(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function B(T){let F="",H=e?e[r]?.[T]:undefined;if(H&&(typeof H=="function"?F=H(X.value):F=H),Oe(t)){let y=`_${T}_patched`;H&&!t.value[y]||(typeof t.value[T]=="function"?F=t.value[T](X.value):F=t.value[T]??"");}return F}let de=computed(()=>{let T=B("message");return ee(T)&&(T="This field is not valid"),T}),ye=computed(()=>B("tooltip")),ie=computed(()=>Oe(t)&&t.value.type?t.value.type:r),u=computed(()=>Oe(t)?t.value.validator:t.value),i=computed(()=>typeof t.value=="function"?[]:te(t.value._params??[])),R=computed(()=>`${l}.${ie.value}`);return {$active:I,$message:de,$type:ie,$validator:u,$params:i,$path:R,$tooltip:ye,$fieldCorrect:U,$fieldError:h,$fieldDirty:s,$fieldPending:q,$fieldInvalid:P}}),b=watch(m?.$params,()=>{(d.$autoDirty.value||d.$rewardEarly.value&&m.$fieldError.value)&&f();});}O();function v(){M.value=true,m.$fieldDirty.value&&(C.value=true);}async function E(){let s=false;try{let h=m.$validator.value;if(typeof h!="function")return console.error(`${l}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let P=h(n.value,...m.$params.value),q=n.value;v();let U;if(P instanceof Promise?U=await P:U=P,n.value!==q)return !0;if(typeof U=="boolean")s=U;else {let{$valid:X,...I}=U;s=X,w.value=I;}}catch{s=false;}finally{C.value=false;}return s}let D=Fe(E,p??200);async function f(){try{a.value=!0;let s=!1;if(we(t.value)&&t.value._async)s=await D();else {let h=m.$validator.value,P=h(n.value,...m.$params.value);if(P instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(P!=null)if(typeof P=="boolean")s=P;else {let{$valid:q,...U}=P;s=q,w.value=U;}}return M.value=s,s}catch{return false}finally{a.value=false;}}function S(){M.value=true,w.value={},C.value=false,a.value=false,O();}function o(){b(),$.stop(),$=effectScope();}return reactive({...m,$pending:C,$valid:M,$metadata:w,$haveAsync:V,$validating:a,$validate:f,$unwatch:o,$watch:O,$reset:S})}function _e({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:c,options:p,externalErrors:d,schemaErrors:$,schemaMode:m,onUnwatch:b,$isArray:V,initialState:C,shortcuts:M}){let w=effectScope(),a,O=[],v,E,D,f,S,o=()=>{};function s(){let g=t.value,k=c.checkRuleDeclEntry(n,g);B.value=Object.fromEntries(Object.entries(g).filter(([A])=>A.startsWith("$"))),q(),I.value=Object.fromEntries(Object.entries(t.value).filter(([A])=>!A.startsWith("$")).map(([A,x])=>{if(x){let ue=toRef(()=>x);return [A,Ct({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:ue,ruleKey:A,state:e,path:n,storage:c,$debounce:B.value.$debounce})]}return []}).filter(A=>!!A.length)),a.processShortcuts(),h(),k?.valid!=null&&(a.$dirty.value=c.getDirtyState(n),(a.$dirty.value&&a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o()),c.addRuleDeclEntry(n,g);}function h(){o=a.$debounce.value?Fe(X,a.$debounce.value??a.$haveAnyAsyncRule?100:0):X;}function P(){I.value&&Object.entries(I.value).forEach(([g,k])=>{k.$unwatch();}),D(),S?.(),a.$dirty.value&&c.setDirtyEntry(n,a.$dirty.value),v?.(),E?.(),w.stop(),w=effectScope(),O.forEach(g=>g.stop()),O=[],b?.(),f?.();}function q(){I.value&&Object.entries(I.value).forEach(([g,k])=>{k.$watch();}),a=w.run(()=>{let g=ref(false),k=ref(false),A=computed(()=>g.value),x=computed(()=>B.value.$debounce),ue=computed(()=>B.value.$lazy!=null?B.value.$lazy:unref(p.lazy)!=null?unref(p.lazy):false),le=computed(()=>B.value.$rewardEarly!=null?B.value.$rewardEarly:unref(p.rewardEarly)!=null?unref(p.rewardEarly):false),pe=computed(()=>B.value.$clearExternalErrorsOnChange!=null?B.value.$clearExternalErrorsOnChange:unref(p.clearExternalErrorsOnChange)!=null?unref(p.clearExternalErrorsOnChange):true),W=computed(()=>B.value.$autoDirty!=null?B.value.$autoDirty:unref(p.autoDirty)!=null?unref(p.autoDirty):!le.value),j=computed(()=>Object.entries(I.value).some(([oe,Q])=>Q.$validating)),z=computed({get:()=>e.value,set(oe){v(),e.value=oe,U();}}),me=computed(()=>ge.value&&!Ie.value&&g.value),at=computed(()=>Ke({field:{$rules:I.value,$error:me.value,$externalErrors:d?.value,$schemaErrors:$?.value}})),lt=computed(()=>Ke({field:{$rules:I.value,$error:me.value,$externalErrors:d?.value,$schemaErrors:$?.value},silent:true})),Ue=computed(()=>g.value?C.value instanceof Date&&e.value instanceof Date?We(C.value).getDate()!==We(e.value).getDate():C.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(C.value)?e.value.length!==C.value.length:C.value!==e.value:false),ot=computed(()=>Ue.value),st=computed(()=>Dt({field:{$rules:I.value}})),ut=computed(()=>W.value?A.value&&!(ge.value||Ie.value):!(ge.value||Ie.value)),Ie=computed(()=>k.value||!le.value?Object.entries(I.value).some(([oe,Q])=>Q.$pending):false),ge=computed(()=>d?.value?.length||$?.value?.length?true:Me.value?false:!le.value||le.value&&k.value?Object.entries(I.value).some(([oe,Q])=>!Q.$valid):false),it=computed(()=>l),Me=computed(()=>!!(ee(I.value)&&!m)),ct=computed(()=>d?.value?.length||Me.value?false:g.value&&!ee(e.value)&&!j.value?m?!$?.value?.length:Object.values(I.value).some(Q=>Q.$active)?Object.values(I.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),Ut=computed(()=>Object.entries(I.value).some(([oe,Q])=>Q.$haveAsync));function Wt(){M?.fields&&Object.entries(M.fields).forEach(([oe,Q])=>{let Rt=effectScope();ft[oe]=Rt.run(()=>{let dt=ref();return watchEffect(()=>{dt.value=Q(reactive({$dirty:g,$externalErrors:d?.value??[],$value:e,$silentValue:z,$rules:I,$error:me,$pending:Ie,$invalid:ge,$correct:ct,$errors:at,$ready:ut,$silentErrors:lt,$anyDirty:A,$tooltips:st,$name:it,$inactive:Me,$edited:Ue,$anyEdited:ot}));}),dt}),O.push(Rt);});}let ft={};return watch(ge,oe=>{oe||(k.value=false);}),{$error:me,$pending:Ie,$invalid:ge,$correct:ct,$debounce:x,$lazy:ue,$errors:at,$ready:ut,$silentErrors:lt,$rewardEarly:le,$autoDirty:W,$clearExternalErrorsOnChange:pe,$anyDirty:A,$edited:Ue,$anyEdited:ot,$name:it,$haveAnyAsyncRule:Ut,$shortcuts:ft,$validating:j,$tooltips:st,$dirty:g,triggerPunishment:k,processShortcuts:Wt,$silentValue:z,$inactive:Me}}),U(),D=watch(a.$dirty,g=>{c.setDirtyEntry(n,g),Object.values(I.value).forEach(k=>{k.$fieldDirty=g;});}),S=watch([a.$error,a.$correct,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(g=>{g.$fieldError=a.$error.value,g.$fieldInvalid=a.$invalid.value,g.$fieldPending=a.$pending.value,g.$fieldCorrect=a.$correct.value;});}),E=watch(a.$invalid,g=>{a.$rewardEarly.value&&!g&&(a.triggerPunishment.value=false);}),f=watch(a.$haveAnyAsyncRule,h);}function U(){v=watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&s(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&i();},{deep:V?true:Ve?1:true,flush:"post"});}function X(){Object.values(I.value).forEach(g=>{g.$validate();});}let I=ref({}),B=ref({});s();function de(g,k){if(i(),a.$dirty.value=false,a.triggerPunishment.value=false,c.setDirtyEntry(n,false),!k)if(g?.toInitialState)P(),e.value=G(C);else if(g?.toState){P();let A;typeof g?.toState=="function"?A=g?.toState():A=g?.toState,C.value=G(A),e.value=G(A);}else C.value=ae(e.value)?G(e.value):Array.isArray(e.value)?[...e.value]:e.value;k||Object.entries(I.value).forEach(([A,x])=>{x.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(A=>A.$validate()),k||s();}function ye(g=true,k=false){a.$dirty.value||(a.$dirty.value=true),k&&g?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o():g&&o();}async function ie(){try{let g=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:g};return m?{result:!$?.value?.length,data:g}:ee(I.value)?{result:!0,data:g}:{result:(await Promise.allSettled(Object.entries(I.value).map(([x,ue])=>ue.$validate()))).every(x=>x.status==="fulfilled"?x.value===!0:!1),data:g}}catch{return {result:false,data:e.value}}}function u(g=true){return a.$dirty.value?e.value:g?{_null:true}:null}function i(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&o();let{$shortcuts:R,$validating:T,$autoDirty:F,$rewardEarly:H,$clearExternalErrorsOnChange:y,$haveAnyAsyncRule:_,$debounce:K,$lazy:Z,triggerPunishment:J,...se}=a;return reactive({...se,$externalErrors:d,$value:e,$rules:I,...R,$reset:de,$touch:ye,$validate:ie,$unwatch:P,$watch:q,$extractDirtyFields:u,$clearExternalErrors:i})}function Qe({$id:e,path:t,index:r,options:n,storage:l,stateValue:c,customMessages:p,rules:d,externalErrors:$,schemaErrors:m,initialState:b,shortcuts:V,fieldName:C,schemaMode:M}){let w=d.$key?d.$key:Se(),a=`${t}.${String(w)}`;typeof c.value=="object"&&c.value!=null&&(c.value.$id?a=`${t}.${c.value.$id}`:Object.defineProperties(c.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let O=toRef($?.value??[],r),v=computed(()=>m?.value?.[r]),E=Ee({state:c,rulesDef:toRef(()=>d),customMessages:p,path:a,storage:l,options:n,externalErrors:O,schemaErrors:v,initialState:b,shortcuts:V,fieldName:C,schemaMode:M});if(E){let D=c.value?.$id;E.$id=D??String(w),l.addArrayStatus(e,E.$id,E);}return E}function Pt({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:c,externalErrors:p,schemaErrors:d,schemaMode:$,initialState:m,shortcuts:b,fieldName:V}){let C=effectScope(),M,w=effectScope(),a,O=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let v=ref(),E=ref(e.value),D,f=ref({}),S=l.getCollectionsEntry(n);a=w.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(i=>typeof i!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(i=>we(i)||typeof i=="function"):false)})),o(),P();function o(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(v.value=Se(),Object.defineProperties(e.value,{$id:{value:v.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(v.value=e.value.$id)),E.value=f.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?S.value=e.value.filter(u=>typeof u=="object").map((u,i)=>{let{scope:R,unwrapped:T}=qe(t.value.$each,toRef(()=>u),i);R&&O.push(R);let F=toRef(m.value??[],i),H=toRef(p?.value??{},"$each"),y=computed(()=>d?.value?.$each),_=Qe({$id:v.value,path:n,customMessages:r,rules:T??{},stateValue:toRef(()=>u),index:i,options:c,storage:l,externalErrors:H,schemaErrors:y,initialState:F,shortcuts:b,fieldName:V,schemaMode:$});return _||null}).filter(u=>!!u):S.value=[],f.value=_e({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:c,externalErrors:toRef(p?.value??{},"$self"),schemaErrors:computed(()=>d?.value?.$self),$isArray:true,initialState:m,shortcuts:b,fieldName:V,schemaMode:$});}function s(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let u=G(S.value);S.value=e.value.filter(i=>typeof i=="object").map((i,R)=>{let T=toRef(()=>i);if(i.$id&&S.value.find(F=>F.$id===i.$id)){let F=l.getArrayStatus(v.value,i.$id);return F?(F.$value=T,F):null}else {let{scope:F,unwrapped:H}=qe(t.value.$each,T,R);F&&O.push(F);let y=toRef(p?.value??{},"$each"),_=computed(()=>d?.value?.$each??[]),K=Qe({$id:v.value,path:n,customMessages:r,rules:H??{},stateValue:T,index:R,options:c,storage:l,externalErrors:y,schemaErrors:_,initialState:toRef(m.value??[],R),shortcuts:b,fieldName:V,schemaMode:$});return K||null}}).filter(i=>!!i),u.filter(i=>!e.value?.find(R=>i.$id===R.$id)).forEach((i,R)=>{l.deleteArrayStatus(v.value,R.toString());});}else S.value=[];}function h(){D=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?o():s();},{deep:Ve?1:true,flush:"pre"});}function P(){h(),C=effectScope(),M=C.run(()=>{let u=computed({get:()=>e.value,set(x){D(),e.value=x,h();}}),i=computed(()=>f.value.$dirty&&(!S.value.length||S.value.every(x=>x.$dirty))),R=computed(()=>f.value.$anyDirty||S.value.some(x=>x.$anyDirty)),T=computed(()=>f.value.$invalid||S.value.some(x=>x.$invalid)),F=computed(()=>(ee(f.value.$rules)?true:f.value.$correct)&&(!S.value.length||S.value.every(x=>x.$correct||x.$anyDirty&&!x.$invalid))),H=computed(()=>f.value.$error||S.value.some(x=>x.$error)),y=computed(()=>!(T.value||_.value)),_=computed(()=>f.value.$pending||S.value.some(x=>x.$pending)),K=computed(()=>!!S.value.length&&S.value.every(x=>x.$edited)),Z=computed(()=>f.value.$anyEdited||S.value.some(x=>x.$anyEdited)),J=computed(()=>({$self:f.value.$errors,$each:S.value.map(x=>x.$errors)})),se=computed(()=>({$self:f.value.$silentErrors,$each:S.value.map(x=>x.$silentErrors)})),g=computed(()=>V);function k(){b?.collections&&Object.entries(b?.collections).forEach(([x,ue])=>{let le=effectScope();A[x]=le.run(()=>{let pe=ref();return watchEffect(()=>{pe.value=ue(reactive({$dirty:i,$error:H,$silentValue:u,$pending:_,$invalid:T,$correct:F,$errors:J,$ready:y,$silentErrors:se,$anyDirty:R,$name:g,$each:S,$self:f,$value:e,$edited:K,$anyEdited:Z}));}),pe}),O.push(le);});}let A={};return k(),{$dirty:i,$anyDirty:R,$invalid:T,$correct:F,$error:H,$pending:_,$errors:J,$silentErrors:se,$ready:y,$name:g,$shortcuts:A,$silentValue:u,$edited:K,$anyEdited:Z}}),a.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function q(){D&&D(),f.value&&f.value.$unwatch(),S.value&&S.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),C.stop(),C=effectScope(),w.stop(),w=effectScope(true),O.forEach(u=>u.stop()),O=[];}function U(u=true,i=false){f.value.$touch(u,i),S.value.forEach(R=>{R.$touch(u,i);});}function X(u,i){if(q(),!i)if(u?.toInitialState)e.value=G(m.value);else if(u?.toState){let R;typeof u?.toState=="function"?R=u?.toState():R=u?.toState,m.value=G(R),e.value=G(R);}else m.value=G(e.value);f.value.$reset(),S.value.forEach(R=>{R.$reset(u,true);}),i||o();}async function I(){let u=e.value;try{return {result:(await Promise.allSettled([f.value.$validate(),...S.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:u}}catch{return {result:false,data:u}}}function B(){f.value.$clearExternalErrors(),S.value.forEach(u=>{u.$clearExternalErrors();});}function de(u=true){let i=S.value.map(R=>{if(Tt(R))return R.$extractDirtyFields(u)});return u&&i.every(R=>ee(R))&&(i=[]),i}let{$shortcuts:ye,...ie}=M;return reactive({$self:f,...ie,...ye,$each:S,$value:e,$validate:I,$unwatch:q,$watch:P,$touch:U,$reset:X,$extractDirtyFields:de,$clearExternalErrors:B})}function Ne({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:c,rootSchemaErrors:p,validationGroups:d,initialState:$,fieldName:m,...b}){let V=effectScope(),C,M=[],w=null,a=null,O=null,v=null;async function D(u=true){let i=Object.entries(e.value),R=Object.fromEntries(i.filter(([y,_])=>!!_).map(([y,_])=>{if(_){let K=toRef(t.value??{},y),Z=toRef(()=>_),J=toRef(l?.value??{},y),se=computed(()=>c?.value?.[y]),g=toRef($?.value??{},y);return [y,Ee({state:K,rulesDef:Z,path:r?`${r}.${y}`:y,externalErrors:J,schemaErrors:se,initialState:g,fieldName:y,...b})]}return []})),T=Object.fromEntries(Object.entries(unref(l)??{}).filter(([y,_])=>!(y in e.value)&&!!_).map(([y])=>{let _=toRef(t.value??{},y),K=toRef(l?.value??{},y),Z=computed(()=>c?.value?.[y]),J=toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:J,fieldName:y,...b})]})),F=Object.fromEntries(Object.entries(unref(c)??{}).map(([y])=>{let _=toRef(t.value??{},y),K=toRef(l?.value??{},y),Z=computed(()=>c?.value?.[y]),J=toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:J,fieldName:y,...b})]})),H=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(T??{}))&&!(y in(F??{}))).map(([y])=>{let _=toRef(t.value??{},y),K=toRef(l?.value??{},y),Z=computed(()=>c?.value?.[y]),J=toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:J,fieldName:y,...b})]}));f.value={...R,...T,...F,...H},u&&s();}let f=b.storage.getFieldsEntry(r);D();function S(){l&&(O=watch(l,()=>{h(),D();},{deep:true}));}function o(){v=watch(t,()=>{h(),D(),U(true,true);},{flush:"sync"});}function s(){n&&(w?.(),w=watch(n,()=>{h(),D();},{deep:true,flush:"post"}),S()),p&&(a?.(),a=watch(p,()=>{h(),D();},{deep:true,flush:"post"})),o(),C=V.run(()=>{let u=computed({get:()=>t.value,set(W){h(),t.value=W,D();}}),i=computed(()=>!!Object.entries(f.value).length&&Object.entries(f.value).every(([W,j])=>j?.$dirty)),R=computed(()=>Object.entries(f.value).some(([W,j])=>j?.$anyDirty)),T=computed(()=>Object.entries(f.value).some(([W,j])=>j?.$invalid)),F=computed(()=>{let W=Object.entries(f.value).filter(([j,z])=>xt(z)?!z.$inactive:true);return W.length?W.every(([j,z])=>z?.$correct||z.$anyDirty&&!z.$invalid):false}),H=computed(()=>R.value&&!J.value&&T.value),y=computed(()=>unref(b.options.rewardEarly)!=null?unref(b.options.rewardEarly):false),_=computed(()=>unref(b.options.autoDirty)!=null?unref(b.options.autoDirty):!y.value),K=computed(()=>_.value?R.value&&!(T.value||J.value):!(T.value||J.value)),Z=ref(false),J=computed(()=>Z.value||Object.entries(f.value).some(([W,j])=>j?.$pending)),se=computed(()=>Object.fromEntries(Object.entries(f.value).map(([W,j])=>[W,j?.$errors]))),g=computed(()=>Object.fromEntries(Object.entries(f.value).map(([W,j])=>[W,j?.$silentErrors]))),k=computed(()=>!!Object.entries(f.value).length&&Object.entries(f.value).every(([W,j])=>j?.$edited)),A=computed(()=>Object.entries(f.value).some(([W,j])=>j?.$anyEdited)),x=computed(()=>m);function ue(){b.shortcuts?.nested&&Object.entries(b.shortcuts.nested).forEach(([W,j])=>{let z=effectScope();pe[W]=z.run(()=>{let me=ref();return watchEffect(()=>{me.value=j(reactive({$dirty:i,$value:t,$silentValue:u,$error:H,$pending:J,$invalid:T,$correct:F,$ready:K,$anyDirty:R,$name:x,$silentErrors:g,$errors:se,$fields:f,$edited:k,$anyEdited:A}));}),me}),M.push(z);});}let le=computed({get:()=>d?Object.fromEntries(Object.entries(d?.(f.value)??{}).map(([W,j])=>j.length?[W,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(z=>[z,mt(j,z)])),...Object.fromEntries(["$errors","$silentErrors"].map(z=>[z,yt(j,z)]))}]:[])):{},set(){}}),pe={};return ue(),{$dirty:i,$anyDirty:R,$invalid:T,$correct:F,$error:H,$pending:J,$errors:se,$silentErrors:g,$ready:K,$name:x,$shortcuts:pe,$groups:le,$silentValue:u,$edited:k,$anyEdited:A,$localPending:Z}});}function h(){w?.(),O?.(),v?.(),a?.(),M=[],C={},f.value&&Object.entries(f.value).forEach(([u,i])=>{i.$unwatch();});}function P(){Object.entries(f.value).forEach(([u,i])=>{i.$clearExternalErrors();});}function q(u,i){if(O?.(),h(),!i)if(u?.toInitialState)t.value=G({...$.value??{}});else if(u?.toState){let R;typeof u?.toState=="function"?R=u?.toState():R=u?.toState,$.value=G(R),t.value=G(R);}else $.value=G(t.value);Object.values(f.value).forEach(R=>{R.$reset(u,true);}),S(),i||D();}function U(u=true,i=false){Object.values(f.value).forEach(R=>{R.$touch(u,i);});}function X(u){return u.filter(([i,R])=>ae(R)?!(R&&typeof R=="object"&&"_null"in R)&&!ee(R):Array.isArray(R)?R.length:true)}function I(u=true){let i=Object.entries(f.value).map(([R,T])=>[R,T.$extractDirtyFields(u)]);return u&&(i=X(i)),Object.fromEntries(i)}async function B(){try{if(b.schemaMode)return b.onValidate?(U(!1),C.$localPending.value=!0,b.onValidate()):{result:!1,data:t.value};{let u=t.value;return {result:(await Promise.allSettled(Object.values(f.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:u}}}catch{return {result:false,data:t.value}}finally{C.$localPending.value=false;}}let{$shortcuts:de,$localPending:ye,...ie}=C;return reactive({...ie,...de,$fields:f,$value:t,$reset:q,$touch:U,$validate:B,$unwatch:h,$watch:s,$clearExternalErrors:P,$extractDirtyFields:I})}function Ee({rulesDef:e,...t}){if(bt(e,t.state))return Pt({rulesDef:e,...t});if(ht(t.state,e)){if(je(t.state))return Ne({rulesDef:e,...t});{let n=effectScope().run(()=>{let p=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,d=>{p.value=d;},{deep:true}),watch(p,d=>{t.state.value=d;},{deep:true}),{fakeState:p}}),{state:l,...c}=t;return Ne({rulesDef:e,...c,state:n.fakeState})}}else if(Et(e))return _e({rulesDef:e,...t})}function Ce({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:c,schemaErrors:p,schemaMode:d=false,onValidate:$}){let m=ze(),b=ref();return b.value=Ne({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:c,fieldName:"root",path:"",schemaErrors:p,rootSchemaErrors:p,schemaMode:d,onValidate:$}),getCurrentScope()&&onScopeDispose(()=>{b.value?.$unwatch();}),reactive({regle:b})}function et(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(c,p,d){let $=isRef(p)?p:computed(typeof p=="function"?p:()=>p),m={...n,...d},b=isRef(c)?c:ref(c),V=ref({...G(b.value)});return {r$:Ce({scopeRules:$,state:b,options:m,initialState:V,customRules:e,shortcuts:r}).regle}}return l}var Ge=et();function tt(){function e(t,r){return r}return e}var rt=tt();function jt({rules:e,modifiers:t,shortcuts:r}){let n=et(e,t,r),l=tt();return {useRegle:n,inferRules:l}}function Ae(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(o=>o.$value):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$value])),set:o=>{r||typeof o=="object"&&Object.entries(o).forEach(([s,h])=>e[s].$value=h);}}),l=computed({get:()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentValue])),set:o=>{typeof o=="object"&&Object.entries(o).forEach(([s,h])=>e[s].$silentValue=h);}}),c=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$dirty)}),p=computed(()=>Object.entries(e).some(([o,s])=>s?.$anyDirty)),d=computed(()=>Object.entries(e).some(([o,s])=>s?.$invalid)),$=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$correct||h.$anyDirty&&!h.$invalid)}),m=computed(()=>Object.entries(e).some(([o,s])=>s?.$error)),b=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$ready)}),V=computed(()=>Object.entries(e).some(([o,s])=>s?.$pending)),C=computed(()=>r?Object.entries(e).map(([o,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$errors]))),M=computed(()=>r?Object.entries(e).map(([o,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentErrors]))),w=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$edited)}),a=computed(()=>Object.entries(e).some(([o,s])=>s?.$anyEdited)),O=computed(()=>r?Object.values(e):e);function v(o){Object.values(e).forEach(s=>{s.$reset(o);});}function E(){Object.values(e).forEach(o=>{o.$touch();});}function D(o=true){return Object.values(e).map(s=>s.$extractDirtyFields(o))}function f(){Object.values(e).forEach(o=>{o.$clearExternalErrors();});}async function S(){try{let o=n.value;return {result:(await Promise.allSettled(Object.values(e).map(P=>P.$validate()))).every(P=>P.status==="fulfilled"?P.value.result===!0:!1),data:o}}catch{return {result:false,data:n.value}}}return reactive({...!r&&{$silentValue:l},$errors:C,$silentErrors:M,$instances:O,$value:n,$dirty:c,$anyDirty:p,$invalid:d,$correct:$,$error:m,$pending:V,$ready:b,$edited:w,$anyEdited:a,$reset:v,$touch:E,$validate:S,$extractDirtyFields:D,$clearExternalErrors:f})}function _t(e){function t(r){let n=computed(()=>toValue(r));p();let l=ref(d(e.value)),c=reactive({r$:l});function p(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}watch(n,p),watch(e,$=>{l.value=d($);},{deep:true});function d($){if(n.value){let m=$[n.value]??{};return Ae(m,true)}else return Ae($["~~global"]??{},true)}return {r$:c.r$}}return {useCollectScope:t}}function Gt(e,t){let r=t??Ge;return {useScopedRegle:(l,c,p)=>{let{namespace:d,...$}=p??{},m=computed(()=>toValue(d)),b=ref(`${Object.keys(e.value).length+1}-${Se()}`),V=computed(()=>`instance-${b.value}`),{r$:C}=r(l,c,$);w(),$t(M),watch(m,(a,O)=>{M(O),w();}),getCurrentInstance()&&onMounted(()=>{let a=getCurrentInstance();typeof window<"u"&&a?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(a?.proxy?.$el?.parentElement)&&M();});function M(a){let O=a??m.value;O?e.value[O]&&delete e.value[O][V.value]:e.value["~~global"][V.value]&&delete e.value["~~global"][V.value];}function w(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][V.value]=C):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][V.value]=C);}return {r$:C,dispose:M,register:w}}}}function nt(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):St(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=Gt(r,e?.customUseRegle),{useCollectScope:l}=_t(r);return {useScopedRegle:n,useCollectScope:l}}
1
+ import {toValue,version,ref,getCurrentScope,onScopeDispose,reactive,computed,shallowRef,effectScope,watch,getCurrentInstance,onMounted,isRef,toRef,unref,watchEffect}from'vue';function ee(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var pt=Symbol("regle-rule");function Lt(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function U(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>U(n)))),r=="Map"&&(t=new Map([...e].map(n=>[U(n[0]),U(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Lt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=U(e[n]);}return t}function ae(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function We(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Fe(e,t,r){let n,l=(...f)=>new Promise(p=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...f])).then(p);},t);});return l.cancel=()=>{clearTimeout(n),n=undefined;},l}var Le=(r=>(r.Inline="__inline",r.Async="__async",r))(Le||{});function mt(e,t){return e.some(r=>r[t])}function yt(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function te(e){try{return e.map(t=>toValue(t))}catch{return []}}function gt(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function vt(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(p=>p.trim()).filter(p=>p.length>0).length:0}function Be(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(d,...$){return e.validator(d,...te($.length?$:t))},message(d){return typeof e.message=="function"?e.message({...d,$params:te(d?.$params?.length?d.$params:t)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:te(d?.$params?.length?d.$params:t)}):e.active??true},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:te(d?.$params?.length?d.$params:t)}):e.tooltip??[]},exec(d){let $=e.validator(d,...te(t)),m;return $ instanceof Promise?$.then(b=>(m=b,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)):(m=$,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:l,_params:gt(t),_brand:pt}}function He(e){if(typeof e.validator=="function"){let r=Be(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(vt(e.validator)>1){let l=function(...f){return Be(e,...f)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=false,l._tooltip_pacthed=false,l._async=n,l}else return r}throw new Error("Validator must be a function")}function ze(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),l=shallowRef(new Map),f=shallowRef(new Map);function p(v){let E=t.value.get(v);if(E)return E;{let D=ref({});return t.value.set(v,D),D}}function d(v){let E=r.value.get(v);if(E)return E;{let D=ref([]);return r.value.set(v,D),D}}function $(v,E,D){f.value.set(`${v}-${E}`,D);}function m(v,E){return f.value.get(`${v}-${E}`)}function b(v,E){v&&E!=null&&f.value.delete(`${v}-${E}`);}function V(v,E){n.value.set(v,E);}function C(v){return n.value.get(v)??false}function F(v,E){e.value.set(v,E);}function O(v,E){let D=e.value.get(v);return D?a(E,D)?{valid:true}:{valid:false}:undefined}function a(v,E){let D=Object.keys(E),i=Object.keys(v);return i.length!==D.length||!i.every(o=>D.includes(o))?false:i.every(o=>{let s=v[o],h=E[o];return !h||!s||typeof s=="function"||typeof h=="function"||typeof s=="number"||typeof s=="boolean"?false:s._params?s._params?.every((A,q)=>{if(typeof h=="number"||typeof h=="boolean")return true;{let W=te(h._params),X=te(s._params);return W?.[q]===X?.[q]}}):true})}function w(v){let E=l.value.get(v);if(E)return E;{let D=ref(false),i=ref(true),S=ref({}),o=ref(false);return l.value.set(v,{$pending:D,$valid:i,$metadata:S,$validating:o}),{$pending:D,$valid:i,$metadata:S,$validating:o}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),f.value.clear();}),{addRuleDeclEntry:F,setDirtyEntry:V,checkRuleDeclEntry:O,getDirtyState:C,trySetRuleStatusRef:w,getFieldsEntry:p,getCollectionsEntry:d,getArrayStatus:m,addArrayStatus:$,deleteArrayStatus:b,arrayStatusStorage:f}}function je(e){return ae(e.value)}function qe(e,t,r){let n=effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function Xt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let f=Number(r[l]),p=Number(n[l]);if(f>p)return 1;if(p>f)return -1;if(!isNaN(f)&&isNaN(p))return 1;if(isNaN(f)&&!isNaN(p))return -1}return 0}var Ve=Xt(version,"3.5.0")!==-1;function Zt(){return Math.floor(Math.random()*Date.now()).toString()}function Se(){return typeof window>"u"?Zt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function $t(e){return getCurrentScope()?(onScopeDispose(e),true):false}function St(e){let t=false,r,n=effectScope(true);return (...l)=>(t||(r=n.run(()=>e(...l)),t=true),r)}function ht(e,t){return je(e)||ae(t.value)&&!ee(t.value)&&!Object.entries(t.value).some(([r,n])=>Oe(n)||typeof n=="function")}function bt(e,t){return !!e.value&&ae(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Et(e){return !!e.value&&ae(e.value)}function Oe(e){return ae(e)&&"_validator"in e}function we(e){return typeof e.value!="function"}function Tt(e){return ae(e)&&"$fields"in e}function xt(e){return !!e&&"$rules"in e}function Ke({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Dt({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function Ct({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:f,$debounce:p,modifiers:d}){let $=effectScope(),m={},b,V=ref(false),{$pending:C,$valid:F,$metadata:O,$validating:a}=f.trySetRuleStatusRef(`${l}.${r}`);function w(){$=effectScope(),m=$.run(()=>{let s=ref(false),h=ref(false),A=ref(true),q=ref(false),W=ref(false),X=computed(()=>({$value:n.value,$error:h.value,$dirty:s.value,$pending:q.value,$correct:W.value,$invalid:A.value,$rule:{$valid:F.value,$invalid:!F.value,$pending:C.value},$params:c.value,...O.value})),I=computed(()=>we(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function B(T){let j="",H=e?e[r]?.[T]:undefined;if(H&&(typeof H=="function"?j=H(X.value):j=H),we(t)){let y=`_${T}_patched`;H&&!t.value[y]||(typeof t.value[T]=="function"?j=t.value[T](X.value):j=t.value[T]??"");}return j}let de=computed(()=>{let T=B("message");return ee(T)&&(T="This field is not valid"),T}),ye=computed(()=>B("tooltip")),ie=computed(()=>we(t)&&t.value.type?t.value.type:r),u=computed(()=>we(t)?t.value.validator:t.value),c=computed(()=>typeof t.value=="function"?[]:te(t.value._params??[])),R=computed(()=>`${l}.${ie.value}`);return {$active:I,$message:de,$type:ie,$validator:u,$params:c,$path:R,$tooltip:ye,$fieldCorrect:W,$fieldError:h,$fieldDirty:s,$fieldPending:q,$fieldInvalid:A}}),b=watch(m?.$params,()=>{(d.$autoDirty.value||d.$rewardEarly.value&&m.$fieldError.value)&&i();});}w();function v(){F.value=true,m.$fieldDirty.value&&(C.value=true);}async function E(){let s=false;try{let h=m.$validator.value;if(typeof h!="function")return console.error(`${l}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let A=h(n.value,...m.$params.value),q=n.value;v();let W;if(A instanceof Promise?W=await A:W=A,n.value!==q)return !0;if(typeof W=="boolean")s=W;else {let{$valid:X,...I}=W;s=X,O.value=I;}}catch{s=false;}finally{C.value=false;}return s}let D=Fe(E,p??200);async function i(){try{a.value=!0;let s=!1;if(Oe(t.value)&&t.value._async)s=await D();else {let h=m.$validator.value,A=h(n.value,...m.$params.value);if(A instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(A!=null)if(typeof A=="boolean")s=A;else {let{$valid:q,...W}=A;s=q,O.value=W;}}return F.value=s,s}catch{return false}finally{a.value=false;}}function S(){F.value=true,O.value={},C.value=false,a.value=false,w();}function o(){b(),$.stop(),$=effectScope();}return reactive({...m,$pending:C,$valid:F,$metadata:O,$haveAsync:V,$validating:a,$parse:i,$unwatch:o,$watch:w,$reset:S})}function _e({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:f,options:p,externalErrors:d,schemaErrors:$,schemaMode:m,onUnwatch:b,$isArray:V,initialState:C,shortcuts:F}){let O=effectScope(),a,w=[],v,E,D,i,S,o=()=>{};function s(){let g=t.value,k=f.checkRuleDeclEntry(n,g);B.value=Object.fromEntries(Object.entries(g).filter(([M])=>M.startsWith("$"))),q(),I.value=Object.fromEntries(Object.entries(t.value).filter(([M])=>!M.startsWith("$")).map(([M,x])=>{if(x){let ue=toRef(()=>x);return [M,Ct({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:ue,ruleKey:M,state:e,path:n,storage:f,$debounce:B.value.$debounce})]}return []}).filter(M=>!!M.length)),a.processShortcuts(),h(),k?.valid!=null&&(a.$dirty.value=f.getDirtyState(n),(a.$dirty.value&&a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o()),f.addRuleDeclEntry(n,g);}function h(){o=a.$debounce.value?Fe(X,a.$debounce.value??a.$haveAnyAsyncRule?100:0):X;}function A(){I.value&&Object.entries(I.value).forEach(([g,k])=>{k.$unwatch();}),D(),S?.(),a.$dirty.value&&f.setDirtyEntry(n,a.$dirty.value),v?.(),E?.(),O.stop(),O=effectScope(),w.forEach(g=>g.stop()),w=[],b?.(),i?.();}function q(){I.value&&Object.entries(I.value).forEach(([g,k])=>{k.$watch();}),a=O.run(()=>{let g=ref(false),k=ref(false),M=computed(()=>g.value),x=computed(()=>B.value.$debounce),ue=computed(()=>B.value.$lazy!=null?B.value.$lazy:unref(p.lazy)!=null?unref(p.lazy):false),le=computed(()=>B.value.$rewardEarly!=null?B.value.$rewardEarly:unref(p.rewardEarly)!=null?unref(p.rewardEarly):false),pe=computed(()=>B.value.$clearExternalErrorsOnChange!=null?B.value.$clearExternalErrorsOnChange:unref(p.clearExternalErrorsOnChange)!=null?unref(p.clearExternalErrorsOnChange):true),G=computed(()=>B.value.$autoDirty!=null?B.value.$autoDirty:unref(p.autoDirty)!=null?unref(p.autoDirty):!le.value),P=computed(()=>Object.entries(I.value).some(([oe,Q])=>Q.$validating)),z=computed({get:()=>e.value,set(oe){v(),e.value=oe,W();}}),me=computed(()=>ge.value&&!Ie.value&&g.value),at=computed(()=>Ke({field:{$rules:I.value,$error:me.value,$externalErrors:d?.value,$schemaErrors:$?.value}})),lt=computed(()=>Ke({field:{$rules:I.value,$error:me.value,$externalErrors:d?.value,$schemaErrors:$?.value},silent:true})),Ue=computed(()=>g.value?C.value instanceof Date&&e.value instanceof Date?We(C.value).getDate()!==We(e.value).getDate():C.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(C.value)?e.value.length!==C.value.length:C.value!==e.value:false),ot=computed(()=>Ue.value),st=computed(()=>Dt({field:{$rules:I.value}})),ut=computed(()=>G.value?M.value&&!(ge.value||Ie.value):!(ge.value||Ie.value)),Ie=computed(()=>k.value||!le.value?Object.entries(I.value).some(([oe,Q])=>Q.$pending):false),ge=computed(()=>d?.value?.length||$?.value?.length?true:Me.value?false:!le.value||le.value&&k.value?Object.entries(I.value).some(([oe,Q])=>!Q.$valid):false),it=computed(()=>l),Me=computed(()=>!!(ee(I.value)&&!m)),ct=computed(()=>d?.value?.length||Me.value?false:g.value&&!ee(e.value)&&!P.value?m?!$?.value?.length:Object.values(I.value).some(Q=>Q.$active)?Object.values(I.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),Ut=computed(()=>Object.entries(I.value).some(([oe,Q])=>Q.$haveAsync));function Wt(){F?.fields&&Object.entries(F.fields).forEach(([oe,Q])=>{let Rt=effectScope();ft[oe]=Rt.run(()=>{let dt=ref();return watchEffect(()=>{dt.value=Q(reactive({$dirty:g,$externalErrors:d?.value??[],$value:e,$silentValue:z,$rules:I,$error:me,$pending:Ie,$invalid:ge,$correct:ct,$errors:at,$ready:ut,$silentErrors:lt,$anyDirty:M,$tooltips:st,$name:it,$inactive:Me,$edited:Ue,$anyEdited:ot}));}),dt}),w.push(Rt);});}let ft={};return watch(ge,oe=>{oe||(k.value=false);}),{$error:me,$pending:Ie,$invalid:ge,$correct:ct,$debounce:x,$lazy:ue,$errors:at,$ready:ut,$silentErrors:lt,$rewardEarly:le,$autoDirty:G,$clearExternalErrorsOnChange:pe,$anyDirty:M,$edited:Ue,$anyEdited:ot,$name:it,$haveAnyAsyncRule:Ut,$shortcuts:ft,$validating:P,$tooltips:st,$dirty:g,triggerPunishment:k,processShortcuts:Wt,$silentValue:z,$inactive:Me}}),W(),D=watch(a.$dirty,g=>{f.setDirtyEntry(n,g),Object.values(I.value).forEach(k=>{k.$fieldDirty=g;});}),S=watch([a.$error,a.$correct,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(g=>{g.$fieldError=a.$error.value,g.$fieldInvalid=a.$invalid.value,g.$fieldPending=a.$pending.value,g.$fieldCorrect=a.$correct.value;});}),E=watch(a.$invalid,g=>{a.$rewardEarly.value&&!g&&(a.triggerPunishment.value=false);}),i=watch(a.$haveAnyAsyncRule,h);}function W(){v=watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&s(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&c();},{deep:V?true:Ve?1:true,flush:"post"});}function X(){Object.values(I.value).forEach(g=>{g.$parse();});}let I=ref({}),B=ref({});s();function de(g,k){if(c(),a.$dirty.value=false,a.triggerPunishment.value=false,f.setDirtyEntry(n,false),!k)if(g?.toInitialState)A(),e.value=U(C);else if(g?.toState){A();let M;typeof g?.toState=="function"?M=g?.toState():M=g?.toState,C.value=U(M),e.value=U(M);}else C.value=ae(e.value)?U(e.value):Array.isArray(e.value)?[...e.value]:e.value;k||Object.entries(I.value).forEach(([M,x])=>{x.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(M=>M.$parse()),k||s();}function ye(g=true,k=false){a.$dirty.value||(a.$dirty.value=true),k&&g?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o():g&&o();}async function ie(){try{let g=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {valid:!a.$error.value,data:g};return m?{valid:!$?.value?.length,data:g}:ee(I.value)?{valid:!0,data:g}:{valid:(await Promise.allSettled(Object.entries(I.value).map(([x,ue])=>ue.$parse()))).every(x=>x.status==="fulfilled"?x.value===!0:!1),data:g}}catch{return {valid:false,data:e.value}}}function u(g=true){return a.$dirty.value?e.value:g?{_null:true}:null}function c(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&o();let{$shortcuts:R,$validating:T,$autoDirty:j,$rewardEarly:H,$clearExternalErrorsOnChange:y,$haveAnyAsyncRule:_,$debounce:K,$lazy:Z,triggerPunishment:Y,...se}=a;return reactive({...se,$externalErrors:d,$value:e,$rules:I,...R,$reset:de,$touch:ye,$validate:ie,$unwatch:A,$watch:q,$extractDirtyFields:u,$clearExternalErrors:c})}function Qe({$id:e,path:t,index:r,options:n,storage:l,stateValue:f,customMessages:p,rules:d,externalErrors:$,schemaErrors:m,initialState:b,shortcuts:V,fieldName:C,schemaMode:F}){let O=d.$key?d.$key:Se(),a=`${t}.${String(O)}`;typeof f.value=="object"&&f.value!=null&&(f.value.$id?a=`${t}.${f.value.$id}`:Object.defineProperties(f.value,{$id:{value:O,enumerable:false,configurable:false,writable:false}}));let w=toRef($?.value??[],r),v=computed(()=>m?.value?.[r]),E=Ee({state:f,rulesDef:toRef(()=>d),customMessages:p,path:a,storage:l,options:n,externalErrors:w,schemaErrors:v,initialState:b,shortcuts:V,fieldName:C,schemaMode:F});if(E){let D=f.value?.$id;E.$id=D??String(O),l.addArrayStatus(e,E.$id,E);}return E}function Pt({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:f,externalErrors:p,schemaErrors:d,schemaMode:$,initialState:m,shortcuts:b,fieldName:V}){let C=effectScope(),F,O=effectScope(),a,w=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let v=ref(),E=ref(e.value),D,i=ref({}),S=l.getCollectionsEntry(n);a=O.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(c=>typeof c!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(c=>Oe(c)||typeof c=="function"):false)})),o(),A();function o(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(v.value=Se(),Object.defineProperties(e.value,{$id:{value:v.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(v.value=e.value.$id)),E.value=i.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?S.value=e.value.filter(u=>typeof u=="object").map((u,c)=>{let{scope:R,unwrapped:T}=qe(t.value.$each,toRef(()=>u),c);R&&w.push(R);let j=toRef(m.value??[],c),H=toRef(p?.value??{},"$each"),y=computed(()=>d?.value?.$each),_=Qe({$id:v.value,path:n,customMessages:r,rules:T??{},stateValue:toRef(()=>u),index:c,options:f,storage:l,externalErrors:H,schemaErrors:y,initialState:j,shortcuts:b,fieldName:V,schemaMode:$});return _||null}).filter(u=>!!u):S.value=[],i.value=_e({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:f,externalErrors:toRef(p?.value??{},"$self"),schemaErrors:computed(()=>d?.value?.$self),$isArray:true,initialState:m,shortcuts:b,fieldName:V,schemaMode:$});}function s(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let u=U(S.value);S.value=e.value.filter(c=>typeof c=="object").map((c,R)=>{let T=toRef(()=>c);if(c.$id&&S.value.find(j=>j.$id===c.$id)){let j=l.getArrayStatus(v.value,c.$id);return j?(j.$value=T,j):null}else {let{scope:j,unwrapped:H}=qe(t.value.$each,T,R);j&&w.push(j);let y=toRef(p?.value??{},"$each"),_=computed(()=>d?.value?.$each??[]),K=Qe({$id:v.value,path:n,customMessages:r,rules:H??{},stateValue:T,index:R,options:f,storage:l,externalErrors:y,schemaErrors:_,initialState:toRef(m.value??[],R),shortcuts:b,fieldName:V,schemaMode:$});return K||null}}).filter(c=>!!c),u.filter(c=>!e.value?.find(R=>c.$id===R.$id)).forEach((c,R)=>{l.deleteArrayStatus(v.value,R.toString());});}else S.value=[];}function h(){D=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?o():s();},{deep:Ve?1:true,flush:"pre"});}function A(){h(),C=effectScope(),F=C.run(()=>{let u=computed({get:()=>e.value,set(x){D(),e.value=x,h();}}),c=computed(()=>i.value.$dirty&&(!S.value.length||S.value.every(x=>x.$dirty))),R=computed(()=>i.value.$anyDirty||S.value.some(x=>x.$anyDirty)),T=computed(()=>i.value.$invalid||S.value.some(x=>x.$invalid)),j=computed(()=>(ee(i.value.$rules)?true:i.value.$correct)&&(!S.value.length||S.value.every(x=>x.$correct||x.$anyDirty&&!x.$invalid))),H=computed(()=>i.value.$error||S.value.some(x=>x.$error)),y=computed(()=>!(T.value||_.value)),_=computed(()=>i.value.$pending||S.value.some(x=>x.$pending)),K=computed(()=>!!S.value.length&&S.value.every(x=>x.$edited)),Z=computed(()=>i.value.$anyEdited||S.value.some(x=>x.$anyEdited)),Y=computed(()=>({$self:i.value.$errors,$each:S.value.map(x=>x.$errors)})),se=computed(()=>({$self:i.value.$silentErrors,$each:S.value.map(x=>x.$silentErrors)})),g=computed(()=>V);function k(){b?.collections&&Object.entries(b?.collections).forEach(([x,ue])=>{let le=effectScope();M[x]=le.run(()=>{let pe=ref();return watchEffect(()=>{pe.value=ue(reactive({$dirty:c,$error:H,$silentValue:u,$pending:_,$invalid:T,$correct:j,$errors:Y,$ready:y,$silentErrors:se,$anyDirty:R,$name:g,$each:S,$self:i,$value:e,$edited:K,$anyEdited:Z}));}),pe}),w.push(le);});}let M={};return k(),{$dirty:c,$anyDirty:R,$invalid:T,$correct:j,$error:H,$pending:_,$errors:Y,$silentErrors:se,$ready:y,$name:g,$shortcuts:M,$silentValue:u,$edited:K,$anyEdited:Z}}),a.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function q(){D&&D(),i.value&&i.value.$unwatch(),S.value&&S.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),C.stop(),C=effectScope(),O.stop(),O=effectScope(true),w.forEach(u=>u.stop()),w=[];}function W(u=true,c=false){i.value.$touch(u,c),S.value.forEach(R=>{R.$touch(u,c);});}function X(u,c){if(q(),!c)if(u?.toInitialState)e.value=U(m.value);else if(u?.toState){let R;typeof u?.toState=="function"?R=u?.toState():R=u?.toState,m.value=U(R),e.value=U(R);}else m.value=U(e.value);i.value.$reset(),S.value.forEach(R=>{R.$reset(u,true);}),c||o();}async function I(){let u=e.value;try{return {valid:(await Promise.allSettled([i.value.$validate(),...S.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.valid===!0:!1),data:u}}catch{return {valid:false,data:u}}}function B(){i.value.$clearExternalErrors(),S.value.forEach(u=>{u.$clearExternalErrors();});}function de(u=true){let c=S.value.map(R=>{if(Tt(R))return R.$extractDirtyFields(u)});return u&&c.every(R=>ee(R))&&(c=[]),c}let{$shortcuts:ye,...ie}=F;return reactive({$self:i,...ie,...ye,$each:S,$value:e,$validate:I,$unwatch:q,$watch:A,$touch:W,$reset:X,$extractDirtyFields:de,$clearExternalErrors:B})}function Ne({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:f,rootSchemaErrors:p,validationGroups:d,initialState:$,fieldName:m,...b}){let V=effectScope(),C,F=[],O=null,a=null,w=null,v=null;async function D(u=true){let c=Object.entries(e.value),R=Object.fromEntries(c.filter(([y,_])=>!!_).map(([y,_])=>{if(_){let K=toRef(t.value??{},y),Z=toRef(()=>_),Y=toRef(l?.value??{},y),se=computed(()=>f?.value?.[y]),g=toRef($?.value??{},y);return [y,Ee({state:K,rulesDef:Z,path:r?`${r}.${y}`:y,externalErrors:Y,schemaErrors:se,initialState:g,fieldName:y,...b})]}return []})),T=Object.fromEntries(Object.entries(unref(l)??{}).filter(([y,_])=>!(y in e.value)&&!!_).map(([y])=>{let _=toRef(t.value??{},y),K=toRef(l?.value??{},y),Z=computed(()=>f?.value?.[y]),Y=toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:y,...b})]})),j=Object.fromEntries(Object.entries(unref(f)??{}).map(([y])=>{let _=toRef(t.value??{},y),K=toRef(l?.value??{},y),Z=computed(()=>f?.value?.[y]),Y=toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:y,...b})]})),H=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(T??{}))&&!(y in(j??{}))).map(([y])=>{let _=toRef(t.value??{},y),K=toRef(l?.value??{},y),Z=computed(()=>f?.value?.[y]),Y=toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:y,...b})]}));i.value={...R,...T,...j,...H},u&&s();}let i=b.storage.getFieldsEntry(r);D();function S(){l&&(w=watch(l,()=>{h(),D();},{deep:true}));}function o(){v=watch(t,()=>{h(),D(),W(true,true);},{flush:"sync"});}function s(){n&&(O?.(),O=watch(n,()=>{h(),D();},{deep:true,flush:"post"}),S()),p&&(a?.(),a=watch(p,()=>{h(),D();},{deep:true,flush:"post"})),o(),C=V.run(()=>{let u=computed({get:()=>t.value,set(G){h(),t.value=G,D();}}),c=computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([G,P])=>P?.$dirty)),R=computed(()=>Object.entries(i.value).some(([G,P])=>P?.$anyDirty)),T=computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).some(([G,P])=>P?.$invalid)),j=computed(()=>{let G=Object.entries(i.value).filter(([P,z])=>xt(z)?!z.$inactive:true);return G.length?G.every(([P,z])=>z?.$correct||z.$anyDirty&&!z.$invalid):false}),H=computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).some(([G,P])=>P?.$error)),y=computed(()=>unref(b.options.rewardEarly)!=null?unref(b.options.rewardEarly):false),_=computed(()=>unref(b.options.autoDirty)!=null?unref(b.options.autoDirty):!y.value),K=computed(()=>_.value?R.value&&!(T.value||Y.value):!(T.value||Y.value)),Z=ref(false),Y=computed(()=>Z.value||Object.entries(i.value).some(([G,P])=>P?.$pending)),se=computed(()=>Object.fromEntries(Object.entries(i.value).map(([G,P])=>[G,P?.$errors]))),g=computed(()=>Object.fromEntries(Object.entries(i.value).map(([G,P])=>[G,P?.$silentErrors]))),k=computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([G,P])=>P?.$edited)),M=computed(()=>Object.entries(i.value).some(([G,P])=>P?.$anyEdited)),x=computed(()=>m);function ue(){b.shortcuts?.nested&&Object.entries(b.shortcuts.nested).forEach(([G,P])=>{let z=effectScope();pe[G]=z.run(()=>{let me=ref();return watchEffect(()=>{me.value=P(reactive({$dirty:c,$value:t,$silentValue:u,$error:H,$pending:Y,$invalid:T,$correct:j,$ready:K,$anyDirty:R,$name:x,$silentErrors:g,$errors:se,$fields:i,$edited:k,$anyEdited:M}));}),me}),F.push(z);});}let le=computed({get:()=>d?Object.fromEntries(Object.entries(d?.(i.value)??{}).map(([G,P])=>P.length?[G,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(z=>[z,mt(P,z)])),...Object.fromEntries(["$errors","$silentErrors"].map(z=>[z,yt(P,z)]))}]:[])):{},set(){}}),pe={};return ue(),{$dirty:c,$anyDirty:R,$invalid:T,$correct:j,$error:H,$pending:Y,$errors:se,$silentErrors:g,$ready:K,$name:x,$shortcuts:pe,$groups:le,$silentValue:u,$edited:k,$anyEdited:M,$localPending:Z}});}function h(){O?.(),w?.(),v?.(),a?.(),F=[],C={},i.value&&Object.entries(i.value).forEach(([u,c])=>{c.$unwatch();});}function A(){Object.entries(i.value).forEach(([u,c])=>{c.$clearExternalErrors();});}function q(u,c){if(w?.(),h(),!c)if(u?.toInitialState)t.value=U({...$.value??{}});else if(u?.toState){let R;typeof u?.toState=="function"?R=u?.toState():R=u?.toState,$.value=U(R),t.value=U(R);}else $.value=U(t.value);Object.values(i.value).forEach(R=>{R.$reset(u,true);}),S(),c||D();}function W(u=true,c=false){Object.values(i.value).forEach(R=>{R.$touch(u,c);});}function X(u){return u.filter(([c,R])=>ae(R)?!(R&&typeof R=="object"&&"_null"in R)&&!ee(R):Array.isArray(R)?R.length:true)}function I(u=true){let c=Object.entries(i.value).map(([R,T])=>[R,T.$extractDirtyFields(u)]);return u&&(c=X(c)),Object.fromEntries(c)}async function B(){try{if(b.schemaMode)return b.onValidate?(W(!1),C.$localPending.value=!0,b.onValidate()):{valid:!1,data:t.value};{let u=t.value;return {valid:(await Promise.allSettled(Object.values(i.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.valid===!0:!1),data:u}}}catch{return {valid:false,data:t.value}}finally{C.$localPending.value=false;}}let{$shortcuts:de,$localPending:ye,...ie}=C;return reactive({...ie,...de,$fields:i,$value:t,$reset:q,$touch:W,$validate:B,$unwatch:h,$watch:s,$clearExternalErrors:A,$extractDirtyFields:I})}function Ee({rulesDef:e,...t}){if(bt(e,t.state))return Pt({rulesDef:e,...t});if(ht(t.state,e)){if(je(t.state))return Ne({rulesDef:e,...t});{let n=effectScope().run(()=>{let p=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,d=>{p.value=d;},{deep:true}),watch(p,d=>{t.state.value=d;},{deep:true}),{fakeState:p}}),{state:l,...f}=t;return Ne({rulesDef:e,...f,state:n.fakeState})}}else if(Et(e))return _e({rulesDef:e,...t})}function Ce({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:f,schemaErrors:p,schemaMode:d=false,onValidate:$}){let m=ze(),b=ref();return b.value=Ne({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:f,fieldName:"root",path:"",schemaErrors:p,rootSchemaErrors:p,schemaMode:d,onValidate:$}),getCurrentScope()&&onScopeDispose(()=>{b.value?.$unwatch();}),reactive({regle:b})}function et(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(f,p,d){let $=isRef(p)?p:computed(typeof p=="function"?p:()=>p),m={...n,...d},b=isRef(f)?f:ref(f),V=ref({...U(b.value)});return {r$:Ce({scopeRules:$,state:b,options:m,initialState:V,customRules:e,shortcuts:r}).regle}}return l}var Ge=et();function tt(){function e(t,r){return r}return e}var rt=tt();function jt({rules:e,modifiers:t,shortcuts:r}){let n=et(e,t,r),l=tt();return {useRegle:n,inferRules:l}}function Ae(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(o=>o.$value):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$value])),set:o=>{r||typeof o=="object"&&Object.entries(o).forEach(([s,h])=>e[s].$value=h);}}),l=computed({get:()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentValue])),set:o=>{typeof o=="object"&&Object.entries(o).forEach(([s,h])=>e[s].$silentValue=h);}}),f=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$dirty)}),p=computed(()=>Object.entries(e).some(([o,s])=>s?.$anyDirty)),d=computed(()=>Object.entries(e).some(([o,s])=>s?.$invalid)),$=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$correct||h.$anyDirty&&!h.$invalid)}),m=computed(()=>Object.entries(e).some(([o,s])=>s?.$error)),b=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$ready)}),V=computed(()=>Object.entries(e).some(([o,s])=>s?.$pending)),C=computed(()=>r?Object.entries(e).map(([o,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$errors]))),F=computed(()=>r?Object.entries(e).map(([o,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentErrors]))),O=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$edited)}),a=computed(()=>Object.entries(e).some(([o,s])=>s?.$anyEdited)),w=computed(()=>r?Object.values(e):e);function v(o){Object.values(e).forEach(s=>{s.$reset(o);});}function E(){Object.values(e).forEach(o=>{o.$touch();});}function D(o=true){return Object.values(e).map(s=>s.$extractDirtyFields(o))}function i(){Object.values(e).forEach(o=>{o.$clearExternalErrors();});}async function S(){try{let o=n.value;return {valid:(await Promise.allSettled(Object.values(e).map(A=>A.$validate()))).every(A=>A.status==="fulfilled"?A.value.valid===!0:!1),data:o}}catch{return {valid:false,data:n.value}}}return reactive({...!r&&{$silentValue:l},$errors:C,$silentErrors:F,$instances:w,$value:n,$dirty:f,$anyDirty:p,$invalid:d,$correct:$,$error:m,$pending:V,$ready:b,$edited:O,$anyEdited:a,$reset:v,$touch:E,$validate:S,$extractDirtyFields:D,$clearExternalErrors:i})}function _t(e){function t(r){let n=computed(()=>toValue(r));p();let l=ref(d(e.value)),f=reactive({r$:l});function p(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}watch(n,p),watch(e,$=>{l.value=d($);},{deep:true});function d($){if(n.value){let m=$[n.value]??{};return Ae(m,true)}else return Ae($["~~global"]??{},true)}return {r$:f.r$}}return {useCollectScope:t}}function Gt(e,t){let r=t??Ge;return {useScopedRegle:(l,f,p)=>{let{namespace:d,...$}=p??{},m=computed(()=>toValue(d)),b=ref(`${Object.keys(e.value).length+1}-${Se()}`),V=computed(()=>`instance-${b.value}`),{r$:C}=r(l,f,$);O(),$t(F),watch(m,(a,w)=>{F(w),O();}),getCurrentInstance()&&onMounted(()=>{let a=getCurrentInstance();typeof window<"u"&&a?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(a?.proxy?.$el?.parentElement)&&F();});function F(a){let w=a??m.value;w?e.value[w]&&delete e.value[w][V.value]:e.value["~~global"][V.value]&&delete e.value["~~global"][V.value];}function O(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][V.value]=C):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][V.value]=C);}return {r$:C,dispose:F,register:O}}}}function nt(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):St(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=Gt(r,e?.customUseRegle),{useCollectScope:l}=_t(r);return {useScopedRegle:n,useCollectScope:l}}
2
2
  export{Le as InternalRuleType,He as createRule,nt as createScopedUseRegle,jt as defineRegleConfig,rt as inferRules,Ae as mergeRegles,te as unwrapRuleParameters,Ge as useRegle,Ce as useRootStorage};
@@ -613,7 +613,7 @@ function createReactiveRuleStatus({
613
613
  });
614
614
  $unwatchState = watch(scopeState?.$params, () => {
615
615
  if (modifiers.$autoDirty.value || modifiers.$rewardEarly.value && scopeState.$fieldError.value) {
616
- $validate();
616
+ $parse();
617
617
  }
618
618
  });
619
619
  }
@@ -659,7 +659,7 @@ function createReactiveRuleStatus({
659
659
  return ruleResult;
660
660
  }
661
661
  const $computeAsyncDebounce = debounce(computeAsyncResult, $debounce ?? 200);
662
- async function $validate() {
662
+ async function $parse() {
663
663
  try {
664
664
  $validating.value = true;
665
665
  let ruleResult = false;
@@ -711,7 +711,7 @@ function createReactiveRuleStatus({
711
711
  $metadata,
712
712
  $haveAsync,
713
713
  $validating,
714
- $validate,
714
+ $parse,
715
715
  $unwatch,
716
716
  $watch,
717
717
  $reset
@@ -1092,7 +1092,7 @@ function createReactiveFieldStatus({
1092
1092
  }
1093
1093
  function $commitHandler() {
1094
1094
  Object.values($rules.value).forEach((rule) => {
1095
- rule.$validate();
1095
+ rule.$parse();
1096
1096
  });
1097
1097
  }
1098
1098
  const $rules = ref({});
@@ -1128,7 +1128,7 @@ function createReactiveFieldStatus({
1128
1128
  }
1129
1129
  if (!scopeState.$lazy.value && scopeState.$autoDirty.value) {
1130
1130
  Object.values($rules.value).forEach((rule) => {
1131
- return rule.$validate();
1131
+ return rule.$parse();
1132
1132
  });
1133
1133
  }
1134
1134
  if (!fromParent) {
@@ -1154,16 +1154,16 @@ function createReactiveFieldStatus({
1154
1154
  if (!scopeState.$dirty.value) {
1155
1155
  scopeState.$dirty.value = true;
1156
1156
  } else if (scopeState.$autoDirty.value && scopeState.$dirty.value && !scopeState.$pending.value) {
1157
- return { result: !scopeState.$error.value, data };
1157
+ return { valid: !scopeState.$error.value, data };
1158
1158
  }
1159
1159
  if (schemaMode) {
1160
- return { result: !schemaErrors?.value?.length, data };
1160
+ return { valid: !schemaErrors?.value?.length, data };
1161
1161
  } else if (isEmpty($rules.value)) {
1162
- return { result: true, data };
1162
+ return { valid: true, data };
1163
1163
  }
1164
1164
  const results = await Promise.allSettled(
1165
1165
  Object.entries($rules.value).map(([key, rule]) => {
1166
- return rule.$validate();
1166
+ return rule.$parse();
1167
1167
  })
1168
1168
  );
1169
1169
  const validationResults = results.every((value) => {
@@ -1173,9 +1173,9 @@ function createReactiveFieldStatus({
1173
1173
  return false;
1174
1174
  }
1175
1175
  });
1176
- return { result: validationResults, data };
1176
+ return { valid: validationResults, data };
1177
1177
  } catch (e) {
1178
- return { result: false, data: state.value };
1178
+ return { valid: false, data: state.value };
1179
1179
  }
1180
1180
  }
1181
1181
  function $extractDirtyFields(filterNullishValues = true) {
@@ -1637,20 +1637,20 @@ function createReactiveCollectionStatus({
1637
1637
  try {
1638
1638
  const results = await Promise.allSettled([
1639
1639
  $selfStatus.value.$validate(),
1640
- ...$eachStatus.value.map((rule) => {
1641
- return rule.$validate();
1640
+ ...$eachStatus.value.map((status) => {
1641
+ return status.$validate();
1642
1642
  })
1643
1643
  ]);
1644
1644
  const validationResults = results.every((value) => {
1645
1645
  if (value.status === "fulfilled") {
1646
- return value.value.result === true;
1646
+ return value.value.valid === true;
1647
1647
  } else {
1648
1648
  return false;
1649
1649
  }
1650
1650
  });
1651
- return { result: validationResults, data };
1651
+ return { valid: validationResults, data };
1652
1652
  } catch (e) {
1653
- return { result: false, data };
1653
+ return { valid: false, data };
1654
1654
  }
1655
1655
  }
1656
1656
  function $clearExternalErrors() {
@@ -1884,7 +1884,7 @@ function createReactiveNestedStatus({
1884
1884
  });
1885
1885
  });
1886
1886
  const $invalid = computed(() => {
1887
- return Object.entries($fields.value).some(([_, statusOrField]) => {
1887
+ return !!Object.entries($fields.value).length && Object.entries($fields.value).some(([_, statusOrField]) => {
1888
1888
  return statusOrField?.$invalid;
1889
1889
  });
1890
1890
  });
@@ -1902,7 +1902,11 @@ function createReactiveNestedStatus({
1902
1902
  }
1903
1903
  return false;
1904
1904
  });
1905
- const $error = computed(() => $anyDirty.value && !$pending.value && $invalid.value);
1905
+ const $error = computed(() => {
1906
+ return !!Object.entries($fields.value).length && Object.entries($fields.value).some(([_, statusOrField]) => {
1907
+ return statusOrField?.$error;
1908
+ });
1909
+ });
1906
1910
  const $rewardEarly = computed(() => {
1907
1911
  if (unref(commonArgs.options.rewardEarly) != null) {
1908
1912
  return unref(commonArgs.options.rewardEarly);
@@ -2120,7 +2124,7 @@ function createReactiveNestedStatus({
2120
2124
  scopeState.$localPending.value = true;
2121
2125
  return commonArgs.onValidate();
2122
2126
  } else {
2123
- return { result: false, data: state.value };
2127
+ return { valid: false, data: state.value };
2124
2128
  }
2125
2129
  } else {
2126
2130
  const data = state.value;
@@ -2131,15 +2135,15 @@ function createReactiveNestedStatus({
2131
2135
  );
2132
2136
  const validationResults = results.every((value) => {
2133
2137
  if (value.status === "fulfilled") {
2134
- return value.value.result === true;
2138
+ return value.value.valid === true;
2135
2139
  } else {
2136
2140
  return false;
2137
2141
  }
2138
2142
  });
2139
- return { result: validationResults, data };
2143
+ return { valid: validationResults, data };
2140
2144
  }
2141
2145
  } catch (e) {
2142
- return { result: false, data: state.value };
2146
+ return { valid: false, data: state.value };
2143
2147
  } finally {
2144
2148
  scopeState.$localPending.value = false;
2145
2149
  }
@@ -2435,14 +2439,14 @@ function mergeRegles(regles, _scoped) {
2435
2439
  );
2436
2440
  const validationResults = results.every((value) => {
2437
2441
  if (value.status === "fulfilled") {
2438
- return value.value.result === true;
2442
+ return value.value.valid === true;
2439
2443
  } else {
2440
2444
  return false;
2441
2445
  }
2442
2446
  });
2443
- return { result: validationResults, data };
2447
+ return { valid: validationResults, data };
2444
2448
  } catch (e) {
2445
- return { result: false, data: $value.value };
2449
+ return { valid: false, data: $value.value };
2446
2450
  }
2447
2451
  }
2448
2452
  return reactive({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@regle/core",
3
- "version": "0.9.0",
3
+ "version": "0.10.0",
4
4
  "description": "Type safe form validation library for Vue 3",
5
5
  "peerDependencies": {
6
6
  "pinia": ">=2.2.5",