@regle/core 1.2.0-beta.4 → 1.2.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/regle-core.d.ts +19 -4
- package/dist/regle-core.min.mjs +2 -2
- package/dist/regle-core.mjs +2 -2
- package/package.json +1 -1
package/dist/regle-core.d.ts
CHANGED
|
@@ -1733,8 +1733,13 @@ type VariantTuple<T extends Record<string, any>, TKey extends keyof T> = [
|
|
|
1733
1733
|
...RequiredForm<T, TKey>[]
|
|
1734
1734
|
];
|
|
1735
1735
|
|
|
1736
|
+
type useRegleFnOptions<TState extends Record<string, any> | MaybeInput<PrimitiveTypes>, TRules extends ReglePartialRuleTree<Unwrap<TState extends Record<string, any> ? TState : {}>, Partial<AllRulesDeclarations>>, TAdditionalOptions extends Record<string, any>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]>> = TState extends MaybeInput<PrimitiveTypes> ? Partial<DeepMaybeRef<RegleBehaviourOptions>> & TAdditionalOptions : Partial<DeepMaybeRef<RegleBehaviourOptions>> & LocalRegleBehaviourOptions<JoinDiscriminatedUnions<TState extends Record<string, any> ? Unwrap<TState> : {}>, TState extends Record<string, any> ? TRules : {}, TValidationGroups> & TAdditionalOptions;
|
|
1736
1737
|
interface useRegleFn<TCustomRules extends Partial<AllRulesDeclarations>, TShortcuts extends RegleShortcutDefinition<any> = never, TAdditionalReturnProperties extends Record<string, any> = {}, TAdditionalOptions extends Record<string, any> = {}> {
|
|
1737
|
-
<TState extends Record<string, any> | MaybeInput<PrimitiveTypes>, TRules extends ReglePartialRuleTree<Unwrap<TState extends Record<string, any> ? TState : {}>, Partial<AllRulesDeclarations> & TCustomRules> & TValid, TDecl extends RegleRuleDecl<NonNullable<TState>, Partial<AllRulesDeclarations> & TCustomRules>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]>, TValid = isDeepExact<NoInferLegacy<TRules>, Unwrap<TState extends Record<string, any> ? TState : {}>> extends true ? {} : MismatchInfo<RegleRuleTree<Unwrap<TState extends Record<string, any> ? TState : {}>, Partial<AllRulesDeclarations> & TCustomRules>, NoInferLegacy<TRules>>>(
|
|
1738
|
+
<TState extends Record<string, any> | MaybeInput<PrimitiveTypes>, TRules extends ReglePartialRuleTree<Unwrap<TState extends Record<string, any> ? TState : {}>, Partial<AllRulesDeclarations> & TCustomRules> & TValid, TDecl extends RegleRuleDecl<NonNullable<TState>, Partial<AllRulesDeclarations> & TCustomRules>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]>, TValid = isDeepExact<NoInferLegacy<TRules>, Unwrap<TState extends Record<string, any> ? TState : {}>> extends true ? {} : MismatchInfo<RegleRuleTree<Unwrap<TState extends Record<string, any> ? TState : {}>, Partial<AllRulesDeclarations> & TCustomRules>, NoInferLegacy<TRules>>>(...params: [
|
|
1739
|
+
state: Maybe<MaybeRef<TState> | DeepReactiveState<TState>>,
|
|
1740
|
+
rulesFactory: TState extends MaybeInput<PrimitiveTypes> ? MaybeRefOrGetter<TDecl> : TState extends Record<string, any> ? MaybeRef<TRules> | ((...args: any[]) => TRules) : {},
|
|
1741
|
+
...(HaveAnyRequiredProps<useRegleFnOptions<TState, TRules, TAdditionalOptions, TValidationGroups>> extends true ? [options: useRegleFnOptions<TState, TRules, TAdditionalOptions, TValidationGroups>] : [options?: useRegleFnOptions<TState, TRules, TAdditionalOptions, TValidationGroups>])
|
|
1742
|
+
]): NonNullable<TState> extends PrimitiveTypes ? RegleSingleField<NonNullable<TState>, TDecl, TShortcuts, TAdditionalReturnProperties> : Regle<TState extends Record<string, any> ? Unwrap<TState> : {}, TRules, TValidationGroups, TShortcuts, TAdditionalReturnProperties>;
|
|
1738
1743
|
__config?: {
|
|
1739
1744
|
rules?: () => CustomRulesDeclarationTree;
|
|
1740
1745
|
modifiers?: RegleBehaviourOptions;
|
|
@@ -1814,6 +1819,13 @@ type RegleEnforceCustomRequiredRules<T extends Partial<AllRulesDeclarations> | u
|
|
|
1814
1819
|
};
|
|
1815
1820
|
|
|
1816
1821
|
type RemoveCommonKey<T extends readonly any[], K extends PropertyKey> = T extends [infer F, ...infer R] ? [Prettify<Omit<F, K>>, ...RemoveCommonKey<R, K>] : [];
|
|
1822
|
+
type MergePropsIntoRequiredBooleans<TObject extends Record<string, any>> = {
|
|
1823
|
+
[K in keyof TObject]-?: TObject[K] extends NonNullable<TObject[K]> ? true : false;
|
|
1824
|
+
}[keyof TObject];
|
|
1825
|
+
/**
|
|
1826
|
+
* Ensure that if at least one prop is required, the "prop" object will be required too
|
|
1827
|
+
*/
|
|
1828
|
+
type HaveAnyRequiredProps<TObject extends Record<string, any>> = [TObject] extends [never] ? false : TObject extends Record<string, any> ? MergePropsIntoRequiredBooleans<TObject> extends false ? false : true : false;
|
|
1817
1829
|
/**
|
|
1818
1830
|
* Get item value from object, otherwise fallback to undefined. Avoid TS to not be able to infer keys not present on all unions
|
|
1819
1831
|
*/
|
|
@@ -2672,7 +2684,7 @@ type UseScopedRegleOptions<TAsRecord extends boolean> = {
|
|
|
2672
2684
|
scopeKey: string;
|
|
2673
2685
|
} : {});
|
|
2674
2686
|
|
|
2675
|
-
type
|
|
2687
|
+
type CreateScopedUseRegleOptions<TCustomRegle extends useRegleFn<any, any>, TAsRecord extends boolean> = {
|
|
2676
2688
|
/**
|
|
2677
2689
|
* Inject a global configuration to the exported composables to keep your translations and typings
|
|
2678
2690
|
*/
|
|
@@ -2689,7 +2701,10 @@ type CreateScopedUseRegleOption<TCustomRegle extends useRegleFn<any, any>, TAsRe
|
|
|
2689
2701
|
declare function createScopedUseRegle<TCustomRegle extends useRegleFn<any, any> = useRegleFn<Partial<AllRulesDeclarations>>, TAsRecord extends boolean = false, TReturnedRegle extends useRegleFn<any, any, any, any> = TCustomRegle extends useRegleFn<infer A, infer B> ? useRegleFn<A, B, {
|
|
2690
2702
|
dispose: () => void;
|
|
2691
2703
|
register: () => void;
|
|
2692
|
-
}, UseScopedRegleOptions<TAsRecord>> : useRegleFn<Partial<AllRulesDeclarations
|
|
2704
|
+
}, UseScopedRegleOptions<TAsRecord>> : useRegleFn<Partial<AllRulesDeclarations>, any, {
|
|
2705
|
+
dispose: () => void;
|
|
2706
|
+
register: () => void;
|
|
2707
|
+
}, UseScopedRegleOptions<TAsRecord>>>(options?: CreateScopedUseRegleOptions<TCustomRegle, TAsRecord>): {
|
|
2693
2708
|
useScopedRegle: TReturnedRegle;
|
|
2694
2709
|
useCollectScope: useCollectScopeFn<TAsRecord>;
|
|
2695
2710
|
};
|
|
@@ -2782,4 +2797,4 @@ declare function defineRules<TRules extends RegleUnknownRulesTree>(rules: TRules
|
|
|
2782
2797
|
*/
|
|
2783
2798
|
declare function refineRules<TRules extends RegleUnknownRulesTree, TRefinement extends ReglePartialRuleTree<InferInput<TRules>> & RegleUnknownRulesTree>(rules: TRules, refinement: (state: Ref<InferInput<TRules>>) => TRefinement): (state: Ref<InferInput<TRules>>) => Merge<TRules, TRefinement>;
|
|
2784
2799
|
|
|
2785
|
-
export { type $InternalRegleStatus, type AllRulesDeclarations, type CommonAlphaOptions, type CommonComparisonOptions, type DeepMaybeRef, type DeepReactiveState, type DefaultValidatorsTree, type FormRuleDeclaration, type InferInput, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleShortcuts, type InferRegleStatusType, type InferSafeOutput, type InlineRuleDeclaration, InternalRuleType, type JoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type MaybeInput, type MaybeOutput, type MaybeVariantStatus, type MergedRegles, type MergedScopedRegles, type NarrowVariant, type NoInferLegacy, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type ReglePartialRuleTree, type RegleResult, type RegleRoot, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleMetadataExtended, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleTypeReturn, type RegleRuleWithParamsDefinition, type RegleShortcutDefinition, type RegleSingleField, type RegleStatus, type RegleUniversalParams, type RegleUnknownRulesTree, 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, defineRules, extendRegleConfig, flatErrors, inferRules, type inferRulesFn, mergeRegles, narrowVariant, refineRules, unwrapRuleParameters, useCollectScope, useRegle, type useRegleFn, useRootStorage, useScopedRegle, variantToRef };
|
|
2800
|
+
export { type $InternalRegleStatus, type AllRulesDeclarations, type CommonAlphaOptions, type CommonComparisonOptions, type CreateScopedUseRegleOptions, type DeepMaybeRef, type DeepReactiveState, type DefaultValidatorsTree, type FormRuleDeclaration, type HaveAnyRequiredProps, type InferInput, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleShortcuts, type InferRegleStatusType, type InferSafeOutput, type InlineRuleDeclaration, InternalRuleType, type JoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type MaybeInput, type MaybeOutput, type MaybeVariantStatus, type MergedRegles, type MergedScopedRegles, type NarrowVariant, type NoInferLegacy, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type ReglePartialRuleTree, type RegleResult, type RegleRoot, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleMetadataExtended, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleTypeReturn, type RegleRuleWithParamsDefinition, type RegleShortcutDefinition, type RegleSingleField, type RegleStatus, type RegleUniversalParams, type RegleUnknownRulesTree, 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, type UseScopedRegleOptions, createRule, createScopedUseRegle, createVariant, defineRegleConfig, defineRules, extendRegleConfig, flatErrors, inferRules, type inferRulesFn, mergeRegles, narrowVariant, refineRules, unwrapRuleParameters, useCollectScope, type useCollectScopeFn, useRegle, type useRegleFn, useRootStorage, useScopedRegle, variantToRef };
|
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,watchEffect,triggerRef,toRef,unref,version,nextTick}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 Ct=Symbol("regle-rule");function or(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function U(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>U(n)))),r=="Map"&&(t=new Map([...e].map(n=>[U(n[0]),U(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,or(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=U(e[n]);}return t}function F(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Pe(e,...t){for(var r=[].slice.call(arguments),n,a=r.length;n=r[a-1],a--;)if(!n||typeof n!="object"&&typeof n!="function")throw new Error("expected object, got "+n);for(var o=r[0],s=r.slice(1),i=s.length,a=0;a<i;a++){var $=s[a];for(var d in $)o[d]=$[d];}return o}function Xe(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 ke(e,t,r){let n,a=(...o)=>new Promise(s=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(s);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a}var Ze={Inline:"__inline",Async:"__async"};function Dt(e,t){return e.some(r=>r[t])}function It(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 Ot(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function wt(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(s=>s.trim()).filter(s=>s.length>0).length:0}function et(e,...t){let{validator:r,type:n}=e,a=n===Ze.Async||r.constructor.name==="AsyncFunction";return {...{validator(i,...$){return e.validator(i,...re($.length?$:t))},message(i){return typeof e.message=="function"?e.message({...i,$params:re(i?.$params?.length?i.$params:t)}):e.message},active(i){return typeof e.active=="function"?e.active({...i,$params:re(i?.$params?.length?i.$params:t)}):e.active??true},tooltip(i){return typeof e.tooltip=="function"?e.tooltip({...i,$params:re(i?.$params?.length?i.$params:t)}):e.tooltip??[]},exec(i){let $=e.validator(i,...re(t)),d;return $ instanceof Promise?$.then(y=>(d=y,typeof d=="object"&&"$valid"in d?d.$valid:typeof d=="boolean"?d:false)):(d=$,typeof d=="object"&&"$valid"in d?d.$valid:typeof d=="boolean"?d: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:Ot(t),_brand:Ct}}function tt(e){if(typeof e.validator=="function"){let r=et(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(wt(e.validator)>1){let a=function(...o){return et(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("[createRule] validator must be a function")}function rt(){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 s(v){let x=t.value.get(v);if(x)return x;{let C=ref({});return t.value.set(v,C),C}}function i(v){let x=r.value.get(v);if(x)return x;{let C=ref([]);return r.value.set(v,C),C}}function $(v,x,C){o.value.set(`${v}-${x}`,C);}function d(v,x){return o.value.get(`${v}-${x}`)}function y(v,x){v&&x!=null&&o.value.delete(`${v}-${x}`);}function G(v,x){n.value.set(v,x);}function E(v){return n.value.get(v)??false}function j(v,x){e.value.set(v,x);}function O(v,x){let C=e.value.get(v);return C?P(x,C)?{valid:true}:{valid:false}:void 0}function P(v,x){let C=Object.keys(x),R=Object.keys(v);return R.length!==C.length||!R.every(c=>C.includes(c))?false:R.every(c=>{let g=v[c],T=x[c];return !T||!g||typeof g=="function"||typeof T=="function"||typeof g=="number"||typeof g=="boolean"?false:g._params?g._params?.every((N,W)=>{if(typeof T=="number"||typeof T=="boolean")return true;{let J=re(T._params),z=re(g._params);return J?.[W]===z?.[W]}}):true})}function l(v){let x=a.value.get(v);if(x)return x;{let C=ref(false),R=ref(true),b=ref({}),c=ref(false);return a.value.set(v,{$pending:C,$valid:R,$metadata:b,$validating:c}),{$pending:C,$valid:R,$metadata:b,$validating:c}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:j,setDirtyEntry:G,checkRuleDeclEntry:O,getDirtyState:E,trySetRuleStatusRef:l,getFieldsEntry:s,getCollectionsEntry:i,getArrayStatus:d,addArrayStatus:$,deleteArrayStatus:y,arrayStatusStorage:o}}function Ue(e){return F(e.value)}function nt(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 Me={LessThan:-1,EqualTo:0,GreaterThan:1};function mr(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]),s=Number(n[a]);if(o>s)return Me.GreaterThan;if(s>o)return Me.LessThan;if(!isNaN(o)&&isNaN(s))return Me.GreaterThan;if(isNaN(o)&&!isNaN(s))return Me.LessThan}return Me.EqualTo}var Ge=mr(version,"3.5.0")!==-1;function yr(){return Math.floor(Math.random()*Date.now()).toString()}function be(){return typeof window>"u"?yr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Pt(e){return getCurrentScope()?(onScopeDispose(e),true):false}function Mt(e){let t=false,r,n=effectScope(true);return (...a)=>(t||(r=n.run(()=>e(...a)),t=true),r)}function We(e,t){return Ue(e)||F(t.value)&&!te(t.value)&&!Object.entries(t.value).some(([r,n])=>ye(n)||typeof n=="function")}function At(e,t,r=false){return !!e.value&&F(e.value)&&"$each"in e.value||r&&Array.isArray(t.value)&&t.value.some(F)||Array.isArray(t.value)&&t.value.some(F)}function Be(e){return !!e.value&&F(e.value)}function ye(e){return F(e)&&"_validator"in e}function Ae(e){return typeof e.value=="function"?"_validator"in e.value:true}function jt(e){return F(e)&&"$fields"in e}function at(e){return !!e&&"$rules"in e}function lt({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 Vt({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function Ft(e){return F(e)&&"$each"in e}function ot(e,t){let{includePath:r=false}=t??{};if(Array.isArray(e)&&e.every(n=>!F(n)))return e;if(Ft(e)){let n=r?e.$self?.map(o=>({error:o,path:""}))??[]:e.$self??[],a=e.$each?.map(o=>Le(o,r))??[];return n?.concat(a.flat())}else return Object.entries(e).map(([n,a])=>Le(a,r,[n])).flat()}function Le(e,t=false,r){let n=t&&!r?[]:r;if(Array.isArray(e)&&e.every(a=>!F(a)))return t?e.map(a=>({error:a,path:n?.join(".")??""})):e;if(Ft(e)){let a=n?.length?e.$self?.map(s=>({error:s,path:n.join(".")}))??[]:e.$self??[],o=e.$each?.map((s,i)=>Le(s,t,n?.concat(i.toString())))??[];return a?.concat(o.flat())}else return Object.entries(e).map(([a,o])=>Le(o,t,n?.concat(a))).flat()}function _t({customMessages:e,rule:t,ruleKey:r,state:n,path:a,storage:o,$debounce:s,modifiers:i}){let $=effectScope(),d={},y,G=ref(false),E=ref(false),{$pending:j,$valid:O,$metadata:P,$validating:l}=o.trySetRuleStatusRef(`${a}.${r}`);function v(){$=effectScope(),d=$.run(()=>{let T=ref(false),N=ref(false),W=ref(true),J=ref(false),z=ref(false),le=computed(()=>({$value:n.value,$error:N.value,$dirty:T.value,$pending:J.value,$correct:z.value,$invalid:W.value,$rule:{$valid:O.value,$invalid:!O.value,$pending:j.value},$params:f.value,...P.value})),D=computed(()=>Ae(t)?typeof t.value.active=="function"?t.value.active(le.value):!!t.value.active:true);function H(w){let K="",m=e?e[r]?.[w]:void 0;if(m&&(typeof m=="function"?K=m(le.value):K=m),Ae(t)){let M=`_${w}_patched`;m&&!t.value[M]||(typeof t.value[w]=="function"?K=t.value[w](le.value):K=t.value[w]??"");}return K}let ve=computed(()=>{let w=H("message");return te(w)&&(w="This field is not valid"),w}),Re=computed(()=>H("tooltip")),u=computed(()=>Ae(t)&&t.value.type?t.value.type:r),p=computed(()=>Ae(t)?t.value.validator:t.value),f=computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),I=computed(()=>`${a}.${u.value}`);return {$active:D,$message:ve,$type:u,$validator:p,$params:f,$path:I,$tooltip:Re,$fieldCorrect:z,$fieldError:N,$fieldDirty:T,$fieldPending:J,$fieldInvalid:W}}),y=watch(d?.$params,()=>{(!i.$silent.value||i.$rewardEarly.value&&d.$fieldError.value)&&b();});}v();function x(){O.value=true,d.$fieldDirty.value&&(j.value=true);}async function C(){let T=false;try{let N=d.$validator.value;if(typeof N!="function")return console.error(`${a}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let W=N(n.value,...d.$params.value),J=n.value;x();let z;if(W instanceof Promise?z=await W:z=W,n.value!==J)return !0;if(typeof z=="boolean")T=z;else {let{$valid:le,...D}=z;T=le,P.value=D;}}catch{T=false;}finally{j.value=false;}return T}let R=ke(C,s??200);async function b(){try{l.value=!0;let T=!1;if(E.value=!0,ye(t.value)&&t.value._async)T=await R();else {let N=d.$validator.value,W=N(n.value,...d.$params.value);if(W instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(W!=null)if(typeof W=="boolean")T=W;else {let{$valid:J,...z}=W;T=J,P.value=z;}}return O.value=T,T}catch{return false}finally{l.value=false,E.value=false;}}function c(){O.value=true,P.value={},j.value=false,l.value=false,v();}function g(){y(),$.stop(),$=effectScope();}return reactive({...d,$pending:j,$valid:O,$metadata:P,$haveAsync:G,$maybePending:E,$validating:l,$parse:b,$unwatch:g,$watch:v,$reset:c})}function Ee({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:o,options:s,externalErrors:i,schemaErrors:$,schemaMode:d,onUnwatch:y,$isArray:G,initialState:E,shortcuts:j,onValidate:O}){let P=effectScope(),l,v=[],x,C,R,b,c,g=()=>{};function T(){let h=t.value,V=o.checkRuleDeclEntry(n,h);H.value=Object.fromEntries(Object.entries(h).filter(([S])=>S.startsWith("$"))),J(),D.value=Object.fromEntries(Object.entries(t.value).filter(([S])=>!S.startsWith("$")).map(([S,X])=>{if(X){let se=toRef(()=>X);return [S,_t({modifiers:{$silent:l.$silent,$rewardEarly:l.$rewardEarly},customMessages:r,rule:se,ruleKey:S,state:e,path:n,storage:o,$debounce:H.value.$debounce})]}return []}).filter(S=>!!S.length)),l.processShortcuts(),N(),V?.valid!=null&&(l.$dirty.value=o.getDirtyState(n),(l.$dirty.value&&!l.$silent.value||l.$rewardEarly.value&&l.$error.value)&&g()),o.addRuleDeclEntry(n,h);}function N(){g=l.$debounce.value?ke(le,l.$debounce.value??l.$haveAnyAsyncRule?100:0):le;}function W(){D.value&&Object.entries(D.value).forEach(([h,V])=>{V.$unwatch();}),R(),c?.(),l.$dirty.value&&o.setDirtyEntry(n,l.$dirty.value),x?.(),C?.(),P.stop(),P=effectScope(),v.forEach(h=>h.stop()),v=[],y?.(),b?.();}function J(){D.value&&Object.entries(D.value).forEach(([h,V])=>{V.$watch();}),l=P.run(()=>{let h=ref(false),V=ref(false),S=computed(()=>h.value),X=computed(()=>H.value.$debounce),se=computed(()=>H.value.$lazy!=null?H.value.$lazy:unref(s.lazy)!=null?unref(s.lazy):false),ie=computed(()=>H.value.$rewardEarly!=null?H.value.$rewardEarly:unref(s.rewardEarly)!=null?unref(s.rewardEarly):false),Fe=computed(()=>H.value.$clearExternalErrorsOnChange!=null?H.value.$clearExternalErrorsOnChange:unref(s.clearExternalErrorsOnChange)!=null?unref(s.clearExternalErrorsOnChange):true),B=computed(()=>ie.value?true:H.value.$silent!=null?H.value.$silent:unref(s.silent)!=null?unref(s.silent):false),A=computed(()=>H.value.$autoDirty!=null?H.value.$autoDirty:unref(s.autoDirty)!=null?unref(s.autoDirty):true),k=computed(()=>Object.entries(D.value).some(([ue,Q])=>Q.$validating)),we=computed({get:()=>e.value,set(ue){x(),e.value=ue,z();}}),_e=computed(()=>Se.value&&!$e.value&&h.value),yt=computed(()=>lt({field:{$rules:D.value,$error:_e.value,$externalErrors:i?.value,$schemaErrors:$?.value}})),gt=computed(()=>lt({field:{$rules:D.value,$error:_e.value,$externalErrors:i?.value,$schemaErrors:$?.value},silent:true})),Qe=computed(()=>h.value?E.value instanceof Date&&e.value instanceof Date?Xe(E.value).getDate()!==Xe(e.value).getDate():E.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(E.value)?e.value.length!==E.value.length:E.value!==e.value:false),vt=computed(()=>Qe.value),$t=computed(()=>Vt({field:{$rules:D.value}})),St=computed(()=>(B.value||S.value)&&!(Se.value||$e.value)),$e=computed(()=>V.value||!ie.value?Object.entries(D.value).some(([ue,Q])=>Q.$pending):false),Se=computed(()=>i?.value?.length||$?.value?.length?true:Ne.value?false:!ie.value||ie.value&&V.value?Object.entries(D.value).some(([ue,Q])=>!(Q.$valid&&!Q.$maybePending)):false),Tt=computed(()=>a),Ne=computed(()=>!!(te(D.value)&&!d)),ht=computed(()=>i?.value?.length||Ne.value?false:h.value&&!te(e.value)&&!k.value&&!$e.value?d?!$?.value?.length:Object.values(D.value).some(Q=>Q.$active)?Object.values(D.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),ar=computed(()=>Object.entries(D.value).some(([ue,Q])=>Q.$haveAsync));function lr(){j?.fields&&Object.entries(j.fields).forEach(([ue,Q])=>{let xt=effectScope();bt[ue]=xt.run(()=>{let Et=ref();return watchEffect(()=>{Et.value=Q(reactive({$dirty:h,$externalErrors:i?.value??[],$value:e,$silentValue:we,$rules:D,$error:_e,$pending:$e,$invalid:Se,$correct:ht,$errors:yt,$ready:St,$silentErrors:gt,$anyDirty:S,$tooltips:$t,$name:Tt,$inactive:Ne,$edited:Qe,$anyEdited:vt}));}),Et}),v.push(xt);});}let bt={};return watch(Se,ue=>{ue||(V.value=false);}),{$error:_e,$pending:$e,$invalid:Se,$correct:ht,$debounce:X,$lazy:se,$errors:yt,$ready:St,$silentErrors:gt,$rewardEarly:ie,$autoDirty:A,$silent:B,$clearExternalErrorsOnChange:Fe,$anyDirty:S,$edited:Qe,$anyEdited:vt,$name:Tt,$haveAnyAsyncRule:ar,$shortcuts:bt,$validating:k,$tooltips:$t,$dirty:h,triggerPunishment:V,processShortcuts:lr,$silentValue:we,$inactive:Ne}}),z(),R=watch(l.$dirty,h=>{o.setDirtyEntry(n,h),Object.values(D.value).forEach(V=>{V.$fieldDirty=h;});}),c=watch([l.$error,l.$correct,l.$invalid,l.$pending],()=>{Object.values(D.value).forEach(h=>{h.$fieldError=l.$error.value,h.$fieldInvalid=l.$invalid.value,h.$fieldPending=l.$pending.value,h.$fieldCorrect=l.$correct.value;});}),C=watch(l.$invalid,h=>{l.$rewardEarly.value&&!h&&(l.triggerPunishment.value=false);}),b=watch(l.$haveAnyAsyncRule,N);}function z(){x=watch(e,()=>{l.$autoDirty.value&&!l.$silent.value&&(l.$dirty.value||(l.$dirty.value=true)),t.value instanceof Function&&T(),(!l.$silent.value||l.$rewardEarly.value&&l.$error.value)&&g(),l.$rewardEarly.value!==true&&l.$clearExternalErrorsOnChange.value&&f();},{deep:G?true:Ge?1:true});}function le(){Object.values(D.value).forEach(h=>{h.$parse();});}let D=ref({}),H=ref({});T();function ve(h,V){if(f(),l.$dirty.value=false,l.triggerPunishment.value=false,o.setDirtyEntry(n,false),!V)if(h?.toInitialState)e.value=U(E);else if(h?.toState){let S;typeof h?.toState=="function"?S=h?.toState():S=h?.toState,E.value=U(S),e.value=U(S);}else E.value=F(e.value)?U(e.value):Array.isArray(e.value)?[...e.value]:e.value;h?.clearExternalErrors&&f(),V||Object.entries(D.value).forEach(([S,X])=>{X.$reset();}),!l.$lazy.value&&!l.$silent.value&&Object.values(D.value).forEach(S=>S.$parse());}function Re(h=true,V=false){l.$dirty.value||(l.$dirty.value=true),V&&h?(!l.$silent.value||l.$rewardEarly.value&&l.$error.value)&&g():h&&g();}async function u(){try{if(d)return O?(Re(!1),O()):{valid:!1,data:e.value};let h=e.value;if(l.triggerPunishment.value=!0,!l.$dirty.value)l.$dirty.value=!0;else if(!l.$silent.value&&l.$dirty.value&&!l.$pending.value)return {valid:!l.$error.value,data:h};return d?{valid:!$?.value?.length,data:h}:te(D.value)?{valid:!0,data:h}:{valid:(await Promise.allSettled(Object.entries(D.value).map(([X,se])=>se.$parse()))).every(X=>X.status==="fulfilled"?X.value===!0:!1),data:h}}catch{return {valid:false,data:e.value}}}function p(h=true){return l.$dirty.value?e.value:h?{_null:true}:null}function f(){i?.value?.length&&(i.value=[]);}!l.$lazy.value&&!l.$dirty.value&&!l.$silent.value&&g();let{$shortcuts:I,$validating:w,$autoDirty:K,$rewardEarly:m,$clearExternalErrorsOnChange:M,$haveAnyAsyncRule:Y,$debounce:Z,$lazy:ee,triggerPunishment:oe,...fe}=l;return reactive({...fe,$externalErrors:i,$value:e,$rules:D,...I,$reset:ve,$touch:Re,$validate:u,$unwatch:W,$watch:J,$extractDirtyFields:p,$clearExternalErrors:f})}function ut({$id:e,path:t,index:r,options:n,storage:a,stateValue:o,customMessages:s,rules:i,externalErrors:$,schemaErrors:d,initialState:y,shortcuts:G,fieldName:E,schemaMode:j}){let O=i.$key?i.$key:be(),P=`${t}.${String(O)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?P=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:O,enumerable:false,configurable:false,writable:false}}));let l=toRef($?.value??[],r),v=computed(()=>d?.value?.[r]),x=Ce({state:o,rulesDef:toRef(()=>i),customMessages:s,path:P,storage:a,options:n,externalErrors:l,schemaErrors:v,initialState:y,shortcuts:G,fieldName:E,schemaMode:j});if(x){let C=o.value?.$id;x.$id=C??String(O),a.addArrayStatus(e,x.$id,x);}return x}function Gt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:s,schemaErrors:i,schemaMode:$,initialState:d,shortcuts:y,fieldName:G}){let E=effectScope(),j,O=effectScope(),P,l=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let v=ref(),x=ref(e.value),C,R=ref({}),b=a.getCollectionsEntry(n);P=O.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)})),c(),N();function c(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(v.value=be(),Object.defineProperties(e.value,{$id:{value:v.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(v.value=e.value.$id)),x.value=R.value.$value,Array.isArray(e.value)&&!P.isPrimitiveArray.value?b.value=e.value.filter(u=>typeof u=="object").map((u,p)=>{let{scope:f,unwrapped:I}=nt(t.value.$each,toRef(()=>u),p);f&&l.push(f);let w=toRef(d.value??[],p),K=toRef(s?.value??{},"$each"),m=computed(()=>i?.value?.$each),M=ut({$id:v.value,path:n,customMessages:r,rules:I??{},stateValue:toRef(()=>u),index:p,options:o,storage:a,externalErrors:K,schemaErrors:m,initialState:w,shortcuts:y,fieldName:G,schemaMode:$});return M||null}).filter(u=>!!u):b.value=[],R.value=Ee({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:toRef(s?.value??{},"$self"),schemaErrors:computed(()=>i?.value?.$self),$isArray:true,initialState:d,shortcuts:y,fieldName:G,schemaMode:$});}function g(){if(Array.isArray(e.value)&&!P.isPrimitiveArray.value){let u=U(b.value);b.value=e.value.filter(p=>typeof p=="object").map((p,f)=>{let I=toRef(()=>p);if(p.$id&&b.value.find(w=>w.$id===p.$id)){let w=a.getArrayStatus(v.value,p.$id);return w?(w.$value=I,w):null}else {let{scope:w,unwrapped:K}=nt(t.value.$each,I,f);w&&l.push(w);let m=toRef(s?.value??{},"$each"),M=computed(()=>i?.value?.$each??[]),Y=ut({$id:v.value,path:n,customMessages:r,rules:K??{},stateValue:I,index:f,options:o,storage:a,externalErrors:m,schemaErrors:M,initialState:toRef(d.value??[],f),shortcuts:y,fieldName:G,schemaMode:$});return Y||null}}).filter(p=>!!p),u.filter(p=>!e.value?.find(f=>p.$id===f.$id)).forEach((p,f)=>{a.deleteArrayStatus(v.value,f.toString());});}else b.value=[];}function T(){C=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?c():g();},{deep:Ge?1:true,flush:"pre"});}function N(){T(),E=effectScope(),j=E.run(()=>{let u=computed({get:()=>e.value,set(S){C(),e.value=S,T();}}),p=computed(()=>R.value.$dirty&&(!b.value.length||b.value.every(S=>S.$dirty))),f=computed(()=>R.value.$anyDirty||b.value.some(S=>S.$anyDirty)),I=computed(()=>R.value.$invalid||b.value.some(S=>S.$invalid)),w=computed(()=>(te(R.value.$rules)?true:R.value.$correct)&&(!b.value.length||b.value.every(S=>S.$correct||S.$anyDirty&&!S.$invalid))),K=computed(()=>R.value.$error||b.value.some(S=>S.$error)),m=computed(()=>!(I.value||M.value)),M=computed(()=>R.value.$pending||b.value.some(S=>S.$pending)),Y=computed(()=>!!b.value.length&&b.value.every(S=>S.$edited)),Z=computed(()=>R.value.$anyEdited||b.value.some(S=>S.$anyEdited)),ee=computed(()=>({$self:R.value.$errors,$each:b.value.map(S=>S.$errors)})),oe=computed(()=>({$self:R.value.$silentErrors,$each:b.value.map(S=>S.$silentErrors)})),fe=computed(()=>G);function h(){y?.collections&&Object.entries(y?.collections).forEach(([S,X])=>{let se=effectScope();V[S]=se.run(()=>{let ie=ref();return watchEffect(()=>{ie.value=X(reactive({$dirty:p,$error:K,$silentValue:u,$pending:M,$invalid:I,$correct:w,$errors:ee,$ready:m,$silentErrors:oe,$anyDirty:f,$name:fe,$each:b,$self:R,$value:e,$edited:Y,$anyEdited:Z}));}),ie}),l.push(se);});}let V={};return h(),{$dirty:p,$anyDirty:f,$invalid:I,$correct:w,$error:K,$pending:M,$errors:ee,$silentErrors:oe,$ready:m,$name:fe,$shortcuts:V,$silentValue:u,$edited:Y,$anyEdited:Z}}),P.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 W(){C&&C(),R.value&&R.value.$unwatch(),b.value&&b.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),E.stop(),E=effectScope(),O.stop(),O=effectScope(true),l.forEach(u=>u.stop()),l=[];}function J(u=true,p=false){R.value.$touch(u,p),b.value.forEach(f=>{f.$touch(u,p);});}function z(u,p){if(W(),!p)if(u?.toInitialState)e.value=U(d.value);else if(u?.toState){let f;typeof u?.toState=="function"?f=u?.toState():f=u?.toState,d.value=U(f),e.value=U(f);}else d.value=U(e.value);u?.clearExternalErrors&&D(),R.value.$reset(),b.value.forEach(f=>{f.$reset(u,true);}),p||c();}async function le(){let u=e.value;try{return {valid:(await Promise.allSettled([R.value.$validate(),...b.value.map(I=>I.$validate())])).every(I=>I.status==="fulfilled"?I.value.valid===!0:!1),data:u}}catch{return {valid:false,data:u}}}function D(){R.value.$clearExternalErrors(),b.value.forEach(u=>{u.$clearExternalErrors();});}function H(u=true){let p=b.value.map(f=>{if(jt(f))return f.$extractDirtyFields(u)});return u&&p.every(f=>te(f))&&(p=[]),p}let{$shortcuts:ve,...Re}=j;return reactive({$self:R,...Re,...ve,$each:b,$value:e,$validate:le,$unwatch:W,$watch:N,$touch:J,$reset:z,$extractDirtyFields:H,$clearExternalErrors:D})}function ze({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:a,schemaErrors:o,rootSchemaErrors:s,validationGroups:i,initialState:$,fieldName:d,...y}){let G=effectScope(),E,j=[],O=null,P=null,l=null,v=null;async function C(u=true){let p=Object.entries(e.value),f=Object.fromEntries(p.filter(([m,M])=>!!M).map(([m,M])=>{if(M){let Y=toRef(t.value??{},m),Z=toRef(()=>M),ee=toRef(a?.value??{},m),oe=computed(()=>o?.value?.[m]),fe=toRef($?.value??{},m);return [m,Ce({state:Y,rulesDef:Z,path:r?`${r}.${m}`:m,externalErrors:ee,schemaErrors:oe,initialState:fe,fieldName:m,...y})]}return []})),I=Object.fromEntries(Object.entries(unref(a)??{}).filter(([m,M])=>!(m in e.value)&&!!M).map(([m])=>{let M=toRef(t.value??{},m),Y=toRef(a?.value??{},m),Z=computed(()=>o?.value?.[m]),ee=toRef($?.value??{},m);return [m,Ce({state:M,rulesDef:computed(()=>({})),path:r?`${r}.${m}`:m,externalErrors:Y,schemaErrors:Z,initialState:ee,fieldName:m,...y})]})),w=Object.fromEntries(Object.entries(unref(o)??{}).map(([m])=>{let M=toRef(t.value??{},m),Y=toRef(a?.value??{},m),Z=computed(()=>o?.value?.[m]),ee=toRef($?.value??{},m);return [m,Ce({state:M,rulesDef:computed(()=>({})),path:r?`${r}.${m}`:m,externalErrors:Y,schemaErrors:Z,initialState:ee,fieldName:m,...y})]})),K=Object.fromEntries(Object.entries(t.value??{}).filter(([m])=>!(m in e.value)&&!(m in(I??{}))&&!(m in(w??{}))).map(([m])=>{let M=toRef(t.value??{},m),Y=toRef(a?.value??{},m),Z=computed(()=>o?.value?.[m]),ee=toRef($?.value??{},m);return [m,Ce({state:M,rulesDef:computed(()=>({})),path:r?`${r}.${m}`:m,externalErrors:Y,schemaErrors:Z,initialState:ee,fieldName:m,...y})]}));R.value={...f,...I,...w,...K},u&&g();}let R=y.storage.getFieldsEntry(r);C();function b(){a&&(l=watch(a,()=>{T(),C();},{deep:true}));}function c(){v=watch(t,()=>{E.$autoDirty.value&&!E.$silent.value&&(T(),C(),J(true,true));},{flush:"sync"});}function g(){n&&(O?.(),O=watch(n,()=>{T(),C();},{deep:true,flush:"pre"}),b()),s&&(P?.(),P=watch(s,()=>{T(),C();},{deep:true,flush:"post"})),c(),E=G.run(()=>{let u=computed({get:()=>t.value,set(B){T(),t.value=B,C();}}),p=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).every(([B,A])=>A?.$dirty)),f=computed(()=>Object.entries(R.value).some(([B,A])=>A?.$anyDirty)),I=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).some(([B,A])=>A?.$invalid)),w=computed(()=>{let B=Object.entries(R.value).filter(([A,k])=>at(k)?!k.$inactive:true);return B.length?B.every(([A,k])=>y.schemaMode?k.$correct:at(k)?"required"in k.$rules&&k.$rules.required.$active?k?.$correct:!k.$invalid&&!k.$pending:k?.$correct):false}),K=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).some(([B,A])=>A?.$error)),m=computed(()=>unref(y.options.rewardEarly)!=null?unref(y.options.rewardEarly):false),M=computed(()=>unref(y.options.silent)!=null?unref(y.options.silent):!!m.value),Y=computed(()=>unref(y.options.autoDirty)!=null?unref(y.options.autoDirty):true),Z=computed(()=>(M.value||f.value)&&!(I.value||oe.value)),ee=ref(false),oe=computed(()=>ee.value||Object.entries(R.value).some(([B,A])=>A?.$pending)),fe=computed(()=>Object.fromEntries(Object.entries(R.value).map(([B,A])=>[B,A?.$errors]))),h=computed(()=>Object.fromEntries(Object.entries(R.value).map(([B,A])=>[B,A?.$silentErrors]))),V=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).every(([B,A])=>A?.$edited)),S=computed(()=>Object.entries(R.value).some(([B,A])=>A?.$anyEdited)),X=computed(()=>d);function se(){y.shortcuts?.nested&&Object.entries(y.shortcuts.nested).forEach(([B,A])=>{let k=effectScope();Fe[B]=k.run(()=>{let we=ref();return watchEffect(()=>{we.value=A(reactive({$dirty:p,$value:t,$silentValue:u,$error:K,$pending:oe,$invalid:I,$correct:w,$ready:Z,$anyDirty:f,$name:X,$silentErrors:h,$errors:fe,$fields:R,$edited:V,$anyEdited:S}));}),we}),j.push(k);});}let ie=computed({get:()=>i?Object.fromEntries(Object.entries(i?.(R.value)??{}).map(([B,A])=>A.length?[B,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(k=>[k,Dt(A,k)])),...Object.fromEntries(["$errors","$silentErrors"].map(k=>[k,It(A,k)]))}]:[])):{},set(){}}),Fe={};return se(),{$dirty:p,$anyDirty:f,$invalid:I,$correct:w,$error:K,$pending:oe,$errors:fe,$silentErrors:h,$ready:Z,$name:X,$shortcuts:Fe,$groups:ie,$silentValue:u,$edited:V,$anyEdited:S,$localPending:ee,$autoDirty:Y,$silent:M}});}function T(){O?.(),l?.(),v?.(),P?.(),j=[],E={},R.value&&Object.entries(R.value).forEach(([u,p])=>{p.$unwatch();});}function N(){Object.entries(R.value).forEach(([u,p])=>{p.$clearExternalErrors();});}function W(u,p){if(l?.(),T(),!p)if(u?.toInitialState)t.value=U({...$.value??{}});else if(u?.toState){let f;typeof u?.toState=="function"?f=u?.toState():f=u?.toState,$.value=U(f),t.value=U(f);}else $.value=U(t.value);Object.values(R.value).forEach(f=>{f.$reset(u,true);}),u?.clearExternalErrors&&N(),b(),p||C();}function J(u=true,p=false){Object.values(R.value).forEach(f=>{f.$touch(u,p);});}function z(u){return u.filter(([p,f])=>F(f)?!(f&&typeof f=="object"&&"_null"in f)&&!te(f):Array.isArray(f)?f.length:true)}function le(u=true){let p=Object.entries(R.value).map(([f,I])=>[f,I.$extractDirtyFields(u)]);return u&&(p=z(p)),Object.fromEntries(p)}async function D(){try{if(y.schemaMode)return y.onValidate?(J(!1),E.$localPending.value=!0,y.onValidate()):{valid:!1,data:t.value};{let u=t.value;return {valid:(await Promise.allSettled(Object.values(R.value).map(I=>I.$validate()))).every(I=>I.status==="fulfilled"?I.value.valid===!0:!1),data:u}}}catch{return {valid:false,data:t.value}}finally{E.$localPending.value=false;}}let{$shortcuts:H,$localPending:ve,...Re}=E;return reactive({...Re,...H,$fields:R,$value:t,$reset:W,$touch:J,$validate:D,$unwatch:T,$watch:g,$clearExternalErrors:N,$extractDirtyFields:le})}function Ce({rulesDef:e,...t}){if(At(e,t.state,t.schemaMode))return Gt({rulesDef:e,...t});if(We(t.state,e)){if(Ue(t.state))return ze({rulesDef:e,...t});{let n=effectScope().run(()=>{let s=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,i=>{s.value=i;},{deep:true}),watch(s,i=>{t.state.value=i;},{deep:true}),{fakeState:s}}),{state:a,...o}=t;return ze({rulesDef:e,...o,state:n.fakeState})}}else if(Be(e))return Ee({rulesDef:e,...t})}function Oe({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:o,schemaErrors:s,schemaMode:i=false,onValidate:$}){let d=rt(),y=ref();return We(n,r)?y.value=ze({rootRules:r,rulesDef:r,state:n,customMessages:a?.(),storage:d,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaErrors:s,rootSchemaErrors:s,schemaMode:i,onValidate:$}):Be(r)&&(y.value=Ee({rulesDef:r,state:n,customMessages:a?.(),storage:d,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaMode:i,schemaErrors:s,onValidate:$})),getCurrentScope()&&onScopeDispose(()=>{y.value?.$unwatch();}),reactive({regle:y})}function Ke(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,silent:t?.silent,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function a(o,s,i){let $=isRef(s)?s:typeof s=="function"?void 0:computed(()=>s),d={...n,...i},y=isRef(o)?o:ref(o),G=shallowRef($??{});typeof s=="function"&&watchEffect(()=>{G.value=s(y),triggerRef(G);});let E=ref(F(y.value)?{...U(y.value)}:U(y.value));return {r$:Oe({scopeRules:G,state:y,options:d,initialState:E,customRules:e,shortcuts:r}).regle}}return a}var Je=Ke();function qe(){function e(t,r){return r}return e}var Rt=qe();function Ht({rules:e,modifiers:t,shortcuts:r}){let n=Ke(e,t,r);n.__config={rules:e,modifiers:t,shortcuts:r};let a=qe();return {useRegle:n,inferRules:a}}function zt(e,{rules:t,modifiers:r,shortcuts:n}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&r?Pe(a.modifiers,r):r,i=a.shortcuts&&n?Pe(a.shortcuts,n):n,$=Ke(o,s,i);$.__config={rules:o,modifiers:s,shortcuts:i};let d=qe();return {useRegle:$,inferRules:d}}function Ve(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(c=>c.$value):Object.fromEntries(Object.entries(e).map(([c,g])=>[c,g.$value])),set:c=>{r||typeof c=="object"&&Object.entries(c).forEach(([g,T])=>e[g].$value=T);}}),a=computed({get:()=>Object.fromEntries(Object.entries(e).map(([c,g])=>[c,g.$silentValue])),set:c=>{typeof c=="object"&&Object.entries(c).forEach(([g,T])=>e[g].$silentValue=T);}}),o=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([g,T])=>T?.$dirty)}),s=computed(()=>Object.entries(e).some(([c,g])=>g?.$anyDirty)),i=computed(()=>Object.entries(e).some(([c,g])=>g?.$invalid)),$=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([g,T])=>T?.$correct||T.$anyDirty&&!T.$invalid)}),d=computed(()=>Object.entries(e).some(([c,g])=>g?.$error)),y=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([g,T])=>T?.$ready)}),G=computed(()=>Object.entries(e).some(([c,g])=>g?.$pending)),E=computed(()=>r?Object.entries(e).map(([c,g])=>g.$errors):Object.fromEntries(Object.entries(e).map(([c,g])=>[c,g.$errors]))),j=computed(()=>r?Object.entries(e).map(([c,g])=>g.$silentErrors):Object.fromEntries(Object.entries(e).map(([c,g])=>[c,g.$silentErrors]))),O=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([g,T])=>T?.$edited)}),P=computed(()=>Object.entries(e).some(([c,g])=>g?.$anyEdited)),l=computed(()=>r?Object.values(e):e);function v(c){Object.values(e).forEach(g=>{g.$reset(c);});}function x(){Object.values(e).forEach(c=>{c.$touch();});}function C(c=true){return Object.values(e).map(g=>g.$extractDirtyFields(c))}function R(){Object.values(e).forEach(c=>{c.$clearExternalErrors();});}async function b(){try{let c=n.value;return {valid:(await Promise.allSettled(Object.values(e).map(N=>N.$validate()))).every(N=>N.status==="fulfilled"?N.value.valid===!0:!1),data:c}}catch{return {valid:false,data:n.value}}}return reactive({...!r&&{$silentValue:a},$errors:E,$silentErrors:j,$instances:l,$value:n,$dirty:o,$anyDirty:s,$invalid:i,$correct:$,$error:d,$pending:G,$ready:y,$edited:O,$anyEdited:P,$reset:v,$touch:x,$validate:b,$extractDirtyFields:C,$clearExternalErrors:R})}function Jt(e,t){function r(n){let a=computed(()=>toValue(n));i();let o=ref($(e.value)),s=reactive({r$:o});function i(){a.value&&!e.value[a.value]&&(e.value[a.value]={});}watch(a,i),watch(e,d=>{o.value=$(d);},{deep:true});function $(d){if(a.value){let y=d[a.value]??{};return Ve(y,!t.asRecord)}else return Ve(d["~~global"]??{},!t.asRecord)}return {r$:s.r$}}return {useCollectScope:r}}function Qt(e,t){let r=t??Je;return {useScopedRegle:(a,o,s)=>{let{namespace:i,scopeKey:$,...d}=s??{};r.__config??={};let y=computed(()=>toValue(i)),G=ref(`${Object.keys(e.value).length+1}-${be()}`),E=computed(()=>s?.scopeKey??`instance-${G.value}`),{r$:j}=r(a,o,d);P(),Pt(O),watch(y,(l,v)=>{O(v),P();}),getCurrentInstance()&&onMounted(()=>{let l=getCurrentInstance();typeof window<"u"&&l?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(l?.proxy?.$el?.parentElement)&&O();});function O(l){let v=l??y.value;v?e.value[v]&&delete e.value[v][E.value]:e.value["~~global"][E.value]&&delete e.value["~~global"][E.value];}function P(){y.value?(e.value[y.value]||(e.value[y.value]={}),e.value[y.value][E.value]=j):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][E.value]=j);}return {r$:j,dispose:O,register:P}}}}function Ye(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):Mt(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=Qt(r,e?.customUseRegle),{useCollectScope:a}=Jt(r,{asRecord:e?.asRecord});return {useScopedRegle:n,useCollectScope:a}}var {useCollectScope:dt,useScopedRegle:pt}=Ye();function er(e,t,r){let n=computed(()=>toValue(e)[t]);return computed(()=>{let o=r.find(s=>{if(s[t]&&"literal"in s[t]){let i=s[t].literal;if(ye(i))return unref(i._params?.[0])===n.value}});if(o)return o;{let s=r.find(i=>F(i[t])&&!Object.keys(i[t]).some($=>$==="literal"));return s||{}}})}function mt(e,t,r){return F(e[t])&&"$value"in e[t]&&e[t]?.$value===r}function tr(e,t,r){let n=isRef(e)?toRef(e.value,"$fields"):toRef(e,"$fields"),a=ref();return watch(n,async()=>{await nextTick(),mt(n.value,t,r)?a.value=n.value:a.value=void 0;},{immediate:true,flush:"pre"}),a}function rr(e){return e}function nr(e,t){return r=>Pe({...e},t(r))}
|
|
2
|
-
export{Ze as InternalRuleType,tt as createRule,Ye as createScopedUseRegle,er as createVariant,Ht as defineRegleConfig,rr as defineRules,zt as extendRegleConfig,ot as flatErrors,Rt as inferRules,
|
|
1
|
+
import {effectScope,computed,toValue,ref,watch,getCurrentInstance,onMounted,reactive,getCurrentScope,onScopeDispose,isRef,shallowRef,watchEffect,triggerRef,toRef,unref,version,nextTick}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 Ct=Symbol("regle-rule");function or(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 k(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>k(n)))),r=="Map"&&(t=new Map([...e].map(n=>[k(n[0]),k(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,or(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=k(e[n]);}return t}function j(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Pe(e,...t){for(var r=[].slice.call(arguments),n,a=r.length;n=r[a-1],a--;)if(!n||typeof n!="object"&&typeof n!="function")throw new Error("expected object, got "+n);for(var o=r[0],s=r.slice(1),i=s.length,a=0;a<i;a++){var $=s[a];for(var p in $)o[p]=$[p];}return o}function Xe(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 Ne(e,t,r){let n,a=(...o)=>new Promise(s=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(s);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a}var Ze={Inline:"__inline",Async:"__async"};function Dt(e,t){return e.some(r=>r[t])}function It(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 Ot(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function wt(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(s=>s.trim()).filter(s=>s.length>0).length:0}function et(e,...t){let{validator:r,type:n}=e,a=n===Ze.Async||r.constructor.name==="AsyncFunction";return {...{validator(i,...$){return e.validator(i,...re($.length?$:t))},message(i){return typeof e.message=="function"?e.message({...i,$params:re(i?.$params?.length?i.$params:t)}):e.message},active(i){return typeof e.active=="function"?e.active({...i,$params:re(i?.$params?.length?i.$params:t)}):e.active??true},tooltip(i){return typeof e.tooltip=="function"?e.tooltip({...i,$params:re(i?.$params?.length?i.$params:t)}):e.tooltip??[]},exec(i){let $=e.validator(i,...re(t)),p;return $ instanceof Promise?$.then(m=>(p=m,typeof p=="object"&&"$valid"in p?p.$valid:typeof p=="boolean"?p:false)):(p=$,typeof p=="object"&&"$valid"in p?p.$valid:typeof p=="boolean"?p:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:a,_params:Ot(t),_brand:Ct}}function tt(e){if(typeof e.validator=="function"){let r=et(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(wt(e.validator)>1){let a=function(...o){return et(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("[createRule] validator must be a function")}function rt(){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 s(v){let x=t.value.get(v);if(x)return x;{let C=ref({});return t.value.set(v,C),C}}function i(v){let x=r.value.get(v);if(x)return x;{let C=ref([]);return r.value.set(v,C),C}}function $(v,x,C){o.value.set(`${v}-${x}`,C);}function p(v,x){return o.value.get(`${v}-${x}`)}function m(v,x){v&&x!=null&&o.value.delete(`${v}-${x}`);}function G(v,x){n.value.set(v,x);}function E(v){return n.value.get(v)??false}function V(v,x){e.value.set(v,x);}function O(v,x){let C=e.value.get(v);return C?P(x,C)?{valid:true}:{valid:false}:void 0}function P(v,x){let C=Object.keys(x),R=Object.keys(v);return R.length!==C.length||!R.every(c=>C.includes(c))?false:R.every(c=>{let g=v[c],T=x[c];return !T||!g||typeof g=="function"||typeof T=="function"||typeof g=="number"||typeof g=="boolean"?false:g._params?g._params?.every((U,W)=>{if(typeof T=="number"||typeof T=="boolean")return true;{let q=re(T._params),z=re(g._params);return q?.[W]===z?.[W]}}):true})}function l(v){let x=a.value.get(v);if(x)return x;{let C=ref(false),R=ref(true),b=ref({}),c=ref(false);return a.value.set(v,{$pending:C,$valid:R,$metadata:b,$validating:c}),{$pending:C,$valid:R,$metadata:b,$validating:c}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:V,setDirtyEntry:G,checkRuleDeclEntry:O,getDirtyState:E,trySetRuleStatusRef:l,getFieldsEntry:s,getCollectionsEntry:i,getArrayStatus:p,addArrayStatus:$,deleteArrayStatus:m,arrayStatusStorage:o}}function ke(e){return j(e.value)}function nt(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 Me={LessThan:-1,EqualTo:0,GreaterThan:1};function yr(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]),s=Number(n[a]);if(o>s)return Me.GreaterThan;if(s>o)return Me.LessThan;if(!isNaN(o)&&isNaN(s))return Me.GreaterThan;if(isNaN(o)&&!isNaN(s))return Me.LessThan}return Me.EqualTo}var Ge=yr(version,"3.5.0")!==-1;function mr(){return Math.floor(Math.random()*Date.now()).toString()}function be(){return typeof window>"u"?mr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Pt(e){return getCurrentScope()?(onScopeDispose(e),true):false}function Mt(e){let t=false,r,n=effectScope(true);return (...a)=>(t||(r=n.run(()=>e(...a)),t=true),r)}function We(e,t){return ke(e)||j(t.value)&&!te(t.value)&&!Object.entries(t.value).some(([r,n])=>me(n)||typeof n=="function")}function At(e,t,r=false){return !!e.value&&j(e.value)&&"$each"in e.value||r&&Array.isArray(t.value)&&t.value.some(j)||Array.isArray(t.value)&&t.value.some(j)}function Be(e){return !!e.value&&j(e.value)}function me(e){return j(e)&&"_validator"in e}function Ae(e){return typeof e.value=="function"?"_validator"in e.value:true}function Vt(e){return j(e)&&"$fields"in e}function at(e){return !!e&&"$rules"in e}function lt({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 Ft({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 jt(e){return j(e)&&"$each"in e}function ot(e,t){let{includePath:r=false}=t??{};if(Array.isArray(e)&&e.every(n=>!j(n)))return e;if(jt(e)){let n=r?e.$self?.map(o=>({error:o,path:""}))??[]:e.$self??[],a=e.$each?.map(o=>Le(o,r))??[];return n?.concat(a.flat())}else return Object.entries(e).map(([n,a])=>Le(a,r,[n])).flat()}function Le(e,t=false,r){let n=t&&!r?[]:r;if(Array.isArray(e)&&e.every(a=>!j(a)))return t?e.map(a=>({error:a,path:n?.join(".")??""})):e;if(jt(e)){let a=n?.length?e.$self?.map(s=>({error:s,path:n.join(".")}))??[]:e.$self??[],o=e.$each?.map((s,i)=>Le(s,t,n?.concat(i.toString())))??[];return a?.concat(o.flat())}else return Object.entries(e).map(([a,o])=>Le(o,t,n?.concat(a))).flat()}function _t({customMessages:e,rule:t,ruleKey:r,state:n,path:a,storage:o,$debounce:s,modifiers:i}){let $=effectScope(),p={},m,G=ref(false),E=ref(false),{$pending:V,$valid:O,$metadata:P,$validating:l}=o.trySetRuleStatusRef(`${a}.${r}`);function v(){$=effectScope(),p=$.run(()=>{let T=ref(false),U=ref(false),W=ref(true),q=ref(false),z=ref(false),le=computed(()=>({$value:n.value,$error:U.value,$dirty:T.value,$pending:q.value,$correct:z.value,$invalid:W.value,$rule:{$valid:O.value,$invalid:!O.value,$pending:V.value},$params:f.value,...P.value})),D=computed(()=>Ae(t)?typeof t.value.active=="function"?t.value.active(le.value):!!t.value.active:true);function H(w){let K="",y=e?e[r]?.[w]:void 0;if(y&&(typeof y=="function"?K=y(le.value):K=y),Ae(t)){let M=`_${w}_patched`;y&&!t.value[M]||(typeof t.value[w]=="function"?K=t.value[w](le.value):K=t.value[w]??"");}return K}let ve=computed(()=>{let w=H("message");return te(w)&&(w="This field is not valid"),w}),Re=computed(()=>H("tooltip")),u=computed(()=>Ae(t)&&t.value.type?t.value.type:r),d=computed(()=>Ae(t)?t.value.validator:t.value),f=computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),I=computed(()=>`${a}.${u.value}`);return {$active:D,$message:ve,$type:u,$validator:d,$params:f,$path:I,$tooltip:Re,$fieldCorrect:z,$fieldError:U,$fieldDirty:T,$fieldPending:q,$fieldInvalid:W}}),m=watch(p?.$params,()=>{(!i.$silent.value||i.$rewardEarly.value&&p.$fieldError.value)&&b();});}v();function x(){O.value=true,p.$fieldDirty.value&&(V.value=true);}async function C(){let T=false;try{let U=p.$validator.value;if(typeof U!="function")return console.error(`${a}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let W=U(n.value,...p.$params.value),q=n.value;x();let z;if(W instanceof Promise?z=await W:z=W,n.value!==q)return !0;if(typeof z=="boolean")T=z;else {let{$valid:le,...D}=z;T=le,P.value=D;}}catch{T=false;}finally{V.value=false;}return T}let R=Ne(C,s??200);async function b(){try{l.value=!0;let T=!1;if(E.value=!0,me(t.value)&&t.value._async)T=await R();else {let U=p.$validator.value,W=U(n.value,...p.$params.value);if(W instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(W!=null)if(typeof W=="boolean")T=W;else {let{$valid:q,...z}=W;T=q,P.value=z;}}return O.value=T,T}catch{return false}finally{l.value=false,E.value=false;}}function c(){O.value=true,P.value={},V.value=false,l.value=false,v();}function g(){m(),$.stop(),$=effectScope();}return reactive({...p,$pending:V,$valid:O,$metadata:P,$haveAsync:G,$maybePending:E,$validating:l,$parse:b,$unwatch:g,$watch:v,$reset:c})}function Ee({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:o,options:s,externalErrors:i,schemaErrors:$,schemaMode:p,onUnwatch:m,$isArray:G,initialState:E,shortcuts:V,onValidate:O}){let P=effectScope(),l,v=[],x,C,R,b,c,g=()=>{};function T(){let h=t.value,F=o.checkRuleDeclEntry(n,h);H.value=Object.fromEntries(Object.entries(h).filter(([S])=>S.startsWith("$"))),q(),D.value=Object.fromEntries(Object.entries(t.value).filter(([S])=>!S.startsWith("$")).map(([S,X])=>{if(X){let se=toRef(()=>X);return [S,_t({modifiers:{$silent:l.$silent,$rewardEarly:l.$rewardEarly},customMessages:r,rule:se,ruleKey:S,state:e,path:n,storage:o,$debounce:H.value.$debounce})]}return []}).filter(S=>!!S.length)),l.processShortcuts(),U(),F?.valid!=null&&(l.$dirty.value=o.getDirtyState(n),(l.$dirty.value&&!l.$silent.value||l.$rewardEarly.value&&l.$error.value)&&g()),o.addRuleDeclEntry(n,h);}function U(){g=l.$debounce.value?Ne(le,l.$debounce.value??l.$haveAnyAsyncRule?100:0):le;}function W(){D.value&&Object.entries(D.value).forEach(([h,F])=>{F.$unwatch();}),R(),c?.(),l.$dirty.value&&o.setDirtyEntry(n,l.$dirty.value),x?.(),C?.(),P.stop(),P=effectScope(),v.forEach(h=>h.stop()),v=[],m?.(),b?.();}function q(){D.value&&Object.entries(D.value).forEach(([h,F])=>{F.$watch();}),l=P.run(()=>{let h=ref(false),F=ref(false),S=computed(()=>h.value),X=computed(()=>H.value.$debounce),se=computed(()=>H.value.$lazy!=null?H.value.$lazy:unref(s.lazy)!=null?unref(s.lazy):false),ie=computed(()=>H.value.$rewardEarly!=null?H.value.$rewardEarly:unref(s.rewardEarly)!=null?unref(s.rewardEarly):false),je=computed(()=>H.value.$clearExternalErrorsOnChange!=null?H.value.$clearExternalErrorsOnChange:unref(s.clearExternalErrorsOnChange)!=null?unref(s.clearExternalErrorsOnChange):true),B=computed(()=>ie.value?true:H.value.$silent!=null?H.value.$silent:unref(s.silent)!=null?unref(s.silent):false),A=computed(()=>H.value.$autoDirty!=null?H.value.$autoDirty:unref(s.autoDirty)!=null?unref(s.autoDirty):true),N=computed(()=>Object.entries(D.value).some(([ue,Q])=>Q.$validating)),we=computed({get:()=>e.value,set(ue){x(),e.value=ue,z();}}),_e=computed(()=>Se.value&&!$e.value&&h.value),mt=computed(()=>lt({field:{$rules:D.value,$error:_e.value,$externalErrors:i?.value,$schemaErrors:$?.value}})),gt=computed(()=>lt({field:{$rules:D.value,$error:_e.value,$externalErrors:i?.value,$schemaErrors:$?.value},silent:true})),Qe=computed(()=>h.value?E.value instanceof Date&&e.value instanceof Date?Xe(E.value).getDate()!==Xe(e.value).getDate():E.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(E.value)?e.value.length!==E.value.length:E.value!==e.value:false),vt=computed(()=>Qe.value),$t=computed(()=>Ft({field:{$rules:D.value}})),St=computed(()=>(B.value||S.value)&&!(Se.value||$e.value)),$e=computed(()=>F.value||!ie.value?Object.entries(D.value).some(([ue,Q])=>Q.$pending):false),Se=computed(()=>i?.value?.length||$?.value?.length?true:Ue.value?false:!ie.value||ie.value&&F.value?Object.entries(D.value).some(([ue,Q])=>!(Q.$valid&&!Q.$maybePending)):false),Tt=computed(()=>a),Ue=computed(()=>!!(te(D.value)&&!p)),ht=computed(()=>i?.value?.length||Ue.value?false:h.value&&!te(e.value)&&!N.value&&!$e.value?p?!$?.value?.length:Object.values(D.value).some(Q=>Q.$active)?Object.values(D.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),ar=computed(()=>Object.entries(D.value).some(([ue,Q])=>Q.$haveAsync));function lr(){V?.fields&&Object.entries(V.fields).forEach(([ue,Q])=>{let xt=effectScope();bt[ue]=xt.run(()=>{let Et=ref();return watchEffect(()=>{Et.value=Q(reactive({$dirty:h,$externalErrors:i?.value??[],$value:e,$silentValue:we,$rules:D,$error:_e,$pending:$e,$invalid:Se,$correct:ht,$errors:mt,$ready:St,$silentErrors:gt,$anyDirty:S,$tooltips:$t,$name:Tt,$inactive:Ue,$edited:Qe,$anyEdited:vt}));}),Et}),v.push(xt);});}let bt={};return watch(Se,ue=>{ue||(F.value=false);}),{$error:_e,$pending:$e,$invalid:Se,$correct:ht,$debounce:X,$lazy:se,$errors:mt,$ready:St,$silentErrors:gt,$rewardEarly:ie,$autoDirty:A,$silent:B,$clearExternalErrorsOnChange:je,$anyDirty:S,$edited:Qe,$anyEdited:vt,$name:Tt,$haveAnyAsyncRule:ar,$shortcuts:bt,$validating:N,$tooltips:$t,$dirty:h,triggerPunishment:F,processShortcuts:lr,$silentValue:we,$inactive:Ue}}),z(),R=watch(l.$dirty,h=>{o.setDirtyEntry(n,h),Object.values(D.value).forEach(F=>{F.$fieldDirty=h;});}),c=watch([l.$error,l.$correct,l.$invalid,l.$pending],()=>{Object.values(D.value).forEach(h=>{h.$fieldError=l.$error.value,h.$fieldInvalid=l.$invalid.value,h.$fieldPending=l.$pending.value,h.$fieldCorrect=l.$correct.value;});}),C=watch(l.$invalid,h=>{l.$rewardEarly.value&&!h&&(l.triggerPunishment.value=false);}),b=watch(l.$haveAnyAsyncRule,U);}function z(){x=watch(e,()=>{l.$autoDirty.value&&!l.$silent.value&&(l.$dirty.value||(l.$dirty.value=true)),t.value instanceof Function&&T(),(!l.$silent.value||l.$rewardEarly.value&&l.$error.value)&&g(),l.$rewardEarly.value!==true&&l.$clearExternalErrorsOnChange.value&&f();},{deep:G?true:Ge?1:true});}function le(){Object.values(D.value).forEach(h=>{h.$parse();});}let D=ref({}),H=ref({});T();function ve(h,F){if(f(),l.$dirty.value=false,l.triggerPunishment.value=false,o.setDirtyEntry(n,false),!F)if(h?.toInitialState)e.value=k(E);else if(h?.toState){let S;typeof h?.toState=="function"?S=h?.toState():S=h?.toState,E.value=k(S),e.value=k(S);}else E.value=j(e.value)?k(e.value):Array.isArray(e.value)?[...e.value]:e.value;h?.clearExternalErrors&&f(),F||Object.entries(D.value).forEach(([S,X])=>{X.$reset();}),!l.$lazy.value&&!l.$silent.value&&Object.values(D.value).forEach(S=>S.$parse());}function Re(h=true,F=false){l.$dirty.value||(l.$dirty.value=true),F&&h?(!l.$silent.value||l.$rewardEarly.value&&l.$error.value)&&g():h&&g();}async function u(){try{if(p)return O?(Re(!1),O()):{valid:!1,data:e.value};let h=e.value;if(l.triggerPunishment.value=!0,!l.$dirty.value)l.$dirty.value=!0;else if(!l.$silent.value&&l.$dirty.value&&!l.$pending.value)return {valid:!l.$error.value,data:h};return p?{valid:!$?.value?.length,data:h}:te(D.value)?{valid:!0,data:h}:{valid:(await Promise.allSettled(Object.entries(D.value).map(([X,se])=>se.$parse()))).every(X=>X.status==="fulfilled"?X.value===!0:!1),data:h}}catch{return {valid:false,data:e.value}}}function d(h=true){return l.$dirty.value?e.value:h?{_null:true}:null}function f(){i?.value?.length&&(i.value=[]);}!l.$lazy.value&&!l.$dirty.value&&!l.$silent.value&&g();let{$shortcuts:I,$validating:w,$autoDirty:K,$rewardEarly:y,$clearExternalErrorsOnChange:M,$haveAnyAsyncRule:Y,$debounce:Z,$lazy:ee,triggerPunishment:oe,...fe}=l;return reactive({...fe,$externalErrors:i,$value:e,$rules:D,...I,$reset:ve,$touch:Re,$validate:u,$unwatch:W,$watch:q,$extractDirtyFields:d,$clearExternalErrors:f})}function ut({$id:e,path:t,index:r,options:n,storage:a,stateValue:o,customMessages:s,rules:i,externalErrors:$,schemaErrors:p,initialState:m,shortcuts:G,fieldName:E,schemaMode:V}){let O=i.$key?i.$key:be(),P=`${t}.${String(O)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?P=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:O,enumerable:false,configurable:false,writable:false}}));let l=toRef($?.value??[],r),v=computed(()=>p?.value?.[r]),x=Ce({state:o,rulesDef:toRef(()=>i),customMessages:s,path:P,storage:a,options:n,externalErrors:l,schemaErrors:v,initialState:m,shortcuts:G,fieldName:E,schemaMode:V});if(x){let C=o.value?.$id;x.$id=C??String(O),a.addArrayStatus(e,x.$id,x);}return x}function Gt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:s,schemaErrors:i,schemaMode:$,initialState:p,shortcuts:m,fieldName:G}){let E=effectScope(),V,O=effectScope(),P,l=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let v=ref(),x=ref(e.value),C,R=ref({}),b=a.getCollectionsEntry(n);P=O.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(d=>typeof d!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(d=>me(d)||typeof d=="function"):false)})),c(),U();function c(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(v.value=be(),Object.defineProperties(e.value,{$id:{value:v.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(v.value=e.value.$id)),x.value=R.value.$value,Array.isArray(e.value)&&!P.isPrimitiveArray.value?b.value=e.value.filter(u=>typeof u=="object").map((u,d)=>{let{scope:f,unwrapped:I}=nt(t.value.$each,toRef(()=>u),d);f&&l.push(f);let w=toRef(p.value??[],d),K=toRef(s?.value??{},"$each"),y=computed(()=>i?.value?.$each),M=ut({$id:v.value,path:n,customMessages:r,rules:I??{},stateValue:toRef(()=>u),index:d,options:o,storage:a,externalErrors:K,schemaErrors:y,initialState:w,shortcuts:m,fieldName:G,schemaMode:$});return M||null}).filter(u=>!!u):b.value=[],R.value=Ee({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:toRef(s?.value??{},"$self"),schemaErrors:computed(()=>i?.value?.$self),$isArray:true,initialState:p,shortcuts:m,fieldName:G,schemaMode:$});}function g(){if(Array.isArray(e.value)&&!P.isPrimitiveArray.value){let u=k(b.value);b.value=e.value.filter(d=>typeof d=="object").map((d,f)=>{let I=toRef(()=>d);if(d.$id&&b.value.find(w=>w.$id===d.$id)){let w=a.getArrayStatus(v.value,d.$id);return w?(w.$value=I,w):null}else {let{scope:w,unwrapped:K}=nt(t.value.$each,I,f);w&&l.push(w);let y=toRef(s?.value??{},"$each"),M=computed(()=>i?.value?.$each??[]),Y=ut({$id:v.value,path:n,customMessages:r,rules:K??{},stateValue:I,index:f,options:o,storage:a,externalErrors:y,schemaErrors:M,initialState:toRef(p.value??[],f),shortcuts:m,fieldName:G,schemaMode:$});return Y||null}}).filter(d=>!!d),u.filter(d=>!e.value?.find(f=>d.$id===f.$id)).forEach((d,f)=>{a.deleteArrayStatus(v.value,f.toString());});}else b.value=[];}function T(){C=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?c():g();},{deep:Ge?1:true,flush:"pre"});}function U(){T(),E=effectScope(),V=E.run(()=>{let u=computed({get:()=>e.value,set(S){C(),e.value=S,T();}}),d=computed(()=>R.value.$dirty&&(!b.value.length||b.value.every(S=>S.$dirty))),f=computed(()=>R.value.$anyDirty||b.value.some(S=>S.$anyDirty)),I=computed(()=>R.value.$invalid||b.value.some(S=>S.$invalid)),w=computed(()=>(te(R.value.$rules)?true:R.value.$correct)&&(!b.value.length||b.value.every(S=>S.$correct||S.$anyDirty&&!S.$invalid))),K=computed(()=>R.value.$error||b.value.some(S=>S.$error)),y=computed(()=>!(I.value||M.value)),M=computed(()=>R.value.$pending||b.value.some(S=>S.$pending)),Y=computed(()=>!!b.value.length&&b.value.every(S=>S.$edited)),Z=computed(()=>R.value.$anyEdited||b.value.some(S=>S.$anyEdited)),ee=computed(()=>({$self:R.value.$errors,$each:b.value.map(S=>S.$errors)})),oe=computed(()=>({$self:R.value.$silentErrors,$each:b.value.map(S=>S.$silentErrors)})),fe=computed(()=>G);function h(){m?.collections&&Object.entries(m?.collections).forEach(([S,X])=>{let se=effectScope();F[S]=se.run(()=>{let ie=ref();return watchEffect(()=>{ie.value=X(reactive({$dirty:d,$error:K,$silentValue:u,$pending:M,$invalid:I,$correct:w,$errors:ee,$ready:y,$silentErrors:oe,$anyDirty:f,$name:fe,$each:b,$self:R,$value:e,$edited:Y,$anyEdited:Z}));}),ie}),l.push(se);});}let F={};return h(),{$dirty:d,$anyDirty:f,$invalid:I,$correct:w,$error:K,$pending:M,$errors:ee,$silentErrors:oe,$ready:y,$name:fe,$shortcuts:F,$silentValue:u,$edited:Y,$anyEdited:Z}}),P.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 W(){C&&C(),R.value&&R.value.$unwatch(),b.value&&b.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),E.stop(),E=effectScope(),O.stop(),O=effectScope(true),l.forEach(u=>u.stop()),l=[];}function q(u=true,d=false){R.value.$touch(u,d),b.value.forEach(f=>{f.$touch(u,d);});}function z(u,d){if(W(),!d)if(u?.toInitialState)e.value=k(p.value);else if(u?.toState){let f;typeof u?.toState=="function"?f=u?.toState():f=u?.toState,p.value=k(f),e.value=k(f);}else p.value=k(e.value);u?.clearExternalErrors&&D(),R.value.$reset(),b.value.forEach(f=>{f.$reset(u,true);}),d||c();}async function le(){let u=e.value;try{return {valid:(await Promise.allSettled([R.value.$validate(),...b.value.map(I=>I.$validate())])).every(I=>I.status==="fulfilled"?I.value.valid===!0:!1),data:u}}catch{return {valid:false,data:u}}}function D(){R.value.$clearExternalErrors(),b.value.forEach(u=>{u.$clearExternalErrors();});}function H(u=true){let d=b.value.map(f=>{if(Vt(f))return f.$extractDirtyFields(u)});return u&&d.every(f=>te(f))&&(d=[]),d}let{$shortcuts:ve,...Re}=V;return reactive({$self:R,...Re,...ve,$each:b,$value:e,$validate:le,$unwatch:W,$watch:U,$touch:q,$reset:z,$extractDirtyFields:H,$clearExternalErrors:D})}function ze({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:a,schemaErrors:o,rootSchemaErrors:s,validationGroups:i,initialState:$,fieldName:p,...m}){let G=effectScope(),E,V=[],O=null,P=null,l=null,v=null;async function C(u=true){let d=Object.entries(e.value),f=Object.fromEntries(d.filter(([y,M])=>!!M).map(([y,M])=>{if(M){let Y=toRef(t.value??{},y),Z=toRef(()=>M),ee=toRef(a?.value??{},y),oe=computed(()=>o?.value?.[y]),fe=toRef($?.value??{},y);return [y,Ce({state:Y,rulesDef:Z,path:r?`${r}.${y}`:y,externalErrors:ee,schemaErrors:oe,initialState:fe,fieldName:y,...m})]}return []})),I=Object.fromEntries(Object.entries(unref(a)??{}).filter(([y,M])=>!(y in e.value)&&!!M).map(([y])=>{let M=toRef(t.value??{},y),Y=toRef(a?.value??{},y),Z=computed(()=>o?.value?.[y]),ee=toRef($?.value??{},y);return [y,Ce({state:M,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:Y,schemaErrors:Z,initialState:ee,fieldName:y,...m})]})),w=Object.fromEntries(Object.entries(unref(o)??{}).map(([y])=>{let M=toRef(t.value??{},y),Y=toRef(a?.value??{},y),Z=computed(()=>o?.value?.[y]),ee=toRef($?.value??{},y);return [y,Ce({state:M,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:Y,schemaErrors:Z,initialState:ee,fieldName:y,...m})]})),K=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(I??{}))&&!(y in(w??{}))).map(([y])=>{let M=toRef(t.value??{},y),Y=toRef(a?.value??{},y),Z=computed(()=>o?.value?.[y]),ee=toRef($?.value??{},y);return [y,Ce({state:M,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:Y,schemaErrors:Z,initialState:ee,fieldName:y,...m})]}));R.value={...f,...I,...w,...K},u&&g();}let R=m.storage.getFieldsEntry(r);C();function b(){a&&(l=watch(a,()=>{T(),C();},{deep:true}));}function c(){v=watch(t,()=>{T(),C(),E.$autoDirty.value&&!E.$silent.value&&q(true,true);},{flush:"sync"});}function g(){n&&(O?.(),O=watch(n,()=>{T(),C();},{deep:true,flush:"pre"}),b()),s&&(P?.(),P=watch(s,()=>{T(),C();},{deep:true,flush:"post"})),c(),E=G.run(()=>{let u=computed({get:()=>t.value,set(B){T(),t.value=B,C();}}),d=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).every(([B,A])=>A?.$dirty)),f=computed(()=>Object.entries(R.value).some(([B,A])=>A?.$anyDirty)),I=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).some(([B,A])=>A?.$invalid)),w=computed(()=>{let B=Object.entries(R.value).filter(([A,N])=>at(N)?!N.$inactive:true);return B.length?B.every(([A,N])=>m.schemaMode?N.$correct:at(N)?"required"in N.$rules&&N.$rules.required.$active?N?.$correct:!N.$invalid&&!N.$pending:N?.$correct):false}),K=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).some(([B,A])=>A?.$error)),y=computed(()=>unref(m.options.rewardEarly)!=null?unref(m.options.rewardEarly):false),M=computed(()=>unref(m.options.silent)!=null?unref(m.options.silent):!!y.value),Y=computed(()=>unref(m.options.autoDirty)!=null?unref(m.options.autoDirty):true),Z=computed(()=>(M.value||f.value)&&!(I.value||oe.value)),ee=ref(false),oe=computed(()=>ee.value||Object.entries(R.value).some(([B,A])=>A?.$pending)),fe=computed(()=>Object.fromEntries(Object.entries(R.value).map(([B,A])=>[B,A?.$errors]))),h=computed(()=>Object.fromEntries(Object.entries(R.value).map(([B,A])=>[B,A?.$silentErrors]))),F=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).every(([B,A])=>A?.$edited)),S=computed(()=>Object.entries(R.value).some(([B,A])=>A?.$anyEdited)),X=computed(()=>p);function se(){m.shortcuts?.nested&&Object.entries(m.shortcuts.nested).forEach(([B,A])=>{let N=effectScope();je[B]=N.run(()=>{let we=ref();return watchEffect(()=>{we.value=A(reactive({$dirty:d,$value:t,$silentValue:u,$error:K,$pending:oe,$invalid:I,$correct:w,$ready:Z,$anyDirty:f,$name:X,$silentErrors:h,$errors:fe,$fields:R,$edited:F,$anyEdited:S}));}),we}),V.push(N);});}let ie=computed({get:()=>i?Object.fromEntries(Object.entries(i?.(R.value)??{}).map(([B,A])=>A.length?[B,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(N=>[N,Dt(A,N)])),...Object.fromEntries(["$errors","$silentErrors"].map(N=>[N,It(A,N)]))}]:[])):{},set(){}}),je={};return se(),{$dirty:d,$anyDirty:f,$invalid:I,$correct:w,$error:K,$pending:oe,$errors:fe,$silentErrors:h,$ready:Z,$name:X,$shortcuts:je,$groups:ie,$silentValue:u,$edited:F,$anyEdited:S,$localPending:ee,$autoDirty:Y,$silent:M}});}function T(){O?.(),l?.(),v?.(),P?.(),V=[],E={},R.value&&Object.entries(R.value).forEach(([u,d])=>{d.$unwatch();});}function U(){Object.entries(R.value).forEach(([u,d])=>{d.$clearExternalErrors();});}function W(u,d){if(l?.(),T(),!d)if(u?.toInitialState)t.value=k({...$.value??{}});else if(u?.toState){let f;typeof u?.toState=="function"?f=u?.toState():f=u?.toState,$.value=k(f),t.value=k(f);}else $.value=k(t.value);Object.values(R.value).forEach(f=>{f.$reset(u,true);}),u?.clearExternalErrors&&U(),b(),d||C();}function q(u=true,d=false){Object.values(R.value).forEach(f=>{f.$touch(u,d);});}function z(u){return u.filter(([d,f])=>j(f)?!(f&&typeof f=="object"&&"_null"in f)&&!te(f):Array.isArray(f)?f.length:true)}function le(u=true){let d=Object.entries(R.value).map(([f,I])=>[f,I.$extractDirtyFields(u)]);return u&&(d=z(d)),Object.fromEntries(d)}async function D(){try{if(m.schemaMode)return m.onValidate?(q(!1),E.$localPending.value=!0,m.onValidate()):{valid:!1,data:t.value};{let u=t.value;return {valid:(await Promise.allSettled(Object.values(R.value).map(I=>I.$validate()))).every(I=>I.status==="fulfilled"?I.value.valid===!0:!1),data:u}}}catch{return {valid:false,data:t.value}}finally{E.$localPending.value=false;}}let{$shortcuts:H,$localPending:ve,...Re}=E;return reactive({...Re,...H,$fields:R,$value:t,$reset:W,$touch:q,$validate:D,$unwatch:T,$watch:g,$clearExternalErrors:U,$extractDirtyFields:le})}function Ce({rulesDef:e,...t}){if(At(e,t.state,t.schemaMode))return Gt({rulesDef:e,...t});if(We(t.state,e)){if(ke(t.state))return ze({rulesDef:e,...t});{let n=effectScope().run(()=>{let s=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,i=>{s.value=i;},{deep:true}),watch(s,i=>{t.state.value=i;},{deep:true}),{fakeState:s}}),{state:a,...o}=t;return ze({rulesDef:e,...o,state:n.fakeState})}}else if(Be(e))return Ee({rulesDef:e,...t})}function Oe({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:o,schemaErrors:s,schemaMode:i=false,onValidate:$}){let p=rt(),m=ref();return We(n,r)?m.value=ze({rootRules:r,rulesDef:r,state:n,customMessages:a?.(),storage:p,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaErrors:s,rootSchemaErrors:s,schemaMode:i,onValidate:$}):Be(r)&&(m.value=Ee({rulesDef:r,state:n,customMessages:a?.(),storage:p,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaMode:i,schemaErrors:s,onValidate:$})),getCurrentScope()&&onScopeDispose(()=>{m.value?.$unwatch();}),reactive({regle:m})}function Ke(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,silent:t?.silent,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function a(o,s,i){let $=isRef(s)?s:typeof s=="function"?void 0:computed(()=>s),p={...n,...i},m=isRef(o)?o:ref(o),G=shallowRef($??{});typeof s=="function"&&watchEffect(()=>{G.value=s(m),triggerRef(G);});let E=ref(j(m.value)?{...k(m.value)}:k(m.value));return {r$:Oe({scopeRules:G,state:m,options:p,initialState:E,customRules:e,shortcuts:r}).regle}}return a}var qe=Ke();function Je(){function e(t,r){return r}return e}var Rt=Je();function Ht({rules:e,modifiers:t,shortcuts:r}){let n=Ke(e,t,r);n.__config={rules:e,modifiers:t,shortcuts:r};let a=Je();return {useRegle:n,inferRules:a}}function zt(e,{rules:t,modifiers:r,shortcuts:n}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&r?Pe(a.modifiers,r):r,i=a.shortcuts&&n?Pe(a.shortcuts,n):n,$=Ke(o,s,i);$.__config={rules:o,modifiers:s,shortcuts:i};let p=Je();return {useRegle:$,inferRules:p}}function Fe(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(c=>c.$value):Object.fromEntries(Object.entries(e).map(([c,g])=>[c,g.$value])),set:c=>{r||typeof c=="object"&&Object.entries(c).forEach(([g,T])=>e[g].$value=T);}}),a=computed({get:()=>Object.fromEntries(Object.entries(e).map(([c,g])=>[c,g.$silentValue])),set:c=>{typeof c=="object"&&Object.entries(c).forEach(([g,T])=>e[g].$silentValue=T);}}),o=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([g,T])=>T?.$dirty)}),s=computed(()=>Object.entries(e).some(([c,g])=>g?.$anyDirty)),i=computed(()=>Object.entries(e).some(([c,g])=>g?.$invalid)),$=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([g,T])=>T?.$correct||T.$anyDirty&&!T.$invalid)}),p=computed(()=>Object.entries(e).some(([c,g])=>g?.$error)),m=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([g,T])=>T?.$ready)}),G=computed(()=>Object.entries(e).some(([c,g])=>g?.$pending)),E=computed(()=>r?Object.entries(e).map(([c,g])=>g.$errors):Object.fromEntries(Object.entries(e).map(([c,g])=>[c,g.$errors]))),V=computed(()=>r?Object.entries(e).map(([c,g])=>g.$silentErrors):Object.fromEntries(Object.entries(e).map(([c,g])=>[c,g.$silentErrors]))),O=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([g,T])=>T?.$edited)}),P=computed(()=>Object.entries(e).some(([c,g])=>g?.$anyEdited)),l=computed(()=>r?Object.values(e):e);function v(c){Object.values(e).forEach(g=>{g.$reset(c);});}function x(){Object.values(e).forEach(c=>{c.$touch();});}function C(c=true){return Object.values(e).map(g=>g.$extractDirtyFields(c))}function R(){Object.values(e).forEach(c=>{c.$clearExternalErrors();});}async function b(){try{let c=n.value;return {valid:(await Promise.allSettled(Object.values(e).map(U=>U.$validate()))).every(U=>U.status==="fulfilled"?U.value.valid===!0:!1),data:c}}catch{return {valid:false,data:n.value}}}return reactive({...!r&&{$silentValue:a},$errors:E,$silentErrors:V,$instances:l,$value:n,$dirty:o,$anyDirty:s,$invalid:i,$correct:$,$error:p,$pending:G,$ready:m,$edited:O,$anyEdited:P,$reset:v,$touch:x,$validate:b,$extractDirtyFields:C,$clearExternalErrors:R})}function qt(e,t){function r(n){let a=computed(()=>toValue(n));i();let o=ref($(e.value)),s=reactive({r$:o});function i(){a.value&&!e.value[a.value]&&(e.value[a.value]={});}watch(a,i),watch(e,p=>{o.value=$(p);},{deep:true});function $(p){if(a.value){let m=p[a.value]??{};return Fe(m,!t.asRecord)}else return Fe(p["~~global"]??{},!t.asRecord)}return {r$:s.r$}}return {useCollectScope:r}}function Qt(e,t){let r=t??qe;return {useScopedRegle:(a,o,s)=>{let{namespace:i,scopeKey:$,...p}=s??{};r.__config??={};let m=computed(()=>toValue(i)),G=ref(`${Object.keys(e.value).length+1}-${be()}`),E=computed(()=>s?.scopeKey??`instance-${G.value}`),{r$:V}=r(a,o,p);P(),Pt(O),watch(m,(l,v)=>{O(v),P();}),getCurrentInstance()&&onMounted(()=>{let l=getCurrentInstance();typeof window<"u"&&l?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(l?.proxy?.$el?.parentElement)&&O();});function O(l){let v=l??m.value;v?e.value[v]&&delete e.value[v][E.value]:e.value["~~global"][E.value]&&delete e.value["~~global"][E.value];}function P(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][E.value]=V):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][E.value]=V);}return {r$:V,dispose:O,register:P}}}}function Ye(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):Mt(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=Qt(r,e?.customUseRegle),{useCollectScope:a}=qt(r,{asRecord:e?.asRecord});return {useScopedRegle:n,useCollectScope:a}}var {useCollectScope:pt,useScopedRegle:dt}=Ye();function er(e,t,r){let n=computed(()=>toValue(e)[t]);return computed(()=>{let o=r.find(s=>{if(s[t]&&"literal"in s[t]){let i=s[t].literal;if(me(i))return unref(i._params?.[0])===n.value}});if(o)return o;{let s=r.find(i=>j(i[t])&&!Object.keys(i[t]).some($=>$==="literal"));return s||{}}})}function yt(e,t,r){return j(e[t])&&"$value"in e[t]&&e[t]?.$value===r}function tr(e,t,r){let n=isRef(e)?toRef(e.value,"$fields"):toRef(e,"$fields"),a=ref();return watch(n,async()=>{await nextTick(),yt(n.value,t,r)?a.value=n.value:a.value=void 0;},{immediate:true,flush:"pre"}),a}function rr(e){return e}function nr(e,t){return r=>Pe({...e},t(r))}
|
|
2
|
+
export{Ze as InternalRuleType,tt as createRule,Ye as createScopedUseRegle,er as createVariant,Ht as defineRegleConfig,rr as defineRules,zt as extendRegleConfig,ot as flatErrors,Rt as inferRules,Fe as mergeRegles,yt as narrowVariant,nr as refineRules,re as unwrapRuleParameters,pt as useCollectScope,qe as useRegle,Oe as useRootStorage,dt as useScopedRegle,tr as variantToRef};
|
package/dist/regle-core.mjs
CHANGED
|
@@ -1914,9 +1914,9 @@ function createReactiveNestedStatus({
|
|
|
1914
1914
|
$unwatchState = watch(
|
|
1915
1915
|
state,
|
|
1916
1916
|
() => {
|
|
1917
|
+
$unwatch();
|
|
1918
|
+
createReactiveFieldsStatus();
|
|
1917
1919
|
if (scopeState.$autoDirty.value && !scopeState.$silent.value) {
|
|
1918
|
-
$unwatch();
|
|
1919
|
-
createReactiveFieldsStatus();
|
|
1920
1920
|
$touch(true, true);
|
|
1921
1921
|
}
|
|
1922
1922
|
},
|