@regle/core 1.1.2 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -15,14 +15,20 @@ It's heavily inspired by Vuelidate.
15
15
 
16
16
  ## 🎮 Play with it
17
17
 
18
- | Simple demo | Advanced Demo |
19
- | ------------- | ------------- |
20
- | [![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/~/github.com/victorgarciaesgi/regle-examples/tree/main/examples/simple-example?file=examples/simple-example/src/App.vue&configPath=examples/simple-example) | [![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/~/github.com/victorgarciaesgi/regle-examples/tree/main/examples/advanced-example?file=examples/advanced-example/src/App.vue&configPath=examples/advanced-example) |
18
+ | Playground | Simple demo | Advanced Demo |
19
+ | ------------- | ------------- | ------------- |
20
+ | <a target='_blank' href="https://play.reglejs.dev"><img width="180" src="https://raw.githubusercontent.com/victorgarciaesgi/regle/refs/heads/main/.github/images/regle-playground-button.svg" /></a> | [![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/~/github.com/victorgarciaesgi/regle-examples/tree/main/examples/simple-example?file=examples/simple-example/src/App.vue&configPath=examples/simple-example) | [![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/~/github.com/victorgarciaesgi/regle-examples/tree/main/examples/advanced-example?file=examples/advanced-example/src/App.vue&configPath=examples/advanced-example) |
21
21
 
22
22
  ## 🧰 Features
23
- - ✅ 100% type inference
24
- - 📖 Model based validation
25
- - 🪗 Extensible
26
- - 🛒 Collection validation
27
- - 🦸‍♂️ [Zod](https://zod.dev/) support
28
- - 🤖 [Valibot](https://valibot.dev/) support
23
+
24
+ - ☁️ Headless
25
+ - Type safety
26
+ - 🧮 Model based
27
+ - 🧰 Modular
28
+ - 🔄 Async validation
29
+ - 🌐 Plug any i18n library
30
+ - 📗 Vuelidate like API
31
+ - Standard Schemas spec support
32
+ - 🦸‍♂️ [Zod](https://zod.dev/)
33
+ - 🤖 [Valibot](https://valibot.dev/)
34
+ - 🚢 [ArkType](https://arktype.io) 🚧
@@ -1742,7 +1742,7 @@ declare function flatErrors(errors: $InternalRegleErrors, options?: {
1742
1742
  includePath?: false;
1743
1743
  }): string[];
1744
1744
 
1745
- 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;
1745
+ type InferRegleRoot<T extends (...args: any[]) => SuperCompatibleRegle> = T extends (...args: any[]) => infer U ? U extends SuperCompatibleRegle ? U['r$'] : never : never;
1746
1746
  type InferRegleRules<T extends useRegleFn<any, any>> = T extends useRegleFn<infer U, any> ? UnwrapRuleTree<Partial<U> & Partial<DefaultValidators>> : {};
1747
1747
  type InferRegleShortcuts<T extends useRegleFn<any, any>> = T extends useRegleFn<any, infer U> ? U : {};
1748
1748
  type RegleEnforceRequiredRules<TRules extends keyof DefaultValidators> = Omit<Partial<DefaultValidatorsTree>, TRules> & {
@@ -2384,6 +2384,9 @@ interface $InternalRegleCollectionStatus extends Omit<$InternalRegleStatus, '$fi
2384
2384
  $validate: () => Promise<$InternalRegleResult>;
2385
2385
  }
2386
2386
 
2387
+ interface SuperCompatibleRegle {
2388
+ r$: SuperCompatibleRegleRoot;
2389
+ }
2387
2390
  /** Supports both core Regle and schemas Regle for Zod/Valibot */
2388
2391
  type SuperCompatibleRegleRoot = SuperCompatibleRegleStatus & {
2389
2392
  $groups?: {
@@ -2637,4 +2640,4 @@ declare function variantToRef<TRoot extends RegleStatus<{}, any, any>, const TKe
2637
2640
  [K in TKey]: RegleFieldStatus<TValue, any, any>;
2638
2641
  }> | undefined>;
2639
2642
 
2640
- export { type $InternalRegleStatus, type AllRulesDeclarations, type CommonAlphaOptions, type CommonComparisonOptions, type DeepMaybeRef, type DeepReactiveState, type DefaultValidatorsTree, type FormRuleDeclaration, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleShortcuts, type InferRegleStatusType, type InferSafeOutput, type InlineRuleDeclaration, InternalRuleType, type JoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type MaybeInput, type MaybeOutput, type MaybeVariantStatus, type MergedRegles, type NarrowVariant, 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, createVariant, defineRegleConfig, extendRegleConfig, flatErrors, inferRules, mergeRegles, narrowVariant, unwrapRuleParameters, useCollectScope, useRegle, useRootStorage, useScopedRegle, variantToRef };
2643
+ export { type $InternalRegleStatus, type AllRulesDeclarations, type CommonAlphaOptions, type CommonComparisonOptions, type DeepMaybeRef, type DeepReactiveState, type DefaultValidatorsTree, type FormRuleDeclaration, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleShortcuts, type InferRegleStatusType, type InferSafeOutput, type InlineRuleDeclaration, InternalRuleType, type JoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type MaybeInput, type MaybeOutput, type MaybeVariantStatus, type MergedRegles, type NarrowVariant, 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 SuperCompatibleRegle, type SuperCompatibleRegleCollectionErrors, type SuperCompatibleRegleCollectionStatus, type SuperCompatibleRegleFieldStatus, type SuperCompatibleRegleResult, type SuperCompatibleRegleRoot, type SuperCompatibleRegleRuleStatus, type SuperCompatibleRegleStatus, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, createRule, createScopedUseRegle, createVariant, defineRegleConfig, extendRegleConfig, flatErrors, inferRules, mergeRegles, narrowVariant, unwrapRuleParameters, useCollectScope, useRegle, useRootStorage, useScopedRegle, variantToRef };
@@ -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 xt=Symbol("regle-rule");function nr(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function G(e){let t=e,n={}.toString.call(e).slice(8,-1);if(n=="Set"&&(t=new Set([...e].map(r=>G(r)))),n=="Map"&&(t=new Map([...e].map(r=>[G(r[0]),G(r[1])]))),n=="Date"&&(t=new Date(e.getTime())),n=="RegExp"&&(t=RegExp(e.source,nr(e))),n=="Array"||n=="Object"){t=Array.isArray(e)?[]:{};for(let r in e)t[r]=G(e[r]);}return t}function _(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ye(e,...t){for(var n=[].slice.call(arguments),r,a=n.length;r=n[a-1],a--;)if(!r||typeof r!="object"&&typeof r!="function")throw new Error("expected object, got "+r);for(var o=n[0],s=n.slice(1),i=s.length,a=0;a<i;a++){var g=s[a];for(var R in g)o[R]=g[R];}return o}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 _e(e,t,n){let r,a=(...o)=>new Promise(s=>{clearTimeout(r),r=setTimeout(()=>{r=void 0,Promise.resolve(e.apply(this,[...o])).then(s);},t);});return a.cancel=()=>{clearTimeout(r),r=void 0;},a}var Xe={Inline:"__inline",Async:"__async"};function Dt(e,t){return e.some(n=>n[t])}function Ct(e,t){return e.reduce((n,r)=>{let a=r[t]||[];return n.concat(a)},[])}function re(e){try{return e.map(t=>toValue(t))}catch{return []}}function It(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function Ot(e){let r=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return r?(r[0]||r[1]||r[2]||r[3]||r[4]||"").split(",").map(s=>s.trim()).filter(s=>s.length>0).length:0}function Ze(e,...t){let{validator:n,type:r}=e,a=r===Xe.Async||n.constructor.name==="AsyncFunction";return {...{validator(i,...g){return e.validator(i,...re(g.length?g:t))},message(i){return typeof e.message=="function"?e.message({...i,$params:re(i?.$params?.length?i.$params:t)}):e.message},active(i){return typeof e.active=="function"?e.active({...i,$params:re(i?.$params?.length?i.$params:t)}):e.active??true},tooltip(i){return typeof e.tooltip=="function"?e.tooltip({...i,$params:re(i?.$params?.length?i.$params:t)}):e.tooltip??[]},exec(i){let g=e.validator(i,...re(t)),R;return g instanceof Promise?g.then(h=>(R=h,typeof R=="object"&&"$valid"in R?R.$valid:typeof R=="boolean"?R:false)):(R=g,typeof R=="object"&&"$valid"in R?R.$valid:typeof R=="boolean"?R: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:It(t),_brand:xt}}function et(e){if(typeof e.validator=="function"){let n=Ze(e,...[]),r=e.async??e.validator.constructor.name==="AsyncFunction";if(Ot(e.validator)>1){let a=function(...o){return Ze(e,...o)};return a.validator=n.validator,a.message=n.message,a.active=n.active,a.tooltip=n.tooltip,a.type=n.type,a.exec=n.exec,a._validator=n.validator,a._message=n.message,a._active=n.active,a._tooltip=n.tooltip,a._type=e.type,a._message_pacthed=false,a._tooltip_pacthed=false,a._async=r,a}else return n}throw new Error("[createRule] validator must be a function")}function tt(){let e=shallowRef(new Map),t=shallowRef(new Map),n=shallowRef(new Map),r=shallowRef(new Map),a=shallowRef(new Map),o=shallowRef(new Map);function s($){let E=t.value.get($);if(E)return E;{let x=ref({});return t.value.set($,x),x}}function i($){let E=n.value.get($);if(E)return E;{let x=ref([]);return n.value.set($,x),x}}function g($,E,x){o.value.set(`${$}-${E}`,x);}function R($,E){return o.value.get(`${$}-${E}`)}function h($,E){$&&E!=null&&o.value.delete(`${$}-${E}`);}function V($,E){r.value.set($,E);}function D($){return r.value.get($)??false}function A($,E){e.value.set($,E);}function P($,E){let x=e.value.get($);return x?O(E,x)?{valid:true}:{valid:false}:void 0}function O($,E){let x=Object.keys(E),d=Object.keys($);return d.length!==x.length||!d.every(c=>x.includes(c))?false:d.every(c=>{let y=$[c],S=E[c];return !S||!y||typeof y=="function"||typeof S=="function"||typeof y=="number"||typeof y=="boolean"?false:y._params?y._params?.every((N,W)=>{if(typeof S=="number"||typeof S=="boolean")return true;{let K=re(S._params),H=re(y._params);return K?.[W]===H?.[W]}}):true})}function l($){let E=a.value.get($);if(E)return E;{let x=ref(false),d=ref(true),b=ref({}),c=ref(false);return a.value.set($,{$pending:x,$valid:d,$metadata:b,$validating:c}),{$pending:x,$valid:d,$metadata:b,$validating:c}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),n.value.clear(),r.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:A,setDirtyEntry:V,checkRuleDeclEntry:P,getDirtyState:D,trySetRuleStatusRef:l,getFieldsEntry:s,getCollectionsEntry:i,getArrayStatus:R,addArrayStatus:g,deleteArrayStatus:h,arrayStatusStorage:o}}function Ne(e){return _(e.value)}function rt(e,t,n){let r=effectScope(),a;return e instanceof Function?a=r.run(()=>e(t,n??0)):a=e,{scope:r,unwrapped:a}}var Pe={LessThan:-1,EqualTo:0,GreaterThan:1};function Rr(e,t){let n=String(e).split("."),r=String(t).split(".");for(let a=0;a<Math.min(n.length,r.length);a++){let o=Number(n[a]),s=Number(r[a]);if(o>s)return Pe.GreaterThan;if(s>o)return Pe.LessThan;if(!isNaN(o)&&isNaN(s))return Pe.GreaterThan;if(isNaN(o)&&!isNaN(s))return Pe.LessThan}return Pe.EqualTo}var ke=Rr(version,"3.5.0")!==-1;function dr(){return Math.floor(Math.random()*Date.now()).toString()}function he(){return typeof window>"u"?dr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function wt(e){return getCurrentScope()?(onScopeDispose(e),true):false}function Pt(e){let t=false,n,r=effectScope(true);return (...a)=>(t||(n=r.run(()=>e(...a)),t=true),n)}function Ge(e,t){return Ne(e)||_(t.value)&&!te(t.value)&&!Object.entries(t.value).some(([n,r])=>me(r)||typeof r=="function")}function Mt(e,t,n=false){return !!e.value&&_(e.value)&&"$each"in e.value||n&&Array.isArray(t.value)&&t.value.some(_)||Array.isArray(t.value)&&t.value.some(_)}function Ue(e){return !!e.value&&_(e.value)}function me(e){return _(e)&&"_validator"in e}function Me(e){return typeof e.value=="function"?"_validator"in e.value:true}function jt(e){return _(e)&&"$fields"in e}function nt(e){return !!e&&"$rules"in e}function at({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([n,r])=>t&&!r.$valid||!r.$valid&&e.$error&&!r.$validating?r.$message:null).filter(n=>!!n).reduce((n,r)=>typeof r=="string"?n?.concat([r]):n?.concat(r),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function At({field:e}){return Object.entries(e.$rules??{}).map(([t,n])=>n.$tooltip).filter(t=>!!t).reduce((t,n)=>typeof n=="string"?t?.concat([n]):t?.concat(n),[])}function Vt(e){return _(e)&&"$each"in e}function lt(e,t){let{includePath:n=false}=t??{};if(Array.isArray(e)&&e.every(r=>!_(r)))return e;if(Vt(e)){let r=n?e.$self?.map(o=>({error:o,path:""}))??[]:e.$self??[],a=e.$each?.map(o=>We(o,n))??[];return r?.concat(a.flat())}else return Object.entries(e).map(([r,a])=>We(a,n,[r])).flat()}function We(e,t=false,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(a=>!_(a)))return t?e.map(a=>({error:a,path:r?.join(".")??""})):e;if(Vt(e)){let a=r?.length?e.$self?.map(s=>({error:s,path:r.join(".")}))??[]:e.$self??[],o=e.$each?.map((s,i)=>We(s,t,r?.concat(i.toString())))??[];return a?.concat(o.flat())}else return Object.entries(e).map(([a,o])=>We(o,t,r?.concat(a))).flat()}function Ft({customMessages:e,rule:t,ruleKey:n,state:r,path:a,storage:o,$debounce:s,modifiers:i}){let g=effectScope(),R={},h,V=ref(false),D=ref(false),{$pending:A,$valid:P,$metadata:O,$validating:l}=o.trySetRuleStatusRef(`${a}.${n}`);function $(){g=effectScope(),R=g.run(()=>{let S=ref(false),N=ref(false),W=ref(true),K=ref(false),H=ref(false),le=computed(()=>({$value:r.value,$error:N.value,$dirty:S.value,$pending:K.value,$correct:H.value,$invalid:W.value,$rule:{$valid:P.value,$invalid:!P.value,$pending:A.value},$params:f.value,...O.value})),C=computed(()=>Me(t)?typeof t.value.active=="function"?t.value.active(le.value):!!t.value.active:true);function z(w){let J="",m=e?e[n]?.[w]:void 0;if(m&&(typeof m=="function"?J=m(le.value):J=m),Me(t)){let j=`_${w}_patched`;m&&!t.value[j]||(typeof t.value[w]=="function"?J=t.value[w](le.value):J=t.value[w]??"");}return J}let ge=computed(()=>{let w=z("message");return te(w)&&(w="This field is not valid"),w}),ce=computed(()=>z("tooltip")),u=computed(()=>Me(t)&&t.value.type?t.value.type:n),p=computed(()=>Me(t)?t.value.validator:t.value),f=computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),I=computed(()=>`${a}.${u.value}`);return {$active:C,$message:ge,$type:u,$validator:p,$params:f,$path:I,$tooltip:ce,$fieldCorrect:H,$fieldError:N,$fieldDirty:S,$fieldPending:K,$fieldInvalid:W}}),h=watch(R?.$params,()=>{(i.$autoDirty.value||i.$rewardEarly.value&&R.$fieldError.value)&&b();});}$();function E(){P.value=true,R.$fieldDirty.value&&(A.value=true);}async function x(){let S=false;try{let N=R.$validator.value;if(typeof N!="function")return console.error(`${a}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let W=N(r.value,...R.$params.value),K=r.value;E();let H;if(W instanceof Promise?H=await W:H=W,r.value!==K)return !0;if(typeof H=="boolean")S=H;else {let{$valid:le,...C}=H;S=le,O.value=C;}}catch{S=false;}finally{A.value=false;}return S}let d=_e(x,s??200);async function b(){try{l.value=!0;let S=!1;if(D.value=!0,me(t.value)&&t.value._async)S=await d();else {let N=R.$validator.value,W=N(r.value,...R.$params.value);if(W 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(W!=null)if(typeof W=="boolean")S=W;else {let{$valid:K,...H}=W;S=K,O.value=H;}}return P.value=S,S}catch{return false}finally{l.value=false,D.value=false;}}function c(){P.value=true,O.value={},A.value=false,l.value=false,$();}function y(){h(),g.stop(),g=effectScope();}return reactive({...R,$pending:A,$valid:P,$metadata:O,$haveAsync:V,$maybePending:D,$validating:l,$parse:b,$unwatch:y,$watch:$,$reset:c})}function Ee({state:e,rulesDef:t,customMessages:n,path:r,fieldName:a,storage:o,options:s,externalErrors:i,schemaErrors:g,schemaMode:R,onUnwatch:h,$isArray:V,initialState:D,shortcuts:A,onValidate:P}){let O=effectScope(),l,$=[],E,x,d,b,c,y=()=>{};function S(){let T=t.value,F=o.checkRuleDeclEntry(r,T);z.value=Object.fromEntries(Object.entries(T).filter(([v])=>v.startsWith("$"))),K(),C.value=Object.fromEntries(Object.entries(t.value).filter(([v])=>!v.startsWith("$")).map(([v,ee])=>{if(ee){let se=toRef(()=>ee);return [v,Ft({modifiers:{$autoDirty:l.$autoDirty,$rewardEarly:l.$rewardEarly},customMessages:n,rule:se,ruleKey:v,state:e,path:r,storage:o,$debounce:z.value.$debounce})]}return []}).filter(v=>!!v.length)),l.processShortcuts(),N(),F?.valid!=null&&(l.$dirty.value=o.getDirtyState(r),(l.$dirty.value&&l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&y()),o.addRuleDeclEntry(r,T);}function N(){y=l.$debounce.value?_e(le,l.$debounce.value??l.$haveAnyAsyncRule?100:0):le;}function W(){C.value&&Object.entries(C.value).forEach(([T,F])=>{F.$unwatch();}),d(),c?.(),l.$dirty.value&&o.setDirtyEntry(r,l.$dirty.value),E?.(),x?.(),O.stop(),O=effectScope(),$.forEach(T=>T.stop()),$=[],h?.(),b?.();}function K(){C.value&&Object.entries(C.value).forEach(([T,F])=>{F.$watch();}),l=O.run(()=>{let T=ref(false),F=ref(false),v=computed(()=>T.value),ee=computed(()=>z.value.$debounce),se=computed(()=>z.value.$lazy!=null?z.value.$lazy:unref(s.lazy)!=null?unref(s.lazy):false),oe=computed(()=>z.value.$rewardEarly!=null?z.value.$rewardEarly:unref(s.rewardEarly)!=null?unref(s.rewardEarly):false),B=computed(()=>z.value.$clearExternalErrorsOnChange!=null?z.value.$clearExternalErrorsOnChange:unref(s.clearExternalErrorsOnChange)!=null?unref(s.clearExternalErrorsOnChange):true),M=computed(()=>z.value.$autoDirty!=null?z.value.$autoDirty:unref(s.autoDirty)!=null?unref(s.autoDirty):!oe.value),k=computed(()=>Object.entries(C.value).some(([ie,X])=>X.$validating)),we=computed({get:()=>e.value,set(ie){E(),e.value=ie,H();}}),Ve=computed(()=>$e.value&&!ve.value&&T.value),mt=computed(()=>at({field:{$rules:C.value,$error:Ve.value,$externalErrors:i?.value,$schemaErrors:g?.value}})),yt=computed(()=>at({field:{$rules:C.value,$error:Ve.value,$externalErrors:i?.value,$schemaErrors:g?.value},silent:true})),qe=computed(()=>T.value?D.value instanceof Date&&e.value instanceof Date?Qe(D.value).getDate()!==Qe(e.value).getDate():D.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(D.value)?e.value.length!==D.value.length:D.value!==e.value:false),gt=computed(()=>qe.value),vt=computed(()=>At({field:{$rules:C.value}})),$t=computed(()=>M.value?v.value&&!($e.value||ve.value):!($e.value||ve.value)),ve=computed(()=>F.value||!oe.value?Object.entries(C.value).some(([ie,X])=>X.$pending):false),$e=computed(()=>i?.value?.length||g?.value?.length?true:Fe.value?false:!oe.value||oe.value&&F.value?Object.entries(C.value).some(([ie,X])=>!(X.$valid&&!X.$maybePending)):false),St=computed(()=>a),Fe=computed(()=>!!(te(C.value)&&!R)),Tt=computed(()=>i?.value?.length||Fe.value?false:T.value&&!te(e.value)&&!k.value&&!ve.value?R?!g?.value?.length:Object.values(C.value).some(X=>X.$active)?Object.values(C.value).filter(X=>X.$active).every(X=>X.$valid):false:false),tr=computed(()=>Object.entries(C.value).some(([ie,X])=>X.$haveAsync));function rr(){A?.fields&&Object.entries(A.fields).forEach(([ie,X])=>{let bt=effectScope();ht[ie]=bt.run(()=>{let Et=ref();return watchEffect(()=>{Et.value=X(reactive({$dirty:T,$externalErrors:i?.value??[],$value:e,$silentValue:we,$rules:C,$error:Ve,$pending:ve,$invalid:$e,$correct:Tt,$errors:mt,$ready:$t,$silentErrors:yt,$anyDirty:v,$tooltips:vt,$name:St,$inactive:Fe,$edited:qe,$anyEdited:gt}));}),Et}),$.push(bt);});}let ht={};return watch($e,ie=>{ie||(F.value=false);}),{$error:Ve,$pending:ve,$invalid:$e,$correct:Tt,$debounce:ee,$lazy:se,$errors:mt,$ready:$t,$silentErrors:yt,$rewardEarly:oe,$autoDirty:M,$clearExternalErrorsOnChange:B,$anyDirty:v,$edited:qe,$anyEdited:gt,$name:St,$haveAnyAsyncRule:tr,$shortcuts:ht,$validating:k,$tooltips:vt,$dirty:T,triggerPunishment:F,processShortcuts:rr,$silentValue:we,$inactive:Fe}}),H(),d=watch(l.$dirty,T=>{o.setDirtyEntry(r,T),Object.values(C.value).forEach(F=>{F.$fieldDirty=T;});}),c=watch([l.$error,l.$correct,l.$invalid,l.$pending],()=>{Object.values(C.value).forEach(T=>{T.$fieldError=l.$error.value,T.$fieldInvalid=l.$invalid.value,T.$fieldPending=l.$pending.value,T.$fieldCorrect=l.$correct.value;});}),x=watch(l.$invalid,T=>{l.$rewardEarly.value&&!T&&(l.triggerPunishment.value=false);}),b=watch(l.$haveAnyAsyncRule,N);}function H(){E=watch(e,()=>{l.$autoDirty.value&&(l.$dirty.value||(l.$dirty.value=true)),t.value instanceof Function&&S(),(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&y(),l.$rewardEarly.value!==true&&l.$clearExternalErrorsOnChange.value&&f();},{deep:V?true:ke?1:true});}function le(){Object.values(C.value).forEach(T=>{T.$parse();});}let C=ref({}),z=ref({});S();function ge(T,F){if(f(),l.$dirty.value=false,l.triggerPunishment.value=false,o.setDirtyEntry(r,false),!F)if(T?.toInitialState)e.value=G(D);else if(T?.toState){let v;typeof T?.toState=="function"?v=T?.toState():v=T?.toState,D.value=G(v),e.value=G(v);}else D.value=_(e.value)?G(e.value):Array.isArray(e.value)?[...e.value]:e.value;T?.clearExternalErrors&&f(),F||Object.entries(C.value).forEach(([v,ee])=>{ee.$reset();}),!l.$lazy.value&&l.$autoDirty.value&&Object.values(C.value).forEach(v=>v.$parse());}function ce(T=true,F=false){l.$dirty.value||(l.$dirty.value=true),F&&T?(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&y():T&&y();}async function u(){try{if(R)return P?(ce(!1),P()):{valid:!1,data:e.value};let T=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:T};return R?{valid:!g?.value?.length,data:T}:te(C.value)?{valid:!0,data:T}:{valid:(await Promise.allSettled(Object.entries(C.value).map(([ee,se])=>se.$parse()))).every(ee=>ee.status==="fulfilled"?ee.value===!0:!1),data:T}}catch{return {valid:false,data:e.value}}}function p(T=true){return l.$dirty.value?e.value:T?{_null:true}:null}function f(){i?.value?.length&&(i.value=[]);}!l.$lazy.value&&!l.$dirty.value&&l.$autoDirty.value&&y();let{$shortcuts:I,$validating:w,$autoDirty:J,$rewardEarly:m,$clearExternalErrorsOnChange:j,$haveAnyAsyncRule:q,$debounce:Z,$lazy:Q,triggerPunishment:fe,...ue}=l;return reactive({...ue,$externalErrors:i,$value:e,$rules:C,...I,$reset:ge,$touch:ce,$validate:u,$unwatch:W,$watch:K,$extractDirtyFields:p,$clearExternalErrors:f})}function it({$id:e,path:t,index:n,options:r,storage:a,stateValue:o,customMessages:s,rules:i,externalErrors:g,schemaErrors:R,initialState:h,shortcuts:V,fieldName:D,schemaMode:A}){let P=i.$key?i.$key:he(),O=`${t}.${String(P)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?O=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:P,enumerable:false,configurable:false,writable:false}}));let l=toRef(g?.value??[],n),$=computed(()=>R?.value?.[n]),E=xe({state:o,rulesDef:toRef(()=>i),customMessages:s,path:O,storage:a,options:r,externalErrors:l,schemaErrors:$,initialState:h,shortcuts:V,fieldName:D,schemaMode:A});if(E){let x=o.value?.$id;E.$id=x??String(P),a.addArrayStatus(e,E.$id,E);}return E}function Gt({state:e,rulesDef:t,customMessages:n,path:r,storage:a,options:o,externalErrors:s,schemaErrors:i,schemaMode:g,initialState:R,shortcuts:h,fieldName:V}){let D=effectScope(),A,P=effectScope(),O,l=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let $=ref(),E=ref(e.value),x,d=ref({}),b=a.getCollectionsEntry(r);O=P.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(p=>typeof p!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(p=>me(p)||typeof p=="function"):false)})),c(),N();function c(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?($.value=he(),Object.defineProperties(e.value,{$id:{value:$.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&($.value=e.value.$id)),E.value=d.value.$value,Array.isArray(e.value)&&!O.isPrimitiveArray.value?b.value=e.value.filter(u=>typeof u=="object").map((u,p)=>{let{scope:f,unwrapped:I}=rt(t.value.$each,toRef(()=>u),p);f&&l.push(f);let w=toRef(R.value??[],p),J=toRef(s?.value??{},"$each"),m=computed(()=>i?.value?.$each),j=it({$id:$.value,path:r,customMessages:n,rules:I??{},stateValue:toRef(()=>u),index:p,options:o,storage:a,externalErrors:J,schemaErrors:m,initialState:w,shortcuts:h,fieldName:V,schemaMode:g});return j||null}).filter(u=>!!u):b.value=[],d.value=Ee({state:e,rulesDef:t,customMessages:n,path:r,storage:a,options:o,externalErrors:toRef(s?.value??{},"$self"),schemaErrors:computed(()=>i?.value?.$self),$isArray:true,initialState:R,shortcuts:h,fieldName:V,schemaMode:g});}function y(){if(Array.isArray(e.value)&&!O.isPrimitiveArray.value){let u=G(b.value);b.value=e.value.filter(p=>typeof p=="object").map((p,f)=>{let I=toRef(()=>p);if(p.$id&&b.value.find(w=>w.$id===p.$id)){let w=a.getArrayStatus($.value,p.$id);return w?(w.$value=I,w):null}else {let{scope:w,unwrapped:J}=rt(t.value.$each,I,f);w&&l.push(w);let m=toRef(s?.value??{},"$each"),j=computed(()=>i?.value?.$each??[]),q=it({$id:$.value,path:r,customMessages:n,rules:J??{},stateValue:I,index:f,options:o,storage:a,externalErrors:m,schemaErrors:j,initialState:toRef(R.value??[],f),shortcuts:h,fieldName:V,schemaMode:g});return q||null}}).filter(p=>!!p),u.filter(p=>!e.value?.find(f=>p.$id===f.$id)).forEach((p,f)=>{a.deleteArrayStatus($.value,f.toString());});}else b.value=[];}function S(){x=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?c():y();},{deep:ke?1:true,flush:"pre"});}function N(){S(),D=effectScope(),A=D.run(()=>{let u=computed({get:()=>e.value,set(v){x(),e.value=v,S();}}),p=computed(()=>d.value.$dirty&&(!b.value.length||b.value.every(v=>v.$dirty))),f=computed(()=>d.value.$anyDirty||b.value.some(v=>v.$anyDirty)),I=computed(()=>d.value.$invalid||b.value.some(v=>v.$invalid)),w=computed(()=>(te(d.value.$rules)?true:d.value.$correct)&&(!b.value.length||b.value.every(v=>v.$correct||v.$anyDirty&&!v.$invalid))),J=computed(()=>d.value.$error||b.value.some(v=>v.$error)),m=computed(()=>!(I.value||j.value)),j=computed(()=>d.value.$pending||b.value.some(v=>v.$pending)),q=computed(()=>!!b.value.length&&b.value.every(v=>v.$edited)),Z=computed(()=>d.value.$anyEdited||b.value.some(v=>v.$anyEdited)),Q=computed(()=>({$self:d.value.$errors,$each:b.value.map(v=>v.$errors)})),fe=computed(()=>({$self:d.value.$silentErrors,$each:b.value.map(v=>v.$silentErrors)})),ue=computed(()=>V);function T(){h?.collections&&Object.entries(h?.collections).forEach(([v,ee])=>{let se=effectScope();F[v]=se.run(()=>{let oe=ref();return watchEffect(()=>{oe.value=ee(reactive({$dirty:p,$error:J,$silentValue:u,$pending:j,$invalid:I,$correct:w,$errors:Q,$ready:m,$silentErrors:fe,$anyDirty:f,$name:ue,$each:b,$self:d,$value:e,$edited:q,$anyEdited:Z}));}),oe}),l.push(se);});}let F={};return T(),{$dirty:p,$anyDirty:f,$invalid:I,$correct:w,$error:J,$pending:j,$errors:Q,$silentErrors:fe,$ready:m,$name:ue,$shortcuts:F,$silentValue:u,$edited:q,$anyEdited:Z}}),O.isPrimitiveArray.value&&t.value.$each&&console.warn(`${r} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function W(){x&&x(),d.value&&d.value.$unwatch(),b.value&&b.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),D.stop(),D=effectScope(),P.stop(),P=effectScope(true),l.forEach(u=>u.stop()),l=[];}function K(u=true,p=false){d.value.$touch(u,p),b.value.forEach(f=>{f.$touch(u,p);});}function H(u,p){if(W(),!p)if(u?.toInitialState)e.value=G(R.value);else if(u?.toState){let f;typeof u?.toState=="function"?f=u?.toState():f=u?.toState,R.value=G(f),e.value=G(f);}else R.value=G(e.value);u?.clearExternalErrors&&C(),d.value.$reset(),b.value.forEach(f=>{f.$reset(u,true);}),p||c();}async function le(){let u=e.value;try{return {valid:(await Promise.allSettled([d.value.$validate(),...b.value.map(I=>I.$validate())])).every(I=>I.status==="fulfilled"?I.value.valid===!0:!1),data:u}}catch{return {valid:false,data:u}}}function C(){d.value.$clearExternalErrors(),b.value.forEach(u=>{u.$clearExternalErrors();});}function z(u=true){let p=b.value.map(f=>{if(jt(f))return f.$extractDirtyFields(u)});return u&&p.every(f=>te(f))&&(p=[]),p}let{$shortcuts:ge,...ce}=A;return reactive({$self:d,...ce,...ge,$each:b,$value:e,$validate:le,$unwatch:W,$watch:N,$touch:K,$reset:H,$extractDirtyFields:z,$clearExternalErrors:C})}function Le({rulesDef:e,state:t,path:n="",rootRules:r,externalErrors:a,schemaErrors:o,rootSchemaErrors:s,validationGroups:i,initialState:g,fieldName:R,...h}){let V=effectScope(),D,A=[],P=null,O=null,l=null,$=null;async function x(u=true){let p=Object.entries(e.value),f=Object.fromEntries(p.filter(([m,j])=>!!j).map(([m,j])=>{if(j){let q=toRef(t.value??{},m),Z=toRef(()=>j),Q=toRef(a?.value??{},m),fe=computed(()=>o?.value?.[m]),ue=toRef(g?.value??{},m);return [m,xe({state:q,rulesDef:Z,path:n?`${n}.${m}`:m,externalErrors:Q,schemaErrors:fe,initialState:ue,fieldName:m,...h})]}return []})),I=Object.fromEntries(Object.entries(unref(a)??{}).filter(([m,j])=>!(m in e.value)&&!!j).map(([m])=>{let j=toRef(t.value??{},m),q=toRef(a?.value??{},m),Z=computed(()=>o?.value?.[m]),Q=toRef(g?.value??{},m);return [m,xe({state:j,rulesDef:computed(()=>({})),path:n?`${n}.${m}`:m,externalErrors:q,schemaErrors:Z,initialState:Q,fieldName:m,...h})]})),w=Object.fromEntries(Object.entries(unref(o)??{}).map(([m])=>{let j=toRef(t.value??{},m),q=toRef(a?.value??{},m),Z=computed(()=>o?.value?.[m]),Q=toRef(g?.value??{},m);return [m,xe({state:j,rulesDef:computed(()=>({})),path:n?`${n}.${m}`:m,externalErrors:q,schemaErrors:Z,initialState:Q,fieldName:m,...h})]})),J=Object.fromEntries(Object.entries(t.value??{}).filter(([m])=>!(m in e.value)&&!(m in(I??{}))&&!(m in(w??{}))).map(([m])=>{let j=toRef(t.value??{},m),q=toRef(a?.value??{},m),Z=computed(()=>o?.value?.[m]),Q=toRef(g?.value??{},m);return [m,xe({state:j,rulesDef:computed(()=>({})),path:n?`${n}.${m}`:m,externalErrors:q,schemaErrors:Z,initialState:Q,fieldName:m,...h})]}));d.value={...f,...I,...w,...J},u&&y();}let d=h.storage.getFieldsEntry(n);x();function b(){a&&(l=watch(a,()=>{S(),x();},{deep:true}));}function c(){$=watch(t,()=>{S(),x(),K(true,true);},{flush:"sync"});}function y(){r&&(P?.(),P=watch(r,()=>{S(),x();},{deep:true,flush:"pre"}),b()),s&&(O?.(),O=watch(s,()=>{S(),x();},{deep:true,flush:"post"})),c(),D=V.run(()=>{let u=computed({get:()=>t.value,set(B){S(),t.value=B,x();}}),p=computed(()=>!!Object.entries(d.value).length&&Object.entries(d.value).every(([B,M])=>M?.$dirty)),f=computed(()=>Object.entries(d.value).some(([B,M])=>M?.$anyDirty)),I=computed(()=>!!Object.entries(d.value).length&&Object.entries(d.value).some(([B,M])=>M?.$invalid)),w=computed(()=>{let B=Object.entries(d.value).filter(([M,k])=>nt(k)?!k.$inactive:true);return B.length?B.every(([M,k])=>h.schemaMode?k.$correct:nt(k)?"required"in k.$rules&&k.$rules.required.$active?k?.$correct:!k.$invalid&&!k.$pending:k?.$correct):false}),J=computed(()=>!!Object.entries(d.value).length&&Object.entries(d.value).some(([B,M])=>M?.$error)),m=computed(()=>unref(h.options.rewardEarly)!=null?unref(h.options.rewardEarly):false),j=computed(()=>unref(h.options.autoDirty)!=null?unref(h.options.autoDirty):!m.value),q=computed(()=>j.value?f.value&&!(I.value||Q.value):!(I.value||Q.value)),Z=ref(false),Q=computed(()=>Z.value||Object.entries(d.value).some(([B,M])=>M?.$pending)),fe=computed(()=>Object.fromEntries(Object.entries(d.value).map(([B,M])=>[B,M?.$errors]))),ue=computed(()=>Object.fromEntries(Object.entries(d.value).map(([B,M])=>[B,M?.$silentErrors]))),T=computed(()=>!!Object.entries(d.value).length&&Object.entries(d.value).every(([B,M])=>M?.$edited)),F=computed(()=>Object.entries(d.value).some(([B,M])=>M?.$anyEdited)),v=computed(()=>R);function ee(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([B,M])=>{let k=effectScope();oe[B]=k.run(()=>{let we=ref();return watchEffect(()=>{we.value=M(reactive({$dirty:p,$value:t,$silentValue:u,$error:J,$pending:Q,$invalid:I,$correct:w,$ready:q,$anyDirty:f,$name:v,$silentErrors:ue,$errors:fe,$fields:d,$edited:T,$anyEdited:F}));}),we}),A.push(k);});}let se=computed({get:()=>i?Object.fromEntries(Object.entries(i?.(d.value)??{}).map(([B,M])=>M.length?[B,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(k=>[k,Dt(M,k)])),...Object.fromEntries(["$errors","$silentErrors"].map(k=>[k,Ct(M,k)]))}]:[])):{},set(){}}),oe={};return ee(),{$dirty:p,$anyDirty:f,$invalid:I,$correct:w,$error:J,$pending:Q,$errors:fe,$silentErrors:ue,$ready:q,$name:v,$shortcuts:oe,$groups:se,$silentValue:u,$edited:T,$anyEdited:F,$localPending:Z}});}function S(){P?.(),l?.(),$?.(),O?.(),A=[],D={},d.value&&Object.entries(d.value).forEach(([u,p])=>{p.$unwatch();});}function N(){Object.entries(d.value).forEach(([u,p])=>{p.$clearExternalErrors();});}function W(u,p){if(l?.(),S(),!p)if(u?.toInitialState)t.value=G({...g.value??{}});else if(u?.toState){let f;typeof u?.toState=="function"?f=u?.toState():f=u?.toState,g.value=G(f),t.value=G(f);}else g.value=G(t.value);Object.values(d.value).forEach(f=>{f.$reset(u,true);}),u?.clearExternalErrors&&N(),b(),p||x();}function K(u=true,p=false){Object.values(d.value).forEach(f=>{f.$touch(u,p);});}function H(u){return u.filter(([p,f])=>_(f)?!(f&&typeof f=="object"&&"_null"in f)&&!te(f):Array.isArray(f)?f.length:true)}function le(u=true){let p=Object.entries(d.value).map(([f,I])=>[f,I.$extractDirtyFields(u)]);return u&&(p=H(p)),Object.fromEntries(p)}async function C(){try{if(h.schemaMode)return h.onValidate?(K(!1),D.$localPending.value=!0,h.onValidate()):{valid:!1,data:t.value};{let u=t.value;return {valid:(await Promise.allSettled(Object.values(d.value).map(I=>I.$validate()))).every(I=>I.status==="fulfilled"?I.value.valid===!0:!1),data:u}}}catch{return {valid:false,data:t.value}}finally{D.$localPending.value=false;}}let{$shortcuts:z,$localPending:ge,...ce}=D;return reactive({...ce,...z,$fields:d,$value:t,$reset:W,$touch:K,$validate:C,$unwatch:S,$watch:y,$clearExternalErrors:N,$extractDirtyFields:le})}function xe({rulesDef:e,...t}){if(Mt(e,t.state,t.schemaMode))return Gt({rulesDef:e,...t});if(Ge(t.state,e)){if(Ne(t.state))return Le({rulesDef:e,...t});{let r=effectScope().run(()=>{let s=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,i=>{s.value=i;},{deep:true}),watch(s,i=>{t.state.value=i;},{deep:true}),{fakeState:s}}),{state:a,...o}=t;return Le({rulesDef:e,...o,state:r.fakeState})}}else if(Ue(e))return Ee({rulesDef:e,...t})}function Oe({initialState:e,options:t,scopeRules:n,state:r,customRules:a,shortcuts:o,schemaErrors:s,schemaMode:i=false,onValidate:g}){let R=tt(),h=ref();return Ge(r,n)?h.value=Le({rootRules:n,rulesDef:n,state:r,customMessages:a?.(),storage:R,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaErrors:s,rootSchemaErrors:s,schemaMode:i,onValidate:g}):Ue(n)&&(h.value=Ee({rulesDef:n,state:r,customMessages:a?.(),storage:R,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaMode:i,schemaErrors:s,onValidate:g})),getCurrentScope()&&onScopeDispose(()=>{h.value?.$unwatch();}),reactive({regle:h})}function He(e,t,n){let r={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function a(o,s,i){let g=isRef(s)?s:computed(typeof s=="function"?s:()=>s),R={...r,...i},h=isRef(o)?o:ref(o),V=ref(_(h.value)?{...G(h.value)}:G(h.value));return {r$:Oe({scopeRules:g,state:h,options:R,initialState:V,customRules:e,shortcuts:n}).regle}}return a}var ze=He();function Je(){function e(t,n){return n}return e}var ft=Je();function Lt({rules:e,modifiers:t,shortcuts:n}){let r=He(e,t,n);r.__config={rules:e,modifiers:t,shortcuts:n};let a=Je();return {useRegle:r,inferRules:a}}function Ht(e,{rules:t,modifiers:n,shortcuts:r}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?Ye(a.modifiers,n):n,i=a.shortcuts&&r?Ye(a.shortcuts,r):r,g=He(o,s,i);g.__config={rules:o,modifiers:s,shortcuts:i};let R=Je();return {useRegle:g,inferRules:R}}function Ae(e,t){let n=t??false,r=computed({get:()=>n?Object.values(e).map(c=>c.$value):Object.fromEntries(Object.entries(e).map(([c,y])=>[c,y.$value])),set:c=>{n||typeof c=="object"&&Object.entries(c).forEach(([y,S])=>e[y].$value=S);}}),a=computed({get:()=>Object.fromEntries(Object.entries(e).map(([c,y])=>[c,y.$silentValue])),set:c=>{typeof c=="object"&&Object.entries(c).forEach(([y,S])=>e[y].$silentValue=S);}}),o=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([y,S])=>S?.$dirty)}),s=computed(()=>Object.entries(e).some(([c,y])=>y?.$anyDirty)),i=computed(()=>Object.entries(e).some(([c,y])=>y?.$invalid)),g=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([y,S])=>S?.$correct||S.$anyDirty&&!S.$invalid)}),R=computed(()=>Object.entries(e).some(([c,y])=>y?.$error)),h=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([y,S])=>S?.$ready)}),V=computed(()=>Object.entries(e).some(([c,y])=>y?.$pending)),D=computed(()=>n?Object.entries(e).map(([c,y])=>y.$errors):Object.fromEntries(Object.entries(e).map(([c,y])=>[c,y.$errors]))),A=computed(()=>n?Object.entries(e).map(([c,y])=>y.$silentErrors):Object.fromEntries(Object.entries(e).map(([c,y])=>[c,y.$silentErrors]))),P=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([y,S])=>S?.$edited)}),O=computed(()=>Object.entries(e).some(([c,y])=>y?.$anyEdited)),l=computed(()=>n?Object.values(e):e);function $(c){Object.values(e).forEach(y=>{y.$reset(c);});}function E(){Object.values(e).forEach(c=>{c.$touch();});}function x(c=true){return Object.values(e).map(y=>y.$extractDirtyFields(c))}function d(){Object.values(e).forEach(c=>{c.$clearExternalErrors();});}async function b(){try{let c=r.value;return {valid:(await Promise.allSettled(Object.values(e).map(N=>N.$validate()))).every(N=>N.status==="fulfilled"?N.value.valid===!0:!1),data:c}}catch{return {valid:false,data:r.value}}}return reactive({...!n&&{$silentValue:a},$errors:D,$silentErrors:A,$instances:l,$value:r,$dirty:o,$anyDirty:s,$invalid:i,$correct:g,$error:R,$pending:V,$ready:h,$edited:P,$anyEdited:O,$reset:$,$touch:E,$validate:b,$extractDirtyFields:x,$clearExternalErrors:d})}function Jt(e){function t(n){let r=computed(()=>toValue(n));s();let a=ref(i(e.value)),o=reactive({r$:a});function s(){r.value&&!e.value[r.value]&&(e.value[r.value]={});}watch(r,s),watch(e,g=>{a.value=i(g);},{deep:true});function i(g){if(r.value){let R=g[r.value]??{};return Ae(R,true)}else return Ae(g["~~global"]??{},true)}return {r$:o.r$}}return {useCollectScope:t}}function Yt(e,t){let n=t??ze;return {useScopedRegle:(a,o,s)=>{let{namespace:i,...g}=s??{},R=computed(()=>toValue(i)),h=ref(`${Object.keys(e.value).length+1}-${he()}`),V=computed(()=>`instance-${h.value}`),{r$:D}=n(a,o,g);P(),wt(A),watch(R,(O,l)=>{A(l),P();}),getCurrentInstance()&&onMounted(()=>{let O=getCurrentInstance();typeof window<"u"&&O?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(O?.proxy?.$el?.parentElement)&&A();});function A(O){let l=O??R.value;l?e.value[l]&&delete e.value[l][V.value]:e.value["~~global"][V.value]&&delete e.value["~~global"][V.value];}function P(){R.value?(e.value[R.value]||(e.value[R.value]={}),e.value[R.value][V.value]=D):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][V.value]=D);}return {r$:D,dispose:A,register:P}}}}function Ke(e){let n=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):Pt(()=>ref({"~~global":{}})))(),{useScopedRegle:r}=Yt(n,e?.customUseRegle),{useCollectScope:a}=Jt(n);return {useScopedRegle:r,useCollectScope:a}}var {useCollectScope:Rt,useScopedRegle:dt}=Ke();function Zt(e,t,n){let r=computed(()=>toValue(e)[t]);return computed(()=>{let o=n.find(s=>{if(s[t]&&"literal"in s[t]){let i=s[t].literal;if(me(i))return unref(i._params?.[0])===r.value}});if(o)return o;{let s=n.find(i=>_(i[t])&&!Object.keys(i[t]).some(g=>g==="literal"));return s||{}}})}function pt(e,t,n){return _(e[t])&&"$value"in e[t]&&e[t]?.$value===n}function er(e,t,n){let r=isRef(e)?toRef(e.value,"$fields"):toRef(e,"$fields"),a=ref();return watch(r,()=>{pt(r.value,t,n)?a.value=r.value:a.value=void 0;},{immediate:true}),a}
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 xt=Symbol("regle-rule");function nr(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function G(e){let t=e,n={}.toString.call(e).slice(8,-1);if(n=="Set"&&(t=new Set([...e].map(r=>G(r)))),n=="Map"&&(t=new Map([...e].map(r=>[G(r[0]),G(r[1])]))),n=="Date"&&(t=new Date(e.getTime())),n=="RegExp"&&(t=RegExp(e.source,nr(e))),n=="Array"||n=="Object"){t=Array.isArray(e)?[]:{};for(let r in e)t[r]=G(e[r]);}return t}function _(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ye(e,...t){for(var n=[].slice.call(arguments),r,a=n.length;r=n[a-1],a--;)if(!r||typeof r!="object"&&typeof r!="function")throw new Error("expected object, got "+r);for(var o=n[0],s=n.slice(1),i=s.length,a=0;a<i;a++){var g=s[a];for(var R in g)o[R]=g[R];}return o}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 _e(e,t,n){let r,a=(...o)=>new Promise(s=>{clearTimeout(r),r=setTimeout(()=>{r=void 0,Promise.resolve(e.apply(this,[...o])).then(s);},t);});return a.cancel=()=>{clearTimeout(r),r=void 0;},a}var Xe={Inline:"__inline",Async:"__async"};function Dt(e,t){return e.some(n=>n[t])}function Ct(e,t){return e.reduce((n,r)=>{let a=r[t]||[];return n.concat(a)},[])}function re(e){try{return e.map(t=>toValue(t))}catch{return []}}function It(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function Ot(e){let r=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return r?(r[0]||r[1]||r[2]||r[3]||r[4]||"").split(",").map(s=>s.trim()).filter(s=>s.length>0).length:0}function Ze(e,...t){let{validator:n,type:r}=e,a=r===Xe.Async||n.constructor.name==="AsyncFunction";return {...{validator(i,...g){return e.validator(i,...re(g.length?g:t))},message(i){return typeof e.message=="function"?e.message({...i,$params:re(i?.$params?.length?i.$params:t)}):e.message},active(i){return typeof e.active=="function"?e.active({...i,$params:re(i?.$params?.length?i.$params:t)}):e.active??true},tooltip(i){return typeof e.tooltip=="function"?e.tooltip({...i,$params:re(i?.$params?.length?i.$params:t)}):e.tooltip??[]},exec(i){let g=e.validator(i,...re(t)),R;return g instanceof Promise?g.then(h=>(R=h,typeof R=="object"&&"$valid"in R?R.$valid:typeof R=="boolean"?R:false)):(R=g,typeof R=="object"&&"$valid"in R?R.$valid:typeof R=="boolean"?R: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:It(t),_brand:xt}}function et(e){if(typeof e.validator=="function"){let n=Ze(e,...[]),r=e.async??e.validator.constructor.name==="AsyncFunction";if(Ot(e.validator)>1){let a=function(...o){return Ze(e,...o)};return a.validator=n.validator,a.message=n.message,a.active=n.active,a.tooltip=n.tooltip,a.type=n.type,a.exec=n.exec,a._validator=n.validator,a._message=n.message,a._active=n.active,a._tooltip=n.tooltip,a._type=e.type,a._message_pacthed=false,a._tooltip_pacthed=false,a._async=r,a}else return n}throw new Error("[createRule] validator must be a function")}function tt(){let e=shallowRef(new Map),t=shallowRef(new Map),n=shallowRef(new Map),r=shallowRef(new Map),a=shallowRef(new Map),o=shallowRef(new Map);function s($){let E=t.value.get($);if(E)return E;{let x=ref({});return t.value.set($,x),x}}function i($){let E=n.value.get($);if(E)return E;{let x=ref([]);return n.value.set($,x),x}}function g($,E,x){o.value.set(`${$}-${E}`,x);}function R($,E){return o.value.get(`${$}-${E}`)}function h($,E){$&&E!=null&&o.value.delete(`${$}-${E}`);}function V($,E){r.value.set($,E);}function D($){return r.value.get($)??false}function A($,E){e.value.set($,E);}function P($,E){let x=e.value.get($);return x?O(E,x)?{valid:true}:{valid:false}:void 0}function O($,E){let x=Object.keys(E),d=Object.keys($);return d.length!==x.length||!d.every(c=>x.includes(c))?false:d.every(c=>{let y=$[c],S=E[c];return !S||!y||typeof y=="function"||typeof S=="function"||typeof y=="number"||typeof y=="boolean"?false:y._params?y._params?.every((N,W)=>{if(typeof S=="number"||typeof S=="boolean")return true;{let K=re(S._params),H=re(y._params);return K?.[W]===H?.[W]}}):true})}function l($){let E=a.value.get($);if(E)return E;{let x=ref(false),d=ref(true),b=ref({}),c=ref(false);return a.value.set($,{$pending:x,$valid:d,$metadata:b,$validating:c}),{$pending:x,$valid:d,$metadata:b,$validating:c}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),n.value.clear(),r.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:A,setDirtyEntry:V,checkRuleDeclEntry:P,getDirtyState:D,trySetRuleStatusRef:l,getFieldsEntry:s,getCollectionsEntry:i,getArrayStatus:R,addArrayStatus:g,deleteArrayStatus:h,arrayStatusStorage:o}}function Ne(e){return _(e.value)}function rt(e,t,n){let r=effectScope(),a;return e instanceof Function?a=r.run(()=>e(t,n??0)):a=e,{scope:r,unwrapped:a}}var Pe={LessThan:-1,EqualTo:0,GreaterThan:1};function Rr(e,t){let n=String(e).split("."),r=String(t).split(".");for(let a=0;a<Math.min(n.length,r.length);a++){let o=Number(n[a]),s=Number(r[a]);if(o>s)return Pe.GreaterThan;if(s>o)return Pe.LessThan;if(!isNaN(o)&&isNaN(s))return Pe.GreaterThan;if(isNaN(o)&&!isNaN(s))return Pe.LessThan}return Pe.EqualTo}var ke=Rr(version,"3.5.0")!==-1;function dr(){return Math.floor(Math.random()*Date.now()).toString()}function he(){return typeof window>"u"?dr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function wt(e){return getCurrentScope()?(onScopeDispose(e),true):false}function Pt(e){let t=false,n,r=effectScope(true);return (...a)=>(t||(n=r.run(()=>e(...a)),t=true),n)}function Ge(e,t){return Ne(e)||_(t.value)&&!te(t.value)&&!Object.entries(t.value).some(([n,r])=>me(r)||typeof r=="function")}function Mt(e,t,n=false){return !!e.value&&_(e.value)&&"$each"in e.value||n&&Array.isArray(t.value)&&t.value.some(_)||Array.isArray(t.value)&&t.value.some(_)}function Ue(e){return !!e.value&&_(e.value)}function me(e){return _(e)&&"_validator"in e}function Me(e){return typeof e.value=="function"?"_validator"in e.value:true}function jt(e){return _(e)&&"$fields"in e}function nt(e){return !!e&&"$rules"in e}function at({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([n,r])=>t&&!r.$valid||!r.$valid&&e.$error&&!r.$validating?r.$message:null).filter(n=>!!n).reduce((n,r)=>typeof r=="string"?n?.concat([r]):n?.concat(r),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function At({field:e}){return Object.entries(e.$rules??{}).map(([t,n])=>n.$tooltip).filter(t=>!!t).reduce((t,n)=>typeof n=="string"?t?.concat([n]):t?.concat(n),[])}function Vt(e){return _(e)&&"$each"in e}function lt(e,t){let{includePath:n=false}=t??{};if(Array.isArray(e)&&e.every(r=>!_(r)))return e;if(Vt(e)){let r=n?e.$self?.map(o=>({error:o,path:""}))??[]:e.$self??[],a=e.$each?.map(o=>We(o,n))??[];return r?.concat(a.flat())}else return Object.entries(e).map(([r,a])=>We(a,n,[r])).flat()}function We(e,t=false,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(a=>!_(a)))return t?e.map(a=>({error:a,path:r?.join(".")??""})):e;if(Vt(e)){let a=r?.length?e.$self?.map(s=>({error:s,path:r.join(".")}))??[]:e.$self??[],o=e.$each?.map((s,i)=>We(s,t,r?.concat(i.toString())))??[];return a?.concat(o.flat())}else return Object.entries(e).map(([a,o])=>We(o,t,r?.concat(a))).flat()}function Ft({customMessages:e,rule:t,ruleKey:n,state:r,path:a,storage:o,$debounce:s,modifiers:i}){let g=effectScope(),R={},h,V=ref(false),D=ref(false),{$pending:A,$valid:P,$metadata:O,$validating:l}=o.trySetRuleStatusRef(`${a}.${n}`);function $(){g=effectScope(),R=g.run(()=>{let S=ref(false),N=ref(false),W=ref(true),K=ref(false),H=ref(false),le=computed(()=>({$value:r.value,$error:N.value,$dirty:S.value,$pending:K.value,$correct:H.value,$invalid:W.value,$rule:{$valid:P.value,$invalid:!P.value,$pending:A.value},$params:f.value,...O.value})),C=computed(()=>Me(t)?typeof t.value.active=="function"?t.value.active(le.value):!!t.value.active:true);function z(w){let J="",m=e?e[n]?.[w]:void 0;if(m&&(typeof m=="function"?J=m(le.value):J=m),Me(t)){let j=`_${w}_patched`;m&&!t.value[j]||(typeof t.value[w]=="function"?J=t.value[w](le.value):J=t.value[w]??"");}return J}let ge=computed(()=>{let w=z("message");return te(w)&&(w="This field is not valid"),w}),ce=computed(()=>z("tooltip")),u=computed(()=>Me(t)&&t.value.type?t.value.type:n),p=computed(()=>Me(t)?t.value.validator:t.value),f=computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),I=computed(()=>`${a}.${u.value}`);return {$active:C,$message:ge,$type:u,$validator:p,$params:f,$path:I,$tooltip:ce,$fieldCorrect:H,$fieldError:N,$fieldDirty:S,$fieldPending:K,$fieldInvalid:W}}),h=watch(R?.$params,()=>{(i.$autoDirty.value||i.$rewardEarly.value&&R.$fieldError.value)&&b();});}$();function E(){P.value=true,R.$fieldDirty.value&&(A.value=true);}async function x(){let S=false;try{let N=R.$validator.value;if(typeof N!="function")return console.error(`${a}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let W=N(r.value,...R.$params.value),K=r.value;E();let H;if(W instanceof Promise?H=await W:H=W,r.value!==K)return !0;if(typeof H=="boolean")S=H;else {let{$valid:le,...C}=H;S=le,O.value=C;}}catch{S=false;}finally{A.value=false;}return S}let d=_e(x,s??200);async function b(){try{l.value=!0;let S=!1;if(D.value=!0,me(t.value)&&t.value._async)S=await d();else {let N=R.$validator.value,W=N(r.value,...R.$params.value);if(W 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(W!=null)if(typeof W=="boolean")S=W;else {let{$valid:K,...H}=W;S=K,O.value=H;}}return P.value=S,S}catch{return false}finally{l.value=false,D.value=false;}}function c(){P.value=true,O.value={},A.value=false,l.value=false,$();}function y(){h(),g.stop(),g=effectScope();}return reactive({...R,$pending:A,$valid:P,$metadata:O,$haveAsync:V,$maybePending:D,$validating:l,$parse:b,$unwatch:y,$watch:$,$reset:c})}function Ee({state:e,rulesDef:t,customMessages:n,path:r,fieldName:a,storage:o,options:s,externalErrors:i,schemaErrors:g,schemaMode:R,onUnwatch:h,$isArray:V,initialState:D,shortcuts:A,onValidate:P}){let O=effectScope(),l,$=[],E,x,d,b,c,y=()=>{};function S(){let T=t.value,F=o.checkRuleDeclEntry(r,T);z.value=Object.fromEntries(Object.entries(T).filter(([v])=>v.startsWith("$"))),K(),C.value=Object.fromEntries(Object.entries(t.value).filter(([v])=>!v.startsWith("$")).map(([v,ee])=>{if(ee){let se=toRef(()=>ee);return [v,Ft({modifiers:{$autoDirty:l.$autoDirty,$rewardEarly:l.$rewardEarly},customMessages:n,rule:se,ruleKey:v,state:e,path:r,storage:o,$debounce:z.value.$debounce})]}return []}).filter(v=>!!v.length)),l.processShortcuts(),N(),F?.valid!=null&&(l.$dirty.value=o.getDirtyState(r),(l.$dirty.value&&l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&y()),o.addRuleDeclEntry(r,T);}function N(){y=l.$debounce.value?_e(le,l.$debounce.value??l.$haveAnyAsyncRule?100:0):le;}function W(){C.value&&Object.entries(C.value).forEach(([T,F])=>{F.$unwatch();}),d(),c?.(),l.$dirty.value&&o.setDirtyEntry(r,l.$dirty.value),E?.(),x?.(),O.stop(),O=effectScope(),$.forEach(T=>T.stop()),$=[],h?.(),b?.();}function K(){C.value&&Object.entries(C.value).forEach(([T,F])=>{F.$watch();}),l=O.run(()=>{let T=ref(false),F=ref(false),v=computed(()=>T.value),ee=computed(()=>z.value.$debounce),se=computed(()=>z.value.$lazy!=null?z.value.$lazy:unref(s.lazy)!=null?unref(s.lazy):false),oe=computed(()=>z.value.$rewardEarly!=null?z.value.$rewardEarly:unref(s.rewardEarly)!=null?unref(s.rewardEarly):false),B=computed(()=>z.value.$clearExternalErrorsOnChange!=null?z.value.$clearExternalErrorsOnChange:unref(s.clearExternalErrorsOnChange)!=null?unref(s.clearExternalErrorsOnChange):true),M=computed(()=>z.value.$autoDirty!=null?z.value.$autoDirty:unref(s.autoDirty)!=null?unref(s.autoDirty):!oe.value),k=computed(()=>Object.entries(C.value).some(([ie,X])=>X.$validating)),we=computed({get:()=>e.value,set(ie){E(),e.value=ie,H();}}),Ve=computed(()=>$e.value&&!ve.value&&T.value),mt=computed(()=>at({field:{$rules:C.value,$error:Ve.value,$externalErrors:i?.value,$schemaErrors:g?.value}})),yt=computed(()=>at({field:{$rules:C.value,$error:Ve.value,$externalErrors:i?.value,$schemaErrors:g?.value},silent:true})),qe=computed(()=>T.value?D.value instanceof Date&&e.value instanceof Date?Qe(D.value).getDate()!==Qe(e.value).getDate():D.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(D.value)?e.value.length!==D.value.length:D.value!==e.value:false),gt=computed(()=>qe.value),vt=computed(()=>At({field:{$rules:C.value}})),$t=computed(()=>M.value?v.value&&!($e.value||ve.value):!($e.value||ve.value)),ve=computed(()=>F.value||!oe.value?Object.entries(C.value).some(([ie,X])=>X.$pending):false),$e=computed(()=>i?.value?.length||g?.value?.length?true:Fe.value?false:!oe.value||oe.value&&F.value?Object.entries(C.value).some(([ie,X])=>!(X.$valid&&!X.$maybePending)):false),St=computed(()=>a),Fe=computed(()=>!!(te(C.value)&&!R)),Tt=computed(()=>i?.value?.length||Fe.value?false:T.value&&!te(e.value)&&!k.value&&!ve.value?R?!g?.value?.length:Object.values(C.value).some(X=>X.$active)?Object.values(C.value).filter(X=>X.$active).every(X=>X.$valid):false:false),tr=computed(()=>Object.entries(C.value).some(([ie,X])=>X.$haveAsync));function rr(){A?.fields&&Object.entries(A.fields).forEach(([ie,X])=>{let bt=effectScope();ht[ie]=bt.run(()=>{let Et=ref();return watchEffect(()=>{Et.value=X(reactive({$dirty:T,$externalErrors:i?.value??[],$value:e,$silentValue:we,$rules:C,$error:Ve,$pending:ve,$invalid:$e,$correct:Tt,$errors:mt,$ready:$t,$silentErrors:yt,$anyDirty:v,$tooltips:vt,$name:St,$inactive:Fe,$edited:qe,$anyEdited:gt}));}),Et}),$.push(bt);});}let ht={};return watch($e,ie=>{ie||(F.value=false);}),{$error:Ve,$pending:ve,$invalid:$e,$correct:Tt,$debounce:ee,$lazy:se,$errors:mt,$ready:$t,$silentErrors:yt,$rewardEarly:oe,$autoDirty:M,$clearExternalErrorsOnChange:B,$anyDirty:v,$edited:qe,$anyEdited:gt,$name:St,$haveAnyAsyncRule:tr,$shortcuts:ht,$validating:k,$tooltips:vt,$dirty:T,triggerPunishment:F,processShortcuts:rr,$silentValue:we,$inactive:Fe}}),H(),d=watch(l.$dirty,T=>{o.setDirtyEntry(r,T),Object.values(C.value).forEach(F=>{F.$fieldDirty=T;});}),c=watch([l.$error,l.$correct,l.$invalid,l.$pending],()=>{Object.values(C.value).forEach(T=>{T.$fieldError=l.$error.value,T.$fieldInvalid=l.$invalid.value,T.$fieldPending=l.$pending.value,T.$fieldCorrect=l.$correct.value;});}),x=watch(l.$invalid,T=>{l.$rewardEarly.value&&!T&&(l.triggerPunishment.value=false);}),b=watch(l.$haveAnyAsyncRule,N);}function H(){E=watch(e,()=>{l.$autoDirty.value&&(l.$dirty.value||(l.$dirty.value=true)),t.value instanceof Function&&S(),(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&y(),l.$rewardEarly.value!==true&&l.$clearExternalErrorsOnChange.value&&f();},{deep:V?true:ke?1:true});}function le(){Object.values(C.value).forEach(T=>{T.$parse();});}let C=ref({}),z=ref({});S();function ge(T,F){if(f(),l.$dirty.value=false,l.triggerPunishment.value=false,o.setDirtyEntry(r,false),!F)if(T?.toInitialState)e.value=G(D.value);else if(T?.toState){let v;typeof T?.toState=="function"?v=T?.toState():v=T?.toState,D.value=G(v),e.value=G(v);}else D.value=_(e.value)?G(e.value):Array.isArray(e.value)?[...e.value]:e.value;T?.clearExternalErrors&&f(),F||Object.entries(C.value).forEach(([v,ee])=>{ee.$reset();}),!l.$lazy.value&&l.$autoDirty.value&&Object.values(C.value).forEach(v=>v.$parse());}function ce(T=true,F=false){l.$dirty.value||(l.$dirty.value=true),F&&T?(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&y():T&&y();}async function u(){try{if(R)return P?(ce(!1),P()):{valid:!1,data:e.value};let T=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:T};return R?{valid:!g?.value?.length,data:T}:te(C.value)?{valid:!0,data:T}:{valid:(await Promise.allSettled(Object.entries(C.value).map(([ee,se])=>se.$parse()))).every(ee=>ee.status==="fulfilled"?ee.value===!0:!1),data:T}}catch{return {valid:false,data:e.value}}}function p(T=true){return l.$dirty.value?e.value:T?{_null:true}:null}function f(){i?.value?.length&&(i.value=[]);}!l.$lazy.value&&!l.$dirty.value&&l.$autoDirty.value&&y();let{$shortcuts:I,$validating:w,$autoDirty:J,$rewardEarly:m,$clearExternalErrorsOnChange:j,$haveAnyAsyncRule:q,$debounce:Z,$lazy:Q,triggerPunishment:fe,...ue}=l;return reactive({...ue,$externalErrors:i,$value:e,$rules:C,...I,$reset:ge,$touch:ce,$validate:u,$unwatch:W,$watch:K,$extractDirtyFields:p,$clearExternalErrors:f})}function it({$id:e,path:t,index:n,options:r,storage:a,stateValue:o,customMessages:s,rules:i,externalErrors:g,schemaErrors:R,initialState:h,shortcuts:V,fieldName:D,schemaMode:A}){let P=i.$key?i.$key:he(),O=`${t}.${String(P)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?O=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:P,enumerable:false,configurable:false,writable:false}}));let l=toRef(g?.value??[],n),$=computed(()=>R?.value?.[n]),E=xe({state:o,rulesDef:toRef(()=>i),customMessages:s,path:O,storage:a,options:r,externalErrors:l,schemaErrors:$,initialState:h,shortcuts:V,fieldName:D,schemaMode:A});if(E){let x=o.value?.$id;E.$id=x??String(P),a.addArrayStatus(e,E.$id,E);}return E}function Gt({state:e,rulesDef:t,customMessages:n,path:r,storage:a,options:o,externalErrors:s,schemaErrors:i,schemaMode:g,initialState:R,shortcuts:h,fieldName:V}){let D=effectScope(),A,P=effectScope(),O,l=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let $=ref(),E=ref(e.value),x,d=ref({}),b=a.getCollectionsEntry(r);O=P.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(p=>typeof p!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(p=>me(p)||typeof p=="function"):false)})),c(),N();function c(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?($.value=he(),Object.defineProperties(e.value,{$id:{value:$.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&($.value=e.value.$id)),E.value=d.value.$value,Array.isArray(e.value)&&!O.isPrimitiveArray.value?b.value=e.value.filter(u=>typeof u=="object").map((u,p)=>{let{scope:f,unwrapped:I}=rt(t.value.$each,toRef(()=>u),p);f&&l.push(f);let w=toRef(R.value??[],p),J=toRef(s?.value??{},"$each"),m=computed(()=>i?.value?.$each),j=it({$id:$.value,path:r,customMessages:n,rules:I??{},stateValue:toRef(()=>u),index:p,options:o,storage:a,externalErrors:J,schemaErrors:m,initialState:w,shortcuts:h,fieldName:V,schemaMode:g});return j||null}).filter(u=>!!u):b.value=[],d.value=Ee({state:e,rulesDef:t,customMessages:n,path:r,storage:a,options:o,externalErrors:toRef(s?.value??{},"$self"),schemaErrors:computed(()=>i?.value?.$self),$isArray:true,initialState:R,shortcuts:h,fieldName:V,schemaMode:g});}function y(){if(Array.isArray(e.value)&&!O.isPrimitiveArray.value){let u=G(b.value);b.value=e.value.filter(p=>typeof p=="object").map((p,f)=>{let I=toRef(()=>p);if(p.$id&&b.value.find(w=>w.$id===p.$id)){let w=a.getArrayStatus($.value,p.$id);return w?(w.$value=I,w):null}else {let{scope:w,unwrapped:J}=rt(t.value.$each,I,f);w&&l.push(w);let m=toRef(s?.value??{},"$each"),j=computed(()=>i?.value?.$each??[]),q=it({$id:$.value,path:r,customMessages:n,rules:J??{},stateValue:I,index:f,options:o,storage:a,externalErrors:m,schemaErrors:j,initialState:toRef(R.value??[],f),shortcuts:h,fieldName:V,schemaMode:g});return q||null}}).filter(p=>!!p),u.filter(p=>!e.value?.find(f=>p.$id===f.$id)).forEach((p,f)=>{a.deleteArrayStatus($.value,f.toString());});}else b.value=[];}function S(){x=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?c():y();},{deep:ke?1:true,flush:"pre"});}function N(){S(),D=effectScope(),A=D.run(()=>{let u=computed({get:()=>e.value,set(v){x(),e.value=v,S();}}),p=computed(()=>d.value.$dirty&&(!b.value.length||b.value.every(v=>v.$dirty))),f=computed(()=>d.value.$anyDirty||b.value.some(v=>v.$anyDirty)),I=computed(()=>d.value.$invalid||b.value.some(v=>v.$invalid)),w=computed(()=>(te(d.value.$rules)?true:d.value.$correct)&&(!b.value.length||b.value.every(v=>v.$correct||v.$anyDirty&&!v.$invalid))),J=computed(()=>d.value.$error||b.value.some(v=>v.$error)),m=computed(()=>!(I.value||j.value)),j=computed(()=>d.value.$pending||b.value.some(v=>v.$pending)),q=computed(()=>!!b.value.length&&b.value.every(v=>v.$edited)),Z=computed(()=>d.value.$anyEdited||b.value.some(v=>v.$anyEdited)),Q=computed(()=>({$self:d.value.$errors,$each:b.value.map(v=>v.$errors)})),fe=computed(()=>({$self:d.value.$silentErrors,$each:b.value.map(v=>v.$silentErrors)})),ue=computed(()=>V);function T(){h?.collections&&Object.entries(h?.collections).forEach(([v,ee])=>{let se=effectScope();F[v]=se.run(()=>{let oe=ref();return watchEffect(()=>{oe.value=ee(reactive({$dirty:p,$error:J,$silentValue:u,$pending:j,$invalid:I,$correct:w,$errors:Q,$ready:m,$silentErrors:fe,$anyDirty:f,$name:ue,$each:b,$self:d,$value:e,$edited:q,$anyEdited:Z}));}),oe}),l.push(se);});}let F={};return T(),{$dirty:p,$anyDirty:f,$invalid:I,$correct:w,$error:J,$pending:j,$errors:Q,$silentErrors:fe,$ready:m,$name:ue,$shortcuts:F,$silentValue:u,$edited:q,$anyEdited:Z}}),O.isPrimitiveArray.value&&t.value.$each&&console.warn(`${r} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function W(){x&&x(),d.value&&d.value.$unwatch(),b.value&&b.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),D.stop(),D=effectScope(),P.stop(),P=effectScope(true),l.forEach(u=>u.stop()),l=[];}function K(u=true,p=false){d.value.$touch(u,p),b.value.forEach(f=>{f.$touch(u,p);});}function H(u,p){if(W(),!p)if(u?.toInitialState)e.value=G(R.value);else if(u?.toState){let f;typeof u?.toState=="function"?f=u?.toState():f=u?.toState,R.value=G(f),e.value=G(f);}else R.value=G(e.value);u?.clearExternalErrors&&C(),d.value.$reset(u,p),b.value.forEach(f=>{f.$reset(u,true);}),p||c();}async function le(){let u=e.value;try{return {valid:(await Promise.allSettled([d.value.$validate(),...b.value.map(I=>I.$validate())])).every(I=>I.status==="fulfilled"?I.value.valid===!0:!1),data:u}}catch{return {valid:false,data:u}}}function C(){d.value.$clearExternalErrors(),b.value.forEach(u=>{u.$clearExternalErrors();});}function z(u=true){let p=b.value.map(f=>{if(jt(f))return f.$extractDirtyFields(u)});return u&&p.every(f=>te(f))&&(p=[]),p}let{$shortcuts:ge,...ce}=A;return reactive({$self:d,...ce,...ge,$each:b,$value:e,$validate:le,$unwatch:W,$watch:N,$touch:K,$reset:H,$extractDirtyFields:z,$clearExternalErrors:C})}function Le({rulesDef:e,state:t,path:n="",rootRules:r,externalErrors:a,schemaErrors:o,rootSchemaErrors:s,validationGroups:i,initialState:g,fieldName:R,...h}){let V=effectScope(),D,A=[],P=null,O=null,l=null,$=null;async function x(u=true){let p=Object.entries(e.value),f=Object.fromEntries(p.filter(([m,j])=>!!j).map(([m,j])=>{if(j){let q=toRef(t.value??{},m),Z=toRef(()=>j),Q=toRef(a?.value??{},m),fe=computed(()=>o?.value?.[m]),ue=toRef(g?.value??{},m);return [m,xe({state:q,rulesDef:Z,path:n?`${n}.${m}`:m,externalErrors:Q,schemaErrors:fe,initialState:ue,fieldName:m,...h})]}return []})),I=Object.fromEntries(Object.entries(unref(a)??{}).filter(([m,j])=>!(m in e.value)&&!!j).map(([m])=>{let j=toRef(t.value??{},m),q=toRef(a?.value??{},m),Z=computed(()=>o?.value?.[m]),Q=toRef(g?.value??{},m);return [m,xe({state:j,rulesDef:computed(()=>({})),path:n?`${n}.${m}`:m,externalErrors:q,schemaErrors:Z,initialState:Q,fieldName:m,...h})]})),w=Object.fromEntries(Object.entries(unref(o)??{}).map(([m])=>{let j=toRef(t.value??{},m),q=toRef(a?.value??{},m),Z=computed(()=>o?.value?.[m]),Q=toRef(g?.value??{},m);return [m,xe({state:j,rulesDef:computed(()=>({})),path:n?`${n}.${m}`:m,externalErrors:q,schemaErrors:Z,initialState:Q,fieldName:m,...h})]})),J=Object.fromEntries(Object.entries(t.value??{}).filter(([m])=>!(m in e.value)&&!(m in(I??{}))&&!(m in(w??{}))).map(([m])=>{let j=toRef(t.value??{},m),q=toRef(a?.value??{},m),Z=computed(()=>o?.value?.[m]),Q=toRef(g?.value??{},m);return [m,xe({state:j,rulesDef:computed(()=>({})),path:n?`${n}.${m}`:m,externalErrors:q,schemaErrors:Z,initialState:Q,fieldName:m,...h})]}));d.value={...f,...I,...w,...J},u&&y();}let d=h.storage.getFieldsEntry(n);x();function b(){a&&(l=watch(a,()=>{S(),x();},{deep:true}));}function c(){$=watch(t,()=>{S(),x(),K(true,true);},{flush:"sync"});}function y(){r&&(P?.(),P=watch(r,()=>{S(),x();},{deep:true,flush:"pre"}),b()),s&&(O?.(),O=watch(s,()=>{S(),x();},{deep:true,flush:"post"})),c(),D=V.run(()=>{let u=computed({get:()=>t.value,set(B){S(),t.value=B,x();}}),p=computed(()=>!!Object.entries(d.value).length&&Object.entries(d.value).every(([B,M])=>M?.$dirty)),f=computed(()=>Object.entries(d.value).some(([B,M])=>M?.$anyDirty)),I=computed(()=>!!Object.entries(d.value).length&&Object.entries(d.value).some(([B,M])=>M?.$invalid)),w=computed(()=>{let B=Object.entries(d.value).filter(([M,k])=>nt(k)?!k.$inactive:true);return B.length?B.every(([M,k])=>h.schemaMode?k.$correct:nt(k)?"required"in k.$rules&&k.$rules.required.$active?k?.$correct:!k.$invalid&&!k.$pending:k?.$correct):false}),J=computed(()=>!!Object.entries(d.value).length&&Object.entries(d.value).some(([B,M])=>M?.$error)),m=computed(()=>unref(h.options.rewardEarly)!=null?unref(h.options.rewardEarly):false),j=computed(()=>unref(h.options.autoDirty)!=null?unref(h.options.autoDirty):!m.value),q=computed(()=>j.value?f.value&&!(I.value||Q.value):!(I.value||Q.value)),Z=ref(false),Q=computed(()=>Z.value||Object.entries(d.value).some(([B,M])=>M?.$pending)),fe=computed(()=>Object.fromEntries(Object.entries(d.value).map(([B,M])=>[B,M?.$errors]))),ue=computed(()=>Object.fromEntries(Object.entries(d.value).map(([B,M])=>[B,M?.$silentErrors]))),T=computed(()=>!!Object.entries(d.value).length&&Object.entries(d.value).every(([B,M])=>M?.$edited)),F=computed(()=>Object.entries(d.value).some(([B,M])=>M?.$anyEdited)),v=computed(()=>R);function ee(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([B,M])=>{let k=effectScope();oe[B]=k.run(()=>{let we=ref();return watchEffect(()=>{we.value=M(reactive({$dirty:p,$value:t,$silentValue:u,$error:J,$pending:Q,$invalid:I,$correct:w,$ready:q,$anyDirty:f,$name:v,$silentErrors:ue,$errors:fe,$fields:d,$edited:T,$anyEdited:F}));}),we}),A.push(k);});}let se=computed({get:()=>i?Object.fromEntries(Object.entries(i?.(d.value)??{}).map(([B,M])=>M.length?[B,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(k=>[k,Dt(M,k)])),...Object.fromEntries(["$errors","$silentErrors"].map(k=>[k,Ct(M,k)]))}]:[])):{},set(){}}),oe={};return ee(),{$dirty:p,$anyDirty:f,$invalid:I,$correct:w,$error:J,$pending:Q,$errors:fe,$silentErrors:ue,$ready:q,$name:v,$shortcuts:oe,$groups:se,$silentValue:u,$edited:T,$anyEdited:F,$localPending:Z}});}function S(){P?.(),l?.(),$?.(),O?.(),A=[],D={},d.value&&Object.entries(d.value).forEach(([u,p])=>{p.$unwatch();});}function N(){Object.entries(d.value).forEach(([u,p])=>{p.$clearExternalErrors();});}function W(u,p){if(l?.(),S(),!p)if(u?.toInitialState)t.value=G({...g.value??{}});else if(u?.toState){let f;typeof u?.toState=="function"?f=u?.toState():f=u?.toState,g.value=G(f),t.value=G(f);}else g.value=G(t.value);Object.values(d.value).forEach(f=>{f.$reset(u,true);}),u?.clearExternalErrors&&N(),b(),p||x();}function K(u=true,p=false){Object.values(d.value).forEach(f=>{f.$touch(u,p);});}function H(u){return u.filter(([p,f])=>_(f)?!(f&&typeof f=="object"&&"_null"in f)&&!te(f):Array.isArray(f)?f.length:true)}function le(u=true){let p=Object.entries(d.value).map(([f,I])=>[f,I.$extractDirtyFields(u)]);return u&&(p=H(p)),Object.fromEntries(p)}async function C(){try{if(h.schemaMode)return h.onValidate?(K(!1),D.$localPending.value=!0,h.onValidate()):{valid:!1,data:t.value};{let u=t.value;return {valid:(await Promise.allSettled(Object.values(d.value).map(I=>I.$validate()))).every(I=>I.status==="fulfilled"?I.value.valid===!0:!1),data:u}}}catch{return {valid:false,data:t.value}}finally{D.$localPending.value=false;}}let{$shortcuts:z,$localPending:ge,...ce}=D;return reactive({...ce,...z,$fields:d,$value:t,$reset:W,$touch:K,$validate:C,$unwatch:S,$watch:y,$clearExternalErrors:N,$extractDirtyFields:le})}function xe({rulesDef:e,...t}){if(Mt(e,t.state,t.schemaMode))return Gt({rulesDef:e,...t});if(Ge(t.state,e)){if(Ne(t.state))return Le({rulesDef:e,...t});{let r=effectScope().run(()=>{let s=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,i=>{s.value=i;},{deep:true}),watch(s,i=>{t.state.value=i;},{deep:true}),{fakeState:s}}),{state:a,...o}=t;return Le({rulesDef:e,...o,state:r.fakeState})}}else if(Ue(e))return Ee({rulesDef:e,...t})}function Oe({initialState:e,options:t,scopeRules:n,state:r,customRules:a,shortcuts:o,schemaErrors:s,schemaMode:i=false,onValidate:g}){let R=tt(),h=ref();return Ge(r,n)?h.value=Le({rootRules:n,rulesDef:n,state:r,customMessages:a?.(),storage:R,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaErrors:s,rootSchemaErrors:s,schemaMode:i,onValidate:g}):Ue(n)&&(h.value=Ee({rulesDef:n,state:r,customMessages:a?.(),storage:R,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaMode:i,schemaErrors:s,onValidate:g})),getCurrentScope()&&onScopeDispose(()=>{h.value?.$unwatch();}),reactive({regle:h})}function He(e,t,n){let r={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function a(o,s,i){let g=isRef(s)?s:computed(typeof s=="function"?s:()=>s),R={...r,...i},h=isRef(o)?o:ref(o),V=ref(_(h.value)?{...G(h.value)}:G(h.value));return {r$:Oe({scopeRules:g,state:h,options:R,initialState:V,customRules:e,shortcuts:n}).regle}}return a}var ze=He();function Je(){function e(t,n){return n}return e}var ft=Je();function Lt({rules:e,modifiers:t,shortcuts:n}){let r=He(e,t,n);r.__config={rules:e,modifiers:t,shortcuts:n};let a=Je();return {useRegle:r,inferRules:a}}function Ht(e,{rules:t,modifiers:n,shortcuts:r}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?Ye(a.modifiers,n):n,i=a.shortcuts&&r?Ye(a.shortcuts,r):r,g=He(o,s,i);g.__config={rules:o,modifiers:s,shortcuts:i};let R=Je();return {useRegle:g,inferRules:R}}function Ae(e,t){let n=t??false,r=computed({get:()=>n?Object.values(e).map(c=>c.$value):Object.fromEntries(Object.entries(e).map(([c,y])=>[c,y.$value])),set:c=>{n||typeof c=="object"&&Object.entries(c).forEach(([y,S])=>e[y].$value=S);}}),a=computed({get:()=>Object.fromEntries(Object.entries(e).map(([c,y])=>[c,y.$silentValue])),set:c=>{typeof c=="object"&&Object.entries(c).forEach(([y,S])=>e[y].$silentValue=S);}}),o=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([y,S])=>S?.$dirty)}),s=computed(()=>Object.entries(e).some(([c,y])=>y?.$anyDirty)),i=computed(()=>Object.entries(e).some(([c,y])=>y?.$invalid)),g=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([y,S])=>S?.$correct||S.$anyDirty&&!S.$invalid)}),R=computed(()=>Object.entries(e).some(([c,y])=>y?.$error)),h=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([y,S])=>S?.$ready)}),V=computed(()=>Object.entries(e).some(([c,y])=>y?.$pending)),D=computed(()=>n?Object.entries(e).map(([c,y])=>y.$errors):Object.fromEntries(Object.entries(e).map(([c,y])=>[c,y.$errors]))),A=computed(()=>n?Object.entries(e).map(([c,y])=>y.$silentErrors):Object.fromEntries(Object.entries(e).map(([c,y])=>[c,y.$silentErrors]))),P=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([y,S])=>S?.$edited)}),O=computed(()=>Object.entries(e).some(([c,y])=>y?.$anyEdited)),l=computed(()=>n?Object.values(e):e);function $(c){Object.values(e).forEach(y=>{y.$reset(c);});}function E(){Object.values(e).forEach(c=>{c.$touch();});}function x(c=true){return Object.values(e).map(y=>y.$extractDirtyFields(c))}function d(){Object.values(e).forEach(c=>{c.$clearExternalErrors();});}async function b(){try{let c=r.value;return {valid:(await Promise.allSettled(Object.values(e).map(N=>N.$validate()))).every(N=>N.status==="fulfilled"?N.value.valid===!0:!1),data:c}}catch{return {valid:false,data:r.value}}}return reactive({...!n&&{$silentValue:a},$errors:D,$silentErrors:A,$instances:l,$value:r,$dirty:o,$anyDirty:s,$invalid:i,$correct:g,$error:R,$pending:V,$ready:h,$edited:P,$anyEdited:O,$reset:$,$touch:E,$validate:b,$extractDirtyFields:x,$clearExternalErrors:d})}function Jt(e){function t(n){let r=computed(()=>toValue(n));s();let a=ref(i(e.value)),o=reactive({r$:a});function s(){r.value&&!e.value[r.value]&&(e.value[r.value]={});}watch(r,s),watch(e,g=>{a.value=i(g);},{deep:true});function i(g){if(r.value){let R=g[r.value]??{};return Ae(R,true)}else return Ae(g["~~global"]??{},true)}return {r$:o.r$}}return {useCollectScope:t}}function Yt(e,t){let n=t??ze;return {useScopedRegle:(a,o,s)=>{let{namespace:i,...g}=s??{},R=computed(()=>toValue(i)),h=ref(`${Object.keys(e.value).length+1}-${he()}`),V=computed(()=>`instance-${h.value}`),{r$:D}=n(a,o,g);P(),wt(A),watch(R,(O,l)=>{A(l),P();}),getCurrentInstance()&&onMounted(()=>{let O=getCurrentInstance();typeof window<"u"&&O?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(O?.proxy?.$el?.parentElement)&&A();});function A(O){let l=O??R.value;l?e.value[l]&&delete e.value[l][V.value]:e.value["~~global"][V.value]&&delete e.value["~~global"][V.value];}function P(){R.value?(e.value[R.value]||(e.value[R.value]={}),e.value[R.value][V.value]=D):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][V.value]=D);}return {r$:D,dispose:A,register:P}}}}function Ke(e){let n=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):Pt(()=>ref({"~~global":{}})))(),{useScopedRegle:r}=Yt(n,e?.customUseRegle),{useCollectScope:a}=Jt(n);return {useScopedRegle:r,useCollectScope:a}}var {useCollectScope:Rt,useScopedRegle:dt}=Ke();function Zt(e,t,n){let r=computed(()=>toValue(e)[t]);return computed(()=>{let o=n.find(s=>{if(s[t]&&"literal"in s[t]){let i=s[t].literal;if(me(i))return unref(i._params?.[0])===r.value}});if(o)return o;{let s=n.find(i=>_(i[t])&&!Object.keys(i[t]).some(g=>g==="literal"));return s||{}}})}function pt(e,t,n){return _(e[t])&&"$value"in e[t]&&e[t]?.$value===n}function er(e,t,n){let r=isRef(e)?toRef(e.value,"$fields"):toRef(e,"$fields"),a=ref();return watch(r,()=>{pt(r.value,t,n)?a.value=r.value:a.value=void 0;},{immediate:true}),a}
2
2
  export{Xe as InternalRuleType,et as createRule,Ke as createScopedUseRegle,Zt as createVariant,Lt as defineRegleConfig,Ht as extendRegleConfig,lt as flatErrors,ft as inferRules,Ae as mergeRegles,pt as narrowVariant,re as unwrapRuleParameters,Rt as useCollectScope,ze as useRegle,Oe as useRootStorage,dt as useScopedRegle,er as variantToRef};
@@ -1170,7 +1170,7 @@ function createReactiveFieldStatus({
1170
1170
  storage.setDirtyEntry(path, false);
1171
1171
  if (!fromParent) {
1172
1172
  if (options2?.toInitialState) {
1173
- state.value = cloneDeep(initialState);
1173
+ state.value = cloneDeep(initialState.value);
1174
1174
  } else if (options2?.toState) {
1175
1175
  let newInitialState;
1176
1176
  if (typeof options2?.toState === "function") {
@@ -1698,7 +1698,7 @@ function createReactiveCollectionStatus({
1698
1698
  if (options2?.clearExternalErrors) {
1699
1699
  $clearExternalErrors();
1700
1700
  }
1701
- $selfStatus.value.$reset();
1701
+ $selfStatus.value.$reset(options2, fromParent);
1702
1702
  $eachStatus.value.forEach(($each) => {
1703
1703
  $each.$reset(options2, true);
1704
1704
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@regle/core",
3
- "version": "1.1.2",
3
+ "version": "1.1.4",
4
4
  "description": "Headless form validation library for Vue 3",
5
5
  "peerDependencies": {
6
6
  "pinia": ">=2.2.5",