@regle/core 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -446,8 +446,8 @@ function createGlobalState(stateFactory) {
446
446
  function isNestedRulesDef(state, rules) {
447
447
  return isRefObject(state) || isObject(rules.value) && !isEmpty(rules.value) && !Object.entries(rules.value).some(([key, rule]) => isRuleDef(rule) || typeof rule === "function");
448
448
  }
449
- function isCollectionRulesDef(rules, state) {
450
- return !!rules.value && isObject(rules.value) && "$each" in rules.value || Array.isArray(state.value);
449
+ function isCollectionRulesDef(rules, state, schemaMode = false) {
450
+ return !!rules.value && isObject(rules.value) && "$each" in rules.value || schemaMode && Array.isArray(state.value) && state.value.some(isObject) || Array.isArray(state.value) && state.value.some(isObject);
451
451
  }
452
452
  function isValidatorRulesDef(rules) {
453
453
  return !!rules.value && isObject(rules.value);
@@ -1124,6 +1124,9 @@ function createReactiveFieldStatus({
1124
1124
  initialState.value = isObject(state.value) ? cloneDeep(state.value) : Array.isArray(state.value) ? [...state.value] : state.value;
1125
1125
  }
1126
1126
  }
1127
+ if (options2?.clearExternalErrors) {
1128
+ $clearExternalErrors();
1129
+ }
1127
1130
  if (!fromParent) {
1128
1131
  Object.entries($rules.value).forEach(([_, rule]) => {
1129
1132
  rule.$reset();
@@ -1635,6 +1638,9 @@ function createReactiveCollectionStatus({
1635
1638
  initialState.value = cloneDeep(state.value);
1636
1639
  }
1637
1640
  }
1641
+ if (options2?.clearExternalErrors) {
1642
+ $clearExternalErrors();
1643
+ }
1638
1644
  $selfStatus.value.$reset();
1639
1645
  $eachStatus.value.forEach(($each) => {
1640
1646
  $each.$reset(options2, true);
@@ -2097,6 +2103,9 @@ function createReactiveNestedStatus({
2097
2103
  Object.values($fields.value).forEach((statusOrField) => {
2098
2104
  statusOrField.$reset(options, true);
2099
2105
  });
2106
+ if (options?.clearExternalErrors) {
2107
+ $clearExternalErrors();
2108
+ }
2100
2109
  define$WatchExternalErrors();
2101
2110
  if (!fromParent) {
2102
2111
  createReactiveFieldsStatus();
@@ -2178,7 +2187,7 @@ function createReactiveChildrenStatus({
2178
2187
  rulesDef,
2179
2188
  ...properties
2180
2189
  }) {
2181
- if (isCollectionRulesDef(rulesDef, properties.state)) {
2190
+ if (isCollectionRulesDef(rulesDef, properties.state, properties.schemaMode)) {
2182
2191
  return createReactiveCollectionStatus({
2183
2192
  rulesDef,
2184
2193
  ...properties
@@ -1137,6 +1137,10 @@ type ResetOptions<TState extends unknown> = RequireOneOrNone<{
1137
1137
  * Reset validation status and reset form state to the given state
1138
1138
  */
1139
1139
  toState?: TState | (() => TState);
1140
+ /**
1141
+ * Clears the $externalErrors state back to an empty object.
1142
+ */
1143
+ clearExternalErrors?: boolean;
1140
1144
  }, 'toInitialState' | 'toState'>;
1141
1145
 
1142
1146
  interface useRegleFn<TCustomRules extends Partial<AllRulesDeclarations>, TShortcuts extends RegleShortcutDefinition<any> = never, TAdditionalReturnProperties extends Record<string, any> = {}, TAdditionalOptions extends Record<string, any> = {}> {
@@ -1658,6 +1662,7 @@ type EnumLike = {
1658
1662
  [k: string]: string | number;
1659
1663
  [nu: number]: string;
1660
1664
  };
1665
+ type UnwrapMaybeRef<T extends MaybeRef<any> | DeepReactiveState<any>> = T extends Ref<any> ? UnwrapRef<T> : UnwrapNestedRefs<T>;
1661
1666
 
1662
1667
  type CreateFn<T extends any[]> = (...args: T) => any;
1663
1668
  /**
@@ -1927,15 +1932,15 @@ type InlineRuleDeclaration<TValue extends any = any, TParams extends any[] = any
1927
1932
  type FormRuleDeclaration<TValue extends any, TParams extends any[], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition> = RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TMetadata extends RegleRuleMetadataDefinition = TReturn extends Promise<infer M> ? M : TReturn, TAsync extends boolean = boolean> = InlineRuleDeclaration<TValue, TParams, TReturn> | RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>;
1928
1933
 
1929
1934
  type RegleErrorTree<TState = MaybeRef<Record<string, any> | any[]>> = {
1930
- readonly [K in keyof JoinDiscriminatedUnions<UnwrapNestedRefs<TState>>]: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapNestedRefs<TState>>[K]>;
1935
+ readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], false>;
1931
1936
  };
1932
1937
  type RegleExternalErrorTree<TState = MaybeRef<Record<string, any> | any[]>> = {
1933
- readonly [K in keyof JoinDiscriminatedUnions<UnwrapNestedRefs<TState>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapNestedRefs<TState>>[K], true>;
1938
+ readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], true>;
1934
1939
  };
1935
- type RegleValidationErrors<TState extends Record<string, any> | any[] | unknown = never, TExternal extends boolean = false> = NonNullable<TState> extends Array<infer U extends Record<string, any>> ? TExternal extends false ? RegleCollectionErrors<U> : RegleExternalCollectionErrors<U> : NonNullable<TState> extends Date | File ? string[] : NonNullable<TState> extends Record<string, any> ? TExternal extends false ? RegleErrorTree<TState> : RegleExternalErrorTree<TState> : string[];
1940
+ type RegleValidationErrors<TState extends Record<string, any> | any[] | unknown = never, TExternal extends boolean = false> = NonNullable<TState> extends Array<infer U extends Record<string, any>> ? ExtendOnlyRealRecord<U> extends true ? TExternal extends false ? RegleCollectionErrors<U> : RegleExternalCollectionErrors<U> : string[] : NonNullable<TState> extends Date | File ? string[] : NonNullable<TState> extends Record<string, any> ? TExternal extends false ? RegleErrorTree<TState> : RegleExternalErrorTree<TState> : string[];
1936
1941
  type RegleCollectionErrors<TState extends Record<string, any>> = {
1937
1942
  readonly $self: string[];
1938
- readonly $each: RegleValidationErrors<TState>[];
1943
+ readonly $each: RegleValidationErrors<TState, false>[];
1939
1944
  };
1940
1945
  type RegleExternalCollectionErrors<TState extends Record<string, any>> = {
1941
1946
  readonly $self?: string[];
@@ -1997,8 +2002,8 @@ interface SuperCompatibleRegleStatus extends SuperCompatibleRegleCommonStatus {
1997
2002
  $fields: {
1998
2003
  [x: string]: unknown;
1999
2004
  };
2000
- readonly $errors: Record<string, RegleValidationErrors<any>>;
2001
- readonly $silentErrors: Record<string, RegleValidationErrors<any>>;
2005
+ readonly $errors: Record<string, RegleValidationErrors<any, false>>;
2006
+ readonly $silentErrors: Record<string, RegleValidationErrors<any, false>>;
2002
2007
  $extractDirtyFields: (filterNullishValues?: boolean) => Record<string, any>;
2003
2008
  $validate?: () => Promise<SuperCompatibleRegleResult>;
2004
2009
  }
@@ -2067,7 +2072,7 @@ interface $InternalRegleStatus extends $InternalRegleCommonStatus {
2067
2072
  /**
2068
2073
  * @public
2069
2074
  */
2070
- type InferRegleStatusType<TRule extends RegleCollectionRuleDecl | RegleRuleDecl | ReglePartialRuleTree<any>, TState extends Record<PropertyKey, any> = any, TKey extends PropertyKey = string, TShortcuts extends RegleShortcutDefinition = {}> = NonNullable<TState[TKey]> extends Array<Record<string, any> | any> ? TRule extends RegleCollectionRuleDefinition<any, any> ? ExtractFromGetter<TRule['$each']> extends ReglePartialRuleTree<any> ? RegleCollectionStatus<TState[TKey], ExtractFromGetter<TRule['$each']>, TRule, TShortcuts> : RegleFieldStatus<TState[TKey], TRule, TShortcuts> : RegleCollectionStatus<TState[TKey], {}, TRule, TShortcuts> : TRule extends ReglePartialRuleTree<any> ? NonNullable<TState[TKey]> extends Array<any> ? RegleCommonStatus<TState[TKey]> : NonNullable<TState[TKey]> extends Date | File ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Record<PropertyKey, any> ? RegleStatus<TState[TKey], TRule, TShortcuts> : RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Date | File ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Record<PropertyKey, any> ? RegleStatus<TState[TKey], ReglePartialRuleTree<TState[TKey]>, TShortcuts> : RegleFieldStatus<TState[TKey], TRule, TShortcuts>;
2075
+ type InferRegleStatusType<TRule extends RegleCollectionRuleDecl | RegleRuleDecl | ReglePartialRuleTree<any>, TState extends Record<PropertyKey, any> = any, TKey extends PropertyKey = string, TShortcuts extends RegleShortcutDefinition = {}> = NonNullable<TState[TKey]> extends Array<infer U extends Record<string, any>> ? ExtendOnlyRealRecord<U> extends true ? TRule extends RegleCollectionRuleDefinition<any, any> ? ExtractFromGetter<TRule['$each']> extends ReglePartialRuleTree<any> ? RegleCollectionStatus<TState[TKey], ExtractFromGetter<TRule['$each']>, TRule, TShortcuts> : RegleFieldStatus<TState[TKey], TRule, TShortcuts> : RegleCollectionStatus<TState[TKey], {}, TRule, TShortcuts> : RegleFieldStatus<TState[TKey], TRule, TShortcuts> : TRule extends ReglePartialRuleTree<any> ? NonNullable<TState[TKey]> extends Array<any> ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Date | File ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Record<PropertyKey, any> ? RegleStatus<TState[TKey], TRule, TShortcuts> : RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Date | File ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Record<PropertyKey, any> ? RegleStatus<TState[TKey], ReglePartialRuleTree<TState[TKey]>, TShortcuts> : RegleFieldStatus<TState[TKey], TRule, TShortcuts>;
2071
2076
  /**
2072
2077
  * @internal
2073
2078
  * @reference {@link InferRegleStatusType}
@@ -2114,6 +2119,7 @@ interface $InternalRegleFieldStatus extends $InternalRegleCommonStatus {
2114
2119
  readonly $rules: Record<string, $InternalRegleRuleStatus>;
2115
2120
  readonly $externalErrors?: string[];
2116
2121
  readonly $errors: string[];
2122
+ readonly $tooltips: string[];
2117
2123
  readonly $inactive: boolean;
2118
2124
  readonly $silentErrors: string[];
2119
2125
  $extractDirtyFields: (filterNullishValues?: boolean) => any;
@@ -2160,7 +2166,7 @@ interface RegleCommonStatus<TValue = any> {
2160
2166
  */
2161
2167
  $reset(): void;
2162
2168
  $reset(options?: ResetOptions<TValue>): void;
2163
- /** Clears the $externalResults state back to an empty object. */
2169
+ /** Clears the $externalErrors state back to an empty object. */
2164
2170
  $clearExternalErrors(): void;
2165
2171
  }
2166
2172
  interface $InternalRegleCommonStatus extends Omit<RegleCommonStatus, '$touch' | '$reset'> {
@@ -1137,6 +1137,10 @@ type ResetOptions<TState extends unknown> = RequireOneOrNone<{
1137
1137
  * Reset validation status and reset form state to the given state
1138
1138
  */
1139
1139
  toState?: TState | (() => TState);
1140
+ /**
1141
+ * Clears the $externalErrors state back to an empty object.
1142
+ */
1143
+ clearExternalErrors?: boolean;
1140
1144
  }, 'toInitialState' | 'toState'>;
1141
1145
 
1142
1146
  interface useRegleFn<TCustomRules extends Partial<AllRulesDeclarations>, TShortcuts extends RegleShortcutDefinition<any> = never, TAdditionalReturnProperties extends Record<string, any> = {}, TAdditionalOptions extends Record<string, any> = {}> {
@@ -1658,6 +1662,7 @@ type EnumLike = {
1658
1662
  [k: string]: string | number;
1659
1663
  [nu: number]: string;
1660
1664
  };
1665
+ type UnwrapMaybeRef<T extends MaybeRef<any> | DeepReactiveState<any>> = T extends Ref<any> ? UnwrapRef<T> : UnwrapNestedRefs<T>;
1661
1666
 
1662
1667
  type CreateFn<T extends any[]> = (...args: T) => any;
1663
1668
  /**
@@ -1927,15 +1932,15 @@ type InlineRuleDeclaration<TValue extends any = any, TParams extends any[] = any
1927
1932
  type FormRuleDeclaration<TValue extends any, TParams extends any[], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition> = RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TMetadata extends RegleRuleMetadataDefinition = TReturn extends Promise<infer M> ? M : TReturn, TAsync extends boolean = boolean> = InlineRuleDeclaration<TValue, TParams, TReturn> | RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>;
1928
1933
 
1929
1934
  type RegleErrorTree<TState = MaybeRef<Record<string, any> | any[]>> = {
1930
- readonly [K in keyof JoinDiscriminatedUnions<UnwrapNestedRefs<TState>>]: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapNestedRefs<TState>>[K]>;
1935
+ readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], false>;
1931
1936
  };
1932
1937
  type RegleExternalErrorTree<TState = MaybeRef<Record<string, any> | any[]>> = {
1933
- readonly [K in keyof JoinDiscriminatedUnions<UnwrapNestedRefs<TState>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapNestedRefs<TState>>[K], true>;
1938
+ readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], true>;
1934
1939
  };
1935
- type RegleValidationErrors<TState extends Record<string, any> | any[] | unknown = never, TExternal extends boolean = false> = NonNullable<TState> extends Array<infer U extends Record<string, any>> ? TExternal extends false ? RegleCollectionErrors<U> : RegleExternalCollectionErrors<U> : NonNullable<TState> extends Date | File ? string[] : NonNullable<TState> extends Record<string, any> ? TExternal extends false ? RegleErrorTree<TState> : RegleExternalErrorTree<TState> : string[];
1940
+ type RegleValidationErrors<TState extends Record<string, any> | any[] | unknown = never, TExternal extends boolean = false> = NonNullable<TState> extends Array<infer U extends Record<string, any>> ? ExtendOnlyRealRecord<U> extends true ? TExternal extends false ? RegleCollectionErrors<U> : RegleExternalCollectionErrors<U> : string[] : NonNullable<TState> extends Date | File ? string[] : NonNullable<TState> extends Record<string, any> ? TExternal extends false ? RegleErrorTree<TState> : RegleExternalErrorTree<TState> : string[];
1936
1941
  type RegleCollectionErrors<TState extends Record<string, any>> = {
1937
1942
  readonly $self: string[];
1938
- readonly $each: RegleValidationErrors<TState>[];
1943
+ readonly $each: RegleValidationErrors<TState, false>[];
1939
1944
  };
1940
1945
  type RegleExternalCollectionErrors<TState extends Record<string, any>> = {
1941
1946
  readonly $self?: string[];
@@ -1997,8 +2002,8 @@ interface SuperCompatibleRegleStatus extends SuperCompatibleRegleCommonStatus {
1997
2002
  $fields: {
1998
2003
  [x: string]: unknown;
1999
2004
  };
2000
- readonly $errors: Record<string, RegleValidationErrors<any>>;
2001
- readonly $silentErrors: Record<string, RegleValidationErrors<any>>;
2005
+ readonly $errors: Record<string, RegleValidationErrors<any, false>>;
2006
+ readonly $silentErrors: Record<string, RegleValidationErrors<any, false>>;
2002
2007
  $extractDirtyFields: (filterNullishValues?: boolean) => Record<string, any>;
2003
2008
  $validate?: () => Promise<SuperCompatibleRegleResult>;
2004
2009
  }
@@ -2067,7 +2072,7 @@ interface $InternalRegleStatus extends $InternalRegleCommonStatus {
2067
2072
  /**
2068
2073
  * @public
2069
2074
  */
2070
- type InferRegleStatusType<TRule extends RegleCollectionRuleDecl | RegleRuleDecl | ReglePartialRuleTree<any>, TState extends Record<PropertyKey, any> = any, TKey extends PropertyKey = string, TShortcuts extends RegleShortcutDefinition = {}> = NonNullable<TState[TKey]> extends Array<Record<string, any> | any> ? TRule extends RegleCollectionRuleDefinition<any, any> ? ExtractFromGetter<TRule['$each']> extends ReglePartialRuleTree<any> ? RegleCollectionStatus<TState[TKey], ExtractFromGetter<TRule['$each']>, TRule, TShortcuts> : RegleFieldStatus<TState[TKey], TRule, TShortcuts> : RegleCollectionStatus<TState[TKey], {}, TRule, TShortcuts> : TRule extends ReglePartialRuleTree<any> ? NonNullable<TState[TKey]> extends Array<any> ? RegleCommonStatus<TState[TKey]> : NonNullable<TState[TKey]> extends Date | File ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Record<PropertyKey, any> ? RegleStatus<TState[TKey], TRule, TShortcuts> : RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Date | File ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Record<PropertyKey, any> ? RegleStatus<TState[TKey], ReglePartialRuleTree<TState[TKey]>, TShortcuts> : RegleFieldStatus<TState[TKey], TRule, TShortcuts>;
2075
+ type InferRegleStatusType<TRule extends RegleCollectionRuleDecl | RegleRuleDecl | ReglePartialRuleTree<any>, TState extends Record<PropertyKey, any> = any, TKey extends PropertyKey = string, TShortcuts extends RegleShortcutDefinition = {}> = NonNullable<TState[TKey]> extends Array<infer U extends Record<string, any>> ? ExtendOnlyRealRecord<U> extends true ? TRule extends RegleCollectionRuleDefinition<any, any> ? ExtractFromGetter<TRule['$each']> extends ReglePartialRuleTree<any> ? RegleCollectionStatus<TState[TKey], ExtractFromGetter<TRule['$each']>, TRule, TShortcuts> : RegleFieldStatus<TState[TKey], TRule, TShortcuts> : RegleCollectionStatus<TState[TKey], {}, TRule, TShortcuts> : RegleFieldStatus<TState[TKey], TRule, TShortcuts> : TRule extends ReglePartialRuleTree<any> ? NonNullable<TState[TKey]> extends Array<any> ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Date | File ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Record<PropertyKey, any> ? RegleStatus<TState[TKey], TRule, TShortcuts> : RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Date | File ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Record<PropertyKey, any> ? RegleStatus<TState[TKey], ReglePartialRuleTree<TState[TKey]>, TShortcuts> : RegleFieldStatus<TState[TKey], TRule, TShortcuts>;
2071
2076
  /**
2072
2077
  * @internal
2073
2078
  * @reference {@link InferRegleStatusType}
@@ -2114,6 +2119,7 @@ interface $InternalRegleFieldStatus extends $InternalRegleCommonStatus {
2114
2119
  readonly $rules: Record<string, $InternalRegleRuleStatus>;
2115
2120
  readonly $externalErrors?: string[];
2116
2121
  readonly $errors: string[];
2122
+ readonly $tooltips: string[];
2117
2123
  readonly $inactive: boolean;
2118
2124
  readonly $silentErrors: string[];
2119
2125
  $extractDirtyFields: (filterNullishValues?: boolean) => any;
@@ -2160,7 +2166,7 @@ interface RegleCommonStatus<TValue = any> {
2160
2166
  */
2161
2167
  $reset(): void;
2162
2168
  $reset(options?: ResetOptions<TValue>): void;
2163
- /** Clears the $externalResults state back to an empty object. */
2169
+ /** Clears the $externalErrors state back to an empty object. */
2164
2170
  $clearExternalErrors(): void;
2165
2171
  }
2166
2172
  interface $InternalRegleCommonStatus extends Omit<RegleCommonStatus, '$touch' | '$reset'> {
@@ -1,2 +1,2 @@
1
- 'use strict';var vue=require('vue');function te(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var $t=Symbol("regle-rule");function zt(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function N(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>N(n)))),r=="Map"&&(t=new Map([...e].map(n=>[N(n[0]),N(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,zt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=N(e[n]);}return t}function Q(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function ze(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Ve(e,t,r){let n,l=(...c)=>new Promise(m=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...c])).then(m);},t);});return l.cancel=()=>{clearTimeout(n),n=void 0;},l}var qe=(r=>(r.Inline="__inline",r.Async="__async",r))(qe||{});function St(e,t){return e.some(r=>r[t])}function ht(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function re(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function bt(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function Tt(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(m=>m.trim()).filter(m=>m.length>0).length:0}function Ke(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(d,...$){return e.validator(d,...re($.length?$:t))},message(d){return typeof e.message=="function"?e.message({...d,$params:re(d?.$params?.length?d.$params:t)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:re(d?.$params?.length?d.$params:t)}):e.active??true},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:re(d?.$params?.length?d.$params:t)}):e.tooltip??[]},exec(d){let $=e.validator(d,...re(t)),p;return $ instanceof Promise?$.then(h=>(p=h,typeof p=="object"&&"$valid"in p?p.$valid:typeof p=="boolean"?p:false)):(p=$,typeof p=="object"&&"$valid"in p?p.$valid:typeof p=="boolean"?p:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:l,_params:bt(t),_brand:$t}}function Je(e){if(typeof e.validator=="function"){let r=Ke(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(Tt(e.validator)>1){let l=function(...c){return Ke(e,...c)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=false,l._tooltip_pacthed=false,l._async=n,l}else return r}throw new Error("Validator must be a function")}function Ye(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),l=vue.shallowRef(new Map),c=vue.shallowRef(new Map);function m(S){let E=t.value.get(S);if(E)return E;{let D=vue.ref({});return t.value.set(S,D),D}}function d(S){let E=r.value.get(S);if(E)return E;{let D=vue.ref([]);return r.value.set(S,D),D}}function $(S,E,D){c.value.set(`${S}-${E}`,D);}function p(S,E){return c.value.get(`${S}-${E}`)}function h(S,E){S&&E!=null&&c.value.delete(`${S}-${E}`);}function V(S,E){n.value.set(S,E);}function C(S){return n.value.get(S)??false}function A(S,E){e.value.set(S,E);}function w(S,E){let D=e.value.get(S);return D?O(E,D)?{valid:true}:{valid:false}:void 0}function O(S,E){let D=Object.keys(E),u=Object.keys(S);return u.length!==D.length||!u.every(s=>D.includes(s))?false:u.every(s=>{let o=S[s],b=E[s];return !b||!o||typeof o=="function"||typeof b=="function"||typeof o=="number"||typeof o=="boolean"?false:o._params?o._params?.every((M,L)=>{if(typeof b=="number"||typeof b=="boolean")return true;{let G=re(b._params),X=re(o._params);return G?.[L]===X?.[L]}}):true})}function a(S){let E=l.value.get(S);if(E)return E;{let D=vue.ref(false),u=vue.ref(true),T=vue.ref({}),s=vue.ref(false);return l.value.set(S,{$pending:D,$valid:u,$metadata:T,$validating:s}),{$pending:D,$valid:u,$metadata:T,$validating:s}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),c.value.clear();}),{addRuleDeclEntry:A,setDirtyEntry:V,checkRuleDeclEntry:w,getDirtyState:C,trySetRuleStatusRef:a,getFieldsEntry:m,getCollectionsEntry:d,getArrayStatus:p,addArrayStatus:$,deleteArrayStatus:h,arrayStatusStorage:c}}function _e(e){return Q(e.value)}function Qe(e,t,r){let n=vue.effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function tr(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let c=Number(r[l]),m=Number(n[l]);if(c>m)return 1;if(m>c)return -1;if(!isNaN(c)&&isNaN(m))return 1;if(isNaN(c)&&!isNaN(m))return -1}return 0}var Ne=tr(vue.version,"3.5.0")!==-1;function rr(){return Math.floor(Math.random()*Date.now()).toString()}function $e(){return typeof window>"u"?rr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Et(e){return vue.getCurrentScope()?(vue.onScopeDispose(e),true):false}function xt(e){let t=false,r,n=vue.effectScope(true);return (...l)=>(t||(r=n.run(()=>e(...l)),t=true),r)}function ke(e,t){return _e(e)||Q(t.value)&&!te(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function Dt(e,t){return !!e.value&&Q(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Ge(e){return !!e.value&&Q(e.value)}function we(e){return Q(e)&&"_validator"in e}function Pe(e){return typeof e.value!="function"}function Ct(e){return Q(e)&&"$fields"in e}function It(e){return !!e&&"$rules"in e}function Xe({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Ot({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function wt({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:c,$debounce:m,modifiers:d}){let $=vue.effectScope(),p={},h,V=vue.ref(false),{$pending:C,$valid:A,$metadata:w,$validating:O}=c.trySetRuleStatusRef(`${l}.${r}`);function a(){$=vue.effectScope(),p=$.run(()=>{let o=vue.ref(false),b=vue.ref(false),M=vue.ref(true),L=vue.ref(false),G=vue.ref(false),X=vue.computed(()=>({$value:n.value,$error:b.value,$dirty:o.value,$pending:L.value,$correct:G.value,$invalid:M.value,$rule:{$valid:A.value,$invalid:!A.value,$pending:C.value},$params:f.value,...w.value})),oe=vue.computed(()=>Pe(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function I(x){let F="",B=e?e[r]?.[x]:void 0;if(B&&(typeof B=="function"?F=B(X.value):F=B),Pe(t)){let y=`_${x}_patched`;B&&!t.value[y]||(typeof t.value[x]=="function"?F=t.value[x](X.value):F=t.value[x]??"");}return F}let z=vue.computed(()=>{let x=I("message");return te(x)&&(x="This field is not valid"),x}),me=vue.computed(()=>I("tooltip")),ue=vue.computed(()=>Pe(t)&&t.value.type?t.value.type:r),i=vue.computed(()=>Pe(t)?t.value.validator:t.value),f=vue.computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),R=vue.computed(()=>`${l}.${ue.value}`);return {$active:oe,$message:z,$type:ue,$validator:i,$params:f,$path:R,$tooltip:me,$fieldCorrect:G,$fieldError:b,$fieldDirty:o,$fieldPending:L,$fieldInvalid:M}}),h=vue.watch(p?.$params,()=>{(d.$autoDirty.value||d.$rewardEarly.value&&p.$fieldError.value)&&u();});}a();function S(){A.value=true,p.$fieldDirty.value&&(C.value=true);}async function E(){let o=false;try{let b=p.$validator.value;if(typeof b!="function")return console.error(`${l}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let M=b(n.value,...p.$params.value),L=n.value;S();let G;if(M instanceof Promise?G=await M:G=M,n.value!==L)return !0;if(typeof G=="boolean")o=G;else {let{$valid:X,...oe}=G;o=X,w.value=oe;}}catch{o=false;}finally{C.value=false;}return o}let D=Ve(E,m??200);async function u(){try{O.value=!0;let o=!1;if(we(t.value)&&t.value._async)o=await D();else {let b=p.$validator.value,M=b(n.value,...p.$params.value);if(M 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(M!=null)if(typeof M=="boolean")o=M;else {let{$valid:L,...G}=M;o=L,w.value=G;}}return A.value=o,o}catch{return false}finally{O.value=false;}}function T(){A.value=true,w.value={},C.value=false,O.value=false,a();}function s(){h(),$.stop(),$=vue.effectScope();}return vue.reactive({...p,$pending:C,$valid:A,$metadata:w,$haveAsync:V,$validating:O,$parse:u,$unwatch:s,$watch:a,$reset:T})}function be({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:c,options:m,externalErrors:d,schemaErrors:$,schemaMode:p,onUnwatch:h,$isArray:V,initialState:C,shortcuts:A,onValidate:w}){let O=vue.effectScope(),a,S=[],E,D,u,T,s,o=()=>{};function b(){let v=t.value,j=c.checkRuleDeclEntry(n,v);z.value=Object.fromEntries(Object.entries(v).filter(([g])=>g.startsWith("$"))),G(),I.value=Object.fromEntries(Object.entries(t.value).filter(([g])=>!g.startsWith("$")).map(([g,ee])=>{if(ee){let se=vue.toRef(()=>ee);return [g,wt({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:se,ruleKey:g,state:e,path:n,storage:c,$debounce:z.value.$debounce})]}return []}).filter(g=>!!g.length)),a.processShortcuts(),M(),j?.valid!=null&&(a.$dirty.value=c.getDirtyState(n),(a.$dirty.value&&a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o()),c.addRuleDeclEntry(n,v);}function M(){o=a.$debounce.value?Ve(oe,a.$debounce.value??a.$haveAnyAsyncRule?100:0):oe;}function L(){I.value&&Object.entries(I.value).forEach(([v,j])=>{j.$unwatch();}),u(),s?.(),a.$dirty.value&&c.setDirtyEntry(n,a.$dirty.value),E?.(),D?.(),O.stop(),O=vue.effectScope(),S.forEach(v=>v.stop()),S=[],h?.(),T?.();}function G(){I.value&&Object.entries(I.value).forEach(([v,j])=>{j.$watch();}),a=O.run(()=>{let v=vue.ref(false),j=vue.ref(false),g=vue.computed(()=>v.value),ee=vue.computed(()=>z.value.$debounce),se=vue.computed(()=>z.value.$lazy!=null?z.value.$lazy:vue.unref(m.lazy)!=null?vue.unref(m.lazy):false),le=vue.computed(()=>z.value.$rewardEarly!=null?z.value.$rewardEarly:vue.unref(m.rewardEarly)!=null?vue.unref(m.rewardEarly):false),U=vue.computed(()=>z.value.$clearExternalErrorsOnChange!=null?z.value.$clearExternalErrorsOnChange:vue.unref(m.clearExternalErrorsOnChange)!=null?vue.unref(m.clearExternalErrorsOnChange):true),P=vue.computed(()=>z.value.$autoDirty!=null?z.value.$autoDirty:vue.unref(m.autoDirty)!=null?vue.unref(m.autoDirty):!le.value),H=vue.computed(()=>Object.entries(I.value).some(([ie,Y])=>Y.$validating)),Ie=vue.computed({get:()=>e.value,set(ie){E(),e.value=ie,X();}}),Fe=vue.computed(()=>ye.value&&!Oe.value&&v.value),ut=vue.computed(()=>Xe({field:{$rules:I.value,$error:Fe.value,$externalErrors:d?.value,$schemaErrors:$?.value}})),ct=vue.computed(()=>Xe({field:{$rules:I.value,$error:Fe.value,$externalErrors:d?.value,$schemaErrors:$?.value},silent:true})),He=vue.computed(()=>v.value?C.value instanceof Date&&e.value instanceof Date?ze(C.value).getDate()!==ze(e.value).getDate():C.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(C.value)?e.value.length!==C.value.length:C.value!==e.value:false),ft=vue.computed(()=>He.value),Rt=vue.computed(()=>Ot({field:{$rules:I.value}})),dt=vue.computed(()=>P.value?g.value&&!(ye.value||Oe.value):!(ye.value||Oe.value)),Oe=vue.computed(()=>j.value||!le.value?Object.entries(I.value).some(([ie,Y])=>Y.$pending):false),ye=vue.computed(()=>d?.value?.length||$?.value?.length?true:je.value?false:!le.value||le.value&&j.value?Object.entries(I.value).some(([ie,Y])=>!Y.$valid):false),pt=vue.computed(()=>l),je=vue.computed(()=>!!(te(I.value)&&!p)),mt=vue.computed(()=>d?.value?.length||je.value?false:v.value&&!te(e.value)&&!H.value?p?!$?.value?.length:Object.values(I.value).some(Y=>Y.$active)?Object.values(I.value).filter(Y=>Y.$active).every(Y=>Y.$valid):false:false),Bt=vue.computed(()=>Object.entries(I.value).some(([ie,Y])=>Y.$haveAsync));function Ht(){A?.fields&&Object.entries(A.fields).forEach(([ie,Y])=>{let gt=vue.effectScope();yt[ie]=gt.run(()=>{let vt=vue.ref();return vue.watchEffect(()=>{vt.value=Y(vue.reactive({$dirty:v,$externalErrors:d?.value??[],$value:e,$silentValue:Ie,$rules:I,$error:Fe,$pending:Oe,$invalid:ye,$correct:mt,$errors:ut,$ready:dt,$silentErrors:ct,$anyDirty:g,$tooltips:Rt,$name:pt,$inactive:je,$edited:He,$anyEdited:ft}));}),vt}),S.push(gt);});}let yt={};return vue.watch(ye,ie=>{ie||(j.value=false);}),{$error:Fe,$pending:Oe,$invalid:ye,$correct:mt,$debounce:ee,$lazy:se,$errors:ut,$ready:dt,$silentErrors:ct,$rewardEarly:le,$autoDirty:P,$clearExternalErrorsOnChange:U,$anyDirty:g,$edited:He,$anyEdited:ft,$name:pt,$haveAnyAsyncRule:Bt,$shortcuts:yt,$validating:H,$tooltips:Rt,$dirty:v,triggerPunishment:j,processShortcuts:Ht,$silentValue:Ie,$inactive:je}}),X(),u=vue.watch(a.$dirty,v=>{c.setDirtyEntry(n,v),Object.values(I.value).forEach(j=>{j.$fieldDirty=v;});}),s=vue.watch([a.$error,a.$correct,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(v=>{v.$fieldError=a.$error.value,v.$fieldInvalid=a.$invalid.value,v.$fieldPending=a.$pending.value,v.$fieldCorrect=a.$correct.value;});}),D=vue.watch(a.$invalid,v=>{a.$rewardEarly.value&&!v&&(a.triggerPunishment.value=false);}),T=vue.watch(a.$haveAnyAsyncRule,M);}function X(){E=vue.watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&b(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&R();},{deep:V?true:Ne?1:true,flush:"post"});}function oe(){Object.values(I.value).forEach(v=>{v.$parse();});}let I=vue.ref({}),z=vue.ref({});b();function me(v,j){if(R(),a.$dirty.value=false,a.triggerPunishment.value=false,c.setDirtyEntry(n,false),!j)if(v?.toInitialState)L(),e.value=N(C);else if(v?.toState){L();let g;typeof v?.toState=="function"?g=v?.toState():g=v?.toState,C.value=N(g),e.value=N(g);}else C.value=Q(e.value)?N(e.value):Array.isArray(e.value)?[...e.value]:e.value;j||Object.entries(I.value).forEach(([g,ee])=>{ee.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(g=>g.$parse()),j||b();}function ue(v=true,j=false){a.$dirty.value||(a.$dirty.value=true),j&&v?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o():v&&o();}async function i(){try{if(p)return w?(ue(!1),w()):{valid:!1,data:e.value};let v=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {valid:!a.$error.value,data:v};return p?{valid:!$?.value?.length,data:v}:te(I.value)?{valid:!0,data:v}:{valid:(await Promise.allSettled(Object.entries(I.value).map(([ee,se])=>se.$parse()))).every(ee=>ee.status==="fulfilled"?ee.value===!0:!1),data:v}}catch{return {valid:false,data:e.value}}}function f(v=true){return a.$dirty.value?e.value:v?{_null:true}:null}function R(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&o();let{$shortcuts:x,$validating:F,$autoDirty:B,$rewardEarly:y,$clearExternalErrorsOnChange:_,$haveAnyAsyncRule:q,$debounce:Z,$lazy:J,triggerPunishment:fe,...ce}=a;return vue.reactive({...ce,$externalErrors:d,$value:e,$rules:I,...x,$reset:me,$touch:ue,$validate:i,$unwatch:L,$watch:G,$extractDirtyFields:f,$clearExternalErrors:R})}function tt({$id:e,path:t,index:r,options:n,storage:l,stateValue:c,customMessages:m,rules:d,externalErrors:$,schemaErrors:p,initialState:h,shortcuts:V,fieldName:C,schemaMode:A}){let w=d.$key?d.$key:$e(),O=`${t}.${String(w)}`;typeof c.value=="object"&&c.value!=null&&(c.value.$id?O=`${t}.${c.value.$id}`:Object.defineProperties(c.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let a=vue.toRef($?.value??[],r),S=vue.computed(()=>p?.value?.[r]),E=Te({state:c,rulesDef:vue.toRef(()=>d),customMessages:m,path:O,storage:l,options:n,externalErrors:a,schemaErrors:S,initialState:h,shortcuts:V,fieldName:C,schemaMode:A});if(E){let D=c.value?.$id;E.$id=D??String(w),l.addArrayStatus(e,E.$id,E);}return E}function Ft({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:c,externalErrors:m,schemaErrors:d,schemaMode:$,initialState:p,shortcuts:h,fieldName:V}){let C=vue.effectScope(),A,w=vue.effectScope(),O,a=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let S=vue.ref(),E=vue.ref(e.value),D,u=vue.ref({}),T=l.getCollectionsEntry(n);O=w.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(f=>typeof f!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(f=>we(f)||typeof f=="function"):false)})),s(),M();function s(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(S.value=$e(),Object.defineProperties(e.value,{$id:{value:S.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(S.value=e.value.$id)),E.value=u.value.$value,Array.isArray(e.value)&&!O.isPrimitiveArray.value?T.value=e.value.filter(i=>typeof i=="object").map((i,f)=>{let{scope:R,unwrapped:x}=Qe(t.value.$each,vue.toRef(()=>i),f);R&&a.push(R);let F=vue.toRef(p.value??[],f),B=vue.toRef(m?.value??{},"$each"),y=vue.computed(()=>d?.value?.$each),_=tt({$id:S.value,path:n,customMessages:r,rules:x??{},stateValue:vue.toRef(()=>i),index:f,options:c,storage:l,externalErrors:B,schemaErrors:y,initialState:F,shortcuts:h,fieldName:V,schemaMode:$});return _||null}).filter(i=>!!i):T.value=[],u.value=be({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:c,externalErrors:vue.toRef(m?.value??{},"$self"),schemaErrors:vue.computed(()=>d?.value?.$self),$isArray:true,initialState:p,shortcuts:h,fieldName:V,schemaMode:$});}function o(){if(Array.isArray(e.value)&&!O.isPrimitiveArray.value){let i=N(T.value);T.value=e.value.filter(f=>typeof f=="object").map((f,R)=>{let x=vue.toRef(()=>f);if(f.$id&&T.value.find(F=>F.$id===f.$id)){let F=l.getArrayStatus(S.value,f.$id);return F?(F.$value=x,F):null}else {let{scope:F,unwrapped:B}=Qe(t.value.$each,x,R);F&&a.push(F);let y=vue.toRef(m?.value??{},"$each"),_=vue.computed(()=>d?.value?.$each??[]),q=tt({$id:S.value,path:n,customMessages:r,rules:B??{},stateValue:x,index:R,options:c,storage:l,externalErrors:y,schemaErrors:_,initialState:vue.toRef(p.value??[],R),shortcuts:h,fieldName:V,schemaMode:$});return q||null}}).filter(f=>!!f),i.filter(f=>!e.value?.find(R=>f.$id===R.$id)).forEach((f,R)=>{l.deleteArrayStatus(S.value,R.toString());});}else T.value=[];}function b(){D=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?s():o();},{deep:Ne?1:true,flush:"pre"});}function M(){b(),C=vue.effectScope(),A=C.run(()=>{let i=vue.computed({get:()=>e.value,set(g){D(),e.value=g,b();}}),f=vue.computed(()=>u.value.$dirty&&(!T.value.length||T.value.every(g=>g.$dirty))),R=vue.computed(()=>u.value.$anyDirty||T.value.some(g=>g.$anyDirty)),x=vue.computed(()=>u.value.$invalid||T.value.some(g=>g.$invalid)),F=vue.computed(()=>(te(u.value.$rules)?true:u.value.$correct)&&(!T.value.length||T.value.every(g=>g.$correct||g.$anyDirty&&!g.$invalid))),B=vue.computed(()=>u.value.$error||T.value.some(g=>g.$error)),y=vue.computed(()=>!(x.value||_.value)),_=vue.computed(()=>u.value.$pending||T.value.some(g=>g.$pending)),q=vue.computed(()=>!!T.value.length&&T.value.every(g=>g.$edited)),Z=vue.computed(()=>u.value.$anyEdited||T.value.some(g=>g.$anyEdited)),J=vue.computed(()=>({$self:u.value.$errors,$each:T.value.map(g=>g.$errors)})),fe=vue.computed(()=>({$self:u.value.$silentErrors,$each:T.value.map(g=>g.$silentErrors)})),ce=vue.computed(()=>V);function v(){h?.collections&&Object.entries(h?.collections).forEach(([g,ee])=>{let se=vue.effectScope();j[g]=se.run(()=>{let le=vue.ref();return vue.watchEffect(()=>{le.value=ee(vue.reactive({$dirty:f,$error:B,$silentValue:i,$pending:_,$invalid:x,$correct:F,$errors:J,$ready:y,$silentErrors:fe,$anyDirty:R,$name:ce,$each:T,$self:u,$value:e,$edited:q,$anyEdited:Z}));}),le}),a.push(se);});}let j={};return v(),{$dirty:f,$anyDirty:R,$invalid:x,$correct:F,$error:B,$pending:_,$errors:J,$silentErrors:fe,$ready:y,$name:ce,$shortcuts:j,$silentValue:i,$edited:q,$anyEdited:Z}}),O.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function L(){D&&D(),u.value&&u.value.$unwatch(),T.value&&T.value.forEach(i=>{"$dirty"in i&&i.$unwatch();}),C.stop(),C=vue.effectScope(),w.stop(),w=vue.effectScope(true),a.forEach(i=>i.stop()),a=[];}function G(i=true,f=false){u.value.$touch(i,f),T.value.forEach(R=>{R.$touch(i,f);});}function X(i,f){if(L(),!f)if(i?.toInitialState)e.value=N(p.value);else if(i?.toState){let R;typeof i?.toState=="function"?R=i?.toState():R=i?.toState,p.value=N(R),e.value=N(R);}else p.value=N(e.value);u.value.$reset(),T.value.forEach(R=>{R.$reset(i,true);}),f||s();}async function oe(){let i=e.value;try{return {valid:(await Promise.allSettled([u.value.$validate(),...T.value.map(x=>x.$validate())])).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:i}}catch{return {valid:false,data:i}}}function I(){u.value.$clearExternalErrors(),T.value.forEach(i=>{i.$clearExternalErrors();});}function z(i=true){let f=T.value.map(R=>{if(Ct(R))return R.$extractDirtyFields(i)});return i&&f.every(R=>te(R))&&(f=[]),f}let{$shortcuts:me,...ue}=A;return vue.reactive({$self:u,...ue,...me,$each:T,$value:e,$validate:oe,$unwatch:L,$watch:M,$touch:G,$reset:X,$extractDirtyFields:z,$clearExternalErrors:I})}function We({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:c,rootSchemaErrors:m,validationGroups:d,initialState:$,fieldName:p,...h}){let V=vue.effectScope(),C,A=[],w=null,O=null,a=null,S=null;async function D(i=true){let f=Object.entries(e.value),R=Object.fromEntries(f.filter(([y,_])=>!!_).map(([y,_])=>{if(_){let q=vue.toRef(t.value??{},y),Z=vue.toRef(()=>_),J=vue.toRef(l?.value??{},y),fe=vue.computed(()=>c?.value?.[y]),ce=vue.toRef($?.value??{},y);return [y,Te({state:q,rulesDef:Z,path:r?`${r}.${y}`:y,externalErrors:J,schemaErrors:fe,initialState:ce,fieldName:y,...h})]}return []})),x=Object.fromEntries(Object.entries(vue.unref(l)??{}).filter(([y,_])=>!(y in e.value)&&!!_).map(([y])=>{let _=vue.toRef(t.value??{},y),q=vue.toRef(l?.value??{},y),Z=vue.computed(()=>c?.value?.[y]),J=vue.toRef($?.value??{},y);return [y,Te({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:J,fieldName:y,...h})]})),F=Object.fromEntries(Object.entries(vue.unref(c)??{}).map(([y])=>{let _=vue.toRef(t.value??{},y),q=vue.toRef(l?.value??{},y),Z=vue.computed(()=>c?.value?.[y]),J=vue.toRef($?.value??{},y);return [y,Te({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:J,fieldName:y,...h})]})),B=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(x??{}))&&!(y in(F??{}))).map(([y])=>{let _=vue.toRef(t.value??{},y),q=vue.toRef(l?.value??{},y),Z=vue.computed(()=>c?.value?.[y]),J=vue.toRef($?.value??{},y);return [y,Te({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:J,fieldName:y,...h})]}));u.value={...R,...x,...F,...B},i&&o();}let u=h.storage.getFieldsEntry(r);D();function T(){l&&(a=vue.watch(l,()=>{b(),D();},{deep:true}));}function s(){S=vue.watch(t,()=>{b(),D(),G(true,true);},{flush:"sync"});}function o(){n&&(w?.(),w=vue.watch(n,()=>{b(),D();},{deep:true,flush:"post"}),T()),m&&(O?.(),O=vue.watch(m,()=>{b(),D();},{deep:true,flush:"post"})),s(),C=V.run(()=>{let i=vue.computed({get:()=>t.value,set(U){b(),t.value=U,D();}}),f=vue.computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([U,P])=>P?.$dirty)),R=vue.computed(()=>Object.entries(u.value).some(([U,P])=>P?.$anyDirty)),x=vue.computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).some(([U,P])=>P?.$invalid)),F=vue.computed(()=>{let U=Object.entries(u.value).filter(([P,H])=>It(H)?!H.$inactive:true);return U.length?U.every(([P,H])=>H?.$correct||H.$anyDirty&&!H.$invalid):false}),B=vue.computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).some(([U,P])=>P?.$error)),y=vue.computed(()=>vue.unref(h.options.rewardEarly)!=null?vue.unref(h.options.rewardEarly):false),_=vue.computed(()=>vue.unref(h.options.autoDirty)!=null?vue.unref(h.options.autoDirty):!y.value),q=vue.computed(()=>_.value?R.value&&!(x.value||J.value):!(x.value||J.value)),Z=vue.ref(false),J=vue.computed(()=>Z.value||Object.entries(u.value).some(([U,P])=>P?.$pending)),fe=vue.computed(()=>Object.fromEntries(Object.entries(u.value).map(([U,P])=>[U,P?.$errors]))),ce=vue.computed(()=>Object.fromEntries(Object.entries(u.value).map(([U,P])=>[U,P?.$silentErrors]))),v=vue.computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([U,P])=>P?.$edited)),j=vue.computed(()=>Object.entries(u.value).some(([U,P])=>P?.$anyEdited)),g=vue.computed(()=>p);function ee(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,P])=>{let H=vue.effectScope();le[U]=H.run(()=>{let Ie=vue.ref();return vue.watchEffect(()=>{Ie.value=P(vue.reactive({$dirty:f,$value:t,$silentValue:i,$error:B,$pending:J,$invalid:x,$correct:F,$ready:q,$anyDirty:R,$name:g,$silentErrors:ce,$errors:fe,$fields:u,$edited:v,$anyEdited:j}));}),Ie}),A.push(H);});}let se=vue.computed({get:()=>d?Object.fromEntries(Object.entries(d?.(u.value)??{}).map(([U,P])=>P.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(H=>[H,St(P,H)])),...Object.fromEntries(["$errors","$silentErrors"].map(H=>[H,ht(P,H)]))}]:[])):{},set(){}}),le={};return ee(),{$dirty:f,$anyDirty:R,$invalid:x,$correct:F,$error:B,$pending:J,$errors:fe,$silentErrors:ce,$ready:q,$name:g,$shortcuts:le,$groups:se,$silentValue:i,$edited:v,$anyEdited:j,$localPending:Z}});}function b(){w?.(),a?.(),S?.(),O?.(),A=[],C={},u.value&&Object.entries(u.value).forEach(([i,f])=>{f.$unwatch();});}function M(){Object.entries(u.value).forEach(([i,f])=>{f.$clearExternalErrors();});}function L(i,f){if(a?.(),b(),!f)if(i?.toInitialState)t.value=N({...$.value??{}});else if(i?.toState){let R;typeof i?.toState=="function"?R=i?.toState():R=i?.toState,$.value=N(R),t.value=N(R);}else $.value=N(t.value);Object.values(u.value).forEach(R=>{R.$reset(i,true);}),T(),f||D();}function G(i=true,f=false){Object.values(u.value).forEach(R=>{R.$touch(i,f);});}function X(i){return i.filter(([f,R])=>Q(R)?!(R&&typeof R=="object"&&"_null"in R)&&!te(R):Array.isArray(R)?R.length:true)}function oe(i=true){let f=Object.entries(u.value).map(([R,x])=>[R,x.$extractDirtyFields(i)]);return i&&(f=X(f)),Object.fromEntries(f)}async function I(){try{if(h.schemaMode)return h.onValidate?(G(!1),C.$localPending.value=!0,h.onValidate()):{valid:!1,data:t.value};{let i=t.value;return {valid:(await Promise.allSettled(Object.values(u.value).map(x=>x.$validate()))).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:i}}}catch{return {valid:false,data:t.value}}finally{C.$localPending.value=false;}}let{$shortcuts:z,$localPending:me,...ue}=C;return vue.reactive({...ue,...z,$fields:u,$value:t,$reset:L,$touch:G,$validate:I,$unwatch:b,$watch:o,$clearExternalErrors:M,$extractDirtyFields:oe})}function Te({rulesDef:e,...t}){if(Dt(e,t.state))return Ft({rulesDef:e,...t});if(ke(t.state,e)){if(_e(t.state))return We({rulesDef:e,...t});{let n=vue.effectScope().run(()=>{let m=vue.toRef(t.state.value?t.state:vue.ref({}));return vue.watch(()=>t.state.value,d=>{m.value=d;},{deep:true}),vue.watch(m,d=>{t.state.value=d;},{deep:true}),{fakeState:m}}),{state:l,...c}=t;return We({rulesDef:e,...c,state:n.fakeState})}}else if(Ge(e))return be({rulesDef:e,...t})}function Ce({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:c,schemaErrors:m,schemaMode:d=false,onValidate:$}){let p=Ye(),h=vue.ref();return ke(n,r)?h.value=We({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:p,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:c,fieldName:"root",path:"",schemaErrors:m,rootSchemaErrors:m,schemaMode:d,onValidate:$}):Ge(r)&&(h.value=be({rulesDef:r,state:n,customMessages:l?.(),storage:p,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:c,fieldName:"root",path:"",schemaMode:d,schemaErrors:m,onValidate:$})),vue.getCurrentScope()&&vue.onScopeDispose(()=>{h.value?.$unwatch();}),vue.reactive({regle:h})}function at(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(c,m,d){let $=vue.isRef(m)?m:vue.computed(typeof m=="function"?m:()=>m),p={...n,...d},h=vue.isRef(c)?c:vue.ref(c),V=vue.ref(Q(h.value)?{...N(h.value)}:N(h.value));return {r$:Ce({scopeRules:$,state:h,options:p,initialState:V,customRules:e,shortcuts:r}).regle}}return l}var Le=at();function lt(){function e(t,r){return r}return e}var ot=lt();function Nt({rules:e,modifiers:t,shortcuts:r}){let n=at(e,t,r),l=lt();return {useRegle:n,inferRules:l}}function Me(e,t){let r=t??false,n=vue.computed({get:()=>r?Object.values(e).map(s=>s.$value):Object.fromEntries(Object.entries(e).map(([s,o])=>[s,o.$value])),set:s=>{r||typeof s=="object"&&Object.entries(s).forEach(([o,b])=>e[o].$value=b);}}),l=vue.computed({get:()=>Object.fromEntries(Object.entries(e).map(([s,o])=>[s,o.$silentValue])),set:s=>{typeof s=="object"&&Object.entries(s).forEach(([o,b])=>e[o].$silentValue=b);}}),c=vue.computed(()=>{let s=Object.entries(e);return !!s.length&&s.every(([o,b])=>b?.$dirty)}),m=vue.computed(()=>Object.entries(e).some(([s,o])=>o?.$anyDirty)),d=vue.computed(()=>Object.entries(e).some(([s,o])=>o?.$invalid)),$=vue.computed(()=>{let s=Object.entries(e);return !!s.length&&s.every(([o,b])=>b?.$correct||b.$anyDirty&&!b.$invalid)}),p=vue.computed(()=>Object.entries(e).some(([s,o])=>o?.$error)),h=vue.computed(()=>{let s=Object.entries(e);return !!s.length&&s.every(([o,b])=>b?.$ready)}),V=vue.computed(()=>Object.entries(e).some(([s,o])=>o?.$pending)),C=vue.computed(()=>r?Object.entries(e).map(([s,o])=>o.$errors):Object.fromEntries(Object.entries(e).map(([s,o])=>[s,o.$errors]))),A=vue.computed(()=>r?Object.entries(e).map(([s,o])=>o.$silentErrors):Object.fromEntries(Object.entries(e).map(([s,o])=>[s,o.$silentErrors]))),w=vue.computed(()=>{let s=Object.entries(e);return !!s.length&&s.every(([o,b])=>b?.$edited)}),O=vue.computed(()=>Object.entries(e).some(([s,o])=>o?.$anyEdited)),a=vue.computed(()=>r?Object.values(e):e);function S(s){Object.values(e).forEach(o=>{o.$reset(s);});}function E(){Object.values(e).forEach(s=>{s.$touch();});}function D(s=true){return Object.values(e).map(o=>o.$extractDirtyFields(s))}function u(){Object.values(e).forEach(s=>{s.$clearExternalErrors();});}async function T(){try{let s=n.value;return {valid:(await Promise.allSettled(Object.values(e).map(M=>M.$validate()))).every(M=>M.status==="fulfilled"?M.value.valid===!0:!1),data:s}}catch{return {valid:false,data:n.value}}}return vue.reactive({...!r&&{$silentValue:l},$errors:C,$silentErrors:A,$instances:a,$value:n,$dirty:c,$anyDirty:m,$invalid:d,$correct:$,$error:p,$pending:V,$ready:h,$edited:w,$anyEdited:O,$reset:S,$touch:E,$validate:T,$extractDirtyFields:D,$clearExternalErrors:u})}function Gt(e){function t(r){let n=vue.computed(()=>vue.toValue(r));m();let l=vue.ref(d(e.value)),c=vue.reactive({r$:l});function m(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}vue.watch(n,m),vue.watch(e,$=>{l.value=d($);},{deep:true});function d($){if(n.value){let p=$[n.value]??{};return Me(p,true)}else return Me($["~~global"]??{},true)}return {r$:c.r$}}return {useCollectScope:t}}function Lt(e,t){let r=t??Le;return {useScopedRegle:(l,c,m)=>{let{namespace:d,...$}=m??{},p=vue.computed(()=>vue.toValue(d)),h=vue.ref(`${Object.keys(e.value).length+1}-${$e()}`),V=vue.computed(()=>`instance-${h.value}`),{r$:C}=r(l,c,$);w(),Et(A),vue.watch(p,(O,a)=>{A(a),w();}),vue.getCurrentInstance()&&vue.onMounted(()=>{let O=vue.getCurrentInstance();typeof window<"u"&&O?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(O?.proxy?.$el?.parentElement)&&A();});function A(O){let a=O??p.value;a?e.value[a]&&delete e.value[a][V.value]:e.value["~~global"][V.value]&&delete e.value["~~global"][V.value];}function w(){p.value?(e.value[p.value]||(e.value[p.value]={}),e.value[p.value][V.value]=C):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][V.value]=C);}return {r$:C,dispose:A,register:w}}}}function Be(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):xt(()=>vue.ref({"~~global":{}})))(),{useScopedRegle:n}=Lt(r,e?.customUseRegle),{useCollectScope:l}=Gt(r);return {useScopedRegle:n,useCollectScope:l}}var {useCollectScope:st,useScopedRegle:it}=Be();
1
+ 'use strict';var vue=require('vue');function te(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var $t=Symbol("regle-rule");function zt(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function N(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>N(n)))),r=="Map"&&(t=new Map([...e].map(n=>[N(n[0]),N(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,zt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=N(e[n]);}return t}function K(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function ze(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Ve(e,t,r){let n,l=(...c)=>new Promise(m=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...c])).then(m);},t);});return l.cancel=()=>{clearTimeout(n),n=void 0;},l}var qe=(r=>(r.Inline="__inline",r.Async="__async",r))(qe||{});function St(e,t){return e.some(r=>r[t])}function ht(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function re(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function bt(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function Tt(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(m=>m.trim()).filter(m=>m.length>0).length:0}function Ke(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(d,...$){return e.validator(d,...re($.length?$:t))},message(d){return typeof e.message=="function"?e.message({...d,$params:re(d?.$params?.length?d.$params:t)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:re(d?.$params?.length?d.$params:t)}):e.active??true},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:re(d?.$params?.length?d.$params:t)}):e.tooltip??[]},exec(d){let $=e.validator(d,...re(t)),p;return $ instanceof Promise?$.then(h=>(p=h,typeof p=="object"&&"$valid"in p?p.$valid:typeof p=="boolean"?p:false)):(p=$,typeof p=="object"&&"$valid"in p?p.$valid:typeof p=="boolean"?p:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:l,_params:bt(t),_brand:$t}}function Je(e){if(typeof e.validator=="function"){let r=Ke(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(Tt(e.validator)>1){let l=function(...c){return Ke(e,...c)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=false,l._tooltip_pacthed=false,l._async=n,l}else return r}throw new Error("Validator must be a function")}function Ye(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),l=vue.shallowRef(new Map),c=vue.shallowRef(new Map);function m(S){let E=t.value.get(S);if(E)return E;{let D=vue.ref({});return t.value.set(S,D),D}}function d(S){let E=r.value.get(S);if(E)return E;{let D=vue.ref([]);return r.value.set(S,D),D}}function $(S,E,D){c.value.set(`${S}-${E}`,D);}function p(S,E){return c.value.get(`${S}-${E}`)}function h(S,E){S&&E!=null&&c.value.delete(`${S}-${E}`);}function V(S,E){n.value.set(S,E);}function C(S){return n.value.get(S)??false}function M(S,E){e.value.set(S,E);}function w(S,E){let D=e.value.get(S);return D?O(E,D)?{valid:true}:{valid:false}:void 0}function O(S,E){let D=Object.keys(E),u=Object.keys(S);return u.length!==D.length||!u.every(i=>D.includes(i))?false:u.every(i=>{let o=S[i],b=E[i];return !b||!o||typeof o=="function"||typeof b=="function"||typeof o=="number"||typeof o=="boolean"?false:o._params?o._params?.every((A,L)=>{if(typeof b=="number"||typeof b=="boolean")return true;{let G=re(b._params),X=re(o._params);return G?.[L]===X?.[L]}}):true})}function a(S){let E=l.value.get(S);if(E)return E;{let D=vue.ref(false),u=vue.ref(true),T=vue.ref({}),i=vue.ref(false);return l.value.set(S,{$pending:D,$valid:u,$metadata:T,$validating:i}),{$pending:D,$valid:u,$metadata:T,$validating:i}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),c.value.clear();}),{addRuleDeclEntry:M,setDirtyEntry:V,checkRuleDeclEntry:w,getDirtyState:C,trySetRuleStatusRef:a,getFieldsEntry:m,getCollectionsEntry:d,getArrayStatus:p,addArrayStatus:$,deleteArrayStatus:h,arrayStatusStorage:c}}function _e(e){return K(e.value)}function Qe(e,t,r){let n=vue.effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function tr(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let c=Number(r[l]),m=Number(n[l]);if(c>m)return 1;if(m>c)return -1;if(!isNaN(c)&&isNaN(m))return 1;if(isNaN(c)&&!isNaN(m))return -1}return 0}var Ne=tr(vue.version,"3.5.0")!==-1;function rr(){return Math.floor(Math.random()*Date.now()).toString()}function $e(){return typeof window>"u"?rr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Et(e){return vue.getCurrentScope()?(vue.onScopeDispose(e),true):false}function xt(e){let t=false,r,n=vue.effectScope(true);return (...l)=>(t||(r=n.run(()=>e(...l)),t=true),r)}function ke(e,t){return _e(e)||K(t.value)&&!te(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function Dt(e,t,r=false){return !!e.value&&K(e.value)&&"$each"in e.value||r&&Array.isArray(t.value)&&t.value.some(K)||Array.isArray(t.value)&&t.value.some(K)}function Ge(e){return !!e.value&&K(e.value)}function we(e){return K(e)&&"_validator"in e}function Pe(e){return typeof e.value!="function"}function Ct(e){return K(e)&&"$fields"in e}function It(e){return !!e&&"$rules"in e}function Xe({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Ot({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function wt({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:c,$debounce:m,modifiers:d}){let $=vue.effectScope(),p={},h,V=vue.ref(false),{$pending:C,$valid:M,$metadata:w,$validating:O}=c.trySetRuleStatusRef(`${l}.${r}`);function a(){$=vue.effectScope(),p=$.run(()=>{let o=vue.ref(false),b=vue.ref(false),A=vue.ref(true),L=vue.ref(false),G=vue.ref(false),X=vue.computed(()=>({$value:n.value,$error:b.value,$dirty:o.value,$pending:L.value,$correct:G.value,$invalid:A.value,$rule:{$valid:M.value,$invalid:!M.value,$pending:C.value},$params:R.value,...w.value})),oe=vue.computed(()=>Pe(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function I(x){let F="",B=e?e[r]?.[x]:void 0;if(B&&(typeof B=="function"?F=B(X.value):F=B),Pe(t)){let y=`_${x}_patched`;B&&!t.value[y]||(typeof t.value[x]=="function"?F=t.value[x](X.value):F=t.value[x]??"");}return F}let z=vue.computed(()=>{let x=I("message");return te(x)&&(x="This field is not valid"),x}),me=vue.computed(()=>I("tooltip")),ue=vue.computed(()=>Pe(t)&&t.value.type?t.value.type:r),s=vue.computed(()=>Pe(t)?t.value.validator:t.value),R=vue.computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),f=vue.computed(()=>`${l}.${ue.value}`);return {$active:oe,$message:z,$type:ue,$validator:s,$params:R,$path:f,$tooltip:me,$fieldCorrect:G,$fieldError:b,$fieldDirty:o,$fieldPending:L,$fieldInvalid:A}}),h=vue.watch(p?.$params,()=>{(d.$autoDirty.value||d.$rewardEarly.value&&p.$fieldError.value)&&u();});}a();function S(){M.value=true,p.$fieldDirty.value&&(C.value=true);}async function E(){let o=false;try{let b=p.$validator.value;if(typeof b!="function")return console.error(`${l}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let A=b(n.value,...p.$params.value),L=n.value;S();let G;if(A instanceof Promise?G=await A:G=A,n.value!==L)return !0;if(typeof G=="boolean")o=G;else {let{$valid:X,...oe}=G;o=X,w.value=oe;}}catch{o=false;}finally{C.value=false;}return o}let D=Ve(E,m??200);async function u(){try{O.value=!0;let o=!1;if(we(t.value)&&t.value._async)o=await D();else {let b=p.$validator.value,A=b(n.value,...p.$params.value);if(A instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(A!=null)if(typeof A=="boolean")o=A;else {let{$valid:L,...G}=A;o=L,w.value=G;}}return M.value=o,o}catch{return false}finally{O.value=false;}}function T(){M.value=true,w.value={},C.value=false,O.value=false,a();}function i(){h(),$.stop(),$=vue.effectScope();}return vue.reactive({...p,$pending:C,$valid:M,$metadata:w,$haveAsync:V,$validating:O,$parse:u,$unwatch:i,$watch:a,$reset:T})}function be({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:c,options:m,externalErrors:d,schemaErrors:$,schemaMode:p,onUnwatch:h,$isArray:V,initialState:C,shortcuts:M,onValidate:w}){let O=vue.effectScope(),a,S=[],E,D,u,T,i,o=()=>{};function b(){let v=t.value,j=c.checkRuleDeclEntry(n,v);z.value=Object.fromEntries(Object.entries(v).filter(([g])=>g.startsWith("$"))),G(),I.value=Object.fromEntries(Object.entries(t.value).filter(([g])=>!g.startsWith("$")).map(([g,ee])=>{if(ee){let se=vue.toRef(()=>ee);return [g,wt({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:se,ruleKey:g,state:e,path:n,storage:c,$debounce:z.value.$debounce})]}return []}).filter(g=>!!g.length)),a.processShortcuts(),A(),j?.valid!=null&&(a.$dirty.value=c.getDirtyState(n),(a.$dirty.value&&a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o()),c.addRuleDeclEntry(n,v);}function A(){o=a.$debounce.value?Ve(oe,a.$debounce.value??a.$haveAnyAsyncRule?100:0):oe;}function L(){I.value&&Object.entries(I.value).forEach(([v,j])=>{j.$unwatch();}),u(),i?.(),a.$dirty.value&&c.setDirtyEntry(n,a.$dirty.value),E?.(),D?.(),O.stop(),O=vue.effectScope(),S.forEach(v=>v.stop()),S=[],h?.(),T?.();}function G(){I.value&&Object.entries(I.value).forEach(([v,j])=>{j.$watch();}),a=O.run(()=>{let v=vue.ref(false),j=vue.ref(false),g=vue.computed(()=>v.value),ee=vue.computed(()=>z.value.$debounce),se=vue.computed(()=>z.value.$lazy!=null?z.value.$lazy:vue.unref(m.lazy)!=null?vue.unref(m.lazy):false),le=vue.computed(()=>z.value.$rewardEarly!=null?z.value.$rewardEarly:vue.unref(m.rewardEarly)!=null?vue.unref(m.rewardEarly):false),U=vue.computed(()=>z.value.$clearExternalErrorsOnChange!=null?z.value.$clearExternalErrorsOnChange:vue.unref(m.clearExternalErrorsOnChange)!=null?vue.unref(m.clearExternalErrorsOnChange):true),P=vue.computed(()=>z.value.$autoDirty!=null?z.value.$autoDirty:vue.unref(m.autoDirty)!=null?vue.unref(m.autoDirty):!le.value),H=vue.computed(()=>Object.entries(I.value).some(([ie,Q])=>Q.$validating)),Ie=vue.computed({get:()=>e.value,set(ie){E(),e.value=ie,X();}}),Fe=vue.computed(()=>ye.value&&!Oe.value&&v.value),ut=vue.computed(()=>Xe({field:{$rules:I.value,$error:Fe.value,$externalErrors:d?.value,$schemaErrors:$?.value}})),ct=vue.computed(()=>Xe({field:{$rules:I.value,$error:Fe.value,$externalErrors:d?.value,$schemaErrors:$?.value},silent:true})),He=vue.computed(()=>v.value?C.value instanceof Date&&e.value instanceof Date?ze(C.value).getDate()!==ze(e.value).getDate():C.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(C.value)?e.value.length!==C.value.length:C.value!==e.value:false),ft=vue.computed(()=>He.value),Rt=vue.computed(()=>Ot({field:{$rules:I.value}})),dt=vue.computed(()=>P.value?g.value&&!(ye.value||Oe.value):!(ye.value||Oe.value)),Oe=vue.computed(()=>j.value||!le.value?Object.entries(I.value).some(([ie,Q])=>Q.$pending):false),ye=vue.computed(()=>d?.value?.length||$?.value?.length?true:je.value?false:!le.value||le.value&&j.value?Object.entries(I.value).some(([ie,Q])=>!Q.$valid):false),pt=vue.computed(()=>l),je=vue.computed(()=>!!(te(I.value)&&!p)),mt=vue.computed(()=>d?.value?.length||je.value?false:v.value&&!te(e.value)&&!H.value?p?!$?.value?.length:Object.values(I.value).some(Q=>Q.$active)?Object.values(I.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),Bt=vue.computed(()=>Object.entries(I.value).some(([ie,Q])=>Q.$haveAsync));function Ht(){M?.fields&&Object.entries(M.fields).forEach(([ie,Q])=>{let gt=vue.effectScope();yt[ie]=gt.run(()=>{let vt=vue.ref();return vue.watchEffect(()=>{vt.value=Q(vue.reactive({$dirty:v,$externalErrors:d?.value??[],$value:e,$silentValue:Ie,$rules:I,$error:Fe,$pending:Oe,$invalid:ye,$correct:mt,$errors:ut,$ready:dt,$silentErrors:ct,$anyDirty:g,$tooltips:Rt,$name:pt,$inactive:je,$edited:He,$anyEdited:ft}));}),vt}),S.push(gt);});}let yt={};return vue.watch(ye,ie=>{ie||(j.value=false);}),{$error:Fe,$pending:Oe,$invalid:ye,$correct:mt,$debounce:ee,$lazy:se,$errors:ut,$ready:dt,$silentErrors:ct,$rewardEarly:le,$autoDirty:P,$clearExternalErrorsOnChange:U,$anyDirty:g,$edited:He,$anyEdited:ft,$name:pt,$haveAnyAsyncRule:Bt,$shortcuts:yt,$validating:H,$tooltips:Rt,$dirty:v,triggerPunishment:j,processShortcuts:Ht,$silentValue:Ie,$inactive:je}}),X(),u=vue.watch(a.$dirty,v=>{c.setDirtyEntry(n,v),Object.values(I.value).forEach(j=>{j.$fieldDirty=v;});}),i=vue.watch([a.$error,a.$correct,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(v=>{v.$fieldError=a.$error.value,v.$fieldInvalid=a.$invalid.value,v.$fieldPending=a.$pending.value,v.$fieldCorrect=a.$correct.value;});}),D=vue.watch(a.$invalid,v=>{a.$rewardEarly.value&&!v&&(a.triggerPunishment.value=false);}),T=vue.watch(a.$haveAnyAsyncRule,A);}function X(){E=vue.watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&b(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&f();},{deep:V?true:Ne?1:true,flush:"post"});}function oe(){Object.values(I.value).forEach(v=>{v.$parse();});}let I=vue.ref({}),z=vue.ref({});b();function me(v,j){if(f(),a.$dirty.value=false,a.triggerPunishment.value=false,c.setDirtyEntry(n,false),!j)if(v?.toInitialState)L(),e.value=N(C);else if(v?.toState){L();let g;typeof v?.toState=="function"?g=v?.toState():g=v?.toState,C.value=N(g),e.value=N(g);}else C.value=K(e.value)?N(e.value):Array.isArray(e.value)?[...e.value]:e.value;v?.clearExternalErrors&&f(),j||Object.entries(I.value).forEach(([g,ee])=>{ee.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(g=>g.$parse()),j||b();}function ue(v=true,j=false){a.$dirty.value||(a.$dirty.value=true),j&&v?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o():v&&o();}async function s(){try{if(p)return w?(ue(!1),w()):{valid:!1,data:e.value};let v=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {valid:!a.$error.value,data:v};return p?{valid:!$?.value?.length,data:v}:te(I.value)?{valid:!0,data:v}:{valid:(await Promise.allSettled(Object.entries(I.value).map(([ee,se])=>se.$parse()))).every(ee=>ee.status==="fulfilled"?ee.value===!0:!1),data:v}}catch{return {valid:false,data:e.value}}}function R(v=true){return a.$dirty.value?e.value:v?{_null:true}:null}function f(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&o();let{$shortcuts:x,$validating:F,$autoDirty:B,$rewardEarly:y,$clearExternalErrorsOnChange:_,$haveAnyAsyncRule:q,$debounce:Z,$lazy:Y,triggerPunishment:fe,...ce}=a;return vue.reactive({...ce,$externalErrors:d,$value:e,$rules:I,...x,$reset:me,$touch:ue,$validate:s,$unwatch:L,$watch:G,$extractDirtyFields:R,$clearExternalErrors:f})}function tt({$id:e,path:t,index:r,options:n,storage:l,stateValue:c,customMessages:m,rules:d,externalErrors:$,schemaErrors:p,initialState:h,shortcuts:V,fieldName:C,schemaMode:M}){let w=d.$key?d.$key:$e(),O=`${t}.${String(w)}`;typeof c.value=="object"&&c.value!=null&&(c.value.$id?O=`${t}.${c.value.$id}`:Object.defineProperties(c.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let a=vue.toRef($?.value??[],r),S=vue.computed(()=>p?.value?.[r]),E=Te({state:c,rulesDef:vue.toRef(()=>d),customMessages:m,path:O,storage:l,options:n,externalErrors:a,schemaErrors:S,initialState:h,shortcuts:V,fieldName:C,schemaMode:M});if(E){let D=c.value?.$id;E.$id=D??String(w),l.addArrayStatus(e,E.$id,E);}return E}function Ft({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:c,externalErrors:m,schemaErrors:d,schemaMode:$,initialState:p,shortcuts:h,fieldName:V}){let C=vue.effectScope(),M,w=vue.effectScope(),O,a=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let S=vue.ref(),E=vue.ref(e.value),D,u=vue.ref({}),T=l.getCollectionsEntry(n);O=w.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(R=>typeof R!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(R=>we(R)||typeof R=="function"):false)})),i(),A();function i(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(S.value=$e(),Object.defineProperties(e.value,{$id:{value:S.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(S.value=e.value.$id)),E.value=u.value.$value,Array.isArray(e.value)&&!O.isPrimitiveArray.value?T.value=e.value.filter(s=>typeof s=="object").map((s,R)=>{let{scope:f,unwrapped:x}=Qe(t.value.$each,vue.toRef(()=>s),R);f&&a.push(f);let F=vue.toRef(p.value??[],R),B=vue.toRef(m?.value??{},"$each"),y=vue.computed(()=>d?.value?.$each),_=tt({$id:S.value,path:n,customMessages:r,rules:x??{},stateValue:vue.toRef(()=>s),index:R,options:c,storage:l,externalErrors:B,schemaErrors:y,initialState:F,shortcuts:h,fieldName:V,schemaMode:$});return _||null}).filter(s=>!!s):T.value=[],u.value=be({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:c,externalErrors:vue.toRef(m?.value??{},"$self"),schemaErrors:vue.computed(()=>d?.value?.$self),$isArray:true,initialState:p,shortcuts:h,fieldName:V,schemaMode:$});}function o(){if(Array.isArray(e.value)&&!O.isPrimitiveArray.value){let s=N(T.value);T.value=e.value.filter(R=>typeof R=="object").map((R,f)=>{let x=vue.toRef(()=>R);if(R.$id&&T.value.find(F=>F.$id===R.$id)){let F=l.getArrayStatus(S.value,R.$id);return F?(F.$value=x,F):null}else {let{scope:F,unwrapped:B}=Qe(t.value.$each,x,f);F&&a.push(F);let y=vue.toRef(m?.value??{},"$each"),_=vue.computed(()=>d?.value?.$each??[]),q=tt({$id:S.value,path:n,customMessages:r,rules:B??{},stateValue:x,index:f,options:c,storage:l,externalErrors:y,schemaErrors:_,initialState:vue.toRef(p.value??[],f),shortcuts:h,fieldName:V,schemaMode:$});return q||null}}).filter(R=>!!R),s.filter(R=>!e.value?.find(f=>R.$id===f.$id)).forEach((R,f)=>{l.deleteArrayStatus(S.value,f.toString());});}else T.value=[];}function b(){D=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?i():o();},{deep:Ne?1:true,flush:"pre"});}function A(){b(),C=vue.effectScope(),M=C.run(()=>{let s=vue.computed({get:()=>e.value,set(g){D(),e.value=g,b();}}),R=vue.computed(()=>u.value.$dirty&&(!T.value.length||T.value.every(g=>g.$dirty))),f=vue.computed(()=>u.value.$anyDirty||T.value.some(g=>g.$anyDirty)),x=vue.computed(()=>u.value.$invalid||T.value.some(g=>g.$invalid)),F=vue.computed(()=>(te(u.value.$rules)?true:u.value.$correct)&&(!T.value.length||T.value.every(g=>g.$correct||g.$anyDirty&&!g.$invalid))),B=vue.computed(()=>u.value.$error||T.value.some(g=>g.$error)),y=vue.computed(()=>!(x.value||_.value)),_=vue.computed(()=>u.value.$pending||T.value.some(g=>g.$pending)),q=vue.computed(()=>!!T.value.length&&T.value.every(g=>g.$edited)),Z=vue.computed(()=>u.value.$anyEdited||T.value.some(g=>g.$anyEdited)),Y=vue.computed(()=>({$self:u.value.$errors,$each:T.value.map(g=>g.$errors)})),fe=vue.computed(()=>({$self:u.value.$silentErrors,$each:T.value.map(g=>g.$silentErrors)})),ce=vue.computed(()=>V);function v(){h?.collections&&Object.entries(h?.collections).forEach(([g,ee])=>{let se=vue.effectScope();j[g]=se.run(()=>{let le=vue.ref();return vue.watchEffect(()=>{le.value=ee(vue.reactive({$dirty:R,$error:B,$silentValue:s,$pending:_,$invalid:x,$correct:F,$errors:Y,$ready:y,$silentErrors:fe,$anyDirty:f,$name:ce,$each:T,$self:u,$value:e,$edited:q,$anyEdited:Z}));}),le}),a.push(se);});}let j={};return v(),{$dirty:R,$anyDirty:f,$invalid:x,$correct:F,$error:B,$pending:_,$errors:Y,$silentErrors:fe,$ready:y,$name:ce,$shortcuts:j,$silentValue:s,$edited:q,$anyEdited:Z}}),O.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function L(){D&&D(),u.value&&u.value.$unwatch(),T.value&&T.value.forEach(s=>{"$dirty"in s&&s.$unwatch();}),C.stop(),C=vue.effectScope(),w.stop(),w=vue.effectScope(true),a.forEach(s=>s.stop()),a=[];}function G(s=true,R=false){u.value.$touch(s,R),T.value.forEach(f=>{f.$touch(s,R);});}function X(s,R){if(L(),!R)if(s?.toInitialState)e.value=N(p.value);else if(s?.toState){let f;typeof s?.toState=="function"?f=s?.toState():f=s?.toState,p.value=N(f),e.value=N(f);}else p.value=N(e.value);s?.clearExternalErrors&&I(),u.value.$reset(),T.value.forEach(f=>{f.$reset(s,true);}),R||i();}async function oe(){let s=e.value;try{return {valid:(await Promise.allSettled([u.value.$validate(),...T.value.map(x=>x.$validate())])).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:s}}catch{return {valid:false,data:s}}}function I(){u.value.$clearExternalErrors(),T.value.forEach(s=>{s.$clearExternalErrors();});}function z(s=true){let R=T.value.map(f=>{if(Ct(f))return f.$extractDirtyFields(s)});return s&&R.every(f=>te(f))&&(R=[]),R}let{$shortcuts:me,...ue}=M;return vue.reactive({$self:u,...ue,...me,$each:T,$value:e,$validate:oe,$unwatch:L,$watch:A,$touch:G,$reset:X,$extractDirtyFields:z,$clearExternalErrors:I})}function We({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:c,rootSchemaErrors:m,validationGroups:d,initialState:$,fieldName:p,...h}){let V=vue.effectScope(),C,M=[],w=null,O=null,a=null,S=null;async function D(s=true){let R=Object.entries(e.value),f=Object.fromEntries(R.filter(([y,_])=>!!_).map(([y,_])=>{if(_){let q=vue.toRef(t.value??{},y),Z=vue.toRef(()=>_),Y=vue.toRef(l?.value??{},y),fe=vue.computed(()=>c?.value?.[y]),ce=vue.toRef($?.value??{},y);return [y,Te({state:q,rulesDef:Z,path:r?`${r}.${y}`:y,externalErrors:Y,schemaErrors:fe,initialState:ce,fieldName:y,...h})]}return []})),x=Object.fromEntries(Object.entries(vue.unref(l)??{}).filter(([y,_])=>!(y in e.value)&&!!_).map(([y])=>{let _=vue.toRef(t.value??{},y),q=vue.toRef(l?.value??{},y),Z=vue.computed(()=>c?.value?.[y]),Y=vue.toRef($?.value??{},y);return [y,Te({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:y,...h})]})),F=Object.fromEntries(Object.entries(vue.unref(c)??{}).map(([y])=>{let _=vue.toRef(t.value??{},y),q=vue.toRef(l?.value??{},y),Z=vue.computed(()=>c?.value?.[y]),Y=vue.toRef($?.value??{},y);return [y,Te({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:y,...h})]})),B=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(x??{}))&&!(y in(F??{}))).map(([y])=>{let _=vue.toRef(t.value??{},y),q=vue.toRef(l?.value??{},y),Z=vue.computed(()=>c?.value?.[y]),Y=vue.toRef($?.value??{},y);return [y,Te({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:y,...h})]}));u.value={...f,...x,...F,...B},s&&o();}let u=h.storage.getFieldsEntry(r);D();function T(){l&&(a=vue.watch(l,()=>{b(),D();},{deep:true}));}function i(){S=vue.watch(t,()=>{b(),D(),G(true,true);},{flush:"sync"});}function o(){n&&(w?.(),w=vue.watch(n,()=>{b(),D();},{deep:true,flush:"post"}),T()),m&&(O?.(),O=vue.watch(m,()=>{b(),D();},{deep:true,flush:"post"})),i(),C=V.run(()=>{let s=vue.computed({get:()=>t.value,set(U){b(),t.value=U,D();}}),R=vue.computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([U,P])=>P?.$dirty)),f=vue.computed(()=>Object.entries(u.value).some(([U,P])=>P?.$anyDirty)),x=vue.computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).some(([U,P])=>P?.$invalid)),F=vue.computed(()=>{let U=Object.entries(u.value).filter(([P,H])=>It(H)?!H.$inactive:true);return U.length?U.every(([P,H])=>H?.$correct||H.$anyDirty&&!H.$invalid):false}),B=vue.computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).some(([U,P])=>P?.$error)),y=vue.computed(()=>vue.unref(h.options.rewardEarly)!=null?vue.unref(h.options.rewardEarly):false),_=vue.computed(()=>vue.unref(h.options.autoDirty)!=null?vue.unref(h.options.autoDirty):!y.value),q=vue.computed(()=>_.value?f.value&&!(x.value||Y.value):!(x.value||Y.value)),Z=vue.ref(false),Y=vue.computed(()=>Z.value||Object.entries(u.value).some(([U,P])=>P?.$pending)),fe=vue.computed(()=>Object.fromEntries(Object.entries(u.value).map(([U,P])=>[U,P?.$errors]))),ce=vue.computed(()=>Object.fromEntries(Object.entries(u.value).map(([U,P])=>[U,P?.$silentErrors]))),v=vue.computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([U,P])=>P?.$edited)),j=vue.computed(()=>Object.entries(u.value).some(([U,P])=>P?.$anyEdited)),g=vue.computed(()=>p);function ee(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,P])=>{let H=vue.effectScope();le[U]=H.run(()=>{let Ie=vue.ref();return vue.watchEffect(()=>{Ie.value=P(vue.reactive({$dirty:R,$value:t,$silentValue:s,$error:B,$pending:Y,$invalid:x,$correct:F,$ready:q,$anyDirty:f,$name:g,$silentErrors:ce,$errors:fe,$fields:u,$edited:v,$anyEdited:j}));}),Ie}),M.push(H);});}let se=vue.computed({get:()=>d?Object.fromEntries(Object.entries(d?.(u.value)??{}).map(([U,P])=>P.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(H=>[H,St(P,H)])),...Object.fromEntries(["$errors","$silentErrors"].map(H=>[H,ht(P,H)]))}]:[])):{},set(){}}),le={};return ee(),{$dirty:R,$anyDirty:f,$invalid:x,$correct:F,$error:B,$pending:Y,$errors:fe,$silentErrors:ce,$ready:q,$name:g,$shortcuts:le,$groups:se,$silentValue:s,$edited:v,$anyEdited:j,$localPending:Z}});}function b(){w?.(),a?.(),S?.(),O?.(),M=[],C={},u.value&&Object.entries(u.value).forEach(([s,R])=>{R.$unwatch();});}function A(){Object.entries(u.value).forEach(([s,R])=>{R.$clearExternalErrors();});}function L(s,R){if(a?.(),b(),!R)if(s?.toInitialState)t.value=N({...$.value??{}});else if(s?.toState){let f;typeof s?.toState=="function"?f=s?.toState():f=s?.toState,$.value=N(f),t.value=N(f);}else $.value=N(t.value);Object.values(u.value).forEach(f=>{f.$reset(s,true);}),s?.clearExternalErrors&&A(),T(),R||D();}function G(s=true,R=false){Object.values(u.value).forEach(f=>{f.$touch(s,R);});}function X(s){return s.filter(([R,f])=>K(f)?!(f&&typeof f=="object"&&"_null"in f)&&!te(f):Array.isArray(f)?f.length:true)}function oe(s=true){let R=Object.entries(u.value).map(([f,x])=>[f,x.$extractDirtyFields(s)]);return s&&(R=X(R)),Object.fromEntries(R)}async function I(){try{if(h.schemaMode)return h.onValidate?(G(!1),C.$localPending.value=!0,h.onValidate()):{valid:!1,data:t.value};{let s=t.value;return {valid:(await Promise.allSettled(Object.values(u.value).map(x=>x.$validate()))).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:s}}}catch{return {valid:false,data:t.value}}finally{C.$localPending.value=false;}}let{$shortcuts:z,$localPending:me,...ue}=C;return vue.reactive({...ue,...z,$fields:u,$value:t,$reset:L,$touch:G,$validate:I,$unwatch:b,$watch:o,$clearExternalErrors:A,$extractDirtyFields:oe})}function Te({rulesDef:e,...t}){if(Dt(e,t.state,t.schemaMode))return Ft({rulesDef:e,...t});if(ke(t.state,e)){if(_e(t.state))return We({rulesDef:e,...t});{let n=vue.effectScope().run(()=>{let m=vue.toRef(t.state.value?t.state:vue.ref({}));return vue.watch(()=>t.state.value,d=>{m.value=d;},{deep:true}),vue.watch(m,d=>{t.state.value=d;},{deep:true}),{fakeState:m}}),{state:l,...c}=t;return We({rulesDef:e,...c,state:n.fakeState})}}else if(Ge(e))return be({rulesDef:e,...t})}function Ce({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:c,schemaErrors:m,schemaMode:d=false,onValidate:$}){let p=Ye(),h=vue.ref();return ke(n,r)?h.value=We({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:p,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:c,fieldName:"root",path:"",schemaErrors:m,rootSchemaErrors:m,schemaMode:d,onValidate:$}):Ge(r)&&(h.value=be({rulesDef:r,state:n,customMessages:l?.(),storage:p,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:c,fieldName:"root",path:"",schemaMode:d,schemaErrors:m,onValidate:$})),vue.getCurrentScope()&&vue.onScopeDispose(()=>{h.value?.$unwatch();}),vue.reactive({regle:h})}function at(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(c,m,d){let $=vue.isRef(m)?m:vue.computed(typeof m=="function"?m:()=>m),p={...n,...d},h=vue.isRef(c)?c:vue.ref(c),V=vue.ref(K(h.value)?{...N(h.value)}:N(h.value));return {r$:Ce({scopeRules:$,state:h,options:p,initialState:V,customRules:e,shortcuts:r}).regle}}return l}var Le=at();function lt(){function e(t,r){return r}return e}var ot=lt();function Nt({rules:e,modifiers:t,shortcuts:r}){let n=at(e,t,r),l=lt();return {useRegle:n,inferRules:l}}function Me(e,t){let r=t??false,n=vue.computed({get:()=>r?Object.values(e).map(i=>i.$value):Object.fromEntries(Object.entries(e).map(([i,o])=>[i,o.$value])),set:i=>{r||typeof i=="object"&&Object.entries(i).forEach(([o,b])=>e[o].$value=b);}}),l=vue.computed({get:()=>Object.fromEntries(Object.entries(e).map(([i,o])=>[i,o.$silentValue])),set:i=>{typeof i=="object"&&Object.entries(i).forEach(([o,b])=>e[o].$silentValue=b);}}),c=vue.computed(()=>{let i=Object.entries(e);return !!i.length&&i.every(([o,b])=>b?.$dirty)}),m=vue.computed(()=>Object.entries(e).some(([i,o])=>o?.$anyDirty)),d=vue.computed(()=>Object.entries(e).some(([i,o])=>o?.$invalid)),$=vue.computed(()=>{let i=Object.entries(e);return !!i.length&&i.every(([o,b])=>b?.$correct||b.$anyDirty&&!b.$invalid)}),p=vue.computed(()=>Object.entries(e).some(([i,o])=>o?.$error)),h=vue.computed(()=>{let i=Object.entries(e);return !!i.length&&i.every(([o,b])=>b?.$ready)}),V=vue.computed(()=>Object.entries(e).some(([i,o])=>o?.$pending)),C=vue.computed(()=>r?Object.entries(e).map(([i,o])=>o.$errors):Object.fromEntries(Object.entries(e).map(([i,o])=>[i,o.$errors]))),M=vue.computed(()=>r?Object.entries(e).map(([i,o])=>o.$silentErrors):Object.fromEntries(Object.entries(e).map(([i,o])=>[i,o.$silentErrors]))),w=vue.computed(()=>{let i=Object.entries(e);return !!i.length&&i.every(([o,b])=>b?.$edited)}),O=vue.computed(()=>Object.entries(e).some(([i,o])=>o?.$anyEdited)),a=vue.computed(()=>r?Object.values(e):e);function S(i){Object.values(e).forEach(o=>{o.$reset(i);});}function E(){Object.values(e).forEach(i=>{i.$touch();});}function D(i=true){return Object.values(e).map(o=>o.$extractDirtyFields(i))}function u(){Object.values(e).forEach(i=>{i.$clearExternalErrors();});}async function T(){try{let i=n.value;return {valid:(await Promise.allSettled(Object.values(e).map(A=>A.$validate()))).every(A=>A.status==="fulfilled"?A.value.valid===!0:!1),data:i}}catch{return {valid:false,data:n.value}}}return vue.reactive({...!r&&{$silentValue:l},$errors:C,$silentErrors:M,$instances:a,$value:n,$dirty:c,$anyDirty:m,$invalid:d,$correct:$,$error:p,$pending:V,$ready:h,$edited:w,$anyEdited:O,$reset:S,$touch:E,$validate:T,$extractDirtyFields:D,$clearExternalErrors:u})}function Gt(e){function t(r){let n=vue.computed(()=>vue.toValue(r));m();let l=vue.ref(d(e.value)),c=vue.reactive({r$:l});function m(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}vue.watch(n,m),vue.watch(e,$=>{l.value=d($);},{deep:true});function d($){if(n.value){let p=$[n.value]??{};return Me(p,true)}else return Me($["~~global"]??{},true)}return {r$:c.r$}}return {useCollectScope:t}}function Lt(e,t){let r=t??Le;return {useScopedRegle:(l,c,m)=>{let{namespace:d,...$}=m??{},p=vue.computed(()=>vue.toValue(d)),h=vue.ref(`${Object.keys(e.value).length+1}-${$e()}`),V=vue.computed(()=>`instance-${h.value}`),{r$:C}=r(l,c,$);w(),Et(M),vue.watch(p,(O,a)=>{M(a),w();}),vue.getCurrentInstance()&&vue.onMounted(()=>{let O=vue.getCurrentInstance();typeof window<"u"&&O?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(O?.proxy?.$el?.parentElement)&&M();});function M(O){let a=O??p.value;a?e.value[a]&&delete e.value[a][V.value]:e.value["~~global"][V.value]&&delete e.value["~~global"][V.value];}function w(){p.value?(e.value[p.value]||(e.value[p.value]={}),e.value[p.value][V.value]=C):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][V.value]=C);}return {r$:C,dispose:M,register:w}}}}function Be(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):xt(()=>vue.ref({"~~global":{}})))(),{useScopedRegle:n}=Lt(r,e?.customUseRegle),{useCollectScope:l}=Gt(r);return {useScopedRegle:n,useCollectScope:l}}var {useCollectScope:st,useScopedRegle:it}=Be();
2
2
  exports.InternalRuleType=qe;exports.createRule=Je;exports.createScopedUseRegle=Be;exports.defineRegleConfig=Nt;exports.inferRules=ot;exports.mergeRegles=Me;exports.unwrapRuleParameters=re;exports.useCollectScope=st;exports.useRegle=Le;exports.useRootStorage=Ce;exports.useScopedRegle=it;
@@ -1,2 +1,2 @@
1
- import {effectScope,computed,toValue,ref,watch,getCurrentInstance,onMounted,reactive,getCurrentScope,onScopeDispose,isRef,shallowRef,toRef,unref,watchEffect,version}from'vue';function te(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var $t=Symbol("regle-rule");function zt(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function N(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>N(n)))),r=="Map"&&(t=new Map([...e].map(n=>[N(n[0]),N(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,zt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=N(e[n]);}return t}function Q(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function ze(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Ve(e,t,r){let n,l=(...c)=>new Promise(m=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...c])).then(m);},t);});return l.cancel=()=>{clearTimeout(n),n=void 0;},l}var qe=(r=>(r.Inline="__inline",r.Async="__async",r))(qe||{});function St(e,t){return e.some(r=>r[t])}function ht(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function re(e){try{return e.map(t=>toValue(t))}catch{return []}}function bt(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function Tt(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(m=>m.trim()).filter(m=>m.length>0).length:0}function Ke(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(d,...$){return e.validator(d,...re($.length?$:t))},message(d){return typeof e.message=="function"?e.message({...d,$params:re(d?.$params?.length?d.$params:t)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:re(d?.$params?.length?d.$params:t)}):e.active??true},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:re(d?.$params?.length?d.$params:t)}):e.tooltip??[]},exec(d){let $=e.validator(d,...re(t)),p;return $ instanceof Promise?$.then(h=>(p=h,typeof p=="object"&&"$valid"in p?p.$valid:typeof p=="boolean"?p:false)):(p=$,typeof p=="object"&&"$valid"in p?p.$valid:typeof p=="boolean"?p:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:l,_params:bt(t),_brand:$t}}function Je(e){if(typeof e.validator=="function"){let r=Ke(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(Tt(e.validator)>1){let l=function(...c){return Ke(e,...c)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=false,l._tooltip_pacthed=false,l._async=n,l}else return r}throw new Error("Validator must be a function")}function Ye(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),l=shallowRef(new Map),c=shallowRef(new Map);function m(S){let E=t.value.get(S);if(E)return E;{let D=ref({});return t.value.set(S,D),D}}function d(S){let E=r.value.get(S);if(E)return E;{let D=ref([]);return r.value.set(S,D),D}}function $(S,E,D){c.value.set(`${S}-${E}`,D);}function p(S,E){return c.value.get(`${S}-${E}`)}function h(S,E){S&&E!=null&&c.value.delete(`${S}-${E}`);}function V(S,E){n.value.set(S,E);}function C(S){return n.value.get(S)??false}function A(S,E){e.value.set(S,E);}function w(S,E){let D=e.value.get(S);return D?O(E,D)?{valid:true}:{valid:false}:void 0}function O(S,E){let D=Object.keys(E),u=Object.keys(S);return u.length!==D.length||!u.every(s=>D.includes(s))?false:u.every(s=>{let o=S[s],b=E[s];return !b||!o||typeof o=="function"||typeof b=="function"||typeof o=="number"||typeof o=="boolean"?false:o._params?o._params?.every((M,L)=>{if(typeof b=="number"||typeof b=="boolean")return true;{let G=re(b._params),X=re(o._params);return G?.[L]===X?.[L]}}):true})}function a(S){let E=l.value.get(S);if(E)return E;{let D=ref(false),u=ref(true),T=ref({}),s=ref(false);return l.value.set(S,{$pending:D,$valid:u,$metadata:T,$validating:s}),{$pending:D,$valid:u,$metadata:T,$validating:s}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),c.value.clear();}),{addRuleDeclEntry:A,setDirtyEntry:V,checkRuleDeclEntry:w,getDirtyState:C,trySetRuleStatusRef:a,getFieldsEntry:m,getCollectionsEntry:d,getArrayStatus:p,addArrayStatus:$,deleteArrayStatus:h,arrayStatusStorage:c}}function _e(e){return Q(e.value)}function Qe(e,t,r){let n=effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function tr(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let c=Number(r[l]),m=Number(n[l]);if(c>m)return 1;if(m>c)return -1;if(!isNaN(c)&&isNaN(m))return 1;if(isNaN(c)&&!isNaN(m))return -1}return 0}var Ne=tr(version,"3.5.0")!==-1;function rr(){return Math.floor(Math.random()*Date.now()).toString()}function $e(){return typeof window>"u"?rr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Et(e){return getCurrentScope()?(onScopeDispose(e),true):false}function xt(e){let t=false,r,n=effectScope(true);return (...l)=>(t||(r=n.run(()=>e(...l)),t=true),r)}function ke(e,t){return _e(e)||Q(t.value)&&!te(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function Dt(e,t){return !!e.value&&Q(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Ge(e){return !!e.value&&Q(e.value)}function we(e){return Q(e)&&"_validator"in e}function Pe(e){return typeof e.value!="function"}function Ct(e){return Q(e)&&"$fields"in e}function It(e){return !!e&&"$rules"in e}function Xe({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Ot({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function wt({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:c,$debounce:m,modifiers:d}){let $=effectScope(),p={},h,V=ref(false),{$pending:C,$valid:A,$metadata:w,$validating:O}=c.trySetRuleStatusRef(`${l}.${r}`);function a(){$=effectScope(),p=$.run(()=>{let o=ref(false),b=ref(false),M=ref(true),L=ref(false),G=ref(false),X=computed(()=>({$value:n.value,$error:b.value,$dirty:o.value,$pending:L.value,$correct:G.value,$invalid:M.value,$rule:{$valid:A.value,$invalid:!A.value,$pending:C.value},$params:f.value,...w.value})),oe=computed(()=>Pe(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function I(x){let F="",B=e?e[r]?.[x]:void 0;if(B&&(typeof B=="function"?F=B(X.value):F=B),Pe(t)){let y=`_${x}_patched`;B&&!t.value[y]||(typeof t.value[x]=="function"?F=t.value[x](X.value):F=t.value[x]??"");}return F}let z=computed(()=>{let x=I("message");return te(x)&&(x="This field is not valid"),x}),me=computed(()=>I("tooltip")),ue=computed(()=>Pe(t)&&t.value.type?t.value.type:r),i=computed(()=>Pe(t)?t.value.validator:t.value),f=computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),R=computed(()=>`${l}.${ue.value}`);return {$active:oe,$message:z,$type:ue,$validator:i,$params:f,$path:R,$tooltip:me,$fieldCorrect:G,$fieldError:b,$fieldDirty:o,$fieldPending:L,$fieldInvalid:M}}),h=watch(p?.$params,()=>{(d.$autoDirty.value||d.$rewardEarly.value&&p.$fieldError.value)&&u();});}a();function S(){A.value=true,p.$fieldDirty.value&&(C.value=true);}async function E(){let o=false;try{let b=p.$validator.value;if(typeof b!="function")return console.error(`${l}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let M=b(n.value,...p.$params.value),L=n.value;S();let G;if(M instanceof Promise?G=await M:G=M,n.value!==L)return !0;if(typeof G=="boolean")o=G;else {let{$valid:X,...oe}=G;o=X,w.value=oe;}}catch{o=false;}finally{C.value=false;}return o}let D=Ve(E,m??200);async function u(){try{O.value=!0;let o=!1;if(we(t.value)&&t.value._async)o=await D();else {let b=p.$validator.value,M=b(n.value,...p.$params.value);if(M 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(M!=null)if(typeof M=="boolean")o=M;else {let{$valid:L,...G}=M;o=L,w.value=G;}}return A.value=o,o}catch{return false}finally{O.value=false;}}function T(){A.value=true,w.value={},C.value=false,O.value=false,a();}function s(){h(),$.stop(),$=effectScope();}return reactive({...p,$pending:C,$valid:A,$metadata:w,$haveAsync:V,$validating:O,$parse:u,$unwatch:s,$watch:a,$reset:T})}function be({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:c,options:m,externalErrors:d,schemaErrors:$,schemaMode:p,onUnwatch:h,$isArray:V,initialState:C,shortcuts:A,onValidate:w}){let O=effectScope(),a,S=[],E,D,u,T,s,o=()=>{};function b(){let v=t.value,j=c.checkRuleDeclEntry(n,v);z.value=Object.fromEntries(Object.entries(v).filter(([g])=>g.startsWith("$"))),G(),I.value=Object.fromEntries(Object.entries(t.value).filter(([g])=>!g.startsWith("$")).map(([g,ee])=>{if(ee){let se=toRef(()=>ee);return [g,wt({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:se,ruleKey:g,state:e,path:n,storage:c,$debounce:z.value.$debounce})]}return []}).filter(g=>!!g.length)),a.processShortcuts(),M(),j?.valid!=null&&(a.$dirty.value=c.getDirtyState(n),(a.$dirty.value&&a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o()),c.addRuleDeclEntry(n,v);}function M(){o=a.$debounce.value?Ve(oe,a.$debounce.value??a.$haveAnyAsyncRule?100:0):oe;}function L(){I.value&&Object.entries(I.value).forEach(([v,j])=>{j.$unwatch();}),u(),s?.(),a.$dirty.value&&c.setDirtyEntry(n,a.$dirty.value),E?.(),D?.(),O.stop(),O=effectScope(),S.forEach(v=>v.stop()),S=[],h?.(),T?.();}function G(){I.value&&Object.entries(I.value).forEach(([v,j])=>{j.$watch();}),a=O.run(()=>{let v=ref(false),j=ref(false),g=computed(()=>v.value),ee=computed(()=>z.value.$debounce),se=computed(()=>z.value.$lazy!=null?z.value.$lazy:unref(m.lazy)!=null?unref(m.lazy):false),le=computed(()=>z.value.$rewardEarly!=null?z.value.$rewardEarly:unref(m.rewardEarly)!=null?unref(m.rewardEarly):false),U=computed(()=>z.value.$clearExternalErrorsOnChange!=null?z.value.$clearExternalErrorsOnChange:unref(m.clearExternalErrorsOnChange)!=null?unref(m.clearExternalErrorsOnChange):true),P=computed(()=>z.value.$autoDirty!=null?z.value.$autoDirty:unref(m.autoDirty)!=null?unref(m.autoDirty):!le.value),H=computed(()=>Object.entries(I.value).some(([ie,Y])=>Y.$validating)),Ie=computed({get:()=>e.value,set(ie){E(),e.value=ie,X();}}),Fe=computed(()=>ye.value&&!Oe.value&&v.value),ut=computed(()=>Xe({field:{$rules:I.value,$error:Fe.value,$externalErrors:d?.value,$schemaErrors:$?.value}})),ct=computed(()=>Xe({field:{$rules:I.value,$error:Fe.value,$externalErrors:d?.value,$schemaErrors:$?.value},silent:true})),He=computed(()=>v.value?C.value instanceof Date&&e.value instanceof Date?ze(C.value).getDate()!==ze(e.value).getDate():C.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(C.value)?e.value.length!==C.value.length:C.value!==e.value:false),ft=computed(()=>He.value),Rt=computed(()=>Ot({field:{$rules:I.value}})),dt=computed(()=>P.value?g.value&&!(ye.value||Oe.value):!(ye.value||Oe.value)),Oe=computed(()=>j.value||!le.value?Object.entries(I.value).some(([ie,Y])=>Y.$pending):false),ye=computed(()=>d?.value?.length||$?.value?.length?true:je.value?false:!le.value||le.value&&j.value?Object.entries(I.value).some(([ie,Y])=>!Y.$valid):false),pt=computed(()=>l),je=computed(()=>!!(te(I.value)&&!p)),mt=computed(()=>d?.value?.length||je.value?false:v.value&&!te(e.value)&&!H.value?p?!$?.value?.length:Object.values(I.value).some(Y=>Y.$active)?Object.values(I.value).filter(Y=>Y.$active).every(Y=>Y.$valid):false:false),Bt=computed(()=>Object.entries(I.value).some(([ie,Y])=>Y.$haveAsync));function Ht(){A?.fields&&Object.entries(A.fields).forEach(([ie,Y])=>{let gt=effectScope();yt[ie]=gt.run(()=>{let vt=ref();return watchEffect(()=>{vt.value=Y(reactive({$dirty:v,$externalErrors:d?.value??[],$value:e,$silentValue:Ie,$rules:I,$error:Fe,$pending:Oe,$invalid:ye,$correct:mt,$errors:ut,$ready:dt,$silentErrors:ct,$anyDirty:g,$tooltips:Rt,$name:pt,$inactive:je,$edited:He,$anyEdited:ft}));}),vt}),S.push(gt);});}let yt={};return watch(ye,ie=>{ie||(j.value=false);}),{$error:Fe,$pending:Oe,$invalid:ye,$correct:mt,$debounce:ee,$lazy:se,$errors:ut,$ready:dt,$silentErrors:ct,$rewardEarly:le,$autoDirty:P,$clearExternalErrorsOnChange:U,$anyDirty:g,$edited:He,$anyEdited:ft,$name:pt,$haveAnyAsyncRule:Bt,$shortcuts:yt,$validating:H,$tooltips:Rt,$dirty:v,triggerPunishment:j,processShortcuts:Ht,$silentValue:Ie,$inactive:je}}),X(),u=watch(a.$dirty,v=>{c.setDirtyEntry(n,v),Object.values(I.value).forEach(j=>{j.$fieldDirty=v;});}),s=watch([a.$error,a.$correct,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(v=>{v.$fieldError=a.$error.value,v.$fieldInvalid=a.$invalid.value,v.$fieldPending=a.$pending.value,v.$fieldCorrect=a.$correct.value;});}),D=watch(a.$invalid,v=>{a.$rewardEarly.value&&!v&&(a.triggerPunishment.value=false);}),T=watch(a.$haveAnyAsyncRule,M);}function X(){E=watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&b(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&R();},{deep:V?true:Ne?1:true,flush:"post"});}function oe(){Object.values(I.value).forEach(v=>{v.$parse();});}let I=ref({}),z=ref({});b();function me(v,j){if(R(),a.$dirty.value=false,a.triggerPunishment.value=false,c.setDirtyEntry(n,false),!j)if(v?.toInitialState)L(),e.value=N(C);else if(v?.toState){L();let g;typeof v?.toState=="function"?g=v?.toState():g=v?.toState,C.value=N(g),e.value=N(g);}else C.value=Q(e.value)?N(e.value):Array.isArray(e.value)?[...e.value]:e.value;j||Object.entries(I.value).forEach(([g,ee])=>{ee.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(g=>g.$parse()),j||b();}function ue(v=true,j=false){a.$dirty.value||(a.$dirty.value=true),j&&v?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o():v&&o();}async function i(){try{if(p)return w?(ue(!1),w()):{valid:!1,data:e.value};let v=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {valid:!a.$error.value,data:v};return p?{valid:!$?.value?.length,data:v}:te(I.value)?{valid:!0,data:v}:{valid:(await Promise.allSettled(Object.entries(I.value).map(([ee,se])=>se.$parse()))).every(ee=>ee.status==="fulfilled"?ee.value===!0:!1),data:v}}catch{return {valid:false,data:e.value}}}function f(v=true){return a.$dirty.value?e.value:v?{_null:true}:null}function R(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&o();let{$shortcuts:x,$validating:F,$autoDirty:B,$rewardEarly:y,$clearExternalErrorsOnChange:_,$haveAnyAsyncRule:q,$debounce:Z,$lazy:J,triggerPunishment:fe,...ce}=a;return reactive({...ce,$externalErrors:d,$value:e,$rules:I,...x,$reset:me,$touch:ue,$validate:i,$unwatch:L,$watch:G,$extractDirtyFields:f,$clearExternalErrors:R})}function tt({$id:e,path:t,index:r,options:n,storage:l,stateValue:c,customMessages:m,rules:d,externalErrors:$,schemaErrors:p,initialState:h,shortcuts:V,fieldName:C,schemaMode:A}){let w=d.$key?d.$key:$e(),O=`${t}.${String(w)}`;typeof c.value=="object"&&c.value!=null&&(c.value.$id?O=`${t}.${c.value.$id}`:Object.defineProperties(c.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let a=toRef($?.value??[],r),S=computed(()=>p?.value?.[r]),E=Te({state:c,rulesDef:toRef(()=>d),customMessages:m,path:O,storage:l,options:n,externalErrors:a,schemaErrors:S,initialState:h,shortcuts:V,fieldName:C,schemaMode:A});if(E){let D=c.value?.$id;E.$id=D??String(w),l.addArrayStatus(e,E.$id,E);}return E}function Ft({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:c,externalErrors:m,schemaErrors:d,schemaMode:$,initialState:p,shortcuts:h,fieldName:V}){let C=effectScope(),A,w=effectScope(),O,a=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let S=ref(),E=ref(e.value),D,u=ref({}),T=l.getCollectionsEntry(n);O=w.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(f=>typeof f!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(f=>we(f)||typeof f=="function"):false)})),s(),M();function s(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(S.value=$e(),Object.defineProperties(e.value,{$id:{value:S.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(S.value=e.value.$id)),E.value=u.value.$value,Array.isArray(e.value)&&!O.isPrimitiveArray.value?T.value=e.value.filter(i=>typeof i=="object").map((i,f)=>{let{scope:R,unwrapped:x}=Qe(t.value.$each,toRef(()=>i),f);R&&a.push(R);let F=toRef(p.value??[],f),B=toRef(m?.value??{},"$each"),y=computed(()=>d?.value?.$each),_=tt({$id:S.value,path:n,customMessages:r,rules:x??{},stateValue:toRef(()=>i),index:f,options:c,storage:l,externalErrors:B,schemaErrors:y,initialState:F,shortcuts:h,fieldName:V,schemaMode:$});return _||null}).filter(i=>!!i):T.value=[],u.value=be({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:c,externalErrors:toRef(m?.value??{},"$self"),schemaErrors:computed(()=>d?.value?.$self),$isArray:true,initialState:p,shortcuts:h,fieldName:V,schemaMode:$});}function o(){if(Array.isArray(e.value)&&!O.isPrimitiveArray.value){let i=N(T.value);T.value=e.value.filter(f=>typeof f=="object").map((f,R)=>{let x=toRef(()=>f);if(f.$id&&T.value.find(F=>F.$id===f.$id)){let F=l.getArrayStatus(S.value,f.$id);return F?(F.$value=x,F):null}else {let{scope:F,unwrapped:B}=Qe(t.value.$each,x,R);F&&a.push(F);let y=toRef(m?.value??{},"$each"),_=computed(()=>d?.value?.$each??[]),q=tt({$id:S.value,path:n,customMessages:r,rules:B??{},stateValue:x,index:R,options:c,storage:l,externalErrors:y,schemaErrors:_,initialState:toRef(p.value??[],R),shortcuts:h,fieldName:V,schemaMode:$});return q||null}}).filter(f=>!!f),i.filter(f=>!e.value?.find(R=>f.$id===R.$id)).forEach((f,R)=>{l.deleteArrayStatus(S.value,R.toString());});}else T.value=[];}function b(){D=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?s():o();},{deep:Ne?1:true,flush:"pre"});}function M(){b(),C=effectScope(),A=C.run(()=>{let i=computed({get:()=>e.value,set(g){D(),e.value=g,b();}}),f=computed(()=>u.value.$dirty&&(!T.value.length||T.value.every(g=>g.$dirty))),R=computed(()=>u.value.$anyDirty||T.value.some(g=>g.$anyDirty)),x=computed(()=>u.value.$invalid||T.value.some(g=>g.$invalid)),F=computed(()=>(te(u.value.$rules)?true:u.value.$correct)&&(!T.value.length||T.value.every(g=>g.$correct||g.$anyDirty&&!g.$invalid))),B=computed(()=>u.value.$error||T.value.some(g=>g.$error)),y=computed(()=>!(x.value||_.value)),_=computed(()=>u.value.$pending||T.value.some(g=>g.$pending)),q=computed(()=>!!T.value.length&&T.value.every(g=>g.$edited)),Z=computed(()=>u.value.$anyEdited||T.value.some(g=>g.$anyEdited)),J=computed(()=>({$self:u.value.$errors,$each:T.value.map(g=>g.$errors)})),fe=computed(()=>({$self:u.value.$silentErrors,$each:T.value.map(g=>g.$silentErrors)})),ce=computed(()=>V);function v(){h?.collections&&Object.entries(h?.collections).forEach(([g,ee])=>{let se=effectScope();j[g]=se.run(()=>{let le=ref();return watchEffect(()=>{le.value=ee(reactive({$dirty:f,$error:B,$silentValue:i,$pending:_,$invalid:x,$correct:F,$errors:J,$ready:y,$silentErrors:fe,$anyDirty:R,$name:ce,$each:T,$self:u,$value:e,$edited:q,$anyEdited:Z}));}),le}),a.push(se);});}let j={};return v(),{$dirty:f,$anyDirty:R,$invalid:x,$correct:F,$error:B,$pending:_,$errors:J,$silentErrors:fe,$ready:y,$name:ce,$shortcuts:j,$silentValue:i,$edited:q,$anyEdited:Z}}),O.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function L(){D&&D(),u.value&&u.value.$unwatch(),T.value&&T.value.forEach(i=>{"$dirty"in i&&i.$unwatch();}),C.stop(),C=effectScope(),w.stop(),w=effectScope(true),a.forEach(i=>i.stop()),a=[];}function G(i=true,f=false){u.value.$touch(i,f),T.value.forEach(R=>{R.$touch(i,f);});}function X(i,f){if(L(),!f)if(i?.toInitialState)e.value=N(p.value);else if(i?.toState){let R;typeof i?.toState=="function"?R=i?.toState():R=i?.toState,p.value=N(R),e.value=N(R);}else p.value=N(e.value);u.value.$reset(),T.value.forEach(R=>{R.$reset(i,true);}),f||s();}async function oe(){let i=e.value;try{return {valid:(await Promise.allSettled([u.value.$validate(),...T.value.map(x=>x.$validate())])).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:i}}catch{return {valid:false,data:i}}}function I(){u.value.$clearExternalErrors(),T.value.forEach(i=>{i.$clearExternalErrors();});}function z(i=true){let f=T.value.map(R=>{if(Ct(R))return R.$extractDirtyFields(i)});return i&&f.every(R=>te(R))&&(f=[]),f}let{$shortcuts:me,...ue}=A;return reactive({$self:u,...ue,...me,$each:T,$value:e,$validate:oe,$unwatch:L,$watch:M,$touch:G,$reset:X,$extractDirtyFields:z,$clearExternalErrors:I})}function We({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:c,rootSchemaErrors:m,validationGroups:d,initialState:$,fieldName:p,...h}){let V=effectScope(),C,A=[],w=null,O=null,a=null,S=null;async function D(i=true){let f=Object.entries(e.value),R=Object.fromEntries(f.filter(([y,_])=>!!_).map(([y,_])=>{if(_){let q=toRef(t.value??{},y),Z=toRef(()=>_),J=toRef(l?.value??{},y),fe=computed(()=>c?.value?.[y]),ce=toRef($?.value??{},y);return [y,Te({state:q,rulesDef:Z,path:r?`${r}.${y}`:y,externalErrors:J,schemaErrors:fe,initialState:ce,fieldName:y,...h})]}return []})),x=Object.fromEntries(Object.entries(unref(l)??{}).filter(([y,_])=>!(y in e.value)&&!!_).map(([y])=>{let _=toRef(t.value??{},y),q=toRef(l?.value??{},y),Z=computed(()=>c?.value?.[y]),J=toRef($?.value??{},y);return [y,Te({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:J,fieldName:y,...h})]})),F=Object.fromEntries(Object.entries(unref(c)??{}).map(([y])=>{let _=toRef(t.value??{},y),q=toRef(l?.value??{},y),Z=computed(()=>c?.value?.[y]),J=toRef($?.value??{},y);return [y,Te({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:J,fieldName:y,...h})]})),B=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(x??{}))&&!(y in(F??{}))).map(([y])=>{let _=toRef(t.value??{},y),q=toRef(l?.value??{},y),Z=computed(()=>c?.value?.[y]),J=toRef($?.value??{},y);return [y,Te({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:J,fieldName:y,...h})]}));u.value={...R,...x,...F,...B},i&&o();}let u=h.storage.getFieldsEntry(r);D();function T(){l&&(a=watch(l,()=>{b(),D();},{deep:true}));}function s(){S=watch(t,()=>{b(),D(),G(true,true);},{flush:"sync"});}function o(){n&&(w?.(),w=watch(n,()=>{b(),D();},{deep:true,flush:"post"}),T()),m&&(O?.(),O=watch(m,()=>{b(),D();},{deep:true,flush:"post"})),s(),C=V.run(()=>{let i=computed({get:()=>t.value,set(U){b(),t.value=U,D();}}),f=computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([U,P])=>P?.$dirty)),R=computed(()=>Object.entries(u.value).some(([U,P])=>P?.$anyDirty)),x=computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).some(([U,P])=>P?.$invalid)),F=computed(()=>{let U=Object.entries(u.value).filter(([P,H])=>It(H)?!H.$inactive:true);return U.length?U.every(([P,H])=>H?.$correct||H.$anyDirty&&!H.$invalid):false}),B=computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).some(([U,P])=>P?.$error)),y=computed(()=>unref(h.options.rewardEarly)!=null?unref(h.options.rewardEarly):false),_=computed(()=>unref(h.options.autoDirty)!=null?unref(h.options.autoDirty):!y.value),q=computed(()=>_.value?R.value&&!(x.value||J.value):!(x.value||J.value)),Z=ref(false),J=computed(()=>Z.value||Object.entries(u.value).some(([U,P])=>P?.$pending)),fe=computed(()=>Object.fromEntries(Object.entries(u.value).map(([U,P])=>[U,P?.$errors]))),ce=computed(()=>Object.fromEntries(Object.entries(u.value).map(([U,P])=>[U,P?.$silentErrors]))),v=computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([U,P])=>P?.$edited)),j=computed(()=>Object.entries(u.value).some(([U,P])=>P?.$anyEdited)),g=computed(()=>p);function ee(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,P])=>{let H=effectScope();le[U]=H.run(()=>{let Ie=ref();return watchEffect(()=>{Ie.value=P(reactive({$dirty:f,$value:t,$silentValue:i,$error:B,$pending:J,$invalid:x,$correct:F,$ready:q,$anyDirty:R,$name:g,$silentErrors:ce,$errors:fe,$fields:u,$edited:v,$anyEdited:j}));}),Ie}),A.push(H);});}let se=computed({get:()=>d?Object.fromEntries(Object.entries(d?.(u.value)??{}).map(([U,P])=>P.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(H=>[H,St(P,H)])),...Object.fromEntries(["$errors","$silentErrors"].map(H=>[H,ht(P,H)]))}]:[])):{},set(){}}),le={};return ee(),{$dirty:f,$anyDirty:R,$invalid:x,$correct:F,$error:B,$pending:J,$errors:fe,$silentErrors:ce,$ready:q,$name:g,$shortcuts:le,$groups:se,$silentValue:i,$edited:v,$anyEdited:j,$localPending:Z}});}function b(){w?.(),a?.(),S?.(),O?.(),A=[],C={},u.value&&Object.entries(u.value).forEach(([i,f])=>{f.$unwatch();});}function M(){Object.entries(u.value).forEach(([i,f])=>{f.$clearExternalErrors();});}function L(i,f){if(a?.(),b(),!f)if(i?.toInitialState)t.value=N({...$.value??{}});else if(i?.toState){let R;typeof i?.toState=="function"?R=i?.toState():R=i?.toState,$.value=N(R),t.value=N(R);}else $.value=N(t.value);Object.values(u.value).forEach(R=>{R.$reset(i,true);}),T(),f||D();}function G(i=true,f=false){Object.values(u.value).forEach(R=>{R.$touch(i,f);});}function X(i){return i.filter(([f,R])=>Q(R)?!(R&&typeof R=="object"&&"_null"in R)&&!te(R):Array.isArray(R)?R.length:true)}function oe(i=true){let f=Object.entries(u.value).map(([R,x])=>[R,x.$extractDirtyFields(i)]);return i&&(f=X(f)),Object.fromEntries(f)}async function I(){try{if(h.schemaMode)return h.onValidate?(G(!1),C.$localPending.value=!0,h.onValidate()):{valid:!1,data:t.value};{let i=t.value;return {valid:(await Promise.allSettled(Object.values(u.value).map(x=>x.$validate()))).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:i}}}catch{return {valid:false,data:t.value}}finally{C.$localPending.value=false;}}let{$shortcuts:z,$localPending:me,...ue}=C;return reactive({...ue,...z,$fields:u,$value:t,$reset:L,$touch:G,$validate:I,$unwatch:b,$watch:o,$clearExternalErrors:M,$extractDirtyFields:oe})}function Te({rulesDef:e,...t}){if(Dt(e,t.state))return Ft({rulesDef:e,...t});if(ke(t.state,e)){if(_e(t.state))return We({rulesDef:e,...t});{let n=effectScope().run(()=>{let m=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,d=>{m.value=d;},{deep:true}),watch(m,d=>{t.state.value=d;},{deep:true}),{fakeState:m}}),{state:l,...c}=t;return We({rulesDef:e,...c,state:n.fakeState})}}else if(Ge(e))return be({rulesDef:e,...t})}function Ce({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:c,schemaErrors:m,schemaMode:d=false,onValidate:$}){let p=Ye(),h=ref();return ke(n,r)?h.value=We({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:p,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:c,fieldName:"root",path:"",schemaErrors:m,rootSchemaErrors:m,schemaMode:d,onValidate:$}):Ge(r)&&(h.value=be({rulesDef:r,state:n,customMessages:l?.(),storage:p,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:c,fieldName:"root",path:"",schemaMode:d,schemaErrors:m,onValidate:$})),getCurrentScope()&&onScopeDispose(()=>{h.value?.$unwatch();}),reactive({regle:h})}function at(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(c,m,d){let $=isRef(m)?m:computed(typeof m=="function"?m:()=>m),p={...n,...d},h=isRef(c)?c:ref(c),V=ref(Q(h.value)?{...N(h.value)}:N(h.value));return {r$:Ce({scopeRules:$,state:h,options:p,initialState:V,customRules:e,shortcuts:r}).regle}}return l}var Le=at();function lt(){function e(t,r){return r}return e}var ot=lt();function Nt({rules:e,modifiers:t,shortcuts:r}){let n=at(e,t,r),l=lt();return {useRegle:n,inferRules:l}}function Me(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(s=>s.$value):Object.fromEntries(Object.entries(e).map(([s,o])=>[s,o.$value])),set:s=>{r||typeof s=="object"&&Object.entries(s).forEach(([o,b])=>e[o].$value=b);}}),l=computed({get:()=>Object.fromEntries(Object.entries(e).map(([s,o])=>[s,o.$silentValue])),set:s=>{typeof s=="object"&&Object.entries(s).forEach(([o,b])=>e[o].$silentValue=b);}}),c=computed(()=>{let s=Object.entries(e);return !!s.length&&s.every(([o,b])=>b?.$dirty)}),m=computed(()=>Object.entries(e).some(([s,o])=>o?.$anyDirty)),d=computed(()=>Object.entries(e).some(([s,o])=>o?.$invalid)),$=computed(()=>{let s=Object.entries(e);return !!s.length&&s.every(([o,b])=>b?.$correct||b.$anyDirty&&!b.$invalid)}),p=computed(()=>Object.entries(e).some(([s,o])=>o?.$error)),h=computed(()=>{let s=Object.entries(e);return !!s.length&&s.every(([o,b])=>b?.$ready)}),V=computed(()=>Object.entries(e).some(([s,o])=>o?.$pending)),C=computed(()=>r?Object.entries(e).map(([s,o])=>o.$errors):Object.fromEntries(Object.entries(e).map(([s,o])=>[s,o.$errors]))),A=computed(()=>r?Object.entries(e).map(([s,o])=>o.$silentErrors):Object.fromEntries(Object.entries(e).map(([s,o])=>[s,o.$silentErrors]))),w=computed(()=>{let s=Object.entries(e);return !!s.length&&s.every(([o,b])=>b?.$edited)}),O=computed(()=>Object.entries(e).some(([s,o])=>o?.$anyEdited)),a=computed(()=>r?Object.values(e):e);function S(s){Object.values(e).forEach(o=>{o.$reset(s);});}function E(){Object.values(e).forEach(s=>{s.$touch();});}function D(s=true){return Object.values(e).map(o=>o.$extractDirtyFields(s))}function u(){Object.values(e).forEach(s=>{s.$clearExternalErrors();});}async function T(){try{let s=n.value;return {valid:(await Promise.allSettled(Object.values(e).map(M=>M.$validate()))).every(M=>M.status==="fulfilled"?M.value.valid===!0:!1),data:s}}catch{return {valid:false,data:n.value}}}return reactive({...!r&&{$silentValue:l},$errors:C,$silentErrors:A,$instances:a,$value:n,$dirty:c,$anyDirty:m,$invalid:d,$correct:$,$error:p,$pending:V,$ready:h,$edited:w,$anyEdited:O,$reset:S,$touch:E,$validate:T,$extractDirtyFields:D,$clearExternalErrors:u})}function Gt(e){function t(r){let n=computed(()=>toValue(r));m();let l=ref(d(e.value)),c=reactive({r$:l});function m(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}watch(n,m),watch(e,$=>{l.value=d($);},{deep:true});function d($){if(n.value){let p=$[n.value]??{};return Me(p,true)}else return Me($["~~global"]??{},true)}return {r$:c.r$}}return {useCollectScope:t}}function Lt(e,t){let r=t??Le;return {useScopedRegle:(l,c,m)=>{let{namespace:d,...$}=m??{},p=computed(()=>toValue(d)),h=ref(`${Object.keys(e.value).length+1}-${$e()}`),V=computed(()=>`instance-${h.value}`),{r$:C}=r(l,c,$);w(),Et(A),watch(p,(O,a)=>{A(a),w();}),getCurrentInstance()&&onMounted(()=>{let O=getCurrentInstance();typeof window<"u"&&O?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(O?.proxy?.$el?.parentElement)&&A();});function A(O){let a=O??p.value;a?e.value[a]&&delete e.value[a][V.value]:e.value["~~global"][V.value]&&delete e.value["~~global"][V.value];}function w(){p.value?(e.value[p.value]||(e.value[p.value]={}),e.value[p.value][V.value]=C):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][V.value]=C);}return {r$:C,dispose:A,register:w}}}}function Be(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):xt(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=Lt(r,e?.customUseRegle),{useCollectScope:l}=Gt(r);return {useScopedRegle:n,useCollectScope:l}}var {useCollectScope:st,useScopedRegle:it}=Be();
1
+ import {effectScope,computed,toValue,ref,watch,getCurrentInstance,onMounted,reactive,getCurrentScope,onScopeDispose,isRef,shallowRef,toRef,unref,watchEffect,version}from'vue';function te(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var $t=Symbol("regle-rule");function zt(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function N(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>N(n)))),r=="Map"&&(t=new Map([...e].map(n=>[N(n[0]),N(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,zt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=N(e[n]);}return t}function K(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function ze(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Ve(e,t,r){let n,l=(...c)=>new Promise(m=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...c])).then(m);},t);});return l.cancel=()=>{clearTimeout(n),n=void 0;},l}var qe=(r=>(r.Inline="__inline",r.Async="__async",r))(qe||{});function St(e,t){return e.some(r=>r[t])}function ht(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function re(e){try{return e.map(t=>toValue(t))}catch{return []}}function bt(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function Tt(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(m=>m.trim()).filter(m=>m.length>0).length:0}function Ke(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(d,...$){return e.validator(d,...re($.length?$:t))},message(d){return typeof e.message=="function"?e.message({...d,$params:re(d?.$params?.length?d.$params:t)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:re(d?.$params?.length?d.$params:t)}):e.active??true},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:re(d?.$params?.length?d.$params:t)}):e.tooltip??[]},exec(d){let $=e.validator(d,...re(t)),p;return $ instanceof Promise?$.then(h=>(p=h,typeof p=="object"&&"$valid"in p?p.$valid:typeof p=="boolean"?p:false)):(p=$,typeof p=="object"&&"$valid"in p?p.$valid:typeof p=="boolean"?p:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:l,_params:bt(t),_brand:$t}}function Je(e){if(typeof e.validator=="function"){let r=Ke(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(Tt(e.validator)>1){let l=function(...c){return Ke(e,...c)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=false,l._tooltip_pacthed=false,l._async=n,l}else return r}throw new Error("Validator must be a function")}function Ye(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),l=shallowRef(new Map),c=shallowRef(new Map);function m(S){let E=t.value.get(S);if(E)return E;{let D=ref({});return t.value.set(S,D),D}}function d(S){let E=r.value.get(S);if(E)return E;{let D=ref([]);return r.value.set(S,D),D}}function $(S,E,D){c.value.set(`${S}-${E}`,D);}function p(S,E){return c.value.get(`${S}-${E}`)}function h(S,E){S&&E!=null&&c.value.delete(`${S}-${E}`);}function V(S,E){n.value.set(S,E);}function C(S){return n.value.get(S)??false}function M(S,E){e.value.set(S,E);}function w(S,E){let D=e.value.get(S);return D?O(E,D)?{valid:true}:{valid:false}:void 0}function O(S,E){let D=Object.keys(E),u=Object.keys(S);return u.length!==D.length||!u.every(i=>D.includes(i))?false:u.every(i=>{let o=S[i],b=E[i];return !b||!o||typeof o=="function"||typeof b=="function"||typeof o=="number"||typeof o=="boolean"?false:o._params?o._params?.every((A,L)=>{if(typeof b=="number"||typeof b=="boolean")return true;{let G=re(b._params),X=re(o._params);return G?.[L]===X?.[L]}}):true})}function a(S){let E=l.value.get(S);if(E)return E;{let D=ref(false),u=ref(true),T=ref({}),i=ref(false);return l.value.set(S,{$pending:D,$valid:u,$metadata:T,$validating:i}),{$pending:D,$valid:u,$metadata:T,$validating:i}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),c.value.clear();}),{addRuleDeclEntry:M,setDirtyEntry:V,checkRuleDeclEntry:w,getDirtyState:C,trySetRuleStatusRef:a,getFieldsEntry:m,getCollectionsEntry:d,getArrayStatus:p,addArrayStatus:$,deleteArrayStatus:h,arrayStatusStorage:c}}function _e(e){return K(e.value)}function Qe(e,t,r){let n=effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function tr(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let c=Number(r[l]),m=Number(n[l]);if(c>m)return 1;if(m>c)return -1;if(!isNaN(c)&&isNaN(m))return 1;if(isNaN(c)&&!isNaN(m))return -1}return 0}var Ne=tr(version,"3.5.0")!==-1;function rr(){return Math.floor(Math.random()*Date.now()).toString()}function $e(){return typeof window>"u"?rr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Et(e){return getCurrentScope()?(onScopeDispose(e),true):false}function xt(e){let t=false,r,n=effectScope(true);return (...l)=>(t||(r=n.run(()=>e(...l)),t=true),r)}function ke(e,t){return _e(e)||K(t.value)&&!te(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function Dt(e,t,r=false){return !!e.value&&K(e.value)&&"$each"in e.value||r&&Array.isArray(t.value)&&t.value.some(K)||Array.isArray(t.value)&&t.value.some(K)}function Ge(e){return !!e.value&&K(e.value)}function we(e){return K(e)&&"_validator"in e}function Pe(e){return typeof e.value!="function"}function Ct(e){return K(e)&&"$fields"in e}function It(e){return !!e&&"$rules"in e}function Xe({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Ot({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function wt({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:c,$debounce:m,modifiers:d}){let $=effectScope(),p={},h,V=ref(false),{$pending:C,$valid:M,$metadata:w,$validating:O}=c.trySetRuleStatusRef(`${l}.${r}`);function a(){$=effectScope(),p=$.run(()=>{let o=ref(false),b=ref(false),A=ref(true),L=ref(false),G=ref(false),X=computed(()=>({$value:n.value,$error:b.value,$dirty:o.value,$pending:L.value,$correct:G.value,$invalid:A.value,$rule:{$valid:M.value,$invalid:!M.value,$pending:C.value},$params:R.value,...w.value})),oe=computed(()=>Pe(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function I(x){let F="",B=e?e[r]?.[x]:void 0;if(B&&(typeof B=="function"?F=B(X.value):F=B),Pe(t)){let y=`_${x}_patched`;B&&!t.value[y]||(typeof t.value[x]=="function"?F=t.value[x](X.value):F=t.value[x]??"");}return F}let z=computed(()=>{let x=I("message");return te(x)&&(x="This field is not valid"),x}),me=computed(()=>I("tooltip")),ue=computed(()=>Pe(t)&&t.value.type?t.value.type:r),s=computed(()=>Pe(t)?t.value.validator:t.value),R=computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),f=computed(()=>`${l}.${ue.value}`);return {$active:oe,$message:z,$type:ue,$validator:s,$params:R,$path:f,$tooltip:me,$fieldCorrect:G,$fieldError:b,$fieldDirty:o,$fieldPending:L,$fieldInvalid:A}}),h=watch(p?.$params,()=>{(d.$autoDirty.value||d.$rewardEarly.value&&p.$fieldError.value)&&u();});}a();function S(){M.value=true,p.$fieldDirty.value&&(C.value=true);}async function E(){let o=false;try{let b=p.$validator.value;if(typeof b!="function")return console.error(`${l}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let A=b(n.value,...p.$params.value),L=n.value;S();let G;if(A instanceof Promise?G=await A:G=A,n.value!==L)return !0;if(typeof G=="boolean")o=G;else {let{$valid:X,...oe}=G;o=X,w.value=oe;}}catch{o=false;}finally{C.value=false;}return o}let D=Ve(E,m??200);async function u(){try{O.value=!0;let o=!1;if(we(t.value)&&t.value._async)o=await D();else {let b=p.$validator.value,A=b(n.value,...p.$params.value);if(A instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(A!=null)if(typeof A=="boolean")o=A;else {let{$valid:L,...G}=A;o=L,w.value=G;}}return M.value=o,o}catch{return false}finally{O.value=false;}}function T(){M.value=true,w.value={},C.value=false,O.value=false,a();}function i(){h(),$.stop(),$=effectScope();}return reactive({...p,$pending:C,$valid:M,$metadata:w,$haveAsync:V,$validating:O,$parse:u,$unwatch:i,$watch:a,$reset:T})}function be({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:c,options:m,externalErrors:d,schemaErrors:$,schemaMode:p,onUnwatch:h,$isArray:V,initialState:C,shortcuts:M,onValidate:w}){let O=effectScope(),a,S=[],E,D,u,T,i,o=()=>{};function b(){let v=t.value,j=c.checkRuleDeclEntry(n,v);z.value=Object.fromEntries(Object.entries(v).filter(([g])=>g.startsWith("$"))),G(),I.value=Object.fromEntries(Object.entries(t.value).filter(([g])=>!g.startsWith("$")).map(([g,ee])=>{if(ee){let se=toRef(()=>ee);return [g,wt({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:se,ruleKey:g,state:e,path:n,storage:c,$debounce:z.value.$debounce})]}return []}).filter(g=>!!g.length)),a.processShortcuts(),A(),j?.valid!=null&&(a.$dirty.value=c.getDirtyState(n),(a.$dirty.value&&a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o()),c.addRuleDeclEntry(n,v);}function A(){o=a.$debounce.value?Ve(oe,a.$debounce.value??a.$haveAnyAsyncRule?100:0):oe;}function L(){I.value&&Object.entries(I.value).forEach(([v,j])=>{j.$unwatch();}),u(),i?.(),a.$dirty.value&&c.setDirtyEntry(n,a.$dirty.value),E?.(),D?.(),O.stop(),O=effectScope(),S.forEach(v=>v.stop()),S=[],h?.(),T?.();}function G(){I.value&&Object.entries(I.value).forEach(([v,j])=>{j.$watch();}),a=O.run(()=>{let v=ref(false),j=ref(false),g=computed(()=>v.value),ee=computed(()=>z.value.$debounce),se=computed(()=>z.value.$lazy!=null?z.value.$lazy:unref(m.lazy)!=null?unref(m.lazy):false),le=computed(()=>z.value.$rewardEarly!=null?z.value.$rewardEarly:unref(m.rewardEarly)!=null?unref(m.rewardEarly):false),U=computed(()=>z.value.$clearExternalErrorsOnChange!=null?z.value.$clearExternalErrorsOnChange:unref(m.clearExternalErrorsOnChange)!=null?unref(m.clearExternalErrorsOnChange):true),P=computed(()=>z.value.$autoDirty!=null?z.value.$autoDirty:unref(m.autoDirty)!=null?unref(m.autoDirty):!le.value),H=computed(()=>Object.entries(I.value).some(([ie,Q])=>Q.$validating)),Ie=computed({get:()=>e.value,set(ie){E(),e.value=ie,X();}}),Fe=computed(()=>ye.value&&!Oe.value&&v.value),ut=computed(()=>Xe({field:{$rules:I.value,$error:Fe.value,$externalErrors:d?.value,$schemaErrors:$?.value}})),ct=computed(()=>Xe({field:{$rules:I.value,$error:Fe.value,$externalErrors:d?.value,$schemaErrors:$?.value},silent:true})),He=computed(()=>v.value?C.value instanceof Date&&e.value instanceof Date?ze(C.value).getDate()!==ze(e.value).getDate():C.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(C.value)?e.value.length!==C.value.length:C.value!==e.value:false),ft=computed(()=>He.value),Rt=computed(()=>Ot({field:{$rules:I.value}})),dt=computed(()=>P.value?g.value&&!(ye.value||Oe.value):!(ye.value||Oe.value)),Oe=computed(()=>j.value||!le.value?Object.entries(I.value).some(([ie,Q])=>Q.$pending):false),ye=computed(()=>d?.value?.length||$?.value?.length?true:je.value?false:!le.value||le.value&&j.value?Object.entries(I.value).some(([ie,Q])=>!Q.$valid):false),pt=computed(()=>l),je=computed(()=>!!(te(I.value)&&!p)),mt=computed(()=>d?.value?.length||je.value?false:v.value&&!te(e.value)&&!H.value?p?!$?.value?.length:Object.values(I.value).some(Q=>Q.$active)?Object.values(I.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),Bt=computed(()=>Object.entries(I.value).some(([ie,Q])=>Q.$haveAsync));function Ht(){M?.fields&&Object.entries(M.fields).forEach(([ie,Q])=>{let gt=effectScope();yt[ie]=gt.run(()=>{let vt=ref();return watchEffect(()=>{vt.value=Q(reactive({$dirty:v,$externalErrors:d?.value??[],$value:e,$silentValue:Ie,$rules:I,$error:Fe,$pending:Oe,$invalid:ye,$correct:mt,$errors:ut,$ready:dt,$silentErrors:ct,$anyDirty:g,$tooltips:Rt,$name:pt,$inactive:je,$edited:He,$anyEdited:ft}));}),vt}),S.push(gt);});}let yt={};return watch(ye,ie=>{ie||(j.value=false);}),{$error:Fe,$pending:Oe,$invalid:ye,$correct:mt,$debounce:ee,$lazy:se,$errors:ut,$ready:dt,$silentErrors:ct,$rewardEarly:le,$autoDirty:P,$clearExternalErrorsOnChange:U,$anyDirty:g,$edited:He,$anyEdited:ft,$name:pt,$haveAnyAsyncRule:Bt,$shortcuts:yt,$validating:H,$tooltips:Rt,$dirty:v,triggerPunishment:j,processShortcuts:Ht,$silentValue:Ie,$inactive:je}}),X(),u=watch(a.$dirty,v=>{c.setDirtyEntry(n,v),Object.values(I.value).forEach(j=>{j.$fieldDirty=v;});}),i=watch([a.$error,a.$correct,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(v=>{v.$fieldError=a.$error.value,v.$fieldInvalid=a.$invalid.value,v.$fieldPending=a.$pending.value,v.$fieldCorrect=a.$correct.value;});}),D=watch(a.$invalid,v=>{a.$rewardEarly.value&&!v&&(a.triggerPunishment.value=false);}),T=watch(a.$haveAnyAsyncRule,A);}function X(){E=watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&b(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&f();},{deep:V?true:Ne?1:true,flush:"post"});}function oe(){Object.values(I.value).forEach(v=>{v.$parse();});}let I=ref({}),z=ref({});b();function me(v,j){if(f(),a.$dirty.value=false,a.triggerPunishment.value=false,c.setDirtyEntry(n,false),!j)if(v?.toInitialState)L(),e.value=N(C);else if(v?.toState){L();let g;typeof v?.toState=="function"?g=v?.toState():g=v?.toState,C.value=N(g),e.value=N(g);}else C.value=K(e.value)?N(e.value):Array.isArray(e.value)?[...e.value]:e.value;v?.clearExternalErrors&&f(),j||Object.entries(I.value).forEach(([g,ee])=>{ee.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(g=>g.$parse()),j||b();}function ue(v=true,j=false){a.$dirty.value||(a.$dirty.value=true),j&&v?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o():v&&o();}async function s(){try{if(p)return w?(ue(!1),w()):{valid:!1,data:e.value};let v=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {valid:!a.$error.value,data:v};return p?{valid:!$?.value?.length,data:v}:te(I.value)?{valid:!0,data:v}:{valid:(await Promise.allSettled(Object.entries(I.value).map(([ee,se])=>se.$parse()))).every(ee=>ee.status==="fulfilled"?ee.value===!0:!1),data:v}}catch{return {valid:false,data:e.value}}}function R(v=true){return a.$dirty.value?e.value:v?{_null:true}:null}function f(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&o();let{$shortcuts:x,$validating:F,$autoDirty:B,$rewardEarly:y,$clearExternalErrorsOnChange:_,$haveAnyAsyncRule:q,$debounce:Z,$lazy:Y,triggerPunishment:fe,...ce}=a;return reactive({...ce,$externalErrors:d,$value:e,$rules:I,...x,$reset:me,$touch:ue,$validate:s,$unwatch:L,$watch:G,$extractDirtyFields:R,$clearExternalErrors:f})}function tt({$id:e,path:t,index:r,options:n,storage:l,stateValue:c,customMessages:m,rules:d,externalErrors:$,schemaErrors:p,initialState:h,shortcuts:V,fieldName:C,schemaMode:M}){let w=d.$key?d.$key:$e(),O=`${t}.${String(w)}`;typeof c.value=="object"&&c.value!=null&&(c.value.$id?O=`${t}.${c.value.$id}`:Object.defineProperties(c.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let a=toRef($?.value??[],r),S=computed(()=>p?.value?.[r]),E=Te({state:c,rulesDef:toRef(()=>d),customMessages:m,path:O,storage:l,options:n,externalErrors:a,schemaErrors:S,initialState:h,shortcuts:V,fieldName:C,schemaMode:M});if(E){let D=c.value?.$id;E.$id=D??String(w),l.addArrayStatus(e,E.$id,E);}return E}function Ft({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:c,externalErrors:m,schemaErrors:d,schemaMode:$,initialState:p,shortcuts:h,fieldName:V}){let C=effectScope(),M,w=effectScope(),O,a=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let S=ref(),E=ref(e.value),D,u=ref({}),T=l.getCollectionsEntry(n);O=w.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(R=>typeof R!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(R=>we(R)||typeof R=="function"):false)})),i(),A();function i(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(S.value=$e(),Object.defineProperties(e.value,{$id:{value:S.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(S.value=e.value.$id)),E.value=u.value.$value,Array.isArray(e.value)&&!O.isPrimitiveArray.value?T.value=e.value.filter(s=>typeof s=="object").map((s,R)=>{let{scope:f,unwrapped:x}=Qe(t.value.$each,toRef(()=>s),R);f&&a.push(f);let F=toRef(p.value??[],R),B=toRef(m?.value??{},"$each"),y=computed(()=>d?.value?.$each),_=tt({$id:S.value,path:n,customMessages:r,rules:x??{},stateValue:toRef(()=>s),index:R,options:c,storage:l,externalErrors:B,schemaErrors:y,initialState:F,shortcuts:h,fieldName:V,schemaMode:$});return _||null}).filter(s=>!!s):T.value=[],u.value=be({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:c,externalErrors:toRef(m?.value??{},"$self"),schemaErrors:computed(()=>d?.value?.$self),$isArray:true,initialState:p,shortcuts:h,fieldName:V,schemaMode:$});}function o(){if(Array.isArray(e.value)&&!O.isPrimitiveArray.value){let s=N(T.value);T.value=e.value.filter(R=>typeof R=="object").map((R,f)=>{let x=toRef(()=>R);if(R.$id&&T.value.find(F=>F.$id===R.$id)){let F=l.getArrayStatus(S.value,R.$id);return F?(F.$value=x,F):null}else {let{scope:F,unwrapped:B}=Qe(t.value.$each,x,f);F&&a.push(F);let y=toRef(m?.value??{},"$each"),_=computed(()=>d?.value?.$each??[]),q=tt({$id:S.value,path:n,customMessages:r,rules:B??{},stateValue:x,index:f,options:c,storage:l,externalErrors:y,schemaErrors:_,initialState:toRef(p.value??[],f),shortcuts:h,fieldName:V,schemaMode:$});return q||null}}).filter(R=>!!R),s.filter(R=>!e.value?.find(f=>R.$id===f.$id)).forEach((R,f)=>{l.deleteArrayStatus(S.value,f.toString());});}else T.value=[];}function b(){D=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?i():o();},{deep:Ne?1:true,flush:"pre"});}function A(){b(),C=effectScope(),M=C.run(()=>{let s=computed({get:()=>e.value,set(g){D(),e.value=g,b();}}),R=computed(()=>u.value.$dirty&&(!T.value.length||T.value.every(g=>g.$dirty))),f=computed(()=>u.value.$anyDirty||T.value.some(g=>g.$anyDirty)),x=computed(()=>u.value.$invalid||T.value.some(g=>g.$invalid)),F=computed(()=>(te(u.value.$rules)?true:u.value.$correct)&&(!T.value.length||T.value.every(g=>g.$correct||g.$anyDirty&&!g.$invalid))),B=computed(()=>u.value.$error||T.value.some(g=>g.$error)),y=computed(()=>!(x.value||_.value)),_=computed(()=>u.value.$pending||T.value.some(g=>g.$pending)),q=computed(()=>!!T.value.length&&T.value.every(g=>g.$edited)),Z=computed(()=>u.value.$anyEdited||T.value.some(g=>g.$anyEdited)),Y=computed(()=>({$self:u.value.$errors,$each:T.value.map(g=>g.$errors)})),fe=computed(()=>({$self:u.value.$silentErrors,$each:T.value.map(g=>g.$silentErrors)})),ce=computed(()=>V);function v(){h?.collections&&Object.entries(h?.collections).forEach(([g,ee])=>{let se=effectScope();j[g]=se.run(()=>{let le=ref();return watchEffect(()=>{le.value=ee(reactive({$dirty:R,$error:B,$silentValue:s,$pending:_,$invalid:x,$correct:F,$errors:Y,$ready:y,$silentErrors:fe,$anyDirty:f,$name:ce,$each:T,$self:u,$value:e,$edited:q,$anyEdited:Z}));}),le}),a.push(se);});}let j={};return v(),{$dirty:R,$anyDirty:f,$invalid:x,$correct:F,$error:B,$pending:_,$errors:Y,$silentErrors:fe,$ready:y,$name:ce,$shortcuts:j,$silentValue:s,$edited:q,$anyEdited:Z}}),O.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function L(){D&&D(),u.value&&u.value.$unwatch(),T.value&&T.value.forEach(s=>{"$dirty"in s&&s.$unwatch();}),C.stop(),C=effectScope(),w.stop(),w=effectScope(true),a.forEach(s=>s.stop()),a=[];}function G(s=true,R=false){u.value.$touch(s,R),T.value.forEach(f=>{f.$touch(s,R);});}function X(s,R){if(L(),!R)if(s?.toInitialState)e.value=N(p.value);else if(s?.toState){let f;typeof s?.toState=="function"?f=s?.toState():f=s?.toState,p.value=N(f),e.value=N(f);}else p.value=N(e.value);s?.clearExternalErrors&&I(),u.value.$reset(),T.value.forEach(f=>{f.$reset(s,true);}),R||i();}async function oe(){let s=e.value;try{return {valid:(await Promise.allSettled([u.value.$validate(),...T.value.map(x=>x.$validate())])).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:s}}catch{return {valid:false,data:s}}}function I(){u.value.$clearExternalErrors(),T.value.forEach(s=>{s.$clearExternalErrors();});}function z(s=true){let R=T.value.map(f=>{if(Ct(f))return f.$extractDirtyFields(s)});return s&&R.every(f=>te(f))&&(R=[]),R}let{$shortcuts:me,...ue}=M;return reactive({$self:u,...ue,...me,$each:T,$value:e,$validate:oe,$unwatch:L,$watch:A,$touch:G,$reset:X,$extractDirtyFields:z,$clearExternalErrors:I})}function We({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:c,rootSchemaErrors:m,validationGroups:d,initialState:$,fieldName:p,...h}){let V=effectScope(),C,M=[],w=null,O=null,a=null,S=null;async function D(s=true){let R=Object.entries(e.value),f=Object.fromEntries(R.filter(([y,_])=>!!_).map(([y,_])=>{if(_){let q=toRef(t.value??{},y),Z=toRef(()=>_),Y=toRef(l?.value??{},y),fe=computed(()=>c?.value?.[y]),ce=toRef($?.value??{},y);return [y,Te({state:q,rulesDef:Z,path:r?`${r}.${y}`:y,externalErrors:Y,schemaErrors:fe,initialState:ce,fieldName:y,...h})]}return []})),x=Object.fromEntries(Object.entries(unref(l)??{}).filter(([y,_])=>!(y in e.value)&&!!_).map(([y])=>{let _=toRef(t.value??{},y),q=toRef(l?.value??{},y),Z=computed(()=>c?.value?.[y]),Y=toRef($?.value??{},y);return [y,Te({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:y,...h})]})),F=Object.fromEntries(Object.entries(unref(c)??{}).map(([y])=>{let _=toRef(t.value??{},y),q=toRef(l?.value??{},y),Z=computed(()=>c?.value?.[y]),Y=toRef($?.value??{},y);return [y,Te({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:y,...h})]})),B=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(x??{}))&&!(y in(F??{}))).map(([y])=>{let _=toRef(t.value??{},y),q=toRef(l?.value??{},y),Z=computed(()=>c?.value?.[y]),Y=toRef($?.value??{},y);return [y,Te({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:y,...h})]}));u.value={...f,...x,...F,...B},s&&o();}let u=h.storage.getFieldsEntry(r);D();function T(){l&&(a=watch(l,()=>{b(),D();},{deep:true}));}function i(){S=watch(t,()=>{b(),D(),G(true,true);},{flush:"sync"});}function o(){n&&(w?.(),w=watch(n,()=>{b(),D();},{deep:true,flush:"post"}),T()),m&&(O?.(),O=watch(m,()=>{b(),D();},{deep:true,flush:"post"})),i(),C=V.run(()=>{let s=computed({get:()=>t.value,set(U){b(),t.value=U,D();}}),R=computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([U,P])=>P?.$dirty)),f=computed(()=>Object.entries(u.value).some(([U,P])=>P?.$anyDirty)),x=computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).some(([U,P])=>P?.$invalid)),F=computed(()=>{let U=Object.entries(u.value).filter(([P,H])=>It(H)?!H.$inactive:true);return U.length?U.every(([P,H])=>H?.$correct||H.$anyDirty&&!H.$invalid):false}),B=computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).some(([U,P])=>P?.$error)),y=computed(()=>unref(h.options.rewardEarly)!=null?unref(h.options.rewardEarly):false),_=computed(()=>unref(h.options.autoDirty)!=null?unref(h.options.autoDirty):!y.value),q=computed(()=>_.value?f.value&&!(x.value||Y.value):!(x.value||Y.value)),Z=ref(false),Y=computed(()=>Z.value||Object.entries(u.value).some(([U,P])=>P?.$pending)),fe=computed(()=>Object.fromEntries(Object.entries(u.value).map(([U,P])=>[U,P?.$errors]))),ce=computed(()=>Object.fromEntries(Object.entries(u.value).map(([U,P])=>[U,P?.$silentErrors]))),v=computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([U,P])=>P?.$edited)),j=computed(()=>Object.entries(u.value).some(([U,P])=>P?.$anyEdited)),g=computed(()=>p);function ee(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,P])=>{let H=effectScope();le[U]=H.run(()=>{let Ie=ref();return watchEffect(()=>{Ie.value=P(reactive({$dirty:R,$value:t,$silentValue:s,$error:B,$pending:Y,$invalid:x,$correct:F,$ready:q,$anyDirty:f,$name:g,$silentErrors:ce,$errors:fe,$fields:u,$edited:v,$anyEdited:j}));}),Ie}),M.push(H);});}let se=computed({get:()=>d?Object.fromEntries(Object.entries(d?.(u.value)??{}).map(([U,P])=>P.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(H=>[H,St(P,H)])),...Object.fromEntries(["$errors","$silentErrors"].map(H=>[H,ht(P,H)]))}]:[])):{},set(){}}),le={};return ee(),{$dirty:R,$anyDirty:f,$invalid:x,$correct:F,$error:B,$pending:Y,$errors:fe,$silentErrors:ce,$ready:q,$name:g,$shortcuts:le,$groups:se,$silentValue:s,$edited:v,$anyEdited:j,$localPending:Z}});}function b(){w?.(),a?.(),S?.(),O?.(),M=[],C={},u.value&&Object.entries(u.value).forEach(([s,R])=>{R.$unwatch();});}function A(){Object.entries(u.value).forEach(([s,R])=>{R.$clearExternalErrors();});}function L(s,R){if(a?.(),b(),!R)if(s?.toInitialState)t.value=N({...$.value??{}});else if(s?.toState){let f;typeof s?.toState=="function"?f=s?.toState():f=s?.toState,$.value=N(f),t.value=N(f);}else $.value=N(t.value);Object.values(u.value).forEach(f=>{f.$reset(s,true);}),s?.clearExternalErrors&&A(),T(),R||D();}function G(s=true,R=false){Object.values(u.value).forEach(f=>{f.$touch(s,R);});}function X(s){return s.filter(([R,f])=>K(f)?!(f&&typeof f=="object"&&"_null"in f)&&!te(f):Array.isArray(f)?f.length:true)}function oe(s=true){let R=Object.entries(u.value).map(([f,x])=>[f,x.$extractDirtyFields(s)]);return s&&(R=X(R)),Object.fromEntries(R)}async function I(){try{if(h.schemaMode)return h.onValidate?(G(!1),C.$localPending.value=!0,h.onValidate()):{valid:!1,data:t.value};{let s=t.value;return {valid:(await Promise.allSettled(Object.values(u.value).map(x=>x.$validate()))).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:s}}}catch{return {valid:false,data:t.value}}finally{C.$localPending.value=false;}}let{$shortcuts:z,$localPending:me,...ue}=C;return reactive({...ue,...z,$fields:u,$value:t,$reset:L,$touch:G,$validate:I,$unwatch:b,$watch:o,$clearExternalErrors:A,$extractDirtyFields:oe})}function Te({rulesDef:e,...t}){if(Dt(e,t.state,t.schemaMode))return Ft({rulesDef:e,...t});if(ke(t.state,e)){if(_e(t.state))return We({rulesDef:e,...t});{let n=effectScope().run(()=>{let m=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,d=>{m.value=d;},{deep:true}),watch(m,d=>{t.state.value=d;},{deep:true}),{fakeState:m}}),{state:l,...c}=t;return We({rulesDef:e,...c,state:n.fakeState})}}else if(Ge(e))return be({rulesDef:e,...t})}function Ce({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:c,schemaErrors:m,schemaMode:d=false,onValidate:$}){let p=Ye(),h=ref();return ke(n,r)?h.value=We({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:p,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:c,fieldName:"root",path:"",schemaErrors:m,rootSchemaErrors:m,schemaMode:d,onValidate:$}):Ge(r)&&(h.value=be({rulesDef:r,state:n,customMessages:l?.(),storage:p,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:c,fieldName:"root",path:"",schemaMode:d,schemaErrors:m,onValidate:$})),getCurrentScope()&&onScopeDispose(()=>{h.value?.$unwatch();}),reactive({regle:h})}function at(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(c,m,d){let $=isRef(m)?m:computed(typeof m=="function"?m:()=>m),p={...n,...d},h=isRef(c)?c:ref(c),V=ref(K(h.value)?{...N(h.value)}:N(h.value));return {r$:Ce({scopeRules:$,state:h,options:p,initialState:V,customRules:e,shortcuts:r}).regle}}return l}var Le=at();function lt(){function e(t,r){return r}return e}var ot=lt();function Nt({rules:e,modifiers:t,shortcuts:r}){let n=at(e,t,r),l=lt();return {useRegle:n,inferRules:l}}function Me(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(i=>i.$value):Object.fromEntries(Object.entries(e).map(([i,o])=>[i,o.$value])),set:i=>{r||typeof i=="object"&&Object.entries(i).forEach(([o,b])=>e[o].$value=b);}}),l=computed({get:()=>Object.fromEntries(Object.entries(e).map(([i,o])=>[i,o.$silentValue])),set:i=>{typeof i=="object"&&Object.entries(i).forEach(([o,b])=>e[o].$silentValue=b);}}),c=computed(()=>{let i=Object.entries(e);return !!i.length&&i.every(([o,b])=>b?.$dirty)}),m=computed(()=>Object.entries(e).some(([i,o])=>o?.$anyDirty)),d=computed(()=>Object.entries(e).some(([i,o])=>o?.$invalid)),$=computed(()=>{let i=Object.entries(e);return !!i.length&&i.every(([o,b])=>b?.$correct||b.$anyDirty&&!b.$invalid)}),p=computed(()=>Object.entries(e).some(([i,o])=>o?.$error)),h=computed(()=>{let i=Object.entries(e);return !!i.length&&i.every(([o,b])=>b?.$ready)}),V=computed(()=>Object.entries(e).some(([i,o])=>o?.$pending)),C=computed(()=>r?Object.entries(e).map(([i,o])=>o.$errors):Object.fromEntries(Object.entries(e).map(([i,o])=>[i,o.$errors]))),M=computed(()=>r?Object.entries(e).map(([i,o])=>o.$silentErrors):Object.fromEntries(Object.entries(e).map(([i,o])=>[i,o.$silentErrors]))),w=computed(()=>{let i=Object.entries(e);return !!i.length&&i.every(([o,b])=>b?.$edited)}),O=computed(()=>Object.entries(e).some(([i,o])=>o?.$anyEdited)),a=computed(()=>r?Object.values(e):e);function S(i){Object.values(e).forEach(o=>{o.$reset(i);});}function E(){Object.values(e).forEach(i=>{i.$touch();});}function D(i=true){return Object.values(e).map(o=>o.$extractDirtyFields(i))}function u(){Object.values(e).forEach(i=>{i.$clearExternalErrors();});}async function T(){try{let i=n.value;return {valid:(await Promise.allSettled(Object.values(e).map(A=>A.$validate()))).every(A=>A.status==="fulfilled"?A.value.valid===!0:!1),data:i}}catch{return {valid:false,data:n.value}}}return reactive({...!r&&{$silentValue:l},$errors:C,$silentErrors:M,$instances:a,$value:n,$dirty:c,$anyDirty:m,$invalid:d,$correct:$,$error:p,$pending:V,$ready:h,$edited:w,$anyEdited:O,$reset:S,$touch:E,$validate:T,$extractDirtyFields:D,$clearExternalErrors:u})}function Gt(e){function t(r){let n=computed(()=>toValue(r));m();let l=ref(d(e.value)),c=reactive({r$:l});function m(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}watch(n,m),watch(e,$=>{l.value=d($);},{deep:true});function d($){if(n.value){let p=$[n.value]??{};return Me(p,true)}else return Me($["~~global"]??{},true)}return {r$:c.r$}}return {useCollectScope:t}}function Lt(e,t){let r=t??Le;return {useScopedRegle:(l,c,m)=>{let{namespace:d,...$}=m??{},p=computed(()=>toValue(d)),h=ref(`${Object.keys(e.value).length+1}-${$e()}`),V=computed(()=>`instance-${h.value}`),{r$:C}=r(l,c,$);w(),Et(M),watch(p,(O,a)=>{M(a),w();}),getCurrentInstance()&&onMounted(()=>{let O=getCurrentInstance();typeof window<"u"&&O?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(O?.proxy?.$el?.parentElement)&&M();});function M(O){let a=O??p.value;a?e.value[a]&&delete e.value[a][V.value]:e.value["~~global"][V.value]&&delete e.value["~~global"][V.value];}function w(){p.value?(e.value[p.value]||(e.value[p.value]={}),e.value[p.value][V.value]=C):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][V.value]=C);}return {r$:C,dispose:M,register:w}}}}function Be(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):xt(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=Lt(r,e?.customUseRegle),{useCollectScope:l}=Gt(r);return {useScopedRegle:n,useCollectScope:l}}var {useCollectScope:st,useScopedRegle:it}=Be();
2
2
  export{qe as InternalRuleType,Je as createRule,Be as createScopedUseRegle,Nt as defineRegleConfig,ot as inferRules,Me as mergeRegles,re as unwrapRuleParameters,st as useCollectScope,Le as useRegle,Ce as useRootStorage,it as useScopedRegle};
@@ -444,8 +444,8 @@ function createGlobalState(stateFactory) {
444
444
  function isNestedRulesDef(state, rules) {
445
445
  return isRefObject(state) || isObject(rules.value) && !isEmpty(rules.value) && !Object.entries(rules.value).some(([key, rule]) => isRuleDef(rule) || typeof rule === "function");
446
446
  }
447
- function isCollectionRulesDef(rules, state) {
448
- return !!rules.value && isObject(rules.value) && "$each" in rules.value || Array.isArray(state.value);
447
+ function isCollectionRulesDef(rules, state, schemaMode = false) {
448
+ return !!rules.value && isObject(rules.value) && "$each" in rules.value || schemaMode && Array.isArray(state.value) && state.value.some(isObject) || Array.isArray(state.value) && state.value.some(isObject);
449
449
  }
450
450
  function isValidatorRulesDef(rules) {
451
451
  return !!rules.value && isObject(rules.value);
@@ -1122,6 +1122,9 @@ function createReactiveFieldStatus({
1122
1122
  initialState.value = isObject(state.value) ? cloneDeep(state.value) : Array.isArray(state.value) ? [...state.value] : state.value;
1123
1123
  }
1124
1124
  }
1125
+ if (options2?.clearExternalErrors) {
1126
+ $clearExternalErrors();
1127
+ }
1125
1128
  if (!fromParent) {
1126
1129
  Object.entries($rules.value).forEach(([_, rule]) => {
1127
1130
  rule.$reset();
@@ -1633,6 +1636,9 @@ function createReactiveCollectionStatus({
1633
1636
  initialState.value = cloneDeep(state.value);
1634
1637
  }
1635
1638
  }
1639
+ if (options2?.clearExternalErrors) {
1640
+ $clearExternalErrors();
1641
+ }
1636
1642
  $selfStatus.value.$reset();
1637
1643
  $eachStatus.value.forEach(($each) => {
1638
1644
  $each.$reset(options2, true);
@@ -2095,6 +2101,9 @@ function createReactiveNestedStatus({
2095
2101
  Object.values($fields.value).forEach((statusOrField) => {
2096
2102
  statusOrField.$reset(options, true);
2097
2103
  });
2104
+ if (options?.clearExternalErrors) {
2105
+ $clearExternalErrors();
2106
+ }
2098
2107
  define$WatchExternalErrors();
2099
2108
  if (!fromParent) {
2100
2109
  createReactiveFieldsStatus();
@@ -2176,7 +2185,7 @@ function createReactiveChildrenStatus({
2176
2185
  rulesDef,
2177
2186
  ...properties
2178
2187
  }) {
2179
- if (isCollectionRulesDef(rulesDef, properties.state)) {
2188
+ if (isCollectionRulesDef(rulesDef, properties.state, properties.schemaMode)) {
2180
2189
  return createReactiveCollectionStatus({
2181
2190
  rulesDef,
2182
2191
  ...properties
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@regle/core",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "Headless form validation library for Vue 3",
5
5
  "peerDependencies": {
6
6
  "pinia": ">=2.2.5",