@regle/core 0.6.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/regle-core.cjs +180 -94
- package/dist/regle-core.d.cts +8 -5
- package/dist/regle-core.d.ts +8 -5
- package/dist/regle-core.min.cjs +2 -2
- package/dist/regle-core.min.mjs +2 -2
- package/dist/regle-core.mjs +180 -94
- package/package.json +2 -1
package/dist/regle-core.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MaybeRef, Ref, UnwrapRef, UnwrapNestedRefs, Raw, MaybeRefOrGetter
|
|
1
|
+
import { MaybeRef, Ref, UnwrapRef, UnwrapNestedRefs, Raw, MaybeRefOrGetter } from 'vue';
|
|
2
2
|
|
|
3
3
|
type Prettify<T> = T extends infer R ? {
|
|
4
4
|
[K in keyof R]: R[K];
|
|
@@ -591,7 +591,7 @@ type useRegleFn<TCustomRules extends Partial<AllRulesDeclarations>, TShortcuts e
|
|
|
591
591
|
declare const useRegle: useRegleFn<Partial<AllRulesDeclarations>, RegleShortcutDefinition<any>>;
|
|
592
592
|
|
|
593
593
|
interface inferRulesFn<TCustomRules extends Partial<AllRulesDeclarations>> {
|
|
594
|
-
<TState extends Record<string, any>, TRules extends ReglePartialRuleTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules> & TValid, TValid = isDeepExact<NoInferLegacy<TRules>, ReglePartialRuleTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules>> extends true ? {} :
|
|
594
|
+
<TState extends Record<string, any>, TRules extends ReglePartialRuleTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules> & TValid, TValid = isDeepExact<NoInferLegacy<TRules>, ReglePartialRuleTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules>> extends true ? {} : MismatchInfo<NoInferLegacy<TRules>, ReglePartialRuleTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules>>>(state: MaybeRef<TState> | DeepReactiveState<TState> | undefined, rulesFactory: TRules): NoInferLegacy<TRules>;
|
|
595
595
|
<TState extends PrimitiveTypes, TRules extends RegleRuleDecl>(state: MaybeRef<TState>, rulesFactory: TRules): NoInferLegacy<TRules>;
|
|
596
596
|
}
|
|
597
597
|
/**
|
|
@@ -603,13 +603,16 @@ interface inferRulesFn<TCustomRules extends Partial<AllRulesDeclarations>> {
|
|
|
603
603
|
*/
|
|
604
604
|
declare const inferRules: inferRulesFn<Partial<AllRulesDeclarations>>;
|
|
605
605
|
|
|
606
|
-
declare function useRootStorage({ initialState, options, scopeRules, state, customRules, shortcuts, }: {
|
|
607
|
-
scopeRules:
|
|
606
|
+
declare function useRootStorage({ initialState, options, scopeRules, state, customRules, shortcuts, schemaErrors, schemaMode, onValidate, }: {
|
|
607
|
+
scopeRules: Ref<$InternalReglePartialRuleTree>;
|
|
608
608
|
state: Ref<Record<string, any>>;
|
|
609
609
|
options: ResolvedRegleBehaviourOptions;
|
|
610
610
|
initialState: Ref<Record<string, any>>;
|
|
611
611
|
customRules?: () => CustomRulesDeclarationTree;
|
|
612
612
|
shortcuts: RegleShortcutDefinition | undefined;
|
|
613
|
+
schemaErrors?: Ref<Partial<$InternalRegleErrorTree> | undefined>;
|
|
614
|
+
schemaMode?: boolean;
|
|
615
|
+
onValidate?: () => Promise<$InternalRegleResult>;
|
|
613
616
|
}): {
|
|
614
617
|
regle: $InternalRegleStatus | undefined;
|
|
615
618
|
};
|
|
@@ -1688,4 +1691,4 @@ declare function defineRegleConfig<TShortcuts extends RegleShortcutDefinition<TC
|
|
|
1688
1691
|
inferRules: inferRulesFn<TCustomRules>;
|
|
1689
1692
|
};
|
|
1690
1693
|
|
|
1691
|
-
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 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 RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, type ResolvedRegleBehaviourOptions, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, createRule, defineRegleConfig, inferRules, unwrapRuleParameters, useRegle, useRootStorage };
|
|
1694
|
+
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 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 RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, type ResolvedRegleBehaviourOptions, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, createRule, defineRegleConfig, inferRules, unwrapRuleParameters, useRegle, useRootStorage };
|
package/dist/regle-core.min.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var vue=require('vue');function L(e){return e==null?!0:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var ot=Symbol("regle-rule");function Pt(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 H(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>H(n)))),r=="Map"&&(t=new Map([...e].map(n=>[H(n[0]),H(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Pt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=H(e[n]);}return t}function Q(e){return e instanceof Date||e instanceof File?!1:typeof e=="object"&&e!==null&&!Array.isArray(e)}function _e(e){if(L(e))return !1;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let r=new Date(e);if(r.toString()==="Invalid Date")return !1;t=r;}return !!t}catch{return !1}}function Ve(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)}var Ne=(r=>(r.Inline="__inline",r.Async="__async",r))(Ne||{});function ut(e,t){return e.some(r=>r[t])}function st(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function J(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function it(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function ct(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 Ge(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(p,...m){return e.validator(p,...J(m.length?m:t))},message(p){return typeof e.message=="function"?e.message({...p,$params:J(p?.$params?.length?p.$params:t)}):e.message},active(p){return typeof e.active=="function"?e.active({...p,$params:J(p?.$params?.length?p.$params:t)}):e.active??!0},tooltip(p){return typeof e.tooltip=="function"?e.tooltip({...p,$params:J(p?.$params?.length?p.$params:t)}):e.tooltip??[]},exec(p){let m=e.validator(p,...J(t)),$;return m instanceof Promise?m.then(g=>($=g,typeof $=="object"&&"$valid"in $?$.$valid:typeof $=="boolean"?$:!1)):($=m,typeof $=="object"&&"$valid"in $?$.$valid:typeof $=="boolean"?$:!1)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:l,_params:it(t),_brand:ot}}function ke(e){if(typeof e.validator=="function"){let r=Ge(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(ct(e.validator)>1){let l=function(...f){return Ge(e,...f)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=!1,l._tooltip_pacthed=!1,l._async=n,l}else return r}throw new Error("Validator must be a function")}function We(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),l=vue.shallowRef(new Map),f=vue.shallowRef(new Map);function d(o){let c=t.value.get(o);if(c)return c;{let s=vue.ref({});return t.value.set(o,s),s}}function p(o){let c=r.value.get(o);if(c)return c;{let s=vue.ref([]);return r.value.set(o,s),s}}function m(o,c,s){f.value.set(`${o}-${c}`,s);}function $(o,c){return f.value.get(`${o}-${c}`)}function g(o,c){o&&c!=null&&f.value.delete(`${o}-${c}`);}function V(o,c){n.value.set(o,c);}function F(o){return n.value.get(o)??!1}function a(o,c){e.value.set(o,c);}function T(o,c){let s=e.value.get(o);return s?C(c,s)?{valid:!0}:{valid:!1}:void 0}function C(o,c){let s=Object.keys(c),G=Object.keys(o);return G.length!==s.length||!G.every(k=>s.includes(k))?!1:G.every(k=>{let w=o[k],b=c[k];return !b||!w||typeof w=="function"||typeof b=="function"||typeof w=="number"||typeof w=="boolean"?!1:w._params?w._params?.every((q,y)=>{if(typeof b=="number"||typeof b=="boolean")return !0;{let I=J(b._params),W=J(w._params);return I?.[y]===W?.[y]}}):!0})}function N(o){let c=l.value.get(o);if(c)return c;{let s=vue.ref(!1),G=vue.ref(!0),z=vue.ref({}),k=vue.ref(!1);return l.value.set(o,{$pending:s,$valid:G,$metadata:z,$validating:k}),{$pending:s,$valid:G,$metadata:z,$validating:k}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),f.value.clear();}),{addRuleDeclEntry:a,setDirtyEntry:V,checkRuleDeclEntry:T,getDirtyState:F,trySetRuleStatusRef:N,getFieldsEntry:d,getCollectionsEntry:p,getArrayStatus:$,addArrayStatus:m,deleteArrayStatus:g,arrayStatusStorage:f}}function De(e){return e.value instanceof Date||e.value instanceof File?!1:Q(e.value)}function Ue(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 xe(e,t,r){let n,l=(...f)=>new Promise(d=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...f])).then(d);},t);});return l.cancel=()=>{clearTimeout(n),n=void 0;},l}function Gt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let f=Number(r[l]),d=Number(n[l]);if(f>d)return 1;if(d>f)return -1;if(!isNaN(f)&&isNaN(d))return 1;if(isNaN(f)&&!isNaN(d))return -1}return 0}var Ce=Gt(vue.version,"3.5.0")!==-1;function kt(){return Math.floor(Math.random()*Date.now()).toString()}function Ie(){return typeof window>"u"?kt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function ft(e,t){return De(e)||Q(t.value)&&!L(t.value)&&!Object.entries(t.value).some(([r,n])=>$e(n)||typeof n=="function")}function Rt(e,t){return !!e.value&&Q(e.value)&&"$each"in e.value||Array.isArray(t.value)}function pt(e){return !!e.value&&Q(e.value)}function $e(e){return Q(e)&&"_validator"in e}function ge(e){return typeof e.value!="function"}function dt(e){return Q(e)&&"$fields"in e}function yt(e){return !!e&&"$rules"in e}function Be({field:e,silent:t=!1}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function vt({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 mt({fieldProperties:e,customMessages:t,rule:r,ruleKey:n,state:l,path:f,storage:d,$debounce:p,modifiers:m}){let $=vue.effectScope(),g={},V,F=vue.ref(!1),{$pending:a,$valid:T,$metadata:C,$validating:N}=d.trySetRuleStatusRef(`${f}.${n}`);function o(){$=vue.effectScope(),g=$.run(()=>{let b=vue.computed(()=>({$value:l.value,$error:e.$error.value,$dirty:e.$dirty.value,$pending:e.$pending.value,$valid:e.$valid.value,$invalid:e.$invalid.value,$rule:{$valid:T.value,$invalid:!T.value,$pending:a.value},$params:D.value,...C.value})),q=vue.computed(()=>ge(r)?typeof r.value.active=="function"?r.value.active(b.value):!!r.value.active:!0);function y(u){let i="",S=t?t[n]?.[u]:void 0;if(S&&(typeof S=="function"?i=S(b.value):i=S),ge(r)){let R=`_${u}_patched`;S&&!r.value[R]||(typeof r.value[u]=="function"?i=r.value[u](b.value):i=r.value[u]??"");}return i}let I=vue.computed(()=>{let u=y("message");return L(u)&&(u="This field is not valid"),u}),W=vue.computed(()=>y("tooltip")),re=vue.computed(()=>ge(r)&&r.value.type?r.value.type:n),ae=vue.computed(()=>ge(r)?r.value.validator:r.value),D=vue.computed(()=>typeof r.value=="function"?[]:J(r.value._params??[])),P=vue.computed(()=>`${f}.${re.value}`);return {$active:q,$message:I,$type:re,$validator:ae,$params:D,$path:P,$tooltip:W}}),V=vue.watch(g?.$params,()=>{(m.$autoDirty.value||m.$rewardEarly.value&&e.$error.value)&&z();});}o();function c(){T.value=!0,e.$dirty.value&&(a.value=!0);}async function s(){let b=!1;try{let q=g.$validator.value,y=q(l.value,...g.$params.value),I=l.value;c();let W;if(y instanceof Promise?W=await y:W=y,l.value!==I)return !0;if(typeof W=="boolean")b=W;else {let{$valid:re,...ae}=W;b=re,C.value=ae;}}catch{b=!1;}finally{a.value=!1;}return b}let G=xe(s,p??200);async function z(){try{N.value=!0;let b=!1;if($e(r.value)&&r.value._async)b=await G();else {let q=g.$validator.value,y=q(l.value,...g.$params.value);if(y 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(y!=null)if(typeof y=="boolean")b=y;else {let{$valid:I,...W}=y;b=I,C.value=W;}}return T.value=b,b}catch{return !1}finally{N.value=!1;}}function k(){T.value=!0,C.value={},a.value=!1,N.value=!1,o();}function w(){V(),$.stop(),$=vue.effectScope();}return vue.reactive({...g,$pending:a,$valid:T,$metadata:C,$haveAsync:F,$validating:N,$validate:z,$unwatch:w,$watch:o,$reset:k})}function we({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:f,options:d,externalErrors:p,onUnwatch:m,$isArray:$,initialState:g,shortcuts:V}){let F=vue.effectScope(),a,T=[],C,N,o,c,s=()=>{};function G(){let v=t.value,A=f.checkRuleDeclEntry(n,v);I.value=Object.fromEntries(Object.entries(v).filter(([M])=>M.startsWith("$"))),w(),y.value=Object.fromEntries(Object.entries(t.value).filter(([M])=>!M.startsWith("$")).map(([M,Z])=>{if(Z){let ne=vue.toRef(()=>Z);return [M,mt({fieldProperties:{$dirty:a.$dirty,$error:a.$error,$invalid:a.$invalid,$pending:a.$pending,$valid:a.$valid},modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:ne,ruleKey:M,state:e,path:n,storage:f,$debounce:I.value.$debounce})]}return []}).filter(M=>!!M.length)),a.processShortcuts(),z(),A?.valid!=null&&(a.$dirty.value=f.getDirtyState(n),a.$dirty.value&&s()),f.addRuleDeclEntry(n,v);}function z(){s=a.$debounce.value?xe(q,a.$debounce.value??a.$haveAnyAsyncRule?100:0):q;}function k(){y.value&&Object.entries(y.value).forEach(([v,A])=>{A.$unwatch();}),o(),a.$dirty.value&&f.setDirtyEntry(n,a.$dirty.value),C?.(),N?.(),F.stop(),F=vue.effectScope(),T.forEach(v=>v.stop()),T=[],m?.(),c?.();}function w(){y.value&&Object.entries(y.value).forEach(([v,A])=>{A.$watch();}),a=F.run(()=>{let v=vue.ref(!1),A=vue.ref(!1),M=vue.computed(()=>v.value),Z=vue.computed(()=>I.value.$debounce),ne=vue.computed(()=>I.value.$lazy!=null?I.value.$lazy:vue.unref(d.lazy)!=null?vue.unref(d.lazy):!1),h=vue.computed(()=>I.value.$rewardEarly!=null?I.value.$rewardEarly:vue.unref(d.rewardEarly)!=null?vue.unref(d.rewardEarly):!1),O=vue.computed(()=>I.value.$clearExternalErrorsOnChange!=null?I.value.$clearExternalErrorsOnChange:vue.unref(d.clearExternalErrorsOnChange)!=null?vue.unref(d.clearExternalErrorsOnChange):!0),E=vue.computed(()=>I.value.$autoDirty!=null?I.value.$autoDirty:vue.unref(d.autoDirty)!=null?vue.unref(d.autoDirty):!h.value),_=vue.computed(()=>Object.entries(y.value).some(([K,le])=>le.$validating)),ve=vue.computed({get:()=>e.value,set(K){C(),e.value=K,b();}}),je=vue.computed(()=>fe.value&&!me.value&&v.value),Qe=vue.computed(()=>je.value?Be({field:{$dirty:v.value,$externalErrors:p?.value,$rules:y.value}}):[]),Fe=vue.computed(()=>v.value?_e(g.value)&&_e(e.value)?Ve(g.value).getDate()!==Ve(e.value).getDate():g.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(g.value)?e.value.length!==g.value.length:g.value!==e.value:!1),Xe=vue.computed(()=>Fe.value),Ze=vue.computed(()=>vt({field:{$rules:y.value}})),Ke=vue.computed(()=>Be({field:{$dirty:v.value,$externalErrors:p?.value,$rules:y.value},silent:!0})),et=vue.computed(()=>E.value?M.value&&!(fe.value||me.value):!(fe.value||me.value)),me=vue.computed(()=>A.value||!h.value?Object.entries(y.value).some(([K,le])=>le.$pending):!1),fe=vue.computed(()=>p?.value?.length?!0:L(y.value)?!1:!h.value||h.value&&A.value?Object.entries(y.value).some(([K,le])=>!le.$valid):!1),tt=vue.computed(()=>l),Me=vue.computed(()=>!!L(y.value)),rt=vue.computed(()=>p?.value?.length||Me.value?!1:v.value&&!L(e.value)&&!_.value?Object.values(y.value).every(K=>K.$valid&&K.$active):!1),It=vue.computed(()=>Object.entries(y.value).some(([K,le])=>le.$haveAsync));function wt(){V?.fields&&Object.entries(V.fields).forEach(([K,le])=>{let at=vue.effectScope();nt[K]=at.run(()=>{let lt=vue.ref();return vue.watchEffect(()=>{lt.value=le(vue.reactive({$dirty:v,$externalErrors:p?.value??[],$value:e,$silentValue:ve,$rules:y,$error:je,$pending:me,$invalid:fe,$valid:rt,$errors:Qe,$ready:et,$silentErrors:Ke,$anyDirty:M,$tooltips:Ze,$name:tt,$inactive:Me,$edited:Fe,$anyEdited:Xe}));}),lt}),T.push(at);});}let nt={};return vue.watch(fe,K=>{K||(A.value=!1);}),{$error:je,$pending:me,$invalid:fe,$valid:rt,$debounce:Z,$lazy:ne,$errors:Qe,$ready:et,$silentErrors:Ke,$rewardEarly:h,$autoDirty:E,$clearExternalErrorsOnChange:O,$anyDirty:M,$edited:Fe,$anyEdited:Xe,$name:tt,$haveAnyAsyncRule:It,$shortcuts:nt,$validating:_,$tooltips:Ze,$dirty:v,triggerPunishment:A,processShortcuts:wt,$silentValue:ve,$inactive:Me}}),b(),o=vue.watch(a.$dirty,()=>{f.setDirtyEntry(n,a.$dirty.value);}),N=vue.watch(a.$valid,v=>{a.$rewardEarly.value&&v&&(a.triggerPunishment.value=!1);}),c=vue.watch(a.$haveAnyAsyncRule,z);}function b(){C=vue.watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=!0)),t.value instanceof Function&&G(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&s(),a.$rewardEarly.value!==!0&&a.$clearExternalErrorsOnChange.value&&u();},{deep:$?!0:Ce?1:!0,flush:"post"});}function q(){Object.values(y.value).forEach(v=>{v.$validate();});}let y=vue.ref({}),I=vue.ref({});G();function W(){u(),a.$dirty.value=!1,a.triggerPunishment.value=!1,f.setDirtyEntry(n,!1),g.value=Q(e.value)?H(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(y.value).forEach(([v,A])=>{A.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(y.value).forEach(v=>v.$validate());}function re(v=!0,A=!1){a.$dirty.value||(a.$dirty.value=!0),A&&v?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&s():v&&s();}async function ae(){try{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 {result:!a.$error.value,data:v};return L(y.value)?{result:!0,data:v}:{result:(await Promise.allSettled(Object.entries(y.value).map(([Z,ne])=>ne.$validate()))).every(Z=>Z.status==="fulfilled"?Z.value===!0:!1),data:v}}catch{return {result:!1,data:e.value}}}function D(){k(),e.value=H(g),W();}function P(v=!0){return a.$dirty.value?e.value:v?{_null:!0}:null}function u(){p?.value?.length&&(p.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&s();let{$shortcuts:i,$validating:S,$autoDirty:R,$rewardEarly:x,$clearExternalErrorsOnChange:B,$haveAnyAsyncRule:ee,$debounce:X,$lazy:oe,...ce}=a;return vue.reactive({...ce,$externalErrors:p,$value:e,$rules:y,...i,$reset:W,$touch:re,$validate:ae,$unwatch:k,$watch:w,$resetAll:D,$extractDirtyFields:P,$clearExternalErrors:u})}function ze({$id:e,path:t,index:r,options:n,storage:l,stateValue:f,customMessages:d,rules:p,externalErrors:m,initialState:$,shortcuts:g,fieldName:V}){let F=p.$key?p.$key:Ie(),a=`${t}.${String(F)}`;typeof f.value=="object"&&f.value!=null&&(f.value.$id?a=`${t}.${f.value.$id}`:Object.defineProperties(f.value,{$id:{value:F,enumerable:!1,configurable:!1,writable:!1}}));let T=be({state:f,rulesDef:vue.toRef(()=>p),customMessages:d,path:a,storage:l,options:n,externalErrors:vue.toRef(m?.value??[],r),initialState:$,shortcuts:g,fieldName:V});if(T){let C=f.value?.$id;T.$id=C??String(F),l.addArrayStatus(e,T.$id,T);}return T}function ht({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:f,externalErrors:d,initialState:p,shortcuts:m,fieldName:$}){let g=vue.effectScope(),V,F=vue.effectScope(),a,T=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let C=vue.ref(),N=vue.ref(e.value),o,c=vue.ref({}),s=l.getCollectionsEntry(n);a=F.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(i=>typeof i!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(i=>$e(i)||typeof i=="function"):!1)})),G(),w();function G(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(C.value=Ie(),Object.defineProperties(e.value,{$id:{value:C.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(C.value=e.value.$id)),!a.isPrimitiveArray.value&&(N.value=c.value.$value,Array.isArray(e.value)?s.value=e.value.map((u,i)=>{let{scope:S,unwrapped:R}=Ue(t.value.$each,vue.toRef(()=>u),i);S&&T.push(S);let x=vue.toRef(p.value??[],i),B=ze({$id:C.value,path:n,customMessages:r,rules:R??{},stateValue:vue.toRef(()=>u),index:i,options:f,storage:l,externalErrors:vue.toRef(d?.value??{},"$each"),initialState:x,shortcuts:m,fieldName:$});return B||null}).filter(u=>!!u):s.value=[],c.value=we({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:f,externalErrors:vue.toRef(d?.value??{},"$self"),$isArray:!0,initialState:p,shortcuts:m,fieldName:$}));}function z(){if(Array.isArray(e.value)){let u=H(s.value);s.value=e.value.map((i,S)=>{let R=vue.toRef(()=>i);if(i.$id&&s.value.find(x=>x.$id===i.$id)){let x=l.getArrayStatus(C.value,i.$id);return x?(x.$value=R,x):null}else {let{scope:x,unwrapped:B}=Ue(t.value.$each,R,S);if(x&&T.push(x),B){let ee=ze({$id:C.value,path:n,customMessages:r,rules:B,stateValue:R,index:S,options:f,storage:l,externalErrors:vue.toRef(d?.value??{},"$each"),initialState:vue.toRef(p.value??[],S),shortcuts:m,fieldName:$});return ee||null}}}).filter(i=>!!i),u.filter(i=>!e.value?.find(S=>i.$id===S.$id)).forEach((i,S)=>{l.deleteArrayStatus(C.value,S.toString());});}else s.value=[];}function k(){o=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?G():z();},{deep:Ce?1:!0,flush:"pre"});}function w(){k(),g=vue.effectScope(),V=g.run(()=>{let u=vue.computed({get:()=>e.value,set(h){o(),e.value=h,k();}}),i=vue.computed(()=>c.value.$dirty&&!!s.value.length&&s.value.every(h=>h.$dirty)),S=vue.computed(()=>c.value.$anyDirty||s.value.some(h=>h.$anyDirty)),R=vue.computed(()=>c.value.$invalid||s.value.some(h=>h.$invalid)),x=vue.computed(()=>(L(c.value.$rules)?!0:c.value.$valid)&&s.value.every(h=>h.$valid)),B=vue.computed(()=>c.value.$error||s.value.some(h=>h.$error)),ee=vue.computed(()=>!(R.value||X.value)),X=vue.computed(()=>c.value.$pending||s.value.some(h=>h.$pending)),oe=vue.computed(()=>!!s.value.length&&s.value.every(h=>h.$edited)),ce=vue.computed(()=>c.value.$anyEdited||s.value.some(h=>h.$anyEdited)),v=vue.computed(()=>({$self:c.value.$errors,$each:s.value.map(h=>h.$errors)})),A=vue.computed(()=>({$self:c.value.$silentErrors,$each:s.value.map(h=>h.$silentErrors)})),M=vue.computed(()=>$);function Z(){m?.collections&&Object.entries(m?.collections).forEach(([h,O])=>{let E=vue.effectScope();ne[h]=E.run(()=>{let _=vue.ref();return vue.watchEffect(()=>{_.value=O(vue.reactive({$dirty:i,$error:B,$silentValue:u,$pending:X,$invalid:R,$valid:x,$errors:v,$ready:ee,$silentErrors:A,$anyDirty:S,$name:M,$each:s,$self:c,$value:e,$edited:oe,$anyEdited:ce}));}),_}),T.push(E);});}let ne={};return Z(),{$dirty:i,$anyDirty:S,$invalid:R,$valid:x,$error:B,$pending:X,$errors:v,$silentErrors:A,$ready:ee,$name:M,$shortcuts:ne,$silentValue:u,$edited:oe,$anyEdited:ce}}),a.isPrimitiveArray.value&&(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`),o());}function b(){o&&o(),c.value&&c.value.$unwatch(),s.value&&s.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),g.stop(),g=vue.effectScope(),F.stop(),F=vue.effectScope(!0),T.forEach(u=>u.stop()),T=[];}function q(u=!0,i=!1){c.value.$touch(u,i),s.value.forEach(S=>{S.$touch(u,i);});}function y(){c.value.$reset(),s.value.forEach(u=>{u.$reset();});}async function I(){let u=e.value;try{return {result:(await Promise.allSettled([c.value.$validate(),...s.value.map(R=>R.$validate())])).every(R=>R.status==="fulfilled"?R.value.result===!0:!1),data:u}}catch{return {result:!1,data:u}}}function W(){c.value.$clearExternalErrors(),s.value.forEach(u=>{u.$clearExternalErrors();});}function re(u=!0){let i=s.value.map(S=>{if(dt(S))return S.$extractDirtyFields(u)});return u&&i.every(S=>L(S))&&(i=[]),i}function ae(){b(),e.value=H(p.value),y();}let{$shortcuts:D,...P}=V;return vue.reactive({$self:c,...P,...D,$each:s,$value:e,$validate:I,$unwatch:b,$watch:w,$touch:q,$reset:y,$resetAll:ae,$extractDirtyFields:re,$clearExternalErrors:W})}function Ae({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,validationGroups:f,initialState:d,fieldName:p,...m}){let $=vue.effectScope(),g,V=[],F=null,a=null,T=null;async function N(D=!0){let P=Object.entries(e.value),u=Object.fromEntries(P.filter(([R,x])=>!!x).map(([R,x])=>{if(x){let B=vue.toRef(t.value??{},R),ee=vue.toRef(()=>x),X=vue.toRef(l?.value??{},R),oe=vue.toRef(d?.value??{},R);return [R,be({state:B,rulesDef:ee,path:r?`${r}.${R}`:R,externalErrors:X,initialState:oe,fieldName:R,...m})]}return []})),i=Object.fromEntries(Object.entries(vue.unref(l)??{}).filter(([R,x])=>!(R in e.value)&&!!x).map(([R])=>{let x=vue.toRef(t.value??{},R),B=vue.toRef(d?.value??{},R);return [R,be({state:x,rulesDef:vue.computed(()=>({})),path:r?`${r}.${R}`:R,externalErrors:vue.toRef(l?.value??{},R),initialState:B,fieldName:R,...m})]})),S=Object.fromEntries(Object.entries(t.value??{}).filter(([R])=>!(R in e.value)&&!(R in(i.value??{}))).map(([R])=>{let x=vue.toRef(t.value??{},R),B=vue.toRef(d?.value??{},R);return [R,be({state:x,rulesDef:vue.computed(()=>({})),path:r?`${r}.${R}`:R,externalErrors:vue.toRef(l?.value??{},R),initialState:B,fieldName:R,...m})]}));o.value={...u,...i,...S},D&&k();}let o=m.storage.getFieldsEntry(r);N();function c(){a?.(),Object.values(o.value).forEach(D=>{D.$reset();}),d.value={...H(t.value)},G();}function s(D=!0,P=!1){Object.values(o.value).forEach(u=>{u.$touch(D,P);});}function G(){l?.value&&(a=vue.watch(l,()=>{w(),N();},{deep:!0}));}function z(){T=vue.watch(t,()=>{w(),N(),s(!0,!0);},{flush:"sync"});}function k(){n&&(F?.(),F=vue.watch(n,()=>{w(),N();},{deep:!0,flush:"post"}),G()),z(),$=vue.effectScope(),g=$.run(()=>{let D=vue.computed({get:()=>t.value,set(O){w(),t.value=O,N();}}),P=vue.computed(()=>!!Object.entries(o.value).length&&Object.entries(o.value).every(([O,E])=>E?.$dirty)),u=vue.computed(()=>Object.entries(o.value).some(([O,E])=>E?.$anyDirty)),i=vue.computed(()=>Object.entries(o.value).some(([O,E])=>E?.$invalid)),S=vue.computed(()=>{let O=Object.entries(o.value).filter(([E,_])=>yt(_)?!_.$inactive:!0);return O.length?O.every(([E,_])=>_?.$valid):!1}),R=vue.computed(()=>u.value&&!X.value&&i.value),x=vue.computed(()=>vue.unref(m.options.rewardEarly)!=null?vue.unref(m.options.rewardEarly):!1),B=vue.computed(()=>vue.unref(m.options.autoDirty)!=null?vue.unref(m.options.autoDirty):!x.value),ee=vue.computed(()=>B.value?u.value&&!(i.value||X.value):!(i.value||X.value)),X=vue.computed(()=>Object.entries(o.value).some(([O,E])=>E?.$pending)),oe=vue.computed(()=>Object.fromEntries(Object.entries(o.value).map(([O,E])=>[O,E?.$errors]))),ce=vue.computed(()=>Object.fromEntries(Object.entries(o.value).map(([O,E])=>[O,E?.$silentErrors]))),v=vue.computed(()=>!!Object.entries(o.value).length&&Object.entries(o.value).every(([O,E])=>E?.$edited)),A=vue.computed(()=>Object.entries(o.value).some(([O,E])=>E?.$anyEdited)),M=vue.computed(()=>p);function Z(){m.shortcuts?.nested&&Object.entries(m.shortcuts.nested).forEach(([O,E])=>{let _=vue.effectScope();h[O]=_.run(()=>{let ve=vue.ref();return vue.watchEffect(()=>{ve.value=E(vue.reactive({$dirty:P,$value:t,$silentValue:D,$error:R,$pending:X,$invalid:i,$valid:S,$ready:ee,$anyDirty:u,$name:M,$silentErrors:ce,$errors:oe,$fields:o,$edited:v,$anyEdited:A}));}),ve}),V.push(_);});}let ne=vue.computed({get:()=>f?Object.fromEntries(Object.entries(f?.(o.value)??{}).map(([O,E])=>E.length?[O,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(_=>[_,ut(E,_)])),...Object.fromEntries(["$errors","$silentErrors"].map(_=>[_,st(E,_)]))}]:[])):{},set(){}}),h={};return Z(),{$dirty:P,$anyDirty:u,$invalid:i,$valid:S,$error:R,$pending:X,$errors:oe,$silentErrors:ce,$ready:ee,$name:M,$shortcuts:h,$groups:ne,$silentValue:D,$edited:v,$anyEdited:A}});}function w(){F?.(),a?.(),T?.(),V.forEach(D=>D.stop()),V=[],$.stop(),o.value&&Object.entries(o.value).forEach(([D,P])=>{P.$unwatch();});}function b(){Object.entries(o.value).forEach(([D,P])=>{P.$clearExternalErrors();});}async function q(){w(),t.value=H({...d.value??{}}),c(),N();}function y(D){return D.filter(([P,u])=>Q(u)?!(u&&typeof u=="object"&&"_null"in u)&&!L(u):Array.isArray(u)?u.length:!0)}function I(D=!0){let P=Object.entries(o.value).map(([u,i])=>[u,i.$extractDirtyFields(D)]);return D&&(P=y(P)),Object.fromEntries(P)}async function W(){try{let D=t.value;return {result:(await Promise.allSettled(Object.values(o.value).map(i=>i.$validate()))).every(i=>i.status==="fulfilled"?i.value.result===!0:!1),data:D}}catch{return {result:!1,data:t.value}}}let{$shortcuts:re,...ae}=g;return vue.reactive({...ae,...re,$fields:o,$value:t,$resetAll:q,$reset:c,$touch:s,$validate:W,$unwatch:w,$watch:k,$clearExternalErrors:b,$extractDirtyFields:I})}function be({rulesDef:e,externalErrors:t,...r}){if(Rt(e,r.state))return ht({rulesDef:e,externalErrors:t,...r});if(ft(r.state,e)){if(De(r.state))return Ae({rulesDef:e,externalErrors:t,...r});{let l=vue.effectScope().run(()=>{let p=vue.toRef(r.state.value?r.state:vue.ref({}));return vue.watch(()=>r.state.value,m=>{p.value=m;},{deep:!0}),vue.watch(p,m=>{r.state.value=m;},{deep:!0}),{fakeState:p}}),{state:f,...d}=r;return Ae({rulesDef:e,externalErrors:t,...d,state:l.fakeState})}}else if(pt(e))return we({rulesDef:e,externalErrors:t,...r})}function ye({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:f}){let d=We(),p=vue.ref();return p.value=Ae({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:d,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:f,fieldName:"root",path:""}),vue.getCurrentScope()&&vue.onScopeDispose(()=>{p.value?.$unwatch();}),vue.reactive({regle:p})}function qe(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(f,d,p){let m=vue.isRef(d)?d:vue.computed(typeof d=="function"?d:()=>d),$={...n,...p},g=vue.isRef(f)?f:vue.ref(f),V=vue.ref({...H(g.value)});return {r$:ye({scopeRules:m,state:g,options:$,initialState:V,customRules:e,shortcuts:r}).regle}}return l}var xt=qe();function Je(){function e(t,r){return r}return e}var Ye=Je();function Ct({rules:e,modifiers:t,shortcuts:r}){let n=qe(e,t,r),l=Je();return {useRegle:n,inferRules:l}}
|
|
2
|
-
exports.InternalRuleType=
|
|
1
|
+
'use strict';var vue=require('vue');function J(e){return e==null?true:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var ct=Symbol("regle-rule");function Mt(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 Y(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>Y(n)))),r=="Map"&&(t=new Map([...e].map(n=>[Y(n[0]),Y(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Mt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=Y(e[n]);}return t}function re(e){return e instanceof Date||e instanceof File?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function We(e){if(J(e))return false;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let r=new Date(e);if(r.toString()==="Invalid Date")return !1;t=r;}return !!t}catch{return false}}function Ue(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)}var Be=(r=>(r.Inline="__inline",r.Async="__async",r))(Be||{});function ft(e,t){return e.some(r=>r[t])}function Rt(e,t){return e.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[])}function ee(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function dt(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function pt(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(f=>f.trim()).filter(f=>f.length>0).length:0}function Le(e,...t){let{validator:r,type:n}=e,a=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(R,...E){return e.validator(R,...ee(E.length?E:t))},message(R){return typeof e.message=="function"?e.message({...R,$params:ee(R?.$params?.length?R.$params:t)}):e.message},active(R){return typeof e.active=="function"?e.active({...R,$params:ee(R?.$params?.length?R.$params:t)}):e.active??true},tooltip(R){return typeof e.tooltip=="function"?e.tooltip({...R,$params:ee(R?.$params?.length?R.$params:t)}):e.tooltip??[]},exec(R){let E=e.validator(R,...ee(t)),h;return E instanceof Promise?E.then(v=>(h=v,typeof h=="object"&&"$valid"in h?h.$valid:typeof h=="boolean"?h:false)):(h=E,typeof h=="object"&&"$valid"in h?h.$valid:typeof h=="boolean"?h: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:dt(t),_brand:ct}}function ke(e){if(typeof e.validator=="function"){let r=Le(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(pt(e.validator)>1){let a=function(...s){return Le(e,...s)};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 He(){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),s=vue.shallowRef(new Map);function f(d){let $=t.value.get(d);if($)return $;{let S=vue.ref({});return t.value.set(d,S),S}}function R(d){let $=r.value.get(d);if($)return $;{let S=vue.ref([]);return r.value.set(d,S),S}}function E(d,$,S){s.value.set(`${d}-${$}`,S);}function h(d,$){return s.value.get(`${d}-${$}`)}function v(d,$){d&&$!=null&&s.value.delete(`${d}-${$}`);}function N(d,$){n.value.set(d,$);}function I(d){return n.value.get(d)??false}function G(d,$){e.value.set(d,$);}function w(d,$){let S=e.value.get(d);return S?l($,S)?{valid:true}:{valid:false}:undefined}function l(d,$){let S=Object.keys($),u=Object.keys(d);return u.length!==S.length||!u.every(W=>S.includes(W))?false:u.every(W=>{let L=d[W],D=$[W];return !D||!L||typeof L=="function"||typeof D=="function"||typeof L=="number"||typeof L=="boolean"?false:L._params?L._params?.every((q,x)=>{if(typeof D=="number"||typeof D=="boolean")return true;{let Q=ee(D._params),g=ee(L._params);return Q?.[x]===g?.[x]}}):true})}function M(d){let $=a.value.get(d);if($)return $;{let S=vue.ref(false),u=vue.ref(true),p=vue.ref({}),W=vue.ref(false);return a.value.set(d,{$pending:S,$valid:u,$metadata:p,$validating:W}),{$pending:S,$valid:u,$metadata:p,$validating:W}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),s.value.clear();}),{addRuleDeclEntry:G,setDirtyEntry:N,checkRuleDeclEntry:w,getDirtyState:I,trySetRuleStatusRef:M,getFieldsEntry:f,getCollectionsEntry:R,getArrayStatus:h,addArrayStatus:E,deleteArrayStatus:v,arrayStatusStorage:s}}function Oe(e){return e.value instanceof Date||e.value instanceof File?false:re(e.value)}function ze(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 Ae(e,t,r){let n,a=(...s)=>new Promise(f=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...s])).then(f);},t);});return a.cancel=()=>{clearTimeout(n),n=undefined;},a}function Bt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let s=Number(r[a]),f=Number(n[a]);if(s>f)return 1;if(f>s)return -1;if(!isNaN(s)&&isNaN(f))return 1;if(isNaN(s)&&!isNaN(f))return -1}return 0}var Me=Bt(vue.version,"3.5.0")!==-1;function Lt(){return Math.floor(Math.random()*Date.now()).toString()}function Fe(){return typeof window>"u"?Lt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function vt(e,t){return Oe(e)||re(t.value)&&!J(t.value)&&!Object.entries(t.value).some(([r,n])=>xe(n)||typeof n=="function")}function mt(e,t){return !!e.value&&re(e.value)&&"$each"in e.value||Array.isArray(t.value)}function yt(e){return !!e.value&&re(e.value)}function xe(e){return re(e)&&"_validator"in e}function Ce(e){return typeof e.value!="function"}function $t(e){return re(e)&&"$fields"in e}function gt(e){return !!e&&"$rules"in e}function qe({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!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 St({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 ht({fieldProperties:e,customMessages:t,rule:r,ruleKey:n,state:a,path:s,storage:f,$debounce:R,modifiers:E}){let h=vue.effectScope(),v={},N,I=vue.ref(false),{$pending:G,$valid:w,$metadata:l,$validating:M}=f.trySetRuleStatusRef(`${s}.${n}`);function d(){h=vue.effectScope(),v=h.run(()=>{let D=vue.computed(()=>({$value:a.value,$error:e.$error.value,$dirty:e.$dirty.value,$pending:e.$pending.value,$valid:e.$valid.value,$invalid:e.$invalid.value,$rule:{$valid:w.value,$invalid:!w.value,$pending:G.value},$params:ie.value,...l.value})),q=vue.computed(()=>Ce(r)?typeof r.value.active=="function"?r.value.active(D.value):!!r.value.active:true);function x(X){let le="",o=t?t[n]?.[X]:undefined;if(o&&(typeof o=="function"?le=o(D.value):le=o),Ce(r)){let c=`_${X}_patched`;o&&!r.value[c]||(typeof r.value[X]=="function"?le=r.value[X](D.value):le=r.value[X]??"");}return le}let Q=vue.computed(()=>{let X=x("message");return J(X)&&(X="This field is not valid"),X}),g=vue.computed(()=>x("tooltip")),j=vue.computed(()=>Ce(r)&&r.value.type?r.value.type:n),oe=vue.computed(()=>Ce(r)?r.value.validator:r.value),ie=vue.computed(()=>typeof r.value=="function"?[]:ee(r.value._params??[])),pe=vue.computed(()=>`${s}.${j.value}`);return {$active:q,$message:Q,$type:j,$validator:oe,$params:ie,$path:pe,$tooltip:g}}),N=vue.watch(v?.$params,()=>{(E.$autoDirty.value||E.$rewardEarly.value&&e.$error.value)&&p();});}d();function $(){w.value=true,e.$dirty.value&&(G.value=true);}async function S(){let D=false;try{let q=v.$validator.value,x=q(a.value,...v.$params.value),Q=a.value;$();let g;if(x instanceof Promise?g=await x:g=x,a.value!==Q)return !0;if(typeof g=="boolean")D=g;else {let{$valid:j,...oe}=g;D=j,l.value=oe;}}catch{D=false;}finally{G.value=false;}return D}let u=Ae(S,R??200);async function p(){try{M.value=!0;let D=!1;if(xe(r.value)&&r.value._async)D=await u();else {let q=v.$validator.value,x=q(a.value,...v.$params.value);if(x 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(x!=null)if(typeof x=="boolean")D=x;else {let{$valid:Q,...g}=x;D=Q,l.value=g;}}return w.value=D,D}catch{return false}finally{M.value=false;}}function W(){w.value=true,l.value={},G.value=false,M.value=false,d();}function L(){N(),h.stop(),h=vue.effectScope();}return vue.reactive({...v,$pending:G,$valid:w,$metadata:l,$haveAsync:I,$validating:M,$validate:p,$unwatch:L,$watch:d,$reset:W})}function _e({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:s,options:f,externalErrors:R,schemaErrors:E,schemaMode:h,onUnwatch:v,$isArray:N,initialState:I,shortcuts:G}){let w=vue.effectScope(),l,M=[],d,$,S,u,p=()=>{};function W(){let y=t.value,O=s.checkRuleDeclEntry(n,y);j.value=Object.fromEntries(Object.entries(y).filter(([B])=>B.startsWith("$"))),q(),g.value=Object.fromEntries(Object.entries(t.value).filter(([B])=>!B.startsWith("$")).map(([B,K])=>{if(K){let b=vue.toRef(()=>K);return [B,ht({fieldProperties:{$dirty:l.$dirty,$error:l.$error,$invalid:l.$invalid,$pending:l.$pending,$valid:l.$valid},modifiers:{$autoDirty:l.$autoDirty,$rewardEarly:l.$rewardEarly},customMessages:r,rule:b,ruleKey:B,state:e,path:n,storage:s,$debounce:j.value.$debounce})]}return []}).filter(B=>!!B.length)),l.processShortcuts(),L(),O?.valid!=null&&(l.$dirty.value=s.getDirtyState(n),l.$dirty.value&&p()),s.addRuleDeclEntry(n,y);}function L(){p=l.$debounce.value?Ae(Q,l.$debounce.value??l.$haveAnyAsyncRule?100:0):Q;}function D(){g.value&&Object.entries(g.value).forEach(([y,O])=>{O.$unwatch();}),S(),l.$dirty.value&&s.setDirtyEntry(n,l.$dirty.value),d?.(),$?.(),w.stop(),w=vue.effectScope(),M.forEach(y=>y.stop()),M=[],v?.(),u?.();}function q(){g.value&&Object.entries(g.value).forEach(([y,O])=>{O.$watch();}),l=w.run(()=>{let y=vue.ref(false),O=vue.ref(false),B=vue.computed(()=>y.value),K=vue.computed(()=>j.value.$debounce),b=vue.computed(()=>j.value.$lazy!=null?j.value.$lazy:vue.unref(f.lazy)!=null?vue.unref(f.lazy):false),ue=vue.computed(()=>j.value.$rewardEarly!=null?j.value.$rewardEarly:vue.unref(f.rewardEarly)!=null?vue.unref(f.rewardEarly):false),ve=vue.computed(()=>j.value.$clearExternalErrorsOnChange!=null?j.value.$clearExternalErrorsOnChange:vue.unref(f.clearExternalErrorsOnChange)!=null?vue.unref(f.clearExternalErrorsOnChange):true),ce=vue.computed(()=>j.value.$autoDirty!=null?j.value.$autoDirty:vue.unref(f.autoDirty)!=null?vue.unref(f.autoDirty):!ue.value),F=vue.computed(()=>Object.entries(g.value).some(([ae,se])=>se.$validating)),C=vue.computed({get:()=>e.value,set(ae){d(),e.value=ae,x();}}),H=vue.computed(()=>me.value&&!De.value&&y.value),Te=vue.computed(()=>qe({field:{$error:H.value,$externalErrors:R?.value,$schemaErrors:E?.value,$rules:g.value}})),tt=vue.computed(()=>qe({field:{$error:true,$externalErrors:R?.value,$schemaErrors:E?.value,$rules:g.value},silent:true})),Ge=vue.computed(()=>y.value?We(I.value)&&We(e.value)?Ue(I.value).getDate()!==Ue(e.value).getDate():I.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(I.value)?e.value.length!==I.value.length:I.value!==e.value:false),rt=vue.computed(()=>Ge.value),nt=vue.computed(()=>St({field:{$rules:g.value}})),at=vue.computed(()=>ce.value?B.value&&!(me.value||De.value):!(me.value||De.value)),De=vue.computed(()=>O.value||!ue.value?Object.entries(g.value).some(([ae,se])=>se.$pending):false),me=vue.computed(()=>R?.value?.length||E?.value?.length?true:Pe.value?false:!ue.value||ue.value&&O.value?Object.entries(g.value).some(([ae,se])=>!se.$valid):false),lt=vue.computed(()=>a),Pe=vue.computed(()=>!!(J(g.value)&&!h)),ot=vue.computed(()=>R?.value?.length||Pe.value?false:y.value&&!J(e.value)&&!F.value?h?!E?.value?.length:Object.values(g.value).every(ae=>ae.$valid&&ae.$active):false),Ot=vue.computed(()=>Object.entries(g.value).some(([ae,se])=>se.$haveAsync));function At(){G?.fields&&Object.entries(G.fields).forEach(([ae,se])=>{let st=vue.effectScope();ut[ae]=st.run(()=>{let it=vue.ref();return vue.watchEffect(()=>{it.value=se(vue.reactive({$dirty:y,$externalErrors:R?.value??[],$value:e,$silentValue:C,$rules:g,$error:H,$pending:De,$invalid:me,$valid:ot,$errors:Te,$ready:at,$silentErrors:tt,$anyDirty:B,$tooltips:nt,$name:lt,$inactive:Pe,$edited:Ge,$anyEdited:rt}));}),it}),M.push(st);});}let ut={};return vue.watch(me,ae=>{ae||(O.value=false);}),{$error:H,$pending:De,$invalid:me,$valid:ot,$debounce:K,$lazy:b,$errors:Te,$ready:at,$silentErrors:tt,$rewardEarly:ue,$autoDirty:ce,$clearExternalErrorsOnChange:ve,$anyDirty:B,$edited:Ge,$anyEdited:rt,$name:lt,$haveAnyAsyncRule:Ot,$shortcuts:ut,$validating:F,$tooltips:nt,$dirty:y,triggerPunishment:O,processShortcuts:At,$silentValue:C,$inactive:Pe}}),x(),S=vue.watch(l.$dirty,()=>{s.setDirtyEntry(n,l.$dirty.value);}),$=vue.watch(l.$valid,y=>{l.$rewardEarly.value&&y&&(l.triggerPunishment.value=false);}),u=vue.watch(l.$haveAnyAsyncRule,L);}function x(){d=vue.watch(e,()=>{l.$autoDirty.value&&(l.$dirty.value||(l.$dirty.value=true)),t.value instanceof Function&&W(),(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&p(),l.$rewardEarly.value!==true&&l.$clearExternalErrorsOnChange.value&&o();},{deep:N?true:Me?1:true,flush:"post"});}function Q(){Object.values(g.value).forEach(y=>{y.$validate();});}let g=vue.ref({}),j=vue.ref({});W();function oe(){o(),l.$dirty.value=false,l.triggerPunishment.value=false,s.setDirtyEntry(n,false),I.value=re(e.value)?Y(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(g.value).forEach(([y,O])=>{O.$reset();}),!l.$lazy.value&&l.$autoDirty.value&&Object.values(g.value).forEach(y=>y.$validate());}function ie(y=true,O=false){l.$dirty.value||(l.$dirty.value=true),O&&y?(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&p():y&&p();}async function pe(){try{let y=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 {result:!l.$error.value,data:y};return h?{result:!E?.value?.length,data:y}:J(g.value)?{result:!0,data:y}:{result:(await Promise.allSettled(Object.entries(g.value).map(([K,b])=>b.$validate()))).every(K=>K.status==="fulfilled"?K.value===!0:!1),data:y}}catch{return {result:false,data:e.value}}}function X(){D(),e.value=Y(I),oe();}function le(y=true){return l.$dirty.value?e.value:y?{_null:true}:null}function o(){R?.value?.length&&(R.value=[]);}!l.$lazy.value&&!l.$dirty.value&&l.$autoDirty.value&&p();let{$shortcuts:c,$validating:m,$autoDirty:T,$rewardEarly:V,$clearExternalErrorsOnChange:ne,$haveAnyAsyncRule:i,$debounce:P,$lazy:k,triggerPunishment:Z,...U}=l;return vue.reactive({...U,$externalErrors:R,$value:e,$rules:g,...c,$reset:oe,$touch:ie,$validate:pe,$unwatch:D,$watch:q,$resetAll:X,$extractDirtyFields:le,$clearExternalErrors:o})}function Qe({$id:e,path:t,index:r,options:n,storage:a,stateValue:s,customMessages:f,rules:R,externalErrors:E,schemaErrors:h,initialState:v,shortcuts:N,fieldName:I,schemaMode:G}){let w=R.$key?R.$key:Fe(),l=`${t}.${String(w)}`;typeof s.value=="object"&&s.value!=null&&(s.value.$id?l=`${t}.${s.value.$id}`:Object.defineProperties(s.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let M=vue.toRef(E?.value??[],r),d=vue.computed(()=>h?.value?.[r]),$=ge({state:s,rulesDef:vue.toRef(()=>R),customMessages:f,path:l,storage:a,options:n,externalErrors:M,schemaErrors:d,initialState:v,shortcuts:N,fieldName:I,schemaMode:G});if($){let S=s.value?.$id;$.$id=S??String(w),a.addArrayStatus(e,$.$id,$);}return $}function Dt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:s,externalErrors:f,schemaErrors:R,schemaMode:E,initialState:h,shortcuts:v,fieldName:N}){let I=vue.effectScope(),G,w=vue.effectScope(),l,M=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let d=vue.ref(),$=vue.ref(e.value),S,u=vue.ref({}),p=a.getCollectionsEntry(n);l=w.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(c=>typeof c!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(c=>xe(c)||typeof c=="function"):false)})),W(),q();function W(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(d.value=Fe(),Object.defineProperties(e.value,{$id:{value:d.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(d.value=e.value.$id)),!l.isPrimitiveArray.value&&($.value=u.value.$value,Array.isArray(e.value)?p.value=e.value.map((o,c)=>{let{scope:m,unwrapped:T}=ze(t.value.$each,vue.toRef(()=>o),c);m&&M.push(m);let V=vue.toRef(h.value??[],c),ne=vue.toRef(f?.value??{},"$each"),i=vue.computed(()=>R?.value?.$each),P=Qe({$id:d.value,path:n,customMessages:r,rules:T??{},stateValue:vue.toRef(()=>o),index:c,options:s,storage:a,externalErrors:ne,schemaErrors:i,initialState:V,shortcuts:v,fieldName:N,schemaMode:E});return P||null}).filter(o=>!!o):p.value=[],u.value=_e({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:s,externalErrors:vue.toRef(f?.value??{},"$self"),schemaErrors:vue.computed(()=>R?.value?.$self),$isArray:true,initialState:h,shortcuts:v,fieldName:N,schemaMode:E}));}function L(){if(Array.isArray(e.value)){let o=Y(p.value);p.value=e.value.map((c,m)=>{let T=vue.toRef(()=>c);if(c.$id&&p.value.find(V=>V.$id===c.$id)){let V=a.getArrayStatus(d.value,c.$id);return V?(V.$value=T,V):null}else {let{scope:V,unwrapped:ne}=ze(t.value.$each,T,m);V&&M.push(V);let i=vue.toRef(f?.value??{},"$each"),P=vue.computed(()=>R?.value?.$each??[]),k=Qe({$id:d.value,path:n,customMessages:r,rules:ne??{},stateValue:T,index:m,options:s,storage:a,externalErrors:i,schemaErrors:P,initialState:vue.toRef(h.value??[],m),shortcuts:v,fieldName:N,schemaMode:E});return k||null}}).filter(c=>!!c),o.filter(c=>!e.value?.find(m=>c.$id===m.$id)).forEach((c,m)=>{a.deleteArrayStatus(d.value,m.toString());});}else p.value=[];}function D(){S=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?W():L();},{deep:Me?1:true,flush:"pre"});}function q(){D(),I=vue.effectScope(),G=I.run(()=>{let o=vue.computed({get:()=>e.value,set(b){S(),e.value=b,D();}}),c=vue.computed(()=>u.value.$dirty&&!!p.value.length&&p.value.every(b=>b.$dirty)),m=vue.computed(()=>u.value.$anyDirty||p.value.some(b=>b.$anyDirty)),T=vue.computed(()=>u.value.$invalid||p.value.some(b=>b.$invalid)),V=vue.computed(()=>(J(u.value.$rules)?true:u.value.$valid)&&p.value.every(b=>b.$valid)),ne=vue.computed(()=>u.value.$error||p.value.some(b=>b.$error)),i=vue.computed(()=>!(T.value||P.value)),P=vue.computed(()=>u.value.$pending||p.value.some(b=>b.$pending)),k=vue.computed(()=>!!p.value.length&&p.value.every(b=>b.$edited)),Z=vue.computed(()=>u.value.$anyEdited||p.value.some(b=>b.$anyEdited)),U=vue.computed(()=>({$self:u.value.$errors,$each:p.value.map(b=>b.$errors)})),y=vue.computed(()=>({$self:u.value.$silentErrors,$each:p.value.map(b=>b.$silentErrors)})),O=vue.computed(()=>N);function B(){v?.collections&&Object.entries(v?.collections).forEach(([b,ue])=>{let ve=vue.effectScope();K[b]=ve.run(()=>{let ce=vue.ref();return vue.watchEffect(()=>{ce.value=ue(vue.reactive({$dirty:c,$error:ne,$silentValue:o,$pending:P,$invalid:T,$valid:V,$errors:U,$ready:i,$silentErrors:y,$anyDirty:m,$name:O,$each:p,$self:u,$value:e,$edited:k,$anyEdited:Z}));}),ce}),M.push(ve);});}let K={};return B(),{$dirty:c,$anyDirty:m,$invalid:T,$valid:V,$error:ne,$pending:P,$errors:U,$silentErrors:y,$ready:i,$name:O,$shortcuts:K,$silentValue:o,$edited:k,$anyEdited:Z}}),l.isPrimitiveArray.value&&(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`),S());}function x(){S&&S(),u.value&&u.value.$unwatch(),p.value&&p.value.forEach(o=>{"$dirty"in o&&o.$unwatch();}),I.stop(),I=vue.effectScope(),w.stop(),w=vue.effectScope(true),M.forEach(o=>o.stop()),M=[];}function Q(o=true,c=false){u.value.$touch(o,c),p.value.forEach(m=>{m.$touch(o,c);});}function g(){u.value.$reset(),p.value.forEach(o=>{o.$reset();});}async function j(){let o=e.value;try{return {result:(await Promise.allSettled([u.value.$validate(),...p.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:o}}catch{return {result:false,data:o}}}function oe(){u.value.$clearExternalErrors(),p.value.forEach(o=>{o.$clearExternalErrors();});}function ie(o=true){let c=p.value.map(m=>{if($t(m))return m.$extractDirtyFields(o)});return o&&c.every(m=>J(m))&&(c=[]),c}function pe(){x(),e.value=Y(h.value),g();}let{$shortcuts:X,...le}=G;return vue.reactive({$self:u,...le,...X,$each:p,$value:e,$validate:j,$unwatch:x,$watch:q,$touch:Q,$reset:g,$resetAll:pe,$extractDirtyFields:ie,$clearExternalErrors:oe})}function Ne({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:a,schemaErrors:s,rootSchemaErrors:f,validationGroups:R,initialState:E,fieldName:h,...v}){let N=vue.effectScope(),I,G=[],w=null,l=null,M=null,d=null;async function S(o=true){let c=Object.entries(e.value),m=Object.fromEntries(c.filter(([i,P])=>!!P).map(([i,P])=>{if(P){let k=vue.toRef(t.value??{},i),Z=vue.toRef(()=>P),U=vue.toRef(a?.value??{},i),y=vue.computed(()=>s?.value?.[i]),O=vue.toRef(E?.value??{},i);return [i,ge({state:k,rulesDef:Z,path:r?`${r}.${i}`:i,externalErrors:U,schemaErrors:y,initialState:O,fieldName:i,...v})]}return []})),T=Object.fromEntries(Object.entries(vue.unref(a)??{}).filter(([i,P])=>!(i in e.value)&&!!P).map(([i])=>{let P=vue.toRef(t.value??{},i),k=vue.toRef(a?.value??{},i),Z=vue.computed(()=>s?.value?.[i]),U=vue.toRef(E?.value??{},i);return [i,ge({state:P,rulesDef:vue.computed(()=>({})),path:r?`${r}.${i}`:i,externalErrors:k,schemaErrors:Z,initialState:U,fieldName:i,...v})]})),V=Object.fromEntries(Object.entries(vue.unref(s)??{}).map(([i])=>{let P=vue.toRef(t.value??{},i),k=vue.toRef(a?.value??{},i),Z=vue.computed(()=>s?.value?.[i]),U=vue.toRef(E?.value??{},i);return [i,ge({state:P,rulesDef:vue.computed(()=>({})),path:r?`${r}.${i}`:i,externalErrors:k,schemaErrors:Z,initialState:U,fieldName:i,...v})]})),ne=Object.fromEntries(Object.entries(t.value??{}).filter(([i])=>!(i in e.value)&&!(i in(T??{}))&&!(i in(V??{}))).map(([i])=>{let P=vue.toRef(t.value??{},i),k=vue.toRef(a?.value??{},i),Z=vue.computed(()=>s?.value?.[i]),U=vue.toRef(E?.value??{},i);return [i,ge({state:P,rulesDef:vue.computed(()=>({})),path:r?`${r}.${i}`:i,externalErrors:k,schemaErrors:Z,initialState:U,fieldName:i,...v})]}));u.value={...m,...T,...V,...ne},o&&q();}let u=v.storage.getFieldsEntry(r);S();function p(){M?.(),Object.values(u.value).forEach(o=>{o.$reset();}),E.value={...Y(t.value)},L();}function W(o=true,c=false){Object.values(u.value).forEach(m=>{m.$touch(o,c);});}function L(){a&&(M=vue.watch(a,()=>{x(),S();},{deep:true}));}function D(){d=vue.watch(t,()=>{x(),S(),W(true,true);},{flush:"sync"});}function q(){n&&(w?.(),w=vue.watch(n,()=>{x(),S();},{deep:true,flush:"post"}),L()),f&&(l?.(),l=vue.watch(f,()=>{x(),S();},{deep:true,flush:"post"})),D(),N=vue.effectScope(),I=N.run(()=>{let o=vue.computed({get:()=>t.value,set(F){x(),t.value=F,S();}}),c=vue.computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([F,C])=>C?.$dirty)),m=vue.computed(()=>Object.entries(u.value).some(([F,C])=>C?.$anyDirty)),T=vue.computed(()=>Object.entries(u.value).some(([F,C])=>C?.$invalid)),V=vue.computed(()=>{let F=Object.entries(u.value).filter(([C,H])=>gt(H)?!H.$inactive:true);return F.length?F.every(([C,H])=>H?.$valid):false}),ne=vue.computed(()=>m.value&&!U.value&&T.value),i=vue.computed(()=>vue.unref(v.options.rewardEarly)!=null?vue.unref(v.options.rewardEarly):false),P=vue.computed(()=>vue.unref(v.options.autoDirty)!=null?vue.unref(v.options.autoDirty):!i.value),k=vue.computed(()=>P.value?m.value&&!(T.value||U.value):!(T.value||U.value)),Z=vue.ref(false),U=vue.computed(()=>Z.value||Object.entries(u.value).some(([F,C])=>C?.$pending)),y=vue.computed(()=>Object.fromEntries(Object.entries(u.value).map(([F,C])=>[F,C?.$errors]))),O=vue.computed(()=>Object.fromEntries(Object.entries(u.value).map(([F,C])=>[F,C?.$silentErrors]))),B=vue.computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([F,C])=>C?.$edited)),K=vue.computed(()=>Object.entries(u.value).some(([F,C])=>C?.$anyEdited)),b=vue.computed(()=>h);function ue(){v.shortcuts?.nested&&Object.entries(v.shortcuts.nested).forEach(([F,C])=>{let H=vue.effectScope();ce[F]=H.run(()=>{let Te=vue.ref();return vue.watchEffect(()=>{Te.value=C(vue.reactive({$dirty:c,$value:t,$silentValue:o,$error:ne,$pending:U,$invalid:T,$valid:V,$ready:k,$anyDirty:m,$name:b,$silentErrors:O,$errors:y,$fields:u,$edited:B,$anyEdited:K}));}),Te}),G.push(H);});}let ve=vue.computed({get:()=>R?Object.fromEntries(Object.entries(R?.(u.value)??{}).map(([F,C])=>C.length?[F,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(H=>[H,ft(C,H)])),...Object.fromEntries(["$errors","$silentErrors"].map(H=>[H,Rt(C,H)]))}]:[])):{},set(){}}),ce={};return ue(),{$dirty:c,$anyDirty:m,$invalid:T,$valid:V,$error:ne,$pending:U,$errors:y,$silentErrors:O,$ready:k,$name:b,$shortcuts:ce,$groups:ve,$silentValue:o,$edited:B,$anyEdited:K,$localPending:Z}});}function x(){w?.(),M?.(),d?.(),G.forEach(o=>o.stop()),G=[],N.stop(),u.value&&Object.entries(u.value).forEach(([o,c])=>{c.$unwatch();});}function Q(){Object.entries(u.value).forEach(([o,c])=>{c.$clearExternalErrors();});}async function g(){x(),t.value=Y({...E.value??{}}),p(),S();}function j(o){return o.filter(([c,m])=>re(m)?!(m&&typeof m=="object"&&"_null"in m)&&!J(m):Array.isArray(m)?m.length:true)}function oe(o=true){let c=Object.entries(u.value).map(([m,T])=>[m,T.$extractDirtyFields(o)]);return o&&(c=j(c)),Object.fromEntries(c)}async function ie(){try{if(v.schemaMode)return v.onValidate?(W(!1),I.$localPending.value=!0,v.onValidate()):{result:!1,data:t.value};{let o=t.value;return {result:(await Promise.allSettled(Object.values(u.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:o}}}catch{return {result:false,data:t.value}}finally{I.$localPending.value=false;}}let{$shortcuts:pe,$localPending:X,...le}=I;return vue.reactive({...le,...pe,$fields:u,$value:t,$resetAll:g,$reset:p,$touch:W,$validate:ie,$unwatch:x,$watch:q,$clearExternalErrors:Q,$extractDirtyFields:oe})}function ge({rulesDef:e,...t}){if(mt(e,t.state))return Dt({rulesDef:e,...t});if(vt(t.state,e)){if(Oe(t.state))return Ne({rulesDef:e,...t});{let n=vue.effectScope().run(()=>{let f=vue.toRef(t.state.value?t.state:vue.ref({}));return vue.watch(()=>t.state.value,R=>{f.value=R;},{deep:true}),vue.watch(f,R=>{t.state.value=R;},{deep:true}),{fakeState:f}}),{state:a,...s}=t;return Ne({rulesDef:e,...s,state:n.fakeState})}}else if(yt(e))return _e({rulesDef:e,...t})}function be({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:s,schemaErrors:f,schemaMode:R=false,onValidate:E}){let h=He(),v=vue.ref();return v.value=Ne({rootRules:r,rulesDef:r,state:n,customMessages:a?.(),storage:h,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:s,fieldName:"root",path:"",schemaErrors:f,rootSchemaErrors:f,schemaMode:R,onValidate:E}),vue.getCurrentScope()&&vue.onScopeDispose(()=>{v.value?.$unwatch();}),vue.reactive({regle:v})}function Ze(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function a(s,f,R){let E=vue.isRef(f)?f:vue.computed(typeof f=="function"?f:()=>f),h={...n,...R},v=vue.isRef(s)?s:vue.ref(s),N=vue.ref({...Y(v.value)});return {r$:be({scopeRules:E,state:v,options:h,initialState:N,customRules:e,shortcuts:r}).regle}}return a}var wt=Ze();function Ke(){function e(t,r){return r}return e}var et=Ke();function Pt({rules:e,modifiers:t,shortcuts:r}){let n=Ze(e,t,r),a=Ke();return {useRegle:n,inferRules:a}}
|
|
2
|
+
exports.InternalRuleType=Be;exports.createRule=ke;exports.defineRegleConfig=Pt;exports.inferRules=et;exports.unwrapRuleParameters=ee;exports.useRegle=wt;exports.useRootStorage=be;
|
package/dist/regle-core.min.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {toValue,version,ref,getCurrentScope,onScopeDispose,reactive,shallowRef,effectScope,computed,isRef,toRef,unref,watch,watchEffect}from'vue';function L(e){return e==null?!0:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var ot=Symbol("regle-rule");function Pt(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 H(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>H(n)))),r=="Map"&&(t=new Map([...e].map(n=>[H(n[0]),H(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Pt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=H(e[n]);}return t}function Q(e){return e instanceof Date||e instanceof File?!1:typeof e=="object"&&e!==null&&!Array.isArray(e)}function _e(e){if(L(e))return !1;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let r=new Date(e);if(r.toString()==="Invalid Date")return !1;t=r;}return !!t}catch{return !1}}function Ve(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)}var Ne=(r=>(r.Inline="__inline",r.Async="__async",r))(Ne||{});function ut(e,t){return e.some(r=>r[t])}function st(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function J(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 ct(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 Ge(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(p,...m){return e.validator(p,...J(m.length?m:t))},message(p){return typeof e.message=="function"?e.message({...p,$params:J(p?.$params?.length?p.$params:t)}):e.message},active(p){return typeof e.active=="function"?e.active({...p,$params:J(p?.$params?.length?p.$params:t)}):e.active??!0},tooltip(p){return typeof e.tooltip=="function"?e.tooltip({...p,$params:J(p?.$params?.length?p.$params:t)}):e.tooltip??[]},exec(p){let m=e.validator(p,...J(t)),$;return m instanceof Promise?m.then(g=>($=g,typeof $=="object"&&"$valid"in $?$.$valid:typeof $=="boolean"?$:!1)):($=m,typeof $=="object"&&"$valid"in $?$.$valid:typeof $=="boolean"?$:!1)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:l,_params:it(t),_brand:ot}}function ke(e){if(typeof e.validator=="function"){let r=Ge(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(ct(e.validator)>1){let l=function(...f){return Ge(e,...f)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=!1,l._tooltip_pacthed=!1,l._async=n,l}else return r}throw new Error("Validator must be a function")}function We(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),l=shallowRef(new Map),f=shallowRef(new Map);function d(o){let c=t.value.get(o);if(c)return c;{let s=ref({});return t.value.set(o,s),s}}function p(o){let c=r.value.get(o);if(c)return c;{let s=ref([]);return r.value.set(o,s),s}}function m(o,c,s){f.value.set(`${o}-${c}`,s);}function $(o,c){return f.value.get(`${o}-${c}`)}function g(o,c){o&&c!=null&&f.value.delete(`${o}-${c}`);}function V(o,c){n.value.set(o,c);}function F(o){return n.value.get(o)??!1}function a(o,c){e.value.set(o,c);}function T(o,c){let s=e.value.get(o);return s?C(c,s)?{valid:!0}:{valid:!1}:void 0}function C(o,c){let s=Object.keys(c),G=Object.keys(o);return G.length!==s.length||!G.every(k=>s.includes(k))?!1:G.every(k=>{let w=o[k],b=c[k];return !b||!w||typeof w=="function"||typeof b=="function"||typeof w=="number"||typeof w=="boolean"?!1:w._params?w._params?.every((q,y)=>{if(typeof b=="number"||typeof b=="boolean")return !0;{let I=J(b._params),W=J(w._params);return I?.[y]===W?.[y]}}):!0})}function N(o){let c=l.value.get(o);if(c)return c;{let s=ref(!1),G=ref(!0),z=ref({}),k=ref(!1);return l.value.set(o,{$pending:s,$valid:G,$metadata:z,$validating:k}),{$pending:s,$valid:G,$metadata:z,$validating:k}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),f.value.clear();}),{addRuleDeclEntry:a,setDirtyEntry:V,checkRuleDeclEntry:T,getDirtyState:F,trySetRuleStatusRef:N,getFieldsEntry:d,getCollectionsEntry:p,getArrayStatus:$,addArrayStatus:m,deleteArrayStatus:g,arrayStatusStorage:f}}function De(e){return e.value instanceof Date||e.value instanceof File?!1:Q(e.value)}function Ue(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 xe(e,t,r){let n,l=(...f)=>new Promise(d=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...f])).then(d);},t);});return l.cancel=()=>{clearTimeout(n),n=void 0;},l}function Gt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let f=Number(r[l]),d=Number(n[l]);if(f>d)return 1;if(d>f)return -1;if(!isNaN(f)&&isNaN(d))return 1;if(isNaN(f)&&!isNaN(d))return -1}return 0}var Ce=Gt(version,"3.5.0")!==-1;function kt(){return Math.floor(Math.random()*Date.now()).toString()}function Ie(){return typeof window>"u"?kt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function ft(e,t){return De(e)||Q(t.value)&&!L(t.value)&&!Object.entries(t.value).some(([r,n])=>$e(n)||typeof n=="function")}function Rt(e,t){return !!e.value&&Q(e.value)&&"$each"in e.value||Array.isArray(t.value)}function pt(e){return !!e.value&&Q(e.value)}function $e(e){return Q(e)&&"_validator"in e}function ge(e){return typeof e.value!="function"}function dt(e){return Q(e)&&"$fields"in e}function yt(e){return !!e&&"$rules"in e}function Be({field:e,silent:t=!1}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function vt({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 mt({fieldProperties:e,customMessages:t,rule:r,ruleKey:n,state:l,path:f,storage:d,$debounce:p,modifiers:m}){let $=effectScope(),g={},V,F=ref(!1),{$pending:a,$valid:T,$metadata:C,$validating:N}=d.trySetRuleStatusRef(`${f}.${n}`);function o(){$=effectScope(),g=$.run(()=>{let b=computed(()=>({$value:l.value,$error:e.$error.value,$dirty:e.$dirty.value,$pending:e.$pending.value,$valid:e.$valid.value,$invalid:e.$invalid.value,$rule:{$valid:T.value,$invalid:!T.value,$pending:a.value},$params:D.value,...C.value})),q=computed(()=>ge(r)?typeof r.value.active=="function"?r.value.active(b.value):!!r.value.active:!0);function y(u){let i="",S=t?t[n]?.[u]:void 0;if(S&&(typeof S=="function"?i=S(b.value):i=S),ge(r)){let R=`_${u}_patched`;S&&!r.value[R]||(typeof r.value[u]=="function"?i=r.value[u](b.value):i=r.value[u]??"");}return i}let I=computed(()=>{let u=y("message");return L(u)&&(u="This field is not valid"),u}),W=computed(()=>y("tooltip")),re=computed(()=>ge(r)&&r.value.type?r.value.type:n),ae=computed(()=>ge(r)?r.value.validator:r.value),D=computed(()=>typeof r.value=="function"?[]:J(r.value._params??[])),P=computed(()=>`${f}.${re.value}`);return {$active:q,$message:I,$type:re,$validator:ae,$params:D,$path:P,$tooltip:W}}),V=watch(g?.$params,()=>{(m.$autoDirty.value||m.$rewardEarly.value&&e.$error.value)&&z();});}o();function c(){T.value=!0,e.$dirty.value&&(a.value=!0);}async function s(){let b=!1;try{let q=g.$validator.value,y=q(l.value,...g.$params.value),I=l.value;c();let W;if(y instanceof Promise?W=await y:W=y,l.value!==I)return !0;if(typeof W=="boolean")b=W;else {let{$valid:re,...ae}=W;b=re,C.value=ae;}}catch{b=!1;}finally{a.value=!1;}return b}let G=xe(s,p??200);async function z(){try{N.value=!0;let b=!1;if($e(r.value)&&r.value._async)b=await G();else {let q=g.$validator.value,y=q(l.value,...g.$params.value);if(y 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(y!=null)if(typeof y=="boolean")b=y;else {let{$valid:I,...W}=y;b=I,C.value=W;}}return T.value=b,b}catch{return !1}finally{N.value=!1;}}function k(){T.value=!0,C.value={},a.value=!1,N.value=!1,o();}function w(){V(),$.stop(),$=effectScope();}return reactive({...g,$pending:a,$valid:T,$metadata:C,$haveAsync:F,$validating:N,$validate:z,$unwatch:w,$watch:o,$reset:k})}function we({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:f,options:d,externalErrors:p,onUnwatch:m,$isArray:$,initialState:g,shortcuts:V}){let F=effectScope(),a,T=[],C,N,o,c,s=()=>{};function G(){let v=t.value,A=f.checkRuleDeclEntry(n,v);I.value=Object.fromEntries(Object.entries(v).filter(([M])=>M.startsWith("$"))),w(),y.value=Object.fromEntries(Object.entries(t.value).filter(([M])=>!M.startsWith("$")).map(([M,Z])=>{if(Z){let ne=toRef(()=>Z);return [M,mt({fieldProperties:{$dirty:a.$dirty,$error:a.$error,$invalid:a.$invalid,$pending:a.$pending,$valid:a.$valid},modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:ne,ruleKey:M,state:e,path:n,storage:f,$debounce:I.value.$debounce})]}return []}).filter(M=>!!M.length)),a.processShortcuts(),z(),A?.valid!=null&&(a.$dirty.value=f.getDirtyState(n),a.$dirty.value&&s()),f.addRuleDeclEntry(n,v);}function z(){s=a.$debounce.value?xe(q,a.$debounce.value??a.$haveAnyAsyncRule?100:0):q;}function k(){y.value&&Object.entries(y.value).forEach(([v,A])=>{A.$unwatch();}),o(),a.$dirty.value&&f.setDirtyEntry(n,a.$dirty.value),C?.(),N?.(),F.stop(),F=effectScope(),T.forEach(v=>v.stop()),T=[],m?.(),c?.();}function w(){y.value&&Object.entries(y.value).forEach(([v,A])=>{A.$watch();}),a=F.run(()=>{let v=ref(!1),A=ref(!1),M=computed(()=>v.value),Z=computed(()=>I.value.$debounce),ne=computed(()=>I.value.$lazy!=null?I.value.$lazy:unref(d.lazy)!=null?unref(d.lazy):!1),h=computed(()=>I.value.$rewardEarly!=null?I.value.$rewardEarly:unref(d.rewardEarly)!=null?unref(d.rewardEarly):!1),O=computed(()=>I.value.$clearExternalErrorsOnChange!=null?I.value.$clearExternalErrorsOnChange:unref(d.clearExternalErrorsOnChange)!=null?unref(d.clearExternalErrorsOnChange):!0),E=computed(()=>I.value.$autoDirty!=null?I.value.$autoDirty:unref(d.autoDirty)!=null?unref(d.autoDirty):!h.value),_=computed(()=>Object.entries(y.value).some(([K,le])=>le.$validating)),ve=computed({get:()=>e.value,set(K){C(),e.value=K,b();}}),je=computed(()=>fe.value&&!me.value&&v.value),Qe=computed(()=>je.value?Be({field:{$dirty:v.value,$externalErrors:p?.value,$rules:y.value}}):[]),Fe=computed(()=>v.value?_e(g.value)&&_e(e.value)?Ve(g.value).getDate()!==Ve(e.value).getDate():g.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(g.value)?e.value.length!==g.value.length:g.value!==e.value:!1),Xe=computed(()=>Fe.value),Ze=computed(()=>vt({field:{$rules:y.value}})),Ke=computed(()=>Be({field:{$dirty:v.value,$externalErrors:p?.value,$rules:y.value},silent:!0})),et=computed(()=>E.value?M.value&&!(fe.value||me.value):!(fe.value||me.value)),me=computed(()=>A.value||!h.value?Object.entries(y.value).some(([K,le])=>le.$pending):!1),fe=computed(()=>p?.value?.length?!0:L(y.value)?!1:!h.value||h.value&&A.value?Object.entries(y.value).some(([K,le])=>!le.$valid):!1),tt=computed(()=>l),Me=computed(()=>!!L(y.value)),rt=computed(()=>p?.value?.length||Me.value?!1:v.value&&!L(e.value)&&!_.value?Object.values(y.value).every(K=>K.$valid&&K.$active):!1),It=computed(()=>Object.entries(y.value).some(([K,le])=>le.$haveAsync));function wt(){V?.fields&&Object.entries(V.fields).forEach(([K,le])=>{let at=effectScope();nt[K]=at.run(()=>{let lt=ref();return watchEffect(()=>{lt.value=le(reactive({$dirty:v,$externalErrors:p?.value??[],$value:e,$silentValue:ve,$rules:y,$error:je,$pending:me,$invalid:fe,$valid:rt,$errors:Qe,$ready:et,$silentErrors:Ke,$anyDirty:M,$tooltips:Ze,$name:tt,$inactive:Me,$edited:Fe,$anyEdited:Xe}));}),lt}),T.push(at);});}let nt={};return watch(fe,K=>{K||(A.value=!1);}),{$error:je,$pending:me,$invalid:fe,$valid:rt,$debounce:Z,$lazy:ne,$errors:Qe,$ready:et,$silentErrors:Ke,$rewardEarly:h,$autoDirty:E,$clearExternalErrorsOnChange:O,$anyDirty:M,$edited:Fe,$anyEdited:Xe,$name:tt,$haveAnyAsyncRule:It,$shortcuts:nt,$validating:_,$tooltips:Ze,$dirty:v,triggerPunishment:A,processShortcuts:wt,$silentValue:ve,$inactive:Me}}),b(),o=watch(a.$dirty,()=>{f.setDirtyEntry(n,a.$dirty.value);}),N=watch(a.$valid,v=>{a.$rewardEarly.value&&v&&(a.triggerPunishment.value=!1);}),c=watch(a.$haveAnyAsyncRule,z);}function b(){C=watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=!0)),t.value instanceof Function&&G(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&s(),a.$rewardEarly.value!==!0&&a.$clearExternalErrorsOnChange.value&&u();},{deep:$?!0:Ce?1:!0,flush:"post"});}function q(){Object.values(y.value).forEach(v=>{v.$validate();});}let y=ref({}),I=ref({});G();function W(){u(),a.$dirty.value=!1,a.triggerPunishment.value=!1,f.setDirtyEntry(n,!1),g.value=Q(e.value)?H(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(y.value).forEach(([v,A])=>{A.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(y.value).forEach(v=>v.$validate());}function re(v=!0,A=!1){a.$dirty.value||(a.$dirty.value=!0),A&&v?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&s():v&&s();}async function ae(){try{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 {result:!a.$error.value,data:v};return L(y.value)?{result:!0,data:v}:{result:(await Promise.allSettled(Object.entries(y.value).map(([Z,ne])=>ne.$validate()))).every(Z=>Z.status==="fulfilled"?Z.value===!0:!1),data:v}}catch{return {result:!1,data:e.value}}}function D(){k(),e.value=H(g),W();}function P(v=!0){return a.$dirty.value?e.value:v?{_null:!0}:null}function u(){p?.value?.length&&(p.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&s();let{$shortcuts:i,$validating:S,$autoDirty:R,$rewardEarly:x,$clearExternalErrorsOnChange:B,$haveAnyAsyncRule:ee,$debounce:X,$lazy:oe,...ce}=a;return reactive({...ce,$externalErrors:p,$value:e,$rules:y,...i,$reset:W,$touch:re,$validate:ae,$unwatch:k,$watch:w,$resetAll:D,$extractDirtyFields:P,$clearExternalErrors:u})}function ze({$id:e,path:t,index:r,options:n,storage:l,stateValue:f,customMessages:d,rules:p,externalErrors:m,initialState:$,shortcuts:g,fieldName:V}){let F=p.$key?p.$key:Ie(),a=`${t}.${String(F)}`;typeof f.value=="object"&&f.value!=null&&(f.value.$id?a=`${t}.${f.value.$id}`:Object.defineProperties(f.value,{$id:{value:F,enumerable:!1,configurable:!1,writable:!1}}));let T=be({state:f,rulesDef:toRef(()=>p),customMessages:d,path:a,storage:l,options:n,externalErrors:toRef(m?.value??[],r),initialState:$,shortcuts:g,fieldName:V});if(T){let C=f.value?.$id;T.$id=C??String(F),l.addArrayStatus(e,T.$id,T);}return T}function ht({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:f,externalErrors:d,initialState:p,shortcuts:m,fieldName:$}){let g=effectScope(),V,F=effectScope(),a,T=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let C=ref(),N=ref(e.value),o,c=ref({}),s=l.getCollectionsEntry(n);a=F.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(i=>typeof i!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(i=>$e(i)||typeof i=="function"):!1)})),G(),w();function G(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(C.value=Ie(),Object.defineProperties(e.value,{$id:{value:C.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(C.value=e.value.$id)),!a.isPrimitiveArray.value&&(N.value=c.value.$value,Array.isArray(e.value)?s.value=e.value.map((u,i)=>{let{scope:S,unwrapped:R}=Ue(t.value.$each,toRef(()=>u),i);S&&T.push(S);let x=toRef(p.value??[],i),B=ze({$id:C.value,path:n,customMessages:r,rules:R??{},stateValue:toRef(()=>u),index:i,options:f,storage:l,externalErrors:toRef(d?.value??{},"$each"),initialState:x,shortcuts:m,fieldName:$});return B||null}).filter(u=>!!u):s.value=[],c.value=we({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:f,externalErrors:toRef(d?.value??{},"$self"),$isArray:!0,initialState:p,shortcuts:m,fieldName:$}));}function z(){if(Array.isArray(e.value)){let u=H(s.value);s.value=e.value.map((i,S)=>{let R=toRef(()=>i);if(i.$id&&s.value.find(x=>x.$id===i.$id)){let x=l.getArrayStatus(C.value,i.$id);return x?(x.$value=R,x):null}else {let{scope:x,unwrapped:B}=Ue(t.value.$each,R,S);if(x&&T.push(x),B){let ee=ze({$id:C.value,path:n,customMessages:r,rules:B,stateValue:R,index:S,options:f,storage:l,externalErrors:toRef(d?.value??{},"$each"),initialState:toRef(p.value??[],S),shortcuts:m,fieldName:$});return ee||null}}}).filter(i=>!!i),u.filter(i=>!e.value?.find(S=>i.$id===S.$id)).forEach((i,S)=>{l.deleteArrayStatus(C.value,S.toString());});}else s.value=[];}function k(){o=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?G():z();},{deep:Ce?1:!0,flush:"pre"});}function w(){k(),g=effectScope(),V=g.run(()=>{let u=computed({get:()=>e.value,set(h){o(),e.value=h,k();}}),i=computed(()=>c.value.$dirty&&!!s.value.length&&s.value.every(h=>h.$dirty)),S=computed(()=>c.value.$anyDirty||s.value.some(h=>h.$anyDirty)),R=computed(()=>c.value.$invalid||s.value.some(h=>h.$invalid)),x=computed(()=>(L(c.value.$rules)?!0:c.value.$valid)&&s.value.every(h=>h.$valid)),B=computed(()=>c.value.$error||s.value.some(h=>h.$error)),ee=computed(()=>!(R.value||X.value)),X=computed(()=>c.value.$pending||s.value.some(h=>h.$pending)),oe=computed(()=>!!s.value.length&&s.value.every(h=>h.$edited)),ce=computed(()=>c.value.$anyEdited||s.value.some(h=>h.$anyEdited)),v=computed(()=>({$self:c.value.$errors,$each:s.value.map(h=>h.$errors)})),A=computed(()=>({$self:c.value.$silentErrors,$each:s.value.map(h=>h.$silentErrors)})),M=computed(()=>$);function Z(){m?.collections&&Object.entries(m?.collections).forEach(([h,O])=>{let E=effectScope();ne[h]=E.run(()=>{let _=ref();return watchEffect(()=>{_.value=O(reactive({$dirty:i,$error:B,$silentValue:u,$pending:X,$invalid:R,$valid:x,$errors:v,$ready:ee,$silentErrors:A,$anyDirty:S,$name:M,$each:s,$self:c,$value:e,$edited:oe,$anyEdited:ce}));}),_}),T.push(E);});}let ne={};return Z(),{$dirty:i,$anyDirty:S,$invalid:R,$valid:x,$error:B,$pending:X,$errors:v,$silentErrors:A,$ready:ee,$name:M,$shortcuts:ne,$silentValue:u,$edited:oe,$anyEdited:ce}}),a.isPrimitiveArray.value&&(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`),o());}function b(){o&&o(),c.value&&c.value.$unwatch(),s.value&&s.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),g.stop(),g=effectScope(),F.stop(),F=effectScope(!0),T.forEach(u=>u.stop()),T=[];}function q(u=!0,i=!1){c.value.$touch(u,i),s.value.forEach(S=>{S.$touch(u,i);});}function y(){c.value.$reset(),s.value.forEach(u=>{u.$reset();});}async function I(){let u=e.value;try{return {result:(await Promise.allSettled([c.value.$validate(),...s.value.map(R=>R.$validate())])).every(R=>R.status==="fulfilled"?R.value.result===!0:!1),data:u}}catch{return {result:!1,data:u}}}function W(){c.value.$clearExternalErrors(),s.value.forEach(u=>{u.$clearExternalErrors();});}function re(u=!0){let i=s.value.map(S=>{if(dt(S))return S.$extractDirtyFields(u)});return u&&i.every(S=>L(S))&&(i=[]),i}function ae(){b(),e.value=H(p.value),y();}let{$shortcuts:D,...P}=V;return reactive({$self:c,...P,...D,$each:s,$value:e,$validate:I,$unwatch:b,$watch:w,$touch:q,$reset:y,$resetAll:ae,$extractDirtyFields:re,$clearExternalErrors:W})}function Ae({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,validationGroups:f,initialState:d,fieldName:p,...m}){let $=effectScope(),g,V=[],F=null,a=null,T=null;async function N(D=!0){let P=Object.entries(e.value),u=Object.fromEntries(P.filter(([R,x])=>!!x).map(([R,x])=>{if(x){let B=toRef(t.value??{},R),ee=toRef(()=>x),X=toRef(l?.value??{},R),oe=toRef(d?.value??{},R);return [R,be({state:B,rulesDef:ee,path:r?`${r}.${R}`:R,externalErrors:X,initialState:oe,fieldName:R,...m})]}return []})),i=Object.fromEntries(Object.entries(unref(l)??{}).filter(([R,x])=>!(R in e.value)&&!!x).map(([R])=>{let x=toRef(t.value??{},R),B=toRef(d?.value??{},R);return [R,be({state:x,rulesDef:computed(()=>({})),path:r?`${r}.${R}`:R,externalErrors:toRef(l?.value??{},R),initialState:B,fieldName:R,...m})]})),S=Object.fromEntries(Object.entries(t.value??{}).filter(([R])=>!(R in e.value)&&!(R in(i.value??{}))).map(([R])=>{let x=toRef(t.value??{},R),B=toRef(d?.value??{},R);return [R,be({state:x,rulesDef:computed(()=>({})),path:r?`${r}.${R}`:R,externalErrors:toRef(l?.value??{},R),initialState:B,fieldName:R,...m})]}));o.value={...u,...i,...S},D&&k();}let o=m.storage.getFieldsEntry(r);N();function c(){a?.(),Object.values(o.value).forEach(D=>{D.$reset();}),d.value={...H(t.value)},G();}function s(D=!0,P=!1){Object.values(o.value).forEach(u=>{u.$touch(D,P);});}function G(){l?.value&&(a=watch(l,()=>{w(),N();},{deep:!0}));}function z(){T=watch(t,()=>{w(),N(),s(!0,!0);},{flush:"sync"});}function k(){n&&(F?.(),F=watch(n,()=>{w(),N();},{deep:!0,flush:"post"}),G()),z(),$=effectScope(),g=$.run(()=>{let D=computed({get:()=>t.value,set(O){w(),t.value=O,N();}}),P=computed(()=>!!Object.entries(o.value).length&&Object.entries(o.value).every(([O,E])=>E?.$dirty)),u=computed(()=>Object.entries(o.value).some(([O,E])=>E?.$anyDirty)),i=computed(()=>Object.entries(o.value).some(([O,E])=>E?.$invalid)),S=computed(()=>{let O=Object.entries(o.value).filter(([E,_])=>yt(_)?!_.$inactive:!0);return O.length?O.every(([E,_])=>_?.$valid):!1}),R=computed(()=>u.value&&!X.value&&i.value),x=computed(()=>unref(m.options.rewardEarly)!=null?unref(m.options.rewardEarly):!1),B=computed(()=>unref(m.options.autoDirty)!=null?unref(m.options.autoDirty):!x.value),ee=computed(()=>B.value?u.value&&!(i.value||X.value):!(i.value||X.value)),X=computed(()=>Object.entries(o.value).some(([O,E])=>E?.$pending)),oe=computed(()=>Object.fromEntries(Object.entries(o.value).map(([O,E])=>[O,E?.$errors]))),ce=computed(()=>Object.fromEntries(Object.entries(o.value).map(([O,E])=>[O,E?.$silentErrors]))),v=computed(()=>!!Object.entries(o.value).length&&Object.entries(o.value).every(([O,E])=>E?.$edited)),A=computed(()=>Object.entries(o.value).some(([O,E])=>E?.$anyEdited)),M=computed(()=>p);function Z(){m.shortcuts?.nested&&Object.entries(m.shortcuts.nested).forEach(([O,E])=>{let _=effectScope();h[O]=_.run(()=>{let ve=ref();return watchEffect(()=>{ve.value=E(reactive({$dirty:P,$value:t,$silentValue:D,$error:R,$pending:X,$invalid:i,$valid:S,$ready:ee,$anyDirty:u,$name:M,$silentErrors:ce,$errors:oe,$fields:o,$edited:v,$anyEdited:A}));}),ve}),V.push(_);});}let ne=computed({get:()=>f?Object.fromEntries(Object.entries(f?.(o.value)??{}).map(([O,E])=>E.length?[O,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(_=>[_,ut(E,_)])),...Object.fromEntries(["$errors","$silentErrors"].map(_=>[_,st(E,_)]))}]:[])):{},set(){}}),h={};return Z(),{$dirty:P,$anyDirty:u,$invalid:i,$valid:S,$error:R,$pending:X,$errors:oe,$silentErrors:ce,$ready:ee,$name:M,$shortcuts:h,$groups:ne,$silentValue:D,$edited:v,$anyEdited:A}});}function w(){F?.(),a?.(),T?.(),V.forEach(D=>D.stop()),V=[],$.stop(),o.value&&Object.entries(o.value).forEach(([D,P])=>{P.$unwatch();});}function b(){Object.entries(o.value).forEach(([D,P])=>{P.$clearExternalErrors();});}async function q(){w(),t.value=H({...d.value??{}}),c(),N();}function y(D){return D.filter(([P,u])=>Q(u)?!(u&&typeof u=="object"&&"_null"in u)&&!L(u):Array.isArray(u)?u.length:!0)}function I(D=!0){let P=Object.entries(o.value).map(([u,i])=>[u,i.$extractDirtyFields(D)]);return D&&(P=y(P)),Object.fromEntries(P)}async function W(){try{let D=t.value;return {result:(await Promise.allSettled(Object.values(o.value).map(i=>i.$validate()))).every(i=>i.status==="fulfilled"?i.value.result===!0:!1),data:D}}catch{return {result:!1,data:t.value}}}let{$shortcuts:re,...ae}=g;return reactive({...ae,...re,$fields:o,$value:t,$resetAll:q,$reset:c,$touch:s,$validate:W,$unwatch:w,$watch:k,$clearExternalErrors:b,$extractDirtyFields:I})}function be({rulesDef:e,externalErrors:t,...r}){if(Rt(e,r.state))return ht({rulesDef:e,externalErrors:t,...r});if(ft(r.state,e)){if(De(r.state))return Ae({rulesDef:e,externalErrors:t,...r});{let l=effectScope().run(()=>{let p=toRef(r.state.value?r.state:ref({}));return watch(()=>r.state.value,m=>{p.value=m;},{deep:!0}),watch(p,m=>{r.state.value=m;},{deep:!0}),{fakeState:p}}),{state:f,...d}=r;return Ae({rulesDef:e,externalErrors:t,...d,state:l.fakeState})}}else if(pt(e))return we({rulesDef:e,externalErrors:t,...r})}function ye({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:f}){let d=We(),p=ref();return p.value=Ae({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:d,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:f,fieldName:"root",path:""}),getCurrentScope()&&onScopeDispose(()=>{p.value?.$unwatch();}),reactive({regle:p})}function qe(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(f,d,p){let m=isRef(d)?d:computed(typeof d=="function"?d:()=>d),$={...n,...p},g=isRef(f)?f:ref(f),V=ref({...H(g.value)});return {r$:ye({scopeRules:m,state:g,options:$,initialState:V,customRules:e,shortcuts:r}).regle}}return l}var xt=qe();function Je(){function e(t,r){return r}return e}var Ye=Je();function Ct({rules:e,modifiers:t,shortcuts:r}){let n=qe(e,t,r),l=Je();return {useRegle:n,inferRules:l}}
|
|
2
|
-
export{
|
|
1
|
+
import {toValue,version,ref,getCurrentScope,onScopeDispose,reactive,shallowRef,effectScope,computed,isRef,toRef,unref,watch,watchEffect}from'vue';function J(e){return e==null?true:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var ct=Symbol("regle-rule");function Mt(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 Y(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>Y(n)))),r=="Map"&&(t=new Map([...e].map(n=>[Y(n[0]),Y(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Mt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=Y(e[n]);}return t}function re(e){return e instanceof Date||e instanceof File?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function We(e){if(J(e))return false;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let r=new Date(e);if(r.toString()==="Invalid Date")return !1;t=r;}return !!t}catch{return false}}function Ue(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)}var Be=(r=>(r.Inline="__inline",r.Async="__async",r))(Be||{});function ft(e,t){return e.some(r=>r[t])}function Rt(e,t){return e.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[])}function ee(e){try{return e.map(t=>toValue(t))}catch{return []}}function dt(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function pt(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(f=>f.trim()).filter(f=>f.length>0).length:0}function Le(e,...t){let{validator:r,type:n}=e,a=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(R,...E){return e.validator(R,...ee(E.length?E:t))},message(R){return typeof e.message=="function"?e.message({...R,$params:ee(R?.$params?.length?R.$params:t)}):e.message},active(R){return typeof e.active=="function"?e.active({...R,$params:ee(R?.$params?.length?R.$params:t)}):e.active??true},tooltip(R){return typeof e.tooltip=="function"?e.tooltip({...R,$params:ee(R?.$params?.length?R.$params:t)}):e.tooltip??[]},exec(R){let E=e.validator(R,...ee(t)),h;return E instanceof Promise?E.then(v=>(h=v,typeof h=="object"&&"$valid"in h?h.$valid:typeof h=="boolean"?h:false)):(h=E,typeof h=="object"&&"$valid"in h?h.$valid:typeof h=="boolean"?h: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:dt(t),_brand:ct}}function ke(e){if(typeof e.validator=="function"){let r=Le(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(pt(e.validator)>1){let a=function(...s){return Le(e,...s)};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 He(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),a=shallowRef(new Map),s=shallowRef(new Map);function f(d){let $=t.value.get(d);if($)return $;{let S=ref({});return t.value.set(d,S),S}}function R(d){let $=r.value.get(d);if($)return $;{let S=ref([]);return r.value.set(d,S),S}}function E(d,$,S){s.value.set(`${d}-${$}`,S);}function h(d,$){return s.value.get(`${d}-${$}`)}function v(d,$){d&&$!=null&&s.value.delete(`${d}-${$}`);}function N(d,$){n.value.set(d,$);}function I(d){return n.value.get(d)??false}function G(d,$){e.value.set(d,$);}function w(d,$){let S=e.value.get(d);return S?l($,S)?{valid:true}:{valid:false}:undefined}function l(d,$){let S=Object.keys($),u=Object.keys(d);return u.length!==S.length||!u.every(W=>S.includes(W))?false:u.every(W=>{let L=d[W],D=$[W];return !D||!L||typeof L=="function"||typeof D=="function"||typeof L=="number"||typeof L=="boolean"?false:L._params?L._params?.every((q,x)=>{if(typeof D=="number"||typeof D=="boolean")return true;{let Q=ee(D._params),g=ee(L._params);return Q?.[x]===g?.[x]}}):true})}function M(d){let $=a.value.get(d);if($)return $;{let S=ref(false),u=ref(true),p=ref({}),W=ref(false);return a.value.set(d,{$pending:S,$valid:u,$metadata:p,$validating:W}),{$pending:S,$valid:u,$metadata:p,$validating:W}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),s.value.clear();}),{addRuleDeclEntry:G,setDirtyEntry:N,checkRuleDeclEntry:w,getDirtyState:I,trySetRuleStatusRef:M,getFieldsEntry:f,getCollectionsEntry:R,getArrayStatus:h,addArrayStatus:E,deleteArrayStatus:v,arrayStatusStorage:s}}function Oe(e){return e.value instanceof Date||e.value instanceof File?false:re(e.value)}function ze(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 Ae(e,t,r){let n,a=(...s)=>new Promise(f=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...s])).then(f);},t);});return a.cancel=()=>{clearTimeout(n),n=undefined;},a}function Bt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let s=Number(r[a]),f=Number(n[a]);if(s>f)return 1;if(f>s)return -1;if(!isNaN(s)&&isNaN(f))return 1;if(isNaN(s)&&!isNaN(f))return -1}return 0}var Me=Bt(version,"3.5.0")!==-1;function Lt(){return Math.floor(Math.random()*Date.now()).toString()}function Fe(){return typeof window>"u"?Lt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function vt(e,t){return Oe(e)||re(t.value)&&!J(t.value)&&!Object.entries(t.value).some(([r,n])=>xe(n)||typeof n=="function")}function mt(e,t){return !!e.value&&re(e.value)&&"$each"in e.value||Array.isArray(t.value)}function yt(e){return !!e.value&&re(e.value)}function xe(e){return re(e)&&"_validator"in e}function Ce(e){return typeof e.value!="function"}function $t(e){return re(e)&&"$fields"in e}function gt(e){return !!e&&"$rules"in e}function qe({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!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 St({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 ht({fieldProperties:e,customMessages:t,rule:r,ruleKey:n,state:a,path:s,storage:f,$debounce:R,modifiers:E}){let h=effectScope(),v={},N,I=ref(false),{$pending:G,$valid:w,$metadata:l,$validating:M}=f.trySetRuleStatusRef(`${s}.${n}`);function d(){h=effectScope(),v=h.run(()=>{let D=computed(()=>({$value:a.value,$error:e.$error.value,$dirty:e.$dirty.value,$pending:e.$pending.value,$valid:e.$valid.value,$invalid:e.$invalid.value,$rule:{$valid:w.value,$invalid:!w.value,$pending:G.value},$params:ie.value,...l.value})),q=computed(()=>Ce(r)?typeof r.value.active=="function"?r.value.active(D.value):!!r.value.active:true);function x(X){let le="",o=t?t[n]?.[X]:undefined;if(o&&(typeof o=="function"?le=o(D.value):le=o),Ce(r)){let c=`_${X}_patched`;o&&!r.value[c]||(typeof r.value[X]=="function"?le=r.value[X](D.value):le=r.value[X]??"");}return le}let Q=computed(()=>{let X=x("message");return J(X)&&(X="This field is not valid"),X}),g=computed(()=>x("tooltip")),j=computed(()=>Ce(r)&&r.value.type?r.value.type:n),oe=computed(()=>Ce(r)?r.value.validator:r.value),ie=computed(()=>typeof r.value=="function"?[]:ee(r.value._params??[])),pe=computed(()=>`${s}.${j.value}`);return {$active:q,$message:Q,$type:j,$validator:oe,$params:ie,$path:pe,$tooltip:g}}),N=watch(v?.$params,()=>{(E.$autoDirty.value||E.$rewardEarly.value&&e.$error.value)&&p();});}d();function $(){w.value=true,e.$dirty.value&&(G.value=true);}async function S(){let D=false;try{let q=v.$validator.value,x=q(a.value,...v.$params.value),Q=a.value;$();let g;if(x instanceof Promise?g=await x:g=x,a.value!==Q)return !0;if(typeof g=="boolean")D=g;else {let{$valid:j,...oe}=g;D=j,l.value=oe;}}catch{D=false;}finally{G.value=false;}return D}let u=Ae(S,R??200);async function p(){try{M.value=!0;let D=!1;if(xe(r.value)&&r.value._async)D=await u();else {let q=v.$validator.value,x=q(a.value,...v.$params.value);if(x 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(x!=null)if(typeof x=="boolean")D=x;else {let{$valid:Q,...g}=x;D=Q,l.value=g;}}return w.value=D,D}catch{return false}finally{M.value=false;}}function W(){w.value=true,l.value={},G.value=false,M.value=false,d();}function L(){N(),h.stop(),h=effectScope();}return reactive({...v,$pending:G,$valid:w,$metadata:l,$haveAsync:I,$validating:M,$validate:p,$unwatch:L,$watch:d,$reset:W})}function _e({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:s,options:f,externalErrors:R,schemaErrors:E,schemaMode:h,onUnwatch:v,$isArray:N,initialState:I,shortcuts:G}){let w=effectScope(),l,M=[],d,$,S,u,p=()=>{};function W(){let y=t.value,O=s.checkRuleDeclEntry(n,y);j.value=Object.fromEntries(Object.entries(y).filter(([B])=>B.startsWith("$"))),q(),g.value=Object.fromEntries(Object.entries(t.value).filter(([B])=>!B.startsWith("$")).map(([B,K])=>{if(K){let b=toRef(()=>K);return [B,ht({fieldProperties:{$dirty:l.$dirty,$error:l.$error,$invalid:l.$invalid,$pending:l.$pending,$valid:l.$valid},modifiers:{$autoDirty:l.$autoDirty,$rewardEarly:l.$rewardEarly},customMessages:r,rule:b,ruleKey:B,state:e,path:n,storage:s,$debounce:j.value.$debounce})]}return []}).filter(B=>!!B.length)),l.processShortcuts(),L(),O?.valid!=null&&(l.$dirty.value=s.getDirtyState(n),l.$dirty.value&&p()),s.addRuleDeclEntry(n,y);}function L(){p=l.$debounce.value?Ae(Q,l.$debounce.value??l.$haveAnyAsyncRule?100:0):Q;}function D(){g.value&&Object.entries(g.value).forEach(([y,O])=>{O.$unwatch();}),S(),l.$dirty.value&&s.setDirtyEntry(n,l.$dirty.value),d?.(),$?.(),w.stop(),w=effectScope(),M.forEach(y=>y.stop()),M=[],v?.(),u?.();}function q(){g.value&&Object.entries(g.value).forEach(([y,O])=>{O.$watch();}),l=w.run(()=>{let y=ref(false),O=ref(false),B=computed(()=>y.value),K=computed(()=>j.value.$debounce),b=computed(()=>j.value.$lazy!=null?j.value.$lazy:unref(f.lazy)!=null?unref(f.lazy):false),ue=computed(()=>j.value.$rewardEarly!=null?j.value.$rewardEarly:unref(f.rewardEarly)!=null?unref(f.rewardEarly):false),ve=computed(()=>j.value.$clearExternalErrorsOnChange!=null?j.value.$clearExternalErrorsOnChange:unref(f.clearExternalErrorsOnChange)!=null?unref(f.clearExternalErrorsOnChange):true),ce=computed(()=>j.value.$autoDirty!=null?j.value.$autoDirty:unref(f.autoDirty)!=null?unref(f.autoDirty):!ue.value),F=computed(()=>Object.entries(g.value).some(([ae,se])=>se.$validating)),C=computed({get:()=>e.value,set(ae){d(),e.value=ae,x();}}),H=computed(()=>me.value&&!De.value&&y.value),Te=computed(()=>qe({field:{$error:H.value,$externalErrors:R?.value,$schemaErrors:E?.value,$rules:g.value}})),tt=computed(()=>qe({field:{$error:true,$externalErrors:R?.value,$schemaErrors:E?.value,$rules:g.value},silent:true})),Ge=computed(()=>y.value?We(I.value)&&We(e.value)?Ue(I.value).getDate()!==Ue(e.value).getDate():I.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(I.value)?e.value.length!==I.value.length:I.value!==e.value:false),rt=computed(()=>Ge.value),nt=computed(()=>St({field:{$rules:g.value}})),at=computed(()=>ce.value?B.value&&!(me.value||De.value):!(me.value||De.value)),De=computed(()=>O.value||!ue.value?Object.entries(g.value).some(([ae,se])=>se.$pending):false),me=computed(()=>R?.value?.length||E?.value?.length?true:Pe.value?false:!ue.value||ue.value&&O.value?Object.entries(g.value).some(([ae,se])=>!se.$valid):false),lt=computed(()=>a),Pe=computed(()=>!!(J(g.value)&&!h)),ot=computed(()=>R?.value?.length||Pe.value?false:y.value&&!J(e.value)&&!F.value?h?!E?.value?.length:Object.values(g.value).every(ae=>ae.$valid&&ae.$active):false),Ot=computed(()=>Object.entries(g.value).some(([ae,se])=>se.$haveAsync));function At(){G?.fields&&Object.entries(G.fields).forEach(([ae,se])=>{let st=effectScope();ut[ae]=st.run(()=>{let it=ref();return watchEffect(()=>{it.value=se(reactive({$dirty:y,$externalErrors:R?.value??[],$value:e,$silentValue:C,$rules:g,$error:H,$pending:De,$invalid:me,$valid:ot,$errors:Te,$ready:at,$silentErrors:tt,$anyDirty:B,$tooltips:nt,$name:lt,$inactive:Pe,$edited:Ge,$anyEdited:rt}));}),it}),M.push(st);});}let ut={};return watch(me,ae=>{ae||(O.value=false);}),{$error:H,$pending:De,$invalid:me,$valid:ot,$debounce:K,$lazy:b,$errors:Te,$ready:at,$silentErrors:tt,$rewardEarly:ue,$autoDirty:ce,$clearExternalErrorsOnChange:ve,$anyDirty:B,$edited:Ge,$anyEdited:rt,$name:lt,$haveAnyAsyncRule:Ot,$shortcuts:ut,$validating:F,$tooltips:nt,$dirty:y,triggerPunishment:O,processShortcuts:At,$silentValue:C,$inactive:Pe}}),x(),S=watch(l.$dirty,()=>{s.setDirtyEntry(n,l.$dirty.value);}),$=watch(l.$valid,y=>{l.$rewardEarly.value&&y&&(l.triggerPunishment.value=false);}),u=watch(l.$haveAnyAsyncRule,L);}function x(){d=watch(e,()=>{l.$autoDirty.value&&(l.$dirty.value||(l.$dirty.value=true)),t.value instanceof Function&&W(),(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&p(),l.$rewardEarly.value!==true&&l.$clearExternalErrorsOnChange.value&&o();},{deep:N?true:Me?1:true,flush:"post"});}function Q(){Object.values(g.value).forEach(y=>{y.$validate();});}let g=ref({}),j=ref({});W();function oe(){o(),l.$dirty.value=false,l.triggerPunishment.value=false,s.setDirtyEntry(n,false),I.value=re(e.value)?Y(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(g.value).forEach(([y,O])=>{O.$reset();}),!l.$lazy.value&&l.$autoDirty.value&&Object.values(g.value).forEach(y=>y.$validate());}function ie(y=true,O=false){l.$dirty.value||(l.$dirty.value=true),O&&y?(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&p():y&&p();}async function pe(){try{let y=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 {result:!l.$error.value,data:y};return h?{result:!E?.value?.length,data:y}:J(g.value)?{result:!0,data:y}:{result:(await Promise.allSettled(Object.entries(g.value).map(([K,b])=>b.$validate()))).every(K=>K.status==="fulfilled"?K.value===!0:!1),data:y}}catch{return {result:false,data:e.value}}}function X(){D(),e.value=Y(I),oe();}function le(y=true){return l.$dirty.value?e.value:y?{_null:true}:null}function o(){R?.value?.length&&(R.value=[]);}!l.$lazy.value&&!l.$dirty.value&&l.$autoDirty.value&&p();let{$shortcuts:c,$validating:m,$autoDirty:T,$rewardEarly:V,$clearExternalErrorsOnChange:ne,$haveAnyAsyncRule:i,$debounce:P,$lazy:k,triggerPunishment:Z,...U}=l;return reactive({...U,$externalErrors:R,$value:e,$rules:g,...c,$reset:oe,$touch:ie,$validate:pe,$unwatch:D,$watch:q,$resetAll:X,$extractDirtyFields:le,$clearExternalErrors:o})}function Qe({$id:e,path:t,index:r,options:n,storage:a,stateValue:s,customMessages:f,rules:R,externalErrors:E,schemaErrors:h,initialState:v,shortcuts:N,fieldName:I,schemaMode:G}){let w=R.$key?R.$key:Fe(),l=`${t}.${String(w)}`;typeof s.value=="object"&&s.value!=null&&(s.value.$id?l=`${t}.${s.value.$id}`:Object.defineProperties(s.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let M=toRef(E?.value??[],r),d=computed(()=>h?.value?.[r]),$=ge({state:s,rulesDef:toRef(()=>R),customMessages:f,path:l,storage:a,options:n,externalErrors:M,schemaErrors:d,initialState:v,shortcuts:N,fieldName:I,schemaMode:G});if($){let S=s.value?.$id;$.$id=S??String(w),a.addArrayStatus(e,$.$id,$);}return $}function Dt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:s,externalErrors:f,schemaErrors:R,schemaMode:E,initialState:h,shortcuts:v,fieldName:N}){let I=effectScope(),G,w=effectScope(),l,M=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let d=ref(),$=ref(e.value),S,u=ref({}),p=a.getCollectionsEntry(n);l=w.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(c=>typeof c!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(c=>xe(c)||typeof c=="function"):false)})),W(),q();function W(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(d.value=Fe(),Object.defineProperties(e.value,{$id:{value:d.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(d.value=e.value.$id)),!l.isPrimitiveArray.value&&($.value=u.value.$value,Array.isArray(e.value)?p.value=e.value.map((o,c)=>{let{scope:m,unwrapped:T}=ze(t.value.$each,toRef(()=>o),c);m&&M.push(m);let V=toRef(h.value??[],c),ne=toRef(f?.value??{},"$each"),i=computed(()=>R?.value?.$each),P=Qe({$id:d.value,path:n,customMessages:r,rules:T??{},stateValue:toRef(()=>o),index:c,options:s,storage:a,externalErrors:ne,schemaErrors:i,initialState:V,shortcuts:v,fieldName:N,schemaMode:E});return P||null}).filter(o=>!!o):p.value=[],u.value=_e({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:s,externalErrors:toRef(f?.value??{},"$self"),schemaErrors:computed(()=>R?.value?.$self),$isArray:true,initialState:h,shortcuts:v,fieldName:N,schemaMode:E}));}function L(){if(Array.isArray(e.value)){let o=Y(p.value);p.value=e.value.map((c,m)=>{let T=toRef(()=>c);if(c.$id&&p.value.find(V=>V.$id===c.$id)){let V=a.getArrayStatus(d.value,c.$id);return V?(V.$value=T,V):null}else {let{scope:V,unwrapped:ne}=ze(t.value.$each,T,m);V&&M.push(V);let i=toRef(f?.value??{},"$each"),P=computed(()=>R?.value?.$each??[]),k=Qe({$id:d.value,path:n,customMessages:r,rules:ne??{},stateValue:T,index:m,options:s,storage:a,externalErrors:i,schemaErrors:P,initialState:toRef(h.value??[],m),shortcuts:v,fieldName:N,schemaMode:E});return k||null}}).filter(c=>!!c),o.filter(c=>!e.value?.find(m=>c.$id===m.$id)).forEach((c,m)=>{a.deleteArrayStatus(d.value,m.toString());});}else p.value=[];}function D(){S=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?W():L();},{deep:Me?1:true,flush:"pre"});}function q(){D(),I=effectScope(),G=I.run(()=>{let o=computed({get:()=>e.value,set(b){S(),e.value=b,D();}}),c=computed(()=>u.value.$dirty&&!!p.value.length&&p.value.every(b=>b.$dirty)),m=computed(()=>u.value.$anyDirty||p.value.some(b=>b.$anyDirty)),T=computed(()=>u.value.$invalid||p.value.some(b=>b.$invalid)),V=computed(()=>(J(u.value.$rules)?true:u.value.$valid)&&p.value.every(b=>b.$valid)),ne=computed(()=>u.value.$error||p.value.some(b=>b.$error)),i=computed(()=>!(T.value||P.value)),P=computed(()=>u.value.$pending||p.value.some(b=>b.$pending)),k=computed(()=>!!p.value.length&&p.value.every(b=>b.$edited)),Z=computed(()=>u.value.$anyEdited||p.value.some(b=>b.$anyEdited)),U=computed(()=>({$self:u.value.$errors,$each:p.value.map(b=>b.$errors)})),y=computed(()=>({$self:u.value.$silentErrors,$each:p.value.map(b=>b.$silentErrors)})),O=computed(()=>N);function B(){v?.collections&&Object.entries(v?.collections).forEach(([b,ue])=>{let ve=effectScope();K[b]=ve.run(()=>{let ce=ref();return watchEffect(()=>{ce.value=ue(reactive({$dirty:c,$error:ne,$silentValue:o,$pending:P,$invalid:T,$valid:V,$errors:U,$ready:i,$silentErrors:y,$anyDirty:m,$name:O,$each:p,$self:u,$value:e,$edited:k,$anyEdited:Z}));}),ce}),M.push(ve);});}let K={};return B(),{$dirty:c,$anyDirty:m,$invalid:T,$valid:V,$error:ne,$pending:P,$errors:U,$silentErrors:y,$ready:i,$name:O,$shortcuts:K,$silentValue:o,$edited:k,$anyEdited:Z}}),l.isPrimitiveArray.value&&(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`),S());}function x(){S&&S(),u.value&&u.value.$unwatch(),p.value&&p.value.forEach(o=>{"$dirty"in o&&o.$unwatch();}),I.stop(),I=effectScope(),w.stop(),w=effectScope(true),M.forEach(o=>o.stop()),M=[];}function Q(o=true,c=false){u.value.$touch(o,c),p.value.forEach(m=>{m.$touch(o,c);});}function g(){u.value.$reset(),p.value.forEach(o=>{o.$reset();});}async function j(){let o=e.value;try{return {result:(await Promise.allSettled([u.value.$validate(),...p.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:o}}catch{return {result:false,data:o}}}function oe(){u.value.$clearExternalErrors(),p.value.forEach(o=>{o.$clearExternalErrors();});}function ie(o=true){let c=p.value.map(m=>{if($t(m))return m.$extractDirtyFields(o)});return o&&c.every(m=>J(m))&&(c=[]),c}function pe(){x(),e.value=Y(h.value),g();}let{$shortcuts:X,...le}=G;return reactive({$self:u,...le,...X,$each:p,$value:e,$validate:j,$unwatch:x,$watch:q,$touch:Q,$reset:g,$resetAll:pe,$extractDirtyFields:ie,$clearExternalErrors:oe})}function Ne({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:a,schemaErrors:s,rootSchemaErrors:f,validationGroups:R,initialState:E,fieldName:h,...v}){let N=effectScope(),I,G=[],w=null,l=null,M=null,d=null;async function S(o=true){let c=Object.entries(e.value),m=Object.fromEntries(c.filter(([i,P])=>!!P).map(([i,P])=>{if(P){let k=toRef(t.value??{},i),Z=toRef(()=>P),U=toRef(a?.value??{},i),y=computed(()=>s?.value?.[i]),O=toRef(E?.value??{},i);return [i,ge({state:k,rulesDef:Z,path:r?`${r}.${i}`:i,externalErrors:U,schemaErrors:y,initialState:O,fieldName:i,...v})]}return []})),T=Object.fromEntries(Object.entries(unref(a)??{}).filter(([i,P])=>!(i in e.value)&&!!P).map(([i])=>{let P=toRef(t.value??{},i),k=toRef(a?.value??{},i),Z=computed(()=>s?.value?.[i]),U=toRef(E?.value??{},i);return [i,ge({state:P,rulesDef:computed(()=>({})),path:r?`${r}.${i}`:i,externalErrors:k,schemaErrors:Z,initialState:U,fieldName:i,...v})]})),V=Object.fromEntries(Object.entries(unref(s)??{}).map(([i])=>{let P=toRef(t.value??{},i),k=toRef(a?.value??{},i),Z=computed(()=>s?.value?.[i]),U=toRef(E?.value??{},i);return [i,ge({state:P,rulesDef:computed(()=>({})),path:r?`${r}.${i}`:i,externalErrors:k,schemaErrors:Z,initialState:U,fieldName:i,...v})]})),ne=Object.fromEntries(Object.entries(t.value??{}).filter(([i])=>!(i in e.value)&&!(i in(T??{}))&&!(i in(V??{}))).map(([i])=>{let P=toRef(t.value??{},i),k=toRef(a?.value??{},i),Z=computed(()=>s?.value?.[i]),U=toRef(E?.value??{},i);return [i,ge({state:P,rulesDef:computed(()=>({})),path:r?`${r}.${i}`:i,externalErrors:k,schemaErrors:Z,initialState:U,fieldName:i,...v})]}));u.value={...m,...T,...V,...ne},o&&q();}let u=v.storage.getFieldsEntry(r);S();function p(){M?.(),Object.values(u.value).forEach(o=>{o.$reset();}),E.value={...Y(t.value)},L();}function W(o=true,c=false){Object.values(u.value).forEach(m=>{m.$touch(o,c);});}function L(){a&&(M=watch(a,()=>{x(),S();},{deep:true}));}function D(){d=watch(t,()=>{x(),S(),W(true,true);},{flush:"sync"});}function q(){n&&(w?.(),w=watch(n,()=>{x(),S();},{deep:true,flush:"post"}),L()),f&&(l?.(),l=watch(f,()=>{x(),S();},{deep:true,flush:"post"})),D(),N=effectScope(),I=N.run(()=>{let o=computed({get:()=>t.value,set(F){x(),t.value=F,S();}}),c=computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([F,C])=>C?.$dirty)),m=computed(()=>Object.entries(u.value).some(([F,C])=>C?.$anyDirty)),T=computed(()=>Object.entries(u.value).some(([F,C])=>C?.$invalid)),V=computed(()=>{let F=Object.entries(u.value).filter(([C,H])=>gt(H)?!H.$inactive:true);return F.length?F.every(([C,H])=>H?.$valid):false}),ne=computed(()=>m.value&&!U.value&&T.value),i=computed(()=>unref(v.options.rewardEarly)!=null?unref(v.options.rewardEarly):false),P=computed(()=>unref(v.options.autoDirty)!=null?unref(v.options.autoDirty):!i.value),k=computed(()=>P.value?m.value&&!(T.value||U.value):!(T.value||U.value)),Z=ref(false),U=computed(()=>Z.value||Object.entries(u.value).some(([F,C])=>C?.$pending)),y=computed(()=>Object.fromEntries(Object.entries(u.value).map(([F,C])=>[F,C?.$errors]))),O=computed(()=>Object.fromEntries(Object.entries(u.value).map(([F,C])=>[F,C?.$silentErrors]))),B=computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([F,C])=>C?.$edited)),K=computed(()=>Object.entries(u.value).some(([F,C])=>C?.$anyEdited)),b=computed(()=>h);function ue(){v.shortcuts?.nested&&Object.entries(v.shortcuts.nested).forEach(([F,C])=>{let H=effectScope();ce[F]=H.run(()=>{let Te=ref();return watchEffect(()=>{Te.value=C(reactive({$dirty:c,$value:t,$silentValue:o,$error:ne,$pending:U,$invalid:T,$valid:V,$ready:k,$anyDirty:m,$name:b,$silentErrors:O,$errors:y,$fields:u,$edited:B,$anyEdited:K}));}),Te}),G.push(H);});}let ve=computed({get:()=>R?Object.fromEntries(Object.entries(R?.(u.value)??{}).map(([F,C])=>C.length?[F,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(H=>[H,ft(C,H)])),...Object.fromEntries(["$errors","$silentErrors"].map(H=>[H,Rt(C,H)]))}]:[])):{},set(){}}),ce={};return ue(),{$dirty:c,$anyDirty:m,$invalid:T,$valid:V,$error:ne,$pending:U,$errors:y,$silentErrors:O,$ready:k,$name:b,$shortcuts:ce,$groups:ve,$silentValue:o,$edited:B,$anyEdited:K,$localPending:Z}});}function x(){w?.(),M?.(),d?.(),G.forEach(o=>o.stop()),G=[],N.stop(),u.value&&Object.entries(u.value).forEach(([o,c])=>{c.$unwatch();});}function Q(){Object.entries(u.value).forEach(([o,c])=>{c.$clearExternalErrors();});}async function g(){x(),t.value=Y({...E.value??{}}),p(),S();}function j(o){return o.filter(([c,m])=>re(m)?!(m&&typeof m=="object"&&"_null"in m)&&!J(m):Array.isArray(m)?m.length:true)}function oe(o=true){let c=Object.entries(u.value).map(([m,T])=>[m,T.$extractDirtyFields(o)]);return o&&(c=j(c)),Object.fromEntries(c)}async function ie(){try{if(v.schemaMode)return v.onValidate?(W(!1),I.$localPending.value=!0,v.onValidate()):{result:!1,data:t.value};{let o=t.value;return {result:(await Promise.allSettled(Object.values(u.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:o}}}catch{return {result:false,data:t.value}}finally{I.$localPending.value=false;}}let{$shortcuts:pe,$localPending:X,...le}=I;return reactive({...le,...pe,$fields:u,$value:t,$resetAll:g,$reset:p,$touch:W,$validate:ie,$unwatch:x,$watch:q,$clearExternalErrors:Q,$extractDirtyFields:oe})}function ge({rulesDef:e,...t}){if(mt(e,t.state))return Dt({rulesDef:e,...t});if(vt(t.state,e)){if(Oe(t.state))return Ne({rulesDef:e,...t});{let n=effectScope().run(()=>{let f=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,R=>{f.value=R;},{deep:true}),watch(f,R=>{t.state.value=R;},{deep:true}),{fakeState:f}}),{state:a,...s}=t;return Ne({rulesDef:e,...s,state:n.fakeState})}}else if(yt(e))return _e({rulesDef:e,...t})}function be({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:s,schemaErrors:f,schemaMode:R=false,onValidate:E}){let h=He(),v=ref();return v.value=Ne({rootRules:r,rulesDef:r,state:n,customMessages:a?.(),storage:h,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:s,fieldName:"root",path:"",schemaErrors:f,rootSchemaErrors:f,schemaMode:R,onValidate:E}),getCurrentScope()&&onScopeDispose(()=>{v.value?.$unwatch();}),reactive({regle:v})}function Ze(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function a(s,f,R){let E=isRef(f)?f:computed(typeof f=="function"?f:()=>f),h={...n,...R},v=isRef(s)?s:ref(s),N=ref({...Y(v.value)});return {r$:be({scopeRules:E,state:v,options:h,initialState:N,customRules:e,shortcuts:r}).regle}}return a}var wt=Ze();function Ke(){function e(t,r){return r}return e}var et=Ke();function Pt({rules:e,modifiers:t,shortcuts:r}){let n=Ze(e,t,r),a=Ke();return {useRegle:n,inferRules:a}}
|
|
2
|
+
export{Be as InternalRuleType,ke as createRule,Pt as defineRegleConfig,et as inferRules,ee as unwrapRuleParameters,wt as useRegle,be as useRootStorage};
|