@regle/core 1.1.0-beta.1 → 1.1.0-beta.2
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
CHANGED
|
@@ -2685,10 +2685,10 @@ function createVariant(root, disciminantKey, variants) {
|
|
|
2685
2685
|
function discriminateVariant(root, discriminantKey, discriminantValue) {
|
|
2686
2686
|
return isObject(root[discriminantKey]) && "$value" in root[discriminantKey] && root[discriminantKey]?.$value === discriminantValue;
|
|
2687
2687
|
}
|
|
2688
|
-
function
|
|
2688
|
+
function inferVariantToRef(root, discriminantKey, discriminantValue) {
|
|
2689
2689
|
let returnedRef;
|
|
2690
2690
|
if (discriminateVariant(root, discriminantKey, discriminantValue)) {
|
|
2691
|
-
returnedRef = vue.toRef(root
|
|
2691
|
+
returnedRef = vue.toRef(root);
|
|
2692
2692
|
}
|
|
2693
2693
|
return returnedRef;
|
|
2694
2694
|
}
|
|
@@ -2701,7 +2701,7 @@ exports.defineRegleConfig = defineRegleConfig;
|
|
|
2701
2701
|
exports.discriminateVariant = discriminateVariant;
|
|
2702
2702
|
exports.flatErrors = flatErrors;
|
|
2703
2703
|
exports.inferRules = inferRules;
|
|
2704
|
-
exports.
|
|
2704
|
+
exports.inferVariantToRef = inferVariantToRef;
|
|
2705
2705
|
exports.mergeRegles = mergeRegles;
|
|
2706
2706
|
exports.unwrapRuleParameters = unwrapRuleParameters;
|
|
2707
2707
|
exports.useCollectScope = useCollectScope;
|
package/dist/regle-core.d.cts
CHANGED
|
@@ -2525,7 +2525,7 @@ declare function discriminateVariant<TRoot extends {
|
|
|
2525
2525
|
} ? V : unknown>(root: TRoot, discriminantKey: TKey, discriminantValue: TValue): root is Extract<TRoot, {
|
|
2526
2526
|
[K in TKey]: RegleFieldStatus<TValue, any, any>;
|
|
2527
2527
|
}>;
|
|
2528
|
-
declare function
|
|
2528
|
+
declare function inferVariantToRef<TRoot extends {
|
|
2529
2529
|
[x: string]: unknown;
|
|
2530
2530
|
}, TKey extends keyof TRoot, const TValue extends LazyJoinDiscriminatedUnions<Exclude<TRoot[TKey], RegleCollectionStatus<any, any, any> | RegleStatus<any, any, any>>> extends {
|
|
2531
2531
|
$value: infer V;
|
|
@@ -2533,4 +2533,4 @@ declare function inferVariantRef<TRoot extends {
|
|
|
2533
2533
|
[K in TKey]: RegleFieldStatus<TValue, any, any>;
|
|
2534
2534
|
}>> | undefined;
|
|
2535
2535
|
|
|
2536
|
-
export { type $InternalRegleStatus, type AllRulesDeclarations, type CommonComparationOptions, type DeepMaybeRef, type DeepReactiveState, type FormRuleDeclaration, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleShortcuts, type InferRegleStatusType, type InlineRuleDeclaration, InternalRuleType, type JoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type MaybeInput, type MaybeOutput, type MaybeVariantStatus, type MergedRegles, type MismatchInfo, type NoInferLegacy, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type ReglePartialRuleTree, type RegleResult, type RegleRoot, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleMetadataExtended, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleTypeReturn, type RegleRuleWithParamsDefinition, type RegleShortcutDefinition, type RegleSingleField, type RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, type ResolvedRegleBehaviourOptions, type ScopedInstancesRecord, type ScopedInstancesRecordLike, type SuperCompatibleRegleCollectionErrors, type SuperCompatibleRegleCollectionStatus, type SuperCompatibleRegleFieldStatus, type SuperCompatibleRegleResult, type SuperCompatibleRegleRoot, type SuperCompatibleRegleRuleStatus, type SuperCompatibleRegleStatus, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, createRule, createScopedUseRegle, createVariant, defineRegleConfig, discriminateVariant, flatErrors, inferRules,
|
|
2536
|
+
export { type $InternalRegleStatus, type AllRulesDeclarations, type CommonComparationOptions, type DeepMaybeRef, type DeepReactiveState, type FormRuleDeclaration, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleShortcuts, type InferRegleStatusType, type InlineRuleDeclaration, InternalRuleType, type JoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type MaybeInput, type MaybeOutput, type MaybeVariantStatus, type MergedRegles, type MismatchInfo, type NoInferLegacy, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type ReglePartialRuleTree, type RegleResult, type RegleRoot, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleMetadataExtended, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleTypeReturn, type RegleRuleWithParamsDefinition, type RegleShortcutDefinition, type RegleSingleField, type RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, type ResolvedRegleBehaviourOptions, type ScopedInstancesRecord, type ScopedInstancesRecordLike, type SuperCompatibleRegleCollectionErrors, type SuperCompatibleRegleCollectionStatus, type SuperCompatibleRegleFieldStatus, type SuperCompatibleRegleResult, type SuperCompatibleRegleRoot, type SuperCompatibleRegleRuleStatus, type SuperCompatibleRegleStatus, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, createRule, createScopedUseRegle, createVariant, defineRegleConfig, discriminateVariant, flatErrors, inferRules, inferVariantToRef, mergeRegles, unwrapRuleParameters, useCollectScope, useRegle, useRootStorage, useScopedRegle };
|
package/dist/regle-core.d.ts
CHANGED
|
@@ -2525,7 +2525,7 @@ declare function discriminateVariant<TRoot extends {
|
|
|
2525
2525
|
} ? V : unknown>(root: TRoot, discriminantKey: TKey, discriminantValue: TValue): root is Extract<TRoot, {
|
|
2526
2526
|
[K in TKey]: RegleFieldStatus<TValue, any, any>;
|
|
2527
2527
|
}>;
|
|
2528
|
-
declare function
|
|
2528
|
+
declare function inferVariantToRef<TRoot extends {
|
|
2529
2529
|
[x: string]: unknown;
|
|
2530
2530
|
}, TKey extends keyof TRoot, const TValue extends LazyJoinDiscriminatedUnions<Exclude<TRoot[TKey], RegleCollectionStatus<any, any, any> | RegleStatus<any, any, any>>> extends {
|
|
2531
2531
|
$value: infer V;
|
|
@@ -2533,4 +2533,4 @@ declare function inferVariantRef<TRoot extends {
|
|
|
2533
2533
|
[K in TKey]: RegleFieldStatus<TValue, any, any>;
|
|
2534
2534
|
}>> | undefined;
|
|
2535
2535
|
|
|
2536
|
-
export { type $InternalRegleStatus, type AllRulesDeclarations, type CommonComparationOptions, type DeepMaybeRef, type DeepReactiveState, type FormRuleDeclaration, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleShortcuts, type InferRegleStatusType, type InlineRuleDeclaration, InternalRuleType, type JoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type MaybeInput, type MaybeOutput, type MaybeVariantStatus, type MergedRegles, type MismatchInfo, type NoInferLegacy, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type ReglePartialRuleTree, type RegleResult, type RegleRoot, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleMetadataExtended, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleTypeReturn, type RegleRuleWithParamsDefinition, type RegleShortcutDefinition, type RegleSingleField, type RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, type ResolvedRegleBehaviourOptions, type ScopedInstancesRecord, type ScopedInstancesRecordLike, type SuperCompatibleRegleCollectionErrors, type SuperCompatibleRegleCollectionStatus, type SuperCompatibleRegleFieldStatus, type SuperCompatibleRegleResult, type SuperCompatibleRegleRoot, type SuperCompatibleRegleRuleStatus, type SuperCompatibleRegleStatus, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, createRule, createScopedUseRegle, createVariant, defineRegleConfig, discriminateVariant, flatErrors, inferRules,
|
|
2536
|
+
export { type $InternalRegleStatus, type AllRulesDeclarations, type CommonComparationOptions, type DeepMaybeRef, type DeepReactiveState, type FormRuleDeclaration, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleShortcuts, type InferRegleStatusType, type InlineRuleDeclaration, InternalRuleType, type JoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type MaybeInput, type MaybeOutput, type MaybeVariantStatus, type MergedRegles, type MismatchInfo, type NoInferLegacy, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type ReglePartialRuleTree, type RegleResult, type RegleRoot, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleMetadataExtended, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleTypeReturn, type RegleRuleWithParamsDefinition, type RegleShortcutDefinition, type RegleSingleField, type RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, type ResolvedRegleBehaviourOptions, type ScopedInstancesRecord, type ScopedInstancesRecordLike, type SuperCompatibleRegleCollectionErrors, type SuperCompatibleRegleCollectionStatus, type SuperCompatibleRegleFieldStatus, type SuperCompatibleRegleResult, type SuperCompatibleRegleRoot, type SuperCompatibleRegleRuleStatus, type SuperCompatibleRegleStatus, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, createRule, createScopedUseRegle, createVariant, defineRegleConfig, discriminateVariant, flatErrors, inferRules, inferVariantToRef, mergeRegles, unwrapRuleParameters, useCollectScope, useRegle, useRootStorage, useScopedRegle };
|
package/dist/regle-core.min.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var vue=require('vue');function te(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var bt=Symbol("regle-rule");function er(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function N(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>N(n)))),r=="Map"&&(t=new Map([...e].map(n=>[N(n[0]),N(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,er(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=N(e[n]);}return t}function k(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function qe(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function _e(e,t,r){let n,a=(...o)=>new Promise(i=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(i);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a}var Je={Inline:"__inline",Async:"__async"};function Et(e,t){return e.some(r=>r[t])}function xt(e,t){return e.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[])}function re(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function Dt(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function It(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(i=>i.trim()).filter(i=>i.length>0).length:0}function Ye(e,...t){let{validator:r,type:n}=e,a=n===Je.Async||r.constructor.name==="AsyncFunction";return {...{validator(c,...v){return e.validator(c,...re(v.length?v:t))},message(c){return typeof e.message=="function"?e.message({...c,$params:re(c?.$params?.length?c.$params:t)}):e.message},active(c){return typeof e.active=="function"?e.active({...c,$params:re(c?.$params?.length?c.$params:t)}):e.active??true},tooltip(c){return typeof e.tooltip=="function"?e.tooltip({...c,$params:re(c?.$params?.length?c.$params:t)}):e.tooltip??[]},exec(c){let v=e.validator(c,...re(t)),y;return v instanceof Promise?v.then(h=>(y=h,typeof y=="object"&&"$valid"in y?y.$valid:typeof y=="boolean"?y:false)):(y=v,typeof y=="object"&&"$valid"in y?y.$valid:typeof y=="boolean"?y: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:bt}}function Qe(e){if(typeof e.validator=="function"){let r=Ye(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(It(e.validator)>1){let a=function(...o){return Ye(e,...o)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.tooltip=r.tooltip,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._tooltip=r.tooltip,a._type=e.type,a._message_pacthed=false,a._tooltip_pacthed=false,a._async=n,a}else return r}throw new Error("Validator must be a function")}function Xe(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),a=vue.shallowRef(new Map),o=vue.shallowRef(new Map);function i(S){let E=t.value.get(S);if(E)return E;{let D=vue.ref({});return t.value.set(S,D),D}}function c(S){let E=r.value.get(S);if(E)return E;{let D=vue.ref([]);return r.value.set(S,D),D}}function v(S,E,D){o.value.set(`${S}-${E}`,D);}function y(S,E){return o.value.get(`${S}-${E}`)}function h(S,E){S&&E!=null&&o.value.delete(`${S}-${E}`);}function j(S,E){n.value.set(S,E);}function I(S){return n.value.get(S)??false}function M(S,E){e.value.set(S,E);}function w(S,E){let D=e.value.get(S);return D?O(E,D)?{valid:true}:{valid:false}:void 0}function O(S,E){let D=Object.keys(E),R=Object.keys(S);return R.length!==D.length||!R.every(f=>D.includes(f))?false:R.every(f=>{let s=S[f],T=E[f];return !T||!s||typeof s=="function"||typeof T=="function"||typeof s=="number"||typeof s=="boolean"?false:s._params?s._params?.every((V,B)=>{if(typeof T=="number"||typeof T=="boolean")return true;{let U=re(T._params),X=re(s._params);return U?.[B]===X?.[B]}}):true})}function l(S){let E=a.value.get(S);if(E)return E;{let D=vue.ref(false),R=vue.ref(true),b=vue.ref({}),f=vue.ref(false);return a.value.set(S,{$pending:D,$valid:R,$metadata:b,$validating:f}),{$pending:D,$valid:R,$metadata:b,$validating:f}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:M,setDirtyEntry:j,checkRuleDeclEntry:w,getDirtyState:I,trySetRuleStatusRef:l,getFieldsEntry:i,getCollectionsEntry:c,getArrayStatus:y,addArrayStatus:v,deleteArrayStatus:h,arrayStatusStorage:o}}function ke(e){return k(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}}var Pe={LessThan:-1,EqualTo:0,GreaterThan:1};function ur(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let o=Number(r[a]),i=Number(n[a]);if(o>i)return Pe.GreaterThan;if(i>o)return Pe.LessThan;if(!isNaN(o)&&isNaN(i))return Pe.GreaterThan;if(isNaN(o)&&!isNaN(i))return Pe.LessThan}return Pe.EqualTo}var Ne=ur(vue.version,"3.5.0")!==-1;function cr(){return Math.floor(Math.random()*Date.now()).toString()}function Se(){return typeof window>"u"?cr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Ct(e){return vue.getCurrentScope()?(vue.onScopeDispose(e),true):false}function Ot(e){let t=false,r,n=vue.effectScope(true);return (...a)=>(t||(r=n.run(()=>e(...a)),t=true),r)}function Ge(e,t){return ke(e)||k(t.value)&&!te(t.value)&&!Object.entries(t.value).some(([r,n])=>ye(n)||typeof n=="function")}function wt(e,t,r=false){return !!e.value&&k(e.value)&&"$each"in e.value||r&&Array.isArray(t.value)&&t.value.some(k)||Array.isArray(t.value)&&t.value.some(k)}function Ue(e){return !!e.value&&k(e.value)}function ye(e){return k(e)&&"_validator"in e}function Ve(e){return typeof e.value!="function"}function Pt(e){return k(e)&&"$fields"in e}function Vt(e){return !!e&&"$rules"in e}function et({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Mt({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function At(e){return k(e)&&"$each"in e}function tt(e,t){let{includePath:r=false}=t??{};if(Array.isArray(e)&&e.every(n=>!k(n)))return e;if(At(e)){let n=r?e.$self?.map(o=>({error:o,path:""}))??[]:e.$self??[],a=e.$each?.map(o=>We(o,r))??[];return n?.concat(a.flat())}else return Object.entries(e).map(([n,a])=>We(a,r,[n])).flat()}function We(e,t=false,r){let n=t&&!r?[]:r;if(Array.isArray(e)&&e.every(a=>!k(a)))return t?e.map(a=>({error:a,path:n?.join(".")??""})):e;if(At(e)){let a=n?.length?e.$self?.map(i=>({error:i,path:n.join(".")}))??[]:e.$self??[],o=e.$each?.map((i,c)=>We(i,t,n?.concat(c.toString())))??[];return a?.concat(o.flat())}else return Object.entries(e).map(([a,o])=>We(o,t,n?.concat(a))).flat()}function Ft({customMessages:e,rule:t,ruleKey:r,state:n,path:a,storage:o,$debounce:i,modifiers:c}){let v=vue.effectScope(),y={},h,j=vue.ref(false),{$pending:I,$valid:M,$metadata:w,$validating:O}=o.trySetRuleStatusRef(`${a}.${r}`);function l(){v=vue.effectScope(),y=v.run(()=>{let s=vue.ref(false),T=vue.ref(false),V=vue.ref(true),B=vue.ref(false),U=vue.ref(false),X=vue.computed(()=>({$value:n.value,$error:T.value,$dirty:s.value,$pending:B.value,$correct:U.value,$invalid:V.value,$rule:{$valid:M.value,$invalid:!M.value,$pending:I.value},$params:p.value,...w.value})),oe=vue.computed(()=>Ve(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function C(x){let A="",K=e?e[r]?.[x]:void 0;if(K&&(typeof K=="function"?A=K(X.value):A=K),Ve(t)){let m=`_${x}_patched`;K&&!t.value[m]||(typeof t.value[x]=="function"?A=t.value[x](X.value):A=t.value[x]??"");}return A}let z=vue.computed(()=>{let x=C("message");return te(x)&&(x="This field is not valid"),x}),me=vue.computed(()=>C("tooltip")),ue=vue.computed(()=>Ve(t)&&t.value.type?t.value.type:r),u=vue.computed(()=>Ve(t)?t.value.validator:t.value),p=vue.computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),d=vue.computed(()=>`${a}.${ue.value}`);return {$active:oe,$message:z,$type:ue,$validator:u,$params:p,$path:d,$tooltip:me,$fieldCorrect:U,$fieldError:T,$fieldDirty:s,$fieldPending:B,$fieldInvalid:V}}),h=vue.watch(y?.$params,()=>{(c.$autoDirty.value||c.$rewardEarly.value&&y.$fieldError.value)&&R();});}l();function S(){M.value=true,y.$fieldDirty.value&&(I.value=true);}async function E(){let s=false;try{let T=y.$validator.value;if(typeof T!="function")return console.error(`${a}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let V=T(n.value,...y.$params.value),B=n.value;S();let U;if(V instanceof Promise?U=await V:U=V,n.value!==B)return !0;if(typeof U=="boolean")s=U;else {let{$valid:X,...oe}=U;s=X,w.value=oe;}}catch{s=false;}finally{I.value=false;}return s}let D=_e(E,i??200);async function R(){try{O.value=!0;let s=!1;if(ye(t.value)&&t.value._async)s=await D();else {let T=y.$validator.value,V=T(n.value,...y.$params.value);if(V 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(V!=null)if(typeof V=="boolean")s=V;else {let{$valid:B,...U}=V;s=B,w.value=U;}}return M.value=s,s}catch{return false}finally{O.value=false;}}function b(){M.value=true,w.value={},I.value=false,O.value=false,l();}function f(){h(),v.stop(),v=vue.effectScope();}return vue.reactive({...y,$pending:I,$valid:M,$metadata:w,$haveAsync:j,$validating:O,$parse:R,$unwatch:f,$watch:l,$reset:b})}function be({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:o,options:i,externalErrors:c,schemaErrors:v,schemaMode:y,onUnwatch:h,$isArray:j,initialState:I,shortcuts:M,onValidate:w}){let O=vue.effectScope(),l,S=[],E,D,R,b,f,s=()=>{};function T(){let $=t.value,F=o.checkRuleDeclEntry(n,$);z.value=Object.fromEntries(Object.entries($).filter(([g])=>g.startsWith("$"))),U(),C.value=Object.fromEntries(Object.entries(t.value).filter(([g])=>!g.startsWith("$")).map(([g,ee])=>{if(ee){let se=vue.toRef(()=>ee);return [g,Ft({modifiers:{$autoDirty:l.$autoDirty,$rewardEarly:l.$rewardEarly},customMessages:r,rule:se,ruleKey:g,state:e,path:n,storage:o,$debounce:z.value.$debounce})]}return []}).filter(g=>!!g.length)),l.processShortcuts(),V(),F?.valid!=null&&(l.$dirty.value=o.getDirtyState(n),(l.$dirty.value&&l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s()),o.addRuleDeclEntry(n,$);}function V(){s=l.$debounce.value?_e(oe,l.$debounce.value??l.$haveAnyAsyncRule?100:0):oe;}function B(){C.value&&Object.entries(C.value).forEach(([$,F])=>{F.$unwatch();}),R(),f?.(),l.$dirty.value&&o.setDirtyEntry(n,l.$dirty.value),E?.(),D?.(),O.stop(),O=vue.effectScope(),S.forEach($=>$.stop()),S=[],h?.(),b?.();}function U(){C.value&&Object.entries(C.value).forEach(([$,F])=>{F.$watch();}),l=O.run(()=>{let $=vue.ref(false),F=vue.ref(false),g=vue.computed(()=>$.value),ee=vue.computed(()=>z.value.$debounce),se=vue.computed(()=>z.value.$lazy!=null?z.value.$lazy:vue.unref(i.lazy)!=null?vue.unref(i.lazy):false),le=vue.computed(()=>z.value.$rewardEarly!=null?z.value.$rewardEarly:vue.unref(i.rewardEarly)!=null?vue.unref(i.rewardEarly):false),W=vue.computed(()=>z.value.$clearExternalErrorsOnChange!=null?z.value.$clearExternalErrorsOnChange:vue.unref(i.clearExternalErrorsOnChange)!=null?vue.unref(i.clearExternalErrorsOnChange):true),P=vue.computed(()=>z.value.$autoDirty!=null?z.value.$autoDirty:vue.unref(i.autoDirty)!=null?vue.unref(i.autoDirty):!le.value),H=vue.computed(()=>Object.entries(C.value).some(([ie,Q])=>Q.$validating)),Oe=vue.computed({get:()=>e.value,set(ie){E(),e.value=ie,X();}}),Fe=vue.computed(()=>ge.value&&!we.value&&$.value),dt=vue.computed(()=>et({field:{$rules:C.value,$error:Fe.value,$externalErrors:c?.value,$schemaErrors:v?.value}})),pt=vue.computed(()=>et({field:{$rules:C.value,$error:Fe.value,$externalErrors:c?.value,$schemaErrors:v?.value},silent:true})),ze=vue.computed(()=>$.value?I.value instanceof Date&&e.value instanceof Date?qe(I.value).getDate()!==qe(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),yt=vue.computed(()=>ze.value),mt=vue.computed(()=>Mt({field:{$rules:C.value}})),gt=vue.computed(()=>P.value?g.value&&!(ge.value||we.value):!(ge.value||we.value)),we=vue.computed(()=>F.value||!le.value?Object.entries(C.value).some(([ie,Q])=>Q.$pending):false),ge=vue.computed(()=>c?.value?.length||v?.value?.length?true:je.value?false:!le.value||le.value&&F.value?Object.entries(C.value).some(([ie,Q])=>!Q.$valid):false),vt=vue.computed(()=>a),je=vue.computed(()=>!!(te(C.value)&&!y)),$t=vue.computed(()=>c?.value?.length||je.value?false:$.value&&!te(e.value)&&!H.value?y?!v?.value?.length:Object.values(C.value).some(Q=>Q.$active)?Object.values(C.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),Xt=vue.computed(()=>Object.entries(C.value).some(([ie,Q])=>Q.$haveAsync));function Zt(){M?.fields&&Object.entries(M.fields).forEach(([ie,Q])=>{let ht=vue.effectScope();St[ie]=ht.run(()=>{let Tt=vue.ref();return vue.watchEffect(()=>{Tt.value=Q(vue.reactive({$dirty:$,$externalErrors:c?.value??[],$value:e,$silentValue:Oe,$rules:C,$error:Fe,$pending:we,$invalid:ge,$correct:$t,$errors:dt,$ready:gt,$silentErrors:pt,$anyDirty:g,$tooltips:mt,$name:vt,$inactive:je,$edited:ze,$anyEdited:yt}));}),Tt}),S.push(ht);});}let St={};return vue.watch(ge,ie=>{ie||(F.value=false);}),{$error:Fe,$pending:we,$invalid:ge,$correct:$t,$debounce:ee,$lazy:se,$errors:dt,$ready:gt,$silentErrors:pt,$rewardEarly:le,$autoDirty:P,$clearExternalErrorsOnChange:W,$anyDirty:g,$edited:ze,$anyEdited:yt,$name:vt,$haveAnyAsyncRule:Xt,$shortcuts:St,$validating:H,$tooltips:mt,$dirty:$,triggerPunishment:F,processShortcuts:Zt,$silentValue:Oe,$inactive:je}}),X(),R=vue.watch(l.$dirty,$=>{o.setDirtyEntry(n,$),Object.values(C.value).forEach(F=>{F.$fieldDirty=$;});}),f=vue.watch([l.$error,l.$correct,l.$invalid,l.$pending],()=>{Object.values(C.value).forEach($=>{$.$fieldError=l.$error.value,$.$fieldInvalid=l.$invalid.value,$.$fieldPending=l.$pending.value,$.$fieldCorrect=l.$correct.value;});}),D=vue.watch(l.$invalid,$=>{l.$rewardEarly.value&&!$&&(l.triggerPunishment.value=false);}),b=vue.watch(l.$haveAnyAsyncRule,V);}function X(){E=vue.watch(e,()=>{l.$autoDirty.value&&(l.$dirty.value||(l.$dirty.value=true)),t.value instanceof Function&&T(),(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s(),l.$rewardEarly.value!==true&&l.$clearExternalErrorsOnChange.value&&d();},{deep:j?true:Ne?1:true});}function oe(){Object.values(C.value).forEach($=>{$.$parse();});}let C=vue.ref({}),z=vue.ref({});T();function me($,F){if(d(),l.$dirty.value=false,l.triggerPunishment.value=false,o.setDirtyEntry(n,false),!F)if($?.toInitialState)B(),e.value=N(I);else if($?.toState){B();let g;typeof $?.toState=="function"?g=$?.toState():g=$?.toState,I.value=N(g),e.value=N(g);}else I.value=k(e.value)?N(e.value):Array.isArray(e.value)?[...e.value]:e.value;$?.clearExternalErrors&&d(),F||Object.entries(C.value).forEach(([g,ee])=>{ee.$reset();}),!l.$lazy.value&&l.$autoDirty.value&&Object.values(C.value).forEach(g=>g.$parse()),F||T();}function ue($=true,F=false){l.$dirty.value||(l.$dirty.value=true),F&&$?(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s():$&&s();}async function u(){try{if(y)return w?(ue(!1),w()):{valid:!1,data:e.value};let $=e.value;if(l.triggerPunishment.value=!0,!l.$dirty.value)l.$dirty.value=!0;else if(l.$autoDirty.value&&l.$dirty.value&&!l.$pending.value)return {valid:!l.$error.value,data:$};return y?{valid:!v?.value?.length,data:$}:te(C.value)?{valid:!0,data:$}:{valid:(await Promise.allSettled(Object.entries(C.value).map(([ee,se])=>se.$parse()))).every(ee=>ee.status==="fulfilled"?ee.value===!0:!1),data:$}}catch{return {valid:false,data:e.value}}}function p($=true){return l.$dirty.value?e.value:$?{_null:true}:null}function d(){c?.value?.length&&(c.value=[]);}!l.$lazy.value&&!l.$dirty.value&&l.$autoDirty.value&&s();let{$shortcuts:x,$validating:A,$autoDirty:K,$rewardEarly:m,$clearExternalErrorsOnChange:_,$haveAnyAsyncRule:q,$debounce:Z,$lazy:Y,triggerPunishment:fe,...ce}=l;return vue.reactive({...ce,$externalErrors:c,$value:e,$rules:C,...x,$reset:me,$touch:ue,$validate:u,$unwatch:B,$watch:U,$extractDirtyFields:p,$clearExternalErrors:d})}function at({$id:e,path:t,index:r,options:n,storage:a,stateValue:o,customMessages:i,rules:c,externalErrors:v,schemaErrors:y,initialState:h,shortcuts:j,fieldName:I,schemaMode:M}){let w=c.$key?c.$key:Se(),O=`${t}.${String(w)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?O=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let l=vue.toRef(v?.value??[],r),S=vue.computed(()=>y?.value?.[r]),E=Ee({state:o,rulesDef:vue.toRef(()=>c),customMessages:i,path:O,storage:a,options:n,externalErrors:l,schemaErrors:S,initialState:h,shortcuts:j,fieldName:I,schemaMode:M});if(E){let D=o.value?.$id;E.$id=D??String(w),a.addArrayStatus(e,E.$id,E);}return E}function Nt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:i,schemaErrors:c,schemaMode:v,initialState:y,shortcuts:h,fieldName:j}){let I=vue.effectScope(),M,w=vue.effectScope(),O,l=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let S=vue.ref(),E=vue.ref(e.value),D,R=vue.ref({}),b=a.getCollectionsEntry(n);O=w.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(p=>typeof p!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(p=>ye(p)||typeof p=="function"):false)})),f(),V();function f(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(S.value=Se(),Object.defineProperties(e.value,{$id:{value:S.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(S.value=e.value.$id)),E.value=R.value.$value,Array.isArray(e.value)&&!O.isPrimitiveArray.value?b.value=e.value.filter(u=>typeof u=="object").map((u,p)=>{let{scope:d,unwrapped:x}=Ze(t.value.$each,vue.toRef(()=>u),p);d&&l.push(d);let A=vue.toRef(y.value??[],p),K=vue.toRef(i?.value??{},"$each"),m=vue.computed(()=>c?.value?.$each),_=at({$id:S.value,path:n,customMessages:r,rules:x??{},stateValue:vue.toRef(()=>u),index:p,options:o,storage:a,externalErrors:K,schemaErrors:m,initialState:A,shortcuts:h,fieldName:j,schemaMode:v});return _||null}).filter(u=>!!u):b.value=[],R.value=be({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:vue.toRef(i?.value??{},"$self"),schemaErrors:vue.computed(()=>c?.value?.$self),$isArray:true,initialState:y,shortcuts:h,fieldName:j,schemaMode:v});}function s(){if(Array.isArray(e.value)&&!O.isPrimitiveArray.value){let u=N(b.value);b.value=e.value.filter(p=>typeof p=="object").map((p,d)=>{let x=vue.toRef(()=>p);if(p.$id&&b.value.find(A=>A.$id===p.$id)){let A=a.getArrayStatus(S.value,p.$id);return A?(A.$value=x,A):null}else {let{scope:A,unwrapped:K}=Ze(t.value.$each,x,d);A&&l.push(A);let m=vue.toRef(i?.value??{},"$each"),_=vue.computed(()=>c?.value?.$each??[]),q=at({$id:S.value,path:n,customMessages:r,rules:K??{},stateValue:x,index:d,options:o,storage:a,externalErrors:m,schemaErrors:_,initialState:vue.toRef(y.value??[],d),shortcuts:h,fieldName:j,schemaMode:v});return q||null}}).filter(p=>!!p),u.filter(p=>!e.value?.find(d=>p.$id===d.$id)).forEach((p,d)=>{a.deleteArrayStatus(S.value,d.toString());});}else b.value=[];}function T(){D=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?f():s();},{deep:Ne?1:true,flush:"pre"});}function V(){T(),I=vue.effectScope(),M=I.run(()=>{let u=vue.computed({get:()=>e.value,set(g){D(),e.value=g,T();}}),p=vue.computed(()=>R.value.$dirty&&(!b.value.length||b.value.every(g=>g.$dirty))),d=vue.computed(()=>R.value.$anyDirty||b.value.some(g=>g.$anyDirty)),x=vue.computed(()=>R.value.$invalid||b.value.some(g=>g.$invalid)),A=vue.computed(()=>(te(R.value.$rules)?true:R.value.$correct)&&(!b.value.length||b.value.every(g=>g.$correct||g.$anyDirty&&!g.$invalid))),K=vue.computed(()=>R.value.$error||b.value.some(g=>g.$error)),m=vue.computed(()=>!(x.value||_.value)),_=vue.computed(()=>R.value.$pending||b.value.some(g=>g.$pending)),q=vue.computed(()=>!!b.value.length&&b.value.every(g=>g.$edited)),Z=vue.computed(()=>R.value.$anyEdited||b.value.some(g=>g.$anyEdited)),Y=vue.computed(()=>({$self:R.value.$errors,$each:b.value.map(g=>g.$errors)})),fe=vue.computed(()=>({$self:R.value.$silentErrors,$each:b.value.map(g=>g.$silentErrors)})),ce=vue.computed(()=>j);function $(){h?.collections&&Object.entries(h?.collections).forEach(([g,ee])=>{let se=vue.effectScope();F[g]=se.run(()=>{let le=vue.ref();return vue.watchEffect(()=>{le.value=ee(vue.reactive({$dirty:p,$error:K,$silentValue:u,$pending:_,$invalid:x,$correct:A,$errors:Y,$ready:m,$silentErrors:fe,$anyDirty:d,$name:ce,$each:b,$self:R,$value:e,$edited:q,$anyEdited:Z}));}),le}),l.push(se);});}let F={};return $(),{$dirty:p,$anyDirty:d,$invalid:x,$correct:A,$error:K,$pending:_,$errors:Y,$silentErrors:fe,$ready:m,$name:ce,$shortcuts:F,$silentValue:u,$edited:q,$anyEdited:Z}}),O.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function B(){D&&D(),R.value&&R.value.$unwatch(),b.value&&b.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),I.stop(),I=vue.effectScope(),w.stop(),w=vue.effectScope(true),l.forEach(u=>u.stop()),l=[];}function U(u=true,p=false){R.value.$touch(u,p),b.value.forEach(d=>{d.$touch(u,p);});}function X(u,p){if(B(),!p)if(u?.toInitialState)e.value=N(y.value);else if(u?.toState){let d;typeof u?.toState=="function"?d=u?.toState():d=u?.toState,y.value=N(d),e.value=N(d);}else y.value=N(e.value);u?.clearExternalErrors&&C(),R.value.$reset(),b.value.forEach(d=>{d.$reset(u,true);}),p||f();}async function oe(){let u=e.value;try{return {valid:(await Promise.allSettled([R.value.$validate(),...b.value.map(x=>x.$validate())])).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:u}}catch{return {valid:false,data:u}}}function C(){R.value.$clearExternalErrors(),b.value.forEach(u=>{u.$clearExternalErrors();});}function z(u=true){let p=b.value.map(d=>{if(Pt(d))return d.$extractDirtyFields(u)});return u&&p.every(d=>te(d))&&(p=[]),p}let{$shortcuts:me,...ue}=M;return vue.reactive({$self:R,...ue,...me,$each:b,$value:e,$validate:oe,$unwatch:B,$watch:V,$touch:U,$reset:X,$extractDirtyFields:z,$clearExternalErrors:C})}function Be({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:a,schemaErrors:o,rootSchemaErrors:i,validationGroups:c,initialState:v,fieldName:y,...h}){let j=vue.effectScope(),I,M=[],w=null,O=null,l=null,S=null;async function D(u=true){let p=Object.entries(e.value),d=Object.fromEntries(p.filter(([m,_])=>!!_).map(([m,_])=>{if(_){let q=vue.toRef(t.value??{},m),Z=vue.toRef(()=>_),Y=vue.toRef(a?.value??{},m),fe=vue.computed(()=>o?.value?.[m]),ce=vue.toRef(v?.value??{},m);return [m,Ee({state:q,rulesDef:Z,path:r?`${r}.${m}`:m,externalErrors:Y,schemaErrors:fe,initialState:ce,fieldName:m,...h})]}return []})),x=Object.fromEntries(Object.entries(vue.unref(a)??{}).filter(([m,_])=>!(m in e.value)&&!!_).map(([m])=>{let _=vue.toRef(t.value??{},m),q=vue.toRef(a?.value??{},m),Z=vue.computed(()=>o?.value?.[m]),Y=vue.toRef(v?.value??{},m);return [m,Ee({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${m}`:m,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:m,...h})]})),A=Object.fromEntries(Object.entries(vue.unref(o)??{}).map(([m])=>{let _=vue.toRef(t.value??{},m),q=vue.toRef(a?.value??{},m),Z=vue.computed(()=>o?.value?.[m]),Y=vue.toRef(v?.value??{},m);return [m,Ee({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${m}`:m,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:m,...h})]})),K=Object.fromEntries(Object.entries(t.value??{}).filter(([m])=>!(m in e.value)&&!(m in(x??{}))&&!(m in(A??{}))).map(([m])=>{let _=vue.toRef(t.value??{},m),q=vue.toRef(a?.value??{},m),Z=vue.computed(()=>o?.value?.[m]),Y=vue.toRef(v?.value??{},m);return [m,Ee({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${m}`:m,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:m,...h})]}));R.value={...d,...x,...A,...K},u&&s();}let R=h.storage.getFieldsEntry(r);D();function b(){a&&(l=vue.watch(a,()=>{T(),D();},{deep:true}));}function f(){S=vue.watch(t,()=>{T(),D(),U(true,true);},{flush:"sync"});}function s(){n&&(w?.(),w=vue.watch(n,()=>{T(),D();},{deep:true,flush:"pre"}),b()),i&&(O?.(),O=vue.watch(i,()=>{T(),D();},{deep:true,flush:"post"})),f(),I=j.run(()=>{let u=vue.computed({get:()=>t.value,set(W){T(),t.value=W,D();}}),p=vue.computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).every(([W,P])=>P?.$dirty)),d=vue.computed(()=>Object.entries(R.value).some(([W,P])=>P?.$anyDirty)),x=vue.computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).some(([W,P])=>P?.$invalid)),A=vue.computed(()=>{let W=Object.entries(R.value).filter(([P,H])=>Vt(H)?!H.$inactive:true);return W.length?W.every(([P,H])=>H?.$correct||H.$anyDirty&&!H.$invalid):false}),K=vue.computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).some(([W,P])=>P?.$error)),m=vue.computed(()=>vue.unref(h.options.rewardEarly)!=null?vue.unref(h.options.rewardEarly):false),_=vue.computed(()=>vue.unref(h.options.autoDirty)!=null?vue.unref(h.options.autoDirty):!m.value),q=vue.computed(()=>_.value?d.value&&!(x.value||Y.value):!(x.value||Y.value)),Z=vue.ref(false),Y=vue.computed(()=>Z.value||Object.entries(R.value).some(([W,P])=>P?.$pending)),fe=vue.computed(()=>Object.fromEntries(Object.entries(R.value).map(([W,P])=>[W,P?.$errors]))),ce=vue.computed(()=>Object.fromEntries(Object.entries(R.value).map(([W,P])=>[W,P?.$silentErrors]))),$=vue.computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).every(([W,P])=>P?.$edited)),F=vue.computed(()=>Object.entries(R.value).some(([W,P])=>P?.$anyEdited)),g=vue.computed(()=>y);function ee(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([W,P])=>{let H=vue.effectScope();le[W]=H.run(()=>{let Oe=vue.ref();return vue.watchEffect(()=>{Oe.value=P(vue.reactive({$dirty:p,$value:t,$silentValue:u,$error:K,$pending:Y,$invalid:x,$correct:A,$ready:q,$anyDirty:d,$name:g,$silentErrors:ce,$errors:fe,$fields:R,$edited:$,$anyEdited:F}));}),Oe}),M.push(H);});}let se=vue.computed({get:()=>c?Object.fromEntries(Object.entries(c?.(R.value)??{}).map(([W,P])=>P.length?[W,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(H=>[H,Et(P,H)])),...Object.fromEntries(["$errors","$silentErrors"].map(H=>[H,xt(P,H)]))}]:[])):{},set(){}}),le={};return ee(),{$dirty:p,$anyDirty:d,$invalid:x,$correct:A,$error:K,$pending:Y,$errors:fe,$silentErrors:ce,$ready:q,$name:g,$shortcuts:le,$groups:se,$silentValue:u,$edited:$,$anyEdited:F,$localPending:Z}});}function T(){w?.(),l?.(),S?.(),O?.(),M=[],I={},R.value&&Object.entries(R.value).forEach(([u,p])=>{p.$unwatch();});}function V(){Object.entries(R.value).forEach(([u,p])=>{p.$clearExternalErrors();});}function B(u,p){if(l?.(),T(),!p)if(u?.toInitialState)t.value=N({...v.value??{}});else if(u?.toState){let d;typeof u?.toState=="function"?d=u?.toState():d=u?.toState,v.value=N(d),t.value=N(d);}else v.value=N(t.value);Object.values(R.value).forEach(d=>{d.$reset(u,true);}),u?.clearExternalErrors&&V(),b(),p||D();}function U(u=true,p=false){Object.values(R.value).forEach(d=>{d.$touch(u,p);});}function X(u){return u.filter(([p,d])=>k(d)?!(d&&typeof d=="object"&&"_null"in d)&&!te(d):Array.isArray(d)?d.length:true)}function oe(u=true){let p=Object.entries(R.value).map(([d,x])=>[d,x.$extractDirtyFields(u)]);return u&&(p=X(p)),Object.fromEntries(p)}async function C(){try{if(h.schemaMode)return h.onValidate?(U(!1),I.$localPending.value=!0,h.onValidate()):{valid:!1,data:t.value};{let u=t.value;return {valid:(await Promise.allSettled(Object.values(R.value).map(x=>x.$validate()))).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:u}}}catch{return {valid:false,data:t.value}}finally{I.$localPending.value=false;}}let{$shortcuts:z,$localPending:me,...ue}=I;return vue.reactive({...ue,...z,$fields:R,$value:t,$reset:B,$touch:U,$validate:C,$unwatch:T,$watch:s,$clearExternalErrors:V,$extractDirtyFields:oe})}function Ee({rulesDef:e,...t}){if(wt(e,t.state,t.schemaMode))return Nt({rulesDef:e,...t});if(Ge(t.state,e)){if(ke(t.state))return Be({rulesDef:e,...t});{let n=vue.effectScope().run(()=>{let i=vue.toRef(t.state.value?t.state:vue.ref({}));return vue.watch(()=>t.state.value,c=>{i.value=c;},{deep:true}),vue.watch(i,c=>{t.state.value=c;},{deep:true}),{fakeState:i}}),{state:a,...o}=t;return Be({rulesDef:e,...o,state:n.fakeState})}}else if(Ue(e))return be({rulesDef:e,...t})}function Ce({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:o,schemaErrors:i,schemaMode:c=false,onValidate:v}){let y=Xe(),h=vue.ref();return Ge(n,r)?h.value=Be({rootRules:r,rulesDef:r,state:n,customMessages:a?.(),storage:y,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaErrors:i,rootSchemaErrors:i,schemaMode:c,onValidate:v}):Ue(r)&&(h.value=be({rulesDef:r,state:n,customMessages:a?.(),storage:y,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaMode:c,schemaErrors:i,onValidate:v})),vue.getCurrentScope()&&vue.onScopeDispose(()=>{h.value?.$unwatch();}),vue.reactive({regle:h})}function st(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function a(o,i,c){let v=vue.isRef(i)?i:vue.computed(typeof i=="function"?i:()=>i),y={...n,...c},h=vue.isRef(o)?o:vue.ref(o),j=vue.ref(k(h.value)?{...N(h.value)}:N(h.value));return {r$:Ce({scopeRules:v,state:h,options:y,initialState:j,customRules:e,shortcuts:r}).regle}}return a}var Ke=st();function it(){function e(t,r){return r}return e}var ut=it();function Lt({rules:e,modifiers:t,shortcuts:r}){let n=st(e,t,r),a=it();return {useRegle:n,inferRules:a}}function Ae(e,t){let r=t??false,n=vue.computed({get:()=>r?Object.values(e).map(f=>f.$value):Object.fromEntries(Object.entries(e).map(([f,s])=>[f,s.$value])),set:f=>{r||typeof f=="object"&&Object.entries(f).forEach(([s,T])=>e[s].$value=T);}}),a=vue.computed({get:()=>Object.fromEntries(Object.entries(e).map(([f,s])=>[f,s.$silentValue])),set:f=>{typeof f=="object"&&Object.entries(f).forEach(([s,T])=>e[s].$silentValue=T);}}),o=vue.computed(()=>{let f=Object.entries(e);return !!f.length&&f.every(([s,T])=>T?.$dirty)}),i=vue.computed(()=>Object.entries(e).some(([f,s])=>s?.$anyDirty)),c=vue.computed(()=>Object.entries(e).some(([f,s])=>s?.$invalid)),v=vue.computed(()=>{let f=Object.entries(e);return !!f.length&&f.every(([s,T])=>T?.$correct||T.$anyDirty&&!T.$invalid)}),y=vue.computed(()=>Object.entries(e).some(([f,s])=>s?.$error)),h=vue.computed(()=>{let f=Object.entries(e);return !!f.length&&f.every(([s,T])=>T?.$ready)}),j=vue.computed(()=>Object.entries(e).some(([f,s])=>s?.$pending)),I=vue.computed(()=>r?Object.entries(e).map(([f,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([f,s])=>[f,s.$errors]))),M=vue.computed(()=>r?Object.entries(e).map(([f,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([f,s])=>[f,s.$silentErrors]))),w=vue.computed(()=>{let f=Object.entries(e);return !!f.length&&f.every(([s,T])=>T?.$edited)}),O=vue.computed(()=>Object.entries(e).some(([f,s])=>s?.$anyEdited)),l=vue.computed(()=>r?Object.values(e):e);function S(f){Object.values(e).forEach(s=>{s.$reset(f);});}function E(){Object.values(e).forEach(f=>{f.$touch();});}function D(f=true){return Object.values(e).map(s=>s.$extractDirtyFields(f))}function R(){Object.values(e).forEach(f=>{f.$clearExternalErrors();});}async function b(){try{let f=n.value;return {valid:(await Promise.allSettled(Object.values(e).map(V=>V.$validate()))).every(V=>V.status==="fulfilled"?V.value.valid===!0:!1),data:f}}catch{return {valid:false,data:n.value}}}return vue.reactive({...!r&&{$silentValue:a},$errors:I,$silentErrors:M,$instances:l,$value:n,$dirty:o,$anyDirty:i,$invalid:c,$correct:v,$error:y,$pending:j,$ready:h,$edited:w,$anyEdited:O,$reset:S,$touch:E,$validate:b,$extractDirtyFields:D,$clearExternalErrors:R})}function Kt(e){function t(r){let n=vue.computed(()=>vue.toValue(r));i();let a=vue.ref(c(e.value)),o=vue.reactive({r$:a});function i(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}vue.watch(n,i),vue.watch(e,v=>{a.value=c(v);},{deep:true});function c(v){if(n.value){let y=v[n.value]??{};return Ae(y,true)}else return Ae(v["~~global"]??{},true)}return {r$:o.r$}}return {useCollectScope:t}}function qt(e,t){let r=t??Ke;return {useScopedRegle:(a,o,i)=>{let{namespace:c,...v}=i??{},y=vue.computed(()=>vue.toValue(c)),h=vue.ref(`${Object.keys(e.value).length+1}-${Se()}`),j=vue.computed(()=>`instance-${h.value}`),{r$:I}=r(a,o,v);w(),Ct(M),vue.watch(y,(O,l)=>{M(l),w();}),vue.getCurrentInstance()&&vue.onMounted(()=>{let O=vue.getCurrentInstance();typeof window<"u"&&O?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(O?.proxy?.$el?.parentElement)&&M();});function M(O){let l=O??y.value;l?e.value[l]&&delete e.value[l][j.value]:e.value["~~global"][j.value]&&delete e.value["~~global"][j.value];}function w(){y.value?(e.value[y.value]||(e.value[y.value]={}),e.value[y.value][j.value]=I):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][j.value]=I);}return {r$:I,dispose:M,register:w}}}}function He(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):Ot(()=>vue.ref({"~~global":{}})))(),{useScopedRegle:n}=qt(r,e?.customUseRegle),{useCollectScope:a}=Kt(r);return {useScopedRegle:n,useCollectScope:a}}var {useCollectScope:ct,useScopedRegle:ft}=He();function Yt(e,t,r){let n=vue.computed(()=>vue.toValue(e)[t]);return vue.computed(()=>{let o=r.find(i=>{if(i[t]&&"literal"in i[t]){let c=i[t].literal;if(ye(c))return vue.unref(c._params?.[0])===n.value}});if(o)return o;{let i=r.find(c=>k(c[t])&&!Object.keys(c[t]).some(v=>v==="literal"));return i||{}}})}function Rt(e,t,r){return k(e[t])&&"$value"in e[t]&&e[t]?.$value===r}function Qt(e,t,r){let n;return Rt(e,t,r)&&(n=vue.toRef(e,t)),n}
|
|
2
|
-
exports.InternalRuleType=Je;exports.createRule=Qe;exports.createScopedUseRegle=He;exports.createVariant=Yt;exports.defineRegleConfig=Lt;exports.discriminateVariant=Rt;exports.flatErrors=tt;exports.inferRules=ut;exports.
|
|
1
|
+
'use strict';var vue=require('vue');function te(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var bt=Symbol("regle-rule");function er(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function N(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>N(n)))),r=="Map"&&(t=new Map([...e].map(n=>[N(n[0]),N(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,er(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=N(e[n]);}return t}function k(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function qe(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function _e(e,t,r){let n,a=(...o)=>new Promise(i=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(i);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a}var Je={Inline:"__inline",Async:"__async"};function Et(e,t){return e.some(r=>r[t])}function xt(e,t){return e.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[])}function re(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function Dt(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function It(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(i=>i.trim()).filter(i=>i.length>0).length:0}function Ye(e,...t){let{validator:r,type:n}=e,a=n===Je.Async||r.constructor.name==="AsyncFunction";return {...{validator(c,...v){return e.validator(c,...re(v.length?v:t))},message(c){return typeof e.message=="function"?e.message({...c,$params:re(c?.$params?.length?c.$params:t)}):e.message},active(c){return typeof e.active=="function"?e.active({...c,$params:re(c?.$params?.length?c.$params:t)}):e.active??true},tooltip(c){return typeof e.tooltip=="function"?e.tooltip({...c,$params:re(c?.$params?.length?c.$params:t)}):e.tooltip??[]},exec(c){let v=e.validator(c,...re(t)),y;return v instanceof Promise?v.then(T=>(y=T,typeof y=="object"&&"$valid"in y?y.$valid:typeof y=="boolean"?y:false)):(y=v,typeof y=="object"&&"$valid"in y?y.$valid:typeof y=="boolean"?y: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:bt}}function Qe(e){if(typeof e.validator=="function"){let r=Ye(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(It(e.validator)>1){let a=function(...o){return Ye(e,...o)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.tooltip=r.tooltip,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._tooltip=r.tooltip,a._type=e.type,a._message_pacthed=false,a._tooltip_pacthed=false,a._async=n,a}else return r}throw new Error("Validator must be a function")}function Xe(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),a=vue.shallowRef(new Map),o=vue.shallowRef(new Map);function i(S){let E=t.value.get(S);if(E)return E;{let D=vue.ref({});return t.value.set(S,D),D}}function c(S){let E=r.value.get(S);if(E)return E;{let D=vue.ref([]);return r.value.set(S,D),D}}function v(S,E,D){o.value.set(`${S}-${E}`,D);}function y(S,E){return o.value.get(`${S}-${E}`)}function T(S,E){S&&E!=null&&o.value.delete(`${S}-${E}`);}function j(S,E){n.value.set(S,E);}function I(S){return n.value.get(S)??false}function M(S,E){e.value.set(S,E);}function w(S,E){let D=e.value.get(S);return D?O(E,D)?{valid:true}:{valid:false}:void 0}function O(S,E){let D=Object.keys(E),R=Object.keys(S);return R.length!==D.length||!R.every(f=>D.includes(f))?false:R.every(f=>{let s=S[f],h=E[f];return !h||!s||typeof s=="function"||typeof h=="function"||typeof s=="number"||typeof s=="boolean"?false:s._params?s._params?.every((V,B)=>{if(typeof h=="number"||typeof h=="boolean")return true;{let U=re(h._params),X=re(s._params);return U?.[B]===X?.[B]}}):true})}function l(S){let E=a.value.get(S);if(E)return E;{let D=vue.ref(false),R=vue.ref(true),b=vue.ref({}),f=vue.ref(false);return a.value.set(S,{$pending:D,$valid:R,$metadata:b,$validating:f}),{$pending:D,$valid:R,$metadata:b,$validating:f}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:M,setDirtyEntry:j,checkRuleDeclEntry:w,getDirtyState:I,trySetRuleStatusRef:l,getFieldsEntry:i,getCollectionsEntry:c,getArrayStatus:y,addArrayStatus:v,deleteArrayStatus:T,arrayStatusStorage:o}}function ke(e){return k(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}}var Pe={LessThan:-1,EqualTo:0,GreaterThan:1};function ur(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let o=Number(r[a]),i=Number(n[a]);if(o>i)return Pe.GreaterThan;if(i>o)return Pe.LessThan;if(!isNaN(o)&&isNaN(i))return Pe.GreaterThan;if(isNaN(o)&&!isNaN(i))return Pe.LessThan}return Pe.EqualTo}var Ne=ur(vue.version,"3.5.0")!==-1;function cr(){return Math.floor(Math.random()*Date.now()).toString()}function Se(){return typeof window>"u"?cr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Ct(e){return vue.getCurrentScope()?(vue.onScopeDispose(e),true):false}function Ot(e){let t=false,r,n=vue.effectScope(true);return (...a)=>(t||(r=n.run(()=>e(...a)),t=true),r)}function Ge(e,t){return ke(e)||k(t.value)&&!te(t.value)&&!Object.entries(t.value).some(([r,n])=>ye(n)||typeof n=="function")}function wt(e,t,r=false){return !!e.value&&k(e.value)&&"$each"in e.value||r&&Array.isArray(t.value)&&t.value.some(k)||Array.isArray(t.value)&&t.value.some(k)}function Ue(e){return !!e.value&&k(e.value)}function ye(e){return k(e)&&"_validator"in e}function Ve(e){return typeof e.value!="function"}function Pt(e){return k(e)&&"$fields"in e}function Vt(e){return !!e&&"$rules"in e}function et({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Mt({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function At(e){return k(e)&&"$each"in e}function tt(e,t){let{includePath:r=false}=t??{};if(Array.isArray(e)&&e.every(n=>!k(n)))return e;if(At(e)){let n=r?e.$self?.map(o=>({error:o,path:""}))??[]:e.$self??[],a=e.$each?.map(o=>We(o,r))??[];return n?.concat(a.flat())}else return Object.entries(e).map(([n,a])=>We(a,r,[n])).flat()}function We(e,t=false,r){let n=t&&!r?[]:r;if(Array.isArray(e)&&e.every(a=>!k(a)))return t?e.map(a=>({error:a,path:n?.join(".")??""})):e;if(At(e)){let a=n?.length?e.$self?.map(i=>({error:i,path:n.join(".")}))??[]:e.$self??[],o=e.$each?.map((i,c)=>We(i,t,n?.concat(c.toString())))??[];return a?.concat(o.flat())}else return Object.entries(e).map(([a,o])=>We(o,t,n?.concat(a))).flat()}function Ft({customMessages:e,rule:t,ruleKey:r,state:n,path:a,storage:o,$debounce:i,modifiers:c}){let v=vue.effectScope(),y={},T,j=vue.ref(false),{$pending:I,$valid:M,$metadata:w,$validating:O}=o.trySetRuleStatusRef(`${a}.${r}`);function l(){v=vue.effectScope(),y=v.run(()=>{let s=vue.ref(false),h=vue.ref(false),V=vue.ref(true),B=vue.ref(false),U=vue.ref(false),X=vue.computed(()=>({$value:n.value,$error:h.value,$dirty:s.value,$pending:B.value,$correct:U.value,$invalid:V.value,$rule:{$valid:M.value,$invalid:!M.value,$pending:I.value},$params:p.value,...w.value})),oe=vue.computed(()=>Ve(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function C(x){let A="",K=e?e[r]?.[x]:void 0;if(K&&(typeof K=="function"?A=K(X.value):A=K),Ve(t)){let m=`_${x}_patched`;K&&!t.value[m]||(typeof t.value[x]=="function"?A=t.value[x](X.value):A=t.value[x]??"");}return A}let z=vue.computed(()=>{let x=C("message");return te(x)&&(x="This field is not valid"),x}),me=vue.computed(()=>C("tooltip")),ue=vue.computed(()=>Ve(t)&&t.value.type?t.value.type:r),u=vue.computed(()=>Ve(t)?t.value.validator:t.value),p=vue.computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),d=vue.computed(()=>`${a}.${ue.value}`);return {$active:oe,$message:z,$type:ue,$validator:u,$params:p,$path:d,$tooltip:me,$fieldCorrect:U,$fieldError:h,$fieldDirty:s,$fieldPending:B,$fieldInvalid:V}}),T=vue.watch(y?.$params,()=>{(c.$autoDirty.value||c.$rewardEarly.value&&y.$fieldError.value)&&R();});}l();function S(){M.value=true,y.$fieldDirty.value&&(I.value=true);}async function E(){let s=false;try{let h=y.$validator.value;if(typeof h!="function")return console.error(`${a}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let V=h(n.value,...y.$params.value),B=n.value;S();let U;if(V instanceof Promise?U=await V:U=V,n.value!==B)return !0;if(typeof U=="boolean")s=U;else {let{$valid:X,...oe}=U;s=X,w.value=oe;}}catch{s=false;}finally{I.value=false;}return s}let D=_e(E,i??200);async function R(){try{O.value=!0;let s=!1;if(ye(t.value)&&t.value._async)s=await D();else {let h=y.$validator.value,V=h(n.value,...y.$params.value);if(V 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(V!=null)if(typeof V=="boolean")s=V;else {let{$valid:B,...U}=V;s=B,w.value=U;}}return M.value=s,s}catch{return false}finally{O.value=false;}}function b(){M.value=true,w.value={},I.value=false,O.value=false,l();}function f(){T(),v.stop(),v=vue.effectScope();}return vue.reactive({...y,$pending:I,$valid:M,$metadata:w,$haveAsync:j,$validating:O,$parse:R,$unwatch:f,$watch:l,$reset:b})}function be({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:o,options:i,externalErrors:c,schemaErrors:v,schemaMode:y,onUnwatch:T,$isArray:j,initialState:I,shortcuts:M,onValidate:w}){let O=vue.effectScope(),l,S=[],E,D,R,b,f,s=()=>{};function h(){let $=t.value,F=o.checkRuleDeclEntry(n,$);z.value=Object.fromEntries(Object.entries($).filter(([g])=>g.startsWith("$"))),U(),C.value=Object.fromEntries(Object.entries(t.value).filter(([g])=>!g.startsWith("$")).map(([g,ee])=>{if(ee){let se=vue.toRef(()=>ee);return [g,Ft({modifiers:{$autoDirty:l.$autoDirty,$rewardEarly:l.$rewardEarly},customMessages:r,rule:se,ruleKey:g,state:e,path:n,storage:o,$debounce:z.value.$debounce})]}return []}).filter(g=>!!g.length)),l.processShortcuts(),V(),F?.valid!=null&&(l.$dirty.value=o.getDirtyState(n),(l.$dirty.value&&l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s()),o.addRuleDeclEntry(n,$);}function V(){s=l.$debounce.value?_e(oe,l.$debounce.value??l.$haveAnyAsyncRule?100:0):oe;}function B(){C.value&&Object.entries(C.value).forEach(([$,F])=>{F.$unwatch();}),R(),f?.(),l.$dirty.value&&o.setDirtyEntry(n,l.$dirty.value),E?.(),D?.(),O.stop(),O=vue.effectScope(),S.forEach($=>$.stop()),S=[],T?.(),b?.();}function U(){C.value&&Object.entries(C.value).forEach(([$,F])=>{F.$watch();}),l=O.run(()=>{let $=vue.ref(false),F=vue.ref(false),g=vue.computed(()=>$.value),ee=vue.computed(()=>z.value.$debounce),se=vue.computed(()=>z.value.$lazy!=null?z.value.$lazy:vue.unref(i.lazy)!=null?vue.unref(i.lazy):false),le=vue.computed(()=>z.value.$rewardEarly!=null?z.value.$rewardEarly:vue.unref(i.rewardEarly)!=null?vue.unref(i.rewardEarly):false),W=vue.computed(()=>z.value.$clearExternalErrorsOnChange!=null?z.value.$clearExternalErrorsOnChange:vue.unref(i.clearExternalErrorsOnChange)!=null?vue.unref(i.clearExternalErrorsOnChange):true),P=vue.computed(()=>z.value.$autoDirty!=null?z.value.$autoDirty:vue.unref(i.autoDirty)!=null?vue.unref(i.autoDirty):!le.value),H=vue.computed(()=>Object.entries(C.value).some(([ie,Q])=>Q.$validating)),Oe=vue.computed({get:()=>e.value,set(ie){E(),e.value=ie,X();}}),Fe=vue.computed(()=>ge.value&&!we.value&&$.value),dt=vue.computed(()=>et({field:{$rules:C.value,$error:Fe.value,$externalErrors:c?.value,$schemaErrors:v?.value}})),pt=vue.computed(()=>et({field:{$rules:C.value,$error:Fe.value,$externalErrors:c?.value,$schemaErrors:v?.value},silent:true})),ze=vue.computed(()=>$.value?I.value instanceof Date&&e.value instanceof Date?qe(I.value).getDate()!==qe(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),yt=vue.computed(()=>ze.value),mt=vue.computed(()=>Mt({field:{$rules:C.value}})),gt=vue.computed(()=>P.value?g.value&&!(ge.value||we.value):!(ge.value||we.value)),we=vue.computed(()=>F.value||!le.value?Object.entries(C.value).some(([ie,Q])=>Q.$pending):false),ge=vue.computed(()=>c?.value?.length||v?.value?.length?true:je.value?false:!le.value||le.value&&F.value?Object.entries(C.value).some(([ie,Q])=>!Q.$valid):false),vt=vue.computed(()=>a),je=vue.computed(()=>!!(te(C.value)&&!y)),$t=vue.computed(()=>c?.value?.length||je.value?false:$.value&&!te(e.value)&&!H.value?y?!v?.value?.length:Object.values(C.value).some(Q=>Q.$active)?Object.values(C.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),Xt=vue.computed(()=>Object.entries(C.value).some(([ie,Q])=>Q.$haveAsync));function Zt(){M?.fields&&Object.entries(M.fields).forEach(([ie,Q])=>{let Tt=vue.effectScope();St[ie]=Tt.run(()=>{let ht=vue.ref();return vue.watchEffect(()=>{ht.value=Q(vue.reactive({$dirty:$,$externalErrors:c?.value??[],$value:e,$silentValue:Oe,$rules:C,$error:Fe,$pending:we,$invalid:ge,$correct:$t,$errors:dt,$ready:gt,$silentErrors:pt,$anyDirty:g,$tooltips:mt,$name:vt,$inactive:je,$edited:ze,$anyEdited:yt}));}),ht}),S.push(Tt);});}let St={};return vue.watch(ge,ie=>{ie||(F.value=false);}),{$error:Fe,$pending:we,$invalid:ge,$correct:$t,$debounce:ee,$lazy:se,$errors:dt,$ready:gt,$silentErrors:pt,$rewardEarly:le,$autoDirty:P,$clearExternalErrorsOnChange:W,$anyDirty:g,$edited:ze,$anyEdited:yt,$name:vt,$haveAnyAsyncRule:Xt,$shortcuts:St,$validating:H,$tooltips:mt,$dirty:$,triggerPunishment:F,processShortcuts:Zt,$silentValue:Oe,$inactive:je}}),X(),R=vue.watch(l.$dirty,$=>{o.setDirtyEntry(n,$),Object.values(C.value).forEach(F=>{F.$fieldDirty=$;});}),f=vue.watch([l.$error,l.$correct,l.$invalid,l.$pending],()=>{Object.values(C.value).forEach($=>{$.$fieldError=l.$error.value,$.$fieldInvalid=l.$invalid.value,$.$fieldPending=l.$pending.value,$.$fieldCorrect=l.$correct.value;});}),D=vue.watch(l.$invalid,$=>{l.$rewardEarly.value&&!$&&(l.triggerPunishment.value=false);}),b=vue.watch(l.$haveAnyAsyncRule,V);}function X(){E=vue.watch(e,()=>{l.$autoDirty.value&&(l.$dirty.value||(l.$dirty.value=true)),t.value instanceof Function&&h(),(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s(),l.$rewardEarly.value!==true&&l.$clearExternalErrorsOnChange.value&&d();},{deep:j?true:Ne?1:true});}function oe(){Object.values(C.value).forEach($=>{$.$parse();});}let C=vue.ref({}),z=vue.ref({});h();function me($,F){if(d(),l.$dirty.value=false,l.triggerPunishment.value=false,o.setDirtyEntry(n,false),!F)if($?.toInitialState)B(),e.value=N(I);else if($?.toState){B();let g;typeof $?.toState=="function"?g=$?.toState():g=$?.toState,I.value=N(g),e.value=N(g);}else I.value=k(e.value)?N(e.value):Array.isArray(e.value)?[...e.value]:e.value;$?.clearExternalErrors&&d(),F||Object.entries(C.value).forEach(([g,ee])=>{ee.$reset();}),!l.$lazy.value&&l.$autoDirty.value&&Object.values(C.value).forEach(g=>g.$parse()),F||h();}function ue($=true,F=false){l.$dirty.value||(l.$dirty.value=true),F&&$?(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s():$&&s();}async function u(){try{if(y)return w?(ue(!1),w()):{valid:!1,data:e.value};let $=e.value;if(l.triggerPunishment.value=!0,!l.$dirty.value)l.$dirty.value=!0;else if(l.$autoDirty.value&&l.$dirty.value&&!l.$pending.value)return {valid:!l.$error.value,data:$};return y?{valid:!v?.value?.length,data:$}:te(C.value)?{valid:!0,data:$}:{valid:(await Promise.allSettled(Object.entries(C.value).map(([ee,se])=>se.$parse()))).every(ee=>ee.status==="fulfilled"?ee.value===!0:!1),data:$}}catch{return {valid:false,data:e.value}}}function p($=true){return l.$dirty.value?e.value:$?{_null:true}:null}function d(){c?.value?.length&&(c.value=[]);}!l.$lazy.value&&!l.$dirty.value&&l.$autoDirty.value&&s();let{$shortcuts:x,$validating:A,$autoDirty:K,$rewardEarly:m,$clearExternalErrorsOnChange:_,$haveAnyAsyncRule:q,$debounce:Z,$lazy:Y,triggerPunishment:fe,...ce}=l;return vue.reactive({...ce,$externalErrors:c,$value:e,$rules:C,...x,$reset:me,$touch:ue,$validate:u,$unwatch:B,$watch:U,$extractDirtyFields:p,$clearExternalErrors:d})}function at({$id:e,path:t,index:r,options:n,storage:a,stateValue:o,customMessages:i,rules:c,externalErrors:v,schemaErrors:y,initialState:T,shortcuts:j,fieldName:I,schemaMode:M}){let w=c.$key?c.$key:Se(),O=`${t}.${String(w)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?O=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let l=vue.toRef(v?.value??[],r),S=vue.computed(()=>y?.value?.[r]),E=Ee({state:o,rulesDef:vue.toRef(()=>c),customMessages:i,path:O,storage:a,options:n,externalErrors:l,schemaErrors:S,initialState:T,shortcuts:j,fieldName:I,schemaMode:M});if(E){let D=o.value?.$id;E.$id=D??String(w),a.addArrayStatus(e,E.$id,E);}return E}function Nt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:i,schemaErrors:c,schemaMode:v,initialState:y,shortcuts:T,fieldName:j}){let I=vue.effectScope(),M,w=vue.effectScope(),O,l=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let S=vue.ref(),E=vue.ref(e.value),D,R=vue.ref({}),b=a.getCollectionsEntry(n);O=w.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(p=>typeof p!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(p=>ye(p)||typeof p=="function"):false)})),f(),V();function f(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(S.value=Se(),Object.defineProperties(e.value,{$id:{value:S.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(S.value=e.value.$id)),E.value=R.value.$value,Array.isArray(e.value)&&!O.isPrimitiveArray.value?b.value=e.value.filter(u=>typeof u=="object").map((u,p)=>{let{scope:d,unwrapped:x}=Ze(t.value.$each,vue.toRef(()=>u),p);d&&l.push(d);let A=vue.toRef(y.value??[],p),K=vue.toRef(i?.value??{},"$each"),m=vue.computed(()=>c?.value?.$each),_=at({$id:S.value,path:n,customMessages:r,rules:x??{},stateValue:vue.toRef(()=>u),index:p,options:o,storage:a,externalErrors:K,schemaErrors:m,initialState:A,shortcuts:T,fieldName:j,schemaMode:v});return _||null}).filter(u=>!!u):b.value=[],R.value=be({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:vue.toRef(i?.value??{},"$self"),schemaErrors:vue.computed(()=>c?.value?.$self),$isArray:true,initialState:y,shortcuts:T,fieldName:j,schemaMode:v});}function s(){if(Array.isArray(e.value)&&!O.isPrimitiveArray.value){let u=N(b.value);b.value=e.value.filter(p=>typeof p=="object").map((p,d)=>{let x=vue.toRef(()=>p);if(p.$id&&b.value.find(A=>A.$id===p.$id)){let A=a.getArrayStatus(S.value,p.$id);return A?(A.$value=x,A):null}else {let{scope:A,unwrapped:K}=Ze(t.value.$each,x,d);A&&l.push(A);let m=vue.toRef(i?.value??{},"$each"),_=vue.computed(()=>c?.value?.$each??[]),q=at({$id:S.value,path:n,customMessages:r,rules:K??{},stateValue:x,index:d,options:o,storage:a,externalErrors:m,schemaErrors:_,initialState:vue.toRef(y.value??[],d),shortcuts:T,fieldName:j,schemaMode:v});return q||null}}).filter(p=>!!p),u.filter(p=>!e.value?.find(d=>p.$id===d.$id)).forEach((p,d)=>{a.deleteArrayStatus(S.value,d.toString());});}else b.value=[];}function h(){D=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?f():s();},{deep:Ne?1:true,flush:"pre"});}function V(){h(),I=vue.effectScope(),M=I.run(()=>{let u=vue.computed({get:()=>e.value,set(g){D(),e.value=g,h();}}),p=vue.computed(()=>R.value.$dirty&&(!b.value.length||b.value.every(g=>g.$dirty))),d=vue.computed(()=>R.value.$anyDirty||b.value.some(g=>g.$anyDirty)),x=vue.computed(()=>R.value.$invalid||b.value.some(g=>g.$invalid)),A=vue.computed(()=>(te(R.value.$rules)?true:R.value.$correct)&&(!b.value.length||b.value.every(g=>g.$correct||g.$anyDirty&&!g.$invalid))),K=vue.computed(()=>R.value.$error||b.value.some(g=>g.$error)),m=vue.computed(()=>!(x.value||_.value)),_=vue.computed(()=>R.value.$pending||b.value.some(g=>g.$pending)),q=vue.computed(()=>!!b.value.length&&b.value.every(g=>g.$edited)),Z=vue.computed(()=>R.value.$anyEdited||b.value.some(g=>g.$anyEdited)),Y=vue.computed(()=>({$self:R.value.$errors,$each:b.value.map(g=>g.$errors)})),fe=vue.computed(()=>({$self:R.value.$silentErrors,$each:b.value.map(g=>g.$silentErrors)})),ce=vue.computed(()=>j);function $(){T?.collections&&Object.entries(T?.collections).forEach(([g,ee])=>{let se=vue.effectScope();F[g]=se.run(()=>{let le=vue.ref();return vue.watchEffect(()=>{le.value=ee(vue.reactive({$dirty:p,$error:K,$silentValue:u,$pending:_,$invalid:x,$correct:A,$errors:Y,$ready:m,$silentErrors:fe,$anyDirty:d,$name:ce,$each:b,$self:R,$value:e,$edited:q,$anyEdited:Z}));}),le}),l.push(se);});}let F={};return $(),{$dirty:p,$anyDirty:d,$invalid:x,$correct:A,$error:K,$pending:_,$errors:Y,$silentErrors:fe,$ready:m,$name:ce,$shortcuts:F,$silentValue:u,$edited:q,$anyEdited:Z}}),O.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function B(){D&&D(),R.value&&R.value.$unwatch(),b.value&&b.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),I.stop(),I=vue.effectScope(),w.stop(),w=vue.effectScope(true),l.forEach(u=>u.stop()),l=[];}function U(u=true,p=false){R.value.$touch(u,p),b.value.forEach(d=>{d.$touch(u,p);});}function X(u,p){if(B(),!p)if(u?.toInitialState)e.value=N(y.value);else if(u?.toState){let d;typeof u?.toState=="function"?d=u?.toState():d=u?.toState,y.value=N(d),e.value=N(d);}else y.value=N(e.value);u?.clearExternalErrors&&C(),R.value.$reset(),b.value.forEach(d=>{d.$reset(u,true);}),p||f();}async function oe(){let u=e.value;try{return {valid:(await Promise.allSettled([R.value.$validate(),...b.value.map(x=>x.$validate())])).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:u}}catch{return {valid:false,data:u}}}function C(){R.value.$clearExternalErrors(),b.value.forEach(u=>{u.$clearExternalErrors();});}function z(u=true){let p=b.value.map(d=>{if(Pt(d))return d.$extractDirtyFields(u)});return u&&p.every(d=>te(d))&&(p=[]),p}let{$shortcuts:me,...ue}=M;return vue.reactive({$self:R,...ue,...me,$each:b,$value:e,$validate:oe,$unwatch:B,$watch:V,$touch:U,$reset:X,$extractDirtyFields:z,$clearExternalErrors:C})}function Be({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:a,schemaErrors:o,rootSchemaErrors:i,validationGroups:c,initialState:v,fieldName:y,...T}){let j=vue.effectScope(),I,M=[],w=null,O=null,l=null,S=null;async function D(u=true){let p=Object.entries(e.value),d=Object.fromEntries(p.filter(([m,_])=>!!_).map(([m,_])=>{if(_){let q=vue.toRef(t.value??{},m),Z=vue.toRef(()=>_),Y=vue.toRef(a?.value??{},m),fe=vue.computed(()=>o?.value?.[m]),ce=vue.toRef(v?.value??{},m);return [m,Ee({state:q,rulesDef:Z,path:r?`${r}.${m}`:m,externalErrors:Y,schemaErrors:fe,initialState:ce,fieldName:m,...T})]}return []})),x=Object.fromEntries(Object.entries(vue.unref(a)??{}).filter(([m,_])=>!(m in e.value)&&!!_).map(([m])=>{let _=vue.toRef(t.value??{},m),q=vue.toRef(a?.value??{},m),Z=vue.computed(()=>o?.value?.[m]),Y=vue.toRef(v?.value??{},m);return [m,Ee({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${m}`:m,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:m,...T})]})),A=Object.fromEntries(Object.entries(vue.unref(o)??{}).map(([m])=>{let _=vue.toRef(t.value??{},m),q=vue.toRef(a?.value??{},m),Z=vue.computed(()=>o?.value?.[m]),Y=vue.toRef(v?.value??{},m);return [m,Ee({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${m}`:m,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:m,...T})]})),K=Object.fromEntries(Object.entries(t.value??{}).filter(([m])=>!(m in e.value)&&!(m in(x??{}))&&!(m in(A??{}))).map(([m])=>{let _=vue.toRef(t.value??{},m),q=vue.toRef(a?.value??{},m),Z=vue.computed(()=>o?.value?.[m]),Y=vue.toRef(v?.value??{},m);return [m,Ee({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${m}`:m,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:m,...T})]}));R.value={...d,...x,...A,...K},u&&s();}let R=T.storage.getFieldsEntry(r);D();function b(){a&&(l=vue.watch(a,()=>{h(),D();},{deep:true}));}function f(){S=vue.watch(t,()=>{h(),D(),U(true,true);},{flush:"sync"});}function s(){n&&(w?.(),w=vue.watch(n,()=>{h(),D();},{deep:true,flush:"pre"}),b()),i&&(O?.(),O=vue.watch(i,()=>{h(),D();},{deep:true,flush:"post"})),f(),I=j.run(()=>{let u=vue.computed({get:()=>t.value,set(W){h(),t.value=W,D();}}),p=vue.computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).every(([W,P])=>P?.$dirty)),d=vue.computed(()=>Object.entries(R.value).some(([W,P])=>P?.$anyDirty)),x=vue.computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).some(([W,P])=>P?.$invalid)),A=vue.computed(()=>{let W=Object.entries(R.value).filter(([P,H])=>Vt(H)?!H.$inactive:true);return W.length?W.every(([P,H])=>H?.$correct||H.$anyDirty&&!H.$invalid):false}),K=vue.computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).some(([W,P])=>P?.$error)),m=vue.computed(()=>vue.unref(T.options.rewardEarly)!=null?vue.unref(T.options.rewardEarly):false),_=vue.computed(()=>vue.unref(T.options.autoDirty)!=null?vue.unref(T.options.autoDirty):!m.value),q=vue.computed(()=>_.value?d.value&&!(x.value||Y.value):!(x.value||Y.value)),Z=vue.ref(false),Y=vue.computed(()=>Z.value||Object.entries(R.value).some(([W,P])=>P?.$pending)),fe=vue.computed(()=>Object.fromEntries(Object.entries(R.value).map(([W,P])=>[W,P?.$errors]))),ce=vue.computed(()=>Object.fromEntries(Object.entries(R.value).map(([W,P])=>[W,P?.$silentErrors]))),$=vue.computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).every(([W,P])=>P?.$edited)),F=vue.computed(()=>Object.entries(R.value).some(([W,P])=>P?.$anyEdited)),g=vue.computed(()=>y);function ee(){T.shortcuts?.nested&&Object.entries(T.shortcuts.nested).forEach(([W,P])=>{let H=vue.effectScope();le[W]=H.run(()=>{let Oe=vue.ref();return vue.watchEffect(()=>{Oe.value=P(vue.reactive({$dirty:p,$value:t,$silentValue:u,$error:K,$pending:Y,$invalid:x,$correct:A,$ready:q,$anyDirty:d,$name:g,$silentErrors:ce,$errors:fe,$fields:R,$edited:$,$anyEdited:F}));}),Oe}),M.push(H);});}let se=vue.computed({get:()=>c?Object.fromEntries(Object.entries(c?.(R.value)??{}).map(([W,P])=>P.length?[W,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(H=>[H,Et(P,H)])),...Object.fromEntries(["$errors","$silentErrors"].map(H=>[H,xt(P,H)]))}]:[])):{},set(){}}),le={};return ee(),{$dirty:p,$anyDirty:d,$invalid:x,$correct:A,$error:K,$pending:Y,$errors:fe,$silentErrors:ce,$ready:q,$name:g,$shortcuts:le,$groups:se,$silentValue:u,$edited:$,$anyEdited:F,$localPending:Z}});}function h(){w?.(),l?.(),S?.(),O?.(),M=[],I={},R.value&&Object.entries(R.value).forEach(([u,p])=>{p.$unwatch();});}function V(){Object.entries(R.value).forEach(([u,p])=>{p.$clearExternalErrors();});}function B(u,p){if(l?.(),h(),!p)if(u?.toInitialState)t.value=N({...v.value??{}});else if(u?.toState){let d;typeof u?.toState=="function"?d=u?.toState():d=u?.toState,v.value=N(d),t.value=N(d);}else v.value=N(t.value);Object.values(R.value).forEach(d=>{d.$reset(u,true);}),u?.clearExternalErrors&&V(),b(),p||D();}function U(u=true,p=false){Object.values(R.value).forEach(d=>{d.$touch(u,p);});}function X(u){return u.filter(([p,d])=>k(d)?!(d&&typeof d=="object"&&"_null"in d)&&!te(d):Array.isArray(d)?d.length:true)}function oe(u=true){let p=Object.entries(R.value).map(([d,x])=>[d,x.$extractDirtyFields(u)]);return u&&(p=X(p)),Object.fromEntries(p)}async function C(){try{if(T.schemaMode)return T.onValidate?(U(!1),I.$localPending.value=!0,T.onValidate()):{valid:!1,data:t.value};{let u=t.value;return {valid:(await Promise.allSettled(Object.values(R.value).map(x=>x.$validate()))).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:u}}}catch{return {valid:false,data:t.value}}finally{I.$localPending.value=false;}}let{$shortcuts:z,$localPending:me,...ue}=I;return vue.reactive({...ue,...z,$fields:R,$value:t,$reset:B,$touch:U,$validate:C,$unwatch:h,$watch:s,$clearExternalErrors:V,$extractDirtyFields:oe})}function Ee({rulesDef:e,...t}){if(wt(e,t.state,t.schemaMode))return Nt({rulesDef:e,...t});if(Ge(t.state,e)){if(ke(t.state))return Be({rulesDef:e,...t});{let n=vue.effectScope().run(()=>{let i=vue.toRef(t.state.value?t.state:vue.ref({}));return vue.watch(()=>t.state.value,c=>{i.value=c;},{deep:true}),vue.watch(i,c=>{t.state.value=c;},{deep:true}),{fakeState:i}}),{state:a,...o}=t;return Be({rulesDef:e,...o,state:n.fakeState})}}else if(Ue(e))return be({rulesDef:e,...t})}function Ce({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:o,schemaErrors:i,schemaMode:c=false,onValidate:v}){let y=Xe(),T=vue.ref();return Ge(n,r)?T.value=Be({rootRules:r,rulesDef:r,state:n,customMessages:a?.(),storage:y,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaErrors:i,rootSchemaErrors:i,schemaMode:c,onValidate:v}):Ue(r)&&(T.value=be({rulesDef:r,state:n,customMessages:a?.(),storage:y,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaMode:c,schemaErrors:i,onValidate:v})),vue.getCurrentScope()&&vue.onScopeDispose(()=>{T.value?.$unwatch();}),vue.reactive({regle:T})}function st(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function a(o,i,c){let v=vue.isRef(i)?i:vue.computed(typeof i=="function"?i:()=>i),y={...n,...c},T=vue.isRef(o)?o:vue.ref(o),j=vue.ref(k(T.value)?{...N(T.value)}:N(T.value));return {r$:Ce({scopeRules:v,state:T,options:y,initialState:j,customRules:e,shortcuts:r}).regle}}return a}var Ke=st();function it(){function e(t,r){return r}return e}var ut=it();function Lt({rules:e,modifiers:t,shortcuts:r}){let n=st(e,t,r),a=it();return {useRegle:n,inferRules:a}}function Ae(e,t){let r=t??false,n=vue.computed({get:()=>r?Object.values(e).map(f=>f.$value):Object.fromEntries(Object.entries(e).map(([f,s])=>[f,s.$value])),set:f=>{r||typeof f=="object"&&Object.entries(f).forEach(([s,h])=>e[s].$value=h);}}),a=vue.computed({get:()=>Object.fromEntries(Object.entries(e).map(([f,s])=>[f,s.$silentValue])),set:f=>{typeof f=="object"&&Object.entries(f).forEach(([s,h])=>e[s].$silentValue=h);}}),o=vue.computed(()=>{let f=Object.entries(e);return !!f.length&&f.every(([s,h])=>h?.$dirty)}),i=vue.computed(()=>Object.entries(e).some(([f,s])=>s?.$anyDirty)),c=vue.computed(()=>Object.entries(e).some(([f,s])=>s?.$invalid)),v=vue.computed(()=>{let f=Object.entries(e);return !!f.length&&f.every(([s,h])=>h?.$correct||h.$anyDirty&&!h.$invalid)}),y=vue.computed(()=>Object.entries(e).some(([f,s])=>s?.$error)),T=vue.computed(()=>{let f=Object.entries(e);return !!f.length&&f.every(([s,h])=>h?.$ready)}),j=vue.computed(()=>Object.entries(e).some(([f,s])=>s?.$pending)),I=vue.computed(()=>r?Object.entries(e).map(([f,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([f,s])=>[f,s.$errors]))),M=vue.computed(()=>r?Object.entries(e).map(([f,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([f,s])=>[f,s.$silentErrors]))),w=vue.computed(()=>{let f=Object.entries(e);return !!f.length&&f.every(([s,h])=>h?.$edited)}),O=vue.computed(()=>Object.entries(e).some(([f,s])=>s?.$anyEdited)),l=vue.computed(()=>r?Object.values(e):e);function S(f){Object.values(e).forEach(s=>{s.$reset(f);});}function E(){Object.values(e).forEach(f=>{f.$touch();});}function D(f=true){return Object.values(e).map(s=>s.$extractDirtyFields(f))}function R(){Object.values(e).forEach(f=>{f.$clearExternalErrors();});}async function b(){try{let f=n.value;return {valid:(await Promise.allSettled(Object.values(e).map(V=>V.$validate()))).every(V=>V.status==="fulfilled"?V.value.valid===!0:!1),data:f}}catch{return {valid:false,data:n.value}}}return vue.reactive({...!r&&{$silentValue:a},$errors:I,$silentErrors:M,$instances:l,$value:n,$dirty:o,$anyDirty:i,$invalid:c,$correct:v,$error:y,$pending:j,$ready:T,$edited:w,$anyEdited:O,$reset:S,$touch:E,$validate:b,$extractDirtyFields:D,$clearExternalErrors:R})}function Kt(e){function t(r){let n=vue.computed(()=>vue.toValue(r));i();let a=vue.ref(c(e.value)),o=vue.reactive({r$:a});function i(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}vue.watch(n,i),vue.watch(e,v=>{a.value=c(v);},{deep:true});function c(v){if(n.value){let y=v[n.value]??{};return Ae(y,true)}else return Ae(v["~~global"]??{},true)}return {r$:o.r$}}return {useCollectScope:t}}function qt(e,t){let r=t??Ke;return {useScopedRegle:(a,o,i)=>{let{namespace:c,...v}=i??{},y=vue.computed(()=>vue.toValue(c)),T=vue.ref(`${Object.keys(e.value).length+1}-${Se()}`),j=vue.computed(()=>`instance-${T.value}`),{r$:I}=r(a,o,v);w(),Ct(M),vue.watch(y,(O,l)=>{M(l),w();}),vue.getCurrentInstance()&&vue.onMounted(()=>{let O=vue.getCurrentInstance();typeof window<"u"&&O?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(O?.proxy?.$el?.parentElement)&&M();});function M(O){let l=O??y.value;l?e.value[l]&&delete e.value[l][j.value]:e.value["~~global"][j.value]&&delete e.value["~~global"][j.value];}function w(){y.value?(e.value[y.value]||(e.value[y.value]={}),e.value[y.value][j.value]=I):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][j.value]=I);}return {r$:I,dispose:M,register:w}}}}function He(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):Ot(()=>vue.ref({"~~global":{}})))(),{useScopedRegle:n}=qt(r,e?.customUseRegle),{useCollectScope:a}=Kt(r);return {useScopedRegle:n,useCollectScope:a}}var {useCollectScope:ct,useScopedRegle:ft}=He();function Yt(e,t,r){let n=vue.computed(()=>vue.toValue(e)[t]);return vue.computed(()=>{let o=r.find(i=>{if(i[t]&&"literal"in i[t]){let c=i[t].literal;if(ye(c))return vue.unref(c._params?.[0])===n.value}});if(o)return o;{let i=r.find(c=>k(c[t])&&!Object.keys(c[t]).some(v=>v==="literal"));return i||{}}})}function Rt(e,t,r){return k(e[t])&&"$value"in e[t]&&e[t]?.$value===r}function Qt(e,t,r){let n;return Rt(e,t,r)&&(n=vue.toRef(e)),n}
|
|
2
|
+
exports.InternalRuleType=Je;exports.createRule=Qe;exports.createScopedUseRegle=He;exports.createVariant=Yt;exports.defineRegleConfig=Lt;exports.discriminateVariant=Rt;exports.flatErrors=tt;exports.inferRules=ut;exports.inferVariantToRef=Qt;exports.mergeRegles=Ae;exports.unwrapRuleParameters=re;exports.useCollectScope=ct;exports.useRegle=Ke;exports.useRootStorage=Ce;exports.useScopedRegle=ft;
|
package/dist/regle-core.min.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {effectScope,computed,toValue,ref,watch,getCurrentInstance,onMounted,reactive,getCurrentScope,onScopeDispose,isRef,shallowRef,toRef,unref,watchEffect,version}from'vue';function te(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var bt=Symbol("regle-rule");function er(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function N(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>N(n)))),r=="Map"&&(t=new Map([...e].map(n=>[N(n[0]),N(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,er(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=N(e[n]);}return t}function k(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function qe(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function _e(e,t,r){let n,a=(...o)=>new Promise(i=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(i);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a}var Je={Inline:"__inline",Async:"__async"};function Et(e,t){return e.some(r=>r[t])}function xt(e,t){return e.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[])}function re(e){try{return e.map(t=>toValue(t))}catch{return []}}function Dt(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function It(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(i=>i.trim()).filter(i=>i.length>0).length:0}function Ye(e,...t){let{validator:r,type:n}=e,a=n===Je.Async||r.constructor.name==="AsyncFunction";return {...{validator(c,...v){return e.validator(c,...re(v.length?v:t))},message(c){return typeof e.message=="function"?e.message({...c,$params:re(c?.$params?.length?c.$params:t)}):e.message},active(c){return typeof e.active=="function"?e.active({...c,$params:re(c?.$params?.length?c.$params:t)}):e.active??true},tooltip(c){return typeof e.tooltip=="function"?e.tooltip({...c,$params:re(c?.$params?.length?c.$params:t)}):e.tooltip??[]},exec(c){let v=e.validator(c,...re(t)),y;return v instanceof Promise?v.then(h=>(y=h,typeof y=="object"&&"$valid"in y?y.$valid:typeof y=="boolean"?y:false)):(y=v,typeof y=="object"&&"$valid"in y?y.$valid:typeof y=="boolean"?y: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:bt}}function Qe(e){if(typeof e.validator=="function"){let r=Ye(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(It(e.validator)>1){let a=function(...o){return Ye(e,...o)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.tooltip=r.tooltip,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._tooltip=r.tooltip,a._type=e.type,a._message_pacthed=false,a._tooltip_pacthed=false,a._async=n,a}else return r}throw new Error("Validator must be a function")}function Xe(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),a=shallowRef(new Map),o=shallowRef(new Map);function i(S){let E=t.value.get(S);if(E)return E;{let D=ref({});return t.value.set(S,D),D}}function c(S){let E=r.value.get(S);if(E)return E;{let D=ref([]);return r.value.set(S,D),D}}function v(S,E,D){o.value.set(`${S}-${E}`,D);}function y(S,E){return o.value.get(`${S}-${E}`)}function h(S,E){S&&E!=null&&o.value.delete(`${S}-${E}`);}function j(S,E){n.value.set(S,E);}function I(S){return n.value.get(S)??false}function M(S,E){e.value.set(S,E);}function w(S,E){let D=e.value.get(S);return D?O(E,D)?{valid:true}:{valid:false}:void 0}function O(S,E){let D=Object.keys(E),R=Object.keys(S);return R.length!==D.length||!R.every(f=>D.includes(f))?false:R.every(f=>{let s=S[f],T=E[f];return !T||!s||typeof s=="function"||typeof T=="function"||typeof s=="number"||typeof s=="boolean"?false:s._params?s._params?.every((V,B)=>{if(typeof T=="number"||typeof T=="boolean")return true;{let U=re(T._params),X=re(s._params);return U?.[B]===X?.[B]}}):true})}function l(S){let E=a.value.get(S);if(E)return E;{let D=ref(false),R=ref(true),b=ref({}),f=ref(false);return a.value.set(S,{$pending:D,$valid:R,$metadata:b,$validating:f}),{$pending:D,$valid:R,$metadata:b,$validating:f}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:M,setDirtyEntry:j,checkRuleDeclEntry:w,getDirtyState:I,trySetRuleStatusRef:l,getFieldsEntry:i,getCollectionsEntry:c,getArrayStatus:y,addArrayStatus:v,deleteArrayStatus:h,arrayStatusStorage:o}}function ke(e){return k(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}}var Pe={LessThan:-1,EqualTo:0,GreaterThan:1};function ur(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let o=Number(r[a]),i=Number(n[a]);if(o>i)return Pe.GreaterThan;if(i>o)return Pe.LessThan;if(!isNaN(o)&&isNaN(i))return Pe.GreaterThan;if(isNaN(o)&&!isNaN(i))return Pe.LessThan}return Pe.EqualTo}var Ne=ur(version,"3.5.0")!==-1;function cr(){return Math.floor(Math.random()*Date.now()).toString()}function Se(){return typeof window>"u"?cr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Ct(e){return getCurrentScope()?(onScopeDispose(e),true):false}function Ot(e){let t=false,r,n=effectScope(true);return (...a)=>(t||(r=n.run(()=>e(...a)),t=true),r)}function Ge(e,t){return ke(e)||k(t.value)&&!te(t.value)&&!Object.entries(t.value).some(([r,n])=>ye(n)||typeof n=="function")}function wt(e,t,r=false){return !!e.value&&k(e.value)&&"$each"in e.value||r&&Array.isArray(t.value)&&t.value.some(k)||Array.isArray(t.value)&&t.value.some(k)}function Ue(e){return !!e.value&&k(e.value)}function ye(e){return k(e)&&"_validator"in e}function Ve(e){return typeof e.value!="function"}function Pt(e){return k(e)&&"$fields"in e}function Vt(e){return !!e&&"$rules"in e}function et({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Mt({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function At(e){return k(e)&&"$each"in e}function tt(e,t){let{includePath:r=false}=t??{};if(Array.isArray(e)&&e.every(n=>!k(n)))return e;if(At(e)){let n=r?e.$self?.map(o=>({error:o,path:""}))??[]:e.$self??[],a=e.$each?.map(o=>We(o,r))??[];return n?.concat(a.flat())}else return Object.entries(e).map(([n,a])=>We(a,r,[n])).flat()}function We(e,t=false,r){let n=t&&!r?[]:r;if(Array.isArray(e)&&e.every(a=>!k(a)))return t?e.map(a=>({error:a,path:n?.join(".")??""})):e;if(At(e)){let a=n?.length?e.$self?.map(i=>({error:i,path:n.join(".")}))??[]:e.$self??[],o=e.$each?.map((i,c)=>We(i,t,n?.concat(c.toString())))??[];return a?.concat(o.flat())}else return Object.entries(e).map(([a,o])=>We(o,t,n?.concat(a))).flat()}function Ft({customMessages:e,rule:t,ruleKey:r,state:n,path:a,storage:o,$debounce:i,modifiers:c}){let v=effectScope(),y={},h,j=ref(false),{$pending:I,$valid:M,$metadata:w,$validating:O}=o.trySetRuleStatusRef(`${a}.${r}`);function l(){v=effectScope(),y=v.run(()=>{let s=ref(false),T=ref(false),V=ref(true),B=ref(false),U=ref(false),X=computed(()=>({$value:n.value,$error:T.value,$dirty:s.value,$pending:B.value,$correct:U.value,$invalid:V.value,$rule:{$valid:M.value,$invalid:!M.value,$pending:I.value},$params:p.value,...w.value})),oe=computed(()=>Ve(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function C(x){let A="",K=e?e[r]?.[x]:void 0;if(K&&(typeof K=="function"?A=K(X.value):A=K),Ve(t)){let m=`_${x}_patched`;K&&!t.value[m]||(typeof t.value[x]=="function"?A=t.value[x](X.value):A=t.value[x]??"");}return A}let z=computed(()=>{let x=C("message");return te(x)&&(x="This field is not valid"),x}),me=computed(()=>C("tooltip")),ue=computed(()=>Ve(t)&&t.value.type?t.value.type:r),u=computed(()=>Ve(t)?t.value.validator:t.value),p=computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),d=computed(()=>`${a}.${ue.value}`);return {$active:oe,$message:z,$type:ue,$validator:u,$params:p,$path:d,$tooltip:me,$fieldCorrect:U,$fieldError:T,$fieldDirty:s,$fieldPending:B,$fieldInvalid:V}}),h=watch(y?.$params,()=>{(c.$autoDirty.value||c.$rewardEarly.value&&y.$fieldError.value)&&R();});}l();function S(){M.value=true,y.$fieldDirty.value&&(I.value=true);}async function E(){let s=false;try{let T=y.$validator.value;if(typeof T!="function")return console.error(`${a}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let V=T(n.value,...y.$params.value),B=n.value;S();let U;if(V instanceof Promise?U=await V:U=V,n.value!==B)return !0;if(typeof U=="boolean")s=U;else {let{$valid:X,...oe}=U;s=X,w.value=oe;}}catch{s=false;}finally{I.value=false;}return s}let D=_e(E,i??200);async function R(){try{O.value=!0;let s=!1;if(ye(t.value)&&t.value._async)s=await D();else {let T=y.$validator.value,V=T(n.value,...y.$params.value);if(V 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(V!=null)if(typeof V=="boolean")s=V;else {let{$valid:B,...U}=V;s=B,w.value=U;}}return M.value=s,s}catch{return false}finally{O.value=false;}}function b(){M.value=true,w.value={},I.value=false,O.value=false,l();}function f(){h(),v.stop(),v=effectScope();}return reactive({...y,$pending:I,$valid:M,$metadata:w,$haveAsync:j,$validating:O,$parse:R,$unwatch:f,$watch:l,$reset:b})}function be({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:o,options:i,externalErrors:c,schemaErrors:v,schemaMode:y,onUnwatch:h,$isArray:j,initialState:I,shortcuts:M,onValidate:w}){let O=effectScope(),l,S=[],E,D,R,b,f,s=()=>{};function T(){let $=t.value,F=o.checkRuleDeclEntry(n,$);z.value=Object.fromEntries(Object.entries($).filter(([g])=>g.startsWith("$"))),U(),C.value=Object.fromEntries(Object.entries(t.value).filter(([g])=>!g.startsWith("$")).map(([g,ee])=>{if(ee){let se=toRef(()=>ee);return [g,Ft({modifiers:{$autoDirty:l.$autoDirty,$rewardEarly:l.$rewardEarly},customMessages:r,rule:se,ruleKey:g,state:e,path:n,storage:o,$debounce:z.value.$debounce})]}return []}).filter(g=>!!g.length)),l.processShortcuts(),V(),F?.valid!=null&&(l.$dirty.value=o.getDirtyState(n),(l.$dirty.value&&l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s()),o.addRuleDeclEntry(n,$);}function V(){s=l.$debounce.value?_e(oe,l.$debounce.value??l.$haveAnyAsyncRule?100:0):oe;}function B(){C.value&&Object.entries(C.value).forEach(([$,F])=>{F.$unwatch();}),R(),f?.(),l.$dirty.value&&o.setDirtyEntry(n,l.$dirty.value),E?.(),D?.(),O.stop(),O=effectScope(),S.forEach($=>$.stop()),S=[],h?.(),b?.();}function U(){C.value&&Object.entries(C.value).forEach(([$,F])=>{F.$watch();}),l=O.run(()=>{let $=ref(false),F=ref(false),g=computed(()=>$.value),ee=computed(()=>z.value.$debounce),se=computed(()=>z.value.$lazy!=null?z.value.$lazy:unref(i.lazy)!=null?unref(i.lazy):false),le=computed(()=>z.value.$rewardEarly!=null?z.value.$rewardEarly:unref(i.rewardEarly)!=null?unref(i.rewardEarly):false),W=computed(()=>z.value.$clearExternalErrorsOnChange!=null?z.value.$clearExternalErrorsOnChange:unref(i.clearExternalErrorsOnChange)!=null?unref(i.clearExternalErrorsOnChange):true),P=computed(()=>z.value.$autoDirty!=null?z.value.$autoDirty:unref(i.autoDirty)!=null?unref(i.autoDirty):!le.value),H=computed(()=>Object.entries(C.value).some(([ie,Q])=>Q.$validating)),Oe=computed({get:()=>e.value,set(ie){E(),e.value=ie,X();}}),Fe=computed(()=>ge.value&&!we.value&&$.value),dt=computed(()=>et({field:{$rules:C.value,$error:Fe.value,$externalErrors:c?.value,$schemaErrors:v?.value}})),pt=computed(()=>et({field:{$rules:C.value,$error:Fe.value,$externalErrors:c?.value,$schemaErrors:v?.value},silent:true})),ze=computed(()=>$.value?I.value instanceof Date&&e.value instanceof Date?qe(I.value).getDate()!==qe(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),yt=computed(()=>ze.value),mt=computed(()=>Mt({field:{$rules:C.value}})),gt=computed(()=>P.value?g.value&&!(ge.value||we.value):!(ge.value||we.value)),we=computed(()=>F.value||!le.value?Object.entries(C.value).some(([ie,Q])=>Q.$pending):false),ge=computed(()=>c?.value?.length||v?.value?.length?true:je.value?false:!le.value||le.value&&F.value?Object.entries(C.value).some(([ie,Q])=>!Q.$valid):false),vt=computed(()=>a),je=computed(()=>!!(te(C.value)&&!y)),$t=computed(()=>c?.value?.length||je.value?false:$.value&&!te(e.value)&&!H.value?y?!v?.value?.length:Object.values(C.value).some(Q=>Q.$active)?Object.values(C.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),Xt=computed(()=>Object.entries(C.value).some(([ie,Q])=>Q.$haveAsync));function Zt(){M?.fields&&Object.entries(M.fields).forEach(([ie,Q])=>{let ht=effectScope();St[ie]=ht.run(()=>{let Tt=ref();return watchEffect(()=>{Tt.value=Q(reactive({$dirty:$,$externalErrors:c?.value??[],$value:e,$silentValue:Oe,$rules:C,$error:Fe,$pending:we,$invalid:ge,$correct:$t,$errors:dt,$ready:gt,$silentErrors:pt,$anyDirty:g,$tooltips:mt,$name:vt,$inactive:je,$edited:ze,$anyEdited:yt}));}),Tt}),S.push(ht);});}let St={};return watch(ge,ie=>{ie||(F.value=false);}),{$error:Fe,$pending:we,$invalid:ge,$correct:$t,$debounce:ee,$lazy:se,$errors:dt,$ready:gt,$silentErrors:pt,$rewardEarly:le,$autoDirty:P,$clearExternalErrorsOnChange:W,$anyDirty:g,$edited:ze,$anyEdited:yt,$name:vt,$haveAnyAsyncRule:Xt,$shortcuts:St,$validating:H,$tooltips:mt,$dirty:$,triggerPunishment:F,processShortcuts:Zt,$silentValue:Oe,$inactive:je}}),X(),R=watch(l.$dirty,$=>{o.setDirtyEntry(n,$),Object.values(C.value).forEach(F=>{F.$fieldDirty=$;});}),f=watch([l.$error,l.$correct,l.$invalid,l.$pending],()=>{Object.values(C.value).forEach($=>{$.$fieldError=l.$error.value,$.$fieldInvalid=l.$invalid.value,$.$fieldPending=l.$pending.value,$.$fieldCorrect=l.$correct.value;});}),D=watch(l.$invalid,$=>{l.$rewardEarly.value&&!$&&(l.triggerPunishment.value=false);}),b=watch(l.$haveAnyAsyncRule,V);}function X(){E=watch(e,()=>{l.$autoDirty.value&&(l.$dirty.value||(l.$dirty.value=true)),t.value instanceof Function&&T(),(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s(),l.$rewardEarly.value!==true&&l.$clearExternalErrorsOnChange.value&&d();},{deep:j?true:Ne?1:true});}function oe(){Object.values(C.value).forEach($=>{$.$parse();});}let C=ref({}),z=ref({});T();function me($,F){if(d(),l.$dirty.value=false,l.triggerPunishment.value=false,o.setDirtyEntry(n,false),!F)if($?.toInitialState)B(),e.value=N(I);else if($?.toState){B();let g;typeof $?.toState=="function"?g=$?.toState():g=$?.toState,I.value=N(g),e.value=N(g);}else I.value=k(e.value)?N(e.value):Array.isArray(e.value)?[...e.value]:e.value;$?.clearExternalErrors&&d(),F||Object.entries(C.value).forEach(([g,ee])=>{ee.$reset();}),!l.$lazy.value&&l.$autoDirty.value&&Object.values(C.value).forEach(g=>g.$parse()),F||T();}function ue($=true,F=false){l.$dirty.value||(l.$dirty.value=true),F&&$?(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s():$&&s();}async function u(){try{if(y)return w?(ue(!1),w()):{valid:!1,data:e.value};let $=e.value;if(l.triggerPunishment.value=!0,!l.$dirty.value)l.$dirty.value=!0;else if(l.$autoDirty.value&&l.$dirty.value&&!l.$pending.value)return {valid:!l.$error.value,data:$};return y?{valid:!v?.value?.length,data:$}:te(C.value)?{valid:!0,data:$}:{valid:(await Promise.allSettled(Object.entries(C.value).map(([ee,se])=>se.$parse()))).every(ee=>ee.status==="fulfilled"?ee.value===!0:!1),data:$}}catch{return {valid:false,data:e.value}}}function p($=true){return l.$dirty.value?e.value:$?{_null:true}:null}function d(){c?.value?.length&&(c.value=[]);}!l.$lazy.value&&!l.$dirty.value&&l.$autoDirty.value&&s();let{$shortcuts:x,$validating:A,$autoDirty:K,$rewardEarly:m,$clearExternalErrorsOnChange:_,$haveAnyAsyncRule:q,$debounce:Z,$lazy:Y,triggerPunishment:fe,...ce}=l;return reactive({...ce,$externalErrors:c,$value:e,$rules:C,...x,$reset:me,$touch:ue,$validate:u,$unwatch:B,$watch:U,$extractDirtyFields:p,$clearExternalErrors:d})}function at({$id:e,path:t,index:r,options:n,storage:a,stateValue:o,customMessages:i,rules:c,externalErrors:v,schemaErrors:y,initialState:h,shortcuts:j,fieldName:I,schemaMode:M}){let w=c.$key?c.$key:Se(),O=`${t}.${String(w)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?O=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let l=toRef(v?.value??[],r),S=computed(()=>y?.value?.[r]),E=Ee({state:o,rulesDef:toRef(()=>c),customMessages:i,path:O,storage:a,options:n,externalErrors:l,schemaErrors:S,initialState:h,shortcuts:j,fieldName:I,schemaMode:M});if(E){let D=o.value?.$id;E.$id=D??String(w),a.addArrayStatus(e,E.$id,E);}return E}function Nt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:i,schemaErrors:c,schemaMode:v,initialState:y,shortcuts:h,fieldName:j}){let I=effectScope(),M,w=effectScope(),O,l=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let S=ref(),E=ref(e.value),D,R=ref({}),b=a.getCollectionsEntry(n);O=w.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(p=>typeof p!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(p=>ye(p)||typeof p=="function"):false)})),f(),V();function f(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(S.value=Se(),Object.defineProperties(e.value,{$id:{value:S.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(S.value=e.value.$id)),E.value=R.value.$value,Array.isArray(e.value)&&!O.isPrimitiveArray.value?b.value=e.value.filter(u=>typeof u=="object").map((u,p)=>{let{scope:d,unwrapped:x}=Ze(t.value.$each,toRef(()=>u),p);d&&l.push(d);let A=toRef(y.value??[],p),K=toRef(i?.value??{},"$each"),m=computed(()=>c?.value?.$each),_=at({$id:S.value,path:n,customMessages:r,rules:x??{},stateValue:toRef(()=>u),index:p,options:o,storage:a,externalErrors:K,schemaErrors:m,initialState:A,shortcuts:h,fieldName:j,schemaMode:v});return _||null}).filter(u=>!!u):b.value=[],R.value=be({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:toRef(i?.value??{},"$self"),schemaErrors:computed(()=>c?.value?.$self),$isArray:true,initialState:y,shortcuts:h,fieldName:j,schemaMode:v});}function s(){if(Array.isArray(e.value)&&!O.isPrimitiveArray.value){let u=N(b.value);b.value=e.value.filter(p=>typeof p=="object").map((p,d)=>{let x=toRef(()=>p);if(p.$id&&b.value.find(A=>A.$id===p.$id)){let A=a.getArrayStatus(S.value,p.$id);return A?(A.$value=x,A):null}else {let{scope:A,unwrapped:K}=Ze(t.value.$each,x,d);A&&l.push(A);let m=toRef(i?.value??{},"$each"),_=computed(()=>c?.value?.$each??[]),q=at({$id:S.value,path:n,customMessages:r,rules:K??{},stateValue:x,index:d,options:o,storage:a,externalErrors:m,schemaErrors:_,initialState:toRef(y.value??[],d),shortcuts:h,fieldName:j,schemaMode:v});return q||null}}).filter(p=>!!p),u.filter(p=>!e.value?.find(d=>p.$id===d.$id)).forEach((p,d)=>{a.deleteArrayStatus(S.value,d.toString());});}else b.value=[];}function T(){D=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?f():s();},{deep:Ne?1:true,flush:"pre"});}function V(){T(),I=effectScope(),M=I.run(()=>{let u=computed({get:()=>e.value,set(g){D(),e.value=g,T();}}),p=computed(()=>R.value.$dirty&&(!b.value.length||b.value.every(g=>g.$dirty))),d=computed(()=>R.value.$anyDirty||b.value.some(g=>g.$anyDirty)),x=computed(()=>R.value.$invalid||b.value.some(g=>g.$invalid)),A=computed(()=>(te(R.value.$rules)?true:R.value.$correct)&&(!b.value.length||b.value.every(g=>g.$correct||g.$anyDirty&&!g.$invalid))),K=computed(()=>R.value.$error||b.value.some(g=>g.$error)),m=computed(()=>!(x.value||_.value)),_=computed(()=>R.value.$pending||b.value.some(g=>g.$pending)),q=computed(()=>!!b.value.length&&b.value.every(g=>g.$edited)),Z=computed(()=>R.value.$anyEdited||b.value.some(g=>g.$anyEdited)),Y=computed(()=>({$self:R.value.$errors,$each:b.value.map(g=>g.$errors)})),fe=computed(()=>({$self:R.value.$silentErrors,$each:b.value.map(g=>g.$silentErrors)})),ce=computed(()=>j);function $(){h?.collections&&Object.entries(h?.collections).forEach(([g,ee])=>{let se=effectScope();F[g]=se.run(()=>{let le=ref();return watchEffect(()=>{le.value=ee(reactive({$dirty:p,$error:K,$silentValue:u,$pending:_,$invalid:x,$correct:A,$errors:Y,$ready:m,$silentErrors:fe,$anyDirty:d,$name:ce,$each:b,$self:R,$value:e,$edited:q,$anyEdited:Z}));}),le}),l.push(se);});}let F={};return $(),{$dirty:p,$anyDirty:d,$invalid:x,$correct:A,$error:K,$pending:_,$errors:Y,$silentErrors:fe,$ready:m,$name:ce,$shortcuts:F,$silentValue:u,$edited:q,$anyEdited:Z}}),O.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function B(){D&&D(),R.value&&R.value.$unwatch(),b.value&&b.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),I.stop(),I=effectScope(),w.stop(),w=effectScope(true),l.forEach(u=>u.stop()),l=[];}function U(u=true,p=false){R.value.$touch(u,p),b.value.forEach(d=>{d.$touch(u,p);});}function X(u,p){if(B(),!p)if(u?.toInitialState)e.value=N(y.value);else if(u?.toState){let d;typeof u?.toState=="function"?d=u?.toState():d=u?.toState,y.value=N(d),e.value=N(d);}else y.value=N(e.value);u?.clearExternalErrors&&C(),R.value.$reset(),b.value.forEach(d=>{d.$reset(u,true);}),p||f();}async function oe(){let u=e.value;try{return {valid:(await Promise.allSettled([R.value.$validate(),...b.value.map(x=>x.$validate())])).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:u}}catch{return {valid:false,data:u}}}function C(){R.value.$clearExternalErrors(),b.value.forEach(u=>{u.$clearExternalErrors();});}function z(u=true){let p=b.value.map(d=>{if(Pt(d))return d.$extractDirtyFields(u)});return u&&p.every(d=>te(d))&&(p=[]),p}let{$shortcuts:me,...ue}=M;return reactive({$self:R,...ue,...me,$each:b,$value:e,$validate:oe,$unwatch:B,$watch:V,$touch:U,$reset:X,$extractDirtyFields:z,$clearExternalErrors:C})}function Be({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:a,schemaErrors:o,rootSchemaErrors:i,validationGroups:c,initialState:v,fieldName:y,...h}){let j=effectScope(),I,M=[],w=null,O=null,l=null,S=null;async function D(u=true){let p=Object.entries(e.value),d=Object.fromEntries(p.filter(([m,_])=>!!_).map(([m,_])=>{if(_){let q=toRef(t.value??{},m),Z=toRef(()=>_),Y=toRef(a?.value??{},m),fe=computed(()=>o?.value?.[m]),ce=toRef(v?.value??{},m);return [m,Ee({state:q,rulesDef:Z,path:r?`${r}.${m}`:m,externalErrors:Y,schemaErrors:fe,initialState:ce,fieldName:m,...h})]}return []})),x=Object.fromEntries(Object.entries(unref(a)??{}).filter(([m,_])=>!(m in e.value)&&!!_).map(([m])=>{let _=toRef(t.value??{},m),q=toRef(a?.value??{},m),Z=computed(()=>o?.value?.[m]),Y=toRef(v?.value??{},m);return [m,Ee({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${m}`:m,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:m,...h})]})),A=Object.fromEntries(Object.entries(unref(o)??{}).map(([m])=>{let _=toRef(t.value??{},m),q=toRef(a?.value??{},m),Z=computed(()=>o?.value?.[m]),Y=toRef(v?.value??{},m);return [m,Ee({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${m}`:m,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:m,...h})]})),K=Object.fromEntries(Object.entries(t.value??{}).filter(([m])=>!(m in e.value)&&!(m in(x??{}))&&!(m in(A??{}))).map(([m])=>{let _=toRef(t.value??{},m),q=toRef(a?.value??{},m),Z=computed(()=>o?.value?.[m]),Y=toRef(v?.value??{},m);return [m,Ee({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${m}`:m,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:m,...h})]}));R.value={...d,...x,...A,...K},u&&s();}let R=h.storage.getFieldsEntry(r);D();function b(){a&&(l=watch(a,()=>{T(),D();},{deep:true}));}function f(){S=watch(t,()=>{T(),D(),U(true,true);},{flush:"sync"});}function s(){n&&(w?.(),w=watch(n,()=>{T(),D();},{deep:true,flush:"pre"}),b()),i&&(O?.(),O=watch(i,()=>{T(),D();},{deep:true,flush:"post"})),f(),I=j.run(()=>{let u=computed({get:()=>t.value,set(W){T(),t.value=W,D();}}),p=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).every(([W,P])=>P?.$dirty)),d=computed(()=>Object.entries(R.value).some(([W,P])=>P?.$anyDirty)),x=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).some(([W,P])=>P?.$invalid)),A=computed(()=>{let W=Object.entries(R.value).filter(([P,H])=>Vt(H)?!H.$inactive:true);return W.length?W.every(([P,H])=>H?.$correct||H.$anyDirty&&!H.$invalid):false}),K=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).some(([W,P])=>P?.$error)),m=computed(()=>unref(h.options.rewardEarly)!=null?unref(h.options.rewardEarly):false),_=computed(()=>unref(h.options.autoDirty)!=null?unref(h.options.autoDirty):!m.value),q=computed(()=>_.value?d.value&&!(x.value||Y.value):!(x.value||Y.value)),Z=ref(false),Y=computed(()=>Z.value||Object.entries(R.value).some(([W,P])=>P?.$pending)),fe=computed(()=>Object.fromEntries(Object.entries(R.value).map(([W,P])=>[W,P?.$errors]))),ce=computed(()=>Object.fromEntries(Object.entries(R.value).map(([W,P])=>[W,P?.$silentErrors]))),$=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).every(([W,P])=>P?.$edited)),F=computed(()=>Object.entries(R.value).some(([W,P])=>P?.$anyEdited)),g=computed(()=>y);function ee(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([W,P])=>{let H=effectScope();le[W]=H.run(()=>{let Oe=ref();return watchEffect(()=>{Oe.value=P(reactive({$dirty:p,$value:t,$silentValue:u,$error:K,$pending:Y,$invalid:x,$correct:A,$ready:q,$anyDirty:d,$name:g,$silentErrors:ce,$errors:fe,$fields:R,$edited:$,$anyEdited:F}));}),Oe}),M.push(H);});}let se=computed({get:()=>c?Object.fromEntries(Object.entries(c?.(R.value)??{}).map(([W,P])=>P.length?[W,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(H=>[H,Et(P,H)])),...Object.fromEntries(["$errors","$silentErrors"].map(H=>[H,xt(P,H)]))}]:[])):{},set(){}}),le={};return ee(),{$dirty:p,$anyDirty:d,$invalid:x,$correct:A,$error:K,$pending:Y,$errors:fe,$silentErrors:ce,$ready:q,$name:g,$shortcuts:le,$groups:se,$silentValue:u,$edited:$,$anyEdited:F,$localPending:Z}});}function T(){w?.(),l?.(),S?.(),O?.(),M=[],I={},R.value&&Object.entries(R.value).forEach(([u,p])=>{p.$unwatch();});}function V(){Object.entries(R.value).forEach(([u,p])=>{p.$clearExternalErrors();});}function B(u,p){if(l?.(),T(),!p)if(u?.toInitialState)t.value=N({...v.value??{}});else if(u?.toState){let d;typeof u?.toState=="function"?d=u?.toState():d=u?.toState,v.value=N(d),t.value=N(d);}else v.value=N(t.value);Object.values(R.value).forEach(d=>{d.$reset(u,true);}),u?.clearExternalErrors&&V(),b(),p||D();}function U(u=true,p=false){Object.values(R.value).forEach(d=>{d.$touch(u,p);});}function X(u){return u.filter(([p,d])=>k(d)?!(d&&typeof d=="object"&&"_null"in d)&&!te(d):Array.isArray(d)?d.length:true)}function oe(u=true){let p=Object.entries(R.value).map(([d,x])=>[d,x.$extractDirtyFields(u)]);return u&&(p=X(p)),Object.fromEntries(p)}async function C(){try{if(h.schemaMode)return h.onValidate?(U(!1),I.$localPending.value=!0,h.onValidate()):{valid:!1,data:t.value};{let u=t.value;return {valid:(await Promise.allSettled(Object.values(R.value).map(x=>x.$validate()))).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:u}}}catch{return {valid:false,data:t.value}}finally{I.$localPending.value=false;}}let{$shortcuts:z,$localPending:me,...ue}=I;return reactive({...ue,...z,$fields:R,$value:t,$reset:B,$touch:U,$validate:C,$unwatch:T,$watch:s,$clearExternalErrors:V,$extractDirtyFields:oe})}function Ee({rulesDef:e,...t}){if(wt(e,t.state,t.schemaMode))return Nt({rulesDef:e,...t});if(Ge(t.state,e)){if(ke(t.state))return Be({rulesDef:e,...t});{let n=effectScope().run(()=>{let i=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,c=>{i.value=c;},{deep:true}),watch(i,c=>{t.state.value=c;},{deep:true}),{fakeState:i}}),{state:a,...o}=t;return Be({rulesDef:e,...o,state:n.fakeState})}}else if(Ue(e))return be({rulesDef:e,...t})}function Ce({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:o,schemaErrors:i,schemaMode:c=false,onValidate:v}){let y=Xe(),h=ref();return Ge(n,r)?h.value=Be({rootRules:r,rulesDef:r,state:n,customMessages:a?.(),storage:y,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaErrors:i,rootSchemaErrors:i,schemaMode:c,onValidate:v}):Ue(r)&&(h.value=be({rulesDef:r,state:n,customMessages:a?.(),storage:y,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaMode:c,schemaErrors:i,onValidate:v})),getCurrentScope()&&onScopeDispose(()=>{h.value?.$unwatch();}),reactive({regle:h})}function st(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function a(o,i,c){let v=isRef(i)?i:computed(typeof i=="function"?i:()=>i),y={...n,...c},h=isRef(o)?o:ref(o),j=ref(k(h.value)?{...N(h.value)}:N(h.value));return {r$:Ce({scopeRules:v,state:h,options:y,initialState:j,customRules:e,shortcuts:r}).regle}}return a}var Ke=st();function it(){function e(t,r){return r}return e}var ut=it();function Lt({rules:e,modifiers:t,shortcuts:r}){let n=st(e,t,r),a=it();return {useRegle:n,inferRules:a}}function Ae(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(f=>f.$value):Object.fromEntries(Object.entries(e).map(([f,s])=>[f,s.$value])),set:f=>{r||typeof f=="object"&&Object.entries(f).forEach(([s,T])=>e[s].$value=T);}}),a=computed({get:()=>Object.fromEntries(Object.entries(e).map(([f,s])=>[f,s.$silentValue])),set:f=>{typeof f=="object"&&Object.entries(f).forEach(([s,T])=>e[s].$silentValue=T);}}),o=computed(()=>{let f=Object.entries(e);return !!f.length&&f.every(([s,T])=>T?.$dirty)}),i=computed(()=>Object.entries(e).some(([f,s])=>s?.$anyDirty)),c=computed(()=>Object.entries(e).some(([f,s])=>s?.$invalid)),v=computed(()=>{let f=Object.entries(e);return !!f.length&&f.every(([s,T])=>T?.$correct||T.$anyDirty&&!T.$invalid)}),y=computed(()=>Object.entries(e).some(([f,s])=>s?.$error)),h=computed(()=>{let f=Object.entries(e);return !!f.length&&f.every(([s,T])=>T?.$ready)}),j=computed(()=>Object.entries(e).some(([f,s])=>s?.$pending)),I=computed(()=>r?Object.entries(e).map(([f,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([f,s])=>[f,s.$errors]))),M=computed(()=>r?Object.entries(e).map(([f,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([f,s])=>[f,s.$silentErrors]))),w=computed(()=>{let f=Object.entries(e);return !!f.length&&f.every(([s,T])=>T?.$edited)}),O=computed(()=>Object.entries(e).some(([f,s])=>s?.$anyEdited)),l=computed(()=>r?Object.values(e):e);function S(f){Object.values(e).forEach(s=>{s.$reset(f);});}function E(){Object.values(e).forEach(f=>{f.$touch();});}function D(f=true){return Object.values(e).map(s=>s.$extractDirtyFields(f))}function R(){Object.values(e).forEach(f=>{f.$clearExternalErrors();});}async function b(){try{let f=n.value;return {valid:(await Promise.allSettled(Object.values(e).map(V=>V.$validate()))).every(V=>V.status==="fulfilled"?V.value.valid===!0:!1),data:f}}catch{return {valid:false,data:n.value}}}return reactive({...!r&&{$silentValue:a},$errors:I,$silentErrors:M,$instances:l,$value:n,$dirty:o,$anyDirty:i,$invalid:c,$correct:v,$error:y,$pending:j,$ready:h,$edited:w,$anyEdited:O,$reset:S,$touch:E,$validate:b,$extractDirtyFields:D,$clearExternalErrors:R})}function Kt(e){function t(r){let n=computed(()=>toValue(r));i();let a=ref(c(e.value)),o=reactive({r$:a});function i(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}watch(n,i),watch(e,v=>{a.value=c(v);},{deep:true});function c(v){if(n.value){let y=v[n.value]??{};return Ae(y,true)}else return Ae(v["~~global"]??{},true)}return {r$:o.r$}}return {useCollectScope:t}}function qt(e,t){let r=t??Ke;return {useScopedRegle:(a,o,i)=>{let{namespace:c,...v}=i??{},y=computed(()=>toValue(c)),h=ref(`${Object.keys(e.value).length+1}-${Se()}`),j=computed(()=>`instance-${h.value}`),{r$:I}=r(a,o,v);w(),Ct(M),watch(y,(O,l)=>{M(l),w();}),getCurrentInstance()&&onMounted(()=>{let O=getCurrentInstance();typeof window<"u"&&O?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(O?.proxy?.$el?.parentElement)&&M();});function M(O){let l=O??y.value;l?e.value[l]&&delete e.value[l][j.value]:e.value["~~global"][j.value]&&delete e.value["~~global"][j.value];}function w(){y.value?(e.value[y.value]||(e.value[y.value]={}),e.value[y.value][j.value]=I):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][j.value]=I);}return {r$:I,dispose:M,register:w}}}}function He(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):Ot(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=qt(r,e?.customUseRegle),{useCollectScope:a}=Kt(r);return {useScopedRegle:n,useCollectScope:a}}var {useCollectScope:ct,useScopedRegle:ft}=He();function Yt(e,t,r){let n=computed(()=>toValue(e)[t]);return computed(()=>{let o=r.find(i=>{if(i[t]&&"literal"in i[t]){let c=i[t].literal;if(ye(c))return unref(c._params?.[0])===n.value}});if(o)return o;{let i=r.find(c=>k(c[t])&&!Object.keys(c[t]).some(v=>v==="literal"));return i||{}}})}function Rt(e,t,r){return k(e[t])&&"$value"in e[t]&&e[t]?.$value===r}function Qt(e,t,r){let n;return Rt(e,t,r)&&(n=toRef(e,t)),n}
|
|
2
|
-
export{Je as InternalRuleType,Qe as createRule,He as createScopedUseRegle,Yt as createVariant,Lt as defineRegleConfig,Rt as discriminateVariant,tt as flatErrors,ut as inferRules,Qt as
|
|
1
|
+
import {effectScope,computed,toValue,ref,watch,getCurrentInstance,onMounted,reactive,getCurrentScope,onScopeDispose,isRef,shallowRef,toRef,unref,watchEffect,version}from'vue';function te(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var bt=Symbol("regle-rule");function er(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function N(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>N(n)))),r=="Map"&&(t=new Map([...e].map(n=>[N(n[0]),N(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,er(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=N(e[n]);}return t}function k(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function qe(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function _e(e,t,r){let n,a=(...o)=>new Promise(i=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(i);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a}var Je={Inline:"__inline",Async:"__async"};function Et(e,t){return e.some(r=>r[t])}function xt(e,t){return e.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[])}function re(e){try{return e.map(t=>toValue(t))}catch{return []}}function Dt(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function It(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(i=>i.trim()).filter(i=>i.length>0).length:0}function Ye(e,...t){let{validator:r,type:n}=e,a=n===Je.Async||r.constructor.name==="AsyncFunction";return {...{validator(c,...v){return e.validator(c,...re(v.length?v:t))},message(c){return typeof e.message=="function"?e.message({...c,$params:re(c?.$params?.length?c.$params:t)}):e.message},active(c){return typeof e.active=="function"?e.active({...c,$params:re(c?.$params?.length?c.$params:t)}):e.active??true},tooltip(c){return typeof e.tooltip=="function"?e.tooltip({...c,$params:re(c?.$params?.length?c.$params:t)}):e.tooltip??[]},exec(c){let v=e.validator(c,...re(t)),y;return v instanceof Promise?v.then(T=>(y=T,typeof y=="object"&&"$valid"in y?y.$valid:typeof y=="boolean"?y:false)):(y=v,typeof y=="object"&&"$valid"in y?y.$valid:typeof y=="boolean"?y: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:bt}}function Qe(e){if(typeof e.validator=="function"){let r=Ye(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(It(e.validator)>1){let a=function(...o){return Ye(e,...o)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.tooltip=r.tooltip,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._tooltip=r.tooltip,a._type=e.type,a._message_pacthed=false,a._tooltip_pacthed=false,a._async=n,a}else return r}throw new Error("Validator must be a function")}function Xe(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),a=shallowRef(new Map),o=shallowRef(new Map);function i(S){let E=t.value.get(S);if(E)return E;{let D=ref({});return t.value.set(S,D),D}}function c(S){let E=r.value.get(S);if(E)return E;{let D=ref([]);return r.value.set(S,D),D}}function v(S,E,D){o.value.set(`${S}-${E}`,D);}function y(S,E){return o.value.get(`${S}-${E}`)}function T(S,E){S&&E!=null&&o.value.delete(`${S}-${E}`);}function j(S,E){n.value.set(S,E);}function I(S){return n.value.get(S)??false}function M(S,E){e.value.set(S,E);}function w(S,E){let D=e.value.get(S);return D?O(E,D)?{valid:true}:{valid:false}:void 0}function O(S,E){let D=Object.keys(E),R=Object.keys(S);return R.length!==D.length||!R.every(f=>D.includes(f))?false:R.every(f=>{let s=S[f],h=E[f];return !h||!s||typeof s=="function"||typeof h=="function"||typeof s=="number"||typeof s=="boolean"?false:s._params?s._params?.every((V,B)=>{if(typeof h=="number"||typeof h=="boolean")return true;{let U=re(h._params),X=re(s._params);return U?.[B]===X?.[B]}}):true})}function l(S){let E=a.value.get(S);if(E)return E;{let D=ref(false),R=ref(true),b=ref({}),f=ref(false);return a.value.set(S,{$pending:D,$valid:R,$metadata:b,$validating:f}),{$pending:D,$valid:R,$metadata:b,$validating:f}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:M,setDirtyEntry:j,checkRuleDeclEntry:w,getDirtyState:I,trySetRuleStatusRef:l,getFieldsEntry:i,getCollectionsEntry:c,getArrayStatus:y,addArrayStatus:v,deleteArrayStatus:T,arrayStatusStorage:o}}function ke(e){return k(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}}var Pe={LessThan:-1,EqualTo:0,GreaterThan:1};function ur(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let o=Number(r[a]),i=Number(n[a]);if(o>i)return Pe.GreaterThan;if(i>o)return Pe.LessThan;if(!isNaN(o)&&isNaN(i))return Pe.GreaterThan;if(isNaN(o)&&!isNaN(i))return Pe.LessThan}return Pe.EqualTo}var Ne=ur(version,"3.5.0")!==-1;function cr(){return Math.floor(Math.random()*Date.now()).toString()}function Se(){return typeof window>"u"?cr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Ct(e){return getCurrentScope()?(onScopeDispose(e),true):false}function Ot(e){let t=false,r,n=effectScope(true);return (...a)=>(t||(r=n.run(()=>e(...a)),t=true),r)}function Ge(e,t){return ke(e)||k(t.value)&&!te(t.value)&&!Object.entries(t.value).some(([r,n])=>ye(n)||typeof n=="function")}function wt(e,t,r=false){return !!e.value&&k(e.value)&&"$each"in e.value||r&&Array.isArray(t.value)&&t.value.some(k)||Array.isArray(t.value)&&t.value.some(k)}function Ue(e){return !!e.value&&k(e.value)}function ye(e){return k(e)&&"_validator"in e}function Ve(e){return typeof e.value!="function"}function Pt(e){return k(e)&&"$fields"in e}function Vt(e){return !!e&&"$rules"in e}function et({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Mt({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function At(e){return k(e)&&"$each"in e}function tt(e,t){let{includePath:r=false}=t??{};if(Array.isArray(e)&&e.every(n=>!k(n)))return e;if(At(e)){let n=r?e.$self?.map(o=>({error:o,path:""}))??[]:e.$self??[],a=e.$each?.map(o=>We(o,r))??[];return n?.concat(a.flat())}else return Object.entries(e).map(([n,a])=>We(a,r,[n])).flat()}function We(e,t=false,r){let n=t&&!r?[]:r;if(Array.isArray(e)&&e.every(a=>!k(a)))return t?e.map(a=>({error:a,path:n?.join(".")??""})):e;if(At(e)){let a=n?.length?e.$self?.map(i=>({error:i,path:n.join(".")}))??[]:e.$self??[],o=e.$each?.map((i,c)=>We(i,t,n?.concat(c.toString())))??[];return a?.concat(o.flat())}else return Object.entries(e).map(([a,o])=>We(o,t,n?.concat(a))).flat()}function Ft({customMessages:e,rule:t,ruleKey:r,state:n,path:a,storage:o,$debounce:i,modifiers:c}){let v=effectScope(),y={},T,j=ref(false),{$pending:I,$valid:M,$metadata:w,$validating:O}=o.trySetRuleStatusRef(`${a}.${r}`);function l(){v=effectScope(),y=v.run(()=>{let s=ref(false),h=ref(false),V=ref(true),B=ref(false),U=ref(false),X=computed(()=>({$value:n.value,$error:h.value,$dirty:s.value,$pending:B.value,$correct:U.value,$invalid:V.value,$rule:{$valid:M.value,$invalid:!M.value,$pending:I.value},$params:p.value,...w.value})),oe=computed(()=>Ve(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function C(x){let A="",K=e?e[r]?.[x]:void 0;if(K&&(typeof K=="function"?A=K(X.value):A=K),Ve(t)){let m=`_${x}_patched`;K&&!t.value[m]||(typeof t.value[x]=="function"?A=t.value[x](X.value):A=t.value[x]??"");}return A}let z=computed(()=>{let x=C("message");return te(x)&&(x="This field is not valid"),x}),me=computed(()=>C("tooltip")),ue=computed(()=>Ve(t)&&t.value.type?t.value.type:r),u=computed(()=>Ve(t)?t.value.validator:t.value),p=computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),d=computed(()=>`${a}.${ue.value}`);return {$active:oe,$message:z,$type:ue,$validator:u,$params:p,$path:d,$tooltip:me,$fieldCorrect:U,$fieldError:h,$fieldDirty:s,$fieldPending:B,$fieldInvalid:V}}),T=watch(y?.$params,()=>{(c.$autoDirty.value||c.$rewardEarly.value&&y.$fieldError.value)&&R();});}l();function S(){M.value=true,y.$fieldDirty.value&&(I.value=true);}async function E(){let s=false;try{let h=y.$validator.value;if(typeof h!="function")return console.error(`${a}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let V=h(n.value,...y.$params.value),B=n.value;S();let U;if(V instanceof Promise?U=await V:U=V,n.value!==B)return !0;if(typeof U=="boolean")s=U;else {let{$valid:X,...oe}=U;s=X,w.value=oe;}}catch{s=false;}finally{I.value=false;}return s}let D=_e(E,i??200);async function R(){try{O.value=!0;let s=!1;if(ye(t.value)&&t.value._async)s=await D();else {let h=y.$validator.value,V=h(n.value,...y.$params.value);if(V 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(V!=null)if(typeof V=="boolean")s=V;else {let{$valid:B,...U}=V;s=B,w.value=U;}}return M.value=s,s}catch{return false}finally{O.value=false;}}function b(){M.value=true,w.value={},I.value=false,O.value=false,l();}function f(){T(),v.stop(),v=effectScope();}return reactive({...y,$pending:I,$valid:M,$metadata:w,$haveAsync:j,$validating:O,$parse:R,$unwatch:f,$watch:l,$reset:b})}function be({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:o,options:i,externalErrors:c,schemaErrors:v,schemaMode:y,onUnwatch:T,$isArray:j,initialState:I,shortcuts:M,onValidate:w}){let O=effectScope(),l,S=[],E,D,R,b,f,s=()=>{};function h(){let $=t.value,F=o.checkRuleDeclEntry(n,$);z.value=Object.fromEntries(Object.entries($).filter(([g])=>g.startsWith("$"))),U(),C.value=Object.fromEntries(Object.entries(t.value).filter(([g])=>!g.startsWith("$")).map(([g,ee])=>{if(ee){let se=toRef(()=>ee);return [g,Ft({modifiers:{$autoDirty:l.$autoDirty,$rewardEarly:l.$rewardEarly},customMessages:r,rule:se,ruleKey:g,state:e,path:n,storage:o,$debounce:z.value.$debounce})]}return []}).filter(g=>!!g.length)),l.processShortcuts(),V(),F?.valid!=null&&(l.$dirty.value=o.getDirtyState(n),(l.$dirty.value&&l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s()),o.addRuleDeclEntry(n,$);}function V(){s=l.$debounce.value?_e(oe,l.$debounce.value??l.$haveAnyAsyncRule?100:0):oe;}function B(){C.value&&Object.entries(C.value).forEach(([$,F])=>{F.$unwatch();}),R(),f?.(),l.$dirty.value&&o.setDirtyEntry(n,l.$dirty.value),E?.(),D?.(),O.stop(),O=effectScope(),S.forEach($=>$.stop()),S=[],T?.(),b?.();}function U(){C.value&&Object.entries(C.value).forEach(([$,F])=>{F.$watch();}),l=O.run(()=>{let $=ref(false),F=ref(false),g=computed(()=>$.value),ee=computed(()=>z.value.$debounce),se=computed(()=>z.value.$lazy!=null?z.value.$lazy:unref(i.lazy)!=null?unref(i.lazy):false),le=computed(()=>z.value.$rewardEarly!=null?z.value.$rewardEarly:unref(i.rewardEarly)!=null?unref(i.rewardEarly):false),W=computed(()=>z.value.$clearExternalErrorsOnChange!=null?z.value.$clearExternalErrorsOnChange:unref(i.clearExternalErrorsOnChange)!=null?unref(i.clearExternalErrorsOnChange):true),P=computed(()=>z.value.$autoDirty!=null?z.value.$autoDirty:unref(i.autoDirty)!=null?unref(i.autoDirty):!le.value),H=computed(()=>Object.entries(C.value).some(([ie,Q])=>Q.$validating)),Oe=computed({get:()=>e.value,set(ie){E(),e.value=ie,X();}}),Fe=computed(()=>ge.value&&!we.value&&$.value),dt=computed(()=>et({field:{$rules:C.value,$error:Fe.value,$externalErrors:c?.value,$schemaErrors:v?.value}})),pt=computed(()=>et({field:{$rules:C.value,$error:Fe.value,$externalErrors:c?.value,$schemaErrors:v?.value},silent:true})),ze=computed(()=>$.value?I.value instanceof Date&&e.value instanceof Date?qe(I.value).getDate()!==qe(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),yt=computed(()=>ze.value),mt=computed(()=>Mt({field:{$rules:C.value}})),gt=computed(()=>P.value?g.value&&!(ge.value||we.value):!(ge.value||we.value)),we=computed(()=>F.value||!le.value?Object.entries(C.value).some(([ie,Q])=>Q.$pending):false),ge=computed(()=>c?.value?.length||v?.value?.length?true:je.value?false:!le.value||le.value&&F.value?Object.entries(C.value).some(([ie,Q])=>!Q.$valid):false),vt=computed(()=>a),je=computed(()=>!!(te(C.value)&&!y)),$t=computed(()=>c?.value?.length||je.value?false:$.value&&!te(e.value)&&!H.value?y?!v?.value?.length:Object.values(C.value).some(Q=>Q.$active)?Object.values(C.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),Xt=computed(()=>Object.entries(C.value).some(([ie,Q])=>Q.$haveAsync));function Zt(){M?.fields&&Object.entries(M.fields).forEach(([ie,Q])=>{let Tt=effectScope();St[ie]=Tt.run(()=>{let ht=ref();return watchEffect(()=>{ht.value=Q(reactive({$dirty:$,$externalErrors:c?.value??[],$value:e,$silentValue:Oe,$rules:C,$error:Fe,$pending:we,$invalid:ge,$correct:$t,$errors:dt,$ready:gt,$silentErrors:pt,$anyDirty:g,$tooltips:mt,$name:vt,$inactive:je,$edited:ze,$anyEdited:yt}));}),ht}),S.push(Tt);});}let St={};return watch(ge,ie=>{ie||(F.value=false);}),{$error:Fe,$pending:we,$invalid:ge,$correct:$t,$debounce:ee,$lazy:se,$errors:dt,$ready:gt,$silentErrors:pt,$rewardEarly:le,$autoDirty:P,$clearExternalErrorsOnChange:W,$anyDirty:g,$edited:ze,$anyEdited:yt,$name:vt,$haveAnyAsyncRule:Xt,$shortcuts:St,$validating:H,$tooltips:mt,$dirty:$,triggerPunishment:F,processShortcuts:Zt,$silentValue:Oe,$inactive:je}}),X(),R=watch(l.$dirty,$=>{o.setDirtyEntry(n,$),Object.values(C.value).forEach(F=>{F.$fieldDirty=$;});}),f=watch([l.$error,l.$correct,l.$invalid,l.$pending],()=>{Object.values(C.value).forEach($=>{$.$fieldError=l.$error.value,$.$fieldInvalid=l.$invalid.value,$.$fieldPending=l.$pending.value,$.$fieldCorrect=l.$correct.value;});}),D=watch(l.$invalid,$=>{l.$rewardEarly.value&&!$&&(l.triggerPunishment.value=false);}),b=watch(l.$haveAnyAsyncRule,V);}function X(){E=watch(e,()=>{l.$autoDirty.value&&(l.$dirty.value||(l.$dirty.value=true)),t.value instanceof Function&&h(),(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s(),l.$rewardEarly.value!==true&&l.$clearExternalErrorsOnChange.value&&d();},{deep:j?true:Ne?1:true});}function oe(){Object.values(C.value).forEach($=>{$.$parse();});}let C=ref({}),z=ref({});h();function me($,F){if(d(),l.$dirty.value=false,l.triggerPunishment.value=false,o.setDirtyEntry(n,false),!F)if($?.toInitialState)B(),e.value=N(I);else if($?.toState){B();let g;typeof $?.toState=="function"?g=$?.toState():g=$?.toState,I.value=N(g),e.value=N(g);}else I.value=k(e.value)?N(e.value):Array.isArray(e.value)?[...e.value]:e.value;$?.clearExternalErrors&&d(),F||Object.entries(C.value).forEach(([g,ee])=>{ee.$reset();}),!l.$lazy.value&&l.$autoDirty.value&&Object.values(C.value).forEach(g=>g.$parse()),F||h();}function ue($=true,F=false){l.$dirty.value||(l.$dirty.value=true),F&&$?(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s():$&&s();}async function u(){try{if(y)return w?(ue(!1),w()):{valid:!1,data:e.value};let $=e.value;if(l.triggerPunishment.value=!0,!l.$dirty.value)l.$dirty.value=!0;else if(l.$autoDirty.value&&l.$dirty.value&&!l.$pending.value)return {valid:!l.$error.value,data:$};return y?{valid:!v?.value?.length,data:$}:te(C.value)?{valid:!0,data:$}:{valid:(await Promise.allSettled(Object.entries(C.value).map(([ee,se])=>se.$parse()))).every(ee=>ee.status==="fulfilled"?ee.value===!0:!1),data:$}}catch{return {valid:false,data:e.value}}}function p($=true){return l.$dirty.value?e.value:$?{_null:true}:null}function d(){c?.value?.length&&(c.value=[]);}!l.$lazy.value&&!l.$dirty.value&&l.$autoDirty.value&&s();let{$shortcuts:x,$validating:A,$autoDirty:K,$rewardEarly:m,$clearExternalErrorsOnChange:_,$haveAnyAsyncRule:q,$debounce:Z,$lazy:Y,triggerPunishment:fe,...ce}=l;return reactive({...ce,$externalErrors:c,$value:e,$rules:C,...x,$reset:me,$touch:ue,$validate:u,$unwatch:B,$watch:U,$extractDirtyFields:p,$clearExternalErrors:d})}function at({$id:e,path:t,index:r,options:n,storage:a,stateValue:o,customMessages:i,rules:c,externalErrors:v,schemaErrors:y,initialState:T,shortcuts:j,fieldName:I,schemaMode:M}){let w=c.$key?c.$key:Se(),O=`${t}.${String(w)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?O=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let l=toRef(v?.value??[],r),S=computed(()=>y?.value?.[r]),E=Ee({state:o,rulesDef:toRef(()=>c),customMessages:i,path:O,storage:a,options:n,externalErrors:l,schemaErrors:S,initialState:T,shortcuts:j,fieldName:I,schemaMode:M});if(E){let D=o.value?.$id;E.$id=D??String(w),a.addArrayStatus(e,E.$id,E);}return E}function Nt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:i,schemaErrors:c,schemaMode:v,initialState:y,shortcuts:T,fieldName:j}){let I=effectScope(),M,w=effectScope(),O,l=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let S=ref(),E=ref(e.value),D,R=ref({}),b=a.getCollectionsEntry(n);O=w.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(p=>typeof p!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(p=>ye(p)||typeof p=="function"):false)})),f(),V();function f(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(S.value=Se(),Object.defineProperties(e.value,{$id:{value:S.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(S.value=e.value.$id)),E.value=R.value.$value,Array.isArray(e.value)&&!O.isPrimitiveArray.value?b.value=e.value.filter(u=>typeof u=="object").map((u,p)=>{let{scope:d,unwrapped:x}=Ze(t.value.$each,toRef(()=>u),p);d&&l.push(d);let A=toRef(y.value??[],p),K=toRef(i?.value??{},"$each"),m=computed(()=>c?.value?.$each),_=at({$id:S.value,path:n,customMessages:r,rules:x??{},stateValue:toRef(()=>u),index:p,options:o,storage:a,externalErrors:K,schemaErrors:m,initialState:A,shortcuts:T,fieldName:j,schemaMode:v});return _||null}).filter(u=>!!u):b.value=[],R.value=be({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:toRef(i?.value??{},"$self"),schemaErrors:computed(()=>c?.value?.$self),$isArray:true,initialState:y,shortcuts:T,fieldName:j,schemaMode:v});}function s(){if(Array.isArray(e.value)&&!O.isPrimitiveArray.value){let u=N(b.value);b.value=e.value.filter(p=>typeof p=="object").map((p,d)=>{let x=toRef(()=>p);if(p.$id&&b.value.find(A=>A.$id===p.$id)){let A=a.getArrayStatus(S.value,p.$id);return A?(A.$value=x,A):null}else {let{scope:A,unwrapped:K}=Ze(t.value.$each,x,d);A&&l.push(A);let m=toRef(i?.value??{},"$each"),_=computed(()=>c?.value?.$each??[]),q=at({$id:S.value,path:n,customMessages:r,rules:K??{},stateValue:x,index:d,options:o,storage:a,externalErrors:m,schemaErrors:_,initialState:toRef(y.value??[],d),shortcuts:T,fieldName:j,schemaMode:v});return q||null}}).filter(p=>!!p),u.filter(p=>!e.value?.find(d=>p.$id===d.$id)).forEach((p,d)=>{a.deleteArrayStatus(S.value,d.toString());});}else b.value=[];}function h(){D=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?f():s();},{deep:Ne?1:true,flush:"pre"});}function V(){h(),I=effectScope(),M=I.run(()=>{let u=computed({get:()=>e.value,set(g){D(),e.value=g,h();}}),p=computed(()=>R.value.$dirty&&(!b.value.length||b.value.every(g=>g.$dirty))),d=computed(()=>R.value.$anyDirty||b.value.some(g=>g.$anyDirty)),x=computed(()=>R.value.$invalid||b.value.some(g=>g.$invalid)),A=computed(()=>(te(R.value.$rules)?true:R.value.$correct)&&(!b.value.length||b.value.every(g=>g.$correct||g.$anyDirty&&!g.$invalid))),K=computed(()=>R.value.$error||b.value.some(g=>g.$error)),m=computed(()=>!(x.value||_.value)),_=computed(()=>R.value.$pending||b.value.some(g=>g.$pending)),q=computed(()=>!!b.value.length&&b.value.every(g=>g.$edited)),Z=computed(()=>R.value.$anyEdited||b.value.some(g=>g.$anyEdited)),Y=computed(()=>({$self:R.value.$errors,$each:b.value.map(g=>g.$errors)})),fe=computed(()=>({$self:R.value.$silentErrors,$each:b.value.map(g=>g.$silentErrors)})),ce=computed(()=>j);function $(){T?.collections&&Object.entries(T?.collections).forEach(([g,ee])=>{let se=effectScope();F[g]=se.run(()=>{let le=ref();return watchEffect(()=>{le.value=ee(reactive({$dirty:p,$error:K,$silentValue:u,$pending:_,$invalid:x,$correct:A,$errors:Y,$ready:m,$silentErrors:fe,$anyDirty:d,$name:ce,$each:b,$self:R,$value:e,$edited:q,$anyEdited:Z}));}),le}),l.push(se);});}let F={};return $(),{$dirty:p,$anyDirty:d,$invalid:x,$correct:A,$error:K,$pending:_,$errors:Y,$silentErrors:fe,$ready:m,$name:ce,$shortcuts:F,$silentValue:u,$edited:q,$anyEdited:Z}}),O.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function B(){D&&D(),R.value&&R.value.$unwatch(),b.value&&b.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),I.stop(),I=effectScope(),w.stop(),w=effectScope(true),l.forEach(u=>u.stop()),l=[];}function U(u=true,p=false){R.value.$touch(u,p),b.value.forEach(d=>{d.$touch(u,p);});}function X(u,p){if(B(),!p)if(u?.toInitialState)e.value=N(y.value);else if(u?.toState){let d;typeof u?.toState=="function"?d=u?.toState():d=u?.toState,y.value=N(d),e.value=N(d);}else y.value=N(e.value);u?.clearExternalErrors&&C(),R.value.$reset(),b.value.forEach(d=>{d.$reset(u,true);}),p||f();}async function oe(){let u=e.value;try{return {valid:(await Promise.allSettled([R.value.$validate(),...b.value.map(x=>x.$validate())])).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:u}}catch{return {valid:false,data:u}}}function C(){R.value.$clearExternalErrors(),b.value.forEach(u=>{u.$clearExternalErrors();});}function z(u=true){let p=b.value.map(d=>{if(Pt(d))return d.$extractDirtyFields(u)});return u&&p.every(d=>te(d))&&(p=[]),p}let{$shortcuts:me,...ue}=M;return reactive({$self:R,...ue,...me,$each:b,$value:e,$validate:oe,$unwatch:B,$watch:V,$touch:U,$reset:X,$extractDirtyFields:z,$clearExternalErrors:C})}function Be({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:a,schemaErrors:o,rootSchemaErrors:i,validationGroups:c,initialState:v,fieldName:y,...T}){let j=effectScope(),I,M=[],w=null,O=null,l=null,S=null;async function D(u=true){let p=Object.entries(e.value),d=Object.fromEntries(p.filter(([m,_])=>!!_).map(([m,_])=>{if(_){let q=toRef(t.value??{},m),Z=toRef(()=>_),Y=toRef(a?.value??{},m),fe=computed(()=>o?.value?.[m]),ce=toRef(v?.value??{},m);return [m,Ee({state:q,rulesDef:Z,path:r?`${r}.${m}`:m,externalErrors:Y,schemaErrors:fe,initialState:ce,fieldName:m,...T})]}return []})),x=Object.fromEntries(Object.entries(unref(a)??{}).filter(([m,_])=>!(m in e.value)&&!!_).map(([m])=>{let _=toRef(t.value??{},m),q=toRef(a?.value??{},m),Z=computed(()=>o?.value?.[m]),Y=toRef(v?.value??{},m);return [m,Ee({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${m}`:m,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:m,...T})]})),A=Object.fromEntries(Object.entries(unref(o)??{}).map(([m])=>{let _=toRef(t.value??{},m),q=toRef(a?.value??{},m),Z=computed(()=>o?.value?.[m]),Y=toRef(v?.value??{},m);return [m,Ee({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${m}`:m,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:m,...T})]})),K=Object.fromEntries(Object.entries(t.value??{}).filter(([m])=>!(m in e.value)&&!(m in(x??{}))&&!(m in(A??{}))).map(([m])=>{let _=toRef(t.value??{},m),q=toRef(a?.value??{},m),Z=computed(()=>o?.value?.[m]),Y=toRef(v?.value??{},m);return [m,Ee({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${m}`:m,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:m,...T})]}));R.value={...d,...x,...A,...K},u&&s();}let R=T.storage.getFieldsEntry(r);D();function b(){a&&(l=watch(a,()=>{h(),D();},{deep:true}));}function f(){S=watch(t,()=>{h(),D(),U(true,true);},{flush:"sync"});}function s(){n&&(w?.(),w=watch(n,()=>{h(),D();},{deep:true,flush:"pre"}),b()),i&&(O?.(),O=watch(i,()=>{h(),D();},{deep:true,flush:"post"})),f(),I=j.run(()=>{let u=computed({get:()=>t.value,set(W){h(),t.value=W,D();}}),p=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).every(([W,P])=>P?.$dirty)),d=computed(()=>Object.entries(R.value).some(([W,P])=>P?.$anyDirty)),x=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).some(([W,P])=>P?.$invalid)),A=computed(()=>{let W=Object.entries(R.value).filter(([P,H])=>Vt(H)?!H.$inactive:true);return W.length?W.every(([P,H])=>H?.$correct||H.$anyDirty&&!H.$invalid):false}),K=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).some(([W,P])=>P?.$error)),m=computed(()=>unref(T.options.rewardEarly)!=null?unref(T.options.rewardEarly):false),_=computed(()=>unref(T.options.autoDirty)!=null?unref(T.options.autoDirty):!m.value),q=computed(()=>_.value?d.value&&!(x.value||Y.value):!(x.value||Y.value)),Z=ref(false),Y=computed(()=>Z.value||Object.entries(R.value).some(([W,P])=>P?.$pending)),fe=computed(()=>Object.fromEntries(Object.entries(R.value).map(([W,P])=>[W,P?.$errors]))),ce=computed(()=>Object.fromEntries(Object.entries(R.value).map(([W,P])=>[W,P?.$silentErrors]))),$=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).every(([W,P])=>P?.$edited)),F=computed(()=>Object.entries(R.value).some(([W,P])=>P?.$anyEdited)),g=computed(()=>y);function ee(){T.shortcuts?.nested&&Object.entries(T.shortcuts.nested).forEach(([W,P])=>{let H=effectScope();le[W]=H.run(()=>{let Oe=ref();return watchEffect(()=>{Oe.value=P(reactive({$dirty:p,$value:t,$silentValue:u,$error:K,$pending:Y,$invalid:x,$correct:A,$ready:q,$anyDirty:d,$name:g,$silentErrors:ce,$errors:fe,$fields:R,$edited:$,$anyEdited:F}));}),Oe}),M.push(H);});}let se=computed({get:()=>c?Object.fromEntries(Object.entries(c?.(R.value)??{}).map(([W,P])=>P.length?[W,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(H=>[H,Et(P,H)])),...Object.fromEntries(["$errors","$silentErrors"].map(H=>[H,xt(P,H)]))}]:[])):{},set(){}}),le={};return ee(),{$dirty:p,$anyDirty:d,$invalid:x,$correct:A,$error:K,$pending:Y,$errors:fe,$silentErrors:ce,$ready:q,$name:g,$shortcuts:le,$groups:se,$silentValue:u,$edited:$,$anyEdited:F,$localPending:Z}});}function h(){w?.(),l?.(),S?.(),O?.(),M=[],I={},R.value&&Object.entries(R.value).forEach(([u,p])=>{p.$unwatch();});}function V(){Object.entries(R.value).forEach(([u,p])=>{p.$clearExternalErrors();});}function B(u,p){if(l?.(),h(),!p)if(u?.toInitialState)t.value=N({...v.value??{}});else if(u?.toState){let d;typeof u?.toState=="function"?d=u?.toState():d=u?.toState,v.value=N(d),t.value=N(d);}else v.value=N(t.value);Object.values(R.value).forEach(d=>{d.$reset(u,true);}),u?.clearExternalErrors&&V(),b(),p||D();}function U(u=true,p=false){Object.values(R.value).forEach(d=>{d.$touch(u,p);});}function X(u){return u.filter(([p,d])=>k(d)?!(d&&typeof d=="object"&&"_null"in d)&&!te(d):Array.isArray(d)?d.length:true)}function oe(u=true){let p=Object.entries(R.value).map(([d,x])=>[d,x.$extractDirtyFields(u)]);return u&&(p=X(p)),Object.fromEntries(p)}async function C(){try{if(T.schemaMode)return T.onValidate?(U(!1),I.$localPending.value=!0,T.onValidate()):{valid:!1,data:t.value};{let u=t.value;return {valid:(await Promise.allSettled(Object.values(R.value).map(x=>x.$validate()))).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:u}}}catch{return {valid:false,data:t.value}}finally{I.$localPending.value=false;}}let{$shortcuts:z,$localPending:me,...ue}=I;return reactive({...ue,...z,$fields:R,$value:t,$reset:B,$touch:U,$validate:C,$unwatch:h,$watch:s,$clearExternalErrors:V,$extractDirtyFields:oe})}function Ee({rulesDef:e,...t}){if(wt(e,t.state,t.schemaMode))return Nt({rulesDef:e,...t});if(Ge(t.state,e)){if(ke(t.state))return Be({rulesDef:e,...t});{let n=effectScope().run(()=>{let i=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,c=>{i.value=c;},{deep:true}),watch(i,c=>{t.state.value=c;},{deep:true}),{fakeState:i}}),{state:a,...o}=t;return Be({rulesDef:e,...o,state:n.fakeState})}}else if(Ue(e))return be({rulesDef:e,...t})}function Ce({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:o,schemaErrors:i,schemaMode:c=false,onValidate:v}){let y=Xe(),T=ref();return Ge(n,r)?T.value=Be({rootRules:r,rulesDef:r,state:n,customMessages:a?.(),storage:y,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaErrors:i,rootSchemaErrors:i,schemaMode:c,onValidate:v}):Ue(r)&&(T.value=be({rulesDef:r,state:n,customMessages:a?.(),storage:y,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaMode:c,schemaErrors:i,onValidate:v})),getCurrentScope()&&onScopeDispose(()=>{T.value?.$unwatch();}),reactive({regle:T})}function st(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function a(o,i,c){let v=isRef(i)?i:computed(typeof i=="function"?i:()=>i),y={...n,...c},T=isRef(o)?o:ref(o),j=ref(k(T.value)?{...N(T.value)}:N(T.value));return {r$:Ce({scopeRules:v,state:T,options:y,initialState:j,customRules:e,shortcuts:r}).regle}}return a}var Ke=st();function it(){function e(t,r){return r}return e}var ut=it();function Lt({rules:e,modifiers:t,shortcuts:r}){let n=st(e,t,r),a=it();return {useRegle:n,inferRules:a}}function Ae(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(f=>f.$value):Object.fromEntries(Object.entries(e).map(([f,s])=>[f,s.$value])),set:f=>{r||typeof f=="object"&&Object.entries(f).forEach(([s,h])=>e[s].$value=h);}}),a=computed({get:()=>Object.fromEntries(Object.entries(e).map(([f,s])=>[f,s.$silentValue])),set:f=>{typeof f=="object"&&Object.entries(f).forEach(([s,h])=>e[s].$silentValue=h);}}),o=computed(()=>{let f=Object.entries(e);return !!f.length&&f.every(([s,h])=>h?.$dirty)}),i=computed(()=>Object.entries(e).some(([f,s])=>s?.$anyDirty)),c=computed(()=>Object.entries(e).some(([f,s])=>s?.$invalid)),v=computed(()=>{let f=Object.entries(e);return !!f.length&&f.every(([s,h])=>h?.$correct||h.$anyDirty&&!h.$invalid)}),y=computed(()=>Object.entries(e).some(([f,s])=>s?.$error)),T=computed(()=>{let f=Object.entries(e);return !!f.length&&f.every(([s,h])=>h?.$ready)}),j=computed(()=>Object.entries(e).some(([f,s])=>s?.$pending)),I=computed(()=>r?Object.entries(e).map(([f,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([f,s])=>[f,s.$errors]))),M=computed(()=>r?Object.entries(e).map(([f,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([f,s])=>[f,s.$silentErrors]))),w=computed(()=>{let f=Object.entries(e);return !!f.length&&f.every(([s,h])=>h?.$edited)}),O=computed(()=>Object.entries(e).some(([f,s])=>s?.$anyEdited)),l=computed(()=>r?Object.values(e):e);function S(f){Object.values(e).forEach(s=>{s.$reset(f);});}function E(){Object.values(e).forEach(f=>{f.$touch();});}function D(f=true){return Object.values(e).map(s=>s.$extractDirtyFields(f))}function R(){Object.values(e).forEach(f=>{f.$clearExternalErrors();});}async function b(){try{let f=n.value;return {valid:(await Promise.allSettled(Object.values(e).map(V=>V.$validate()))).every(V=>V.status==="fulfilled"?V.value.valid===!0:!1),data:f}}catch{return {valid:false,data:n.value}}}return reactive({...!r&&{$silentValue:a},$errors:I,$silentErrors:M,$instances:l,$value:n,$dirty:o,$anyDirty:i,$invalid:c,$correct:v,$error:y,$pending:j,$ready:T,$edited:w,$anyEdited:O,$reset:S,$touch:E,$validate:b,$extractDirtyFields:D,$clearExternalErrors:R})}function Kt(e){function t(r){let n=computed(()=>toValue(r));i();let a=ref(c(e.value)),o=reactive({r$:a});function i(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}watch(n,i),watch(e,v=>{a.value=c(v);},{deep:true});function c(v){if(n.value){let y=v[n.value]??{};return Ae(y,true)}else return Ae(v["~~global"]??{},true)}return {r$:o.r$}}return {useCollectScope:t}}function qt(e,t){let r=t??Ke;return {useScopedRegle:(a,o,i)=>{let{namespace:c,...v}=i??{},y=computed(()=>toValue(c)),T=ref(`${Object.keys(e.value).length+1}-${Se()}`),j=computed(()=>`instance-${T.value}`),{r$:I}=r(a,o,v);w(),Ct(M),watch(y,(O,l)=>{M(l),w();}),getCurrentInstance()&&onMounted(()=>{let O=getCurrentInstance();typeof window<"u"&&O?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(O?.proxy?.$el?.parentElement)&&M();});function M(O){let l=O??y.value;l?e.value[l]&&delete e.value[l][j.value]:e.value["~~global"][j.value]&&delete e.value["~~global"][j.value];}function w(){y.value?(e.value[y.value]||(e.value[y.value]={}),e.value[y.value][j.value]=I):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][j.value]=I);}return {r$:I,dispose:M,register:w}}}}function He(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):Ot(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=qt(r,e?.customUseRegle),{useCollectScope:a}=Kt(r);return {useScopedRegle:n,useCollectScope:a}}var {useCollectScope:ct,useScopedRegle:ft}=He();function Yt(e,t,r){let n=computed(()=>toValue(e)[t]);return computed(()=>{let o=r.find(i=>{if(i[t]&&"literal"in i[t]){let c=i[t].literal;if(ye(c))return unref(c._params?.[0])===n.value}});if(o)return o;{let i=r.find(c=>k(c[t])&&!Object.keys(c[t]).some(v=>v==="literal"));return i||{}}})}function Rt(e,t,r){return k(e[t])&&"$value"in e[t]&&e[t]?.$value===r}function Qt(e,t,r){let n;return Rt(e,t,r)&&(n=toRef(e)),n}
|
|
2
|
+
export{Je as InternalRuleType,Qe as createRule,He as createScopedUseRegle,Yt as createVariant,Lt as defineRegleConfig,Rt as discriminateVariant,tt as flatErrors,ut as inferRules,Qt as inferVariantToRef,Ae as mergeRegles,re as unwrapRuleParameters,ct as useCollectScope,Ke as useRegle,Ce as useRootStorage,ft as useScopedRegle};
|
package/dist/regle-core.mjs
CHANGED
|
@@ -2683,12 +2683,12 @@ function createVariant(root, disciminantKey, variants) {
|
|
|
2683
2683
|
function discriminateVariant(root, discriminantKey, discriminantValue) {
|
|
2684
2684
|
return isObject(root[discriminantKey]) && "$value" in root[discriminantKey] && root[discriminantKey]?.$value === discriminantValue;
|
|
2685
2685
|
}
|
|
2686
|
-
function
|
|
2686
|
+
function inferVariantToRef(root, discriminantKey, discriminantValue) {
|
|
2687
2687
|
let returnedRef;
|
|
2688
2688
|
if (discriminateVariant(root, discriminantKey, discriminantValue)) {
|
|
2689
|
-
returnedRef = toRef(root
|
|
2689
|
+
returnedRef = toRef(root);
|
|
2690
2690
|
}
|
|
2691
2691
|
return returnedRef;
|
|
2692
2692
|
}
|
|
2693
2693
|
|
|
2694
|
-
export { InternalRuleType, createRule, createScopedUseRegle, createVariant, defineRegleConfig, discriminateVariant, flatErrors, inferRules,
|
|
2694
|
+
export { InternalRuleType, createRule, createScopedUseRegle, createVariant, defineRegleConfig, discriminateVariant, flatErrors, inferRules, inferVariantToRef, mergeRegles, unwrapRuleParameters, useCollectScope, useRegle, useRootStorage, useScopedRegle };
|