@regle/core 1.20.0-preview.1 → 1.20.0-preview.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/regle-core.d.ts +25 -24
- package/dist/regle-core.js +2 -2
- package/dist/regle-core.min.js +2 -2
- package/package.json +1 -1
package/dist/regle-core.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @regle/core v1.20.0-preview.
|
|
2
|
+
* @regle/core v1.20.0-preview.3
|
|
3
3
|
* (c) 2026 Victor Garcia
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
@@ -13,8 +13,8 @@ type RegleStaticImpl<T> = Raw<T & {
|
|
|
13
13
|
[RegleStaticSymbol]: true;
|
|
14
14
|
}>;
|
|
15
15
|
type IsRegleStatic<T> = T extends RegleStaticImpl<T> ? true : false;
|
|
16
|
-
type UnwrapStatic<T> = IsUnknown<T> extends true ? any : NonNullable<T> extends RegleStaticImpl<infer U> ? Raw<U> : UnwrapStaticSimple<T>;
|
|
17
|
-
type UnwrapStaticSimple<T> = NonNullable<T> extends Array<infer U> ? Array<UnwrapStatic<U>> : isRecordLiteral<NonNullable<T>> extends true ? { [K in keyof T]: UnwrapStatic<T[K]> } : T;
|
|
16
|
+
type UnwrapStatic<T> = IsAny<T> extends true ? any : IsUnknown<T> extends true ? any : NonNullable<T> extends RegleStaticImpl<infer U> ? Raw<U> : UnwrapStaticSimple<T>;
|
|
17
|
+
type UnwrapStaticSimple<T> = IsAny<T> extends true ? any : NonNullable<T> extends Array<infer U> ? Array<UnwrapStatic<U>> : isRecordLiteral<NonNullable<T>> extends true ? { [K in keyof T]: UnwrapStatic<T[K]> } : T;
|
|
18
18
|
interface GlobalConfigOverrides<TValue extends unknown = unknown> {
|
|
19
19
|
/**
|
|
20
20
|
* Override the default $edited handler.
|
|
@@ -202,8 +202,8 @@ type RegleSingleField<TState extends Maybe<PrimitiveTypes> = any, TRules extends
|
|
|
202
202
|
*/
|
|
203
203
|
r$: Raw<RegleFieldStatus<TState, TRules, TShortcuts>>;
|
|
204
204
|
} & TAdditionalReturnProperties;
|
|
205
|
-
type DeepReactiveState<T extends Record<string, any> | unknown | undefined> = ExtendOnlyRealRecord<T> extends true ? { [K in keyof T]: InferDeepReactiveState<T[K]> } : never;
|
|
206
|
-
type InferDeepReactiveState<TState> = NonNullable<TState> extends Array<infer U extends Record<string, any>> ? DeepReactiveState<U[]> : NonNullable<TState> extends Date | File ? MaybeRef<TState> : NonNullable<TState> extends Record<string, any> ? DeepReactiveState<TState> : MaybeRef<TState>;
|
|
205
|
+
type DeepReactiveState<T extends Record<string, any> | unknown | undefined> = IsAny<T> extends true ? any : IsUnknown<T> extends true ? never : ExtendOnlyRealRecord<T> extends true ? { [K in keyof T]: InferDeepReactiveState<T[K]> } : never;
|
|
206
|
+
type InferDeepReactiveState<TState> = IsAny<TState> extends true ? any : IsUnknown<TState> extends true ? MaybeRef<TState> : NonNullable<TState> extends Array<infer U extends Record<string, any>> ? DeepReactiveState<U[]> : NonNullable<TState> extends Date | File ? MaybeRef<TState> : NonNullable<TState> extends Record<string, any> ? DeepReactiveState<TState> : MaybeRef<TState>;
|
|
207
207
|
type ResetOptions<TState extends unknown> = RequireOneOrNone<{
|
|
208
208
|
/**
|
|
209
209
|
* Reset validation status and reset form state to its initial state.
|
|
@@ -244,7 +244,7 @@ type ScopedInstancesRecord = Record<string, Record<string, SuperCompatibleRegleR
|
|
|
244
244
|
'~~global': Record<string, SuperCompatibleRegleRoot>;
|
|
245
245
|
};
|
|
246
246
|
type ScopedInstancesRecordLike = Partial<ScopedInstancesRecord>;
|
|
247
|
-
type PartialFormState<TState extends Record<string, any>> = [unknown] extends [TState] ? {} : Prettify<{ [K in keyof TState as ExtendOnlyRealRecord<TState[K]> extends true ? never : TState[K] extends Array<any> ? never : K]?: MaybeOutput<TState[K]> } & { [K in keyof TState as ExtendOnlyRealRecord<TState[K]> extends true ? K : TState[K] extends Array<any> ? K : never]: NonNullable<TState[K]> extends Array<infer U extends Record<string, any>> ? PartialFormState<U>[] : PartialFormState<TState[K]> }>;
|
|
247
|
+
type PartialFormState<TState extends Record<string, any>> = IsAny<TState> extends true ? any : [unknown] extends [TState] ? {} : Prettify<{ [K in keyof TState as ExtendOnlyRealRecord<TState[K]> extends true ? never : TState[K] extends Array<any> ? never : K]?: MaybeOutput<TState[K]> } & { [K in keyof TState as ExtendOnlyRealRecord<TState[K]> extends true ? K : TState[K] extends Array<any> ? K : never]: NonNullable<TState[K]> extends Array<infer U extends Record<string, any>> ? PartialFormState<U>[] : PartialFormState<TState[K]> }>;
|
|
248
248
|
type RegleResult<Data extends Record<string, any> | any[] | unknown, TRules extends ReglePartialRuleTree<any> | RegleFormPropertyType<any>> = {
|
|
249
249
|
/** The result of the validation */valid: false; /** Output data, filter the result by checking the `valid` property */
|
|
250
250
|
data: IsUnknown<Data> extends true ? unknown : IsAny<Data> extends true ? unknown : IsEmptyObject<TRules> extends true ? MaybeOutput<Data> : HasNamedKeys<Data> extends true ? NonNullable<Data> extends Date | File ? MaybeOutput<Raw<Data>> : NonNullable<Data> extends Array<infer U extends Record<string, any>> ? PartialFormState<U>[] : NonNullable<Data> extends Record<string, any> ? PartialFormState<NonNullable<Data>> : MaybeOutput<Data> : unknown;
|
|
@@ -266,8 +266,8 @@ type RegleResult<Data extends Record<string, any> | any[] | unknown, TRules exte
|
|
|
266
266
|
issues: EmptyObject;
|
|
267
267
|
errors: EmptyObject;
|
|
268
268
|
};
|
|
269
|
-
type DataTypeRegleIssues<TData extends Record<string, any> | any[] | unknown, TRules extends ReglePartialRuleTree<any> | RegleFormPropertyType<any> = never> = HasNamedKeys<TData> extends true ? NonNullable<TData> extends Array<infer U> ? isRecordLiteral<U> extends true ? RegleFieldIssue<TRules>[] : RegleCollectionErrors<TData, true> : isRecordLiteral<TData> extends true ? RegleIssuesTree<TData> : RegleFieldIssue<TRules>[] : RegleFieldIssue | RegleCollectionErrors<TData, true> | RegleIssuesTree<TData>;
|
|
270
|
-
type DataTypeRegleErrors<TData extends Record<string, any> | any[] | unknown> = HasNamedKeys<TData> extends true ? NonNullable<TData> extends Array<infer U> ? isRecordLiteral<U> extends true ? string[] : RegleCollectionErrors<TData> : isRecordLiteral<TData> extends true ? RegleErrorTree<TData> : string[] : string[] | RegleErrorTree<TData> | RegleCollectionErrors<TData>;
|
|
269
|
+
type DataTypeRegleIssues<TData extends Record<string, any> | any[] | unknown, TRules extends ReglePartialRuleTree<any> | RegleFormPropertyType<any> = never> = IsAny<TData> extends true ? any : IsUnknown<TData> extends true ? RegleFieldIssue | RegleCollectionErrors<TData, true> | RegleIssuesTree<TData> : HasNamedKeys<TData> extends true ? NonNullable<TData> extends Array<infer U> ? isRecordLiteral<U> extends true ? RegleFieldIssue<TRules>[] : RegleCollectionErrors<TData, true> : isRecordLiteral<TData> extends true ? RegleIssuesTree<TData> : RegleFieldIssue<TRules>[] : RegleFieldIssue | RegleCollectionErrors<TData, true> | RegleIssuesTree<TData>;
|
|
270
|
+
type DataTypeRegleErrors<TData extends Record<string, any> | any[] | unknown> = IsAny<TData> extends true ? any : IsUnknown<TData> extends true ? string[] | RegleErrorTree<TData> | RegleCollectionErrors<TData> : HasNamedKeys<TData> extends true ? NonNullable<TData> extends Array<infer U> ? isRecordLiteral<U> extends true ? string[] : RegleCollectionErrors<TData> : isRecordLiteral<TData> extends true ? RegleErrorTree<TData> : string[] : string[] | RegleErrorTree<TData> | RegleCollectionErrors<TData>;
|
|
271
271
|
type RegleCollectionResult<Data extends any[], TRules extends ReglePartialRuleTree<any> | RegleFormPropertyType<any>> = RegleResult<Data, TRules> & ({
|
|
272
272
|
valid: false;
|
|
273
273
|
issues: RegleCollectionErrors<Data, true>;
|
|
@@ -294,12 +294,12 @@ type $InternalRegleResult = {
|
|
|
294
294
|
};
|
|
295
295
|
type DeepSafeFormState<TState extends Record<string, any>, TRules extends ReglePartialRuleTree<Record<string, any>, CustomRulesDeclarationTree> | undefined> = IsUnknown<TState> extends true ? {} : IsAny<TState> extends true ? unknown : TRules extends undefined ? TState : HasNamedKeys<TState> extends true ? TRules extends ReglePartialRuleTree<TState, CustomRulesDeclarationTree> ? Prettify<{ [K in keyof TState as IsPropertyOutputRequired<TState[K], TRules[K]> extends false ? K : never]?: SafeProperty<TState[K], TRules[K]> extends MaybeInput<infer M> ? MaybeOutput<M> : SafeProperty<TState[K], TRules[K]> } & { [K in keyof TState as IsPropertyOutputRequired<TState[K], TRules[K]> extends false ? never : K]-?: IsUnknown<SafeProperty<TState[K], TRules[K]>> extends true ? unknown : IsAny<TState[K]> extends true ? unknown : NonNullable<SafeProperty<TState[K], TRules[K]>> }> : TState : TState;
|
|
296
296
|
type FieldHaveRequiredRule<TRule extends RegleFormPropertyType<any, any> | undefined = never> = TRule extends MaybeRefOrComputedRef<RegleRuleDecl<any, any>> ? { [K in keyof UnwrapRef<TRule>]-?: UnwrapRef<TRule>[K] extends RegleRuleDefinition<unknown, any, any[], any, any, any, any, true> ? true : false }[keyof UnwrapRef<TRule>] extends false ? false : true : false;
|
|
297
|
-
type ObjectHaveAtLeastOneRequiredField<TState extends Record<string, any>, TRules extends ReglePartialRuleTree<TState, any>> = TState extends Maybe<TState> ? ({ [K in keyof NonNullable<TState>]-?: IsPropertyOutputRequired<NonNullable<TState>[K], TRules[K] extends RegleFormPropertyType<any, any> ? TRules[K] : {}> } & {
|
|
297
|
+
type ObjectHaveAtLeastOneRequiredField<TState extends Record<string, any>, TRules extends ReglePartialRuleTree<TState, any>> = IsAny<TState> extends true ? boolean : TState extends Maybe<TState> ? ({ [K in keyof NonNullable<TState>]-?: IsPropertyOutputRequired<NonNullable<TState>[K], TRules[K] extends RegleFormPropertyType<any, any> ? TRules[K] : {}> } & {
|
|
298
298
|
$self: IsPropertyOutputRequired<string, TRules['$self']>;
|
|
299
299
|
})[keyof TState | '$self'] extends false ? false : true : true;
|
|
300
|
-
type ArrayHaveAtLeastOneRequiredField<TState extends Maybe<any[]>, TRule extends RegleCollectionRuleDecl<TState>> = TState extends Maybe<TState> ? FieldHaveRequiredRule<Omit<TRule, '$each'> extends MaybeRef<RegleRuleDecl> ? Omit<UnwrapRef<TRule>, '$each'> : {}> | ObjectHaveAtLeastOneRequiredField<ArrayElement<NonNullable<TState>>, ExtractFromGetter<TRule['$each']> extends undefined ? {} : NonNullable<ExtractFromGetter<TRule['$each']>>> extends false ? false : true : true;
|
|
301
|
-
type SafeProperty<TState, TRule extends RegleFormPropertyType<any, any> | undefined> = unknown extends TState ? unknown : TRule extends RegleCollectionRuleDecl<any, any> ? TState extends Array<infer U extends Record<string, any>> ? DeepSafeFormState<U, ExtractFromGetter<TRule['$each']>>[] : TState : TRule extends ReglePartialRuleTree<any, any> ? ExtendOnlyRealRecord<TState> extends true ? DeepSafeFormState<NonNullable<TState> extends Record<string, any> ? JoinDiscriminatedUnions<NonNullable<TState>> : {}, TRule> : TRule extends MaybeRef<RegleRuleDecl<any, any>> ? FieldHaveRequiredRule<UnwrapRef<TRule>> extends true ? TState : MaybeOutput<TState> : TState : TState;
|
|
302
|
-
type IsPropertyOutputRequired<TState, TRule extends RegleFormPropertyType<any, any> | undefined> = [unknown] extends [TState] ? unknown : NonNullable<TState> extends Array<any> ? TRule extends RegleCollectionRuleDecl<any, any> ? ArrayHaveAtLeastOneRequiredField<NonNullable<TState>, TRule> extends false ? false : true : false : TRule extends ReglePartialRuleTree<any, any> ? ExtendOnlyRealRecord<TState> extends true ? ObjectHaveAtLeastOneRequiredField<NonNullable<TState> extends Record<string, any> ? NonNullable<TState> : {}, TRule extends ReglePartialRuleTree<NonNullable<TState> extends Record<string, any> ? NonNullable<TState> : {}, any> ? TRule : {}> extends false ? false : true : TRule extends MaybeRef<RegleRuleDecl<any, any>> ? FieldHaveRequiredRule<UnwrapRef<TRule>> extends false ? false : true : false : false;
|
|
300
|
+
type ArrayHaveAtLeastOneRequiredField<TState extends Maybe<any[]>, TRule extends RegleCollectionRuleDecl<TState>> = IsAny<TState> extends true ? boolean : TState extends Maybe<TState> ? FieldHaveRequiredRule<Omit<TRule, '$each'> extends MaybeRef<RegleRuleDecl> ? Omit<UnwrapRef<TRule>, '$each'> : {}> | ObjectHaveAtLeastOneRequiredField<ArrayElement<NonNullable<TState>>, ExtractFromGetter<TRule['$each']> extends undefined ? {} : NonNullable<ExtractFromGetter<TRule['$each']>>> extends false ? false : true : true;
|
|
301
|
+
type SafeProperty<TState, TRule extends RegleFormPropertyType<any, any> | undefined> = IsAny<TState> extends true ? any : unknown extends TState ? unknown : TRule extends RegleCollectionRuleDecl<any, any> ? TState extends Array<infer U extends Record<string, any>> ? DeepSafeFormState<U, ExtractFromGetter<TRule['$each']>>[] : TState : TRule extends ReglePartialRuleTree<any, any> ? ExtendOnlyRealRecord<TState> extends true ? DeepSafeFormState<NonNullable<TState> extends Record<string, any> ? JoinDiscriminatedUnions<NonNullable<TState>> : {}, TRule> : TRule extends MaybeRef<RegleRuleDecl<any, any>> ? FieldHaveRequiredRule<UnwrapRef<TRule>> extends true ? TState : MaybeOutput<TState> : TState : TState;
|
|
302
|
+
type IsPropertyOutputRequired<TState, TRule extends RegleFormPropertyType<any, any> | undefined> = IsAny<TState> extends true ? boolean : [unknown] extends [TState] ? unknown : NonNullable<TState> extends Array<any> ? TRule extends RegleCollectionRuleDecl<any, any> ? ArrayHaveAtLeastOneRequiredField<NonNullable<TState>, TRule> extends false ? false : true : false : TRule extends ReglePartialRuleTree<any, any> ? ExtendOnlyRealRecord<TState> extends true ? ObjectHaveAtLeastOneRequiredField<NonNullable<TState> extends Record<string, any> ? NonNullable<TState> : {}, TRule extends ReglePartialRuleTree<NonNullable<TState> extends Record<string, any> ? NonNullable<TState> : {}, any> ? TRule : {}> extends false ? false : true : TRule extends MaybeRef<RegleRuleDecl<any, any>> ? FieldHaveRequiredRule<UnwrapRef<TRule>> extends false ? false : true : false : false;
|
|
303
303
|
type SafeFieldProperty<TState, TRule extends RegleFormPropertyType<any, any> | undefined = never> = FieldHaveRequiredRule<TRule> extends true ? NonNullable<TState> : MaybeOutput<TState>;
|
|
304
304
|
/** Types to be augmented by @regle/schemas */
|
|
305
305
|
interface NarrowVariantExtracts {}
|
|
@@ -344,7 +344,7 @@ type VariantTuple<T extends Record<string, any>, TKey extends keyof T> = [Requir
|
|
|
344
344
|
/**
|
|
345
345
|
* Combine all members of a union type, merging types for each key, and keeping loose types
|
|
346
346
|
*/
|
|
347
|
-
type JoinDiscriminatedUnions<TUnion extends unknown> = HasNamedKeys<TUnion> extends true ? isRecordLiteral<TUnion> extends true ? HasCommonKey<UnionToTuple<NonNullable<TUnion>>, keyof NormalizeUnion<NonNullable<TUnion>>> extends true ? Prettify<ResolveKeys<TUnion> & (Omit<DumbJoinDiscriminatedUnions<TUnion>, keyof ResolveKeys<TUnion>> extends EmptyObject ? {} : Omit<DumbJoinDiscriminatedUnions<TUnion>, keyof ResolveKeys<TUnion>>)> : DumbJoinDiscriminatedUnions<TUnion> : TUnion : TUnion;
|
|
347
|
+
type JoinDiscriminatedUnions<TUnion extends unknown> = IsAny<TUnion> extends true ? any : IsUnknown<TUnion> extends true ? TUnion : HasNamedKeys<TUnion> extends true ? isRecordLiteral<TUnion> extends true ? HasCommonKey<UnionToTuple<NonNullable<TUnion>>, keyof NormalizeUnion<NonNullable<TUnion>>> extends true ? Prettify<ResolveKeys<TUnion> & (Omit<DumbJoinDiscriminatedUnions<TUnion>, keyof ResolveKeys<TUnion>> extends EmptyObject ? {} : Omit<DumbJoinDiscriminatedUnions<TUnion>, keyof ResolveKeys<TUnion>>)> : DumbJoinDiscriminatedUnions<TUnion> : TUnion : TUnion;
|
|
348
348
|
type ResolveKeys<TUnion extends unknown> = Partial<UnionToIntersection<RemoveCommonKey<UnionToTuple<NonNullable<TUnion>>, keyof NormalizeUnion<NonNullable<TUnion>>>[number]>> & Pick<NormalizeUnion<NonNullable<TUnion>>, keyof NormalizeUnion<NonNullable<TUnion>>>;
|
|
349
349
|
/**
|
|
350
350
|
* Combine all members of a union type on one level and not nested.
|
|
@@ -391,7 +391,7 @@ type ProcessHasNamedKeys<T> = { [K in keyof NonNullable<T>]: K extends string ?
|
|
|
391
391
|
/**
|
|
392
392
|
* Convert a nested object to a deeply nested partial object.
|
|
393
393
|
*/
|
|
394
|
-
type DeepPartial<T> = T extends Array<infer U> ? Array<DeepPartial<U>> : T extends Date | File | RegleStaticImpl<unknown> ? T : T extends Record<string, any> ? { [K in keyof T]?: DeepPartial<T[K]> | undefined } : T | undefined;
|
|
394
|
+
type DeepPartial<T> = IsAny<T> extends true ? any : IsUnknown<T> extends true ? unknown : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends Date | File | RegleStaticImpl<unknown> ? T : T extends Record<string, any> ? { [K in keyof T]?: DeepPartial<T[K]> | undefined } : T | undefined;
|
|
395
395
|
type Prettify<T> = T extends infer R ? { [K in keyof R]: R[K] } & {} : never;
|
|
396
396
|
type Maybe<T = any> = T | null | undefined;
|
|
397
397
|
type MaybeInput<T = any> = T | null | undefined;
|
|
@@ -482,6 +482,7 @@ type DefaultValidators = {
|
|
|
482
482
|
}>;
|
|
483
483
|
dateBetween: RegleRuleWithParamsDefinition<unknown, string | Date, [before: MaybeInput<string | Date>, after: MaybeInput<string | Date>, options?: CommonComparisonOptions], false, boolean>;
|
|
484
484
|
decimal: RegleRuleDefinition<unknown, string | number, [], false, boolean, string | number>;
|
|
485
|
+
domain: RegleRuleDefinition<unknown, string, [], false, boolean, string>;
|
|
485
486
|
email: RegleRuleDefinition<unknown, string, [], false, boolean, string>;
|
|
486
487
|
endsWith: RegleRuleWithParamsDefinition<unknown, string, [part: MaybeInput<string>], false, boolean>;
|
|
487
488
|
exactLength: RegleRuleWithParamsDefinition<unknown, string | any[] | Record<PropertyKey, any>, [count: number], false, boolean>;
|
|
@@ -969,7 +970,7 @@ type RegleCustomFieldStatus<T extends useRegleFn<any, any>, TState extends unkno
|
|
|
969
970
|
* type FormRequest = InferOutput<typeof rules, typeof formState>;
|
|
970
971
|
* ```
|
|
971
972
|
*/
|
|
972
|
-
type InferOutput<TRules extends MaybeRef<ReglePartialRuleTree<Record<string, any>, any>> | ((state: any) => ReglePartialRuleTree<Record<string, any>, any>) | MaybeRef<StandardSchemaV1<any>>, TState extends MaybeRef<unknown> = InferInput<TRules>> = isRecordLiteral<TState> extends true ? TRules extends MaybeRef<StandardSchemaV1<infer State>> ? State : DeepSafeFormState<JoinDiscriminatedUnions<Unwrap<NonNullable<TState>>>, TRules extends MaybeRef<ReglePartialRuleTree<Record<string, any>, any>> ? UnwrapRef<TRules> : {}> : TState extends any[] ? TState[] : TState;
|
|
973
|
+
type InferOutput<TRules extends MaybeRef<ReglePartialRuleTree<Record<string, any>, any>> | ((state: any) => ReglePartialRuleTree<Record<string, any>, any>) | MaybeRef<StandardSchemaV1<any>>, TState extends MaybeRef<unknown> = InferInput<TRules>> = IsAny<TRules> extends true ? any : IsUnknown<TRules> extends true ? unknown : isRecordLiteral<TState> extends true ? TRules extends MaybeRef<StandardSchemaV1<infer State>> ? State : DeepSafeFormState<JoinDiscriminatedUnions<Unwrap<NonNullable<TState>>>, TRules extends MaybeRef<ReglePartialRuleTree<Record<string, any>, any>> ? UnwrapRef<TRules> : {}> : TState extends any[] ? TState[] : TState;
|
|
973
974
|
/**
|
|
974
975
|
* Infer input type from a rules object
|
|
975
976
|
*
|
|
@@ -977,8 +978,8 @@ type InferOutput<TRules extends MaybeRef<ReglePartialRuleTree<Record<string, any
|
|
|
977
978
|
* type FormRequest = InferInput<typeof rules>;
|
|
978
979
|
* ```
|
|
979
980
|
*/
|
|
980
|
-
type InferInput<TRules extends MaybeRef<ReglePartialRuleTree<Record<string, any>, any>> | ((state: any) => ReglePartialRuleTree<Record<string, any>, any>) | MaybeRef<StandardSchemaV1<any>>, TMarkMaybe extends boolean = true> = TRules extends MaybeRef<StandardSchemaV1<infer State>> ? State : IsUnion<UnwrapSimple<TRules>> extends true ? InferTupleUnionInput<UnionToTuple<UnwrapSimple<TRules>>>[number] : TMarkMaybe extends true ? Prettify<{ [K in keyof UnwrapSimple<TRules> as UnwrapSimple<TRules>[K] extends MaybeRef<RegleRuleDecl<any, any>> ? K : never]?: ProcessInputChildren<UnwrapSimple<TRules>[K], TMarkMaybe> } & { [K in keyof UnwrapSimple<TRules> as UnwrapSimple<TRules>[K] extends MaybeRef<RegleRuleDecl<any, any>> ? never : K]: ProcessInputChildren<UnwrapSimple<TRules>[K], TMarkMaybe> }> : Prettify<{ [K in keyof UnwrapSimple<TRules>]: ProcessInputChildren<UnwrapSimple<TRules>[K], TMarkMaybe> }>;
|
|
981
|
-
type ProcessInputChildren<TRule extends unknown, TMarkMaybe extends boolean> = TRule extends {
|
|
981
|
+
type InferInput<TRules extends MaybeRef<ReglePartialRuleTree<Record<string, any>, any>> | ((state: any) => ReglePartialRuleTree<Record<string, any>, any>) | MaybeRef<StandardSchemaV1<any>>, TMarkMaybe extends boolean = true> = IsAny<TRules> extends true ? any : IsUnknown<TRules> extends true ? any : TRules extends MaybeRef<StandardSchemaV1<infer State>> ? State : IsUnion<UnwrapSimple<TRules>> extends true ? InferTupleUnionInput<UnionToTuple<UnwrapSimple<TRules>>>[number] : TMarkMaybe extends true ? Prettify<{ [K in keyof UnwrapSimple<TRules> as UnwrapSimple<TRules>[K] extends MaybeRef<RegleRuleDecl<any, any>> ? K : never]?: ProcessInputChildren<UnwrapSimple<TRules>[K], TMarkMaybe> } & { [K in keyof UnwrapSimple<TRules> as UnwrapSimple<TRules>[K] extends MaybeRef<RegleRuleDecl<any, any>> ? never : K]: ProcessInputChildren<UnwrapSimple<TRules>[K], TMarkMaybe> }> : Prettify<{ [K in keyof UnwrapSimple<TRules>]: ProcessInputChildren<UnwrapSimple<TRules>[K], TMarkMaybe> }>;
|
|
982
|
+
type ProcessInputChildren<TRule extends unknown, TMarkMaybe extends boolean> = IsAny<TRule> extends true ? any : IsUnknown<TRule> extends true ? unknown : TRule extends {
|
|
982
983
|
$each: RegleCollectionEachRules<any, any>;
|
|
983
984
|
} ? ExtractFromGetter<TRule['$each']> extends ReglePartialRuleTree<any, any> ? InferInput<ExtractFromGetter<TRule['$each']>, TMarkMaybe>[] : any[] : TRule extends MaybeRef<RegleRuleDecl<any, any>> ? [ExtractTypeFromRules<UnwrapRef<TRule>>] extends [never] ? unknown : ExtractTypeFromRules<UnwrapRef<TRule>> : TRule extends ReglePartialRuleTree<any, any> ? InferInput<TRule, TMarkMaybe> : string;
|
|
984
985
|
type ExtractTypeFromRules<TRules extends RegleRuleDecl<any, any>> = FilterRulesWithInput<TRules> extends {
|
|
@@ -996,7 +997,7 @@ type InferTupleUnionInput<T extends any[]> = T extends [infer F extends ReglePar
|
|
|
996
997
|
*
|
|
997
998
|
* @deprecated Use {@link InferValidOutput} instead
|
|
998
999
|
*/
|
|
999
|
-
type InferSafeOutput<TRegle extends MaybeRef<SuperCompatibleRegleRoot | SuperCompatibleRegleFieldStatus>> = UnwrapRef<TRegle> extends Raw<RegleRoot<infer TState extends Record<string, any>, infer TRules, any, any>> ? TRules extends ReglePartialRuleTree<Record<string, any>, any> ? DeepSafeFormState<JoinDiscriminatedUnions<TState>, TRules> : never : UnwrapRef<TRegle> extends RegleFieldStatus<infer TState, infer TRules> ? SafeFieldProperty<TState, TRules> : UnwrapRef<TRegle> extends RegleLike<infer TState extends Record<string, any>> ? TState : never;
|
|
1000
|
+
type InferSafeOutput<TRegle extends MaybeRef<SuperCompatibleRegleRoot | SuperCompatibleRegleFieldStatus>> = IsAny<TRegle> extends true ? any : UnwrapRef<TRegle> extends Raw<RegleRoot<infer TState extends Record<string, any>, infer TRules, any, any>> ? TRules extends ReglePartialRuleTree<Record<string, any>, any> ? DeepSafeFormState<JoinDiscriminatedUnions<TState>, TRules> : never : UnwrapRef<TRegle> extends RegleFieldStatus<infer TState, infer TRules> ? SafeFieldProperty<TState, TRules> : UnwrapRef<TRegle> extends RegleLike<infer TState extends Record<string, any>> ? TState : never;
|
|
1000
1001
|
/**
|
|
1001
1002
|
* Infer safe output from any `r$` instance
|
|
1002
1003
|
*
|
|
@@ -1282,7 +1283,7 @@ interface $InternalRegleStatus extends $InternalRegleCommonStatus {
|
|
|
1282
1283
|
/**
|
|
1283
1284
|
* @public
|
|
1284
1285
|
*/
|
|
1285
|
-
type InferRegleStatusType<TRule extends RegleCollectionRuleDecl | RegleRuleDecl | ReglePartialRuleTree<any>, TState extends Record<PropertyKey, any> = any, TKey extends PropertyKey = string, TShortcuts extends RegleShortcutDefinition = {}> = HasNamedKeys<TState> extends true ? [TState[TKey]] extends [undefined | null] ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Array<unknown> ? 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> ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Date | File ? RegleFieldStatus<Raw<TState[TKey]>, TRule, TShortcuts> : unknown extends TState[TKey] ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Record<PropertyKey, any> ? NonNullable<TState[TKey]> extends RegleStaticImpl<infer U> ? RegleFieldStatus<Raw<U>, TRule, TShortcuts> : TRule extends ReglePartialRuleTree<TState[TKey]> ? MaybeVariantStatus<TState[TKey], TRule, TShortcuts> : MaybeVariantStatus<TState[TKey], {}, TShortcuts> : RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Date | File ? RegleFieldStatus<Raw<NonNullable<TState[TKey]>>, TRule, TShortcuts> : unknown extends TState[TKey] ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Record<PropertyKey, any> ? NonNullable<TState[TKey]> extends RegleStaticImpl<infer U> ? RegleFieldStatus<Raw<U>, TRule, TShortcuts> : MaybeVariantStatus<TState[TKey], ReglePartialRuleTree<TState[TKey]>, TShortcuts> : RegleFieldStatus<TState[TKey], TRule, TShortcuts> : RegleCommonStatus<unknown>;
|
|
1286
|
+
type InferRegleStatusType<TRule extends RegleCollectionRuleDecl | RegleRuleDecl | ReglePartialRuleTree<any>, TState extends Record<PropertyKey, any> = any, TKey extends PropertyKey = string, TShortcuts extends RegleShortcutDefinition = {}> = IsAny<TState> extends true ? RegleFieldStatus<any, TRule, TShortcuts> : IsUnknown<TState> extends true ? RegleCommonStatus<unknown> : HasNamedKeys<TState> extends true ? [TState[TKey]] extends [undefined | null] ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Array<unknown> ? 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> ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Date | File ? RegleFieldStatus<Raw<TState[TKey]>, TRule, TShortcuts> : unknown extends TState[TKey] ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Record<PropertyKey, any> ? NonNullable<TState[TKey]> extends RegleStaticImpl<infer U> ? RegleFieldStatus<Raw<U>, TRule, TShortcuts> : TRule extends ReglePartialRuleTree<TState[TKey]> ? MaybeVariantStatus<TState[TKey], TRule, TShortcuts> : MaybeVariantStatus<TState[TKey], {}, TShortcuts> : RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Date | File ? RegleFieldStatus<Raw<NonNullable<TState[TKey]>>, TRule, TShortcuts> : unknown extends TState[TKey] ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Record<PropertyKey, any> ? NonNullable<TState[TKey]> extends RegleStaticImpl<infer U> ? RegleFieldStatus<Raw<U>, TRule, TShortcuts> : MaybeVariantStatus<TState[TKey], ReglePartialRuleTree<TState[TKey]>, TShortcuts> : RegleFieldStatus<TState[TKey], TRule, TShortcuts> : RegleCommonStatus<unknown>;
|
|
1286
1287
|
/**
|
|
1287
1288
|
* @internal
|
|
1288
1289
|
* @reference {@link InferRegleStatusType}
|
|
@@ -1668,18 +1669,18 @@ type InlineRuleDeclaration<TValue extends any = any, TParams extends any[] = any
|
|
|
1668
1669
|
* Regroup inline and registered rules
|
|
1669
1670
|
* */
|
|
1670
1671
|
type FormRuleDeclaration<TValue extends any = unknown, TParams extends any[] = any[], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition> = RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TMetadata extends RegleRuleMetadataDefinition = (TReturn extends Promise<infer M> ? M : TReturn), TAsync extends boolean = boolean> = RegleRuleWithParamsDefinitionInput<unknown, TValue, [param?: any], TAsync, TMetadata> | RegleRuleDefinition<unknown, TValue, TParams, TAsync, TMetadata, any, any, boolean> | RegleRuleWithParamsDefinitionInput<unknown, TValue, [param?: any, ...any[]], TAsync, TMetadata> | InlineRuleDeclaration<TValue, TParams, TReturn>;
|
|
1671
|
-
type RegleErrorTree<TState = MaybeRef<Record<string, any> | any[]>, TIssue extends boolean = false, TSchema extends boolean = false> = { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], false, TIssue, TSchema> } & {
|
|
1672
|
+
type RegleErrorTree<TState = MaybeRef<Record<string, any> | any[]>, TIssue extends boolean = false, TSchema extends boolean = false> = IsAny<TState> extends true ? any : IsUnknown<TState> extends true ? Record<string, any> : { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], false, TIssue, TSchema> } & {
|
|
1672
1673
|
readonly $self?: string[];
|
|
1673
1674
|
};
|
|
1674
|
-
type RegleIssuesTree<TState = MaybeRef<Record<string, any> | any[]>, TSchema extends boolean = false, TRules extends ReglePartialRuleTree<NonNullable<TState>> = Record<string, any>> = { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], false, true, TSchema, K extends keyof TRules ? TRules[K] extends RegleFormPropertyType<Record<string, any>> ? TRules[K] : EmptyObject : EmptyObject> } & {
|
|
1675
|
+
type RegleIssuesTree<TState = MaybeRef<Record<string, any> | any[]>, TSchema extends boolean = false, TRules extends ReglePartialRuleTree<NonNullable<TState>> = Record<string, any>> = IsAny<TState> extends true ? any : IsUnknown<TState> extends true ? Record<string, any> : { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], false, true, TSchema, K extends keyof TRules ? TRules[K] extends RegleFormPropertyType<Record<string, any>> ? TRules[K] : EmptyObject : EmptyObject> } & {
|
|
1675
1676
|
readonly $self?: RegleFieldIssue[];
|
|
1676
1677
|
};
|
|
1677
|
-
type RegleExternalErrorTree<TState = MaybeRef<Record<string, any> | any[]>, TSchema extends boolean = false> = { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], true, TSchema> } & {
|
|
1678
|
+
type RegleExternalErrorTree<TState = MaybeRef<Record<string, any> | any[]>, TSchema extends boolean = false> = IsAny<TState> extends true ? any : IsUnknown<TState> extends true ? Record<string, any> : { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], true, TSchema> } & {
|
|
1678
1679
|
readonly $self?: RegleFieldIssue[];
|
|
1679
1680
|
};
|
|
1680
|
-
type RegleExternalSchemaErrorTree<TState = MaybeRef<Record<string, any> | any[]>, TSchema extends boolean = false> = { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], true, true, TSchema> };
|
|
1681
|
+
type RegleExternalSchemaErrorTree<TState = MaybeRef<Record<string, any> | any[]>, TSchema extends boolean = false> = IsAny<TState> extends true ? any : IsUnknown<TState> extends true ? Record<string, any> : { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], true, true, TSchema> };
|
|
1681
1682
|
type ErrorMessageOrIssue<TIssue extends boolean, TRules extends RegleFormPropertyType<Record<string, any>> = EmptyObject> = TIssue extends true ? RegleFieldIssue<TRules>[] : string[];
|
|
1682
|
-
type RegleValidationErrors<TState extends Record<string, any> | any[] | unknown = never, TExternal extends boolean = false, TIssue extends boolean = false, TSchema extends boolean = false, TRules extends RegleFormPropertyType<Record<string, any>> = EmptyObject> =
|
|
1683
|
+
type RegleValidationErrors<TState extends Record<string, any> | any[] | unknown = never, TExternal extends boolean = false, TIssue extends boolean = false, TSchema extends boolean = false, TRules extends RegleFormPropertyType<Record<string, any>> = EmptyObject> = IsAny<TState> extends true ? any : IsUnknown<TState> extends true ? any : HasNamedKeys<TState> extends true ? NonNullable<TState> extends Array<infer U> ? TSchema extends false ? TExternal extends false ? RegleCollectionErrors<U, TIssue, TSchema> : RegleExternalCollectionErrors<U, TIssue, TSchema> : RegleCollectionErrors<U, TIssue, TSchema> : NonNullable<TState> extends Date | File ? ErrorMessageOrIssue<TIssue, TRules> : NonNullable<TState> extends Record<string, any> ? IsRegleStatic<NonNullable<TState>> extends true ? ErrorMessageOrIssue<TIssue, TRules> : TExternal extends false ? RegleErrorTree<TState, TIssue, TSchema> : RegleExternalErrorTree<TState, TSchema> : ErrorMessageOrIssue<TIssue, TRules> : any;
|
|
1683
1684
|
type RegleFieldIssue<TRules extends RegleFormPropertyType<unknown, Partial<ExtendedRulesDeclarations>> = EmptyObject> = {
|
|
1684
1685
|
readonly $property: string;
|
|
1685
1686
|
readonly $type?: string;
|
package/dist/regle-core.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @regle/core v1.20.0-preview.
|
|
2
|
+
* @regle/core v1.20.0-preview.3
|
|
3
3
|
* (c) 2026 Victor Garcia
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
@@ -1366,7 +1366,7 @@ function filterInspectorTree(nodes, filter) {
|
|
|
1366
1366
|
return filtered;
|
|
1367
1367
|
}
|
|
1368
1368
|
|
|
1369
|
-
var version$1 = "1.20.0-preview.
|
|
1369
|
+
var version$1 = "1.20.0-preview.3";
|
|
1370
1370
|
|
|
1371
1371
|
function createDevtools(app) {
|
|
1372
1372
|
setupDevtoolsPlugin({
|
package/dist/regle-core.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @regle/core v1.20.0-preview.
|
|
2
|
+
* @regle/core v1.20.0-preview.3
|
|
3
3
|
* (c) 2026 Victor Garcia
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import{computed as e,effectScope as t,getCurrentInstance as n,getCurrentScope as r,inject as i,isRef as a,markRaw as o,nextTick as s,onMounted as c,onScopeDispose as l,reactive as u,ref as d,shallowRef as f,toRef as p,toValue as m,triggerRef as h,unref as g,version as _,watch as v,watchEffect as y}from"vue";function b(e){return e?.constructor?.name==`File`}function x(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function S(e,t,n){if(!e)return n;var r,i;if(Array.isArray(t)&&(r=t.slice(0)),typeof t==`string`&&(r=t.split(`.`)),typeof t==`symbol`&&(r=[t]),!Array.isArray(r))throw Error(`props arg must be an array, a string or a symbol`);for(;r.length;)if(i=r.shift(),!e||!i||(e=e[i],e===void 0))return n;return e}function C(e,...t){for(var n=[].slice.call(arguments),r,i=n.length;r=n[i-1],i--;)if(!r||typeof r!=`object`&&typeof r!=`function`)throw Error(`expected object, got `+r);for(var a=n[0],o=n.slice(1),s=o.length,i=0;i<s;i++){var c=o[i];for(var l in c)a[l]=c[l]}return a}function w(e){let t={};for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n],i=n.split(`.`),a=t;for(let e=0;e<i.length;e++){let t=i[e],n=e===i.length-1,o=t.match(/^\d+$/)?Number(t):null;if(o!==null){if(Array.isArray(a))if(n)a[o]=r;else{if(typeof a[o]!=`object`||a[o]===null){let t=i[e+1];a[o]=t&&t.match(/^\d+$/)?{$each:[],$self:[]}:{}}a=`$each`in a[o]?a[o].$each:a[o]}}else if(n)if(Array.isArray(a[t])){let e=a[t].slice();a[t]={},a[t].$self=e}else typeof a[t]==`object`&&a[t]!==null&&`$each`in a[t]?a[t].$self=r:a[t]=r;else{let n=i[e+1];if(Array.isArray(a[t])){let e=a[t].slice();a[t]={$each:[]},a[t].$self=e}(typeof a[t]!=`object`||a[t]===null||Array.isArray(a[t])&&!n.match(/^\d+$/))&&(n&&n.match(/^\d+$/)?a[t]={$each:[],$self:[]}:a[t]={}),a=`$each`in a[t]?a[t].$each:a[t]}}}return t}function T(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function E(e,t,n,r=!1){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})}function D(e){return typeof e==`function`&&!!e.prototype&&`constructor`in e.prototype&&e.prototype.constructor===e}function O(e,t=!0,n=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):b(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:x(e)?e==null?!0:n?Object.keys(e).length===0:!1:!String(e).length}const k=Symbol(`regle-rule`);function A(e){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 j(e,t=0){if(t>20)return e;let n=e,r={}.toString.call(e).slice(8,-1);if(r==`Set`&&(n=new Set([...e].map(e=>j(e,t++)))),r==`Map`&&(n=new Map([...e].map(e=>[j(e[0]),j(e[1])]))),r==`Date`&&(n=new Date(e.getTime())),r==`RegExp`&&(n=RegExp(e.source,A(e))),r==`Array`||r==`Object`){n=Array.isArray(e)?[]:{};for(let r in e)n[r]=j(e[r],t++)}return n}function M(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]`||typeof e==`string`||t===`[object String]`?new Date(e):new Date(NaN)}function N(e,t,{immediate:n=!1,trackDebounceRef:r}={}){let i,a=(...a)=>{r&&(r.value=!0);function o(){r&&(r.value=!1)}return new Promise((r,s)=>{function c(e){r(e),o()}if(clearTimeout(i),i=setTimeout(()=>{if(o(),i=void 0,!n)try{Promise.resolve(e.apply(this,[...a])).then(c).catch(e=>s(e)).finally(o)}catch(e){s(e)}},t),n){o();try{Promise.resolve(e.apply(this,[...a])).then(c).catch(e=>s(e)).finally(o)}catch(e){s(e)}}})};return a.cancel=()=>{clearTimeout(i),i=void 0,r&&(r.value=!1)},a}function ee(e,t,n=!1,r=!0){if(e===t)return!0;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(e.constructor!==t.constructor)return!1;var i,a,o;if(Array.isArray(e)&&Array.isArray(t)){if(i=e.length,i!=t.length)return!1;if(r||!r&&n){for(a=i;a--!==0;)if(!ee(e[a],t[a],n,!1))return!1}return!0}if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(o=Object.keys(e),i=o.length,i!==Object.keys(t).length)return!1;for(a=i;a--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[a]))return!1;for(a=i;a--!==0;){var s=o[a];if(x(e)&&x(t)&&s&&(r||!r&&n)&&!ee(e[s],t[s],n,!1))return!1}return!0}return e!==e&&t!==t}var P=class extends Error{constructor(e=`Promise was aborted`){super(e),this.name=`AbortError`}};function F(e){let t=new AbortController,{signal:n}=t,r=new Promise((t,r)=>{function i(){r(new P)}n.addEventListener(`abort`,i),e.then(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new P):t(e)}).catch(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new P):r(e)})});function i(e){t.abort(e)}return{promise:r,abort:i,signal:n}}function I(e,t){if(!a(e))return u(e);let n=d(!1);return c(async()=>{await s(),typeof window<`u`&&window.requestAnimationFrame(()=>{n.value=!0})}),u(new Proxy({},{get(r,i,a){if(t.value&&i!==`$value`&&n.value)return Reflect.get(r,i,a);if(e.value!==void 0)return g(Reflect.get(e.value,i,a))},set(t,n,r){return a(e.value[n])&&!a(r)?e.value[n].value=r:e.value[n]=r,!0},deleteProperty(t,n){return Reflect.deleteProperty(e.value,n)},has(t,n){return e.value===void 0?!1:Reflect.has(e.value,n)},ownKeys(){return e.value===void 0?[]:Object.keys(e.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}}))}const L={Inline:`__inline`,Async:`__async`};function R(e){try{return e.map(e=>m(e))}catch{return[]}}function z(t){return t.map(t=>t instanceof Function?e(t):a(t)?t:p(()=>t))}function B(e){let t=e.toString().replace(/\/\/.*$/gm,``).replace(/\/\*[\s\S]*?\*\//g,``).match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return t?(t[0]||t[1]||t[2]||t[3]||t[4]||``).split(`,`).map(e=>e.trim()).filter(e=>e.length>0).length:0}function V(e,...t){let{validator:n,type:r,async:i}=e,a=i||r===L.Async||n.constructor.name===`AsyncFunction`;return o({validator(n,...r){return e.validator(n,...R(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:R(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:R(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:R(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...R(t)),i;return r instanceof Promise?r.then(e=>(i=e,typeof i==`object`&&`$valid`in i?i.$valid:typeof i==`boolean`?i:!1)):(i=r,typeof i==`object`&&`$valid`in i?i.$valid:typeof i==`boolean`?i:!1)},type:r,_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:a,_params:z(t),_brand:k})}function H(e){if(typeof e.validator==`function`){let t=[],n=e.async??e.validator.constructor.name===`AsyncFunction`,r=V({...e,async:n},...t);if(B(e.validator)>1){let t=function(...t){return V(e,...t)};return t.validator=r.validator,t.message=r.message,t.active=r.active,t.tooltip=r.tooltip,t.type=r.type,t.exec=r.exec,t._validator=r.validator,t._message=r.message,t._active=r.active,t._tooltip=r.tooltip,t._type=e.type,t._message_pacthed=!1,t._tooltip_pacthed=!1,t._async=n,t}else return r}throw Error(`[createRule] validator must be a function`)}const U=Symbol.for(`regle:instance`);function W(e){return typeof e==`object`&&!!e&&U in e}function G(e){return x(e.value)}function te(e,n,r){let i=t(),a;return a=e instanceof Function?i.run(()=>e(n,r??0)):e,{scope:i,unwrapped:a}}const K={LessThan:-1,EqualTo:0,GreaterThan:1};function q(e,t){let n=String(e).split(`.`),r=String(t).split(`.`);for(let e=0;e<Math.min(n.length,r.length);e++){let t=Number(n[e]),i=Number(r[e]);if(t>i)return K.GreaterThan;if(i>t)return K.LessThan;if(!isNaN(t)&&isNaN(i))return K.GreaterThan;if(isNaN(t)&&!isNaN(i))return K.LessThan}return K.EqualTo}const J=q(_,`3.5.0`)!==-1;function Y(){return Math.floor(Math.random()*Date.now()).toString()}function X(){return typeof window>`u`?Y():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function ne(e){return r()?(l(e),!0):!1}function re(e){let n=!1,r,i=t(!0);return((...t)=>(n||=(r=i.run(()=>e(...t)),!0),r))}function ie(e,t){return e.some(e=>t?e?.[t]:!1)}function ae(e,t){return t?e.reduce((e,n)=>{let r=n?.[t]||[];return e.concat(r)},[]):[]}const oe=Symbol(`regle`),Z=Symbol(`regle-config`),Q={REGLE_STATIC:`__regle_static`};function se(e,t){return!de(e.value)&&(G(e)||x(t.value)&&!O(t.value)&&!Object.entries(t.value).some(([e,t])=>$(t)||typeof t==`function`))}function ce(e,t){return!!e.value&&x(e.value)&&`$each`in e.value||Array.isArray(t.value)}function le(e){return!!e.value&&(x(e.value)||G(e.value))}function $(e){return(x(e)||typeof e==`function`)&&`_validator`in e}function ue(e){return typeof e.value==`function`?`_validator`in e.value:!0}function de(e){return x(e)&&T(e,Q.REGLE_STATIC)&&e[Q.REGLE_STATIC]===!0}function fe(e){return x(e)&&`$fields`in e}function pe(e){return!!e&&`$rules`in e}var me=`1.20.0-preview.1`;function he(){let e=f(new Map),t=f(new Map),n=f(new Map),i=f(new Map),a=f(new Map),o=f(new Map),s=f(new Map);function c(e){let n=t.value.get(e);if(n)return n;{let n=d({});return t.value.set(e,n),n}}function u(e){let t=n.value.get(e);if(t)return t;{let t=d([]);return n.value.set(e,t),t}}function p(e,t){o.value.set(e,t)}function m(e){return o.value.get(e)}function h(e,t,n){s.value.set(`${e}-${t}`,n)}function g(e,t){return s.value.get(`${e}-${t}`)}function _(e,t){e&&t!=null&&s.value.delete(`${e}-${t}`)}function v(e,t){i.value.set(e,t)}function y(e){return i.value.get(e)??!1}function b(t,n){e.value.set(t,n)}function x(t,n){let r=e.value.get(t);if(r)return S(n,r)?{valid:!0}:{valid:!1}}function S(e,t){let n=Object.keys(t),r=Object.keys(e);return r.length!==n.length||!r.every(e=>n.includes(e))?!1:r.every(n=>{let r=e[n],i=t[n];if(!i||!r||typeof r==`function`||typeof i==`function`||typeof r==`number`||typeof r==`boolean`||typeof r==`string`)return!1;if(`_params`in r){if(!r._params)return!0;if(Array.isArray(r._params))return r._params?.every((e,t)=>{if(typeof i==`number`||typeof i==`boolean`||typeof i==`string`)return!0;{let e=R(`_params`in i&&Array.isArray(i._params)?i._params:[]),n=R(r._params);return e?.[t]===n?.[t]}})}})}function C(e){let t=a.value.get(e);if(t)return t;{let t=d(!1),n=d(!0),r=d({}),i=d(!1);return a.value.set(e,{$pending:t,$valid:n,$metadata:r,$validating:i}),{$pending:t,$valid:n,$metadata:r,$validating:i}}}return r()&&l(()=>{e.value.clear(),t.value.clear(),n.value.clear(),i.value.clear(),a.value.clear(),s.value.clear()}),{addRuleDeclEntry:b,setDirtyEntry:v,checkRuleDeclEntry:x,getDirtyState:y,trySetRuleStatusRef:C,getFieldsEntry:c,getCollectionsEntry:u,getArrayStatus:g,addArrayStatus:h,deleteArrayStatus:_,arrayStatusStorage:s,addAdditionalRulesEntry:p,getAdditionalRulesEntry:m}}function ge({field:e,silent:t=!1}){let n=Object.entries(e.$rules??{}).map(([n,r])=>{let i=``;if(t&&!r.$valid)i=r.$message;else if(!r.$valid&&e.$error&&!r.$validating)i=r.$message;else return null;return{$message:i,$property:e.fieldName,$rule:n,$type:r.$type,...typeof r.$metadata==`object`?r.$metadata:{}}}).filter(e=>!!e).reduce((e,t)=>(typeof t.$message==`string`?e.push(t):e.push(...t.$message.map(e=>({...t,$message:e}))),e),[]),r=e.$error&&e.$externalErrors?e.$externalErrors.map(t=>({$message:t,$property:e.fieldName,$rule:`external`,$type:void 0})):[],i=[];return e.$schemaErrors&&e.$error&&(i=!Array.isArray(e.$schemaErrors)&&`$self`in e.$schemaErrors?e.$schemaErrors.$self??[]:e.$schemaErrors??[]),[...n,...r,...i]}function _e({field:e}){let t=[];for(let n of Object.values(e.$rules??{})){let e=n.$tooltip;e&&(typeof e==`string`?t.push(e):t.push(...e))}return t}function ve(e){return x(e)&&`$each`in e}function ye(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!x(e)))return e;if(ve(e)){let t=n?e.$self?.map(e=>({message:e,path:[]}))??[]:e.$self??[],r=e.$each?.map(e=>be(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>be(t,n,[e])).flat()}function be(e,t=!1,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(e=>!x(e)))return t?e.map(e=>({message:e,path:r??[]})):e;if(ve(e)){let n=r?.length?e.$self?.map(e=>({message:e,path:r??[]}))??[]:e.$self??[],i=e.$each?.map((e,n)=>be(e,t,r?.concat(n)))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>be(n,t,r?.concat(e))).flat()}function xe({customMessages:n,rule:r,ruleKey:i,state:a,path:o,cachePath:s,storage:c,modifiers:l}){let f=t(),p={},m,h=e(()=>$(r.value)&&r.value._async),g=d(!1),{$pending:_,$valid:y,$metadata:b,$validating:x}=c.trySetRuleStatusRef(`${s}.${i}`);function S(){f=t(),p=f.run(()=>{let t=d(!1),s=d(!1),c=d(!0),l=d(!1),u=d(!1),f=e(()=>({$value:a.value,$error:s.value,$dirty:t.value,$pending:l.value,$correct:u.value,$invalid:c.value,$rule:{$valid:y.value,$invalid:!y.value,$pending:_.value},$params:S.value,...b.value})),p=e(()=>{try{return ue(r)?typeof r.value.active==`function`?r.value.active(f.value):!!r.value.active:!0}catch(e){return console.error(`Error in "active" function for "${o}.${i}" rule`,{cause:e}),!0}});function m(e){try{let t=``,a=n?n[i]?.[e]:void 0;if(a&&(t=typeof a==`function`?a(f.value):a),ue(r)){let n=`_${e}_patched`;a&&!r.value[n]||(t=typeof r.value[e]==`function`?r.value[e](f.value):r.value[e]??``)}return t}catch(t){return console.error(`Error in "${e}" function for "${o}.${i}" rule`,{cause:t}),``}}let h=e(()=>{let e=m(`message`);return O(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),v=e(()=>ue(r)&&r.value.type?r.value.type:i),x=e(()=>ue(r)?r.value.validator:r.value),S=e(()=>typeof r.value==`function`?[]:R(r.value._params??[]));return{$active:p,$message:h,$type:v,$validator:x,$params:S,$path:e(()=>`${o}.${i}`),$tooltip:g,$fieldCorrect:u,$fieldError:s,$fieldDirty:t,$fieldPending:l,$fieldInvalid:c}}),m=v(p?.$params,()=>{(!l.$silent.value||l.$rewardEarly.value&&p.$fieldError.value)&&E()},{deep:J?1:!0})}S();function C(){y.value=!0,p.$fieldDirty.value&&(_.value=!0)}async function w(){let e=!1;try{let t=p.$validator.value;if(typeof t!=`function`)return console.error(`${o}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let n=t(a.value,...p.$params.value),r=a.value;C();let i;if(i=n instanceof Promise?await n:n,a.value!==r)return!0;if(typeof i==`boolean`)e=i;else{let{$valid:t,...n}=i;e=t,b.value=n}}catch{e=!1}finally{_.value=!1}return e}function T(e,t=!0){if($(r.value)&&r.value._async)return!0;let n=e(a.value,...p.$params.value);if(n instanceof Promise)return!0;if(n!=null){if(typeof n==`boolean`)return n;{let{$valid:e,...t}=n;return b.value=t,e}}return!0}async function E(){try{x.value=!0;let e=!1;if(g.value=!0,$(r.value)&&r.value._async)e=await w();else{let t=p.$validator.value;e=T(t)}return y.value=e,e}catch{return!1}finally{x.value=!1,g.value=!1}}function D(){try{return x.value=!0,T(p.$validator.value)}catch{return!1}finally{x.value=!1}}function k(){y.value=!0,b.value={},_.value=!1,x.value=!1,S()}function A(){m(),f.stop(),f=t()}return u({...p,$pending:_,$valid:y,$metadata:b,$haveAsync:h,$maybePending:g,$validating:x,$parse:E,$parseSync:D,$unwatch:A,$watch:S,$reset:k})}function Se(e){return{"~standard":{version:1,vendor:`regle`,validate:async t=>{let{valid:n,data:r,errors:i}=await e(t,!0);return n?{value:r,issues:[]}:{issues:ye(i,{includePath:!0})}}}}}function Ce({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,fieldName:c,storage:l,options:f,externalErrors:h,schemaErrors:g,schemaMode:_,onUnwatch:b,$isArray:S,initialState:C,originalState:w,shortcuts:T,overrides:E,onValidate:D}){let k=t(),A,P=[],I,L,R,z,B=()=>{},V,H=()=>{},U=d(!1),W=d(l.getAdditionalRulesEntry(o)??{});function G(e){W.value=e??{},l.addAdditionalRulesEntry(o,e??{}),K(),B()}function te(e){G(e)}function K(){let e={...r.value,...W.value},t=[];for(let r in e){if(r.startsWith(`$`)||r.startsWith(`~`))continue;let s=e[r];if(!s)continue;let c=p(()=>s);t.push([r,xe({modifiers:{$silent:A.$silent,$rewardEarly:A.$rewardEarly},customMessages:i,rule:c,ruleKey:r,state:n,path:a,cachePath:o,storage:l,$debounce:Q.value.$debounce})])}Z.value=Object.fromEntries(t),l.addRuleDeclEntry(o,e)}function q(){let e={...r.value,...W.value},t=l.checkRuleDeclEntry(o,e),n={};for(let t in e)t.startsWith(`$`)&&(n[t]=e[t]);return Q.value=n,t}function Y(){let e=q();ie(),K(),A.processShortcuts(),X(),ne(),e?.valid!=null&&(A.$dirty.value=l.getDirtyState(o),(A.$dirty.value&&!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&B()),l.addRuleDeclEntry(o,r.value)}function X(){B=A.$debounce.value>0?N(oe,A.$debounce.value,{trackDebounceRef:U}):oe}function ne(){H=A.$debounce.value>0?N(()=>{A.$dirty.value=!0},A.$debounce.value):()=>{A.$dirty.value=!0}}function re(){if(Z.value)for(let e of Object.values(Z.value))e.$unwatch();L(),z?.(),A.$dirty.value&&l.setDirtyEntry(o,A.$dirty.value),I?.(),k.stop(),k=t();for(let e of P)e.stop();P=[],b?.(),R?.()}function ie(){if(Z.value)for(let e of Object.values(Z.value))e.$watch();A=k.run(()=>{let r=d(!1),i=d(!1),a=e(()=>r.value),o=e(()=>S||de(n.value)),s=e(()=>Q.value.$debounce==null?A.$haveAnyAsyncRule.value?200:0:Q.value.$debounce),l=e(()=>Q.value.$deepCompare==null?!1:Q.value.$deepCompare),p=e(()=>Q.value.$lazy==null?m(f.lazy)==null?!1:m(f.lazy)===!0:Q.value.$lazy),v=e(()=>Q.value.$immediateDirty==null?m(f.immediateDirty)==null?!1:m(f.immediateDirty)===!0:Q.value.$immediateDirty),b=e(()=>Q.value.$rewardEarly==null?m(f.rewardEarly)==null?!1:m(f.rewardEarly)===!0:!!Q.value.$rewardEarly),x=e(()=>Q.value.$clearExternalErrorsOnChange==null?m(f.clearExternalErrorsOnChange)==null?!D.value:m(f.clearExternalErrorsOnChange)===!0:!!Q.value.$clearExternalErrorsOnChange),w=e(()=>Q.value.$clearExternalErrorsOnValidate==null?m(f.clearExternalErrorsOnValidate)==null?!1:m(f.clearExternalErrorsOnValidate)===!0:!!Q.value.$clearExternalErrorsOnValidate),D=e(()=>b.value?!0:Q.value.$silent==null?m(f.silent)==null?!1:m(f.silent)===!0:Q.value.$silent),k=e(()=>Q.value.$autoDirty==null?m(f.autoDirty)==null?!0:m(f.autoDirty)===!0:Q.value.$autoDirty),j=e(()=>{if(Q.value.$isEdited!=null)return Q.value.$isEdited;if(E?.isEdited!=null)return E.isEdited}),N=e(()=>{for(let e of Object.values(Z.value))if(e.$validating)return!0;return!1}),F=e({get:()=>n.value,set(e){I(),n.value=e,ae()}}),L=e(()=>U.value?J.value&&r.value:J.value&&!q.value&&r.value),R=e(()=>ge({field:{$rules:Z.value,$error:L.value,$externalErrors:h?.value,$schemaErrors:g?.value,fieldName:Y.value}})),z=e(()=>ge({field:{$rules:Z.value,$error:L.value,$externalErrors:h?.value,$schemaErrors:g?.value,fieldName:Y.value},silent:!0})),B=e(()=>R.value.map(e=>e.$message)),V=e(()=>z.value.map(e=>e.$message)),H=d(!1);function W(e,t){return t instanceof Date&&e instanceof Date?M(t).getDate()!==M(e).getDate():t==null?!!e:Array.isArray(e)&&Array.isArray(t)?!ee(e,t,Q.value.$deepCompare):t!==e}y(()=>{r.value?j.value?H.value=j.value(n.value,C.value,W):H.value=W(n.value,C.value):H.value=!1});let G=e(()=>H.value),te=e(()=>_e({field:{$rules:Z.value}})),K=e(()=>!(J.value||q.value)),q=e(()=>i.value||!b.value?Object.entries(Z.value).some(([e,t])=>t.$pending):!1),J=e(()=>h?.value?.length||g?.value?.length?!0:X.value?!1:Object.values(Z.value).some(e=>!e.$valid||e.$maybePending)),Y=e(()=>c??f.id??`root`),X=e(()=>!_&&!Object.keys(Z.value).some(e=>!e.startsWith(`$`))),ne=e(()=>{if(h?.value?.length||X.value||U.value)return!1;if(r.value&&!O(n.value)&&!N.value&&!q.value){if(_)return!g?.value?.length;{let e=Object.values(Z.value);for(let t of e)if(t.$active&&!t.$valid)return!1;return e.some(e=>e.$active)}}return!1}),re=e(()=>Object.values(Z.value).some(e=>e.$haveAsync)),ie=e(()=>({$debounce:s.value,$lazy:p.value,$rewardEarly:b.value,$autoDirty:k.value,$silent:D.value,$clearExternalErrorsOnChange:x.value,$clearExternalErrorsOnValidate:w.value,$immediateDirty:v.value,$isEdited:j.value,$disabled:m(f.disabled)??!1}));function oe(){T?.fields&&Object.entries(T.fields).forEach(([e,i])=>{let o=t();se[e]=o.run(()=>{let e=d();return y(()=>{e.value=i(u({$dirty:r,$externalErrors:h?.value??[],$value:n,$silentValue:F,$rules:Z,$error:L,$pending:q,$invalid:J,$correct:ne,$errors:B,$ready:K,$silentErrors:V,$anyDirty:a,$tooltips:te,$name:Y,$inactive:X,$edited:H,$anyEdited:G}))}),e}),P.push(o)})}let se={};return{$error:L,$pending:q,$invalid:J,$correct:ne,$debounce:s,$deepCompare:l,$lazy:p,$immediateDirty:v,$ready:K,$issues:R,$silentIssues:z,$errors:B,$silentErrors:V,$rewardEarly:b,$autoDirty:k,$silent:D,$clearExternalErrorsOnChange:x,$clearExternalErrorsOnValidate:w,$anyDirty:a,$edited:H,$anyEdited:G,$name:Y,$haveAnyAsyncRule:re,$shortcuts:se,$validating:N,$tooltips:te,$dirty:r,processShortcuts:oe,$silentValue:F,$inactive:X,$modifiers:ie,$isArrayOrRegleStatic:o}}),ae(),L=v(A.$dirty,e=>{l.setDirtyEntry(o,e),Object.values(Z.value).forEach(t=>{t.$fieldDirty=e})}),z=v([A.$error,A.$correct,A.$invalid,A.$pending],()=>{Object.values(Z.value).forEach(e=>{e.$fieldError=A.$error.value,e.$fieldInvalid=A.$invalid.value,e.$fieldPending=A.$pending.value,e.$fieldCorrect=A.$correct.value})}),R=v(A.$haveAnyAsyncRule,X)}function ae(){I=v(n,()=>{A.$autoDirty.value&&!A.$silent.value&&(A.$dirty.value||H()),r.value instanceof Function&&Y(),(!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&B(),A.$clearExternalErrorsOnChange.value&&he()},{deep:A.$isArrayOrRegleStatic.value?!0:J?1:!0})}async function oe(){try{let{promise:e}=le(Promise.allSettled(Object.values(Z.value).map(e=>e.$parse())));await e}catch{}}let Z=d({}),Q=d({});Y();function se(e,t){if(ce(),he(),A.$dirty.value=!1,l.setDirtyEntry(o,!1),!t)if(e?.toOriginalState)n.value=j(w),C.value=j(w);else if(e?.toInitialState)n.value=j(C.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,C.value=j(t),n.value=j(t)}else C.value=x(n.value)&&!de(n.value)?j(n.value):Array.isArray(n.value)?[...n.value]:n.value;if(e?.clearExternalErrors&&he(),!t&&!e?.keepValidationState)for(let e of Object.values(Z.value))e.$reset();if(!A.$lazy.value&&!A.$silent.value&&!t)for(let e of Object.values(Z.value))e.$parse()}function ce(){`cancel`in B&&B.cancel()}function le(e){return V&&V.abort(),V=F(e),V}function $(){ce(),V&&V.abort()}function ue(e=!0,t=!1){A.$dirty.value||H(),t&&e?(!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&(ce(),B()):e&&(ce(),B())}async function fe(e){try{if(e&&(n.value=e),_)return D?(ue(!1),D()):{valid:!1,data:n.value,errors:A.$errors.value,issues:A.$issues.value};let t=n.value;if(A.$dirty.value||(A.$dirty.value=!0),O(Z.value))return{valid:!0,data:t,errors:A.$errors.value,issues:A.$issues.value};$();let{promise:r}=le(Promise.allSettled(Object.values(Z.value).map(e=>e.$parse()))),i=await r;return await s(),{valid:i.every(e=>e.status===`fulfilled`&&e.value===!0),data:t,errors:A.$errors.value,issues:A.$issues.value}}catch{return{valid:!1,data:n.value,errors:A.$errors.value,issues:A.$issues.value}}}function pe(e){try{return e&&(n.value=e),A.$dirty.value||(A.$dirty.value=!0),_?!1:Object.values(Z.value).map(e=>e.$parseSync()).every(e=>!!e)}catch{return!1}}function me(e=!0){return A.$dirty.value?n.value:e?{_null:!0}:null}function he(){h?.value?.length&&(h.value=[])}!A.$lazy.value&&!A.$dirty.value&&!A.$silent.value&&oe(),A.$immediateDirty.value&&(A.$dirty.value=!0);let{$shortcuts:ve,$validating:ye,$autoDirty:be,$rewardEarly:Ce,$clearExternalErrorsOnChange:we,$clearExternalErrorsOnValidate:Te,$haveAnyAsyncRule:Ee,$debounce:De,$lazy:Oe,...ke}=A,Ae=u({...ke,$externalErrors:h,$value:n,$initialValue:C,$originalValue:w,$rules:Z,...ve,$path:a,$isDebouncing:U,$reset:se,$touch:ue,$validate:fe,$validateSync:pe,$unwatch:re,$watch:ie,$extractDirtyFields:me,$clearExternalErrors:he,$abort:$,$addRules:G,addRules:te,$schemaMode:_,"~modifiers":A.$modifiers,...Se(fe)});return Object.defineProperty(Ae,Symbol.for(`regle:instance`),{value:!0}),Ae}function we({$id:t,path:n,cachePath:r,index:i,options:a,storage:o,stateValue:s,customMessages:c,rules:l,externalErrors:u,schemaErrors:d,initialState:f,originalState:m,shortcuts:h,fieldName:g,schemaMode:_,overrides:v}){let y=s.value?.$id??l.$key??X(),b=`${r}.${String(y)}`,S=`${n}.${i}`;typeof s.value==`object`&&s.value!=null&&(s.value.$id||Object.defineProperties(s.value,{$id:{value:y,enumerable:!1,configurable:!1,writable:!1}}));let C=p(u?.value??[],i),w=e(()=>d?.value?.[i]),T=De({index:i,state:s,rulesDef:p(()=>l),customMessages:c,path:S,cachePath:b,storage:o,options:a,externalErrors:C,schemaErrors:w,initialState:f,originalState:m,shortcuts:h,fieldName:g,schemaMode:_,overrides:v});return T&&(T.$id=s.value?.$id??String(y),o.addArrayStatus(t,T.$id,T)),s.value&&(!x(s.value)||de(s.value))&&_&&T?.$touch(),T}function Te({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,storage:s,options:c,externalErrors:l,schemaErrors:f,schemaMode:h,initialState:g,originalState:_,shortcuts:b,fieldName:x,overrides:S}){let C=t(),w,T=t(),E,D=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let k=d(),A=d(n.value),M=d({}),N,ee,P=d({}),F=s.getCollectionsEntry(a);E=T.run(()=>({isPrimitiveArray:e(()=>n.value?.length?Array.isArray(n.value)&&n.value.length?n.value.every(e=>typeof e!=`object`):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(e=>$(e)||typeof e==`function`):!1:!1)})),I(),B();function I(){M.value=Object.fromEntries(Object.entries(r.value).filter(([e])=>e.startsWith(`$`))),typeof n.value==`object`&&(n.value!=null&&!n.value?.$id&&n.value!==null?(k.value=X(),Object.defineProperties(n.value,{$id:{value:k.value,enumerable:!1,configurable:!1,writable:!1}})):n.value?.$id&&(k.value=n.value.$id)),A.value=P.value.$value,Array.isArray(n.value)&&(!E.isPrimitiveArray.value||h)?F.value=n.value.map((t,n)=>{let{scope:u,unwrapped:d}=te(r.value.$each,p(()=>t),n);u&&D.push(u);let m=p(g.value??[],n),v=p(l?.value??{},`$each`),y=e(()=>f?.value?.$each);return we({$id:k.value,path:a,cachePath:o,customMessages:i,rules:d??{},stateValue:p(()=>t),index:n,options:c,storage:s,externalErrors:v,schemaErrors:y,initialState:m,originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S})||null}).filter(e=>!!e):F.value=[],P.value=Ce({state:n,rulesDef:r,customMessages:i,path:a,cachePath:a,storage:s,options:c,externalErrors:p(l?.value??{},`$self`),schemaErrors:e(()=>f?.value?.$self),$isArray:!0,initialState:g,originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S})}function L(){if(Array.isArray(n.value)&&(!E.isPrimitiveArray.value||h)){let t=j(F.value);F.value=n.value.map((t,n)=>{let o=p(()=>t);if(t.$id&&F.value.find(e=>e.$id===t.$id)){let e=s.getArrayStatus(k.value,t.$id);return e?(e.$value=o,e):null}else{let{scope:t,unwrapped:u}=te(r.value.$each,o,n);t&&D.push(t);let d=p(l?.value??{},`$each`),m=e(()=>f?.value?.$each??[]);return we({$id:k.value,path:a,cachePath:a,customMessages:i,rules:u??{},stateValue:o,index:n,options:c,storage:s,externalErrors:d,schemaErrors:m,initialState:p(g.value??[],n),originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S})||null}}).filter(e=>!!e),t.filter(e=>!n.value?.find(t=>e.$id===t.$id)).forEach((e,t)=>{s.deleteArrayStatus(k.value,t.toString())})}else F.value=[]}function R(){N=v(n,()=>{ee?.(),n.value!=null&&!Object.hasOwn(n.value,`$id`)&&!k.value?I():L(),z()},{deep:J?1:!0,flush:`pre`}),z()}function z(){ee=v(n,()=>{w.$autoDirty.value&&!w.$silent.value&&P.value.$touch(!1,!0)},{flush:`post`})}function B(){R(),C=t(),w=C.run(()=>{let r=e({get:()=>n.value,set(e){N?.(),ee?.(),n.value=e,R()}}),i=e(()=>P.value.$dirty&&(!F.value.length||F.value.every(e=>e.$dirty))),o=e(()=>P.value.$anyDirty||F.value.some(e=>e.$anyDirty)),s=e(()=>P.value.$invalid||F.value.some(e=>e.$invalid)),l=e(()=>(h?P.value.$correct:O(P.value.$rules)?!0:P.value.$correct)&&(!F.value.length||F.value.every(e=>e.$correct||e.$anyDirty&&!e.$invalid))),f=e(()=>P.value.$error||F.value.some(e=>e.$error)),p=e(()=>!(s.value||v.value)),v=e(()=>P.value.$pending||F.value.some(e=>e.$pending)),C=e(()=>!!F.value.length&&F.value.every(e=>e.$edited)),w=e(()=>P.value.$anyEdited||F.value.some(e=>e.$anyEdited)),T=e(()=>({$self:P.value.$issues,$each:F.value.map(e=>e.$issues)})),E=e(()=>({$self:P.value.$errors,$each:F.value.map(e=>e.$errors)})),k=e(()=>({$self:P.value.$silentErrors,$each:F.value.map(e=>e.$silentErrors)})),A=e(()=>M.value.$rewardEarly==null?m(c.rewardEarly)==null?!1:m(c.rewardEarly)===!0:M.value.$rewardEarly),j=e(()=>A.value?!0:M.value.$silent==null?m(c.silent)==null?!1:m(c.silent)===!0:M.value.$silent),I=e(()=>M.value.$autoDirty==null?m(c.autoDirty)==null?!0:m(c.autoDirty)===!0:M.value.$autoDirty),L=e(()=>M.value.$immediateDirty==null?m(c.immediateDirty)==null?!1:m(c.immediateDirty)===!0:M.value.$immediateDirty),z=e(()=>M.value.$clearExternalErrorsOnChange==null?m(c.clearExternalErrorsOnChange)==null?!0:m(c.clearExternalErrorsOnChange)===!0:M.value.$clearExternalErrorsOnChange),B=e(()=>M.value.$clearExternalErrorsOnValidate==null?m(c.clearExternalErrorsOnValidate)==null?!1:m(c.clearExternalErrorsOnValidate)===!0:M.value.$clearExternalErrorsOnValidate),V=e(()=>{if(M.value.$isEdited!=null)return M.value.$isEdited;if(S?.isEdited!=null)return S.isEdited}),H=e(()=>x??c.id??`root`),U=e(()=>({$deepCompare:M.value.$deepCompare??!1,$debounce:M.value.$debounce??0,$lazy:M.value.$lazy??!1,$rewardEarly:A.value,$autoDirty:I.value,$silent:j.value,$clearExternalErrorsOnChange:z.value,$clearExternalErrorsOnValidate:B.value,$immediateDirty:L.value,$isEdited:V.value,$disabled:m(c.disabled)??!1}));function W(){b?.collections&&Object.entries(b?.collections).forEach(([e,c])=>{let m=t();G[e]=m.run(()=>{let e=d();return y(()=>{e.value=c(u({$dirty:i,$error:f,$path:a,$silentValue:r,$pending:v,$invalid:s,$correct:l,$errors:E,$silentErrors:k,$initialValue:g,$originalValue:_,$ready:p,$anyDirty:o,$name:H,$each:F,$self:P,$value:n,$edited:C,$anyEdited:w,$issues:T}))}),e}),D.push(m)})}let G={};return W(),{$dirty:i,$anyDirty:o,$invalid:s,$correct:l,$error:f,$pending:v,$errors:E,$silentErrors:k,$ready:p,$name:H,$shortcuts:G,$silentValue:r,$edited:C,$anyEdited:w,$rewardEarly:A,$silent:j,$autoDirty:I,$issues:T,$modifiers:U}}),E.isPrimitiveArray.value&&r.value.$each&&console.warn(`${a} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`)}function V(){N?.(),P.value&&P.value.$unwatch(),F.value&&F.value.forEach(e=>{`$dirty`in e&&e.$unwatch()}),C.stop(),C=t(),T.stop(),T=t(!0),D.forEach(e=>e.stop()),D=[]}function H(e=!0,t=!1){P.value.$touch(e,t),F.value.forEach(n=>{n.$touch(e,t)})}function U(e,t){if(V(),!t)if(e?.toOriginalState)n.value=j(_),g.value=j(_);else if(e?.toInitialState)n.value=j(g.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,g.value=j(t),n.value=j(t)}else g.value=j(n.value);e?.clearExternalErrors&&q(),e?.keepValidationState||(P.value.$reset(e,t),F.value.forEach(t=>{t.$reset(e,!0)})),t||I()}function W(){P.value.$abort(),F.value.forEach(e=>{e.$abort()})}async function G(e){e&&(n.value=e);let t=n.value;try{return W(),{valid:(await Promise.allSettled([P.value.$validate(e),...F.value.map(e=>e.$validate())])).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:t,errors:w.$errors.value,issues:w.$issues.value}}catch{return{valid:!1,data:t,errors:w.$errors.value,issues:w.$issues.value}}}function K(e){e&&(n.value=e);try{return[P.value.$validateSync(e),...F.value.map(e=>e.$validateSync())].every(e=>!!e)}catch{return!1}}function q(){P.value.$clearExternalErrors(),F.value.forEach(e=>{e.$clearExternalErrors()})}function Y(e=!0){let t=F.value.map(t=>{if(fe(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>O(e))&&(t=[]),t}let{$shortcuts:ne,...re}=w;return u({$self:P,...re,...ne,$path:a,$each:F,$value:n,$initialValue:g,$originalValue:_,$validate:G,$validateSync:K,$unwatch:V,$watch:B,$touch:H,$reset:U,$abort:W,$extractDirtyFields:Y,$clearExternalErrors:q,"~modifiers":w.$modifiers,...Se(G)})}function Ee({rulesDef:n,state:r,path:i=``,cachePath:a,rootRules:o,externalErrors:s,schemaErrors:c,rootSchemaErrors:l,validationGroups:f,initialState:h,originalState:_,fieldName:b,...S}){let C=t(),w,T=[],E=null,D=null,k=null,A=null,M=d(void 0);async function N(t=!0){let o=Object.entries(n.value).filter(([e])=>e!==`$self`),l=Object.fromEntries(o.reduce((t,[n,o])=>{if(!o)return t;let l=p(r.value??{},n),u=p(()=>o),d=p(s?.value??{},n),f=e(()=>c?.value?.[n]),m=p(h?.value??{},n);return t.push([n,De({state:l,rulesDef:u,path:i?`${i}.${n}`:n,cachePath:a?`${a}.${n}`:n,externalErrors:d,schemaErrors:f,initialState:m,originalState:_?.[n],fieldName:n,...S})]),t},[])),u=Object.fromEntries(Object.entries(m(s)??{}).filter(([e,t])=>!(e in n.value)&&!!t).map(([t])=>{let n=p(r.value??{},t),o=p(s?.value??{},t),l=e(()=>c?.value?.[t]),u=p(h?.value??{},t),d=i?`${i}.${t}`:t,f=a?`${a}.${t}`:t;return[t,De({state:n,rulesDef:e(()=>({})),path:d,cachePath:f,externalErrors:o,schemaErrors:l,initialState:u,originalState:_?.[t],fieldName:t,...S})]})),d=Object.fromEntries(Object.entries(m(c)??{}).map(([t])=>{let n=i?`${i}.${t}`:t,o=a?`${a}.${t}`:t,l=p(r.value??{},t),u=p(s?.value??{},t),d=e(()=>c?.value?.[t]),f=p(h?.value??{},t);return[t,De({state:l,rulesDef:e(()=>({})),path:n,cachePath:o,externalErrors:u,schemaErrors:d,initialState:f,originalState:_?.[t],fieldName:t,...S})]})),f=Object.fromEntries(Object.entries(r.value??{}).filter(([e])=>!(e in n.value)&&!(e in(u??{}))&&!(e in(d??{}))).map(([t])=>{let n=p(r.value??{},t),o=p(s?.value??{},t),l=e(()=>c?.value?.[t]),u=p(h?.value??{},t);return[t,De({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,cachePath:a?`${a}.${t}`:t,externalErrors:o,schemaErrors:l,initialState:u,originalState:_?.[t],fieldName:t,...S})]}));P.value={...l,...u,...d,...f},t&&L()}function ee(){n.value.$self&&(M.value=Ce({state:r,rulesDef:e(()=>n.value.$self??{}),path:i,cachePath:a,externalErrors:d(void 0),schemaErrors:d(void 0),initialState:p(h?.value??{},`$self`),originalState:_?.$self,fieldName:`$self`,...S}))}let P=S.storage.getFieldsEntry(a);N(),ee();function F(){s&&(k=v(s,()=>{R(),N()},{deep:!0}))}function I(){A=v(r,()=>{R(),N(),w.$autoDirty.value&&!w.$silent.value&&V(!1,!0)},{flush:`post`})}function L(){o&&(E?.(),E=v(o,()=>{R(),N()},{deep:!0,flush:`pre`}),F()),l&&(D?.(),D=v(l,()=>{R(),N()},{deep:!0,flush:`post`})),I(),w=C.run(()=>{let a=e({get:()=>r.value,set(e){R(),r.value=e,N(),w.$autoDirty.value&&!w.$silent.value&&V(!1,!0)}}),o=e({get:()=>r.value,set(e){R(),r.value=e,N()}}),s=e(()=>{let e=P.value,t=Object.keys(e);if(!t.length)return!1;for(let n of t)if(!e[n]?.$dirty)return!1;return!0}),c=e(()=>{let e=P.value;for(let t in e)if(e[t]?.$anyDirty)return!0;return!1}),l=e(()=>{if(M.value?.$invalid)return!0;let e=P.value,t=Object.entries(e);if(!t.length)return!1;for(let[e,n]of t)if(n?.$invalid)return!0;return!1}),p=e(()=>{let e=Object.entries(P.value).reduce((e,[t,n])=>((!pe(n)||!n.$inactive)&&e.push([t,n]),e),[]),t=n.value.$self&&!O(n.value.$self);if(e.length||t){let t=M.value?.$correct??!0,n=!1;return n=S.schemaMode?e.every(([e,t])=>t.$correct):e.every(([e,t])=>pe(t)?`required`in t.$rules&&t.$rules.required.$active?t.$correct:!t.$invalid&&!t.$pending&&!t.$isDebouncing:t?.$correct),t&&n}return!1}),v=e(()=>{if(M.value?.$error)return!0;let e=P.value;if(!Object.keys(e).length)return!1;for(let t in e)if(e[t]?.$error)return!0;return!1}),x=e(()=>m(S.options.rewardEarly)==null?!1:m(S.options.rewardEarly)),C=e(()=>m(S.options.silent)==null?!!x.value:m(S.options.silent)===!0),E=e(()=>m(S.options.autoDirty)==null?!0:m(S.options.autoDirty)===!0),D=e(()=>m(S.options.immediateDirty)==null?!1:m(S.options.immediateDirty)===!0),k=e(()=>m(S.options.lazy)==null?!1:m(S.options.lazy)===!0),A=e(()=>m(S.options.clearExternalErrorsOnChange)==null?!1:m(S.options.clearExternalErrorsOnChange)===!0),j=e(()=>m(S.options.clearExternalErrorsOnValidate)==null?!1:m(S.options.clearExternalErrorsOnValidate)===!0),ee=e(()=>!(l.value||I.value)),F=d(!1),I=e(()=>{if(M.value?.$pending||F.value)return!0;let e=P.value;for(let t in e)if(e[t]?.$pending)return!0;return!1}),L=e(()=>{let e={...M.value&&{$self:M.value?.$issues??[]}};for(let t in P.value)e[t]=P.value[t]?.$issues;return e}),z=e(()=>{let e={...M.value&&{$self:M.value?.$errors??[]}};for(let t in P.value)e[t]=P.value[t]?.$errors;return e}),B=e(()=>{let e={...M.value&&{$self:M.value?.$silentErrors??[]}};for(let t in P.value)e[t]=P.value[t]?.$silentErrors;return e}),H=e(()=>{if(M.value?.$edited)return!0;if(!Object.keys(P.value).length)return!1;for(let e in P.value)if(!P.value[e]?.$edited)return!1;return!0}),U=e(()=>{if(M.value?.$anyEdited)return!0;for(let e in P.value)if(P.value[e]?.$anyEdited)return!0;return!1}),W=e(()=>b??S.options.id??`root`),G=e(()=>({autoDirty:E.value,lazy:k.value,rewardEarly:x.value,silent:C.value,clearExternalErrorsOnChange:A.value,clearExternalErrorsOnValidate:j.value,immediateDirty:D.value,id:m(S.options.id),disabled:m(S.options.disabled)}));function te(){S.shortcuts?.nested&&Object.entries(S.shortcuts.nested).forEach(([e,n])=>{let a=t();q[e]=a.run(()=>{let e=d();return y(()=>{e.value=n(u({$dirty:s,$path:i,$value:r,$silentValue:o,$error:v,$originalValue:_,$pending:I,$invalid:l,$correct:p,$ready:ee,$anyDirty:c,$name:W,$silentErrors:B,$initialValue:h,$errors:z,$fields:P,$edited:H,$anyEdited:U,$issues:L,$self:M,"~modifiers":g(S.options)}))}),e}),T.push(a)})}let K=e({get:()=>f?Object.fromEntries(Object.entries(f?.(P.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,ie(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,ae(t,e)]))}]:[])):{},set(){}}),q={};return te(),{$dirty:s,$anyDirty:c,$invalid:l,$correct:p,$error:v,$pending:I,$issues:L,$errors:z,$silentErrors:B,$clearExternalErrorsOnValidate:j,$ready:ee,$name:W,$shortcuts:q,$groups:K,$silentValue:o,$edited:H,$anyEdited:U,$localPending:F,$autoDirty:E,$silent:C,$value:a,$modifiers:G}})}function R(){if(E?.(),k?.(),A?.(),D?.(),T=[],w={},P.value)for(let e of Object.values(P.value))e?.$unwatch()}function z(){s&&!O(s.value)&&(s.value={})}function B(e,t){if(k?.(),R(),!t)if(e?.toOriginalState)r.value=j({..._}),h.value=j({..._});else if(e?.toInitialState)r.value=j({...h.value});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,h.value=j(t),r.value=j(t)}else h.value=j(r.value);if(!e?.keepValidationState){for(let t of Object.values(P.value))t?.$reset(e,!0);M.value?.$reset(e,!0)}e?.clearExternalErrors===!1&&z(),F(),t||N()}function V(e=!0,t=!1){for(let n of Object.values(P.value))n?.$touch(e,t);M.value?.$touch(e,t)}function H(e){return e.filter(([e,t])=>x(t)&&!de(t)?!(t&&typeof t==`object`&&`_null`in t)&&!O(t):Array.isArray(t)?t.length:!0)}function U(e=!0){let t=Object.entries(P.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=H(t)),Object.fromEntries(t)}function W(){for(let e of Object.values(P.value))e.$abort();M.value?.$abort()}async function G(e){try{if(e&&(r.value=e),S.schemaMode)return S.onValidate?(V(!1),w.$localPending.value=!0,S.onValidate()):{valid:!1,data:r.value,errors:w.$errors.value,issues:w.$issues.value};{let e=r.value;W(),w.$clearExternalErrorsOnValidate.value&&z();let t=[...Object.values(P.value).map(e=>e.$validate()),...M.value?[M.value?.$validate()]:[]];return{valid:(await Promise.allSettled(t)).every(e=>e.status===`fulfilled`&&e?.value?.valid===!0),data:e,errors:w.$errors.value,issues:w.$issues.value}}}catch{return{valid:!1,data:r.value,errors:w.$errors.value,issues:w.$issues.value}}finally{w.$localPending.value=!1}}function te(e){try{return e&&(r.value=e),w.$clearExternalErrorsOnValidate.value&&z(),[...Object.values(P.value).map(e=>e.$validateSync()),...M.value?[M.value?.$validateSync()]:[]].every(e=>!!e)}catch{return!1}}let{$shortcuts:K,$localPending:q,...J}=w,Y=u({...J,...K,$path:i,$initialValue:h,$originalValue:_,$self:M,$externalErrors:s,$fields:P,$reset:B,$touch:V,$validate:G,$unwatch:R,$watch:L,$clearExternalErrors:z,$extractDirtyFields:U,$abort:W,$validateSync:te,...o?{"~modifiers":w.$modifiers}:{},...Se(G)});return Object.defineProperty(Y,Symbol.for(`regle:instance`),{value:!0}),y(()=>{for(let e of Object.keys(Y).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete Y[e];for(let e of Object.values(P.value))e?.$name&&Object.assign(Y,{[e.$name]:e})}),Y}function De({rulesDef:e,...n}){if(ce(e,n.state))return Te({rulesDef:e,...n});if(se(n.state,e)){if(G(n.state))return Ee({rulesDef:e,...n});{let r=t().run(()=>{let e=p(n.state.value?n.state:d({}));return v(()=>n.state.value,t=>{e.value=t},{deep:!0}),v(e,e=>{n.state.value=e},{deep:!0}),{fakeState:e}}),{state:i,...a}=n;return Ee({rulesDef:e,...a,state:r.fakeState})}}else if(le(e))return Ce({rulesDef:a(e.value)?e.value:e,...n})}function Oe({initialState:e,originalState:t,options:n,scopeRules:i,state:a,customRules:o,shortcuts:c,schemaErrors:u,schemaMode:f=!1,onValidate:p,overrides:h}){let g=he(),_=d(),y=d(),b,x,S;function C(){S=v(()=>m(n.disabled),async e=>{e?O():(D(),T())})}function T(){b=v(()=>n.externalErrors?.value,()=>{x?.(),n.externalErrors?.value&&Object.keys(n.externalErrors.value).some(e=>e.includes(`.`))?y.value=w(n.externalErrors.value):y.value=n.externalErrors?.value,E()},{immediate:!0,deep:!0})}function E(){x=v(()=>y.value,()=>{b?.(),n.externalErrors?.value&&(n.externalErrors.value=y.value),T()},{deep:!0})}function D(){se(a,i)?_.value=Ee({rootRules:i,rulesDef:i,state:a,customMessages:o?.(),storage:g,options:n,externalErrors:y,validationGroups:n.validationGroups,initialState:e,originalState:t,shortcuts:c,fieldName:void 0,path:``,cachePath:``,schemaErrors:u,rootSchemaErrors:u,schemaMode:f,onValidate:p,overrides:h}):le(i)&&(_.value=Ce({rulesDef:i,state:a,customMessages:o?.(),storage:g,options:n,externalErrors:y,initialState:e,originalState:t,shortcuts:c,fieldName:void 0,path:``,cachePath:``,schemaMode:f,schemaErrors:u,onValidate:p,overrides:h}))}D(),m(n.disabled)?s().then(()=>{_.value?.$unwatch()}):T(),C();function O(){_.value?.$unwatch(),x?.(),b?.()}return r()&&l(()=>{O(),S?.()}),_}function ke({state:t,rulesFactory:n,options:r,globalOptions:o,customRules:s,shortcuts:c,overrides:l}){let u=a(n)?n:typeof n==`function`?void 0:e(()=>n),p=i(Z,void 0)??{},m={...p.modifiers,...o},g=()=>({...p.rules?.(),...s?.()}),_={...p.shortcuts,...c},v={...p.overrides,...l},b={...m,...r},S,C=f(u??{});typeof n==`function`&&(S=y(()=>{C.value=n(t),h(C)}));let w=d(x(t.value)?{...j(t.value)}:j(t.value)),T=x(t.value)?{...j(t.value)}:j(t.value);return ne(()=>{S?.()}),Oe({scopeRules:C,state:t,options:b,initialState:w,originalState:T,customRules:g,shortcuts:_,overrides:v})}function Ae(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s,c){let l=a(t)?t:d(t),u=e(()=>m(c?.disabled)??!1);return{r$:I(ke({state:l,rulesFactory:s,options:c,globalOptions:r,customRules:n,shortcuts:i,overrides:o}),u)}}return s}const je=Ae();function Me(){function e(e,t){return t}return e}const Ne=Me();function Pe(e,t){return S(m(e).$errors,String(t))}function Fe(e,t){return S(m(e).$issues,String(t))}function Ie(e){let t={};if(Object.entries(e).some(([e,t])=>$(t)||typeof t==`function`))return null;for(let n in e){let r=e[n];r&&x(r)&&`$each`in r&&r.$each&&x(r.$each)?t[n]=[Ie(r.$each)]:x(r)&&!O(r)&&!Object.entries(r).some(([e,t])=>$(t)||typeof t==`function`)?t[n]=Ie(r):t[n]=null}return t}function Le(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s){let c=a(t)?t:typeof t==`function`?void 0:e(()=>t),l=d(Ie(c?.value)),u=e(()=>m(s?.disabled)??!1);return I(ke({state:l,rulesFactory:c,options:s,globalOptions:r,customRules:n,shortcuts:i,overrides:o}),u)}return s}const Re=Le();function ze(e){if(D(e)){let t=e,n=class extends t{constructor(...e){return super(...e),Be(this)}};return Object.defineProperty(n,`name`,{value:t.name}),Be(n)}return Be(e)}function Be(e){return!T(e,Q.REGLE_STATIC)&&Object.isExtensible(e)&&E(e,Q.REGLE_STATIC,!0),e}function Ve({rules:e,modifiers:t,shortcuts:n,overrides:r}){let i=Ae({rules:e,modifiers:t,shortcuts:n,overrides:r}),a=Le({rules:e,modifiers:t,shortcuts:n,overrides:r});return i.__config={rules:e,modifiers:t,shortcuts:n,overrides:r},a.__config={rules:e,modifiers:t,shortcuts:n,overrides:r},{useRegle:i,inferRules:Me(),useRules:a}}function He(e,{rules:t,modifiers:n,shortcuts:r,overrides:i}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?C(a.modifiers,n):a.modifiers??n,c=a.shortcuts&&r?C(a.shortcuts,r):a.shortcuts??r,l=a.overrides&&i?C(a.overrides,i):a.overrides??i,u=Ae({rules:o,modifiers:s,shortcuts:c,overrides:l});return u.__config={rules:o,modifiers:s,shortcuts:c,overrides:l},{useRegle:u,inferRules:Me()}}function Ue(e){return e}function We(t,n){let r=n??!1,i=e({get:()=>r?Object.values(t).map(e=>e.$value):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$value])),set:e=>{r||typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$value=n)}}),a=e({get:()=>Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentValue])),set:e=>{typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$silentValue=n)}}),o=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$dirty)}),s=e(()=>Object.entries(t).some(([e,t])=>t?.$anyDirty)),c=e(()=>Object.entries(t).some(([e,t])=>t?.$invalid)),l=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$correct||t.$anyDirty&&!t.$invalid)}),d=e(()=>Object.entries(t).some(([e,t])=>t?.$error)),f=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$ready)}),p=e(()=>Object.entries(t).some(([e,t])=>t?.$pending)),m=e(()=>r?Object.entries(t).map(([e,t])=>t.$issues):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$issues]))),h=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentIssues):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentIssues]))),g=e(()=>r?Object.entries(t).map(([e,t])=>t.$errors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$errors]))),_=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentErrors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentErrors]))),v=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$edited)}),b=e(()=>Object.entries(t).some(([e,t])=>t?.$anyEdited)),x=e(()=>r?Object.values(t):t);function S(e){Object.values(t).forEach(t=>{t.$reset(e)})}function C(){Object.values(t).forEach(e=>{e.$touch()})}function w(e=!0){return Object.values(t).map(t=>t.$extractDirtyFields(e))}function T(){Object.values(t).forEach(e=>{e.$clearExternalErrors()})}async function E(e){try{e&&(i.value=e);let n=i.value;return{valid:(await Promise.allSettled(Object.values(t).map(e=>e.$validate()))).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:n,errors:g.value,issues:m.value}}catch{return{valid:!1,data:i.value,errors:g.value,issues:m.value}}}let D=u({...!r&&{$silentValue:a},$errors:g,$issues:m,$silentIssues:h,$silentErrors:_,$instances:x,$value:i,$dirty:o,$anyDirty:s,$invalid:c,$correct:l,$error:d,$pending:p,$ready:f,$edited:v,$anyEdited:b,$reset:S,$touch:C,$validate:E,$extractDirtyFields:w,$clearExternalErrors:T});return y(()=>{if(!r){for(let e of Object.keys(D).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete D[e];for(let[e,t]of Object.entries(x.value))Object.assign(D,{[e]:t})}}),D}function Ge(t,n){function r(r){let i=e(()=>m(r)),a=u({});c();let o=d(l(t.value)),s=u({r$:o});function c(){i.value&&(typeof i.value==`string`&&!t.value[i.value]?t.value[i.value]={}:Array.isArray(i.value)&&i.value.forEach(e=>{t.value[e]||(t.value[e]={})}))}v(i,c),v(t,e=>{o.value=l(e)},{deep:!0});function l(e){return i.value?typeof i.value==`string`?We(e[i.value]??{},!n.asRecord):(Object.keys(a).forEach(e=>{delete a[e]}),i.value.forEach(t=>{Object.entries(e[t]).forEach(([e,t])=>{Object.assign(a,{[e]:t})})}),We(a,!n.asRecord)):We(e[`~~global`]??{},!n.asRecord)}return{r$:s.r$}}return{useCollectScope:r}}function Ke(t,r){let i=r??je;return{useScopedRegle:((r,a,o)=>{let{namespace:s,scopeKey:l,id:u,...f}=o??{};i.__config??={};let p=e(()=>u??l),h=e(()=>m(s)),g=d(`${Object.keys(t.value).length+1}-${X()}`),_=e(()=>p.value??`instance-${g.value}`),{r$:y}=i(r,a,{...f,id:p.value});x(),ne(b),v(h,(e,t)=>{b(t),x()}),n()&&c(()=>{let e=n();typeof window<`u`&&e?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(e?.proxy?.$el?.parentElement)&&b()});function b(e){let n=e??h.value;n?t.value[n]&&delete t.value[n][_.value]:t.value[`~~global`][_.value]&&delete t.value[`~~global`][_.value]}function x(){h.value?(t.value[h.value]||(t.value[h.value]={}),t.value[h.value][_.value]=y):(t.value[`~~global`]||(t.value[`~~global`]={}),t.value[`~~global`][_.value]=y)}return{r$:y,dispose:b,register:x}})}}function qe(e){let t=(e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):re(()=>d({"~~global":{}})))(),{useScopedRegle:n}=Ke(t,e?.customUseRegle),{useCollectScope:r}=Ge(t,{asRecord:e?.asRecord});return{useScopedRegle:n,useCollectScope:r}}const{useCollectScope:Je,useScopedRegle:Ye}=qe(),Xe=Je,Ze=Ye;function Qe(t,n,r){let i=e(()=>m(t)[n]);return e(()=>r.find(e=>{if(e[n]&&`literal`in e[n]){let t=e[n].literal;if($(t))return m(t._params?.[0])===i.value}})||r.find(e=>x(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`))||{})}function $e(e,t,n){return!!e&&t in e&&x(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function et(e,t,n,r){let i=a(e)?p(e.value,`$fields`):p(e,`$fields`),o=d();return v(i,async()=>{await s(),$e(i.value,t,n)?o.value=p(e).value:o.value=void 0},{immediate:!0,flush:`pre`}),o}function tt(e){return e}function nt(e,t){return n=>C({...e},t(n))}const rt={install(e,t){e.provide(oe,me),t&&e.provide(Z,t)}};export{L as InternalRuleType,rt as RegleVuePlugin,H as createRule,qe as createScopedUseRegle,Qe as createVariant,Ve as defineRegleConfig,Ue as defineRegleOptions,tt as defineRules,He as extendRegleConfig,ye as flatErrors,Pe as getErrors,Fe as getIssues,Ne as inferRules,W as isRegleInstance,ze as markStatic,We as mergeRegles,$e as narrowVariant,nt as refineRules,R as unwrapRuleParameters,Xe as useCollectScope,je as useRegle,Oe as useRootStorage,Re as useRules,Ze as useScopedRegle,et as variantToRef};
|
|
7
|
+
import{computed as e,effectScope as t,getCurrentInstance as n,getCurrentScope as r,inject as i,isRef as a,markRaw as o,nextTick as s,onMounted as c,onScopeDispose as l,reactive as u,ref as d,shallowRef as f,toRef as p,toValue as m,triggerRef as h,unref as g,version as _,watch as v,watchEffect as y}from"vue";function b(e){return e?.constructor?.name==`File`}function x(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function S(e,t,n){if(!e)return n;var r,i;if(Array.isArray(t)&&(r=t.slice(0)),typeof t==`string`&&(r=t.split(`.`)),typeof t==`symbol`&&(r=[t]),!Array.isArray(r))throw Error(`props arg must be an array, a string or a symbol`);for(;r.length;)if(i=r.shift(),!e||!i||(e=e[i],e===void 0))return n;return e}function C(e,...t){for(var n=[].slice.call(arguments),r,i=n.length;r=n[i-1],i--;)if(!r||typeof r!=`object`&&typeof r!=`function`)throw Error(`expected object, got `+r);for(var a=n[0],o=n.slice(1),s=o.length,i=0;i<s;i++){var c=o[i];for(var l in c)a[l]=c[l]}return a}function w(e){let t={};for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n],i=n.split(`.`),a=t;for(let e=0;e<i.length;e++){let t=i[e],n=e===i.length-1,o=t.match(/^\d+$/)?Number(t):null;if(o!==null){if(Array.isArray(a))if(n)a[o]=r;else{if(typeof a[o]!=`object`||a[o]===null){let t=i[e+1];a[o]=t&&t.match(/^\d+$/)?{$each:[],$self:[]}:{}}a=`$each`in a[o]?a[o].$each:a[o]}}else if(n)if(Array.isArray(a[t])){let e=a[t].slice();a[t]={},a[t].$self=e}else typeof a[t]==`object`&&a[t]!==null&&`$each`in a[t]?a[t].$self=r:a[t]=r;else{let n=i[e+1];if(Array.isArray(a[t])){let e=a[t].slice();a[t]={$each:[]},a[t].$self=e}(typeof a[t]!=`object`||a[t]===null||Array.isArray(a[t])&&!n.match(/^\d+$/))&&(n&&n.match(/^\d+$/)?a[t]={$each:[],$self:[]}:a[t]={}),a=`$each`in a[t]?a[t].$each:a[t]}}}return t}function T(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function E(e,t,n,r=!1){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})}function D(e){return typeof e==`function`&&!!e.prototype&&`constructor`in e.prototype&&e.prototype.constructor===e}function O(e,t=!0,n=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):b(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:x(e)?e==null?!0:n?Object.keys(e).length===0:!1:!String(e).length}const k=Symbol(`regle-rule`);function A(e){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 j(e,t=0){if(t>20)return e;let n=e,r={}.toString.call(e).slice(8,-1);if(r==`Set`&&(n=new Set([...e].map(e=>j(e,t++)))),r==`Map`&&(n=new Map([...e].map(e=>[j(e[0]),j(e[1])]))),r==`Date`&&(n=new Date(e.getTime())),r==`RegExp`&&(n=RegExp(e.source,A(e))),r==`Array`||r==`Object`){n=Array.isArray(e)?[]:{};for(let r in e)n[r]=j(e[r],t++)}return n}function M(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]`||typeof e==`string`||t===`[object String]`?new Date(e):new Date(NaN)}function N(e,t,{immediate:n=!1,trackDebounceRef:r}={}){let i,a=(...a)=>{r&&(r.value=!0);function o(){r&&(r.value=!1)}return new Promise((r,s)=>{function c(e){r(e),o()}if(clearTimeout(i),i=setTimeout(()=>{if(o(),i=void 0,!n)try{Promise.resolve(e.apply(this,[...a])).then(c).catch(e=>s(e)).finally(o)}catch(e){s(e)}},t),n){o();try{Promise.resolve(e.apply(this,[...a])).then(c).catch(e=>s(e)).finally(o)}catch(e){s(e)}}})};return a.cancel=()=>{clearTimeout(i),i=void 0,r&&(r.value=!1)},a}function ee(e,t,n=!1,r=!0){if(e===t)return!0;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(e.constructor!==t.constructor)return!1;var i,a,o;if(Array.isArray(e)&&Array.isArray(t)){if(i=e.length,i!=t.length)return!1;if(r||!r&&n){for(a=i;a--!==0;)if(!ee(e[a],t[a],n,!1))return!1}return!0}if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(o=Object.keys(e),i=o.length,i!==Object.keys(t).length)return!1;for(a=i;a--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[a]))return!1;for(a=i;a--!==0;){var s=o[a];if(x(e)&&x(t)&&s&&(r||!r&&n)&&!ee(e[s],t[s],n,!1))return!1}return!0}return e!==e&&t!==t}var P=class extends Error{constructor(e=`Promise was aborted`){super(e),this.name=`AbortError`}};function F(e){let t=new AbortController,{signal:n}=t,r=new Promise((t,r)=>{function i(){r(new P)}n.addEventListener(`abort`,i),e.then(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new P):t(e)}).catch(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new P):r(e)})});function i(e){t.abort(e)}return{promise:r,abort:i,signal:n}}function I(e,t){if(!a(e))return u(e);let n=d(!1);return c(async()=>{await s(),typeof window<`u`&&window.requestAnimationFrame(()=>{n.value=!0})}),u(new Proxy({},{get(r,i,a){if(t.value&&i!==`$value`&&n.value)return Reflect.get(r,i,a);if(e.value!==void 0)return g(Reflect.get(e.value,i,a))},set(t,n,r){return a(e.value[n])&&!a(r)?e.value[n].value=r:e.value[n]=r,!0},deleteProperty(t,n){return Reflect.deleteProperty(e.value,n)},has(t,n){return e.value===void 0?!1:Reflect.has(e.value,n)},ownKeys(){return e.value===void 0?[]:Object.keys(e.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}}))}const L={Inline:`__inline`,Async:`__async`};function R(e){try{return e.map(e=>m(e))}catch{return[]}}function z(t){return t.map(t=>t instanceof Function?e(t):a(t)?t:p(()=>t))}function B(e){let t=e.toString().replace(/\/\/.*$/gm,``).replace(/\/\*[\s\S]*?\*\//g,``).match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return t?(t[0]||t[1]||t[2]||t[3]||t[4]||``).split(`,`).map(e=>e.trim()).filter(e=>e.length>0).length:0}function V(e,...t){let{validator:n,type:r,async:i}=e,a=i||r===L.Async||n.constructor.name===`AsyncFunction`;return o({validator(n,...r){return e.validator(n,...R(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:R(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:R(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:R(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...R(t)),i;return r instanceof Promise?r.then(e=>(i=e,typeof i==`object`&&`$valid`in i?i.$valid:typeof i==`boolean`?i:!1)):(i=r,typeof i==`object`&&`$valid`in i?i.$valid:typeof i==`boolean`?i:!1)},type:r,_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:a,_params:z(t),_brand:k})}function H(e){if(typeof e.validator==`function`){let t=[],n=e.async??e.validator.constructor.name===`AsyncFunction`,r=V({...e,async:n},...t);if(B(e.validator)>1){let t=function(...t){return V(e,...t)};return t.validator=r.validator,t.message=r.message,t.active=r.active,t.tooltip=r.tooltip,t.type=r.type,t.exec=r.exec,t._validator=r.validator,t._message=r.message,t._active=r.active,t._tooltip=r.tooltip,t._type=e.type,t._message_pacthed=!1,t._tooltip_pacthed=!1,t._async=n,t}else return r}throw Error(`[createRule] validator must be a function`)}const U=Symbol.for(`regle:instance`);function W(e){return typeof e==`object`&&!!e&&U in e}function G(e){return x(e.value)}function te(e,n,r){let i=t(),a;return a=e instanceof Function?i.run(()=>e(n,r??0)):e,{scope:i,unwrapped:a}}const K={LessThan:-1,EqualTo:0,GreaterThan:1};function q(e,t){let n=String(e).split(`.`),r=String(t).split(`.`);for(let e=0;e<Math.min(n.length,r.length);e++){let t=Number(n[e]),i=Number(r[e]);if(t>i)return K.GreaterThan;if(i>t)return K.LessThan;if(!isNaN(t)&&isNaN(i))return K.GreaterThan;if(isNaN(t)&&!isNaN(i))return K.LessThan}return K.EqualTo}const J=q(_,`3.5.0`)!==-1;function Y(){return Math.floor(Math.random()*Date.now()).toString()}function X(){return typeof window>`u`?Y():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function ne(e){return r()?(l(e),!0):!1}function re(e){let n=!1,r,i=t(!0);return((...t)=>(n||=(r=i.run(()=>e(...t)),!0),r))}function ie(e,t){return e.some(e=>t?e?.[t]:!1)}function ae(e,t){return t?e.reduce((e,n)=>{let r=n?.[t]||[];return e.concat(r)},[]):[]}const oe=Symbol(`regle`),Z=Symbol(`regle-config`),Q={REGLE_STATIC:`__regle_static`};function se(e,t){return!de(e.value)&&(G(e)||x(t.value)&&!O(t.value)&&!Object.entries(t.value).some(([e,t])=>$(t)||typeof t==`function`))}function ce(e,t){return!!e.value&&x(e.value)&&`$each`in e.value||Array.isArray(t.value)}function le(e){return!!e.value&&(x(e.value)||G(e.value))}function $(e){return(x(e)||typeof e==`function`)&&`_validator`in e}function ue(e){return typeof e.value==`function`?`_validator`in e.value:!0}function de(e){return x(e)&&T(e,Q.REGLE_STATIC)&&e[Q.REGLE_STATIC]===!0}function fe(e){return x(e)&&`$fields`in e}function pe(e){return!!e&&`$rules`in e}var me=`1.20.0-preview.3`;function he(){let e=f(new Map),t=f(new Map),n=f(new Map),i=f(new Map),a=f(new Map),o=f(new Map),s=f(new Map);function c(e){let n=t.value.get(e);if(n)return n;{let n=d({});return t.value.set(e,n),n}}function u(e){let t=n.value.get(e);if(t)return t;{let t=d([]);return n.value.set(e,t),t}}function p(e,t){o.value.set(e,t)}function m(e){return o.value.get(e)}function h(e,t,n){s.value.set(`${e}-${t}`,n)}function g(e,t){return s.value.get(`${e}-${t}`)}function _(e,t){e&&t!=null&&s.value.delete(`${e}-${t}`)}function v(e,t){i.value.set(e,t)}function y(e){return i.value.get(e)??!1}function b(t,n){e.value.set(t,n)}function x(t,n){let r=e.value.get(t);if(r)return S(n,r)?{valid:!0}:{valid:!1}}function S(e,t){let n=Object.keys(t),r=Object.keys(e);return r.length!==n.length||!r.every(e=>n.includes(e))?!1:r.every(n=>{let r=e[n],i=t[n];if(!i||!r||typeof r==`function`||typeof i==`function`||typeof r==`number`||typeof r==`boolean`||typeof r==`string`)return!1;if(`_params`in r){if(!r._params)return!0;if(Array.isArray(r._params))return r._params?.every((e,t)=>{if(typeof i==`number`||typeof i==`boolean`||typeof i==`string`)return!0;{let e=R(`_params`in i&&Array.isArray(i._params)?i._params:[]),n=R(r._params);return e?.[t]===n?.[t]}})}})}function C(e){let t=a.value.get(e);if(t)return t;{let t=d(!1),n=d(!0),r=d({}),i=d(!1);return a.value.set(e,{$pending:t,$valid:n,$metadata:r,$validating:i}),{$pending:t,$valid:n,$metadata:r,$validating:i}}}return r()&&l(()=>{e.value.clear(),t.value.clear(),n.value.clear(),i.value.clear(),a.value.clear(),s.value.clear()}),{addRuleDeclEntry:b,setDirtyEntry:v,checkRuleDeclEntry:x,getDirtyState:y,trySetRuleStatusRef:C,getFieldsEntry:c,getCollectionsEntry:u,getArrayStatus:g,addArrayStatus:h,deleteArrayStatus:_,arrayStatusStorage:s,addAdditionalRulesEntry:p,getAdditionalRulesEntry:m}}function ge({field:e,silent:t=!1}){let n=Object.entries(e.$rules??{}).map(([n,r])=>{let i=``;if(t&&!r.$valid)i=r.$message;else if(!r.$valid&&e.$error&&!r.$validating)i=r.$message;else return null;return{$message:i,$property:e.fieldName,$rule:n,$type:r.$type,...typeof r.$metadata==`object`?r.$metadata:{}}}).filter(e=>!!e).reduce((e,t)=>(typeof t.$message==`string`?e.push(t):e.push(...t.$message.map(e=>({...t,$message:e}))),e),[]),r=e.$error&&e.$externalErrors?e.$externalErrors.map(t=>({$message:t,$property:e.fieldName,$rule:`external`,$type:void 0})):[],i=[];return e.$schemaErrors&&e.$error&&(i=!Array.isArray(e.$schemaErrors)&&`$self`in e.$schemaErrors?e.$schemaErrors.$self??[]:e.$schemaErrors??[]),[...n,...r,...i]}function _e({field:e}){let t=[];for(let n of Object.values(e.$rules??{})){let e=n.$tooltip;e&&(typeof e==`string`?t.push(e):t.push(...e))}return t}function ve(e){return x(e)&&`$each`in e}function ye(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!x(e)))return e;if(ve(e)){let t=n?e.$self?.map(e=>({message:e,path:[]}))??[]:e.$self??[],r=e.$each?.map(e=>be(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>be(t,n,[e])).flat()}function be(e,t=!1,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(e=>!x(e)))return t?e.map(e=>({message:e,path:r??[]})):e;if(ve(e)){let n=r?.length?e.$self?.map(e=>({message:e,path:r??[]}))??[]:e.$self??[],i=e.$each?.map((e,n)=>be(e,t,r?.concat(n)))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>be(n,t,r?.concat(e))).flat()}function xe({customMessages:n,rule:r,ruleKey:i,state:a,path:o,cachePath:s,storage:c,modifiers:l}){let f=t(),p={},m,h=e(()=>$(r.value)&&r.value._async),g=d(!1),{$pending:_,$valid:y,$metadata:b,$validating:x}=c.trySetRuleStatusRef(`${s}.${i}`);function S(){f=t(),p=f.run(()=>{let t=d(!1),s=d(!1),c=d(!0),l=d(!1),u=d(!1),f=e(()=>({$value:a.value,$error:s.value,$dirty:t.value,$pending:l.value,$correct:u.value,$invalid:c.value,$rule:{$valid:y.value,$invalid:!y.value,$pending:_.value},$params:S.value,...b.value})),p=e(()=>{try{return ue(r)?typeof r.value.active==`function`?r.value.active(f.value):!!r.value.active:!0}catch(e){return console.error(`Error in "active" function for "${o}.${i}" rule`,{cause:e}),!0}});function m(e){try{let t=``,a=n?n[i]?.[e]:void 0;if(a&&(t=typeof a==`function`?a(f.value):a),ue(r)){let n=`_${e}_patched`;a&&!r.value[n]||(t=typeof r.value[e]==`function`?r.value[e](f.value):r.value[e]??``)}return t}catch(t){return console.error(`Error in "${e}" function for "${o}.${i}" rule`,{cause:t}),``}}let h=e(()=>{let e=m(`message`);return O(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),v=e(()=>ue(r)&&r.value.type?r.value.type:i),x=e(()=>ue(r)?r.value.validator:r.value),S=e(()=>typeof r.value==`function`?[]:R(r.value._params??[]));return{$active:p,$message:h,$type:v,$validator:x,$params:S,$path:e(()=>`${o}.${i}`),$tooltip:g,$fieldCorrect:u,$fieldError:s,$fieldDirty:t,$fieldPending:l,$fieldInvalid:c}}),m=v(p?.$params,()=>{(!l.$silent.value||l.$rewardEarly.value&&p.$fieldError.value)&&E()},{deep:J?1:!0})}S();function C(){y.value=!0,p.$fieldDirty.value&&(_.value=!0)}async function w(){let e=!1;try{let t=p.$validator.value;if(typeof t!=`function`)return console.error(`${o}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let n=t(a.value,...p.$params.value),r=a.value;C();let i;if(i=n instanceof Promise?await n:n,a.value!==r)return!0;if(typeof i==`boolean`)e=i;else{let{$valid:t,...n}=i;e=t,b.value=n}}catch{e=!1}finally{_.value=!1}return e}function T(e,t=!0){if($(r.value)&&r.value._async)return!0;let n=e(a.value,...p.$params.value);if(n instanceof Promise)return!0;if(n!=null){if(typeof n==`boolean`)return n;{let{$valid:e,...t}=n;return b.value=t,e}}return!0}async function E(){try{x.value=!0;let e=!1;if(g.value=!0,$(r.value)&&r.value._async)e=await w();else{let t=p.$validator.value;e=T(t)}return y.value=e,e}catch{return!1}finally{x.value=!1,g.value=!1}}function D(){try{return x.value=!0,T(p.$validator.value)}catch{return!1}finally{x.value=!1}}function k(){y.value=!0,b.value={},_.value=!1,x.value=!1,S()}function A(){m(),f.stop(),f=t()}return u({...p,$pending:_,$valid:y,$metadata:b,$haveAsync:h,$maybePending:g,$validating:x,$parse:E,$parseSync:D,$unwatch:A,$watch:S,$reset:k})}function Se(e){return{"~standard":{version:1,vendor:`regle`,validate:async t=>{let{valid:n,data:r,errors:i}=await e(t,!0);return n?{value:r,issues:[]}:{issues:ye(i,{includePath:!0})}}}}}function Ce({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,fieldName:c,storage:l,options:f,externalErrors:h,schemaErrors:g,schemaMode:_,onUnwatch:b,$isArray:S,initialState:C,originalState:w,shortcuts:T,overrides:E,onValidate:D}){let k=t(),A,P=[],I,L,R,z,B=()=>{},V,H=()=>{},U=d(!1),W=d(l.getAdditionalRulesEntry(o)??{});function G(e){W.value=e??{},l.addAdditionalRulesEntry(o,e??{}),K(),B()}function te(e){G(e)}function K(){let e={...r.value,...W.value},t=[];for(let r in e){if(r.startsWith(`$`)||r.startsWith(`~`))continue;let s=e[r];if(!s)continue;let c=p(()=>s);t.push([r,xe({modifiers:{$silent:A.$silent,$rewardEarly:A.$rewardEarly},customMessages:i,rule:c,ruleKey:r,state:n,path:a,cachePath:o,storage:l,$debounce:Q.value.$debounce})])}Z.value=Object.fromEntries(t),l.addRuleDeclEntry(o,e)}function q(){let e={...r.value,...W.value},t=l.checkRuleDeclEntry(o,e),n={};for(let t in e)t.startsWith(`$`)&&(n[t]=e[t]);return Q.value=n,t}function Y(){let e=q();ie(),K(),A.processShortcuts(),X(),ne(),e?.valid!=null&&(A.$dirty.value=l.getDirtyState(o),(A.$dirty.value&&!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&B()),l.addRuleDeclEntry(o,r.value)}function X(){B=A.$debounce.value>0?N(oe,A.$debounce.value,{trackDebounceRef:U}):oe}function ne(){H=A.$debounce.value>0?N(()=>{A.$dirty.value=!0},A.$debounce.value):()=>{A.$dirty.value=!0}}function re(){if(Z.value)for(let e of Object.values(Z.value))e.$unwatch();L(),z?.(),A.$dirty.value&&l.setDirtyEntry(o,A.$dirty.value),I?.(),k.stop(),k=t();for(let e of P)e.stop();P=[],b?.(),R?.()}function ie(){if(Z.value)for(let e of Object.values(Z.value))e.$watch();A=k.run(()=>{let r=d(!1),i=d(!1),a=e(()=>r.value),o=e(()=>S||de(n.value)),s=e(()=>Q.value.$debounce==null?A.$haveAnyAsyncRule.value?200:0:Q.value.$debounce),l=e(()=>Q.value.$deepCompare==null?!1:Q.value.$deepCompare),p=e(()=>Q.value.$lazy==null?m(f.lazy)==null?!1:m(f.lazy)===!0:Q.value.$lazy),v=e(()=>Q.value.$immediateDirty==null?m(f.immediateDirty)==null?!1:m(f.immediateDirty)===!0:Q.value.$immediateDirty),b=e(()=>Q.value.$rewardEarly==null?m(f.rewardEarly)==null?!1:m(f.rewardEarly)===!0:!!Q.value.$rewardEarly),x=e(()=>Q.value.$clearExternalErrorsOnChange==null?m(f.clearExternalErrorsOnChange)==null?!D.value:m(f.clearExternalErrorsOnChange)===!0:!!Q.value.$clearExternalErrorsOnChange),w=e(()=>Q.value.$clearExternalErrorsOnValidate==null?m(f.clearExternalErrorsOnValidate)==null?!1:m(f.clearExternalErrorsOnValidate)===!0:!!Q.value.$clearExternalErrorsOnValidate),D=e(()=>b.value?!0:Q.value.$silent==null?m(f.silent)==null?!1:m(f.silent)===!0:Q.value.$silent),k=e(()=>Q.value.$autoDirty==null?m(f.autoDirty)==null?!0:m(f.autoDirty)===!0:Q.value.$autoDirty),j=e(()=>{if(Q.value.$isEdited!=null)return Q.value.$isEdited;if(E?.isEdited!=null)return E.isEdited}),N=e(()=>{for(let e of Object.values(Z.value))if(e.$validating)return!0;return!1}),F=e({get:()=>n.value,set(e){I(),n.value=e,ae()}}),L=e(()=>U.value?J.value&&r.value:J.value&&!q.value&&r.value),R=e(()=>ge({field:{$rules:Z.value,$error:L.value,$externalErrors:h?.value,$schemaErrors:g?.value,fieldName:Y.value}})),z=e(()=>ge({field:{$rules:Z.value,$error:L.value,$externalErrors:h?.value,$schemaErrors:g?.value,fieldName:Y.value},silent:!0})),B=e(()=>R.value.map(e=>e.$message)),V=e(()=>z.value.map(e=>e.$message)),H=d(!1);function W(e,t){return t instanceof Date&&e instanceof Date?M(t).getDate()!==M(e).getDate():t==null?!!e:Array.isArray(e)&&Array.isArray(t)?!ee(e,t,Q.value.$deepCompare):t!==e}y(()=>{r.value?j.value?H.value=j.value(n.value,C.value,W):H.value=W(n.value,C.value):H.value=!1});let G=e(()=>H.value),te=e(()=>_e({field:{$rules:Z.value}})),K=e(()=>!(J.value||q.value)),q=e(()=>i.value||!b.value?Object.entries(Z.value).some(([e,t])=>t.$pending):!1),J=e(()=>h?.value?.length||g?.value?.length?!0:X.value?!1:Object.values(Z.value).some(e=>!e.$valid||e.$maybePending)),Y=e(()=>c??f.id??`root`),X=e(()=>!_&&!Object.keys(Z.value).some(e=>!e.startsWith(`$`))),ne=e(()=>{if(h?.value?.length||X.value||U.value)return!1;if(r.value&&!O(n.value)&&!N.value&&!q.value){if(_)return!g?.value?.length;{let e=Object.values(Z.value);for(let t of e)if(t.$active&&!t.$valid)return!1;return e.some(e=>e.$active)}}return!1}),re=e(()=>Object.values(Z.value).some(e=>e.$haveAsync)),ie=e(()=>({$debounce:s.value,$lazy:p.value,$rewardEarly:b.value,$autoDirty:k.value,$silent:D.value,$clearExternalErrorsOnChange:x.value,$clearExternalErrorsOnValidate:w.value,$immediateDirty:v.value,$isEdited:j.value,$disabled:m(f.disabled)??!1}));function oe(){T?.fields&&Object.entries(T.fields).forEach(([e,i])=>{let o=t();se[e]=o.run(()=>{let e=d();return y(()=>{e.value=i(u({$dirty:r,$externalErrors:h?.value??[],$value:n,$silentValue:F,$rules:Z,$error:L,$pending:q,$invalid:J,$correct:ne,$errors:B,$ready:K,$silentErrors:V,$anyDirty:a,$tooltips:te,$name:Y,$inactive:X,$edited:H,$anyEdited:G}))}),e}),P.push(o)})}let se={};return{$error:L,$pending:q,$invalid:J,$correct:ne,$debounce:s,$deepCompare:l,$lazy:p,$immediateDirty:v,$ready:K,$issues:R,$silentIssues:z,$errors:B,$silentErrors:V,$rewardEarly:b,$autoDirty:k,$silent:D,$clearExternalErrorsOnChange:x,$clearExternalErrorsOnValidate:w,$anyDirty:a,$edited:H,$anyEdited:G,$name:Y,$haveAnyAsyncRule:re,$shortcuts:se,$validating:N,$tooltips:te,$dirty:r,processShortcuts:oe,$silentValue:F,$inactive:X,$modifiers:ie,$isArrayOrRegleStatic:o}}),ae(),L=v(A.$dirty,e=>{l.setDirtyEntry(o,e),Object.values(Z.value).forEach(t=>{t.$fieldDirty=e})}),z=v([A.$error,A.$correct,A.$invalid,A.$pending],()=>{Object.values(Z.value).forEach(e=>{e.$fieldError=A.$error.value,e.$fieldInvalid=A.$invalid.value,e.$fieldPending=A.$pending.value,e.$fieldCorrect=A.$correct.value})}),R=v(A.$haveAnyAsyncRule,X)}function ae(){I=v(n,()=>{A.$autoDirty.value&&!A.$silent.value&&(A.$dirty.value||H()),r.value instanceof Function&&Y(),(!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&B(),A.$clearExternalErrorsOnChange.value&&he()},{deep:A.$isArrayOrRegleStatic.value?!0:J?1:!0})}async function oe(){try{let{promise:e}=le(Promise.allSettled(Object.values(Z.value).map(e=>e.$parse())));await e}catch{}}let Z=d({}),Q=d({});Y();function se(e,t){if(ce(),he(),A.$dirty.value=!1,l.setDirtyEntry(o,!1),!t)if(e?.toOriginalState)n.value=j(w),C.value=j(w);else if(e?.toInitialState)n.value=j(C.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,C.value=j(t),n.value=j(t)}else C.value=x(n.value)&&!de(n.value)?j(n.value):Array.isArray(n.value)?[...n.value]:n.value;if(e?.clearExternalErrors&&he(),!t&&!e?.keepValidationState)for(let e of Object.values(Z.value))e.$reset();if(!A.$lazy.value&&!A.$silent.value&&!t)for(let e of Object.values(Z.value))e.$parse()}function ce(){`cancel`in B&&B.cancel()}function le(e){return V&&V.abort(),V=F(e),V}function $(){ce(),V&&V.abort()}function ue(e=!0,t=!1){A.$dirty.value||H(),t&&e?(!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&(ce(),B()):e&&(ce(),B())}async function fe(e){try{if(e&&(n.value=e),_)return D?(ue(!1),D()):{valid:!1,data:n.value,errors:A.$errors.value,issues:A.$issues.value};let t=n.value;if(A.$dirty.value||(A.$dirty.value=!0),O(Z.value))return{valid:!0,data:t,errors:A.$errors.value,issues:A.$issues.value};$();let{promise:r}=le(Promise.allSettled(Object.values(Z.value).map(e=>e.$parse()))),i=await r;return await s(),{valid:i.every(e=>e.status===`fulfilled`&&e.value===!0),data:t,errors:A.$errors.value,issues:A.$issues.value}}catch{return{valid:!1,data:n.value,errors:A.$errors.value,issues:A.$issues.value}}}function pe(e){try{return e&&(n.value=e),A.$dirty.value||(A.$dirty.value=!0),_?!1:Object.values(Z.value).map(e=>e.$parseSync()).every(e=>!!e)}catch{return!1}}function me(e=!0){return A.$dirty.value?n.value:e?{_null:!0}:null}function he(){h?.value?.length&&(h.value=[])}!A.$lazy.value&&!A.$dirty.value&&!A.$silent.value&&oe(),A.$immediateDirty.value&&(A.$dirty.value=!0);let{$shortcuts:ve,$validating:ye,$autoDirty:be,$rewardEarly:Ce,$clearExternalErrorsOnChange:we,$clearExternalErrorsOnValidate:Te,$haveAnyAsyncRule:Ee,$debounce:De,$lazy:Oe,...ke}=A,Ae=u({...ke,$externalErrors:h,$value:n,$initialValue:C,$originalValue:w,$rules:Z,...ve,$path:a,$isDebouncing:U,$reset:se,$touch:ue,$validate:fe,$validateSync:pe,$unwatch:re,$watch:ie,$extractDirtyFields:me,$clearExternalErrors:he,$abort:$,$addRules:G,addRules:te,$schemaMode:_,"~modifiers":A.$modifiers,...Se(fe)});return Object.defineProperty(Ae,Symbol.for(`regle:instance`),{value:!0}),Ae}function we({$id:t,path:n,cachePath:r,index:i,options:a,storage:o,stateValue:s,customMessages:c,rules:l,externalErrors:u,schemaErrors:d,initialState:f,originalState:m,shortcuts:h,fieldName:g,schemaMode:_,overrides:v}){let y=s.value?.$id??l.$key??X(),b=`${r}.${String(y)}`,S=`${n}.${i}`;typeof s.value==`object`&&s.value!=null&&(s.value.$id||Object.defineProperties(s.value,{$id:{value:y,enumerable:!1,configurable:!1,writable:!1}}));let C=p(u?.value??[],i),w=e(()=>d?.value?.[i]),T=De({index:i,state:s,rulesDef:p(()=>l),customMessages:c,path:S,cachePath:b,storage:o,options:a,externalErrors:C,schemaErrors:w,initialState:f,originalState:m,shortcuts:h,fieldName:g,schemaMode:_,overrides:v});return T&&(T.$id=s.value?.$id??String(y),o.addArrayStatus(t,T.$id,T)),s.value&&(!x(s.value)||de(s.value))&&_&&T?.$touch(),T}function Te({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,storage:s,options:c,externalErrors:l,schemaErrors:f,schemaMode:h,initialState:g,originalState:_,shortcuts:b,fieldName:x,overrides:S}){let C=t(),w,T=t(),E,D=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let k=d(),A=d(n.value),M=d({}),N,ee,P=d({}),F=s.getCollectionsEntry(a);E=T.run(()=>({isPrimitiveArray:e(()=>n.value?.length?Array.isArray(n.value)&&n.value.length?n.value.every(e=>typeof e!=`object`):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(e=>$(e)||typeof e==`function`):!1:!1)})),I(),B();function I(){M.value=Object.fromEntries(Object.entries(r.value).filter(([e])=>e.startsWith(`$`))),typeof n.value==`object`&&(n.value!=null&&!n.value?.$id&&n.value!==null?(k.value=X(),Object.defineProperties(n.value,{$id:{value:k.value,enumerable:!1,configurable:!1,writable:!1}})):n.value?.$id&&(k.value=n.value.$id)),A.value=P.value.$value,Array.isArray(n.value)&&(!E.isPrimitiveArray.value||h)?F.value=n.value.map((t,n)=>{let{scope:u,unwrapped:d}=te(r.value.$each,p(()=>t),n);u&&D.push(u);let m=p(g.value??[],n),v=p(l?.value??{},`$each`),y=e(()=>f?.value?.$each);return we({$id:k.value,path:a,cachePath:o,customMessages:i,rules:d??{},stateValue:p(()=>t),index:n,options:c,storage:s,externalErrors:v,schemaErrors:y,initialState:m,originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S})||null}).filter(e=>!!e):F.value=[],P.value=Ce({state:n,rulesDef:r,customMessages:i,path:a,cachePath:a,storage:s,options:c,externalErrors:p(l?.value??{},`$self`),schemaErrors:e(()=>f?.value?.$self),$isArray:!0,initialState:g,originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S})}function L(){if(Array.isArray(n.value)&&(!E.isPrimitiveArray.value||h)){let t=j(F.value);F.value=n.value.map((t,n)=>{let o=p(()=>t);if(t.$id&&F.value.find(e=>e.$id===t.$id)){let e=s.getArrayStatus(k.value,t.$id);return e?(e.$value=o,e):null}else{let{scope:t,unwrapped:u}=te(r.value.$each,o,n);t&&D.push(t);let d=p(l?.value??{},`$each`),m=e(()=>f?.value?.$each??[]);return we({$id:k.value,path:a,cachePath:a,customMessages:i,rules:u??{},stateValue:o,index:n,options:c,storage:s,externalErrors:d,schemaErrors:m,initialState:p(g.value??[],n),originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S})||null}}).filter(e=>!!e),t.filter(e=>!n.value?.find(t=>e.$id===t.$id)).forEach((e,t)=>{s.deleteArrayStatus(k.value,t.toString())})}else F.value=[]}function R(){N=v(n,()=>{ee?.(),n.value!=null&&!Object.hasOwn(n.value,`$id`)&&!k.value?I():L(),z()},{deep:J?1:!0,flush:`pre`}),z()}function z(){ee=v(n,()=>{w.$autoDirty.value&&!w.$silent.value&&P.value.$touch(!1,!0)},{flush:`post`})}function B(){R(),C=t(),w=C.run(()=>{let r=e({get:()=>n.value,set(e){N?.(),ee?.(),n.value=e,R()}}),i=e(()=>P.value.$dirty&&(!F.value.length||F.value.every(e=>e.$dirty))),o=e(()=>P.value.$anyDirty||F.value.some(e=>e.$anyDirty)),s=e(()=>P.value.$invalid||F.value.some(e=>e.$invalid)),l=e(()=>(h?P.value.$correct:O(P.value.$rules)?!0:P.value.$correct)&&(!F.value.length||F.value.every(e=>e.$correct||e.$anyDirty&&!e.$invalid))),f=e(()=>P.value.$error||F.value.some(e=>e.$error)),p=e(()=>!(s.value||v.value)),v=e(()=>P.value.$pending||F.value.some(e=>e.$pending)),C=e(()=>!!F.value.length&&F.value.every(e=>e.$edited)),w=e(()=>P.value.$anyEdited||F.value.some(e=>e.$anyEdited)),T=e(()=>({$self:P.value.$issues,$each:F.value.map(e=>e.$issues)})),E=e(()=>({$self:P.value.$errors,$each:F.value.map(e=>e.$errors)})),k=e(()=>({$self:P.value.$silentErrors,$each:F.value.map(e=>e.$silentErrors)})),A=e(()=>M.value.$rewardEarly==null?m(c.rewardEarly)==null?!1:m(c.rewardEarly)===!0:M.value.$rewardEarly),j=e(()=>A.value?!0:M.value.$silent==null?m(c.silent)==null?!1:m(c.silent)===!0:M.value.$silent),I=e(()=>M.value.$autoDirty==null?m(c.autoDirty)==null?!0:m(c.autoDirty)===!0:M.value.$autoDirty),L=e(()=>M.value.$immediateDirty==null?m(c.immediateDirty)==null?!1:m(c.immediateDirty)===!0:M.value.$immediateDirty),z=e(()=>M.value.$clearExternalErrorsOnChange==null?m(c.clearExternalErrorsOnChange)==null?!0:m(c.clearExternalErrorsOnChange)===!0:M.value.$clearExternalErrorsOnChange),B=e(()=>M.value.$clearExternalErrorsOnValidate==null?m(c.clearExternalErrorsOnValidate)==null?!1:m(c.clearExternalErrorsOnValidate)===!0:M.value.$clearExternalErrorsOnValidate),V=e(()=>{if(M.value.$isEdited!=null)return M.value.$isEdited;if(S?.isEdited!=null)return S.isEdited}),H=e(()=>x??c.id??`root`),U=e(()=>({$deepCompare:M.value.$deepCompare??!1,$debounce:M.value.$debounce??0,$lazy:M.value.$lazy??!1,$rewardEarly:A.value,$autoDirty:I.value,$silent:j.value,$clearExternalErrorsOnChange:z.value,$clearExternalErrorsOnValidate:B.value,$immediateDirty:L.value,$isEdited:V.value,$disabled:m(c.disabled)??!1}));function W(){b?.collections&&Object.entries(b?.collections).forEach(([e,c])=>{let m=t();G[e]=m.run(()=>{let e=d();return y(()=>{e.value=c(u({$dirty:i,$error:f,$path:a,$silentValue:r,$pending:v,$invalid:s,$correct:l,$errors:E,$silentErrors:k,$initialValue:g,$originalValue:_,$ready:p,$anyDirty:o,$name:H,$each:F,$self:P,$value:n,$edited:C,$anyEdited:w,$issues:T}))}),e}),D.push(m)})}let G={};return W(),{$dirty:i,$anyDirty:o,$invalid:s,$correct:l,$error:f,$pending:v,$errors:E,$silentErrors:k,$ready:p,$name:H,$shortcuts:G,$silentValue:r,$edited:C,$anyEdited:w,$rewardEarly:A,$silent:j,$autoDirty:I,$issues:T,$modifiers:U}}),E.isPrimitiveArray.value&&r.value.$each&&console.warn(`${a} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`)}function V(){N?.(),P.value&&P.value.$unwatch(),F.value&&F.value.forEach(e=>{`$dirty`in e&&e.$unwatch()}),C.stop(),C=t(),T.stop(),T=t(!0),D.forEach(e=>e.stop()),D=[]}function H(e=!0,t=!1){P.value.$touch(e,t),F.value.forEach(n=>{n.$touch(e,t)})}function U(e,t){if(V(),!t)if(e?.toOriginalState)n.value=j(_),g.value=j(_);else if(e?.toInitialState)n.value=j(g.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,g.value=j(t),n.value=j(t)}else g.value=j(n.value);e?.clearExternalErrors&&q(),e?.keepValidationState||(P.value.$reset(e,t),F.value.forEach(t=>{t.$reset(e,!0)})),t||I()}function W(){P.value.$abort(),F.value.forEach(e=>{e.$abort()})}async function G(e){e&&(n.value=e);let t=n.value;try{return W(),{valid:(await Promise.allSettled([P.value.$validate(e),...F.value.map(e=>e.$validate())])).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:t,errors:w.$errors.value,issues:w.$issues.value}}catch{return{valid:!1,data:t,errors:w.$errors.value,issues:w.$issues.value}}}function K(e){e&&(n.value=e);try{return[P.value.$validateSync(e),...F.value.map(e=>e.$validateSync())].every(e=>!!e)}catch{return!1}}function q(){P.value.$clearExternalErrors(),F.value.forEach(e=>{e.$clearExternalErrors()})}function Y(e=!0){let t=F.value.map(t=>{if(fe(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>O(e))&&(t=[]),t}let{$shortcuts:ne,...re}=w;return u({$self:P,...re,...ne,$path:a,$each:F,$value:n,$initialValue:g,$originalValue:_,$validate:G,$validateSync:K,$unwatch:V,$watch:B,$touch:H,$reset:U,$abort:W,$extractDirtyFields:Y,$clearExternalErrors:q,"~modifiers":w.$modifiers,...Se(G)})}function Ee({rulesDef:n,state:r,path:i=``,cachePath:a,rootRules:o,externalErrors:s,schemaErrors:c,rootSchemaErrors:l,validationGroups:f,initialState:h,originalState:_,fieldName:b,...S}){let C=t(),w,T=[],E=null,D=null,k=null,A=null,M=d(void 0);async function N(t=!0){let o=Object.entries(n.value).filter(([e])=>e!==`$self`),l=Object.fromEntries(o.reduce((t,[n,o])=>{if(!o)return t;let l=p(r.value??{},n),u=p(()=>o),d=p(s?.value??{},n),f=e(()=>c?.value?.[n]),m=p(h?.value??{},n);return t.push([n,De({state:l,rulesDef:u,path:i?`${i}.${n}`:n,cachePath:a?`${a}.${n}`:n,externalErrors:d,schemaErrors:f,initialState:m,originalState:_?.[n],fieldName:n,...S})]),t},[])),u=Object.fromEntries(Object.entries(m(s)??{}).filter(([e,t])=>!(e in n.value)&&!!t).map(([t])=>{let n=p(r.value??{},t),o=p(s?.value??{},t),l=e(()=>c?.value?.[t]),u=p(h?.value??{},t),d=i?`${i}.${t}`:t,f=a?`${a}.${t}`:t;return[t,De({state:n,rulesDef:e(()=>({})),path:d,cachePath:f,externalErrors:o,schemaErrors:l,initialState:u,originalState:_?.[t],fieldName:t,...S})]})),d=Object.fromEntries(Object.entries(m(c)??{}).map(([t])=>{let n=i?`${i}.${t}`:t,o=a?`${a}.${t}`:t,l=p(r.value??{},t),u=p(s?.value??{},t),d=e(()=>c?.value?.[t]),f=p(h?.value??{},t);return[t,De({state:l,rulesDef:e(()=>({})),path:n,cachePath:o,externalErrors:u,schemaErrors:d,initialState:f,originalState:_?.[t],fieldName:t,...S})]})),f=Object.fromEntries(Object.entries(r.value??{}).filter(([e])=>!(e in n.value)&&!(e in(u??{}))&&!(e in(d??{}))).map(([t])=>{let n=p(r.value??{},t),o=p(s?.value??{},t),l=e(()=>c?.value?.[t]),u=p(h?.value??{},t);return[t,De({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,cachePath:a?`${a}.${t}`:t,externalErrors:o,schemaErrors:l,initialState:u,originalState:_?.[t],fieldName:t,...S})]}));P.value={...l,...u,...d,...f},t&&L()}function ee(){n.value.$self&&(M.value=Ce({state:r,rulesDef:e(()=>n.value.$self??{}),path:i,cachePath:a,externalErrors:d(void 0),schemaErrors:d(void 0),initialState:p(h?.value??{},`$self`),originalState:_?.$self,fieldName:`$self`,...S}))}let P=S.storage.getFieldsEntry(a);N(),ee();function F(){s&&(k=v(s,()=>{R(),N()},{deep:!0}))}function I(){A=v(r,()=>{R(),N(),w.$autoDirty.value&&!w.$silent.value&&V(!1,!0)},{flush:`post`})}function L(){o&&(E?.(),E=v(o,()=>{R(),N()},{deep:!0,flush:`pre`}),F()),l&&(D?.(),D=v(l,()=>{R(),N()},{deep:!0,flush:`post`})),I(),w=C.run(()=>{let a=e({get:()=>r.value,set(e){R(),r.value=e,N(),w.$autoDirty.value&&!w.$silent.value&&V(!1,!0)}}),o=e({get:()=>r.value,set(e){R(),r.value=e,N()}}),s=e(()=>{let e=P.value,t=Object.keys(e);if(!t.length)return!1;for(let n of t)if(!e[n]?.$dirty)return!1;return!0}),c=e(()=>{let e=P.value;for(let t in e)if(e[t]?.$anyDirty)return!0;return!1}),l=e(()=>{if(M.value?.$invalid)return!0;let e=P.value,t=Object.entries(e);if(!t.length)return!1;for(let[e,n]of t)if(n?.$invalid)return!0;return!1}),p=e(()=>{let e=Object.entries(P.value).reduce((e,[t,n])=>((!pe(n)||!n.$inactive)&&e.push([t,n]),e),[]),t=n.value.$self&&!O(n.value.$self);if(e.length||t){let t=M.value?.$correct??!0,n=!1;return n=S.schemaMode?e.every(([e,t])=>t.$correct):e.every(([e,t])=>pe(t)?`required`in t.$rules&&t.$rules.required.$active?t.$correct:!t.$invalid&&!t.$pending&&!t.$isDebouncing:t?.$correct),t&&n}return!1}),v=e(()=>{if(M.value?.$error)return!0;let e=P.value;if(!Object.keys(e).length)return!1;for(let t in e)if(e[t]?.$error)return!0;return!1}),x=e(()=>m(S.options.rewardEarly)==null?!1:m(S.options.rewardEarly)),C=e(()=>m(S.options.silent)==null?!!x.value:m(S.options.silent)===!0),E=e(()=>m(S.options.autoDirty)==null?!0:m(S.options.autoDirty)===!0),D=e(()=>m(S.options.immediateDirty)==null?!1:m(S.options.immediateDirty)===!0),k=e(()=>m(S.options.lazy)==null?!1:m(S.options.lazy)===!0),A=e(()=>m(S.options.clearExternalErrorsOnChange)==null?!1:m(S.options.clearExternalErrorsOnChange)===!0),j=e(()=>m(S.options.clearExternalErrorsOnValidate)==null?!1:m(S.options.clearExternalErrorsOnValidate)===!0),ee=e(()=>!(l.value||I.value)),F=d(!1),I=e(()=>{if(M.value?.$pending||F.value)return!0;let e=P.value;for(let t in e)if(e[t]?.$pending)return!0;return!1}),L=e(()=>{let e={...M.value&&{$self:M.value?.$issues??[]}};for(let t in P.value)e[t]=P.value[t]?.$issues;return e}),z=e(()=>{let e={...M.value&&{$self:M.value?.$errors??[]}};for(let t in P.value)e[t]=P.value[t]?.$errors;return e}),B=e(()=>{let e={...M.value&&{$self:M.value?.$silentErrors??[]}};for(let t in P.value)e[t]=P.value[t]?.$silentErrors;return e}),H=e(()=>{if(M.value?.$edited)return!0;if(!Object.keys(P.value).length)return!1;for(let e in P.value)if(!P.value[e]?.$edited)return!1;return!0}),U=e(()=>{if(M.value?.$anyEdited)return!0;for(let e in P.value)if(P.value[e]?.$anyEdited)return!0;return!1}),W=e(()=>b??S.options.id??`root`),G=e(()=>({autoDirty:E.value,lazy:k.value,rewardEarly:x.value,silent:C.value,clearExternalErrorsOnChange:A.value,clearExternalErrorsOnValidate:j.value,immediateDirty:D.value,id:m(S.options.id),disabled:m(S.options.disabled)}));function te(){S.shortcuts?.nested&&Object.entries(S.shortcuts.nested).forEach(([e,n])=>{let a=t();q[e]=a.run(()=>{let e=d();return y(()=>{e.value=n(u({$dirty:s,$path:i,$value:r,$silentValue:o,$error:v,$originalValue:_,$pending:I,$invalid:l,$correct:p,$ready:ee,$anyDirty:c,$name:W,$silentErrors:B,$initialValue:h,$errors:z,$fields:P,$edited:H,$anyEdited:U,$issues:L,$self:M,"~modifiers":g(S.options)}))}),e}),T.push(a)})}let K=e({get:()=>f?Object.fromEntries(Object.entries(f?.(P.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,ie(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,ae(t,e)]))}]:[])):{},set(){}}),q={};return te(),{$dirty:s,$anyDirty:c,$invalid:l,$correct:p,$error:v,$pending:I,$issues:L,$errors:z,$silentErrors:B,$clearExternalErrorsOnValidate:j,$ready:ee,$name:W,$shortcuts:q,$groups:K,$silentValue:o,$edited:H,$anyEdited:U,$localPending:F,$autoDirty:E,$silent:C,$value:a,$modifiers:G}})}function R(){if(E?.(),k?.(),A?.(),D?.(),T=[],w={},P.value)for(let e of Object.values(P.value))e?.$unwatch()}function z(){s&&!O(s.value)&&(s.value={})}function B(e,t){if(k?.(),R(),!t)if(e?.toOriginalState)r.value=j({..._}),h.value=j({..._});else if(e?.toInitialState)r.value=j({...h.value});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,h.value=j(t),r.value=j(t)}else h.value=j(r.value);if(!e?.keepValidationState){for(let t of Object.values(P.value))t?.$reset(e,!0);M.value?.$reset(e,!0)}e?.clearExternalErrors===!1&&z(),F(),t||N()}function V(e=!0,t=!1){for(let n of Object.values(P.value))n?.$touch(e,t);M.value?.$touch(e,t)}function H(e){return e.filter(([e,t])=>x(t)&&!de(t)?!(t&&typeof t==`object`&&`_null`in t)&&!O(t):Array.isArray(t)?t.length:!0)}function U(e=!0){let t=Object.entries(P.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=H(t)),Object.fromEntries(t)}function W(){for(let e of Object.values(P.value))e.$abort();M.value?.$abort()}async function G(e){try{if(e&&(r.value=e),S.schemaMode)return S.onValidate?(V(!1),w.$localPending.value=!0,S.onValidate()):{valid:!1,data:r.value,errors:w.$errors.value,issues:w.$issues.value};{let e=r.value;W(),w.$clearExternalErrorsOnValidate.value&&z();let t=[...Object.values(P.value).map(e=>e.$validate()),...M.value?[M.value?.$validate()]:[]];return{valid:(await Promise.allSettled(t)).every(e=>e.status===`fulfilled`&&e?.value?.valid===!0),data:e,errors:w.$errors.value,issues:w.$issues.value}}}catch{return{valid:!1,data:r.value,errors:w.$errors.value,issues:w.$issues.value}}finally{w.$localPending.value=!1}}function te(e){try{return e&&(r.value=e),w.$clearExternalErrorsOnValidate.value&&z(),[...Object.values(P.value).map(e=>e.$validateSync()),...M.value?[M.value?.$validateSync()]:[]].every(e=>!!e)}catch{return!1}}let{$shortcuts:K,$localPending:q,...J}=w,Y=u({...J,...K,$path:i,$initialValue:h,$originalValue:_,$self:M,$externalErrors:s,$fields:P,$reset:B,$touch:V,$validate:G,$unwatch:R,$watch:L,$clearExternalErrors:z,$extractDirtyFields:U,$abort:W,$validateSync:te,...o?{"~modifiers":w.$modifiers}:{},...Se(G)});return Object.defineProperty(Y,Symbol.for(`regle:instance`),{value:!0}),y(()=>{for(let e of Object.keys(Y).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete Y[e];for(let e of Object.values(P.value))e?.$name&&Object.assign(Y,{[e.$name]:e})}),Y}function De({rulesDef:e,...n}){if(ce(e,n.state))return Te({rulesDef:e,...n});if(se(n.state,e)){if(G(n.state))return Ee({rulesDef:e,...n});{let r=t().run(()=>{let e=p(n.state.value?n.state:d({}));return v(()=>n.state.value,t=>{e.value=t},{deep:!0}),v(e,e=>{n.state.value=e},{deep:!0}),{fakeState:e}}),{state:i,...a}=n;return Ee({rulesDef:e,...a,state:r.fakeState})}}else if(le(e))return Ce({rulesDef:a(e.value)?e.value:e,...n})}function Oe({initialState:e,originalState:t,options:n,scopeRules:i,state:a,customRules:o,shortcuts:c,schemaErrors:u,schemaMode:f=!1,onValidate:p,overrides:h}){let g=he(),_=d(),y=d(),b,x,S;function C(){S=v(()=>m(n.disabled),async e=>{e?O():(D(),T())})}function T(){b=v(()=>n.externalErrors?.value,()=>{x?.(),n.externalErrors?.value&&Object.keys(n.externalErrors.value).some(e=>e.includes(`.`))?y.value=w(n.externalErrors.value):y.value=n.externalErrors?.value,E()},{immediate:!0,deep:!0})}function E(){x=v(()=>y.value,()=>{b?.(),n.externalErrors?.value&&(n.externalErrors.value=y.value),T()},{deep:!0})}function D(){se(a,i)?_.value=Ee({rootRules:i,rulesDef:i,state:a,customMessages:o?.(),storage:g,options:n,externalErrors:y,validationGroups:n.validationGroups,initialState:e,originalState:t,shortcuts:c,fieldName:void 0,path:``,cachePath:``,schemaErrors:u,rootSchemaErrors:u,schemaMode:f,onValidate:p,overrides:h}):le(i)&&(_.value=Ce({rulesDef:i,state:a,customMessages:o?.(),storage:g,options:n,externalErrors:y,initialState:e,originalState:t,shortcuts:c,fieldName:void 0,path:``,cachePath:``,schemaMode:f,schemaErrors:u,onValidate:p,overrides:h}))}D(),m(n.disabled)?s().then(()=>{_.value?.$unwatch()}):T(),C();function O(){_.value?.$unwatch(),x?.(),b?.()}return r()&&l(()=>{O(),S?.()}),_}function ke({state:t,rulesFactory:n,options:r,globalOptions:o,customRules:s,shortcuts:c,overrides:l}){let u=a(n)?n:typeof n==`function`?void 0:e(()=>n),p=i(Z,void 0)??{},m={...p.modifiers,...o},g=()=>({...p.rules?.(),...s?.()}),_={...p.shortcuts,...c},v={...p.overrides,...l},b={...m,...r},S,C=f(u??{});typeof n==`function`&&(S=y(()=>{C.value=n(t),h(C)}));let w=d(x(t.value)?{...j(t.value)}:j(t.value)),T=x(t.value)?{...j(t.value)}:j(t.value);return ne(()=>{S?.()}),Oe({scopeRules:C,state:t,options:b,initialState:w,originalState:T,customRules:g,shortcuts:_,overrides:v})}function Ae(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s,c){let l=a(t)?t:d(t),u=e(()=>m(c?.disabled)??!1);return{r$:I(ke({state:l,rulesFactory:s,options:c,globalOptions:r,customRules:n,shortcuts:i,overrides:o}),u)}}return s}const je=Ae();function Me(){function e(e,t){return t}return e}const Ne=Me();function Pe(e,t){return S(m(e).$errors,String(t))}function Fe(e,t){return S(m(e).$issues,String(t))}function Ie(e){let t={};if(Object.entries(e).some(([e,t])=>$(t)||typeof t==`function`))return null;for(let n in e){let r=e[n];r&&x(r)&&`$each`in r&&r.$each&&x(r.$each)?t[n]=[Ie(r.$each)]:x(r)&&!O(r)&&!Object.entries(r).some(([e,t])=>$(t)||typeof t==`function`)?t[n]=Ie(r):t[n]=null}return t}function Le(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s){let c=a(t)?t:typeof t==`function`?void 0:e(()=>t),l=d(Ie(c?.value)),u=e(()=>m(s?.disabled)??!1);return I(ke({state:l,rulesFactory:c,options:s,globalOptions:r,customRules:n,shortcuts:i,overrides:o}),u)}return s}const Re=Le();function ze(e){if(D(e)){let t=e,n=class extends t{constructor(...e){return super(...e),Be(this)}};return Object.defineProperty(n,`name`,{value:t.name}),Be(n)}return Be(e)}function Be(e){return!T(e,Q.REGLE_STATIC)&&Object.isExtensible(e)&&E(e,Q.REGLE_STATIC,!0),e}function Ve({rules:e,modifiers:t,shortcuts:n,overrides:r}){let i=Ae({rules:e,modifiers:t,shortcuts:n,overrides:r}),a=Le({rules:e,modifiers:t,shortcuts:n,overrides:r});return i.__config={rules:e,modifiers:t,shortcuts:n,overrides:r},a.__config={rules:e,modifiers:t,shortcuts:n,overrides:r},{useRegle:i,inferRules:Me(),useRules:a}}function He(e,{rules:t,modifiers:n,shortcuts:r,overrides:i}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?C(a.modifiers,n):a.modifiers??n,c=a.shortcuts&&r?C(a.shortcuts,r):a.shortcuts??r,l=a.overrides&&i?C(a.overrides,i):a.overrides??i,u=Ae({rules:o,modifiers:s,shortcuts:c,overrides:l});return u.__config={rules:o,modifiers:s,shortcuts:c,overrides:l},{useRegle:u,inferRules:Me()}}function Ue(e){return e}function We(t,n){let r=n??!1,i=e({get:()=>r?Object.values(t).map(e=>e.$value):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$value])),set:e=>{r||typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$value=n)}}),a=e({get:()=>Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentValue])),set:e=>{typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$silentValue=n)}}),o=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$dirty)}),s=e(()=>Object.entries(t).some(([e,t])=>t?.$anyDirty)),c=e(()=>Object.entries(t).some(([e,t])=>t?.$invalid)),l=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$correct||t.$anyDirty&&!t.$invalid)}),d=e(()=>Object.entries(t).some(([e,t])=>t?.$error)),f=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$ready)}),p=e(()=>Object.entries(t).some(([e,t])=>t?.$pending)),m=e(()=>r?Object.entries(t).map(([e,t])=>t.$issues):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$issues]))),h=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentIssues):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentIssues]))),g=e(()=>r?Object.entries(t).map(([e,t])=>t.$errors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$errors]))),_=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentErrors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentErrors]))),v=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$edited)}),b=e(()=>Object.entries(t).some(([e,t])=>t?.$anyEdited)),x=e(()=>r?Object.values(t):t);function S(e){Object.values(t).forEach(t=>{t.$reset(e)})}function C(){Object.values(t).forEach(e=>{e.$touch()})}function w(e=!0){return Object.values(t).map(t=>t.$extractDirtyFields(e))}function T(){Object.values(t).forEach(e=>{e.$clearExternalErrors()})}async function E(e){try{e&&(i.value=e);let n=i.value;return{valid:(await Promise.allSettled(Object.values(t).map(e=>e.$validate()))).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:n,errors:g.value,issues:m.value}}catch{return{valid:!1,data:i.value,errors:g.value,issues:m.value}}}let D=u({...!r&&{$silentValue:a},$errors:g,$issues:m,$silentIssues:h,$silentErrors:_,$instances:x,$value:i,$dirty:o,$anyDirty:s,$invalid:c,$correct:l,$error:d,$pending:p,$ready:f,$edited:v,$anyEdited:b,$reset:S,$touch:C,$validate:E,$extractDirtyFields:w,$clearExternalErrors:T});return y(()=>{if(!r){for(let e of Object.keys(D).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete D[e];for(let[e,t]of Object.entries(x.value))Object.assign(D,{[e]:t})}}),D}function Ge(t,n){function r(r){let i=e(()=>m(r)),a=u({});c();let o=d(l(t.value)),s=u({r$:o});function c(){i.value&&(typeof i.value==`string`&&!t.value[i.value]?t.value[i.value]={}:Array.isArray(i.value)&&i.value.forEach(e=>{t.value[e]||(t.value[e]={})}))}v(i,c),v(t,e=>{o.value=l(e)},{deep:!0});function l(e){return i.value?typeof i.value==`string`?We(e[i.value]??{},!n.asRecord):(Object.keys(a).forEach(e=>{delete a[e]}),i.value.forEach(t=>{Object.entries(e[t]).forEach(([e,t])=>{Object.assign(a,{[e]:t})})}),We(a,!n.asRecord)):We(e[`~~global`]??{},!n.asRecord)}return{r$:s.r$}}return{useCollectScope:r}}function Ke(t,r){let i=r??je;return{useScopedRegle:((r,a,o)=>{let{namespace:s,scopeKey:l,id:u,...f}=o??{};i.__config??={};let p=e(()=>u??l),h=e(()=>m(s)),g=d(`${Object.keys(t.value).length+1}-${X()}`),_=e(()=>p.value??`instance-${g.value}`),{r$:y}=i(r,a,{...f,id:p.value});x(),ne(b),v(h,(e,t)=>{b(t),x()}),n()&&c(()=>{let e=n();typeof window<`u`&&e?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(e?.proxy?.$el?.parentElement)&&b()});function b(e){let n=e??h.value;n?t.value[n]&&delete t.value[n][_.value]:t.value[`~~global`][_.value]&&delete t.value[`~~global`][_.value]}function x(){h.value?(t.value[h.value]||(t.value[h.value]={}),t.value[h.value][_.value]=y):(t.value[`~~global`]||(t.value[`~~global`]={}),t.value[`~~global`][_.value]=y)}return{r$:y,dispose:b,register:x}})}}function qe(e){let t=(e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):re(()=>d({"~~global":{}})))(),{useScopedRegle:n}=Ke(t,e?.customUseRegle),{useCollectScope:r}=Ge(t,{asRecord:e?.asRecord});return{useScopedRegle:n,useCollectScope:r}}const{useCollectScope:Je,useScopedRegle:Ye}=qe(),Xe=Je,Ze=Ye;function Qe(t,n,r){let i=e(()=>m(t)[n]);return e(()=>r.find(e=>{if(e[n]&&`literal`in e[n]){let t=e[n].literal;if($(t))return m(t._params?.[0])===i.value}})||r.find(e=>x(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`))||{})}function $e(e,t,n){return!!e&&t in e&&x(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function et(e,t,n,r){let i=a(e)?p(e.value,`$fields`):p(e,`$fields`),o=d();return v(i,async()=>{await s(),$e(i.value,t,n)?o.value=p(e).value:o.value=void 0},{immediate:!0,flush:`pre`}),o}function tt(e){return e}function nt(e,t){return n=>C({...e},t(n))}const rt={install(e,t){e.provide(oe,me),t&&e.provide(Z,t)}};export{L as InternalRuleType,rt as RegleVuePlugin,H as createRule,qe as createScopedUseRegle,Qe as createVariant,Ve as defineRegleConfig,Ue as defineRegleOptions,tt as defineRules,He as extendRegleConfig,ye as flatErrors,Pe as getErrors,Fe as getIssues,Ne as inferRules,W as isRegleInstance,ze as markStatic,We as mergeRegles,$e as narrowVariant,nt as refineRules,R as unwrapRuleParameters,Xe as useCollectScope,je as useRegle,Oe as useRootStorage,Re as useRules,Ze as useScopedRegle,et as variantToRef};
|