@regle/core 1.0.5 → 1.0.6

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.
@@ -496,6 +496,36 @@ function extractRulesTooltips({ field }) {
496
496
  }
497
497
  }, []);
498
498
  }
499
+ function isCollectionError(errors) {
500
+ return isObject(errors) && "$each" in errors;
501
+ }
502
+ function flatErrors(errors, options) {
503
+ const { includePath = false } = options ?? {};
504
+ if (Array.isArray(errors) && errors.every((err) => !isObject(err))) {
505
+ return errors;
506
+ } else if (isCollectionError(errors)) {
507
+ const selfErrors = includePath ? errors.$self?.map((err) => ({ error: err, path: "" })) ?? [] : errors.$self ?? [];
508
+ const eachErrors = errors.$each?.map((err) => interateErrors(err, includePath)) ?? [];
509
+ return selfErrors?.concat(eachErrors.flat());
510
+ } else {
511
+ return Object.entries(errors).map(([key, value]) => interateErrors(value, includePath, [key])).flat();
512
+ }
513
+ }
514
+ function interateErrors(errors, includePath = false, _path) {
515
+ const path = includePath && !_path ? [] : _path;
516
+ if (Array.isArray(errors) && errors.every((err) => !isObject(err))) {
517
+ if (includePath) {
518
+ return errors.map((err) => ({ error: err, path: path?.join(".") ?? "" }));
519
+ }
520
+ return errors;
521
+ } else if (isCollectionError(errors)) {
522
+ const selfErrors = path?.length ? errors.$self?.map((err) => ({ error: err, path: path.join(".") })) ?? [] : errors.$self ?? [];
523
+ const eachErrors = errors.$each?.map((err, index) => interateErrors(err, includePath, path?.concat(index.toString()))) ?? [];
524
+ return selfErrors?.concat(eachErrors.flat());
525
+ } else {
526
+ return Object.entries(errors).map(([key, value]) => interateErrors(value, includePath, path?.concat(key))).flat();
527
+ }
528
+ }
499
529
  function createReactiveRuleStatus({
500
530
  customMessages,
501
531
  rule,
@@ -2627,6 +2657,7 @@ exports.InternalRuleType = InternalRuleType;
2627
2657
  exports.createRule = createRule;
2628
2658
  exports.createScopedUseRegle = createScopedUseRegle;
2629
2659
  exports.defineRegleConfig = defineRegleConfig;
2660
+ exports.flatErrors = flatErrors;
2630
2661
  exports.inferRules = inferRules;
2631
2662
  exports.mergeRegles = mergeRegles;
2632
2663
  exports.unwrapRuleParameters = unwrapRuleParameters;
@@ -1203,6 +1203,21 @@ declare function useRootStorage({ initialState, options, scopeRules, state, cust
1203
1203
  regle: $InternalRegleStatusType | undefined;
1204
1204
  };
1205
1205
 
1206
+ /**
1207
+ * Converts an nested $errors object to a flat array of string errors
1208
+ *
1209
+ * Can also flatten to an array containing the path of each error with the options.includePath
1210
+ */
1211
+ declare function flatErrors(errors: $InternalRegleErrors, options: {
1212
+ includePath: true;
1213
+ }): {
1214
+ error: string;
1215
+ path: string;
1216
+ }[];
1217
+ declare function flatErrors(errors: $InternalRegleErrors, options?: {
1218
+ includePath?: false;
1219
+ }): string[];
1220
+
1206
1221
  type InferRegleRoot<T extends (...args: any[]) => Regle<any, any, any, any>> = T extends (...args: any[]) => infer U ? U extends Regle<any, any, any, any> ? Prettify<U['r$']> : never : never;
1207
1222
  type InferRegleRules<T extends useRegleFn<any, any>> = T extends useRegleFn<infer U, any> ? UnwrapRuleTree<Partial<U> & Partial<DefaultValidators>> : {};
1208
1223
  type InferRegleShortcuts<T extends useRegleFn<any, any>> = T extends useRegleFn<any, infer U> ? U : {};
@@ -2420,4 +2435,4 @@ declare const useScopedRegle: useRegleFn<Partial<AllRulesDeclarations>, never, {
2420
2435
  namespace?: MaybeRefOrGetter<string>;
2421
2436
  }>;
2422
2437
 
2423
- export { type $InternalRegleStatus, type AllRulesDeclarations, type DeepMaybeRef, type DeepReactiveState, type FormRuleDeclaration, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleShortcuts, type InferRegleStatusType, type InlineRuleDeclaration, InternalRuleType, type JoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type MaybeInput, type MaybeOutput, type MergedRegles, type MismatchInfo, type NoInferLegacy, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type ReglePartialRuleTree, type RegleResult, type RegleRoot, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleMetadataExtended, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleTypeReturn, type RegleRuleWithParamsDefinition, type RegleShortcutDefinition, type RegleSingleField, type RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, type ResolvedRegleBehaviourOptions, type ScopedInstancesRecord, type ScopedInstancesRecordLike, type SuperCompatibleRegleCollectionErrors, type SuperCompatibleRegleCollectionStatus, type SuperCompatibleRegleFieldStatus, type SuperCompatibleRegleResult, type SuperCompatibleRegleRoot, type SuperCompatibleRegleRuleStatus, type SuperCompatibleRegleStatus, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, createRule, createScopedUseRegle, defineRegleConfig, inferRules, mergeRegles, unwrapRuleParameters, useCollectScope, useRegle, useRootStorage, useScopedRegle };
2438
+ export { type $InternalRegleStatus, type AllRulesDeclarations, type DeepMaybeRef, type DeepReactiveState, type FormRuleDeclaration, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleShortcuts, type InferRegleStatusType, type InlineRuleDeclaration, InternalRuleType, type JoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type MaybeInput, type MaybeOutput, type MergedRegles, type MismatchInfo, type NoInferLegacy, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type ReglePartialRuleTree, type RegleResult, type RegleRoot, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleMetadataExtended, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleTypeReturn, type RegleRuleWithParamsDefinition, type RegleShortcutDefinition, type RegleSingleField, type RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, type ResolvedRegleBehaviourOptions, type ScopedInstancesRecord, type ScopedInstancesRecordLike, type SuperCompatibleRegleCollectionErrors, type SuperCompatibleRegleCollectionStatus, type SuperCompatibleRegleFieldStatus, type SuperCompatibleRegleResult, type SuperCompatibleRegleRoot, type SuperCompatibleRegleRuleStatus, type SuperCompatibleRegleStatus, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, createRule, createScopedUseRegle, defineRegleConfig, flatErrors, inferRules, mergeRegles, unwrapRuleParameters, useCollectScope, useRegle, useRootStorage, useScopedRegle };
@@ -1203,6 +1203,21 @@ declare function useRootStorage({ initialState, options, scopeRules, state, cust
1203
1203
  regle: $InternalRegleStatusType | undefined;
1204
1204
  };
1205
1205
 
1206
+ /**
1207
+ * Converts an nested $errors object to a flat array of string errors
1208
+ *
1209
+ * Can also flatten to an array containing the path of each error with the options.includePath
1210
+ */
1211
+ declare function flatErrors(errors: $InternalRegleErrors, options: {
1212
+ includePath: true;
1213
+ }): {
1214
+ error: string;
1215
+ path: string;
1216
+ }[];
1217
+ declare function flatErrors(errors: $InternalRegleErrors, options?: {
1218
+ includePath?: false;
1219
+ }): string[];
1220
+
1206
1221
  type InferRegleRoot<T extends (...args: any[]) => Regle<any, any, any, any>> = T extends (...args: any[]) => infer U ? U extends Regle<any, any, any, any> ? Prettify<U['r$']> : never : never;
1207
1222
  type InferRegleRules<T extends useRegleFn<any, any>> = T extends useRegleFn<infer U, any> ? UnwrapRuleTree<Partial<U> & Partial<DefaultValidators>> : {};
1208
1223
  type InferRegleShortcuts<T extends useRegleFn<any, any>> = T extends useRegleFn<any, infer U> ? U : {};
@@ -2420,4 +2435,4 @@ declare const useScopedRegle: useRegleFn<Partial<AllRulesDeclarations>, never, {
2420
2435
  namespace?: MaybeRefOrGetter<string>;
2421
2436
  }>;
2422
2437
 
2423
- export { type $InternalRegleStatus, type AllRulesDeclarations, type DeepMaybeRef, type DeepReactiveState, type FormRuleDeclaration, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleShortcuts, type InferRegleStatusType, type InlineRuleDeclaration, InternalRuleType, type JoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type MaybeInput, type MaybeOutput, type MergedRegles, type MismatchInfo, type NoInferLegacy, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type ReglePartialRuleTree, type RegleResult, type RegleRoot, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleMetadataExtended, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleTypeReturn, type RegleRuleWithParamsDefinition, type RegleShortcutDefinition, type RegleSingleField, type RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, type ResolvedRegleBehaviourOptions, type ScopedInstancesRecord, type ScopedInstancesRecordLike, type SuperCompatibleRegleCollectionErrors, type SuperCompatibleRegleCollectionStatus, type SuperCompatibleRegleFieldStatus, type SuperCompatibleRegleResult, type SuperCompatibleRegleRoot, type SuperCompatibleRegleRuleStatus, type SuperCompatibleRegleStatus, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, createRule, createScopedUseRegle, defineRegleConfig, inferRules, mergeRegles, unwrapRuleParameters, useCollectScope, useRegle, useRootStorage, useScopedRegle };
2438
+ export { type $InternalRegleStatus, type AllRulesDeclarations, type DeepMaybeRef, type DeepReactiveState, type FormRuleDeclaration, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleShortcuts, type InferRegleStatusType, type InlineRuleDeclaration, InternalRuleType, type JoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type MaybeInput, type MaybeOutput, type MergedRegles, type MismatchInfo, type NoInferLegacy, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type ReglePartialRuleTree, type RegleResult, type RegleRoot, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleMetadataExtended, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleTypeReturn, type RegleRuleWithParamsDefinition, type RegleShortcutDefinition, type RegleSingleField, type RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, type ResolvedRegleBehaviourOptions, type ScopedInstancesRecord, type ScopedInstancesRecordLike, type SuperCompatibleRegleCollectionErrors, type SuperCompatibleRegleCollectionStatus, type SuperCompatibleRegleFieldStatus, type SuperCompatibleRegleResult, type SuperCompatibleRegleRoot, type SuperCompatibleRegleRuleStatus, type SuperCompatibleRegleStatus, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, createRule, createScopedUseRegle, defineRegleConfig, flatErrors, inferRules, mergeRegles, unwrapRuleParameters, useCollectScope, useRegle, useRootStorage, useScopedRegle };
@@ -1,2 +1,2 @@
1
- 'use strict';var vue=require('vue');function te(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 $t=Symbol("regle-rule");function zt(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 N(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>N(n)))),r=="Map"&&(t=new Map([...e].map(n=>[N(n[0]),N(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,zt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=N(e[n]);}return t}function K(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function ze(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 Ve(e,t,r){let n,l=(...c)=>new Promise(m=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...c])).then(m);},t);});return l.cancel=()=>{clearTimeout(n),n=void 0;},l}var qe=(r=>(r.Inline="__inline",r.Async="__async",r))(qe||{});function St(e,t){return e.some(r=>r[t])}function ht(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function re(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function bt(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function Tt(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(m=>m.trim()).filter(m=>m.length>0).length:0}function Ke(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(d,...$){return e.validator(d,...re($.length?$:t))},message(d){return typeof e.message=="function"?e.message({...d,$params:re(d?.$params?.length?d.$params:t)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:re(d?.$params?.length?d.$params:t)}):e.active??true},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:re(d?.$params?.length?d.$params:t)}):e.tooltip??[]},exec(d){let $=e.validator(d,...re(t)),p;return $ instanceof Promise?$.then(h=>(p=h,typeof p=="object"&&"$valid"in p?p.$valid:typeof p=="boolean"?p:false)):(p=$,typeof p=="object"&&"$valid"in p?p.$valid:typeof p=="boolean"?p: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:bt(t),_brand:$t}}function Je(e){if(typeof e.validator=="function"){let r=Ke(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(Tt(e.validator)>1){let l=function(...c){return Ke(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 Ye(){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 m(S){let E=t.value.get(S);if(E)return E;{let D=vue.ref({});return t.value.set(S,D),D}}function d(S){let E=r.value.get(S);if(E)return E;{let D=vue.ref([]);return r.value.set(S,D),D}}function $(S,E,D){c.value.set(`${S}-${E}`,D);}function p(S,E){return c.value.get(`${S}-${E}`)}function h(S,E){S&&E!=null&&c.value.delete(`${S}-${E}`);}function V(S,E){n.value.set(S,E);}function C(S){return n.value.get(S)??false}function M(S,E){e.value.set(S,E);}function w(S,E){let D=e.value.get(S);return D?O(E,D)?{valid:true}:{valid:false}:void 0}function O(S,E){let D=Object.keys(E),u=Object.keys(S);return u.length!==D.length||!u.every(i=>D.includes(i))?false:u.every(i=>{let o=S[i],b=E[i];return !b||!o||typeof o=="function"||typeof b=="function"||typeof o=="number"||typeof o=="boolean"?false:o._params?o._params?.every((A,L)=>{if(typeof b=="number"||typeof b=="boolean")return true;{let G=re(b._params),X=re(o._params);return G?.[L]===X?.[L]}}):true})}function a(S){let E=l.value.get(S);if(E)return E;{let D=vue.ref(false),u=vue.ref(true),T=vue.ref({}),i=vue.ref(false);return l.value.set(S,{$pending:D,$valid:u,$metadata:T,$validating:i}),{$pending:D,$valid:u,$metadata:T,$validating:i}}}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:a,getFieldsEntry:m,getCollectionsEntry:d,getArrayStatus:p,addArrayStatus:$,deleteArrayStatus:h,arrayStatusStorage:c}}function _e(e){return K(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 tr(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]),m=Number(n[l]);if(c>m)return 1;if(m>c)return -1;if(!isNaN(c)&&isNaN(m))return 1;if(isNaN(c)&&!isNaN(m))return -1}return 0}var Ne=tr(vue.version,"3.5.0")!==-1;function rr(){return Math.floor(Math.random()*Date.now()).toString()}function $e(){return typeof window>"u"?rr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Et(e){return vue.getCurrentScope()?(vue.onScopeDispose(e),true):false}function xt(e){let t=false,r,n=vue.effectScope(true);return (...l)=>(t||(r=n.run(()=>e(...l)),t=true),r)}function ke(e,t){return _e(e)||K(t.value)&&!te(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function Dt(e,t,r=false){return !!e.value&&K(e.value)&&"$each"in e.value||r&&Array.isArray(t.value)&&t.value.some(K)||Array.isArray(t.value)&&t.value.some(K)}function Ge(e){return !!e.value&&K(e.value)}function we(e){return K(e)&&"_validator"in e}function Pe(e){return typeof e.value!="function"}function Ct(e){return K(e)&&"$fields"in e}function It(e){return !!e&&"$rules"in e}function Xe({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 Ot({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 wt({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:c,$debounce:m,modifiers:d}){let $=vue.effectScope(),p={},h,V=vue.ref(false),{$pending:C,$valid:M,$metadata:w,$validating:O}=c.trySetRuleStatusRef(`${l}.${r}`);function a(){$=vue.effectScope(),p=$.run(()=>{let o=vue.ref(false),b=vue.ref(false),A=vue.ref(true),L=vue.ref(false),G=vue.ref(false),X=vue.computed(()=>({$value:n.value,$error:b.value,$dirty:o.value,$pending:L.value,$correct:G.value,$invalid:A.value,$rule:{$valid:M.value,$invalid:!M.value,$pending:C.value},$params:R.value,...w.value})),oe=vue.computed(()=>Pe(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function I(x){let F="",B=e?e[r]?.[x]:void 0;if(B&&(typeof B=="function"?F=B(X.value):F=B),Pe(t)){let y=`_${x}_patched`;B&&!t.value[y]||(typeof t.value[x]=="function"?F=t.value[x](X.value):F=t.value[x]??"");}return F}let z=vue.computed(()=>{let x=I("message");return te(x)&&(x="This field is not valid"),x}),me=vue.computed(()=>I("tooltip")),ue=vue.computed(()=>Pe(t)&&t.value.type?t.value.type:r),s=vue.computed(()=>Pe(t)?t.value.validator:t.value),R=vue.computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),f=vue.computed(()=>`${l}.${ue.value}`);return {$active:oe,$message:z,$type:ue,$validator:s,$params:R,$path:f,$tooltip:me,$fieldCorrect:G,$fieldError:b,$fieldDirty:o,$fieldPending:L,$fieldInvalid:A}}),h=vue.watch(p?.$params,()=>{(d.$autoDirty.value||d.$rewardEarly.value&&p.$fieldError.value)&&u();});}a();function S(){M.value=true,p.$fieldDirty.value&&(C.value=true);}async function E(){let o=false;try{let b=p.$validator.value;if(typeof b!="function")return console.error(`${l}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let A=b(n.value,...p.$params.value),L=n.value;S();let G;if(A instanceof Promise?G=await A:G=A,n.value!==L)return !0;if(typeof G=="boolean")o=G;else {let{$valid:X,...oe}=G;o=X,w.value=oe;}}catch{o=false;}finally{C.value=false;}return o}let D=Ve(E,m??200);async function u(){try{O.value=!0;let o=!1;if(we(t.value)&&t.value._async)o=await D();else {let b=p.$validator.value,A=b(n.value,...p.$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")o=A;else {let{$valid:L,...G}=A;o=L,w.value=G;}}return M.value=o,o}catch{return false}finally{O.value=false;}}function T(){M.value=true,w.value={},C.value=false,O.value=false,a();}function i(){h(),$.stop(),$=vue.effectScope();}return vue.reactive({...p,$pending:C,$valid:M,$metadata:w,$haveAsync:V,$validating:O,$parse:u,$unwatch:i,$watch:a,$reset:T})}function be({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:c,options:m,externalErrors:d,schemaErrors:$,schemaMode:p,onUnwatch:h,$isArray:V,initialState:C,shortcuts:M,onValidate:w}){let O=vue.effectScope(),a,S=[],E,D,u,T,i,o=()=>{};function b(){let v=t.value,j=c.checkRuleDeclEntry(n,v);z.value=Object.fromEntries(Object.entries(v).filter(([g])=>g.startsWith("$"))),G(),I.value=Object.fromEntries(Object.entries(t.value).filter(([g])=>!g.startsWith("$")).map(([g,ee])=>{if(ee){let se=vue.toRef(()=>ee);return [g,wt({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:se,ruleKey:g,state:e,path:n,storage:c,$debounce:z.value.$debounce})]}return []}).filter(g=>!!g.length)),a.processShortcuts(),A(),j?.valid!=null&&(a.$dirty.value=c.getDirtyState(n),(a.$dirty.value&&a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o()),c.addRuleDeclEntry(n,v);}function A(){o=a.$debounce.value?Ve(oe,a.$debounce.value??a.$haveAnyAsyncRule?100:0):oe;}function L(){I.value&&Object.entries(I.value).forEach(([v,j])=>{j.$unwatch();}),u(),i?.(),a.$dirty.value&&c.setDirtyEntry(n,a.$dirty.value),E?.(),D?.(),O.stop(),O=vue.effectScope(),S.forEach(v=>v.stop()),S=[],h?.(),T?.();}function G(){I.value&&Object.entries(I.value).forEach(([v,j])=>{j.$watch();}),a=O.run(()=>{let v=vue.ref(false),j=vue.ref(false),g=vue.computed(()=>v.value),ee=vue.computed(()=>z.value.$debounce),se=vue.computed(()=>z.value.$lazy!=null?z.value.$lazy:vue.unref(m.lazy)!=null?vue.unref(m.lazy):false),le=vue.computed(()=>z.value.$rewardEarly!=null?z.value.$rewardEarly:vue.unref(m.rewardEarly)!=null?vue.unref(m.rewardEarly):false),U=vue.computed(()=>z.value.$clearExternalErrorsOnChange!=null?z.value.$clearExternalErrorsOnChange:vue.unref(m.clearExternalErrorsOnChange)!=null?vue.unref(m.clearExternalErrorsOnChange):true),P=vue.computed(()=>z.value.$autoDirty!=null?z.value.$autoDirty:vue.unref(m.autoDirty)!=null?vue.unref(m.autoDirty):!le.value),H=vue.computed(()=>Object.entries(I.value).some(([ie,Q])=>Q.$validating)),Ie=vue.computed({get:()=>e.value,set(ie){E(),e.value=ie,X();}}),Fe=vue.computed(()=>ye.value&&!Oe.value&&v.value),ut=vue.computed(()=>Xe({field:{$rules:I.value,$error:Fe.value,$externalErrors:d?.value,$schemaErrors:$?.value}})),ct=vue.computed(()=>Xe({field:{$rules:I.value,$error:Fe.value,$externalErrors:d?.value,$schemaErrors:$?.value},silent:true})),He=vue.computed(()=>v.value?C.value instanceof Date&&e.value instanceof Date?ze(C.value).getDate()!==ze(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),ft=vue.computed(()=>He.value),Rt=vue.computed(()=>Ot({field:{$rules:I.value}})),dt=vue.computed(()=>P.value?g.value&&!(ye.value||Oe.value):!(ye.value||Oe.value)),Oe=vue.computed(()=>j.value||!le.value?Object.entries(I.value).some(([ie,Q])=>Q.$pending):false),ye=vue.computed(()=>d?.value?.length||$?.value?.length?true:je.value?false:!le.value||le.value&&j.value?Object.entries(I.value).some(([ie,Q])=>!Q.$valid):false),pt=vue.computed(()=>l),je=vue.computed(()=>!!(te(I.value)&&!p)),mt=vue.computed(()=>d?.value?.length||je.value?false:v.value&&!te(e.value)&&!H.value?p?!$?.value?.length:Object.values(I.value).some(Q=>Q.$active)?Object.values(I.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),Bt=vue.computed(()=>Object.entries(I.value).some(([ie,Q])=>Q.$haveAsync));function Ht(){M?.fields&&Object.entries(M.fields).forEach(([ie,Q])=>{let gt=vue.effectScope();yt[ie]=gt.run(()=>{let vt=vue.ref();return vue.watchEffect(()=>{vt.value=Q(vue.reactive({$dirty:v,$externalErrors:d?.value??[],$value:e,$silentValue:Ie,$rules:I,$error:Fe,$pending:Oe,$invalid:ye,$correct:mt,$errors:ut,$ready:dt,$silentErrors:ct,$anyDirty:g,$tooltips:Rt,$name:pt,$inactive:je,$edited:He,$anyEdited:ft}));}),vt}),S.push(gt);});}let yt={};return vue.watch(ye,ie=>{ie||(j.value=false);}),{$error:Fe,$pending:Oe,$invalid:ye,$correct:mt,$debounce:ee,$lazy:se,$errors:ut,$ready:dt,$silentErrors:ct,$rewardEarly:le,$autoDirty:P,$clearExternalErrorsOnChange:U,$anyDirty:g,$edited:He,$anyEdited:ft,$name:pt,$haveAnyAsyncRule:Bt,$shortcuts:yt,$validating:H,$tooltips:Rt,$dirty:v,triggerPunishment:j,processShortcuts:Ht,$silentValue:Ie,$inactive:je}}),X(),u=vue.watch(a.$dirty,v=>{c.setDirtyEntry(n,v),Object.values(I.value).forEach(j=>{j.$fieldDirty=v;});}),i=vue.watch([a.$error,a.$correct,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(v=>{v.$fieldError=a.$error.value,v.$fieldInvalid=a.$invalid.value,v.$fieldPending=a.$pending.value,v.$fieldCorrect=a.$correct.value;});}),D=vue.watch(a.$invalid,v=>{a.$rewardEarly.value&&!v&&(a.triggerPunishment.value=false);}),T=vue.watch(a.$haveAnyAsyncRule,A);}function X(){E=vue.watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&b(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&f();},{deep:V?true:Ne?1:true});}function oe(){Object.values(I.value).forEach(v=>{v.$parse();});}let I=vue.ref({}),z=vue.ref({});b();function me(v,j){if(f(),a.$dirty.value=false,a.triggerPunishment.value=false,c.setDirtyEntry(n,false),!j)if(v?.toInitialState)L(),e.value=N(C);else if(v?.toState){L();let g;typeof v?.toState=="function"?g=v?.toState():g=v?.toState,C.value=N(g),e.value=N(g);}else C.value=K(e.value)?N(e.value):Array.isArray(e.value)?[...e.value]:e.value;v?.clearExternalErrors&&f(),j||Object.entries(I.value).forEach(([g,ee])=>{ee.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(g=>g.$parse()),j||b();}function ue(v=true,j=false){a.$dirty.value||(a.$dirty.value=true),j&&v?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o():v&&o();}async function s(){try{if(p)return w?(ue(!1),w()):{valid:!1,data:e.value};let v=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:v};return p?{valid:!$?.value?.length,data:v}:te(I.value)?{valid:!0,data:v}:{valid:(await Promise.allSettled(Object.entries(I.value).map(([ee,se])=>se.$parse()))).every(ee=>ee.status==="fulfilled"?ee.value===!0:!1),data:v}}catch{return {valid:false,data:e.value}}}function R(v=true){return a.$dirty.value?e.value:v?{_null:true}:null}function f(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&o();let{$shortcuts:x,$validating:F,$autoDirty:B,$rewardEarly:y,$clearExternalErrorsOnChange:_,$haveAnyAsyncRule:q,$debounce:Z,$lazy:Y,triggerPunishment:fe,...ce}=a;return vue.reactive({...ce,$externalErrors:d,$value:e,$rules:I,...x,$reset:me,$touch:ue,$validate:s,$unwatch:L,$watch:G,$extractDirtyFields:R,$clearExternalErrors:f})}function tt({$id:e,path:t,index:r,options:n,storage:l,stateValue:c,customMessages:m,rules:d,externalErrors:$,schemaErrors:p,initialState:h,shortcuts:V,fieldName:C,schemaMode:M}){let w=d.$key?d.$key:$e(),O=`${t}.${String(w)}`;typeof c.value=="object"&&c.value!=null&&(c.value.$id?O=`${t}.${c.value.$id}`:Object.defineProperties(c.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let a=vue.toRef($?.value??[],r),S=vue.computed(()=>p?.value?.[r]),E=Te({state:c,rulesDef:vue.toRef(()=>d),customMessages:m,path:O,storage:l,options:n,externalErrors:a,schemaErrors:S,initialState:h,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 Ft({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:c,externalErrors:m,schemaErrors:d,schemaMode:$,initialState:p,shortcuts:h,fieldName:V}){let C=vue.effectScope(),M,w=vue.effectScope(),O,a=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let S=vue.ref(),E=vue.ref(e.value),D,u=vue.ref({}),T=l.getCollectionsEntry(n);O=w.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(R=>typeof R!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(R=>we(R)||typeof R=="function"):false)})),i(),A();function i(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(S.value=$e(),Object.defineProperties(e.value,{$id:{value:S.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(S.value=e.value.$id)),E.value=u.value.$value,Array.isArray(e.value)&&!O.isPrimitiveArray.value?T.value=e.value.filter(s=>typeof s=="object").map((s,R)=>{let{scope:f,unwrapped:x}=Qe(t.value.$each,vue.toRef(()=>s),R);f&&a.push(f);let F=vue.toRef(p.value??[],R),B=vue.toRef(m?.value??{},"$each"),y=vue.computed(()=>d?.value?.$each),_=tt({$id:S.value,path:n,customMessages:r,rules:x??{},stateValue:vue.toRef(()=>s),index:R,options:c,storage:l,externalErrors:B,schemaErrors:y,initialState:F,shortcuts:h,fieldName:V,schemaMode:$});return _||null}).filter(s=>!!s):T.value=[],u.value=be({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:c,externalErrors:vue.toRef(m?.value??{},"$self"),schemaErrors:vue.computed(()=>d?.value?.$self),$isArray:true,initialState:p,shortcuts:h,fieldName:V,schemaMode:$});}function o(){if(Array.isArray(e.value)&&!O.isPrimitiveArray.value){let s=N(T.value);T.value=e.value.filter(R=>typeof R=="object").map((R,f)=>{let x=vue.toRef(()=>R);if(R.$id&&T.value.find(F=>F.$id===R.$id)){let F=l.getArrayStatus(S.value,R.$id);return F?(F.$value=x,F):null}else {let{scope:F,unwrapped:B}=Qe(t.value.$each,x,f);F&&a.push(F);let y=vue.toRef(m?.value??{},"$each"),_=vue.computed(()=>d?.value?.$each??[]),q=tt({$id:S.value,path:n,customMessages:r,rules:B??{},stateValue:x,index:f,options:c,storage:l,externalErrors:y,schemaErrors:_,initialState:vue.toRef(p.value??[],f),shortcuts:h,fieldName:V,schemaMode:$});return q||null}}).filter(R=>!!R),s.filter(R=>!e.value?.find(f=>R.$id===f.$id)).forEach((R,f)=>{l.deleteArrayStatus(S.value,f.toString());});}else T.value=[];}function b(){D=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?i():o();},{deep:Ne?1:true,flush:"pre"});}function A(){b(),C=vue.effectScope(),M=C.run(()=>{let s=vue.computed({get:()=>e.value,set(g){D(),e.value=g,b();}}),R=vue.computed(()=>u.value.$dirty&&(!T.value.length||T.value.every(g=>g.$dirty))),f=vue.computed(()=>u.value.$anyDirty||T.value.some(g=>g.$anyDirty)),x=vue.computed(()=>u.value.$invalid||T.value.some(g=>g.$invalid)),F=vue.computed(()=>(te(u.value.$rules)?true:u.value.$correct)&&(!T.value.length||T.value.every(g=>g.$correct||g.$anyDirty&&!g.$invalid))),B=vue.computed(()=>u.value.$error||T.value.some(g=>g.$error)),y=vue.computed(()=>!(x.value||_.value)),_=vue.computed(()=>u.value.$pending||T.value.some(g=>g.$pending)),q=vue.computed(()=>!!T.value.length&&T.value.every(g=>g.$edited)),Z=vue.computed(()=>u.value.$anyEdited||T.value.some(g=>g.$anyEdited)),Y=vue.computed(()=>({$self:u.value.$errors,$each:T.value.map(g=>g.$errors)})),fe=vue.computed(()=>({$self:u.value.$silentErrors,$each:T.value.map(g=>g.$silentErrors)})),ce=vue.computed(()=>V);function v(){h?.collections&&Object.entries(h?.collections).forEach(([g,ee])=>{let se=vue.effectScope();j[g]=se.run(()=>{let le=vue.ref();return vue.watchEffect(()=>{le.value=ee(vue.reactive({$dirty:R,$error:B,$silentValue:s,$pending:_,$invalid:x,$correct:F,$errors:Y,$ready:y,$silentErrors:fe,$anyDirty:f,$name:ce,$each:T,$self:u,$value:e,$edited:q,$anyEdited:Z}));}),le}),a.push(se);});}let j={};return v(),{$dirty:R,$anyDirty:f,$invalid:x,$correct:F,$error:B,$pending:_,$errors:Y,$silentErrors:fe,$ready:y,$name:ce,$shortcuts:j,$silentValue:s,$edited:q,$anyEdited:Z}}),O.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 L(){D&&D(),u.value&&u.value.$unwatch(),T.value&&T.value.forEach(s=>{"$dirty"in s&&s.$unwatch();}),C.stop(),C=vue.effectScope(),w.stop(),w=vue.effectScope(true),a.forEach(s=>s.stop()),a=[];}function G(s=true,R=false){u.value.$touch(s,R),T.value.forEach(f=>{f.$touch(s,R);});}function X(s,R){if(L(),!R)if(s?.toInitialState)e.value=N(p.value);else if(s?.toState){let f;typeof s?.toState=="function"?f=s?.toState():f=s?.toState,p.value=N(f),e.value=N(f);}else p.value=N(e.value);s?.clearExternalErrors&&I(),u.value.$reset(),T.value.forEach(f=>{f.$reset(s,true);}),R||i();}async function oe(){let s=e.value;try{return {valid:(await Promise.allSettled([u.value.$validate(),...T.value.map(x=>x.$validate())])).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:s}}catch{return {valid:false,data:s}}}function I(){u.value.$clearExternalErrors(),T.value.forEach(s=>{s.$clearExternalErrors();});}function z(s=true){let R=T.value.map(f=>{if(Ct(f))return f.$extractDirtyFields(s)});return s&&R.every(f=>te(f))&&(R=[]),R}let{$shortcuts:me,...ue}=M;return vue.reactive({$self:u,...ue,...me,$each:T,$value:e,$validate:oe,$unwatch:L,$watch:A,$touch:G,$reset:X,$extractDirtyFields:z,$clearExternalErrors:I})}function We({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:c,rootSchemaErrors:m,validationGroups:d,initialState:$,fieldName:p,...h}){let V=vue.effectScope(),C,M=[],w=null,O=null,a=null,S=null;async function D(s=true){let R=Object.entries(e.value),f=Object.fromEntries(R.filter(([y,_])=>!!_).map(([y,_])=>{if(_){let q=vue.toRef(t.value??{},y),Z=vue.toRef(()=>_),Y=vue.toRef(l?.value??{},y),fe=vue.computed(()=>c?.value?.[y]),ce=vue.toRef($?.value??{},y);return [y,Te({state:q,rulesDef:Z,path:r?`${r}.${y}`:y,externalErrors:Y,schemaErrors:fe,initialState:ce,fieldName:y,...h})]}return []})),x=Object.fromEntries(Object.entries(vue.unref(l)??{}).filter(([y,_])=>!(y in e.value)&&!!_).map(([y])=>{let _=vue.toRef(t.value??{},y),q=vue.toRef(l?.value??{},y),Z=vue.computed(()=>c?.value?.[y]),Y=vue.toRef($?.value??{},y);return [y,Te({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:y,...h})]})),F=Object.fromEntries(Object.entries(vue.unref(c)??{}).map(([y])=>{let _=vue.toRef(t.value??{},y),q=vue.toRef(l?.value??{},y),Z=vue.computed(()=>c?.value?.[y]),Y=vue.toRef($?.value??{},y);return [y,Te({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:y,...h})]})),B=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(x??{}))&&!(y in(F??{}))).map(([y])=>{let _=vue.toRef(t.value??{},y),q=vue.toRef(l?.value??{},y),Z=vue.computed(()=>c?.value?.[y]),Y=vue.toRef($?.value??{},y);return [y,Te({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:y,...h})]}));u.value={...f,...x,...F,...B},s&&o();}let u=h.storage.getFieldsEntry(r);D();function T(){l&&(a=vue.watch(l,()=>{b(),D();},{deep:true}));}function i(){S=vue.watch(t,()=>{b(),D(),G(true,true);},{flush:"sync"});}function o(){n&&(w?.(),w=vue.watch(n,()=>{b(),D();},{deep:true,flush:"post"}),T()),m&&(O?.(),O=vue.watch(m,()=>{b(),D();},{deep:true,flush:"post"})),i(),C=V.run(()=>{let s=vue.computed({get:()=>t.value,set(U){b(),t.value=U,D();}}),R=vue.computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([U,P])=>P?.$dirty)),f=vue.computed(()=>Object.entries(u.value).some(([U,P])=>P?.$anyDirty)),x=vue.computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).some(([U,P])=>P?.$invalid)),F=vue.computed(()=>{let U=Object.entries(u.value).filter(([P,H])=>It(H)?!H.$inactive:true);return U.length?U.every(([P,H])=>H?.$correct||H.$anyDirty&&!H.$invalid):false}),B=vue.computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).some(([U,P])=>P?.$error)),y=vue.computed(()=>vue.unref(h.options.rewardEarly)!=null?vue.unref(h.options.rewardEarly):false),_=vue.computed(()=>vue.unref(h.options.autoDirty)!=null?vue.unref(h.options.autoDirty):!y.value),q=vue.computed(()=>_.value?f.value&&!(x.value||Y.value):!(x.value||Y.value)),Z=vue.ref(false),Y=vue.computed(()=>Z.value||Object.entries(u.value).some(([U,P])=>P?.$pending)),fe=vue.computed(()=>Object.fromEntries(Object.entries(u.value).map(([U,P])=>[U,P?.$errors]))),ce=vue.computed(()=>Object.fromEntries(Object.entries(u.value).map(([U,P])=>[U,P?.$silentErrors]))),v=vue.computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([U,P])=>P?.$edited)),j=vue.computed(()=>Object.entries(u.value).some(([U,P])=>P?.$anyEdited)),g=vue.computed(()=>p);function ee(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,P])=>{let H=vue.effectScope();le[U]=H.run(()=>{let Ie=vue.ref();return vue.watchEffect(()=>{Ie.value=P(vue.reactive({$dirty:R,$value:t,$silentValue:s,$error:B,$pending:Y,$invalid:x,$correct:F,$ready:q,$anyDirty:f,$name:g,$silentErrors:ce,$errors:fe,$fields:u,$edited:v,$anyEdited:j}));}),Ie}),M.push(H);});}let se=vue.computed({get:()=>d?Object.fromEntries(Object.entries(d?.(u.value)??{}).map(([U,P])=>P.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(H=>[H,St(P,H)])),...Object.fromEntries(["$errors","$silentErrors"].map(H=>[H,ht(P,H)]))}]:[])):{},set(){}}),le={};return ee(),{$dirty:R,$anyDirty:f,$invalid:x,$correct:F,$error:B,$pending:Y,$errors:fe,$silentErrors:ce,$ready:q,$name:g,$shortcuts:le,$groups:se,$silentValue:s,$edited:v,$anyEdited:j,$localPending:Z}});}function b(){w?.(),a?.(),S?.(),O?.(),M=[],C={},u.value&&Object.entries(u.value).forEach(([s,R])=>{R.$unwatch();});}function A(){Object.entries(u.value).forEach(([s,R])=>{R.$clearExternalErrors();});}function L(s,R){if(a?.(),b(),!R)if(s?.toInitialState)t.value=N({...$.value??{}});else if(s?.toState){let f;typeof s?.toState=="function"?f=s?.toState():f=s?.toState,$.value=N(f),t.value=N(f);}else $.value=N(t.value);Object.values(u.value).forEach(f=>{f.$reset(s,true);}),s?.clearExternalErrors&&A(),T(),R||D();}function G(s=true,R=false){Object.values(u.value).forEach(f=>{f.$touch(s,R);});}function X(s){return s.filter(([R,f])=>K(f)?!(f&&typeof f=="object"&&"_null"in f)&&!te(f):Array.isArray(f)?f.length:true)}function oe(s=true){let R=Object.entries(u.value).map(([f,x])=>[f,x.$extractDirtyFields(s)]);return s&&(R=X(R)),Object.fromEntries(R)}async function I(){try{if(h.schemaMode)return h.onValidate?(G(!1),C.$localPending.value=!0,h.onValidate()):{valid:!1,data:t.value};{let s=t.value;return {valid:(await Promise.allSettled(Object.values(u.value).map(x=>x.$validate()))).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:s}}}catch{return {valid:false,data:t.value}}finally{C.$localPending.value=false;}}let{$shortcuts:z,$localPending:me,...ue}=C;return vue.reactive({...ue,...z,$fields:u,$value:t,$reset:L,$touch:G,$validate:I,$unwatch:b,$watch:o,$clearExternalErrors:A,$extractDirtyFields:oe})}function Te({rulesDef:e,...t}){if(Dt(e,t.state,t.schemaMode))return Ft({rulesDef:e,...t});if(ke(t.state,e)){if(_e(t.state))return We({rulesDef:e,...t});{let n=vue.effectScope().run(()=>{let m=vue.toRef(t.state.value?t.state:vue.ref({}));return vue.watch(()=>t.state.value,d=>{m.value=d;},{deep:true}),vue.watch(m,d=>{t.state.value=d;},{deep:true}),{fakeState:m}}),{state:l,...c}=t;return We({rulesDef:e,...c,state:n.fakeState})}}else if(Ge(e))return be({rulesDef:e,...t})}function Ce({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:c,schemaErrors:m,schemaMode:d=false,onValidate:$}){let p=Ye(),h=vue.ref();return ke(n,r)?h.value=We({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:p,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:c,fieldName:"root",path:"",schemaErrors:m,rootSchemaErrors:m,schemaMode:d,onValidate:$}):Ge(r)&&(h.value=be({rulesDef:r,state:n,customMessages:l?.(),storage:p,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:c,fieldName:"root",path:"",schemaMode:d,schemaErrors:m,onValidate:$})),vue.getCurrentScope()&&vue.onScopeDispose(()=>{h.value?.$unwatch();}),vue.reactive({regle:h})}function at(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(c,m,d){let $=vue.isRef(m)?m:vue.computed(typeof m=="function"?m:()=>m),p={...n,...d},h=vue.isRef(c)?c:vue.ref(c),V=vue.ref(K(h.value)?{...N(h.value)}:N(h.value));return {r$:Ce({scopeRules:$,state:h,options:p,initialState:V,customRules:e,shortcuts:r}).regle}}return l}var Le=at();function lt(){function e(t,r){return r}return e}var ot=lt();function Nt({rules:e,modifiers:t,shortcuts:r}){let n=at(e,t,r),l=lt();return {useRegle:n,inferRules:l}}function Me(e,t){let r=t??false,n=vue.computed({get:()=>r?Object.values(e).map(i=>i.$value):Object.fromEntries(Object.entries(e).map(([i,o])=>[i,o.$value])),set:i=>{r||typeof i=="object"&&Object.entries(i).forEach(([o,b])=>e[o].$value=b);}}),l=vue.computed({get:()=>Object.fromEntries(Object.entries(e).map(([i,o])=>[i,o.$silentValue])),set:i=>{typeof i=="object"&&Object.entries(i).forEach(([o,b])=>e[o].$silentValue=b);}}),c=vue.computed(()=>{let i=Object.entries(e);return !!i.length&&i.every(([o,b])=>b?.$dirty)}),m=vue.computed(()=>Object.entries(e).some(([i,o])=>o?.$anyDirty)),d=vue.computed(()=>Object.entries(e).some(([i,o])=>o?.$invalid)),$=vue.computed(()=>{let i=Object.entries(e);return !!i.length&&i.every(([o,b])=>b?.$correct||b.$anyDirty&&!b.$invalid)}),p=vue.computed(()=>Object.entries(e).some(([i,o])=>o?.$error)),h=vue.computed(()=>{let i=Object.entries(e);return !!i.length&&i.every(([o,b])=>b?.$ready)}),V=vue.computed(()=>Object.entries(e).some(([i,o])=>o?.$pending)),C=vue.computed(()=>r?Object.entries(e).map(([i,o])=>o.$errors):Object.fromEntries(Object.entries(e).map(([i,o])=>[i,o.$errors]))),M=vue.computed(()=>r?Object.entries(e).map(([i,o])=>o.$silentErrors):Object.fromEntries(Object.entries(e).map(([i,o])=>[i,o.$silentErrors]))),w=vue.computed(()=>{let i=Object.entries(e);return !!i.length&&i.every(([o,b])=>b?.$edited)}),O=vue.computed(()=>Object.entries(e).some(([i,o])=>o?.$anyEdited)),a=vue.computed(()=>r?Object.values(e):e);function S(i){Object.values(e).forEach(o=>{o.$reset(i);});}function E(){Object.values(e).forEach(i=>{i.$touch();});}function D(i=true){return Object.values(e).map(o=>o.$extractDirtyFields(i))}function u(){Object.values(e).forEach(i=>{i.$clearExternalErrors();});}async function T(){try{let i=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:i}}catch{return {valid:false,data:n.value}}}return vue.reactive({...!r&&{$silentValue:l},$errors:C,$silentErrors:M,$instances:a,$value:n,$dirty:c,$anyDirty:m,$invalid:d,$correct:$,$error:p,$pending:V,$ready:h,$edited:w,$anyEdited:O,$reset:S,$touch:E,$validate:T,$extractDirtyFields:D,$clearExternalErrors:u})}function Gt(e){function t(r){let n=vue.computed(()=>vue.toValue(r));m();let l=vue.ref(d(e.value)),c=vue.reactive({r$:l});function m(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}vue.watch(n,m),vue.watch(e,$=>{l.value=d($);},{deep:true});function d($){if(n.value){let p=$[n.value]??{};return Me(p,true)}else return Me($["~~global"]??{},true)}return {r$:c.r$}}return {useCollectScope:t}}function Lt(e,t){let r=t??Le;return {useScopedRegle:(l,c,m)=>{let{namespace:d,...$}=m??{},p=vue.computed(()=>vue.toValue(d)),h=vue.ref(`${Object.keys(e.value).length+1}-${$e()}`),V=vue.computed(()=>`instance-${h.value}`),{r$:C}=r(l,c,$);w(),Et(M),vue.watch(p,(O,a)=>{M(a),w();}),vue.getCurrentInstance()&&vue.onMounted(()=>{let O=vue.getCurrentInstance();typeof window<"u"&&O?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(O?.proxy?.$el?.parentElement)&&M();});function M(O){let a=O??p.value;a?e.value[a]&&delete e.value[a][V.value]:e.value["~~global"][V.value]&&delete e.value["~~global"][V.value];}function w(){p.value?(e.value[p.value]||(e.value[p.value]={}),e.value[p.value][V.value]=C):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][V.value]=C);}return {r$:C,dispose:M,register:w}}}}function Be(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):xt(()=>vue.ref({"~~global":{}})))(),{useScopedRegle:n}=Lt(r,e?.customUseRegle),{useCollectScope:l}=Gt(r);return {useScopedRegle:n,useCollectScope:l}}var {useCollectScope:st,useScopedRegle:it}=Be();
2
- exports.InternalRuleType=qe;exports.createRule=Je;exports.createScopedUseRegle=Be;exports.defineRegleConfig=Nt;exports.inferRules=ot;exports.mergeRegles=Me;exports.unwrapRuleParameters=re;exports.useCollectScope=st;exports.useRegle=Le;exports.useRootStorage=Ce;exports.useScopedRegle=it;
1
+ 'use strict';var vue=require('vue');function te(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 ht=Symbol("regle-rule");function Jt(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 N(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>N(n)))),r=="Map"&&(t=new Map([...e].map(n=>[N(n[0]),N(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Jt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=N(e[n]);}return t}function W(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function qe(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 Ve(e,t,r){let n,a=(...o)=>new Promise(d=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(d);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a}var Ke=(r=>(r.Inline="__inline",r.Async="__async",r))(Ke||{});function bt(e,t){return e.some(r=>r[t])}function Et(e,t){return e.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[])}function re(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function Tt(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function xt(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(d=>d.trim()).filter(d=>d.length>0).length:0}function Je(e,...t){let{validator:r,type:n}=e,a=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(p,...$){return e.validator(p,...re($.length?$:t))},message(p){return typeof e.message=="function"?e.message({...p,$params:re(p?.$params?.length?p.$params:t)}):e.message},active(p){return typeof e.active=="function"?e.active({...p,$params:re(p?.$params?.length?p.$params:t)}):e.active??true},tooltip(p){return typeof e.tooltip=="function"?e.tooltip({...p,$params:re(p?.$params?.length?p.$params:t)}):e.tooltip??[]},exec(p){let $=e.validator(p,...re(t)),m;return $ instanceof Promise?$.then(h=>(m=h,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:a,_params:Tt(t),_brand:ht}}function Ye(e){if(typeof e.validator=="function"){let r=Je(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(xt(e.validator)>1){let a=function(...o){return Je(e,...o)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.tooltip=r.tooltip,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._tooltip=r.tooltip,a._type=e.type,a._message_pacthed=false,a._tooltip_pacthed=false,a._async=n,a}else return r}throw new Error("Validator must be a function")}function Qe(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),a=vue.shallowRef(new Map),o=vue.shallowRef(new Map);function d(S){let T=t.value.get(S);if(T)return T;{let D=vue.ref({});return t.value.set(S,D),D}}function p(S){let T=r.value.get(S);if(T)return T;{let D=vue.ref([]);return r.value.set(S,D),D}}function $(S,T,D){o.value.set(`${S}-${T}`,D);}function m(S,T){return o.value.get(`${S}-${T}`)}function h(S,T){S&&T!=null&&o.value.delete(`${S}-${T}`);}function V(S,T){n.value.set(S,T);}function C(S){return n.value.get(S)??false}function M(S,T){e.value.set(S,T);}function w(S,T){let D=e.value.get(S);return D?O(T,D)?{valid:true}:{valid:false}:void 0}function O(S,T){let D=Object.keys(T),c=Object.keys(S);return c.length!==D.length||!c.every(u=>D.includes(u))?false:c.every(u=>{let s=S[u],b=T[u];return !b||!s||typeof s=="function"||typeof b=="function"||typeof s=="number"||typeof s=="boolean"?false:s._params?s._params?.every((A,B)=>{if(typeof b=="number"||typeof b=="boolean")return true;{let G=re(b._params),X=re(s._params);return G?.[B]===X?.[B]}}):true})}function l(S){let T=a.value.get(S);if(T)return T;{let D=vue.ref(false),c=vue.ref(true),E=vue.ref({}),u=vue.ref(false);return a.value.set(S,{$pending:D,$valid:c,$metadata:E,$validating:u}),{$pending:D,$valid:c,$metadata:E,$validating:u}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:M,setDirtyEntry:V,checkRuleDeclEntry:w,getDirtyState:C,trySetRuleStatusRef:l,getFieldsEntry:d,getCollectionsEntry:p,getArrayStatus:m,addArrayStatus:$,deleteArrayStatus:h,arrayStatusStorage:o}}function _e(e){return W(e.value)}function Xe(e,t,r){let n=vue.effectScope(),a;return e instanceof Function?a=n.run(()=>e(t,r??0)):a=e,{scope:n,unwrapped:a}}function ar(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let o=Number(r[a]),d=Number(n[a]);if(o>d)return 1;if(d>o)return -1;if(!isNaN(o)&&isNaN(d))return 1;if(isNaN(o)&&!isNaN(d))return -1}return 0}var Ne=ar(vue.version,"3.5.0")!==-1;function lr(){return Math.floor(Math.random()*Date.now()).toString()}function $e(){return typeof window>"u"?lr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Dt(e){return vue.getCurrentScope()?(vue.onScopeDispose(e),true):false}function Ct(e){let t=false,r,n=vue.effectScope(true);return (...a)=>(t||(r=n.run(()=>e(...a)),t=true),r)}function ke(e,t){return _e(e)||W(t.value)&&!te(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function It(e,t,r=false){return !!e.value&&W(e.value)&&"$each"in e.value||r&&Array.isArray(t.value)&&t.value.some(W)||Array.isArray(t.value)&&t.value.some(W)}function Ge(e){return !!e.value&&W(e.value)}function we(e){return W(e)&&"_validator"in e}function Pe(e){return typeof e.value!="function"}function Ot(e){return W(e)&&"$fields"in e}function wt(e){return !!e&&"$rules"in e}function Ze({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 Pt({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 At(e){return W(e)&&"$each"in e}function et(e,t){let{includePath:r=false}=t??{};if(Array.isArray(e)&&e.every(n=>!W(n)))return e;if(At(e)){let n=r?e.$self?.map(o=>({error:o,path:""}))??[]:e.$self??[],a=e.$each?.map(o=>Ue(o,r))??[];return n?.concat(a.flat())}else return Object.entries(e).map(([n,a])=>Ue(a,r,[n])).flat()}function Ue(e,t=false,r){let n=t&&!r?[]:r;if(Array.isArray(e)&&e.every(a=>!W(a)))return t?e.map(a=>({error:a,path:n?.join(".")??""})):e;if(At(e)){let a=n?.length?e.$self?.map(d=>({error:d,path:n.join(".")}))??[]:e.$self??[],o=e.$each?.map((d,p)=>Ue(d,t,n?.concat(p.toString())))??[];return a?.concat(o.flat())}else return Object.entries(e).map(([a,o])=>Ue(o,t,n?.concat(a))).flat()}function Mt({customMessages:e,rule:t,ruleKey:r,state:n,path:a,storage:o,$debounce:d,modifiers:p}){let $=vue.effectScope(),m={},h,V=vue.ref(false),{$pending:C,$valid:M,$metadata:w,$validating:O}=o.trySetRuleStatusRef(`${a}.${r}`);function l(){$=vue.effectScope(),m=$.run(()=>{let s=vue.ref(false),b=vue.ref(false),A=vue.ref(true),B=vue.ref(false),G=vue.ref(false),X=vue.computed(()=>({$value:n.value,$error:b.value,$dirty:s.value,$pending:B.value,$correct:G.value,$invalid:A.value,$rule:{$valid:M.value,$invalid:!M.value,$pending:C.value},$params:R.value,...w.value})),oe=vue.computed(()=>Pe(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function I(x){let j="",H=e?e[r]?.[x]:void 0;if(H&&(typeof H=="function"?j=H(X.value):j=H),Pe(t)){let g=`_${x}_patched`;H&&!t.value[g]||(typeof t.value[x]=="function"?j=t.value[x](X.value):j=t.value[x]??"");}return j}let q=vue.computed(()=>{let x=I("message");return te(x)&&(x="This field is not valid"),x}),me=vue.computed(()=>I("tooltip")),ue=vue.computed(()=>Pe(t)&&t.value.type?t.value.type:r),i=vue.computed(()=>Pe(t)?t.value.validator:t.value),R=vue.computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),f=vue.computed(()=>`${a}.${ue.value}`);return {$active:oe,$message:q,$type:ue,$validator:i,$params:R,$path:f,$tooltip:me,$fieldCorrect:G,$fieldError:b,$fieldDirty:s,$fieldPending:B,$fieldInvalid:A}}),h=vue.watch(m?.$params,()=>{(p.$autoDirty.value||p.$rewardEarly.value&&m.$fieldError.value)&&c();});}l();function S(){M.value=true,m.$fieldDirty.value&&(C.value=true);}async function T(){let s=false;try{let b=m.$validator.value;if(typeof b!="function")return console.error(`${a}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let A=b(n.value,...m.$params.value),B=n.value;S();let G;if(A instanceof Promise?G=await A:G=A,n.value!==B)return !0;if(typeof G=="boolean")s=G;else {let{$valid:X,...oe}=G;s=X,w.value=oe;}}catch{s=false;}finally{C.value=false;}return s}let D=Ve(T,d??200);async function c(){try{O.value=!0;let s=!1;if(we(t.value)&&t.value._async)s=await D();else {let b=m.$validator.value,A=b(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:B,...G}=A;s=B,w.value=G;}}return M.value=s,s}catch{return false}finally{O.value=false;}}function E(){M.value=true,w.value={},C.value=false,O.value=false,l();}function u(){h(),$.stop(),$=vue.effectScope();}return vue.reactive({...m,$pending:C,$valid:M,$metadata:w,$haveAsync:V,$validating:O,$parse:c,$unwatch:u,$watch:l,$reset:E})}function be({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:o,options:d,externalErrors:p,schemaErrors:$,schemaMode:m,onUnwatch:h,$isArray:V,initialState:C,shortcuts:M,onValidate:w}){let O=vue.effectScope(),l,S=[],T,D,c,E,u,s=()=>{};function b(){let v=t.value,F=o.checkRuleDeclEntry(n,v);q.value=Object.fromEntries(Object.entries(v).filter(([y])=>y.startsWith("$"))),G(),I.value=Object.fromEntries(Object.entries(t.value).filter(([y])=>!y.startsWith("$")).map(([y,ee])=>{if(ee){let se=vue.toRef(()=>ee);return [y,Mt({modifiers:{$autoDirty:l.$autoDirty,$rewardEarly:l.$rewardEarly},customMessages:r,rule:se,ruleKey:y,state:e,path:n,storage:o,$debounce:q.value.$debounce})]}return []}).filter(y=>!!y.length)),l.processShortcuts(),A(),F?.valid!=null&&(l.$dirty.value=o.getDirtyState(n),(l.$dirty.value&&l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s()),o.addRuleDeclEntry(n,v);}function A(){s=l.$debounce.value?Ve(oe,l.$debounce.value??l.$haveAnyAsyncRule?100:0):oe;}function B(){I.value&&Object.entries(I.value).forEach(([v,F])=>{F.$unwatch();}),c(),u?.(),l.$dirty.value&&o.setDirtyEntry(n,l.$dirty.value),T?.(),D?.(),O.stop(),O=vue.effectScope(),S.forEach(v=>v.stop()),S=[],h?.(),E?.();}function G(){I.value&&Object.entries(I.value).forEach(([v,F])=>{F.$watch();}),l=O.run(()=>{let v=vue.ref(false),F=vue.ref(false),y=vue.computed(()=>v.value),ee=vue.computed(()=>q.value.$debounce),se=vue.computed(()=>q.value.$lazy!=null?q.value.$lazy:vue.unref(d.lazy)!=null?vue.unref(d.lazy):false),le=vue.computed(()=>q.value.$rewardEarly!=null?q.value.$rewardEarly:vue.unref(d.rewardEarly)!=null?vue.unref(d.rewardEarly):false),U=vue.computed(()=>q.value.$clearExternalErrorsOnChange!=null?q.value.$clearExternalErrorsOnChange:vue.unref(d.clearExternalErrorsOnChange)!=null?vue.unref(d.clearExternalErrorsOnChange):true),P=vue.computed(()=>q.value.$autoDirty!=null?q.value.$autoDirty:vue.unref(d.autoDirty)!=null?vue.unref(d.autoDirty):!le.value),z=vue.computed(()=>Object.entries(I.value).some(([ie,Q])=>Q.$validating)),Ie=vue.computed({get:()=>e.value,set(ie){T(),e.value=ie,X();}}),je=vue.computed(()=>ge.value&&!Oe.value&&v.value),ft=vue.computed(()=>Ze({field:{$rules:I.value,$error:je.value,$externalErrors:p?.value,$schemaErrors:$?.value}})),Rt=vue.computed(()=>Ze({field:{$rules:I.value,$error:je.value,$externalErrors:p?.value,$schemaErrors:$?.value},silent:true})),ze=vue.computed(()=>v.value?C.value instanceof Date&&e.value instanceof Date?qe(C.value).getDate()!==qe(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),dt=vue.computed(()=>ze.value),pt=vue.computed(()=>Pt({field:{$rules:I.value}})),mt=vue.computed(()=>P.value?y.value&&!(ge.value||Oe.value):!(ge.value||Oe.value)),Oe=vue.computed(()=>F.value||!le.value?Object.entries(I.value).some(([ie,Q])=>Q.$pending):false),ge=vue.computed(()=>p?.value?.length||$?.value?.length?true:Fe.value?false:!le.value||le.value&&F.value?Object.entries(I.value).some(([ie,Q])=>!Q.$valid):false),gt=vue.computed(()=>a),Fe=vue.computed(()=>!!(te(I.value)&&!m)),yt=vue.computed(()=>p?.value?.length||Fe.value?false:v.value&&!te(e.value)&&!z.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),qt=vue.computed(()=>Object.entries(I.value).some(([ie,Q])=>Q.$haveAsync));function Kt(){M?.fields&&Object.entries(M.fields).forEach(([ie,Q])=>{let $t=vue.effectScope();vt[ie]=$t.run(()=>{let St=vue.ref();return vue.watchEffect(()=>{St.value=Q(vue.reactive({$dirty:v,$externalErrors:p?.value??[],$value:e,$silentValue:Ie,$rules:I,$error:je,$pending:Oe,$invalid:ge,$correct:yt,$errors:ft,$ready:mt,$silentErrors:Rt,$anyDirty:y,$tooltips:pt,$name:gt,$inactive:Fe,$edited:ze,$anyEdited:dt}));}),St}),S.push($t);});}let vt={};return vue.watch(ge,ie=>{ie||(F.value=false);}),{$error:je,$pending:Oe,$invalid:ge,$correct:yt,$debounce:ee,$lazy:se,$errors:ft,$ready:mt,$silentErrors:Rt,$rewardEarly:le,$autoDirty:P,$clearExternalErrorsOnChange:U,$anyDirty:y,$edited:ze,$anyEdited:dt,$name:gt,$haveAnyAsyncRule:qt,$shortcuts:vt,$validating:z,$tooltips:pt,$dirty:v,triggerPunishment:F,processShortcuts:Kt,$silentValue:Ie,$inactive:Fe}}),X(),c=vue.watch(l.$dirty,v=>{o.setDirtyEntry(n,v),Object.values(I.value).forEach(F=>{F.$fieldDirty=v;});}),u=vue.watch([l.$error,l.$correct,l.$invalid,l.$pending],()=>{Object.values(I.value).forEach(v=>{v.$fieldError=l.$error.value,v.$fieldInvalid=l.$invalid.value,v.$fieldPending=l.$pending.value,v.$fieldCorrect=l.$correct.value;});}),D=vue.watch(l.$invalid,v=>{l.$rewardEarly.value&&!v&&(l.triggerPunishment.value=false);}),E=vue.watch(l.$haveAnyAsyncRule,A);}function X(){T=vue.watch(e,()=>{l.$autoDirty.value&&(l.$dirty.value||(l.$dirty.value=true)),t.value instanceof Function&&b(),(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s(),l.$rewardEarly.value!==true&&l.$clearExternalErrorsOnChange.value&&f();},{deep:V?true:Ne?1:true});}function oe(){Object.values(I.value).forEach(v=>{v.$parse();});}let I=vue.ref({}),q=vue.ref({});b();function me(v,F){if(f(),l.$dirty.value=false,l.triggerPunishment.value=false,o.setDirtyEntry(n,false),!F)if(v?.toInitialState)B(),e.value=N(C);else if(v?.toState){B();let y;typeof v?.toState=="function"?y=v?.toState():y=v?.toState,C.value=N(y),e.value=N(y);}else C.value=W(e.value)?N(e.value):Array.isArray(e.value)?[...e.value]:e.value;v?.clearExternalErrors&&f(),F||Object.entries(I.value).forEach(([y,ee])=>{ee.$reset();}),!l.$lazy.value&&l.$autoDirty.value&&Object.values(I.value).forEach(y=>y.$parse()),F||b();}function ue(v=true,F=false){l.$dirty.value||(l.$dirty.value=true),F&&v?(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s():v&&s();}async function i(){try{if(m)return w?(ue(!1),w()):{valid:!1,data:e.value};let v=e.value;if(l.triggerPunishment.value=!0,!l.$dirty.value)l.$dirty.value=!0;else if(l.$autoDirty.value&&l.$dirty.value&&!l.$pending.value)return {valid:!l.$error.value,data:v};return m?{valid:!$?.value?.length,data:v}:te(I.value)?{valid:!0,data:v}:{valid:(await Promise.allSettled(Object.entries(I.value).map(([ee,se])=>se.$parse()))).every(ee=>ee.status==="fulfilled"?ee.value===!0:!1),data:v}}catch{return {valid:false,data:e.value}}}function R(v=true){return l.$dirty.value?e.value:v?{_null:true}:null}function f(){p?.value?.length&&(p.value=[]);}!l.$lazy.value&&!l.$dirty.value&&l.$autoDirty.value&&s();let{$shortcuts:x,$validating:j,$autoDirty:H,$rewardEarly:g,$clearExternalErrorsOnChange:_,$haveAnyAsyncRule:K,$debounce:Z,$lazy:Y,triggerPunishment:fe,...ce}=l;return vue.reactive({...ce,$externalErrors:p,$value:e,$rules:I,...x,$reset:me,$touch:ue,$validate:i,$unwatch:B,$watch:G,$extractDirtyFields:R,$clearExternalErrors:f})}function nt({$id:e,path:t,index:r,options:n,storage:a,stateValue:o,customMessages:d,rules:p,externalErrors:$,schemaErrors:m,initialState:h,shortcuts:V,fieldName:C,schemaMode:M}){let w=p.$key?p.$key:$e(),O=`${t}.${String(w)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?O=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let l=vue.toRef($?.value??[],r),S=vue.computed(()=>m?.value?.[r]),T=Ee({state:o,rulesDef:vue.toRef(()=>p),customMessages:d,path:O,storage:a,options:n,externalErrors:l,schemaErrors:S,initialState:h,shortcuts:V,fieldName:C,schemaMode:M});if(T){let D=o.value?.$id;T.$id=D??String(w),a.addArrayStatus(e,T.$id,T);}return T}function _t({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:d,schemaErrors:p,schemaMode:$,initialState:m,shortcuts:h,fieldName:V}){let C=vue.effectScope(),M,w=vue.effectScope(),O,l=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let S=vue.ref(),T=vue.ref(e.value),D,c=vue.ref({}),E=a.getCollectionsEntry(n);O=w.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(R=>typeof R!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(R=>we(R)||typeof R=="function"):false)})),u(),A();function u(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(S.value=$e(),Object.defineProperties(e.value,{$id:{value:S.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(S.value=e.value.$id)),T.value=c.value.$value,Array.isArray(e.value)&&!O.isPrimitiveArray.value?E.value=e.value.filter(i=>typeof i=="object").map((i,R)=>{let{scope:f,unwrapped:x}=Xe(t.value.$each,vue.toRef(()=>i),R);f&&l.push(f);let j=vue.toRef(m.value??[],R),H=vue.toRef(d?.value??{},"$each"),g=vue.computed(()=>p?.value?.$each),_=nt({$id:S.value,path:n,customMessages:r,rules:x??{},stateValue:vue.toRef(()=>i),index:R,options:o,storage:a,externalErrors:H,schemaErrors:g,initialState:j,shortcuts:h,fieldName:V,schemaMode:$});return _||null}).filter(i=>!!i):E.value=[],c.value=be({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:vue.toRef(d?.value??{},"$self"),schemaErrors:vue.computed(()=>p?.value?.$self),$isArray:true,initialState:m,shortcuts:h,fieldName:V,schemaMode:$});}function s(){if(Array.isArray(e.value)&&!O.isPrimitiveArray.value){let i=N(E.value);E.value=e.value.filter(R=>typeof R=="object").map((R,f)=>{let x=vue.toRef(()=>R);if(R.$id&&E.value.find(j=>j.$id===R.$id)){let j=a.getArrayStatus(S.value,R.$id);return j?(j.$value=x,j):null}else {let{scope:j,unwrapped:H}=Xe(t.value.$each,x,f);j&&l.push(j);let g=vue.toRef(d?.value??{},"$each"),_=vue.computed(()=>p?.value?.$each??[]),K=nt({$id:S.value,path:n,customMessages:r,rules:H??{},stateValue:x,index:f,options:o,storage:a,externalErrors:g,schemaErrors:_,initialState:vue.toRef(m.value??[],f),shortcuts:h,fieldName:V,schemaMode:$});return K||null}}).filter(R=>!!R),i.filter(R=>!e.value?.find(f=>R.$id===f.$id)).forEach((R,f)=>{a.deleteArrayStatus(S.value,f.toString());});}else E.value=[];}function b(){D=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?u():s();},{deep:Ne?1:true,flush:"pre"});}function A(){b(),C=vue.effectScope(),M=C.run(()=>{let i=vue.computed({get:()=>e.value,set(y){D(),e.value=y,b();}}),R=vue.computed(()=>c.value.$dirty&&(!E.value.length||E.value.every(y=>y.$dirty))),f=vue.computed(()=>c.value.$anyDirty||E.value.some(y=>y.$anyDirty)),x=vue.computed(()=>c.value.$invalid||E.value.some(y=>y.$invalid)),j=vue.computed(()=>(te(c.value.$rules)?true:c.value.$correct)&&(!E.value.length||E.value.every(y=>y.$correct||y.$anyDirty&&!y.$invalid))),H=vue.computed(()=>c.value.$error||E.value.some(y=>y.$error)),g=vue.computed(()=>!(x.value||_.value)),_=vue.computed(()=>c.value.$pending||E.value.some(y=>y.$pending)),K=vue.computed(()=>!!E.value.length&&E.value.every(y=>y.$edited)),Z=vue.computed(()=>c.value.$anyEdited||E.value.some(y=>y.$anyEdited)),Y=vue.computed(()=>({$self:c.value.$errors,$each:E.value.map(y=>y.$errors)})),fe=vue.computed(()=>({$self:c.value.$silentErrors,$each:E.value.map(y=>y.$silentErrors)})),ce=vue.computed(()=>V);function v(){h?.collections&&Object.entries(h?.collections).forEach(([y,ee])=>{let se=vue.effectScope();F[y]=se.run(()=>{let le=vue.ref();return vue.watchEffect(()=>{le.value=ee(vue.reactive({$dirty:R,$error:H,$silentValue:i,$pending:_,$invalid:x,$correct:j,$errors:Y,$ready:g,$silentErrors:fe,$anyDirty:f,$name:ce,$each:E,$self:c,$value:e,$edited:K,$anyEdited:Z}));}),le}),l.push(se);});}let F={};return v(),{$dirty:R,$anyDirty:f,$invalid:x,$correct:j,$error:H,$pending:_,$errors:Y,$silentErrors:fe,$ready:g,$name:ce,$shortcuts:F,$silentValue:i,$edited:K,$anyEdited:Z}}),O.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 B(){D&&D(),c.value&&c.value.$unwatch(),E.value&&E.value.forEach(i=>{"$dirty"in i&&i.$unwatch();}),C.stop(),C=vue.effectScope(),w.stop(),w=vue.effectScope(true),l.forEach(i=>i.stop()),l=[];}function G(i=true,R=false){c.value.$touch(i,R),E.value.forEach(f=>{f.$touch(i,R);});}function X(i,R){if(B(),!R)if(i?.toInitialState)e.value=N(m.value);else if(i?.toState){let f;typeof i?.toState=="function"?f=i?.toState():f=i?.toState,m.value=N(f),e.value=N(f);}else m.value=N(e.value);i?.clearExternalErrors&&I(),c.value.$reset(),E.value.forEach(f=>{f.$reset(i,true);}),R||u();}async function oe(){let i=e.value;try{return {valid:(await Promise.allSettled([c.value.$validate(),...E.value.map(x=>x.$validate())])).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:i}}catch{return {valid:false,data:i}}}function I(){c.value.$clearExternalErrors(),E.value.forEach(i=>{i.$clearExternalErrors();});}function q(i=true){let R=E.value.map(f=>{if(Ot(f))return f.$extractDirtyFields(i)});return i&&R.every(f=>te(f))&&(R=[]),R}let{$shortcuts:me,...ue}=M;return vue.reactive({$self:c,...ue,...me,$each:E,$value:e,$validate:oe,$unwatch:B,$watch:A,$touch:G,$reset:X,$extractDirtyFields:q,$clearExternalErrors:I})}function Le({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:a,schemaErrors:o,rootSchemaErrors:d,validationGroups:p,initialState:$,fieldName:m,...h}){let V=vue.effectScope(),C,M=[],w=null,O=null,l=null,S=null;async function D(i=true){let R=Object.entries(e.value),f=Object.fromEntries(R.filter(([g,_])=>!!_).map(([g,_])=>{if(_){let K=vue.toRef(t.value??{},g),Z=vue.toRef(()=>_),Y=vue.toRef(a?.value??{},g),fe=vue.computed(()=>o?.value?.[g]),ce=vue.toRef($?.value??{},g);return [g,Ee({state:K,rulesDef:Z,path:r?`${r}.${g}`:g,externalErrors:Y,schemaErrors:fe,initialState:ce,fieldName:g,...h})]}return []})),x=Object.fromEntries(Object.entries(vue.unref(a)??{}).filter(([g,_])=>!(g in e.value)&&!!_).map(([g])=>{let _=vue.toRef(t.value??{},g),K=vue.toRef(a?.value??{},g),Z=vue.computed(()=>o?.value?.[g]),Y=vue.toRef($?.value??{},g);return [g,Ee({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:g,...h})]})),j=Object.fromEntries(Object.entries(vue.unref(o)??{}).map(([g])=>{let _=vue.toRef(t.value??{},g),K=vue.toRef(a?.value??{},g),Z=vue.computed(()=>o?.value?.[g]),Y=vue.toRef($?.value??{},g);return [g,Ee({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:g,...h})]})),H=Object.fromEntries(Object.entries(t.value??{}).filter(([g])=>!(g in e.value)&&!(g in(x??{}))&&!(g in(j??{}))).map(([g])=>{let _=vue.toRef(t.value??{},g),K=vue.toRef(a?.value??{},g),Z=vue.computed(()=>o?.value?.[g]),Y=vue.toRef($?.value??{},g);return [g,Ee({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:g,...h})]}));c.value={...f,...x,...j,...H},i&&s();}let c=h.storage.getFieldsEntry(r);D();function E(){a&&(l=vue.watch(a,()=>{b(),D();},{deep:true}));}function u(){S=vue.watch(t,()=>{b(),D(),G(true,true);},{flush:"sync"});}function s(){n&&(w?.(),w=vue.watch(n,()=>{b(),D();},{deep:true,flush:"post"}),E()),d&&(O?.(),O=vue.watch(d,()=>{b(),D();},{deep:true,flush:"post"})),u(),C=V.run(()=>{let i=vue.computed({get:()=>t.value,set(U){b(),t.value=U,D();}}),R=vue.computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).every(([U,P])=>P?.$dirty)),f=vue.computed(()=>Object.entries(c.value).some(([U,P])=>P?.$anyDirty)),x=vue.computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).some(([U,P])=>P?.$invalid)),j=vue.computed(()=>{let U=Object.entries(c.value).filter(([P,z])=>wt(z)?!z.$inactive:true);return U.length?U.every(([P,z])=>z?.$correct||z.$anyDirty&&!z.$invalid):false}),H=vue.computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).some(([U,P])=>P?.$error)),g=vue.computed(()=>vue.unref(h.options.rewardEarly)!=null?vue.unref(h.options.rewardEarly):false),_=vue.computed(()=>vue.unref(h.options.autoDirty)!=null?vue.unref(h.options.autoDirty):!g.value),K=vue.computed(()=>_.value?f.value&&!(x.value||Y.value):!(x.value||Y.value)),Z=vue.ref(false),Y=vue.computed(()=>Z.value||Object.entries(c.value).some(([U,P])=>P?.$pending)),fe=vue.computed(()=>Object.fromEntries(Object.entries(c.value).map(([U,P])=>[U,P?.$errors]))),ce=vue.computed(()=>Object.fromEntries(Object.entries(c.value).map(([U,P])=>[U,P?.$silentErrors]))),v=vue.computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).every(([U,P])=>P?.$edited)),F=vue.computed(()=>Object.entries(c.value).some(([U,P])=>P?.$anyEdited)),y=vue.computed(()=>m);function ee(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,P])=>{let z=vue.effectScope();le[U]=z.run(()=>{let Ie=vue.ref();return vue.watchEffect(()=>{Ie.value=P(vue.reactive({$dirty:R,$value:t,$silentValue:i,$error:H,$pending:Y,$invalid:x,$correct:j,$ready:K,$anyDirty:f,$name:y,$silentErrors:ce,$errors:fe,$fields:c,$edited:v,$anyEdited:F}));}),Ie}),M.push(z);});}let se=vue.computed({get:()=>p?Object.fromEntries(Object.entries(p?.(c.value)??{}).map(([U,P])=>P.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(z=>[z,bt(P,z)])),...Object.fromEntries(["$errors","$silentErrors"].map(z=>[z,Et(P,z)]))}]:[])):{},set(){}}),le={};return ee(),{$dirty:R,$anyDirty:f,$invalid:x,$correct:j,$error:H,$pending:Y,$errors:fe,$silentErrors:ce,$ready:K,$name:y,$shortcuts:le,$groups:se,$silentValue:i,$edited:v,$anyEdited:F,$localPending:Z}});}function b(){w?.(),l?.(),S?.(),O?.(),M=[],C={},c.value&&Object.entries(c.value).forEach(([i,R])=>{R.$unwatch();});}function A(){Object.entries(c.value).forEach(([i,R])=>{R.$clearExternalErrors();});}function B(i,R){if(l?.(),b(),!R)if(i?.toInitialState)t.value=N({...$.value??{}});else if(i?.toState){let f;typeof i?.toState=="function"?f=i?.toState():f=i?.toState,$.value=N(f),t.value=N(f);}else $.value=N(t.value);Object.values(c.value).forEach(f=>{f.$reset(i,true);}),i?.clearExternalErrors&&A(),E(),R||D();}function G(i=true,R=false){Object.values(c.value).forEach(f=>{f.$touch(i,R);});}function X(i){return i.filter(([R,f])=>W(f)?!(f&&typeof f=="object"&&"_null"in f)&&!te(f):Array.isArray(f)?f.length:true)}function oe(i=true){let R=Object.entries(c.value).map(([f,x])=>[f,x.$extractDirtyFields(i)]);return i&&(R=X(R)),Object.fromEntries(R)}async function I(){try{if(h.schemaMode)return h.onValidate?(G(!1),C.$localPending.value=!0,h.onValidate()):{valid:!1,data:t.value};{let i=t.value;return {valid:(await Promise.allSettled(Object.values(c.value).map(x=>x.$validate()))).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:i}}}catch{return {valid:false,data:t.value}}finally{C.$localPending.value=false;}}let{$shortcuts:q,$localPending:me,...ue}=C;return vue.reactive({...ue,...q,$fields:c,$value:t,$reset:B,$touch:G,$validate:I,$unwatch:b,$watch:s,$clearExternalErrors:A,$extractDirtyFields:oe})}function Ee({rulesDef:e,...t}){if(It(e,t.state,t.schemaMode))return _t({rulesDef:e,...t});if(ke(t.state,e)){if(_e(t.state))return Le({rulesDef:e,...t});{let n=vue.effectScope().run(()=>{let d=vue.toRef(t.state.value?t.state:vue.ref({}));return vue.watch(()=>t.state.value,p=>{d.value=p;},{deep:true}),vue.watch(d,p=>{t.state.value=p;},{deep:true}),{fakeState:d}}),{state:a,...o}=t;return Le({rulesDef:e,...o,state:n.fakeState})}}else if(Ge(e))return be({rulesDef:e,...t})}function Ce({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:o,schemaErrors:d,schemaMode:p=false,onValidate:$}){let m=Qe(),h=vue.ref();return ke(n,r)?h.value=Le({rootRules:r,rulesDef:r,state:n,customMessages:a?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaErrors:d,rootSchemaErrors:d,schemaMode:p,onValidate:$}):Ge(r)&&(h.value=be({rulesDef:r,state:n,customMessages:a?.(),storage:m,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaMode:p,schemaErrors:d,onValidate:$})),vue.getCurrentScope()&&vue.onScopeDispose(()=>{h.value?.$unwatch();}),vue.reactive({regle:h})}function ot(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function a(o,d,p){let $=vue.isRef(d)?d:vue.computed(typeof d=="function"?d:()=>d),m={...n,...p},h=vue.isRef(o)?o:vue.ref(o),V=vue.ref(W(h.value)?{...N(h.value)}:N(h.value));return {r$:Ce({scopeRules:$,state:h,options:m,initialState:V,customRules:e,shortcuts:r}).regle}}return a}var Be=ot();function st(){function e(t,r){return r}return e}var it=st();function Ut({rules:e,modifiers:t,shortcuts:r}){let n=ot(e,t,r),a=st();return {useRegle:n,inferRules:a}}function Me(e,t){let r=t??false,n=vue.computed({get:()=>r?Object.values(e).map(u=>u.$value):Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$value])),set:u=>{r||typeof u=="object"&&Object.entries(u).forEach(([s,b])=>e[s].$value=b);}}),a=vue.computed({get:()=>Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$silentValue])),set:u=>{typeof u=="object"&&Object.entries(u).forEach(([s,b])=>e[s].$silentValue=b);}}),o=vue.computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,b])=>b?.$dirty)}),d=vue.computed(()=>Object.entries(e).some(([u,s])=>s?.$anyDirty)),p=vue.computed(()=>Object.entries(e).some(([u,s])=>s?.$invalid)),$=vue.computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,b])=>b?.$correct||b.$anyDirty&&!b.$invalid)}),m=vue.computed(()=>Object.entries(e).some(([u,s])=>s?.$error)),h=vue.computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,b])=>b?.$ready)}),V=vue.computed(()=>Object.entries(e).some(([u,s])=>s?.$pending)),C=vue.computed(()=>r?Object.entries(e).map(([u,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$errors]))),M=vue.computed(()=>r?Object.entries(e).map(([u,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$silentErrors]))),w=vue.computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,b])=>b?.$edited)}),O=vue.computed(()=>Object.entries(e).some(([u,s])=>s?.$anyEdited)),l=vue.computed(()=>r?Object.values(e):e);function S(u){Object.values(e).forEach(s=>{s.$reset(u);});}function T(){Object.values(e).forEach(u=>{u.$touch();});}function D(u=true){return Object.values(e).map(s=>s.$extractDirtyFields(u))}function c(){Object.values(e).forEach(u=>{u.$clearExternalErrors();});}async function E(){try{let u=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:u}}catch{return {valid:false,data:n.value}}}return vue.reactive({...!r&&{$silentValue:a},$errors:C,$silentErrors:M,$instances:l,$value:n,$dirty:o,$anyDirty:d,$invalid:p,$correct:$,$error:m,$pending:V,$ready:h,$edited:w,$anyEdited:O,$reset:S,$touch:T,$validate:E,$extractDirtyFields:D,$clearExternalErrors:c})}function Lt(e){function t(r){let n=vue.computed(()=>vue.toValue(r));d();let a=vue.ref(p(e.value)),o=vue.reactive({r$:a});function d(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}vue.watch(n,d),vue.watch(e,$=>{a.value=p($);},{deep:true});function p($){if(n.value){let m=$[n.value]??{};return Me(m,true)}else return Me($["~~global"]??{},true)}return {r$:o.r$}}return {useCollectScope:t}}function zt(e,t){let r=t??Be;return {useScopedRegle:(a,o,d)=>{let{namespace:p,...$}=d??{},m=vue.computed(()=>vue.toValue(p)),h=vue.ref(`${Object.keys(e.value).length+1}-${$e()}`),V=vue.computed(()=>`instance-${h.value}`),{r$:C}=r(a,o,$);w(),Dt(M),vue.watch(m,(O,l)=>{M(l),w();}),vue.getCurrentInstance()&&vue.onMounted(()=>{let O=vue.getCurrentInstance();typeof window<"u"&&O?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(O?.proxy?.$el?.parentElement)&&M();});function M(O){let l=O??m.value;l?e.value[l]&&delete e.value[l][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 He(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):Ct(()=>vue.ref({"~~global":{}})))(),{useScopedRegle:n}=zt(r,e?.customUseRegle),{useCollectScope:a}=Lt(r);return {useScopedRegle:n,useCollectScope:a}}var {useCollectScope:ut,useScopedRegle:ct}=He();
2
+ exports.InternalRuleType=Ke;exports.createRule=Ye;exports.createScopedUseRegle=He;exports.defineRegleConfig=Ut;exports.flatErrors=et;exports.inferRules=it;exports.mergeRegles=Me;exports.unwrapRuleParameters=re;exports.useCollectScope=ut;exports.useRegle=Be;exports.useRootStorage=Ce;exports.useScopedRegle=ct;
@@ -1,2 +1,2 @@
1
- import {effectScope,computed,toValue,ref,watch,getCurrentInstance,onMounted,reactive,getCurrentScope,onScopeDispose,isRef,shallowRef,toRef,unref,watchEffect,version}from'vue';function te(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 $t=Symbol("regle-rule");function zt(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 N(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>N(n)))),r=="Map"&&(t=new Map([...e].map(n=>[N(n[0]),N(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,zt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=N(e[n]);}return t}function K(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function ze(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 Ve(e,t,r){let n,l=(...c)=>new Promise(m=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...c])).then(m);},t);});return l.cancel=()=>{clearTimeout(n),n=void 0;},l}var qe=(r=>(r.Inline="__inline",r.Async="__async",r))(qe||{});function St(e,t){return e.some(r=>r[t])}function ht(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function re(e){try{return e.map(t=>toValue(t))}catch{return []}}function bt(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function Tt(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(m=>m.trim()).filter(m=>m.length>0).length:0}function Ke(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(d,...$){return e.validator(d,...re($.length?$:t))},message(d){return typeof e.message=="function"?e.message({...d,$params:re(d?.$params?.length?d.$params:t)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:re(d?.$params?.length?d.$params:t)}):e.active??true},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:re(d?.$params?.length?d.$params:t)}):e.tooltip??[]},exec(d){let $=e.validator(d,...re(t)),p;return $ instanceof Promise?$.then(h=>(p=h,typeof p=="object"&&"$valid"in p?p.$valid:typeof p=="boolean"?p:false)):(p=$,typeof p=="object"&&"$valid"in p?p.$valid:typeof p=="boolean"?p: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:bt(t),_brand:$t}}function Je(e){if(typeof e.validator=="function"){let r=Ke(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(Tt(e.validator)>1){let l=function(...c){return Ke(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 Ye(){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 m(S){let E=t.value.get(S);if(E)return E;{let D=ref({});return t.value.set(S,D),D}}function d(S){let E=r.value.get(S);if(E)return E;{let D=ref([]);return r.value.set(S,D),D}}function $(S,E,D){c.value.set(`${S}-${E}`,D);}function p(S,E){return c.value.get(`${S}-${E}`)}function h(S,E){S&&E!=null&&c.value.delete(`${S}-${E}`);}function V(S,E){n.value.set(S,E);}function C(S){return n.value.get(S)??false}function M(S,E){e.value.set(S,E);}function w(S,E){let D=e.value.get(S);return D?O(E,D)?{valid:true}:{valid:false}:void 0}function O(S,E){let D=Object.keys(E),u=Object.keys(S);return u.length!==D.length||!u.every(i=>D.includes(i))?false:u.every(i=>{let o=S[i],b=E[i];return !b||!o||typeof o=="function"||typeof b=="function"||typeof o=="number"||typeof o=="boolean"?false:o._params?o._params?.every((A,L)=>{if(typeof b=="number"||typeof b=="boolean")return true;{let G=re(b._params),X=re(o._params);return G?.[L]===X?.[L]}}):true})}function a(S){let E=l.value.get(S);if(E)return E;{let D=ref(false),u=ref(true),T=ref({}),i=ref(false);return l.value.set(S,{$pending:D,$valid:u,$metadata:T,$validating:i}),{$pending:D,$valid:u,$metadata:T,$validating:i}}}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:a,getFieldsEntry:m,getCollectionsEntry:d,getArrayStatus:p,addArrayStatus:$,deleteArrayStatus:h,arrayStatusStorage:c}}function _e(e){return K(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 tr(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]),m=Number(n[l]);if(c>m)return 1;if(m>c)return -1;if(!isNaN(c)&&isNaN(m))return 1;if(isNaN(c)&&!isNaN(m))return -1}return 0}var Ne=tr(version,"3.5.0")!==-1;function rr(){return Math.floor(Math.random()*Date.now()).toString()}function $e(){return typeof window>"u"?rr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Et(e){return getCurrentScope()?(onScopeDispose(e),true):false}function xt(e){let t=false,r,n=effectScope(true);return (...l)=>(t||(r=n.run(()=>e(...l)),t=true),r)}function ke(e,t){return _e(e)||K(t.value)&&!te(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function Dt(e,t,r=false){return !!e.value&&K(e.value)&&"$each"in e.value||r&&Array.isArray(t.value)&&t.value.some(K)||Array.isArray(t.value)&&t.value.some(K)}function Ge(e){return !!e.value&&K(e.value)}function we(e){return K(e)&&"_validator"in e}function Pe(e){return typeof e.value!="function"}function Ct(e){return K(e)&&"$fields"in e}function It(e){return !!e&&"$rules"in e}function Xe({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 Ot({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 wt({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:c,$debounce:m,modifiers:d}){let $=effectScope(),p={},h,V=ref(false),{$pending:C,$valid:M,$metadata:w,$validating:O}=c.trySetRuleStatusRef(`${l}.${r}`);function a(){$=effectScope(),p=$.run(()=>{let o=ref(false),b=ref(false),A=ref(true),L=ref(false),G=ref(false),X=computed(()=>({$value:n.value,$error:b.value,$dirty:o.value,$pending:L.value,$correct:G.value,$invalid:A.value,$rule:{$valid:M.value,$invalid:!M.value,$pending:C.value},$params:R.value,...w.value})),oe=computed(()=>Pe(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function I(x){let F="",B=e?e[r]?.[x]:void 0;if(B&&(typeof B=="function"?F=B(X.value):F=B),Pe(t)){let y=`_${x}_patched`;B&&!t.value[y]||(typeof t.value[x]=="function"?F=t.value[x](X.value):F=t.value[x]??"");}return F}let z=computed(()=>{let x=I("message");return te(x)&&(x="This field is not valid"),x}),me=computed(()=>I("tooltip")),ue=computed(()=>Pe(t)&&t.value.type?t.value.type:r),s=computed(()=>Pe(t)?t.value.validator:t.value),R=computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),f=computed(()=>`${l}.${ue.value}`);return {$active:oe,$message:z,$type:ue,$validator:s,$params:R,$path:f,$tooltip:me,$fieldCorrect:G,$fieldError:b,$fieldDirty:o,$fieldPending:L,$fieldInvalid:A}}),h=watch(p?.$params,()=>{(d.$autoDirty.value||d.$rewardEarly.value&&p.$fieldError.value)&&u();});}a();function S(){M.value=true,p.$fieldDirty.value&&(C.value=true);}async function E(){let o=false;try{let b=p.$validator.value;if(typeof b!="function")return console.error(`${l}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let A=b(n.value,...p.$params.value),L=n.value;S();let G;if(A instanceof Promise?G=await A:G=A,n.value!==L)return !0;if(typeof G=="boolean")o=G;else {let{$valid:X,...oe}=G;o=X,w.value=oe;}}catch{o=false;}finally{C.value=false;}return o}let D=Ve(E,m??200);async function u(){try{O.value=!0;let o=!1;if(we(t.value)&&t.value._async)o=await D();else {let b=p.$validator.value,A=b(n.value,...p.$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")o=A;else {let{$valid:L,...G}=A;o=L,w.value=G;}}return M.value=o,o}catch{return false}finally{O.value=false;}}function T(){M.value=true,w.value={},C.value=false,O.value=false,a();}function i(){h(),$.stop(),$=effectScope();}return reactive({...p,$pending:C,$valid:M,$metadata:w,$haveAsync:V,$validating:O,$parse:u,$unwatch:i,$watch:a,$reset:T})}function be({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:c,options:m,externalErrors:d,schemaErrors:$,schemaMode:p,onUnwatch:h,$isArray:V,initialState:C,shortcuts:M,onValidate:w}){let O=effectScope(),a,S=[],E,D,u,T,i,o=()=>{};function b(){let v=t.value,j=c.checkRuleDeclEntry(n,v);z.value=Object.fromEntries(Object.entries(v).filter(([g])=>g.startsWith("$"))),G(),I.value=Object.fromEntries(Object.entries(t.value).filter(([g])=>!g.startsWith("$")).map(([g,ee])=>{if(ee){let se=toRef(()=>ee);return [g,wt({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:se,ruleKey:g,state:e,path:n,storage:c,$debounce:z.value.$debounce})]}return []}).filter(g=>!!g.length)),a.processShortcuts(),A(),j?.valid!=null&&(a.$dirty.value=c.getDirtyState(n),(a.$dirty.value&&a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o()),c.addRuleDeclEntry(n,v);}function A(){o=a.$debounce.value?Ve(oe,a.$debounce.value??a.$haveAnyAsyncRule?100:0):oe;}function L(){I.value&&Object.entries(I.value).forEach(([v,j])=>{j.$unwatch();}),u(),i?.(),a.$dirty.value&&c.setDirtyEntry(n,a.$dirty.value),E?.(),D?.(),O.stop(),O=effectScope(),S.forEach(v=>v.stop()),S=[],h?.(),T?.();}function G(){I.value&&Object.entries(I.value).forEach(([v,j])=>{j.$watch();}),a=O.run(()=>{let v=ref(false),j=ref(false),g=computed(()=>v.value),ee=computed(()=>z.value.$debounce),se=computed(()=>z.value.$lazy!=null?z.value.$lazy:unref(m.lazy)!=null?unref(m.lazy):false),le=computed(()=>z.value.$rewardEarly!=null?z.value.$rewardEarly:unref(m.rewardEarly)!=null?unref(m.rewardEarly):false),U=computed(()=>z.value.$clearExternalErrorsOnChange!=null?z.value.$clearExternalErrorsOnChange:unref(m.clearExternalErrorsOnChange)!=null?unref(m.clearExternalErrorsOnChange):true),P=computed(()=>z.value.$autoDirty!=null?z.value.$autoDirty:unref(m.autoDirty)!=null?unref(m.autoDirty):!le.value),H=computed(()=>Object.entries(I.value).some(([ie,Q])=>Q.$validating)),Ie=computed({get:()=>e.value,set(ie){E(),e.value=ie,X();}}),Fe=computed(()=>ye.value&&!Oe.value&&v.value),ut=computed(()=>Xe({field:{$rules:I.value,$error:Fe.value,$externalErrors:d?.value,$schemaErrors:$?.value}})),ct=computed(()=>Xe({field:{$rules:I.value,$error:Fe.value,$externalErrors:d?.value,$schemaErrors:$?.value},silent:true})),He=computed(()=>v.value?C.value instanceof Date&&e.value instanceof Date?ze(C.value).getDate()!==ze(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),ft=computed(()=>He.value),Rt=computed(()=>Ot({field:{$rules:I.value}})),dt=computed(()=>P.value?g.value&&!(ye.value||Oe.value):!(ye.value||Oe.value)),Oe=computed(()=>j.value||!le.value?Object.entries(I.value).some(([ie,Q])=>Q.$pending):false),ye=computed(()=>d?.value?.length||$?.value?.length?true:je.value?false:!le.value||le.value&&j.value?Object.entries(I.value).some(([ie,Q])=>!Q.$valid):false),pt=computed(()=>l),je=computed(()=>!!(te(I.value)&&!p)),mt=computed(()=>d?.value?.length||je.value?false:v.value&&!te(e.value)&&!H.value?p?!$?.value?.length:Object.values(I.value).some(Q=>Q.$active)?Object.values(I.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),Bt=computed(()=>Object.entries(I.value).some(([ie,Q])=>Q.$haveAsync));function Ht(){M?.fields&&Object.entries(M.fields).forEach(([ie,Q])=>{let gt=effectScope();yt[ie]=gt.run(()=>{let vt=ref();return watchEffect(()=>{vt.value=Q(reactive({$dirty:v,$externalErrors:d?.value??[],$value:e,$silentValue:Ie,$rules:I,$error:Fe,$pending:Oe,$invalid:ye,$correct:mt,$errors:ut,$ready:dt,$silentErrors:ct,$anyDirty:g,$tooltips:Rt,$name:pt,$inactive:je,$edited:He,$anyEdited:ft}));}),vt}),S.push(gt);});}let yt={};return watch(ye,ie=>{ie||(j.value=false);}),{$error:Fe,$pending:Oe,$invalid:ye,$correct:mt,$debounce:ee,$lazy:se,$errors:ut,$ready:dt,$silentErrors:ct,$rewardEarly:le,$autoDirty:P,$clearExternalErrorsOnChange:U,$anyDirty:g,$edited:He,$anyEdited:ft,$name:pt,$haveAnyAsyncRule:Bt,$shortcuts:yt,$validating:H,$tooltips:Rt,$dirty:v,triggerPunishment:j,processShortcuts:Ht,$silentValue:Ie,$inactive:je}}),X(),u=watch(a.$dirty,v=>{c.setDirtyEntry(n,v),Object.values(I.value).forEach(j=>{j.$fieldDirty=v;});}),i=watch([a.$error,a.$correct,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(v=>{v.$fieldError=a.$error.value,v.$fieldInvalid=a.$invalid.value,v.$fieldPending=a.$pending.value,v.$fieldCorrect=a.$correct.value;});}),D=watch(a.$invalid,v=>{a.$rewardEarly.value&&!v&&(a.triggerPunishment.value=false);}),T=watch(a.$haveAnyAsyncRule,A);}function X(){E=watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&b(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&f();},{deep:V?true:Ne?1:true});}function oe(){Object.values(I.value).forEach(v=>{v.$parse();});}let I=ref({}),z=ref({});b();function me(v,j){if(f(),a.$dirty.value=false,a.triggerPunishment.value=false,c.setDirtyEntry(n,false),!j)if(v?.toInitialState)L(),e.value=N(C);else if(v?.toState){L();let g;typeof v?.toState=="function"?g=v?.toState():g=v?.toState,C.value=N(g),e.value=N(g);}else C.value=K(e.value)?N(e.value):Array.isArray(e.value)?[...e.value]:e.value;v?.clearExternalErrors&&f(),j||Object.entries(I.value).forEach(([g,ee])=>{ee.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(g=>g.$parse()),j||b();}function ue(v=true,j=false){a.$dirty.value||(a.$dirty.value=true),j&&v?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o():v&&o();}async function s(){try{if(p)return w?(ue(!1),w()):{valid:!1,data:e.value};let v=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:v};return p?{valid:!$?.value?.length,data:v}:te(I.value)?{valid:!0,data:v}:{valid:(await Promise.allSettled(Object.entries(I.value).map(([ee,se])=>se.$parse()))).every(ee=>ee.status==="fulfilled"?ee.value===!0:!1),data:v}}catch{return {valid:false,data:e.value}}}function R(v=true){return a.$dirty.value?e.value:v?{_null:true}:null}function f(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&o();let{$shortcuts:x,$validating:F,$autoDirty:B,$rewardEarly:y,$clearExternalErrorsOnChange:_,$haveAnyAsyncRule:q,$debounce:Z,$lazy:Y,triggerPunishment:fe,...ce}=a;return reactive({...ce,$externalErrors:d,$value:e,$rules:I,...x,$reset:me,$touch:ue,$validate:s,$unwatch:L,$watch:G,$extractDirtyFields:R,$clearExternalErrors:f})}function tt({$id:e,path:t,index:r,options:n,storage:l,stateValue:c,customMessages:m,rules:d,externalErrors:$,schemaErrors:p,initialState:h,shortcuts:V,fieldName:C,schemaMode:M}){let w=d.$key?d.$key:$e(),O=`${t}.${String(w)}`;typeof c.value=="object"&&c.value!=null&&(c.value.$id?O=`${t}.${c.value.$id}`:Object.defineProperties(c.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let a=toRef($?.value??[],r),S=computed(()=>p?.value?.[r]),E=Te({state:c,rulesDef:toRef(()=>d),customMessages:m,path:O,storage:l,options:n,externalErrors:a,schemaErrors:S,initialState:h,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 Ft({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:c,externalErrors:m,schemaErrors:d,schemaMode:$,initialState:p,shortcuts:h,fieldName:V}){let C=effectScope(),M,w=effectScope(),O,a=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let S=ref(),E=ref(e.value),D,u=ref({}),T=l.getCollectionsEntry(n);O=w.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(R=>typeof R!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(R=>we(R)||typeof R=="function"):false)})),i(),A();function i(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(S.value=$e(),Object.defineProperties(e.value,{$id:{value:S.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(S.value=e.value.$id)),E.value=u.value.$value,Array.isArray(e.value)&&!O.isPrimitiveArray.value?T.value=e.value.filter(s=>typeof s=="object").map((s,R)=>{let{scope:f,unwrapped:x}=Qe(t.value.$each,toRef(()=>s),R);f&&a.push(f);let F=toRef(p.value??[],R),B=toRef(m?.value??{},"$each"),y=computed(()=>d?.value?.$each),_=tt({$id:S.value,path:n,customMessages:r,rules:x??{},stateValue:toRef(()=>s),index:R,options:c,storage:l,externalErrors:B,schemaErrors:y,initialState:F,shortcuts:h,fieldName:V,schemaMode:$});return _||null}).filter(s=>!!s):T.value=[],u.value=be({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:c,externalErrors:toRef(m?.value??{},"$self"),schemaErrors:computed(()=>d?.value?.$self),$isArray:true,initialState:p,shortcuts:h,fieldName:V,schemaMode:$});}function o(){if(Array.isArray(e.value)&&!O.isPrimitiveArray.value){let s=N(T.value);T.value=e.value.filter(R=>typeof R=="object").map((R,f)=>{let x=toRef(()=>R);if(R.$id&&T.value.find(F=>F.$id===R.$id)){let F=l.getArrayStatus(S.value,R.$id);return F?(F.$value=x,F):null}else {let{scope:F,unwrapped:B}=Qe(t.value.$each,x,f);F&&a.push(F);let y=toRef(m?.value??{},"$each"),_=computed(()=>d?.value?.$each??[]),q=tt({$id:S.value,path:n,customMessages:r,rules:B??{},stateValue:x,index:f,options:c,storage:l,externalErrors:y,schemaErrors:_,initialState:toRef(p.value??[],f),shortcuts:h,fieldName:V,schemaMode:$});return q||null}}).filter(R=>!!R),s.filter(R=>!e.value?.find(f=>R.$id===f.$id)).forEach((R,f)=>{l.deleteArrayStatus(S.value,f.toString());});}else T.value=[];}function b(){D=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?i():o();},{deep:Ne?1:true,flush:"pre"});}function A(){b(),C=effectScope(),M=C.run(()=>{let s=computed({get:()=>e.value,set(g){D(),e.value=g,b();}}),R=computed(()=>u.value.$dirty&&(!T.value.length||T.value.every(g=>g.$dirty))),f=computed(()=>u.value.$anyDirty||T.value.some(g=>g.$anyDirty)),x=computed(()=>u.value.$invalid||T.value.some(g=>g.$invalid)),F=computed(()=>(te(u.value.$rules)?true:u.value.$correct)&&(!T.value.length||T.value.every(g=>g.$correct||g.$anyDirty&&!g.$invalid))),B=computed(()=>u.value.$error||T.value.some(g=>g.$error)),y=computed(()=>!(x.value||_.value)),_=computed(()=>u.value.$pending||T.value.some(g=>g.$pending)),q=computed(()=>!!T.value.length&&T.value.every(g=>g.$edited)),Z=computed(()=>u.value.$anyEdited||T.value.some(g=>g.$anyEdited)),Y=computed(()=>({$self:u.value.$errors,$each:T.value.map(g=>g.$errors)})),fe=computed(()=>({$self:u.value.$silentErrors,$each:T.value.map(g=>g.$silentErrors)})),ce=computed(()=>V);function v(){h?.collections&&Object.entries(h?.collections).forEach(([g,ee])=>{let se=effectScope();j[g]=se.run(()=>{let le=ref();return watchEffect(()=>{le.value=ee(reactive({$dirty:R,$error:B,$silentValue:s,$pending:_,$invalid:x,$correct:F,$errors:Y,$ready:y,$silentErrors:fe,$anyDirty:f,$name:ce,$each:T,$self:u,$value:e,$edited:q,$anyEdited:Z}));}),le}),a.push(se);});}let j={};return v(),{$dirty:R,$anyDirty:f,$invalid:x,$correct:F,$error:B,$pending:_,$errors:Y,$silentErrors:fe,$ready:y,$name:ce,$shortcuts:j,$silentValue:s,$edited:q,$anyEdited:Z}}),O.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 L(){D&&D(),u.value&&u.value.$unwatch(),T.value&&T.value.forEach(s=>{"$dirty"in s&&s.$unwatch();}),C.stop(),C=effectScope(),w.stop(),w=effectScope(true),a.forEach(s=>s.stop()),a=[];}function G(s=true,R=false){u.value.$touch(s,R),T.value.forEach(f=>{f.$touch(s,R);});}function X(s,R){if(L(),!R)if(s?.toInitialState)e.value=N(p.value);else if(s?.toState){let f;typeof s?.toState=="function"?f=s?.toState():f=s?.toState,p.value=N(f),e.value=N(f);}else p.value=N(e.value);s?.clearExternalErrors&&I(),u.value.$reset(),T.value.forEach(f=>{f.$reset(s,true);}),R||i();}async function oe(){let s=e.value;try{return {valid:(await Promise.allSettled([u.value.$validate(),...T.value.map(x=>x.$validate())])).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:s}}catch{return {valid:false,data:s}}}function I(){u.value.$clearExternalErrors(),T.value.forEach(s=>{s.$clearExternalErrors();});}function z(s=true){let R=T.value.map(f=>{if(Ct(f))return f.$extractDirtyFields(s)});return s&&R.every(f=>te(f))&&(R=[]),R}let{$shortcuts:me,...ue}=M;return reactive({$self:u,...ue,...me,$each:T,$value:e,$validate:oe,$unwatch:L,$watch:A,$touch:G,$reset:X,$extractDirtyFields:z,$clearExternalErrors:I})}function We({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:c,rootSchemaErrors:m,validationGroups:d,initialState:$,fieldName:p,...h}){let V=effectScope(),C,M=[],w=null,O=null,a=null,S=null;async function D(s=true){let R=Object.entries(e.value),f=Object.fromEntries(R.filter(([y,_])=>!!_).map(([y,_])=>{if(_){let q=toRef(t.value??{},y),Z=toRef(()=>_),Y=toRef(l?.value??{},y),fe=computed(()=>c?.value?.[y]),ce=toRef($?.value??{},y);return [y,Te({state:q,rulesDef:Z,path:r?`${r}.${y}`:y,externalErrors:Y,schemaErrors:fe,initialState:ce,fieldName:y,...h})]}return []})),x=Object.fromEntries(Object.entries(unref(l)??{}).filter(([y,_])=>!(y in e.value)&&!!_).map(([y])=>{let _=toRef(t.value??{},y),q=toRef(l?.value??{},y),Z=computed(()=>c?.value?.[y]),Y=toRef($?.value??{},y);return [y,Te({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:y,...h})]})),F=Object.fromEntries(Object.entries(unref(c)??{}).map(([y])=>{let _=toRef(t.value??{},y),q=toRef(l?.value??{},y),Z=computed(()=>c?.value?.[y]),Y=toRef($?.value??{},y);return [y,Te({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:y,...h})]})),B=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(x??{}))&&!(y in(F??{}))).map(([y])=>{let _=toRef(t.value??{},y),q=toRef(l?.value??{},y),Z=computed(()=>c?.value?.[y]),Y=toRef($?.value??{},y);return [y,Te({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:y,...h})]}));u.value={...f,...x,...F,...B},s&&o();}let u=h.storage.getFieldsEntry(r);D();function T(){l&&(a=watch(l,()=>{b(),D();},{deep:true}));}function i(){S=watch(t,()=>{b(),D(),G(true,true);},{flush:"sync"});}function o(){n&&(w?.(),w=watch(n,()=>{b(),D();},{deep:true,flush:"post"}),T()),m&&(O?.(),O=watch(m,()=>{b(),D();},{deep:true,flush:"post"})),i(),C=V.run(()=>{let s=computed({get:()=>t.value,set(U){b(),t.value=U,D();}}),R=computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([U,P])=>P?.$dirty)),f=computed(()=>Object.entries(u.value).some(([U,P])=>P?.$anyDirty)),x=computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).some(([U,P])=>P?.$invalid)),F=computed(()=>{let U=Object.entries(u.value).filter(([P,H])=>It(H)?!H.$inactive:true);return U.length?U.every(([P,H])=>H?.$correct||H.$anyDirty&&!H.$invalid):false}),B=computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).some(([U,P])=>P?.$error)),y=computed(()=>unref(h.options.rewardEarly)!=null?unref(h.options.rewardEarly):false),_=computed(()=>unref(h.options.autoDirty)!=null?unref(h.options.autoDirty):!y.value),q=computed(()=>_.value?f.value&&!(x.value||Y.value):!(x.value||Y.value)),Z=ref(false),Y=computed(()=>Z.value||Object.entries(u.value).some(([U,P])=>P?.$pending)),fe=computed(()=>Object.fromEntries(Object.entries(u.value).map(([U,P])=>[U,P?.$errors]))),ce=computed(()=>Object.fromEntries(Object.entries(u.value).map(([U,P])=>[U,P?.$silentErrors]))),v=computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([U,P])=>P?.$edited)),j=computed(()=>Object.entries(u.value).some(([U,P])=>P?.$anyEdited)),g=computed(()=>p);function ee(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,P])=>{let H=effectScope();le[U]=H.run(()=>{let Ie=ref();return watchEffect(()=>{Ie.value=P(reactive({$dirty:R,$value:t,$silentValue:s,$error:B,$pending:Y,$invalid:x,$correct:F,$ready:q,$anyDirty:f,$name:g,$silentErrors:ce,$errors:fe,$fields:u,$edited:v,$anyEdited:j}));}),Ie}),M.push(H);});}let se=computed({get:()=>d?Object.fromEntries(Object.entries(d?.(u.value)??{}).map(([U,P])=>P.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(H=>[H,St(P,H)])),...Object.fromEntries(["$errors","$silentErrors"].map(H=>[H,ht(P,H)]))}]:[])):{},set(){}}),le={};return ee(),{$dirty:R,$anyDirty:f,$invalid:x,$correct:F,$error:B,$pending:Y,$errors:fe,$silentErrors:ce,$ready:q,$name:g,$shortcuts:le,$groups:se,$silentValue:s,$edited:v,$anyEdited:j,$localPending:Z}});}function b(){w?.(),a?.(),S?.(),O?.(),M=[],C={},u.value&&Object.entries(u.value).forEach(([s,R])=>{R.$unwatch();});}function A(){Object.entries(u.value).forEach(([s,R])=>{R.$clearExternalErrors();});}function L(s,R){if(a?.(),b(),!R)if(s?.toInitialState)t.value=N({...$.value??{}});else if(s?.toState){let f;typeof s?.toState=="function"?f=s?.toState():f=s?.toState,$.value=N(f),t.value=N(f);}else $.value=N(t.value);Object.values(u.value).forEach(f=>{f.$reset(s,true);}),s?.clearExternalErrors&&A(),T(),R||D();}function G(s=true,R=false){Object.values(u.value).forEach(f=>{f.$touch(s,R);});}function X(s){return s.filter(([R,f])=>K(f)?!(f&&typeof f=="object"&&"_null"in f)&&!te(f):Array.isArray(f)?f.length:true)}function oe(s=true){let R=Object.entries(u.value).map(([f,x])=>[f,x.$extractDirtyFields(s)]);return s&&(R=X(R)),Object.fromEntries(R)}async function I(){try{if(h.schemaMode)return h.onValidate?(G(!1),C.$localPending.value=!0,h.onValidate()):{valid:!1,data:t.value};{let s=t.value;return {valid:(await Promise.allSettled(Object.values(u.value).map(x=>x.$validate()))).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:s}}}catch{return {valid:false,data:t.value}}finally{C.$localPending.value=false;}}let{$shortcuts:z,$localPending:me,...ue}=C;return reactive({...ue,...z,$fields:u,$value:t,$reset:L,$touch:G,$validate:I,$unwatch:b,$watch:o,$clearExternalErrors:A,$extractDirtyFields:oe})}function Te({rulesDef:e,...t}){if(Dt(e,t.state,t.schemaMode))return Ft({rulesDef:e,...t});if(ke(t.state,e)){if(_e(t.state))return We({rulesDef:e,...t});{let n=effectScope().run(()=>{let m=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,d=>{m.value=d;},{deep:true}),watch(m,d=>{t.state.value=d;},{deep:true}),{fakeState:m}}),{state:l,...c}=t;return We({rulesDef:e,...c,state:n.fakeState})}}else if(Ge(e))return be({rulesDef:e,...t})}function Ce({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:c,schemaErrors:m,schemaMode:d=false,onValidate:$}){let p=Ye(),h=ref();return ke(n,r)?h.value=We({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:p,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:c,fieldName:"root",path:"",schemaErrors:m,rootSchemaErrors:m,schemaMode:d,onValidate:$}):Ge(r)&&(h.value=be({rulesDef:r,state:n,customMessages:l?.(),storage:p,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:c,fieldName:"root",path:"",schemaMode:d,schemaErrors:m,onValidate:$})),getCurrentScope()&&onScopeDispose(()=>{h.value?.$unwatch();}),reactive({regle:h})}function at(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(c,m,d){let $=isRef(m)?m:computed(typeof m=="function"?m:()=>m),p={...n,...d},h=isRef(c)?c:ref(c),V=ref(K(h.value)?{...N(h.value)}:N(h.value));return {r$:Ce({scopeRules:$,state:h,options:p,initialState:V,customRules:e,shortcuts:r}).regle}}return l}var Le=at();function lt(){function e(t,r){return r}return e}var ot=lt();function Nt({rules:e,modifiers:t,shortcuts:r}){let n=at(e,t,r),l=lt();return {useRegle:n,inferRules:l}}function Me(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(i=>i.$value):Object.fromEntries(Object.entries(e).map(([i,o])=>[i,o.$value])),set:i=>{r||typeof i=="object"&&Object.entries(i).forEach(([o,b])=>e[o].$value=b);}}),l=computed({get:()=>Object.fromEntries(Object.entries(e).map(([i,o])=>[i,o.$silentValue])),set:i=>{typeof i=="object"&&Object.entries(i).forEach(([o,b])=>e[o].$silentValue=b);}}),c=computed(()=>{let i=Object.entries(e);return !!i.length&&i.every(([o,b])=>b?.$dirty)}),m=computed(()=>Object.entries(e).some(([i,o])=>o?.$anyDirty)),d=computed(()=>Object.entries(e).some(([i,o])=>o?.$invalid)),$=computed(()=>{let i=Object.entries(e);return !!i.length&&i.every(([o,b])=>b?.$correct||b.$anyDirty&&!b.$invalid)}),p=computed(()=>Object.entries(e).some(([i,o])=>o?.$error)),h=computed(()=>{let i=Object.entries(e);return !!i.length&&i.every(([o,b])=>b?.$ready)}),V=computed(()=>Object.entries(e).some(([i,o])=>o?.$pending)),C=computed(()=>r?Object.entries(e).map(([i,o])=>o.$errors):Object.fromEntries(Object.entries(e).map(([i,o])=>[i,o.$errors]))),M=computed(()=>r?Object.entries(e).map(([i,o])=>o.$silentErrors):Object.fromEntries(Object.entries(e).map(([i,o])=>[i,o.$silentErrors]))),w=computed(()=>{let i=Object.entries(e);return !!i.length&&i.every(([o,b])=>b?.$edited)}),O=computed(()=>Object.entries(e).some(([i,o])=>o?.$anyEdited)),a=computed(()=>r?Object.values(e):e);function S(i){Object.values(e).forEach(o=>{o.$reset(i);});}function E(){Object.values(e).forEach(i=>{i.$touch();});}function D(i=true){return Object.values(e).map(o=>o.$extractDirtyFields(i))}function u(){Object.values(e).forEach(i=>{i.$clearExternalErrors();});}async function T(){try{let i=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:i}}catch{return {valid:false,data:n.value}}}return reactive({...!r&&{$silentValue:l},$errors:C,$silentErrors:M,$instances:a,$value:n,$dirty:c,$anyDirty:m,$invalid:d,$correct:$,$error:p,$pending:V,$ready:h,$edited:w,$anyEdited:O,$reset:S,$touch:E,$validate:T,$extractDirtyFields:D,$clearExternalErrors:u})}function Gt(e){function t(r){let n=computed(()=>toValue(r));m();let l=ref(d(e.value)),c=reactive({r$:l});function m(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}watch(n,m),watch(e,$=>{l.value=d($);},{deep:true});function d($){if(n.value){let p=$[n.value]??{};return Me(p,true)}else return Me($["~~global"]??{},true)}return {r$:c.r$}}return {useCollectScope:t}}function Lt(e,t){let r=t??Le;return {useScopedRegle:(l,c,m)=>{let{namespace:d,...$}=m??{},p=computed(()=>toValue(d)),h=ref(`${Object.keys(e.value).length+1}-${$e()}`),V=computed(()=>`instance-${h.value}`),{r$:C}=r(l,c,$);w(),Et(M),watch(p,(O,a)=>{M(a),w();}),getCurrentInstance()&&onMounted(()=>{let O=getCurrentInstance();typeof window<"u"&&O?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(O?.proxy?.$el?.parentElement)&&M();});function M(O){let a=O??p.value;a?e.value[a]&&delete e.value[a][V.value]:e.value["~~global"][V.value]&&delete e.value["~~global"][V.value];}function w(){p.value?(e.value[p.value]||(e.value[p.value]={}),e.value[p.value][V.value]=C):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][V.value]=C);}return {r$:C,dispose:M,register:w}}}}function Be(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):xt(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=Lt(r,e?.customUseRegle),{useCollectScope:l}=Gt(r);return {useScopedRegle:n,useCollectScope:l}}var {useCollectScope:st,useScopedRegle:it}=Be();
2
- export{qe as InternalRuleType,Je as createRule,Be as createScopedUseRegle,Nt as defineRegleConfig,ot as inferRules,Me as mergeRegles,re as unwrapRuleParameters,st as useCollectScope,Le as useRegle,Ce as useRootStorage,it as useScopedRegle};
1
+ import {effectScope,computed,toValue,ref,watch,getCurrentInstance,onMounted,reactive,getCurrentScope,onScopeDispose,isRef,shallowRef,toRef,unref,watchEffect,version}from'vue';function te(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 ht=Symbol("regle-rule");function Jt(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 N(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>N(n)))),r=="Map"&&(t=new Map([...e].map(n=>[N(n[0]),N(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Jt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=N(e[n]);}return t}function W(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function qe(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 Ve(e,t,r){let n,a=(...o)=>new Promise(d=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(d);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a}var Ke=(r=>(r.Inline="__inline",r.Async="__async",r))(Ke||{});function bt(e,t){return e.some(r=>r[t])}function Et(e,t){return e.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[])}function re(e){try{return e.map(t=>toValue(t))}catch{return []}}function Tt(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function xt(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(d=>d.trim()).filter(d=>d.length>0).length:0}function Je(e,...t){let{validator:r,type:n}=e,a=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(p,...$){return e.validator(p,...re($.length?$:t))},message(p){return typeof e.message=="function"?e.message({...p,$params:re(p?.$params?.length?p.$params:t)}):e.message},active(p){return typeof e.active=="function"?e.active({...p,$params:re(p?.$params?.length?p.$params:t)}):e.active??true},tooltip(p){return typeof e.tooltip=="function"?e.tooltip({...p,$params:re(p?.$params?.length?p.$params:t)}):e.tooltip??[]},exec(p){let $=e.validator(p,...re(t)),m;return $ instanceof Promise?$.then(h=>(m=h,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:a,_params:Tt(t),_brand:ht}}function Ye(e){if(typeof e.validator=="function"){let r=Je(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(xt(e.validator)>1){let a=function(...o){return Je(e,...o)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.tooltip=r.tooltip,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._tooltip=r.tooltip,a._type=e.type,a._message_pacthed=false,a._tooltip_pacthed=false,a._async=n,a}else return r}throw new Error("Validator must be a function")}function Qe(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),a=shallowRef(new Map),o=shallowRef(new Map);function d(S){let T=t.value.get(S);if(T)return T;{let D=ref({});return t.value.set(S,D),D}}function p(S){let T=r.value.get(S);if(T)return T;{let D=ref([]);return r.value.set(S,D),D}}function $(S,T,D){o.value.set(`${S}-${T}`,D);}function m(S,T){return o.value.get(`${S}-${T}`)}function h(S,T){S&&T!=null&&o.value.delete(`${S}-${T}`);}function V(S,T){n.value.set(S,T);}function C(S){return n.value.get(S)??false}function M(S,T){e.value.set(S,T);}function w(S,T){let D=e.value.get(S);return D?O(T,D)?{valid:true}:{valid:false}:void 0}function O(S,T){let D=Object.keys(T),c=Object.keys(S);return c.length!==D.length||!c.every(u=>D.includes(u))?false:c.every(u=>{let s=S[u],b=T[u];return !b||!s||typeof s=="function"||typeof b=="function"||typeof s=="number"||typeof s=="boolean"?false:s._params?s._params?.every((A,B)=>{if(typeof b=="number"||typeof b=="boolean")return true;{let G=re(b._params),X=re(s._params);return G?.[B]===X?.[B]}}):true})}function l(S){let T=a.value.get(S);if(T)return T;{let D=ref(false),c=ref(true),E=ref({}),u=ref(false);return a.value.set(S,{$pending:D,$valid:c,$metadata:E,$validating:u}),{$pending:D,$valid:c,$metadata:E,$validating:u}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:M,setDirtyEntry:V,checkRuleDeclEntry:w,getDirtyState:C,trySetRuleStatusRef:l,getFieldsEntry:d,getCollectionsEntry:p,getArrayStatus:m,addArrayStatus:$,deleteArrayStatus:h,arrayStatusStorage:o}}function _e(e){return W(e.value)}function Xe(e,t,r){let n=effectScope(),a;return e instanceof Function?a=n.run(()=>e(t,r??0)):a=e,{scope:n,unwrapped:a}}function ar(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let o=Number(r[a]),d=Number(n[a]);if(o>d)return 1;if(d>o)return -1;if(!isNaN(o)&&isNaN(d))return 1;if(isNaN(o)&&!isNaN(d))return -1}return 0}var Ne=ar(version,"3.5.0")!==-1;function lr(){return Math.floor(Math.random()*Date.now()).toString()}function $e(){return typeof window>"u"?lr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Dt(e){return getCurrentScope()?(onScopeDispose(e),true):false}function Ct(e){let t=false,r,n=effectScope(true);return (...a)=>(t||(r=n.run(()=>e(...a)),t=true),r)}function ke(e,t){return _e(e)||W(t.value)&&!te(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function It(e,t,r=false){return !!e.value&&W(e.value)&&"$each"in e.value||r&&Array.isArray(t.value)&&t.value.some(W)||Array.isArray(t.value)&&t.value.some(W)}function Ge(e){return !!e.value&&W(e.value)}function we(e){return W(e)&&"_validator"in e}function Pe(e){return typeof e.value!="function"}function Ot(e){return W(e)&&"$fields"in e}function wt(e){return !!e&&"$rules"in e}function Ze({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 Pt({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 At(e){return W(e)&&"$each"in e}function et(e,t){let{includePath:r=false}=t??{};if(Array.isArray(e)&&e.every(n=>!W(n)))return e;if(At(e)){let n=r?e.$self?.map(o=>({error:o,path:""}))??[]:e.$self??[],a=e.$each?.map(o=>Ue(o,r))??[];return n?.concat(a.flat())}else return Object.entries(e).map(([n,a])=>Ue(a,r,[n])).flat()}function Ue(e,t=false,r){let n=t&&!r?[]:r;if(Array.isArray(e)&&e.every(a=>!W(a)))return t?e.map(a=>({error:a,path:n?.join(".")??""})):e;if(At(e)){let a=n?.length?e.$self?.map(d=>({error:d,path:n.join(".")}))??[]:e.$self??[],o=e.$each?.map((d,p)=>Ue(d,t,n?.concat(p.toString())))??[];return a?.concat(o.flat())}else return Object.entries(e).map(([a,o])=>Ue(o,t,n?.concat(a))).flat()}function Mt({customMessages:e,rule:t,ruleKey:r,state:n,path:a,storage:o,$debounce:d,modifiers:p}){let $=effectScope(),m={},h,V=ref(false),{$pending:C,$valid:M,$metadata:w,$validating:O}=o.trySetRuleStatusRef(`${a}.${r}`);function l(){$=effectScope(),m=$.run(()=>{let s=ref(false),b=ref(false),A=ref(true),B=ref(false),G=ref(false),X=computed(()=>({$value:n.value,$error:b.value,$dirty:s.value,$pending:B.value,$correct:G.value,$invalid:A.value,$rule:{$valid:M.value,$invalid:!M.value,$pending:C.value},$params:R.value,...w.value})),oe=computed(()=>Pe(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function I(x){let j="",H=e?e[r]?.[x]:void 0;if(H&&(typeof H=="function"?j=H(X.value):j=H),Pe(t)){let g=`_${x}_patched`;H&&!t.value[g]||(typeof t.value[x]=="function"?j=t.value[x](X.value):j=t.value[x]??"");}return j}let q=computed(()=>{let x=I("message");return te(x)&&(x="This field is not valid"),x}),me=computed(()=>I("tooltip")),ue=computed(()=>Pe(t)&&t.value.type?t.value.type:r),i=computed(()=>Pe(t)?t.value.validator:t.value),R=computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),f=computed(()=>`${a}.${ue.value}`);return {$active:oe,$message:q,$type:ue,$validator:i,$params:R,$path:f,$tooltip:me,$fieldCorrect:G,$fieldError:b,$fieldDirty:s,$fieldPending:B,$fieldInvalid:A}}),h=watch(m?.$params,()=>{(p.$autoDirty.value||p.$rewardEarly.value&&m.$fieldError.value)&&c();});}l();function S(){M.value=true,m.$fieldDirty.value&&(C.value=true);}async function T(){let s=false;try{let b=m.$validator.value;if(typeof b!="function")return console.error(`${a}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let A=b(n.value,...m.$params.value),B=n.value;S();let G;if(A instanceof Promise?G=await A:G=A,n.value!==B)return !0;if(typeof G=="boolean")s=G;else {let{$valid:X,...oe}=G;s=X,w.value=oe;}}catch{s=false;}finally{C.value=false;}return s}let D=Ve(T,d??200);async function c(){try{O.value=!0;let s=!1;if(we(t.value)&&t.value._async)s=await D();else {let b=m.$validator.value,A=b(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:B,...G}=A;s=B,w.value=G;}}return M.value=s,s}catch{return false}finally{O.value=false;}}function E(){M.value=true,w.value={},C.value=false,O.value=false,l();}function u(){h(),$.stop(),$=effectScope();}return reactive({...m,$pending:C,$valid:M,$metadata:w,$haveAsync:V,$validating:O,$parse:c,$unwatch:u,$watch:l,$reset:E})}function be({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:o,options:d,externalErrors:p,schemaErrors:$,schemaMode:m,onUnwatch:h,$isArray:V,initialState:C,shortcuts:M,onValidate:w}){let O=effectScope(),l,S=[],T,D,c,E,u,s=()=>{};function b(){let v=t.value,F=o.checkRuleDeclEntry(n,v);q.value=Object.fromEntries(Object.entries(v).filter(([y])=>y.startsWith("$"))),G(),I.value=Object.fromEntries(Object.entries(t.value).filter(([y])=>!y.startsWith("$")).map(([y,ee])=>{if(ee){let se=toRef(()=>ee);return [y,Mt({modifiers:{$autoDirty:l.$autoDirty,$rewardEarly:l.$rewardEarly},customMessages:r,rule:se,ruleKey:y,state:e,path:n,storage:o,$debounce:q.value.$debounce})]}return []}).filter(y=>!!y.length)),l.processShortcuts(),A(),F?.valid!=null&&(l.$dirty.value=o.getDirtyState(n),(l.$dirty.value&&l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s()),o.addRuleDeclEntry(n,v);}function A(){s=l.$debounce.value?Ve(oe,l.$debounce.value??l.$haveAnyAsyncRule?100:0):oe;}function B(){I.value&&Object.entries(I.value).forEach(([v,F])=>{F.$unwatch();}),c(),u?.(),l.$dirty.value&&o.setDirtyEntry(n,l.$dirty.value),T?.(),D?.(),O.stop(),O=effectScope(),S.forEach(v=>v.stop()),S=[],h?.(),E?.();}function G(){I.value&&Object.entries(I.value).forEach(([v,F])=>{F.$watch();}),l=O.run(()=>{let v=ref(false),F=ref(false),y=computed(()=>v.value),ee=computed(()=>q.value.$debounce),se=computed(()=>q.value.$lazy!=null?q.value.$lazy:unref(d.lazy)!=null?unref(d.lazy):false),le=computed(()=>q.value.$rewardEarly!=null?q.value.$rewardEarly:unref(d.rewardEarly)!=null?unref(d.rewardEarly):false),U=computed(()=>q.value.$clearExternalErrorsOnChange!=null?q.value.$clearExternalErrorsOnChange:unref(d.clearExternalErrorsOnChange)!=null?unref(d.clearExternalErrorsOnChange):true),P=computed(()=>q.value.$autoDirty!=null?q.value.$autoDirty:unref(d.autoDirty)!=null?unref(d.autoDirty):!le.value),z=computed(()=>Object.entries(I.value).some(([ie,Q])=>Q.$validating)),Ie=computed({get:()=>e.value,set(ie){T(),e.value=ie,X();}}),je=computed(()=>ge.value&&!Oe.value&&v.value),ft=computed(()=>Ze({field:{$rules:I.value,$error:je.value,$externalErrors:p?.value,$schemaErrors:$?.value}})),Rt=computed(()=>Ze({field:{$rules:I.value,$error:je.value,$externalErrors:p?.value,$schemaErrors:$?.value},silent:true})),ze=computed(()=>v.value?C.value instanceof Date&&e.value instanceof Date?qe(C.value).getDate()!==qe(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),dt=computed(()=>ze.value),pt=computed(()=>Pt({field:{$rules:I.value}})),mt=computed(()=>P.value?y.value&&!(ge.value||Oe.value):!(ge.value||Oe.value)),Oe=computed(()=>F.value||!le.value?Object.entries(I.value).some(([ie,Q])=>Q.$pending):false),ge=computed(()=>p?.value?.length||$?.value?.length?true:Fe.value?false:!le.value||le.value&&F.value?Object.entries(I.value).some(([ie,Q])=>!Q.$valid):false),gt=computed(()=>a),Fe=computed(()=>!!(te(I.value)&&!m)),yt=computed(()=>p?.value?.length||Fe.value?false:v.value&&!te(e.value)&&!z.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),qt=computed(()=>Object.entries(I.value).some(([ie,Q])=>Q.$haveAsync));function Kt(){M?.fields&&Object.entries(M.fields).forEach(([ie,Q])=>{let $t=effectScope();vt[ie]=$t.run(()=>{let St=ref();return watchEffect(()=>{St.value=Q(reactive({$dirty:v,$externalErrors:p?.value??[],$value:e,$silentValue:Ie,$rules:I,$error:je,$pending:Oe,$invalid:ge,$correct:yt,$errors:ft,$ready:mt,$silentErrors:Rt,$anyDirty:y,$tooltips:pt,$name:gt,$inactive:Fe,$edited:ze,$anyEdited:dt}));}),St}),S.push($t);});}let vt={};return watch(ge,ie=>{ie||(F.value=false);}),{$error:je,$pending:Oe,$invalid:ge,$correct:yt,$debounce:ee,$lazy:se,$errors:ft,$ready:mt,$silentErrors:Rt,$rewardEarly:le,$autoDirty:P,$clearExternalErrorsOnChange:U,$anyDirty:y,$edited:ze,$anyEdited:dt,$name:gt,$haveAnyAsyncRule:qt,$shortcuts:vt,$validating:z,$tooltips:pt,$dirty:v,triggerPunishment:F,processShortcuts:Kt,$silentValue:Ie,$inactive:Fe}}),X(),c=watch(l.$dirty,v=>{o.setDirtyEntry(n,v),Object.values(I.value).forEach(F=>{F.$fieldDirty=v;});}),u=watch([l.$error,l.$correct,l.$invalid,l.$pending],()=>{Object.values(I.value).forEach(v=>{v.$fieldError=l.$error.value,v.$fieldInvalid=l.$invalid.value,v.$fieldPending=l.$pending.value,v.$fieldCorrect=l.$correct.value;});}),D=watch(l.$invalid,v=>{l.$rewardEarly.value&&!v&&(l.triggerPunishment.value=false);}),E=watch(l.$haveAnyAsyncRule,A);}function X(){T=watch(e,()=>{l.$autoDirty.value&&(l.$dirty.value||(l.$dirty.value=true)),t.value instanceof Function&&b(),(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s(),l.$rewardEarly.value!==true&&l.$clearExternalErrorsOnChange.value&&f();},{deep:V?true:Ne?1:true});}function oe(){Object.values(I.value).forEach(v=>{v.$parse();});}let I=ref({}),q=ref({});b();function me(v,F){if(f(),l.$dirty.value=false,l.triggerPunishment.value=false,o.setDirtyEntry(n,false),!F)if(v?.toInitialState)B(),e.value=N(C);else if(v?.toState){B();let y;typeof v?.toState=="function"?y=v?.toState():y=v?.toState,C.value=N(y),e.value=N(y);}else C.value=W(e.value)?N(e.value):Array.isArray(e.value)?[...e.value]:e.value;v?.clearExternalErrors&&f(),F||Object.entries(I.value).forEach(([y,ee])=>{ee.$reset();}),!l.$lazy.value&&l.$autoDirty.value&&Object.values(I.value).forEach(y=>y.$parse()),F||b();}function ue(v=true,F=false){l.$dirty.value||(l.$dirty.value=true),F&&v?(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s():v&&s();}async function i(){try{if(m)return w?(ue(!1),w()):{valid:!1,data:e.value};let v=e.value;if(l.triggerPunishment.value=!0,!l.$dirty.value)l.$dirty.value=!0;else if(l.$autoDirty.value&&l.$dirty.value&&!l.$pending.value)return {valid:!l.$error.value,data:v};return m?{valid:!$?.value?.length,data:v}:te(I.value)?{valid:!0,data:v}:{valid:(await Promise.allSettled(Object.entries(I.value).map(([ee,se])=>se.$parse()))).every(ee=>ee.status==="fulfilled"?ee.value===!0:!1),data:v}}catch{return {valid:false,data:e.value}}}function R(v=true){return l.$dirty.value?e.value:v?{_null:true}:null}function f(){p?.value?.length&&(p.value=[]);}!l.$lazy.value&&!l.$dirty.value&&l.$autoDirty.value&&s();let{$shortcuts:x,$validating:j,$autoDirty:H,$rewardEarly:g,$clearExternalErrorsOnChange:_,$haveAnyAsyncRule:K,$debounce:Z,$lazy:Y,triggerPunishment:fe,...ce}=l;return reactive({...ce,$externalErrors:p,$value:e,$rules:I,...x,$reset:me,$touch:ue,$validate:i,$unwatch:B,$watch:G,$extractDirtyFields:R,$clearExternalErrors:f})}function nt({$id:e,path:t,index:r,options:n,storage:a,stateValue:o,customMessages:d,rules:p,externalErrors:$,schemaErrors:m,initialState:h,shortcuts:V,fieldName:C,schemaMode:M}){let w=p.$key?p.$key:$e(),O=`${t}.${String(w)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?O=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let l=toRef($?.value??[],r),S=computed(()=>m?.value?.[r]),T=Ee({state:o,rulesDef:toRef(()=>p),customMessages:d,path:O,storage:a,options:n,externalErrors:l,schemaErrors:S,initialState:h,shortcuts:V,fieldName:C,schemaMode:M});if(T){let D=o.value?.$id;T.$id=D??String(w),a.addArrayStatus(e,T.$id,T);}return T}function _t({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:d,schemaErrors:p,schemaMode:$,initialState:m,shortcuts:h,fieldName:V}){let C=effectScope(),M,w=effectScope(),O,l=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let S=ref(),T=ref(e.value),D,c=ref({}),E=a.getCollectionsEntry(n);O=w.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(R=>typeof R!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(R=>we(R)||typeof R=="function"):false)})),u(),A();function u(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(S.value=$e(),Object.defineProperties(e.value,{$id:{value:S.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(S.value=e.value.$id)),T.value=c.value.$value,Array.isArray(e.value)&&!O.isPrimitiveArray.value?E.value=e.value.filter(i=>typeof i=="object").map((i,R)=>{let{scope:f,unwrapped:x}=Xe(t.value.$each,toRef(()=>i),R);f&&l.push(f);let j=toRef(m.value??[],R),H=toRef(d?.value??{},"$each"),g=computed(()=>p?.value?.$each),_=nt({$id:S.value,path:n,customMessages:r,rules:x??{},stateValue:toRef(()=>i),index:R,options:o,storage:a,externalErrors:H,schemaErrors:g,initialState:j,shortcuts:h,fieldName:V,schemaMode:$});return _||null}).filter(i=>!!i):E.value=[],c.value=be({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:toRef(d?.value??{},"$self"),schemaErrors:computed(()=>p?.value?.$self),$isArray:true,initialState:m,shortcuts:h,fieldName:V,schemaMode:$});}function s(){if(Array.isArray(e.value)&&!O.isPrimitiveArray.value){let i=N(E.value);E.value=e.value.filter(R=>typeof R=="object").map((R,f)=>{let x=toRef(()=>R);if(R.$id&&E.value.find(j=>j.$id===R.$id)){let j=a.getArrayStatus(S.value,R.$id);return j?(j.$value=x,j):null}else {let{scope:j,unwrapped:H}=Xe(t.value.$each,x,f);j&&l.push(j);let g=toRef(d?.value??{},"$each"),_=computed(()=>p?.value?.$each??[]),K=nt({$id:S.value,path:n,customMessages:r,rules:H??{},stateValue:x,index:f,options:o,storage:a,externalErrors:g,schemaErrors:_,initialState:toRef(m.value??[],f),shortcuts:h,fieldName:V,schemaMode:$});return K||null}}).filter(R=>!!R),i.filter(R=>!e.value?.find(f=>R.$id===f.$id)).forEach((R,f)=>{a.deleteArrayStatus(S.value,f.toString());});}else E.value=[];}function b(){D=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?u():s();},{deep:Ne?1:true,flush:"pre"});}function A(){b(),C=effectScope(),M=C.run(()=>{let i=computed({get:()=>e.value,set(y){D(),e.value=y,b();}}),R=computed(()=>c.value.$dirty&&(!E.value.length||E.value.every(y=>y.$dirty))),f=computed(()=>c.value.$anyDirty||E.value.some(y=>y.$anyDirty)),x=computed(()=>c.value.$invalid||E.value.some(y=>y.$invalid)),j=computed(()=>(te(c.value.$rules)?true:c.value.$correct)&&(!E.value.length||E.value.every(y=>y.$correct||y.$anyDirty&&!y.$invalid))),H=computed(()=>c.value.$error||E.value.some(y=>y.$error)),g=computed(()=>!(x.value||_.value)),_=computed(()=>c.value.$pending||E.value.some(y=>y.$pending)),K=computed(()=>!!E.value.length&&E.value.every(y=>y.$edited)),Z=computed(()=>c.value.$anyEdited||E.value.some(y=>y.$anyEdited)),Y=computed(()=>({$self:c.value.$errors,$each:E.value.map(y=>y.$errors)})),fe=computed(()=>({$self:c.value.$silentErrors,$each:E.value.map(y=>y.$silentErrors)})),ce=computed(()=>V);function v(){h?.collections&&Object.entries(h?.collections).forEach(([y,ee])=>{let se=effectScope();F[y]=se.run(()=>{let le=ref();return watchEffect(()=>{le.value=ee(reactive({$dirty:R,$error:H,$silentValue:i,$pending:_,$invalid:x,$correct:j,$errors:Y,$ready:g,$silentErrors:fe,$anyDirty:f,$name:ce,$each:E,$self:c,$value:e,$edited:K,$anyEdited:Z}));}),le}),l.push(se);});}let F={};return v(),{$dirty:R,$anyDirty:f,$invalid:x,$correct:j,$error:H,$pending:_,$errors:Y,$silentErrors:fe,$ready:g,$name:ce,$shortcuts:F,$silentValue:i,$edited:K,$anyEdited:Z}}),O.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 B(){D&&D(),c.value&&c.value.$unwatch(),E.value&&E.value.forEach(i=>{"$dirty"in i&&i.$unwatch();}),C.stop(),C=effectScope(),w.stop(),w=effectScope(true),l.forEach(i=>i.stop()),l=[];}function G(i=true,R=false){c.value.$touch(i,R),E.value.forEach(f=>{f.$touch(i,R);});}function X(i,R){if(B(),!R)if(i?.toInitialState)e.value=N(m.value);else if(i?.toState){let f;typeof i?.toState=="function"?f=i?.toState():f=i?.toState,m.value=N(f),e.value=N(f);}else m.value=N(e.value);i?.clearExternalErrors&&I(),c.value.$reset(),E.value.forEach(f=>{f.$reset(i,true);}),R||u();}async function oe(){let i=e.value;try{return {valid:(await Promise.allSettled([c.value.$validate(),...E.value.map(x=>x.$validate())])).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:i}}catch{return {valid:false,data:i}}}function I(){c.value.$clearExternalErrors(),E.value.forEach(i=>{i.$clearExternalErrors();});}function q(i=true){let R=E.value.map(f=>{if(Ot(f))return f.$extractDirtyFields(i)});return i&&R.every(f=>te(f))&&(R=[]),R}let{$shortcuts:me,...ue}=M;return reactive({$self:c,...ue,...me,$each:E,$value:e,$validate:oe,$unwatch:B,$watch:A,$touch:G,$reset:X,$extractDirtyFields:q,$clearExternalErrors:I})}function Le({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:a,schemaErrors:o,rootSchemaErrors:d,validationGroups:p,initialState:$,fieldName:m,...h}){let V=effectScope(),C,M=[],w=null,O=null,l=null,S=null;async function D(i=true){let R=Object.entries(e.value),f=Object.fromEntries(R.filter(([g,_])=>!!_).map(([g,_])=>{if(_){let K=toRef(t.value??{},g),Z=toRef(()=>_),Y=toRef(a?.value??{},g),fe=computed(()=>o?.value?.[g]),ce=toRef($?.value??{},g);return [g,Ee({state:K,rulesDef:Z,path:r?`${r}.${g}`:g,externalErrors:Y,schemaErrors:fe,initialState:ce,fieldName:g,...h})]}return []})),x=Object.fromEntries(Object.entries(unref(a)??{}).filter(([g,_])=>!(g in e.value)&&!!_).map(([g])=>{let _=toRef(t.value??{},g),K=toRef(a?.value??{},g),Z=computed(()=>o?.value?.[g]),Y=toRef($?.value??{},g);return [g,Ee({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:g,...h})]})),j=Object.fromEntries(Object.entries(unref(o)??{}).map(([g])=>{let _=toRef(t.value??{},g),K=toRef(a?.value??{},g),Z=computed(()=>o?.value?.[g]),Y=toRef($?.value??{},g);return [g,Ee({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:g,...h})]})),H=Object.fromEntries(Object.entries(t.value??{}).filter(([g])=>!(g in e.value)&&!(g in(x??{}))&&!(g in(j??{}))).map(([g])=>{let _=toRef(t.value??{},g),K=toRef(a?.value??{},g),Z=computed(()=>o?.value?.[g]),Y=toRef($?.value??{},g);return [g,Ee({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:g,...h})]}));c.value={...f,...x,...j,...H},i&&s();}let c=h.storage.getFieldsEntry(r);D();function E(){a&&(l=watch(a,()=>{b(),D();},{deep:true}));}function u(){S=watch(t,()=>{b(),D(),G(true,true);},{flush:"sync"});}function s(){n&&(w?.(),w=watch(n,()=>{b(),D();},{deep:true,flush:"post"}),E()),d&&(O?.(),O=watch(d,()=>{b(),D();},{deep:true,flush:"post"})),u(),C=V.run(()=>{let i=computed({get:()=>t.value,set(U){b(),t.value=U,D();}}),R=computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).every(([U,P])=>P?.$dirty)),f=computed(()=>Object.entries(c.value).some(([U,P])=>P?.$anyDirty)),x=computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).some(([U,P])=>P?.$invalid)),j=computed(()=>{let U=Object.entries(c.value).filter(([P,z])=>wt(z)?!z.$inactive:true);return U.length?U.every(([P,z])=>z?.$correct||z.$anyDirty&&!z.$invalid):false}),H=computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).some(([U,P])=>P?.$error)),g=computed(()=>unref(h.options.rewardEarly)!=null?unref(h.options.rewardEarly):false),_=computed(()=>unref(h.options.autoDirty)!=null?unref(h.options.autoDirty):!g.value),K=computed(()=>_.value?f.value&&!(x.value||Y.value):!(x.value||Y.value)),Z=ref(false),Y=computed(()=>Z.value||Object.entries(c.value).some(([U,P])=>P?.$pending)),fe=computed(()=>Object.fromEntries(Object.entries(c.value).map(([U,P])=>[U,P?.$errors]))),ce=computed(()=>Object.fromEntries(Object.entries(c.value).map(([U,P])=>[U,P?.$silentErrors]))),v=computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).every(([U,P])=>P?.$edited)),F=computed(()=>Object.entries(c.value).some(([U,P])=>P?.$anyEdited)),y=computed(()=>m);function ee(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,P])=>{let z=effectScope();le[U]=z.run(()=>{let Ie=ref();return watchEffect(()=>{Ie.value=P(reactive({$dirty:R,$value:t,$silentValue:i,$error:H,$pending:Y,$invalid:x,$correct:j,$ready:K,$anyDirty:f,$name:y,$silentErrors:ce,$errors:fe,$fields:c,$edited:v,$anyEdited:F}));}),Ie}),M.push(z);});}let se=computed({get:()=>p?Object.fromEntries(Object.entries(p?.(c.value)??{}).map(([U,P])=>P.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(z=>[z,bt(P,z)])),...Object.fromEntries(["$errors","$silentErrors"].map(z=>[z,Et(P,z)]))}]:[])):{},set(){}}),le={};return ee(),{$dirty:R,$anyDirty:f,$invalid:x,$correct:j,$error:H,$pending:Y,$errors:fe,$silentErrors:ce,$ready:K,$name:y,$shortcuts:le,$groups:se,$silentValue:i,$edited:v,$anyEdited:F,$localPending:Z}});}function b(){w?.(),l?.(),S?.(),O?.(),M=[],C={},c.value&&Object.entries(c.value).forEach(([i,R])=>{R.$unwatch();});}function A(){Object.entries(c.value).forEach(([i,R])=>{R.$clearExternalErrors();});}function B(i,R){if(l?.(),b(),!R)if(i?.toInitialState)t.value=N({...$.value??{}});else if(i?.toState){let f;typeof i?.toState=="function"?f=i?.toState():f=i?.toState,$.value=N(f),t.value=N(f);}else $.value=N(t.value);Object.values(c.value).forEach(f=>{f.$reset(i,true);}),i?.clearExternalErrors&&A(),E(),R||D();}function G(i=true,R=false){Object.values(c.value).forEach(f=>{f.$touch(i,R);});}function X(i){return i.filter(([R,f])=>W(f)?!(f&&typeof f=="object"&&"_null"in f)&&!te(f):Array.isArray(f)?f.length:true)}function oe(i=true){let R=Object.entries(c.value).map(([f,x])=>[f,x.$extractDirtyFields(i)]);return i&&(R=X(R)),Object.fromEntries(R)}async function I(){try{if(h.schemaMode)return h.onValidate?(G(!1),C.$localPending.value=!0,h.onValidate()):{valid:!1,data:t.value};{let i=t.value;return {valid:(await Promise.allSettled(Object.values(c.value).map(x=>x.$validate()))).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:i}}}catch{return {valid:false,data:t.value}}finally{C.$localPending.value=false;}}let{$shortcuts:q,$localPending:me,...ue}=C;return reactive({...ue,...q,$fields:c,$value:t,$reset:B,$touch:G,$validate:I,$unwatch:b,$watch:s,$clearExternalErrors:A,$extractDirtyFields:oe})}function Ee({rulesDef:e,...t}){if(It(e,t.state,t.schemaMode))return _t({rulesDef:e,...t});if(ke(t.state,e)){if(_e(t.state))return Le({rulesDef:e,...t});{let n=effectScope().run(()=>{let d=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,p=>{d.value=p;},{deep:true}),watch(d,p=>{t.state.value=p;},{deep:true}),{fakeState:d}}),{state:a,...o}=t;return Le({rulesDef:e,...o,state:n.fakeState})}}else if(Ge(e))return be({rulesDef:e,...t})}function Ce({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:o,schemaErrors:d,schemaMode:p=false,onValidate:$}){let m=Qe(),h=ref();return ke(n,r)?h.value=Le({rootRules:r,rulesDef:r,state:n,customMessages:a?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaErrors:d,rootSchemaErrors:d,schemaMode:p,onValidate:$}):Ge(r)&&(h.value=be({rulesDef:r,state:n,customMessages:a?.(),storage:m,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaMode:p,schemaErrors:d,onValidate:$})),getCurrentScope()&&onScopeDispose(()=>{h.value?.$unwatch();}),reactive({regle:h})}function ot(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function a(o,d,p){let $=isRef(d)?d:computed(typeof d=="function"?d:()=>d),m={...n,...p},h=isRef(o)?o:ref(o),V=ref(W(h.value)?{...N(h.value)}:N(h.value));return {r$:Ce({scopeRules:$,state:h,options:m,initialState:V,customRules:e,shortcuts:r}).regle}}return a}var Be=ot();function st(){function e(t,r){return r}return e}var it=st();function Ut({rules:e,modifiers:t,shortcuts:r}){let n=ot(e,t,r),a=st();return {useRegle:n,inferRules:a}}function Me(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(u=>u.$value):Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$value])),set:u=>{r||typeof u=="object"&&Object.entries(u).forEach(([s,b])=>e[s].$value=b);}}),a=computed({get:()=>Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$silentValue])),set:u=>{typeof u=="object"&&Object.entries(u).forEach(([s,b])=>e[s].$silentValue=b);}}),o=computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,b])=>b?.$dirty)}),d=computed(()=>Object.entries(e).some(([u,s])=>s?.$anyDirty)),p=computed(()=>Object.entries(e).some(([u,s])=>s?.$invalid)),$=computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,b])=>b?.$correct||b.$anyDirty&&!b.$invalid)}),m=computed(()=>Object.entries(e).some(([u,s])=>s?.$error)),h=computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,b])=>b?.$ready)}),V=computed(()=>Object.entries(e).some(([u,s])=>s?.$pending)),C=computed(()=>r?Object.entries(e).map(([u,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$errors]))),M=computed(()=>r?Object.entries(e).map(([u,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$silentErrors]))),w=computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,b])=>b?.$edited)}),O=computed(()=>Object.entries(e).some(([u,s])=>s?.$anyEdited)),l=computed(()=>r?Object.values(e):e);function S(u){Object.values(e).forEach(s=>{s.$reset(u);});}function T(){Object.values(e).forEach(u=>{u.$touch();});}function D(u=true){return Object.values(e).map(s=>s.$extractDirtyFields(u))}function c(){Object.values(e).forEach(u=>{u.$clearExternalErrors();});}async function E(){try{let u=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:u}}catch{return {valid:false,data:n.value}}}return reactive({...!r&&{$silentValue:a},$errors:C,$silentErrors:M,$instances:l,$value:n,$dirty:o,$anyDirty:d,$invalid:p,$correct:$,$error:m,$pending:V,$ready:h,$edited:w,$anyEdited:O,$reset:S,$touch:T,$validate:E,$extractDirtyFields:D,$clearExternalErrors:c})}function Lt(e){function t(r){let n=computed(()=>toValue(r));d();let a=ref(p(e.value)),o=reactive({r$:a});function d(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}watch(n,d),watch(e,$=>{a.value=p($);},{deep:true});function p($){if(n.value){let m=$[n.value]??{};return Me(m,true)}else return Me($["~~global"]??{},true)}return {r$:o.r$}}return {useCollectScope:t}}function zt(e,t){let r=t??Be;return {useScopedRegle:(a,o,d)=>{let{namespace:p,...$}=d??{},m=computed(()=>toValue(p)),h=ref(`${Object.keys(e.value).length+1}-${$e()}`),V=computed(()=>`instance-${h.value}`),{r$:C}=r(a,o,$);w(),Dt(M),watch(m,(O,l)=>{M(l),w();}),getCurrentInstance()&&onMounted(()=>{let O=getCurrentInstance();typeof window<"u"&&O?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(O?.proxy?.$el?.parentElement)&&M();});function M(O){let l=O??m.value;l?e.value[l]&&delete e.value[l][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 He(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):Ct(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=zt(r,e?.customUseRegle),{useCollectScope:a}=Lt(r);return {useScopedRegle:n,useCollectScope:a}}var {useCollectScope:ut,useScopedRegle:ct}=He();
2
+ export{Ke as InternalRuleType,Ye as createRule,He as createScopedUseRegle,Ut as defineRegleConfig,et as flatErrors,it as inferRules,Me as mergeRegles,re as unwrapRuleParameters,ut as useCollectScope,Be as useRegle,Ce as useRootStorage,ct as useScopedRegle};
@@ -494,6 +494,36 @@ function extractRulesTooltips({ field }) {
494
494
  }
495
495
  }, []);
496
496
  }
497
+ function isCollectionError(errors) {
498
+ return isObject(errors) && "$each" in errors;
499
+ }
500
+ function flatErrors(errors, options) {
501
+ const { includePath = false } = options ?? {};
502
+ if (Array.isArray(errors) && errors.every((err) => !isObject(err))) {
503
+ return errors;
504
+ } else if (isCollectionError(errors)) {
505
+ const selfErrors = includePath ? errors.$self?.map((err) => ({ error: err, path: "" })) ?? [] : errors.$self ?? [];
506
+ const eachErrors = errors.$each?.map((err) => interateErrors(err, includePath)) ?? [];
507
+ return selfErrors?.concat(eachErrors.flat());
508
+ } else {
509
+ return Object.entries(errors).map(([key, value]) => interateErrors(value, includePath, [key])).flat();
510
+ }
511
+ }
512
+ function interateErrors(errors, includePath = false, _path) {
513
+ const path = includePath && !_path ? [] : _path;
514
+ if (Array.isArray(errors) && errors.every((err) => !isObject(err))) {
515
+ if (includePath) {
516
+ return errors.map((err) => ({ error: err, path: path?.join(".") ?? "" }));
517
+ }
518
+ return errors;
519
+ } else if (isCollectionError(errors)) {
520
+ const selfErrors = path?.length ? errors.$self?.map((err) => ({ error: err, path: path.join(".") })) ?? [] : errors.$self ?? [];
521
+ const eachErrors = errors.$each?.map((err, index) => interateErrors(err, includePath, path?.concat(index.toString()))) ?? [];
522
+ return selfErrors?.concat(eachErrors.flat());
523
+ } else {
524
+ return Object.entries(errors).map(([key, value]) => interateErrors(value, includePath, path?.concat(key))).flat();
525
+ }
526
+ }
497
527
  function createReactiveRuleStatus({
498
528
  customMessages,
499
529
  rule,
@@ -2621,4 +2651,4 @@ function createScopedUseRegle(options) {
2621
2651
  }
2622
2652
  var { useCollectScope, useScopedRegle } = createScopedUseRegle();
2623
2653
 
2624
- export { InternalRuleType, createRule, createScopedUseRegle, defineRegleConfig, inferRules, mergeRegles, unwrapRuleParameters, useCollectScope, useRegle, useRootStorage, useScopedRegle };
2654
+ export { InternalRuleType, createRule, createScopedUseRegle, defineRegleConfig, flatErrors, inferRules, mergeRegles, unwrapRuleParameters, useCollectScope, useRegle, useRootStorage, useScopedRegle };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@regle/core",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "description": "Headless form validation library for Vue 3",
5
5
  "peerDependencies": {
6
6
  "pinia": ">=2.2.5",