@regle/core 1.28.0 → 1.28.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/regle-core.d.ts +12 -13
- package/dist/regle-core.js +97 -143
- package/dist/regle-core.min.js +2 -2
- package/package.json +4 -2
package/dist/regle-core.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @regle/core v1.28.
|
|
2
|
+
* @regle/core v1.28.2
|
|
3
3
|
* (c) 2026 Victor Garcia
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { ComputedRef, MaybeRef, MaybeRefOrGetter, Plugin, Raw, Ref, UnwrapNestedRefs, UnwrapRef } from "vue";
|
|
8
|
-
import { EmptyObject, Get, IsAny, IsEmptyObject, IsLiteral, IsNever, IsNullable, IsOptional, IsStringLiteral, IsUnion, IsUnknown, Merge, Or, Paths, RequireAtLeastOne, RequireOneOrNone, RequiredDeep, UnionToIntersection, UnionToTuple } from "type-fest";
|
|
8
|
+
import { EmptyObject, Get, IsAny, IsEmptyObject, IsLiteral, IsNever, IsNullable, IsOptional, IsStringLiteral, IsUnion, IsUnknown, Merge, Or, OrAll, Paths, RequireAtLeastOne, RequireOneOrNone, RequiredDeep, UnionToIntersection, UnionToTuple } from "type-fest";
|
|
9
9
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
10
10
|
declare const RegleStaticSymbol: unique symbol;
|
|
11
11
|
type RegleStatic<T> = T extends (new (...args: infer Args) => infer U) ? RegleStaticImpl<new (...args: Args) => RegleStaticImpl<U>> : RegleStaticImpl<T>;
|
|
@@ -728,7 +728,7 @@ interface LocalRegleBehaviourOptions<TState extends Record<string, any>, TRules
|
|
|
728
728
|
*
|
|
729
729
|
* More details: https://reglejs.dev/advanced-usage/external-errors
|
|
730
730
|
*/
|
|
731
|
-
externalErrors?: Ref<RegleExternalErrorTree<Unwrap<TState
|
|
731
|
+
externalErrors?: Ref<RegleExternalErrorTree<Unwrap<TState>>>;
|
|
732
732
|
/**
|
|
733
733
|
* A dictionary of external issues to be injected into the field statuses.
|
|
734
734
|
*
|
|
@@ -736,7 +736,7 @@ interface LocalRegleBehaviourOptions<TState extends Record<string, any>, TRules
|
|
|
736
736
|
* They are mutually exclusive with `externalErrors`: assigning one clears the other.
|
|
737
737
|
* You can also call `r$.$setExternalIssues(...)` directly without providing this option.
|
|
738
738
|
*/
|
|
739
|
-
externalIssues?: Ref<RegleExternalIssueTree<Unwrap<TState
|
|
739
|
+
externalIssues?: Ref<RegleExternalIssueTree<Unwrap<TState>>>;
|
|
740
740
|
/**
|
|
741
741
|
* Allows you to group fields for custom collective validation logic.
|
|
742
742
|
*
|
|
@@ -803,7 +803,7 @@ type CollectionRegleBehaviourOptions<TValue extends unknown = unknown> = FieldRe
|
|
|
803
803
|
* */
|
|
804
804
|
$deepCompare?: boolean;
|
|
805
805
|
};
|
|
806
|
-
type ResolvedRegleBehaviourOptions = DeepMaybeRef<RequiredDeep<RegleBehaviourOptions>> & LocalRegleBehaviourOptions<Record<string, any>, Record<string, any>, Record<string, any[]
|
|
806
|
+
type ResolvedRegleBehaviourOptions = DeepMaybeRef<RequiredDeep<RegleBehaviourOptions>> & LocalRegleBehaviourOptions<Record<string, any>, Record<string, any>, Record<string, any[]>> & FieldOnlyRegleBehaviourOptions;
|
|
807
807
|
type ShortcutCommonFn<T extends Record<string, any>> = {
|
|
808
808
|
[x: string]: (element: Omit<OmitByType<T, Function>, '~standard'>) => unknown;
|
|
809
809
|
};
|
|
@@ -1304,7 +1304,8 @@ type ProcessNestedFields<TState extends Record<string, any> | undefined, TRules
|
|
|
1304
1304
|
* @public
|
|
1305
1305
|
*/
|
|
1306
1306
|
type RegleStatus<TState extends object | Record<string, any> | undefined = Record<string, any>, TRules extends ReglePartialRuleTree<NonNullable<TState>> = Record<string, any>, TShortcuts extends RegleShortcutDefinition = {}, _TFields = ProcessNestedFields<TState, TRules, TShortcuts, true>> = Omit<RegleCommonStatus<TState, TState, TRules>, '$issues' | '$errors'> & {
|
|
1307
|
-
/** Represents all the children of your object. You can access any nested child at any depth to get the relevant data you need for your form. */readonly $fields: _TFields;
|
|
1307
|
+
/** Represents all the children of your object. You can access any nested child at any depth to get the relevant data you need for your form. */readonly $fields: _TFields; /** Represents the status of the parent object. Status only concern the object itself and not its children */
|
|
1308
|
+
readonly $self: RegleFieldStatus<TState, TRules['$self'] extends RegleRuleDeclInput<any, Partial<ExtendedRulesDeclarations>> ? TRules['$self'] : EmptyObject, TShortcuts>;
|
|
1308
1309
|
/**
|
|
1309
1310
|
* Collection of all the issues, collected for all children properties and nested forms.
|
|
1310
1311
|
*
|
|
@@ -1322,9 +1323,7 @@ type RegleStatus<TState extends object | Record<string, any> | undefined = Recor
|
|
|
1322
1323
|
$setExternalIssues(issues: RegleExternalIssueTree<TState>): void; /** Will return a copy of your state with only the fields that are dirty. By default it will filter out nullish values or objects, but you can override it with the first parameter $extractDirtyFields(false). */
|
|
1323
1324
|
$extractDirtyFields: (filterNullishValues?: boolean) => DeepPartial<TState>; /** Sets all properties as dirty, triggering all rules. It returns a promise that will either resolve to false or a type safe copy of your form state. Values that had the required rule will be transformed into a non-nullable value (type only). */
|
|
1324
1325
|
$validate: (forceValues?: JoinDiscriminatedUnions<TState> extends EmptyObject ? any : HasNamedKeys<JoinDiscriminatedUnions<TState>> extends true ? IsUnknown<JoinDiscriminatedUnions<TState>> extends true ? any : JoinDiscriminatedUnions<TState> : any) => Promise<RegleResult<JoinDiscriminatedUnions<TState>, TRules>>;
|
|
1325
|
-
} & (HasNamedKeys<TState> extends true ? _TFields : {}) & CustomNestedProperties & ([TShortcuts['nested']] extends [never] ? {} : { [K in keyof TShortcuts['nested']]: ReturnType<NonNullable<TShortcuts['nested']>[K]> })
|
|
1326
|
-
/** Represents the status of the parent object. Status only concern the object itself and not its children */readonly $self: RegleFieldStatus<TState, NonNullable<TRules['$self']>, TShortcuts>;
|
|
1327
|
-
} : {});
|
|
1326
|
+
} & (HasNamedKeys<TState> extends true ? _TFields : {}) & CustomNestedProperties & ([TShortcuts['nested']] extends [never] ? {} : { [K in keyof TShortcuts['nested']]: ReturnType<NonNullable<TShortcuts['nested']>[K]> });
|
|
1328
1327
|
/**
|
|
1329
1328
|
* @internal
|
|
1330
1329
|
* @reference {@link RegleStatus}
|
|
@@ -1395,7 +1394,7 @@ type RegleFieldStatus<TState extends any = any, TRules extends RegleFormProperty
|
|
|
1395
1394
|
$setExternalErrors(errors: string[]): void; /** Sets the external issues for the field. */
|
|
1396
1395
|
$setExternalIssues(issues: RegleFieldIssue[]): void; /** Will return a copy of your state with only the fields that are dirty. By default it will filter out nullish values or objects, but you can override it with the first parameter $extractDirtyFields(false). */
|
|
1397
1396
|
$extractDirtyFields: (filterNullishValues?: boolean) => MaybeOutput<TState>; /** Sets all properties as dirty, triggering all rules. It returns a promise that will either resolve to false or a type safe copy of your form state. Values that had the required rule will be transformed into a non-nullable value (type only). */
|
|
1398
|
-
$validate: (forceValues?: IsUnknown<TState> extends true ? any : TState) => Promise<RegleFieldResult<TState, TRules>>; /** This is reactive tree containing all the declared rules of your field. To know more about the rule properties check the rules properties section */
|
|
1397
|
+
$validate: (forceValues?: HasNamedKeys<TState> extends true ? (IsUnknown<TState> extends true ? any : TState) : any) => Promise<RegleFieldResult<TState, TRules>>; /** This is reactive tree containing all the declared rules of your field. To know more about the rule properties check the rules properties section */
|
|
1399
1398
|
readonly $rules: ComputeFieldRules<TState, TRules>;
|
|
1400
1399
|
} & CustomFieldProperties & ([TShortcuts['fields']] extends [never] ? {} : { [K in keyof TShortcuts['fields']]: ReturnType<NonNullable<TShortcuts['fields']>[K]> });
|
|
1401
1400
|
/**
|
|
@@ -1573,7 +1572,7 @@ type RegleRuleStatus<TValue = any, TParams extends any[] = any[], TMetadata exte
|
|
|
1573
1572
|
*/
|
|
1574
1573
|
$parseSync(): boolean; /** Reset the $valid, $metadata and $pending states */
|
|
1575
1574
|
$reset(): void; /** Returns the original rule validator function. */
|
|
1576
|
-
$validator: ((value: IsUnknown<TValue> extends true ? any : MaybeInput<TValue
|
|
1575
|
+
$validator: ((value: HasNamedKeys<TValue> extends true ? (IsUnknown<TValue> extends true ? any : MaybeInput<TValue>) : any, ...args: any[]) => RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>) & ((value: HasNamedKeys<TValue> extends true ? (IsUnknown<TValue> extends true ? any : MaybeInput<TValue>) : any, ...args: [TParams] extends [never[]] ? [] : [unknown[]] extends [TParams] ? any[] : TParams) => RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>);
|
|
1577
1576
|
} & ([TParams] extends [never[]] ? {} : [unknown[]] extends [TParams] ? {
|
|
1578
1577
|
/** Contains the rule parameters when the rule accepts arguments. */readonly $params?: any[];
|
|
1579
1578
|
} : {
|
|
@@ -1782,7 +1781,7 @@ type RegleIssuesTree<TState = MaybeRef<Record<string, any> | any[]>, TSchema ext
|
|
|
1782
1781
|
};
|
|
1783
1782
|
type RegleExternalErrorTree<TState = MaybeRef<Record<string, any> | any[]>, TSchema extends boolean = false> = IsAny<TState> extends true ? any : IsUnknown<TState> extends true ? any : ({ [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], true, TSchema> } & {
|
|
1784
1783
|
$self?: RegleFieldIssue[];
|
|
1785
|
-
}) | Record<Paths<TState> | (string & {}), string[]
|
|
1784
|
+
}) | Partial<Record<Paths<TState> | (string & {}), string[]>>;
|
|
1786
1785
|
type RegleExternalIssueTree<TState = MaybeRef<Record<string, any> | any[]>, TSchema extends boolean = false> = IsAny<TState> extends true ? any : IsUnknown<TState> extends true ? any : ({ [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], true, true, TSchema> } & {
|
|
1787
1786
|
$self?: RegleExternalFieldIssue[];
|
|
1788
1787
|
}) | Partial<Record<Paths<TState> | (string & {}), RegleExternalFieldIssue[]>>;
|
|
@@ -1811,7 +1810,7 @@ type RegleFieldIssue<TRules extends RegleFormPropertyType<unknown> = EmptyObject
|
|
|
1811
1810
|
readonly $rule: string;
|
|
1812
1811
|
} }[keyof ComputeFieldRules<any, TRules>]);
|
|
1813
1812
|
type RegleExternalFieldIssue = Pick<RegleFieldIssue, '$message'> & Partial<Omit<RegleFieldIssue, '$message'>> & Record<string, unknown>;
|
|
1814
|
-
type ComputeFieldRules<TState extends any, TRules extends MaybeRef<RegleFormPropertyType<unknown>>> = IsEmptyObject<UnwrapRef<TRules>> extends true ? {
|
|
1813
|
+
type ComputeFieldRules<TState extends any, TRules extends MaybeRef<RegleFormPropertyType<unknown>>> = OrAll<[IsEmptyObject<UnwrapRef<TRules>>, IsEmptyObject<TState>, IsAny<UnwrapRef<TRules>>]> extends true ? {
|
|
1815
1814
|
readonly [x: string]: RegleRuleStatus<TState, any[], any>;
|
|
1816
1815
|
} : { readonly [TRuleKey in keyof UnwrapRef<TRules> as TRuleKey extends '$each' | keyof FieldRegleBehaviourOptions ? never : TRuleKey]: RegleRuleStatus<TState, UnwrapRef<TRules>[TRuleKey] extends RegleRuleDefinitionLight<infer TParams, any> ? TParams : [], UnwrapRef<TRules>[TRuleKey] extends RegleRuleDefinitionLight<any, any, infer TMetadata> ? TMetadata : UnwrapRef<TRules>[TRuleKey] extends InlineRuleDeclaration<any, any[], infer TReturn> ? TReturn extends Promise<infer P> ? P : TReturn : RegleRuleMetadataDefinition> };
|
|
1817
1816
|
type RegleCollectionErrors<TState extends any, TIssue extends boolean = false, TSchema extends boolean = false> = {
|
package/dist/regle-core.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @regle/core v1.28.
|
|
2
|
+
* @regle/core v1.28.2
|
|
3
3
|
* (c) 2026 Victor Garcia
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { computed, effectScope, getCurrentInstance, getCurrentScope, inject, isRef, markRaw, nextTick, onMounted, onScopeDispose, reactive, readonly, ref, shallowRef, toRef, toValue, triggerRef, unref, version, watch, watchEffect } from "vue";
|
|
8
|
-
import {
|
|
9
|
-
import { DevToolsMessagingHookKeys, DevToolsV6PluginAPIHookKeys, devtoolsContext, devtoolsState, getInspector } from "@vue/devtools-kit";
|
|
8
|
+
import { setupDevtoolsPlugin } from "@vue/devtools-api";
|
|
10
9
|
/**
|
|
11
10
|
* Server side friendly way of checking for a File
|
|
12
11
|
*/
|
|
@@ -33,6 +32,10 @@ function getDotPath(obj, propsArg, defaultValue) {
|
|
|
33
32
|
}
|
|
34
33
|
return obj;
|
|
35
34
|
}
|
|
35
|
+
function isPrototypeKey(prop) {
|
|
36
|
+
const key = String(prop);
|
|
37
|
+
return key === "__proto__" || key === "constructor" || key === "prototype";
|
|
38
|
+
}
|
|
36
39
|
function merge(_obj1, ..._objs) {
|
|
37
40
|
var args = [].slice.call(arguments);
|
|
38
41
|
var arg;
|
|
@@ -47,6 +50,15 @@ function merge(_obj1, ..._objs) {
|
|
|
47
50
|
}
|
|
48
51
|
return result;
|
|
49
52
|
}
|
|
53
|
+
const numericPartRegex = /^\d+$/;
|
|
54
|
+
function isCollectionConflict(fieldPath, nextPart, state) {
|
|
55
|
+
if (state !== void 0 && isObject(state)) {
|
|
56
|
+
const pathKey = fieldPath.join(".");
|
|
57
|
+
const stateValue = pathKey ? getDotPath(state, pathKey) : state;
|
|
58
|
+
if (stateValue !== void 0) return Array.isArray(stateValue);
|
|
59
|
+
}
|
|
60
|
+
return numericPartRegex.test(nextPart);
|
|
61
|
+
}
|
|
50
62
|
/**
|
|
51
63
|
* Converts an object with dot-path keys into a nested object structure.
|
|
52
64
|
* Example:
|
|
@@ -61,55 +73,61 @@ function merge(_obj1, ..._objs) {
|
|
|
61
73
|
* password: "bar",
|
|
62
74
|
* collection: [{ name: "hello" }]
|
|
63
75
|
* }
|
|
76
|
+
*
|
|
77
|
+
* When a parent key and a deeper dot-path key conflict (e.g. `user` + `user.email`),
|
|
78
|
+
* the parent error is moved to `$self` and children are nested as object keys.
|
|
79
|
+
* Collection fields use `$each` when the next segment is a numeric index.
|
|
64
80
|
*/
|
|
65
|
-
function dotPathObjectToNested(obj) {
|
|
81
|
+
function dotPathObjectToNested(obj, state) {
|
|
82
|
+
if (!obj) return {};
|
|
66
83
|
const result = {};
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
const value = obj[key];
|
|
84
|
+
const entries = Object.entries(obj).sort((a, b) => b[0].split(".").length - a[0].split(".").length);
|
|
85
|
+
for (const [key, value] of entries) {
|
|
70
86
|
const path = key.split(".");
|
|
71
87
|
let current = result;
|
|
72
88
|
for (let i = 0; i < path.length; i++) {
|
|
73
89
|
const part = path[i];
|
|
90
|
+
if (isPrototypeKey(part)) break;
|
|
74
91
|
const isLast = i === path.length - 1;
|
|
75
|
-
const
|
|
92
|
+
const isNumericPart = numericPartRegex.test(part);
|
|
93
|
+
const arrayIndex = Array.isArray(current) && isNumericPart ? Number(part) : null;
|
|
94
|
+
const nextPart = path[i + 1];
|
|
95
|
+
const fieldPath = path.slice(0, i + 1);
|
|
76
96
|
if (arrayIndex !== null) {
|
|
77
97
|
if (Array.isArray(current)) if (isLast) current[arrayIndex] = value;
|
|
78
98
|
else {
|
|
79
|
-
if (typeof current[arrayIndex] !== "object" || current[arrayIndex] === null) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
$self: []
|
|
84
|
-
} : {};
|
|
85
|
-
}
|
|
99
|
+
if (typeof current[arrayIndex] !== "object" || current[arrayIndex] === null) current[arrayIndex] = nextPart && numericPartRegex.test(nextPart) ? {
|
|
100
|
+
$each: [],
|
|
101
|
+
$self: []
|
|
102
|
+
} : {};
|
|
86
103
|
current = "$each" in current[arrayIndex] ? current[arrayIndex].$each : current[arrayIndex];
|
|
87
104
|
}
|
|
88
|
-
} else if (isLast) if (Array.isArray(current[part]))
|
|
89
|
-
let previous = current[part].slice();
|
|
90
|
-
current[part] = {};
|
|
91
|
-
current[part].$self = previous;
|
|
92
|
-
} else if (typeof current[part] === "object" && current[part] !== null && "$each" in current[part]) current[part].$self = value;
|
|
105
|
+
} else if (isLast) if (typeof current[part] === "object" && current[part] !== null && !Array.isArray(current[part])) current[part].$self = value;
|
|
93
106
|
else current[part] = value;
|
|
94
107
|
else {
|
|
95
|
-
const
|
|
108
|
+
const isCollection = isCollectionConflict(fieldPath, nextPart, state);
|
|
96
109
|
if (Array.isArray(current[part])) {
|
|
97
|
-
|
|
98
|
-
current[part] =
|
|
99
|
-
|
|
110
|
+
const previous = current[part].slice();
|
|
111
|
+
current[part] = isCollection ? {
|
|
112
|
+
$each: [],
|
|
113
|
+
$self: previous
|
|
114
|
+
} : { $self: previous };
|
|
100
115
|
}
|
|
101
|
-
if (typeof current[part] !== "object" || current[part] === null
|
|
116
|
+
if (typeof current[part] !== "object" || current[part] === null) current[part] = isCollection ? {
|
|
102
117
|
$each: [],
|
|
103
118
|
$self: []
|
|
104
|
-
};
|
|
105
|
-
|
|
106
|
-
if ("$each" in current[part]) current = current[part].$each;
|
|
119
|
+
} : {};
|
|
120
|
+
if (isCollection && "$each" in current[part]) current = current[part].$each;
|
|
107
121
|
else current = current[part];
|
|
108
122
|
}
|
|
109
123
|
}
|
|
110
124
|
}
|
|
111
125
|
return result;
|
|
112
126
|
}
|
|
127
|
+
function normalizeDotPathExternalValue(value, state) {
|
|
128
|
+
if (value && isObject(value) && Object.keys(value).some((key) => key.includes("."))) return dotPathObjectToNested(value, state);
|
|
129
|
+
return value;
|
|
130
|
+
}
|
|
113
131
|
function hasOwn(val, key) {
|
|
114
132
|
return Object.prototype.hasOwnProperty.call(val, key);
|
|
115
133
|
}
|
|
@@ -408,7 +426,7 @@ function createReactiveParams(params) {
|
|
|
408
426
|
* Due to `function.length` not returning default parameters, it needed to parse the func.toString()
|
|
409
427
|
*/
|
|
410
428
|
function getFunctionParametersLength(func) {
|
|
411
|
-
const paramsMatch = func.toString().replace(
|
|
429
|
+
const paramsMatch = func.toString().slice(0, 512).replace(/\/\/[^\n]*/g, "").replace(/\/\*[\s\S]*?\*\//g, "").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);
|
|
412
430
|
if (!paramsMatch) return 0;
|
|
413
431
|
return (paramsMatch[0] || paramsMatch[1] || paramsMatch[2] || paramsMatch[3] || paramsMatch[4] || "").split(",").map((p) => p.trim()).filter((p) => p.length > 0).length;
|
|
414
432
|
}
|
|
@@ -662,12 +680,6 @@ function mergeArrayGroupProperties(entries, property) {
|
|
|
662
680
|
return all.concat(fetchedProperty);
|
|
663
681
|
}, []);
|
|
664
682
|
}
|
|
665
|
-
const regleSymbol = Symbol("regle");
|
|
666
|
-
const regleConfigSymbol = Symbol("regle-config");
|
|
667
|
-
const REGLE_FLAGS = { REGLE_STATIC: "__regle_static" };
|
|
668
|
-
function isRegleDevtoolsTestEnv() {
|
|
669
|
-
return Boolean(typeof globalThis !== "undefined" && ("__vitest_worker__" in globalThis || "__JEST_GLOBAL__" in globalThis || typeof window !== "undefined" && "Cypress" in window || typeof process !== "undefined" && process.env && (process.env.VITEST || process.env.JEST_WORKER_ID || process.env.NODE_ENV === "test" || process.env.PLAYWRIGHT_TEST)));
|
|
670
|
-
}
|
|
671
683
|
const COLORS = {
|
|
672
684
|
ERROR: {
|
|
673
685
|
text: 16777215,
|
|
@@ -761,78 +773,30 @@ const INSPECTOR_IDS = {
|
|
|
761
773
|
COMPONENTS: "components",
|
|
762
774
|
TIMELINE: "regle-timeline"
|
|
763
775
|
};
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
const treePayload = {
|
|
770
|
-
app,
|
|
771
|
-
inspectorId,
|
|
772
|
-
filter: inspector?.treeFilter ?? "",
|
|
773
|
-
rootNodes: []
|
|
774
|
-
};
|
|
775
|
-
await devtoolsContext.hooks.callHookWith(async (callbacks) => {
|
|
776
|
-
await Promise.all(callbacks.map((cb) => cb(treePayload)));
|
|
777
|
-
}, DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_TREE, treePayload);
|
|
778
|
-
await devtoolsContext.hooks.callHookWith(async (callbacks) => {
|
|
779
|
-
await Promise.all(callbacks.map((cb) => cb({
|
|
780
|
-
inspectorId,
|
|
781
|
-
rootNodes: treePayload.rootNodes
|
|
782
|
-
})));
|
|
783
|
-
}, DevToolsMessagingHookKeys.SEND_INSPECTOR_TREE_TO_CLIENT, {
|
|
784
|
-
inspectorId,
|
|
785
|
-
rootNodes: treePayload.rootNodes
|
|
786
|
-
});
|
|
787
|
-
const nodeId = inspector?.selectedNodeId ?? "";
|
|
788
|
-
const statePayload = {
|
|
789
|
-
app,
|
|
790
|
-
inspectorId,
|
|
791
|
-
nodeId,
|
|
792
|
-
state: {}
|
|
793
|
-
};
|
|
794
|
-
const stateCtx = { currentTab: `custom-inspector:${inspectorId}` };
|
|
795
|
-
if (nodeId) await devtoolsContext.hooks.callHookWith(async (callbacks) => {
|
|
796
|
-
await Promise.all(callbacks.map((cb) => cb(statePayload, stateCtx)));
|
|
797
|
-
}, DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_STATE, statePayload);
|
|
798
|
-
await devtoolsContext.hooks.callHookWith(async (callbacks) => {
|
|
799
|
-
await Promise.all(callbacks.map((cb) => cb({
|
|
800
|
-
inspectorId,
|
|
801
|
-
nodeId,
|
|
802
|
-
state: statePayload.state
|
|
803
|
-
})));
|
|
804
|
-
}, DevToolsMessagingHookKeys.SEND_INSPECTOR_STATE_TO_CLIENT, {
|
|
805
|
-
inspectorId,
|
|
806
|
-
nodeId,
|
|
807
|
-
state: statePayload.state
|
|
808
|
-
});
|
|
809
|
-
}
|
|
810
|
-
async function emitInspectorState(api, app) {
|
|
811
|
-
const inspectorId = INSPECTOR_IDS.INSPECTOR;
|
|
812
|
-
if (app && (devtoolsState.clientConnected || devtoolsState.connected)) {
|
|
813
|
-
await syncInspectorToClient(inspectorId, app);
|
|
814
|
-
return;
|
|
815
|
-
}
|
|
816
|
-
api.sendInspectorTree(inspectorId);
|
|
817
|
-
api.sendInspectorState(inspectorId);
|
|
776
|
+
const regleSymbol = Symbol("regle");
|
|
777
|
+
const regleConfigSymbol = Symbol("regle-config");
|
|
778
|
+
const REGLE_FLAGS = { REGLE_STATIC: "__regle_static" };
|
|
779
|
+
function isRegleDevtoolsTestEnv() {
|
|
780
|
+
return Boolean(typeof globalThis !== "undefined" && ("__vitest_worker__" in globalThis || "__JEST_GLOBAL__" in globalThis || typeof window !== "undefined" && "Cypress" in window || typeof process !== "undefined" && process.env && (process.env.VITEST || process.env.JEST_WORKER_ID || process.env.NODE_ENV === "test" || process.env.PLAYWRIGHT_TEST)));
|
|
818
781
|
}
|
|
819
|
-
|
|
820
|
-
function createRegleDevtoolsRegistry() {
|
|
782
|
+
function useRegleDevtoolsRegistry() {
|
|
821
783
|
const loggedWarning = ref(false);
|
|
822
784
|
const devtoolsApi = shallowRef();
|
|
823
|
-
const devtoolsApp = shallowRef();
|
|
824
785
|
const instances = shallowRef(/* @__PURE__ */ new Map());
|
|
825
786
|
const watchers = shallowRef(/* @__PURE__ */ new Map());
|
|
826
|
-
const
|
|
787
|
+
const idCounters = shallowRef(/* @__PURE__ */ new Map());
|
|
788
|
+
const looseIdCounter = ref(0);
|
|
827
789
|
let pendingNotifyFrame;
|
|
828
|
-
function setApi(api
|
|
790
|
+
function setApi(api) {
|
|
829
791
|
devtoolsApi.value = api;
|
|
830
|
-
if (app) devtoolsApp.value = app;
|
|
831
792
|
}
|
|
832
793
|
function register(r$, options) {
|
|
833
|
-
const
|
|
834
|
-
const
|
|
835
|
-
const
|
|
794
|
+
const idPath = options?.filePath ?? "loose";
|
|
795
|
+
const existingCounter = idCounters.value.get(idPath);
|
|
796
|
+
const perComponentCounter = existingCounter ? existingCounter + 1 : 1;
|
|
797
|
+
idCounters.value.set(idPath, perComponentCounter);
|
|
798
|
+
const id = `${options?.uid?.toString() ?? "regle"}#${++looseIdCounter.value}`;
|
|
799
|
+
const name = `r\$ #${options?.name ?? perComponentCounter}`;
|
|
836
800
|
instances.value.set(id, {
|
|
837
801
|
id,
|
|
838
802
|
name,
|
|
@@ -858,7 +822,7 @@ function createRegleDevtoolsRegistry() {
|
|
|
858
822
|
return id;
|
|
859
823
|
}
|
|
860
824
|
function notifyDevtools() {
|
|
861
|
-
if (devtoolsApi.value) emitInspectorState(devtoolsApi.value
|
|
825
|
+
if (devtoolsApi.value) emitInspectorState(devtoolsApi.value);
|
|
862
826
|
}
|
|
863
827
|
function scheduleNotifyDevtools() {
|
|
864
828
|
if (pendingNotifyFrame != null) return;
|
|
@@ -890,7 +854,6 @@ function createRegleDevtoolsRegistry() {
|
|
|
890
854
|
}
|
|
891
855
|
return {
|
|
892
856
|
devtoolsApi,
|
|
893
|
-
devtoolsApp,
|
|
894
857
|
register,
|
|
895
858
|
unregister,
|
|
896
859
|
getAll,
|
|
@@ -901,13 +864,7 @@ function createRegleDevtoolsRegistry() {
|
|
|
901
864
|
loggedWarning
|
|
902
865
|
};
|
|
903
866
|
}
|
|
904
|
-
|
|
905
|
-
if (typeof globalThis === "undefined") return createRegleDevtoolsRegistry();
|
|
906
|
-
const globalRegistry = globalThis;
|
|
907
|
-
globalRegistry[REGLE_DEVTOOLS_GLOBAL_KEY] ??= createRegleDevtoolsRegistry();
|
|
908
|
-
return globalRegistry[REGLE_DEVTOOLS_GLOBAL_KEY];
|
|
909
|
-
}
|
|
910
|
-
const regleDevtoolsRegistry = getRegleDevtoolsRegistry();
|
|
867
|
+
const regleDevtoolsRegistry = useRegleDevtoolsRegistry();
|
|
911
868
|
/**
|
|
912
869
|
* To be used by `useRegle` like composables.
|
|
913
870
|
*/
|
|
@@ -1210,6 +1167,10 @@ function handleEditInspectorState(payload) {
|
|
|
1210
1167
|
}
|
|
1211
1168
|
}
|
|
1212
1169
|
}
|
|
1170
|
+
async function emitInspectorState(api) {
|
|
1171
|
+
api.sendInspectorTree(INSPECTOR_IDS.INSPECTOR);
|
|
1172
|
+
api.sendInspectorState(INSPECTOR_IDS.INSPECTOR);
|
|
1173
|
+
}
|
|
1213
1174
|
function buildNodeTags(fieldOrR$, componentName) {
|
|
1214
1175
|
const tags = [];
|
|
1215
1176
|
let isDisabled = false;
|
|
@@ -1438,7 +1399,7 @@ function filterInspectorTree(nodes, filter) {
|
|
|
1438
1399
|
}
|
|
1439
1400
|
return filtered;
|
|
1440
1401
|
}
|
|
1441
|
-
var version$1 = "1.28.
|
|
1402
|
+
var version$1 = "1.28.2";
|
|
1442
1403
|
function createDevtools(app) {
|
|
1443
1404
|
setupDevtoolsPlugin({
|
|
1444
1405
|
id: "regle-devtools",
|
|
@@ -1449,29 +1410,7 @@ function createDevtools(app) {
|
|
|
1449
1410
|
componentStateTypes: ["Regles"],
|
|
1450
1411
|
app
|
|
1451
1412
|
}, (api) => {
|
|
1452
|
-
regleDevtoolsRegistry.setApi(api
|
|
1453
|
-
api.on.getInspectorTree(async (payload) => {
|
|
1454
|
-
if (payload.inspectorId === INSPECTOR_IDS.INSPECTOR) {
|
|
1455
|
-
const nodes = buildInspectorTree(regleDevtoolsRegistry.getAll(), payload.filter);
|
|
1456
|
-
if (nodes.length > 0) payload.rootNodes = nodes;
|
|
1457
|
-
else payload.rootNodes = [{
|
|
1458
|
-
id: "empty-regles",
|
|
1459
|
-
label: "No Regles instances found",
|
|
1460
|
-
children: []
|
|
1461
|
-
}];
|
|
1462
|
-
}
|
|
1463
|
-
});
|
|
1464
|
-
api.on.getInspectorState((payload) => {
|
|
1465
|
-
if (payload.inspectorId === INSPECTOR_IDS.INSPECTOR) {
|
|
1466
|
-
const state = buildInspectorState(payload.nodeId, (id) => regleDevtoolsRegistry.get(id));
|
|
1467
|
-
if (!state) api.sendInspectorTree(INSPECTOR_IDS.INSPECTOR);
|
|
1468
|
-
if (state) payload.state = state;
|
|
1469
|
-
else payload.state = {};
|
|
1470
|
-
}
|
|
1471
|
-
});
|
|
1472
|
-
api.on.editInspectorState((payload) => {
|
|
1473
|
-
if (payload.inspectorId === INSPECTOR_IDS.INSPECTOR) handleEditInspectorState(payload);
|
|
1474
|
-
});
|
|
1413
|
+
regleDevtoolsRegistry.setApi(api);
|
|
1475
1414
|
api.addInspector({
|
|
1476
1415
|
id: INSPECTOR_IDS.INSPECTOR,
|
|
1477
1416
|
label: "Regle",
|
|
@@ -1517,10 +1456,29 @@ function createDevtools(app) {
|
|
|
1517
1456
|
}
|
|
1518
1457
|
]
|
|
1519
1458
|
});
|
|
1520
|
-
onDevToolsClientConnected(() => {
|
|
1521
|
-
regleDevtoolsRegistry.notifyDevtools();
|
|
1522
|
-
});
|
|
1523
1459
|
regleDevtoolsRegistry.notifyDevtools();
|
|
1460
|
+
api.on.getInspectorTree(async (payload) => {
|
|
1461
|
+
if (payload.inspectorId === INSPECTOR_IDS.INSPECTOR) {
|
|
1462
|
+
const nodes = buildInspectorTree(regleDevtoolsRegistry.getAll(), payload.filter);
|
|
1463
|
+
if (nodes.length > 0) payload.rootNodes = nodes;
|
|
1464
|
+
else payload.rootNodes = [{
|
|
1465
|
+
id: "empty-regles",
|
|
1466
|
+
label: "No Regles instances found",
|
|
1467
|
+
children: []
|
|
1468
|
+
}];
|
|
1469
|
+
}
|
|
1470
|
+
});
|
|
1471
|
+
api.on.getInspectorState((payload) => {
|
|
1472
|
+
if (payload.inspectorId === INSPECTOR_IDS.INSPECTOR) {
|
|
1473
|
+
const state = buildInspectorState(payload.nodeId, (id) => regleDevtoolsRegistry.get(id));
|
|
1474
|
+
if (!state) api.sendInspectorTree(INSPECTOR_IDS.INSPECTOR);
|
|
1475
|
+
if (state) payload.state = state;
|
|
1476
|
+
else payload.state = {};
|
|
1477
|
+
}
|
|
1478
|
+
});
|
|
1479
|
+
api.on.editInspectorState((payload) => {
|
|
1480
|
+
if (payload.inspectorId === INSPECTOR_IDS.INSPECTOR) handleEditInspectorState(payload);
|
|
1481
|
+
});
|
|
1524
1482
|
});
|
|
1525
1483
|
}
|
|
1526
1484
|
/**
|
|
@@ -3558,7 +3516,7 @@ function createReactiveNestedStatus({ rulesDef, state, path = "", cachePath, roo
|
|
|
3558
3516
|
if ($fields.value) for (const field of Object.values($fields.value)) field?.$unwatch();
|
|
3559
3517
|
}
|
|
3560
3518
|
function $setExternalErrors(errors) {
|
|
3561
|
-
if (externalErrors) externalErrors.value = errors;
|
|
3519
|
+
if (externalErrors) externalErrors.value = rootRules ? normalizeDotPathExternalValue(errors, state.value) : errors;
|
|
3562
3520
|
$clearExternalIssues();
|
|
3563
3521
|
}
|
|
3564
3522
|
function $clearExternalErrors() {
|
|
@@ -3760,10 +3718,6 @@ function createReactiveChildrenStatus({ rulesDef, ...properties }) {
|
|
|
3760
3718
|
...properties
|
|
3761
3719
|
});
|
|
3762
3720
|
}
|
|
3763
|
-
function normalizeExternalValue(value) {
|
|
3764
|
-
if (value && isObject(value) && Object.keys(value).some((key) => key.includes("."))) return dotPathObjectToNested(value);
|
|
3765
|
-
return value;
|
|
3766
|
-
}
|
|
3767
3721
|
function hasExternalValue(value) {
|
|
3768
3722
|
if (Array.isArray(value)) return value.length > 0;
|
|
3769
3723
|
return isObject(value) && Object.keys(value).length > 0;
|
|
@@ -3771,7 +3725,7 @@ function hasExternalValue(value) {
|
|
|
3771
3725
|
function emptyExternalValue(value) {
|
|
3772
3726
|
return Array.isArray(value) ? [] : {};
|
|
3773
3727
|
}
|
|
3774
|
-
function createExternalChannels(options) {
|
|
3728
|
+
function createExternalChannels(options, state) {
|
|
3775
3729
|
const externalErrors = ref();
|
|
3776
3730
|
const externalIssues = ref();
|
|
3777
3731
|
let unwatchOptionErrors;
|
|
@@ -3792,7 +3746,7 @@ function createExternalChannels(options) {
|
|
|
3792
3746
|
function syncErrors(newErrors, updateOptionRef = false) {
|
|
3793
3747
|
if (syncing) return;
|
|
3794
3748
|
syncing = true;
|
|
3795
|
-
const normalizedErrors =
|
|
3749
|
+
const normalizedErrors = normalizeDotPathExternalValue(newErrors, toValue(state));
|
|
3796
3750
|
externalErrors.value = normalizedErrors;
|
|
3797
3751
|
if (updateOptionRef && options.externalErrors) options.externalErrors.value = normalizedErrors;
|
|
3798
3752
|
if (hasExternalValue(normalizedErrors)) clearIssues();
|
|
@@ -3801,7 +3755,7 @@ function createExternalChannels(options) {
|
|
|
3801
3755
|
function syncIssues(newIssues, updateOptionRef = false) {
|
|
3802
3756
|
if (syncing) return;
|
|
3803
3757
|
syncing = true;
|
|
3804
|
-
const normalizedIssues =
|
|
3758
|
+
const normalizedIssues = normalizeDotPathExternalValue(newIssues, toValue(state));
|
|
3805
3759
|
externalIssues.value = normalizedIssues;
|
|
3806
3760
|
if (updateOptionRef && options.externalIssues) options.externalIssues.value = normalizedIssues;
|
|
3807
3761
|
if (hasExternalValue(normalizedIssues)) clearErrors();
|
|
@@ -3854,7 +3808,7 @@ function useRootStorage({ initialState, originalState, options, scopeRules, stat
|
|
|
3854
3808
|
const attachedScopes = /* @__PURE__ */ new Set();
|
|
3855
3809
|
let rootScope;
|
|
3856
3810
|
const regle = ref();
|
|
3857
|
-
const externalChannels = createExternalChannels(options);
|
|
3811
|
+
const externalChannels = createExternalChannels(options, state);
|
|
3858
3812
|
let $unwatchDisabled;
|
|
3859
3813
|
function defineDisabledWatchSource() {
|
|
3860
3814
|
$unwatchDisabled = watch(() => toValue(options.disabled), async (disabled) => {
|
package/dist/regle-core.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @regle/core v1.28.
|
|
2
|
+
* @regle/core v1.28.2
|
|
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,readonly as d,ref as f,shallowRef as p,toRef as m,toValue as h,triggerRef as g,unref as _,version as v,watch as y,watchEffect as b}from"vue";import{DevToolsMessagingHookKeys as x,DevToolsV6PluginAPIHookKeys as S,devtoolsContext as C,devtoolsState as w,getInspector as T}from"@vue/devtools-kit";import{onDevToolsClientConnected as E,setupDevtoolsPlugin as D}from"@vue/devtools-api";function O(e){return e?.constructor?.name==`File`}function k(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function A(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 j(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 M(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 N(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function P(e,t,n,r=!1){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})}function F(e){return typeof e==`function`&&!!e.prototype&&`constructor`in e.prototype&&e.prototype.constructor===e}function I(e,t=!0,n=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):O(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:k(e)?e==null?!0:n?Object.keys(e).length===0:!1:!String(e).length}const L=Symbol(`regle-rule`);function R(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 z(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=>z(e,t+1)))),r==`Map`&&(n=new Map([...e].map(e=>[z(e[0],t+1),z(e[1],t+1)]))),r==`Date`&&(n=new Date(e.getTime())),r==`RegExp`&&(n=RegExp(e.source,R(e))),r==`Array`||r==`Object`){n=Array.isArray(e)?[]:{};for(let r in e)n[r]=z(e[r],t+1)}return n}function ee(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 B(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 te(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(!te(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(k(e)&&k(t)&&s&&(r||!r&&n)&&!te(e[s],t[s],n,!1))return!1}return!0}return e!==e&&t!==t}var V=class extends Error{constructor(e=`Promise was aborted`){super(e),this.name=`AbortError`}};function H(e){let t=new AbortController,{signal:n}=t,r=new Promise((t,r)=>{function i(){r(new V)}n.addEventListener(`abort`,i),e.then(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new V):t(e)}).catch(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new V):r(e)})});function i(e){t.abort(e)}return{promise:r,abort:i,signal:n}}function U(e,t,r){if(!a(e))return r?.(),u(e);let i=f(!1);return n()&&c(async()=>{await s(),typeof window<`u`&&window.requestAnimationFrame(()=>{i.value=!0})}),u(new Proxy({},{get(n,a,o){if(r?.(),t.value&&a!==`$value`&&i.value)return Reflect.get(n,a,o);if(e.value!==void 0)return _(Reflect.get(e.value,a,o))},set(t,n,i){return r?.(),a(e.value[n])&&!a(i)?e.value[n].value=i:e.value[n]=i,!0},deleteProperty(t,n){return r?.(),Reflect.deleteProperty(e.value,n)},has(t,n){return r?.(),e.value===void 0?!1:Reflect.has(e.value,n)},ownKeys(){return r?.(),e.value===void 0?[]:Object.keys(e.value)},getOwnPropertyDescriptor(){return r?.(),{enumerable:!0,configurable:!0}}}))}const W={Inline:`__inline`,Async:`__async`};function G(e){try{return e.map(e=>h(e))}catch{return[]}}function K(t){return t.map(t=>t instanceof Function?e(t):a(t)?t:m(()=>t))}function ne(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 q(e,...t){let{validator:n,type:r,async:i}=e,a=i||r===W.Async||n.constructor.name===`AsyncFunction`;return o({validator(n,...r){return e.validator(n,...G(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:G(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:G(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:G(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...G(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:K(t),_brand:L})}function re(e){if(typeof e.validator==`function`){let t=[],n=e.async??e.validator.constructor.name===`AsyncFunction`,r=q({...e,async:n},...t);if(ne(e.validator)>1){let t=function(...t){return q(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 J=Symbol.for(`regle:instance`);function Y(e){return typeof e==`object`&&!!e&&J in e}function ie(e){return k(e.value)}function ae(n,r,i){let a=t(),o;return o=n instanceof Function?a.run(()=>({computedEach:e(()=>n(r,i??0))})).computedEach:n,{scope:a,unwrapped:o}}const oe={LessThan:-1,EqualTo:0,GreaterThan:1};function se(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 oe.GreaterThan;if(i>t)return oe.LessThan;if(!isNaN(t)&&isNaN(i))return oe.GreaterThan;if(isNaN(t)&&!isNaN(i))return oe.LessThan}return oe.EqualTo}const ce=se(v,`3.5.0`)!==-1;function le(){return Math.floor(Math.random()*Date.now()).toString()}function X(){return typeof window>`u`?le():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Z(e){return r()?(l(e),!0):!1}function ue(e){let n=!1,r,i=t(!0);return((...t)=>(n||=(r=i.run(()=>e(...t)),!0),r))}function de(e,t){return e.some(e=>t?e?.[t]:!1)}function fe(e,t){return t?e.reduce((e,n)=>{let r=n?.[t]||[];return e.concat(r)},[]):[]}const pe=Symbol(`regle`),me=Symbol(`regle-config`),he={REGLE_STATIC:`__regle_static`};function ge(){return!!(typeof globalThis<`u`&&(`__vitest_worker__`in globalThis||`__JEST_GLOBAL__`in globalThis||typeof window<`u`&&`Cypress`in window||typeof process<`u`&&process.env&&(process.env.VITEST||process.env.JEST_WORKER_ID||process.env.NODE_ENV===`test`||process.env.PLAYWRIGHT_TEST)))}const Q={ERROR:{text:16777215,bg:15680580},INVALID:{text:16777215,bg:16747520},CORRECT:{text:16777215,bg:1096065},VALID:{text:16777215,bg:292951},PENDING:{text:16777215,bg:16096779},DIRTY:{text:2042167,bg:16708551},COMPONENT:{text:16777215,bg:6514417},PRISTINE:{text:1120295,bg:16777215},INACTIVE:{text:0,bg:11581118},OPTIONAL:{text:0,bg:11581118},DISABLED:{text:15680580,bg:15067115}},_e={PRISTINE:`Field is not touched yet`,DIRTY:`Field have been touched`,ERROR:`Field has errors`,CORRECT:`Field is dirty and all actives rules are valid`,VALID:`Field rules are all valid`,PENDING:`Field is pending`,INACTIVE:`Field is inactive`,OPTIONAL:`Field is not required`,DISABLED:`Validation reactivity is paused by the disabled modifier`},ve={DIRTY:`All nested fields have been touched`,ERROR:`Some nested fields have errors`,CORRECT:`All nested fields are correct`,PENDING:`Some nested fields are pending`},ye={INACTIVE:`The rule is not active`,INVALID:`Rule is invalid`,VALID:`Rule is valid`,PENDING:`Rule validator is pending`},be={ROOT:[`$value`,`$invalid`,`$dirty`,`$error`,`$pending`,`$valid`,`$ready`],FIELD:[`$value`,`$invalid`,`$dirty`,`$error`,`$pending`,`$errors`]},xe={INSPECTOR:`regle-inspector`,COMPONENTS:`components`,TIMELINE:`regle-timeline`};async function Se(e,t){let n=T(e,t),r={app:t,inspectorId:e,filter:n?.treeFilter??``,rootNodes:[]};await C.hooks.callHookWith(async e=>{await Promise.all(e.map(e=>e(r)))},S.GET_INSPECTOR_TREE,r),await C.hooks.callHookWith(async t=>{await Promise.all(t.map(t=>t({inspectorId:e,rootNodes:r.rootNodes})))},x.SEND_INSPECTOR_TREE_TO_CLIENT,{inspectorId:e,rootNodes:r.rootNodes});let i=n?.selectedNodeId??``,a={app:t,inspectorId:e,nodeId:i,state:{}},o={currentTab:`custom-inspector:${e}`};i&&await C.hooks.callHookWith(async e=>{await Promise.all(e.map(e=>e(a,o)))},S.GET_INSPECTOR_STATE,a),await C.hooks.callHookWith(async t=>{await Promise.all(t.map(t=>t({inspectorId:e,nodeId:i,state:a.state})))},x.SEND_INSPECTOR_STATE_TO_CLIENT,{inspectorId:e,nodeId:i,state:a.state})}async function Ce(e,t){let n=xe.INSPECTOR;if(t&&(w.clientConnected||w.connected)){await Se(n,t);return}e.sendInspectorTree(n),e.sendInspectorState(n)}const we=`__REGLE_DEVTOOLS_REGISTRY__`;function Te(){let e=f(!1),t=p(),n=p(),r=p(new Map),i=p(new Map),a=f(0),o;function s(e,r){t.value=e,r&&(n.value=r)}function c(e,t){let n=++a.value,o=`${t?.uid?.toString()??`regle`}#${n}`,s=`r\$ #${t?.name??n}`;r.value.set(o,{id:o,name:s,r$:e,componentName:t?.componentName,filePath:t?.filePath});let c=y([()=>e.$value,()=>e.$externalErrors,()=>e.$externalIssues,()=>e.$error,()=>e.$invalid,()=>e.$pending],()=>u(),{deep:!0,flush:`post`});return i.value.set(o,c),window.requestAnimationFrame(()=>{l()}),o}function l(){t.value&&Ce(t.value,n.value)}function u(){o??=window.requestAnimationFrame(()=>{o=void 0,l()})}function d(e){let t=i.value.get(e);t&&(t(),i.value.delete(e)),r.value.delete(e),l()}function m(){return Array.from(r.value.values())}function h(e){return r.value.get(e)}function g(){i.value.forEach(e=>e()),i.value.clear(),r.value.clear(),l()}return{devtoolsApi:t,devtoolsApp:n,register:c,unregister:d,getAll:m,get:h,clear:g,setApi:s,notifyDevtools:l,loggedWarning:e}}function Ee(){if(typeof globalThis>`u`)return Te();let e=globalThis;return e[we]??=Te(),e[we]}const $=Ee();function De(e,t){if(typeof window>`u`||!(typeof __VUE_PROD_DEVTOOLS__<`u`&&__VUE_PROD_DEVTOOLS__)||ge())return()=>{};if(!i(pe,void 0)&&!$.loggedWarning.value&&$.devtoolsApi)return $.loggedWarning.value=!0,console.warn(`📏 Regle Devtools are not available. Install Regle plugin in your app to enable them. https://reglejs.dev/introduction/devtools`),()=>{};let r=n(),a=r?.type?.name||r?.type?.__name,o;r&&r.type&&typeof r.type==`object`&&`__file`in r.type&&(o=r.type.__file);let s=$.register(e,{name:t?.name,componentName:a,uid:r?.uid,filePath:o});function c(){$.unregister(s)}return Z(c),c}function Oe(){let e=p(new Map),t=p(new Map),n=p(new Map),i=p(new Map),a=p(new Map),o=p(new Map),s=p(new Map);function c(e){let n=t.value.get(e);if(n)return n;{let n=f({});return t.value.set(e,n),n}}function u(e){let t=n.value.get(e);if(t)return t;{let t=f([]);return n.value.set(e,t),t}}function d(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=G(`_params`in i&&Array.isArray(i._params)?i._params:[]),n=G(r._params);return e?.[t]===n?.[t]}})}})}function C(e){let t=a.value.get(e);if(t)return t;{let t=f(!1),n=f(!0),r=f({}),i=f(!1);return a.value.set(e,{$pending:t,$valid:n,$metadata:r,$validating:i}),{$pending:t,$valid:n,$metadata:r,$validating:i}}}function w(){e.value.clear(),t.value.clear(),n.value.clear(),i.value.clear(),a.value.clear(),o.value.clear(),s.value.clear()}return r()&&l(w),{clearAll:w,addRuleDeclEntry:b,setDirtyEntry:v,checkRuleDeclEntry:x,getDirtyState:y,trySetRuleStatusRef:C,getFieldsEntry:c,getCollectionsEntry:u,getArrayStatus:g,addArrayStatus:h,deleteArrayStatus:_,arrayStatusStorage:s,addAdditionalRulesEntry:d,getAdditionalRulesEntry:m}}function ke(e,t){return!Pe(e.value)&&(ie(e)||k(t.value)&&!I(t.value)&&!Object.entries(t.value).some(([e,t])=>Me(t)||typeof t==`function`))}function Ae(e,t){return!!e.value&&k(e.value)&&`$each`in e.value||Array.isArray(t.value)}function je(e){return!!e.value&&(k(e.value)||ie(e.value))}function Me(e){return(k(e)||typeof e==`function`)&&`_validator`in e}function Ne(e){return typeof e.value==`function`?`_validator`in e.value:!0}function Pe(e){return k(e)&&N(e,he.REGLE_STATIC)&&e[he.REGLE_STATIC]===!0}function Fe(e){return k(e)&&`$fields`in e}function Ie(e){return!!e&&`$each`in e}function Le(e){return!!e&&`$rules`in e}function Re({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&&Array.isArray(e.$externalErrors)&&!e.$externalIssues?.length?e.$externalErrors.map(t=>({$message:t,$property:e.fieldName,$rule:`external`,$type:void 0})):[],i=e.$error&&e.$externalIssues&&Array.isArray(e.$externalIssues)?e.$externalIssues.map(t=>({...t,$property:t.$property??e.fieldName,$rule:t.$rule??`external`})):[],a=[];return e.$schemaErrors&&e.$error&&(a=!Array.isArray(e.$schemaErrors)&&`$self`in e.$schemaErrors?e.$schemaErrors.$self??[]:e.$schemaErrors??[]),[...n,...r,...i,...a]}function ze({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 Be(e){return k(e)&&`$each`in e}function Ve(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!k(e)))return e;if(Be(e)){let t=n?e.$self?.map(e=>({message:e,path:[]}))??[]:e.$self??[],r=e.$each?.map(e=>He(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>He(t,n,[e])).flat()}function He(e,t=!1,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(e=>!k(e)))return t?e.map(e=>({message:e,path:r??[]})):e;if(Be(e)){let n=r?.length?e.$self?.map(e=>({message:e,path:r??[]}))??[]:e.$self??[],i=e.$each?.map((e,n)=>He(e,t,r?.concat(n)))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>He(n,t,r?.concat(e))).flat()}function Ue({customMessages:n,rule:r,ruleKey:i,state:a,path:o,cachePath:s,storage:c,modifiers:l}){let d=t(),p={},m,h=e(()=>Me(r.value)&&r.value._async),g=f(!1),_=0,{$pending:v,$valid:b,$metadata:x,$validating:S}=c.trySetRuleStatusRef(`${s}.${i}`);function C(){d=t(),p=d.run(()=>{let t=f(!1),s=f(!1),c=f(!0),l=f(!1),u=f(!1),d=e(()=>({$value:a.value,$error:s.value,$dirty:t.value,$pending:l.value,$correct:u.value,$invalid:c.value,$rule:{$valid:b.value,$invalid:!b.value,$pending:v.value},$params:S.value,...x.value})),p=e(()=>{try{return Ne(r)?typeof r.value.active==`function`?r.value.active(d.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(d.value):a),Ne(r)){let n=`_${e}_patched`;a&&!r.value[n]||(t=typeof r.value[e]==`function`?r.value[e](d.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 I(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),_=e(()=>Ne(r)&&r.value.type?r.value.type:i),y=e(()=>Ne(r)?r.value.validator:r.value),S=e(()=>typeof r.value==`function`?[]:G(r.value._params??[]));return{$active:p,$message:h,$type:_,$validator:y,$params:S,$path:e(()=>`${o}.${i}`),$tooltip:g,$fieldCorrect:u,$fieldError:s,$fieldDirty:t,$fieldPending:l,$fieldInvalid:c}}),m=y(p?.$params,()=>{(!l.$silent.value||l.$rewardEarly.value&&p.$fieldError.value)&&D()},{deep:ce?1:!0})}C();function w(){b.value=!0,p.$fieldDirty.value&&(v.value=!0)}async function T(e){let t=!1;try{let n=p.$validator.value;if(typeof n!=`function`)return console.error(`${o}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let r=n(a.value,...p.$params.value),i=a.value;w();let s;if(s=r instanceof Promise?await r:r,e!==_||a.value!==i)return b.value;if(typeof s==`boolean`)t=s;else{let{$valid:e,...n}=s;t=e,x.value=n}}catch{t=!1}finally{e===_&&(v.value=!1)}return t}function E(e,t=!0){if(Me(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 x.value=t,e}}return!0}async function D(){let e=++_;try{S.value=!0;let t=!1;if(g.value=!0,Me(r.value)&&r.value._async)t=await T(e);else{let e=p.$validator.value;t=E(e)}return e===_?(b.value=t,t):b.value}catch{return!1}finally{e===_&&(S.value=!1,g.value=!1)}}function O(){try{return S.value=!0,E(p.$validator.value)}catch{return!1}finally{S.value=!1}}function k(){_++,b.value=!0,x.value={},v.value=!1,S.value=!1,C()}function A(){m(),d.stop(),d=t()}return u({...p,$pending:v,$valid:b,$metadata:x,$haveAsync:h,$maybePending:g,$validating:S,$parse:D,$parseSync:O,$unwatch:A,$watch:C,$reset:k})}function We(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:Ve(i,{includePath:!0})}}}}}function Ge(e){return e===!0?`eager`:e===!1||e==null?!1:e}function Ke(e){return k(e)&&!Pe(e)?Object.values(e).some(e=>Ke(e)):Array.isArray(e)?e.some(e=>Ke(e)):!I(e)}function qe(e,t){return Le(e)?!e.$inactive&&Ke(t):Fe(e)?Je(e.$self,e.$fields,t):Ie(e)&&Array.isArray(t)?e.$self&&qe(e.$self,t)?!0:e.$each.some((e,n)=>qe(e,t[n])):!1}function Je(e,t,n){if(e&&qe(e,n))return!0;if(!k(n)||Pe(n))return!1;let r=n;return Object.entries(t).some(([e,t])=>qe(t,r[e]))}function Ye(e,t,n,r=!1,i=!1){return e===`eager`?!0:e===`non-empty`?!r||i?!1:Ke(n):e===`lazy-non-empty`?Ke(t):!1}function Xe({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,fieldName:c,storage:l,options:d,externalErrors:p,externalIssues:g,schemaErrors:_,schemaMode:v,onUnwatch:x,$isArray:S,initialState:C,rootInitialState:w,originalState:T,shortcuts:E,overrides:D,onValidate:O}){let A=t(),j,M=[],N,P,F,L,R=()=>{},V,U=()=>{},W=f(!1),G=f(l.getAdditionalRulesEntry(o)??{});function K(e){G.value=e??{},l.addAdditionalRulesEntry(o,e??{}),q(),R()}function ne(e){K(e)}function q(){let e={...r.value,...G.value},t=[];for(let r in e){if(r.startsWith(`$`)||r.startsWith(`~`))continue;let s=e[r];if(!s)continue;let c=m(()=>s);t.push([r,Ue({modifiers:{$silent:j.$silent,$rewardEarly:j.$rewardEarly},customMessages:i,rule:c,ruleKey:r,state:n,path:a,cachePath:o,storage:l,$debounce:Z.value.$debounce})])}X.value=Object.fromEntries(t),l.addRuleDeclEntry(o,e)}function re(){let e={...r.value,...G.value},t=l.checkRuleDeclEntry(o,e),n={};for(let t in e)t.startsWith(`$`)&&(n[t]=e[t]);return Z.value=n,t}function J(){let e=re();oe(),q(),j.processShortcuts(),Y(),ie(),e?.valid!=null&&(j.$dirty.value=l.getDirtyState(o),(j.$dirty.value&&!j.$silent.value||j.$rewardEarly.value&&j.$error.value)&&R()),l.addRuleDeclEntry(o,r.value)}function Y(){R=j.$debounce.value>0?B(le,j.$debounce.value,{trackDebounceRef:W}):le}function ie(){U=j.$debounce.value>0?B(()=>{j.$dirty.value=!0},j.$debounce.value):()=>{j.$dirty.value=!0}}function ae(){if(X.value)for(let e of Object.values(X.value))e.$unwatch();P(),L?.(),j.$dirty.value&&l.setDirtyEntry(o,j.$dirty.value),N?.(),A.stop(),A=t();for(let e of M)e.stop();M=[],x?.(),F?.()}function oe(){if(X.value)for(let e of Object.values(X.value))e.$watch();j=A.run(()=>{let r=f(!1),i=f(!1),a=e(()=>r.value),o=e(()=>S||Pe(n.value)),s=e(()=>Z.value.$debounce==null?h(d.debounce)==null?j.$haveAnyAsyncRule.value?200:0:h(d.debounce):Z.value.$debounce),l=e(()=>Z.value.$deepCompare==null?!1:Z.value.$deepCompare),m=e(()=>Z.value.$lazy==null?h(d.lazy)==null?!1:h(d.lazy)===!0:Z.value.$lazy),y=e(()=>Z.value.$immediateDirty==null?h(d.immediateDirty)==null?!1:Ge(h(d.immediateDirty)):Ge(Z.value.$immediateDirty)),x=e(()=>Z.value.$rewardEarly==null?h(d.rewardEarly)==null?!1:h(d.rewardEarly)===!0:!!Z.value.$rewardEarly),w=e(()=>Z.value.$clearExternalErrorsOnChange==null?h(d.clearExternalErrorsOnChange)==null?!O.value:h(d.clearExternalErrorsOnChange)===!0:!!Z.value.$clearExternalErrorsOnChange),T=e(()=>Z.value.$clearExternalErrorsOnValidate==null?h(d.clearExternalErrorsOnValidate)==null?!1:h(d.clearExternalErrorsOnValidate)===!0:!!Z.value.$clearExternalErrorsOnValidate),O=e(()=>x.value?!0:Z.value.$silent==null?h(d.silent)==null?!1:h(d.silent)===!0:Z.value.$silent),k=e(()=>Z.value.$autoDirty==null?h(d.autoDirty)==null?!0:h(d.autoDirty)===!0:Z.value.$autoDirty),A=e(()=>{if(Z.value.$isEdited!=null)return Z.value.$isEdited;if(D?.isEdited!=null)return D.isEdited}),P=e(()=>{for(let e of Object.values(X.value))if(e.$validating)return!0;return!1}),F=e({get:()=>n.value,set(e){N(),n.value=e,se()}}),L=e(()=>W.value?re.value&&r.value:re.value&&!q.value&&r.value),R=e(()=>Re({field:{$rules:X.value,$error:L.value,$externalErrors:p?.value,$externalIssues:g?.value,$schemaErrors:_?.value,fieldName:J.value}})),z=e(()=>Re({field:{$rules:X.value,$error:L.value,$externalErrors:p?.value,$externalIssues:g?.value,$schemaErrors:_?.value,fieldName:J.value},silent:!0})),B=e(()=>R.value.map(e=>e.$message)),V=e(()=>z.value.map(e=>e.$message)),H=f(!1);function U(e,t){return t instanceof Date&&e instanceof Date?ee(t).getTime()!==ee(e).getTime():t==null?typeof e==`boolean`?t===void 0?e===!0:e!=null:e!=null&&e!==``:Array.isArray(e)&&Array.isArray(t)?!te(e,t,Z.value.$deepCompare):t!==e}b(()=>{r.value?A.value?H.value=A.value(n.value,C.value,U):H.value=U(n.value,C.value):H.value=!1});let G=e(()=>H.value),K=e(()=>ze({field:{$rules:X.value}})),ne=e(()=>!(re.value||q.value)),q=e(()=>i.value||!x.value?Object.entries(X.value).some(([e,t])=>t.$pending):!1),re=e(()=>p?.value?.length||g?.value?.length||_?.value?.length?!0:Y.value?!1:Object.values(X.value).some(e=>!e.$valid||e.$maybePending)),J=e(()=>c??d.id??`root`),Y=e(()=>!v&&!Object.keys(X.value).some(e=>!e.startsWith(`$`))),ie=e(()=>{if(p?.value?.length||g?.value?.length||Y.value||W.value)return!1;if(r.value&&!I(n.value)&&!P.value&&!q.value){if(v)return!_?.value?.length;{let e=Object.values(X.value);for(let t of e)if(t.$active&&!t.$valid)return!1;return e.some(e=>e.$active)}}return!1}),ae=e(()=>Object.values(X.value).some(e=>e.$haveAsync)),oe=e(()=>({$debounce:s.value,$lazy:m.value,$rewardEarly:x.value,$autoDirty:k.value,$silent:O.value,$clearExternalErrorsOnChange:w.value,$clearExternalErrorsOnValidate:T.value,$immediateDirty:y.value,$isEdited:A.value,$disabled:h(d.disabled)??!1}));function ce(){E?.fields&&Object.entries(E.fields).forEach(([e,i])=>{let o=t();le[e]=o.run(()=>{let e=f();return b(()=>{e.value=i(u({$dirty:r,$externalErrors:p?.value??[],$externalIssues:g?.value??[],$value:n,$silentValue:F,$rules:X,$error:L,$pending:q,$invalid:re,$correct:ie,$errors:B,$ready:ne,$silentErrors:V,$anyDirty:a,$tooltips:K,$name:J,$inactive:Y,$edited:H,$anyEdited:G}))}),e}),M.push(o)})}let le={};return{$error:L,$pending:q,$invalid:re,$correct:ie,$debounce:s,$deepCompare:l,$lazy:m,$immediateDirty:y,$ready:ne,$issues:R,$silentIssues:z,$errors:B,$silentErrors:V,$rewardEarly:x,$autoDirty:k,$silent:O,$clearExternalErrorsOnChange:w,$clearExternalErrorsOnValidate:T,$anyDirty:a,$edited:H,$anyEdited:G,$name:J,$haveAnyAsyncRule:ae,$shortcuts:le,$validating:P,$tooltips:K,$dirty:r,processShortcuts:ce,$silentValue:F,$inactive:Y,$modifiers:oe,$isArrayOrRegleStatic:o}}),se(),P=y(j.$dirty,e=>{l.setDirtyEntry(o,e),Object.values(X.value).forEach(t=>{t.$fieldDirty=e})}),L=y([j.$error,j.$correct,j.$invalid,j.$pending],()=>{Object.values(X.value).forEach(e=>{e.$fieldError=j.$error.value,e.$fieldInvalid=j.$invalid.value,e.$fieldPending=j.$pending.value,e.$fieldCorrect=j.$correct.value})}),F=y(j.$haveAnyAsyncRule,Y)}function se(){N=y(n,()=>{j.$autoDirty.value&&!j.$silent.value&&(j.$dirty.value||U()),r.value instanceof Function&&J(),(!j.$silent.value||j.$rewardEarly.value&&j.$error.value)&&R(),j.$clearExternalErrorsOnChange.value&&(be(),Se())},{deep:j.$isArrayOrRegleStatic.value?!0:ce?1:!0})}async function le(){try{let{promise:e}=pe(Promise.allSettled(Object.values(X.value).map(e=>e.$parse())));await e}catch{}}let X=f({}),Z=f({});J();function ue(){Ye(j.$immediateDirty.value,C.value,w?.value??C.value,a===``,j.$inactive.value)&&(j.$dirty.value=!0)}function de(e,t){if(fe(),j.$dirty.value=!1,l.setDirtyEntry(o,!1),!t)if(e?.toOriginalState)n.value=z(T),C.value=z(T);else if(e?.toInitialState)n.value=z(C.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,C.value=z(t),n.value=z(t)}else C.value=k(n.value)&&!Pe(n.value)?z(n.value):Array.isArray(n.value)?[...n.value]:n.value;if(e?.clearExternalErrors!==!1&&(be(),Se()),!t&&!e?.keepValidationState)for(let e of Object.values(X.value))e.$reset();if(!j.$lazy.value&&!j.$silent.value&&!t)for(let e of Object.values(X.value))e.$parse();ue()}function fe(){`cancel`in R&&R.cancel()}function pe(e){return V&&V.abort(),V=H(e),V}function me(){fe(),V&&V.abort()}function he(e=!0,t=!1){j.$dirty.value||U(),t&&e?(!j.$silent.value||j.$rewardEarly.value&&j.$error.value)&&(fe(),R()):e&&(fe(),R())}async function ge(e){return e&&(n.value=e),await s(),Q()}async function Q(e){try{if(e&&(n.value=e),v)return O?(he(!1),O()):{valid:!1,data:n.value,errors:j.$errors.value,issues:j.$issues.value};let t=n.value;if(j.$clearExternalErrorsOnValidate.value&&(be(),Se()),j.$autoDirty.value&&!j.$silent.value&&j.$dirty.value&&!j.$validating.value&&!j.$pending.value&&!W.value&&!I(X.value))return{valid:!j.$invalid.value,data:t,errors:j.$errors.value,issues:j.$issues.value};if(j.$dirty.value||(j.$dirty.value=!0),I(X.value))return{valid:!0,data:t,errors:j.$errors.value,issues:j.$issues.value};me();let{promise:r}=pe(Promise.allSettled(Object.values(X.value).map(e=>e.$parse()))),i=await r;return await s(),{valid:i.every(e=>e.status===`fulfilled`&&e.value===!0),data:t,errors:j.$errors.value,issues:j.$issues.value}}catch{return{valid:!1,data:n.value,errors:j.$errors.value,issues:j.$issues.value}}}function _e(e){try{return e&&(n.value=e),j.$dirty.value||(j.$dirty.value=!0),v?!1:(j.$clearExternalErrorsOnValidate.value&&(be(),Se()),Object.values(X.value).map(e=>e.$parseSync()).every(e=>!!e))}catch{return!1}}function ve(e=!0){return j.$dirty.value?n.value:e?{_null:!0}:null}function ye(e){p&&(p.value=e),Se()}function be(){p?.value?.length&&(p.value=[])}function xe(e){g&&(g.value=e),be()}function Se(){g?.value?.length&&(g.value=[])}!j.$lazy.value&&!j.$dirty.value&&!j.$silent.value&&le(),ue();let{$shortcuts:Ce,$validating:we,$autoDirty:Te,$rewardEarly:Ee,$clearExternalErrorsOnChange:$,$clearExternalErrorsOnValidate:De,$haveAnyAsyncRule:Oe,$debounce:ke,$lazy:Ae,...je}=j,Me=u({...je,$externalErrors:p,$externalIssues:g,$value:n,$output:n,$initialValue:C,$originalValue:T,$rules:X,...Ce,$path:a,$isDebouncing:W,$reset:de,$touch:he,$validate:ge,$validateSync:_e,$validateWithoutRaceconditions:Q,$unwatch:ae,$watch:oe,$extractDirtyFields:ve,$clearExternalErrors:be,$clearExternalIssues:Se,$abort:me,$addRules:K,addRules:ne,$schemaMode:v,"~modifiers":j.$modifiers,$setExternalErrors:ye,$setExternalIssues:xe,...We(ge)});return Object.defineProperty(Me,Symbol.for(`regle:instance`),{value:!0}),Me}function Ze({$id:t,path:n,cachePath:r,index:i,options:a,storage:o,stateValue:s,customMessages:c,rules:l,externalErrors:u,externalIssues:d,schemaErrors:p,initialState:g,originalState:_,shortcuts:v,fieldName:y,schemaMode:b,overrides:x,currentIndexes:S}){let C=e(()=>h(l)),w=s.value?.$id??C.value.$key??X(),T=`${r}.${String(w)}`,E=f(i),D=`${n}.${i}`;typeof s.value==`object`&&s.value!=null&&(s.value.$id||Object.defineProperties(s.value,{$id:{value:w,enumerable:!1,configurable:!1,writable:!1}}));let O=et({index:i,state:s,rulesDef:C,nestedReactiveRules:!0,customMessages:c,path:D,cachePath:T,storage:o,options:a,externalErrors:m(u?.value??[],i),externalIssues:m(d?.value??[],i),schemaErrors:e(()=>p?.value?.[E.value]),initialState:g,originalState:_,shortcuts:v,fieldName:y,schemaMode:b,overrides:x});return O&&(O.$id=s.value?.$id??String(w),S?.set(O.$id,E),o.addArrayStatus(t,O.$id,O)),s.value&&(!k(s.value)||Pe(s.value))&&b&&O?.$touch(),O}function Qe({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,storage:s,options:c,externalErrors:l,externalIssues:d,schemaErrors:p,schemaMode:g,initialState:_,originalState:v,shortcuts:x,fieldName:S,overrides:C}){let w=t(),T,E=t(),D,O=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let k=f(),A=f(n.value),j=f({}),M,N,P=f({}),F=s.getCollectionsEntry(a),L=new Map;D=E.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=>Me(e)||typeof e==`function`):!1:!1)})),R(),V();function R(){j.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)&&(!D.isPrimitiveArray.value||g)?F.value=n.value.map((t,n)=>{let{scope:u,unwrapped:f}=ae(r.value.$each,m(()=>t),n);u&&O.push(u);let h=m(_.value??[],n),y=m(l?.value??{},`$each`),b=m(d?.value??{},`$each`),w=e(()=>p?.value?.$each);return Ze({$id:k.value,path:a,cachePath:o,customMessages:i,rules:f??{},stateValue:m(()=>t),index:n,options:c,storage:s,externalErrors:y,externalIssues:b,schemaErrors:w,initialState:h,originalState:v,shortcuts:x,fieldName:S,schemaMode:g,overrides:C,currentIndexes:L})||null}).filter(e=>!!e):(F.value=[],L.clear()),P.value=Xe({state:n,rulesDef:r,customMessages:i,path:a,cachePath:a,storage:s,options:c,externalErrors:m(l?.value??{},`$self`),externalIssues:m(d?.value??{},`$self`),schemaErrors:e(()=>p?.value?.$self),$isArray:!0,initialState:_,originalState:v,shortcuts:x,fieldName:S,schemaMode:g,overrides:C})}function ee(){if(Array.isArray(n.value)&&(!D.isPrimitiveArray.value||g)){let t=[...F.value],o=new Set;F.value=n.value.map((t,n)=>{let u=m(()=>t);if(t.$id&&F.value.find(e=>e.$id===t.$id)){let e=s.getArrayStatus(k.value,t.$id);if(e){let r=L.get(t.$id);return r&&(r.value=n),o.add(t.$id),e.$value=u,e}return null}else{let{scope:t,unwrapped:f}=ae(r.value.$each,u,n);t&&O.push(t);let h=m(l?.value??{},`$each`),y=m(d?.value??{},`$each`),b=e(()=>p?.value?.$each??[]),w=Ze({$id:k.value,path:a,cachePath:a,customMessages:i,rules:f??{},stateValue:u,index:n,options:c,storage:s,externalErrors:h,externalIssues:y,schemaErrors:b,initialState:m(_.value??[],n),originalState:v,shortcuts:x,fieldName:S,schemaMode:g,overrides:C,currentIndexes:L});return w?(w.$id&&o.add(w.$id),w):null}}).filter(e=>!!e),t.filter(e=>!n.value?.find(t=>e.$id===t.$id)).forEach((e,t)=>{s.deleteArrayStatus(k.value,t.toString())});for(let e of L.keys())o.has(e)||L.delete(e)}else F.value=[],L.clear()}function B(){M=y(n,()=>{N?.(),n.value!=null&&!Object.hasOwn(n.value,`$id`)&&!k.value?R():ee(),te()},{deep:ce?1:!0,flush:`pre`}),te()}function te(){N=y(n,()=>{T.$autoDirty.value&&!T.$silent.value&&P.value.$touch(!1,!0)},{flush:`post`})}function V(){B(),w=t(),T=w.run(()=>{let r=e({get:()=>n.value,set(e){M?.(),N?.(),n.value=e,B()}}),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(()=>(g?P.value.$correct:I(P.value.$rules)?!0:P.value.$correct)&&(!F.value.length||F.value.every(e=>e.$correct||e.$anyDirty&&!e.$invalid))),d=e(()=>P.value.$error||F.value.some(e=>e.$error)),p=e(()=>!(s.value||m.value)),m=e(()=>P.value.$pending||F.value.some(e=>e.$pending)),y=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)})),D=e(()=>({$self:P.value.$silentErrors,$each:F.value.map(e=>e.$silentErrors)})),k=e(()=>j.value.$rewardEarly==null?h(c.rewardEarly)==null?!1:h(c.rewardEarly)===!0:j.value.$rewardEarly),A=e(()=>k.value?!0:j.value.$silent==null?h(c.silent)==null?!1:h(c.silent)===!0:j.value.$silent),L=e(()=>j.value.$autoDirty==null?h(c.autoDirty)==null?!0:h(c.autoDirty)===!0:j.value.$autoDirty),R=e(()=>j.value.$immediateDirty==null?h(c.immediateDirty)==null?!1:Ge(h(c.immediateDirty)):Ge(j.value.$immediateDirty)),z=e(()=>j.value.$clearExternalErrorsOnChange==null?h(c.clearExternalErrorsOnChange)==null?!0:h(c.clearExternalErrorsOnChange)===!0:j.value.$clearExternalErrorsOnChange),ee=e(()=>j.value.$clearExternalErrorsOnValidate==null?h(c.clearExternalErrorsOnValidate)==null?!1:h(c.clearExternalErrorsOnValidate)===!0:j.value.$clearExternalErrorsOnValidate),te=e(()=>{if(j.value.$isEdited!=null)return j.value.$isEdited;if(C?.isEdited!=null)return C.isEdited}),V=e(()=>S??c.id??`root`),H=e(()=>({$deepCompare:j.value.$deepCompare??!1,$debounce:j.value.$debounce??h(c.debounce)??0,$lazy:j.value.$lazy??!1,$rewardEarly:k.value,$autoDirty:L.value,$silent:A.value,$clearExternalErrorsOnChange:z.value,$clearExternalErrorsOnValidate:ee.value,$immediateDirty:R.value,$isEdited:te.value,$disabled:h(c.disabled)??!1}));function U(){x?.collections&&Object.entries(x?.collections).forEach(([e,c])=>{let h=t();W[e]=h.run(()=>{let e=f();return b(()=>{e.value=c(u({$dirty:i,$error:d,$path:a,$silentValue:r,$pending:m,$invalid:s,$correct:l,$errors:E,$silentErrors:D,$initialValue:_,$originalValue:v,$ready:p,$anyDirty:o,$name:V,$each:F,$self:P,$value:n,$output:n,$edited:y,$anyEdited:w,$issues:T}))}),e}),O.push(h)})}let W={};return U(),{$dirty:i,$anyDirty:o,$invalid:s,$correct:l,$error:d,$pending:m,$errors:E,$silentErrors:D,$ready:p,$name:V,$shortcuts:W,$silentValue:r,$edited:y,$anyEdited:w,$rewardEarly:k,$silent:A,$autoDirty:L,$issues:T,$modifiers:H}}),D.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 H(){M?.(),P.value&&P.value.$unwatch(),F.value&&F.value.forEach(e=>{`$dirty`in e&&e.$unwatch()}),w.stop(),w=t(),E.stop(),E=t(!0),O.forEach(e=>e.stop()),O=[]}function U(e=!0,t=!1){P.value.$touch(e,t),F.value.forEach(n=>{n.$touch(e,t)})}function W(e,t){if(H(),!t)if(e?.toOriginalState)n.value=z(v),_.value=z(v);else if(e?.toInitialState)n.value=z(_.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,_.value=z(t),n.value=z(t)}else _.value=z(n.value);e?.clearExternalErrors!==!1&&(J(),ie()),e?.keepValidationState||(P.value.$reset(e,t),F.value.forEach(t=>{t.$reset(e,!0)})),t||R()}function G(){P.value.$abort(),F.value.forEach(e=>{e.$abort()})}async function K(e){return e&&(n.value=e),ne()}async function ne(e){e&&(n.value=e);let t=n.value;try{return G(),{valid:(await Promise.allSettled([P.value.$validateWithoutRaceconditions(e),...F.value.map(e=>e.$validateWithoutRaceconditions())])).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:t,errors:T.$errors.value,issues:T.$issues.value}}catch{return{valid:!1,data:t,errors:T.$errors.value,issues:T.$issues.value}}}function q(e){e&&(n.value=e);try{return[P.value.$validateSync(e),...F.value.map(e=>e.$validateSync())].every(e=>!!e)}catch{return!1}}function re(e){l&&(l.value=e),ie()}function J(){P.value.$clearExternalErrors(),F.value.forEach(e=>{e.$clearExternalErrors()})}function Y(e){d&&(d.value=e),J()}function ie(){P.value.$clearExternalIssues(),F.value.forEach(e=>{e.$clearExternalIssues()})}function oe(e=!0){let t=F.value.map(t=>{if(Fe(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>I(e))&&(t=[]),t}let{$shortcuts:se,...le}=T;return u({$self:P,...le,...se,$path:a,$each:F,$value:n,$output:n,$initialValue:_,$originalValue:v,$validate:K,$validateSync:q,$validateWithoutRaceconditions:ne,$unwatch:H,$watch:V,$touch:U,$reset:W,$abort:G,$extractDirtyFields:oe,$clearExternalErrors:J,$clearExternalIssues:ie,$setExternalErrors:re,$setExternalIssues:Y,"~modifiers":T.$modifiers,...We(K)})}function $e({rulesDef:n,state:r,path:i=``,cachePath:a,rootRules:o,externalErrors:c,externalIssues:l,schemaErrors:p,rootInitialState:g,rootSchemaErrors:v,validationGroups:x,initialState:S,originalState:C,fieldName:w,nestedReactiveRules:T,...E}){let D=t(),O,A=[],j=null,M=null,N=null,P=null,F=null,L=f(void 0);async function R(t=!0){let o=Object.entries(n.value).filter(([e])=>e!==`$self`),s=Object.fromEntries(o.reduce((t,[n,o])=>{if(!o)return t;let s=m(r.value??{},n),u=m(()=>o),d=m(c?.value??{},n),f=m(l?.value??{},n),h=e(()=>p?.value?.[n]),g=m(S?.value??{},n);return t.push([n,et({state:s,rulesDef:u,path:i?`${i}.${n}`:n,cachePath:a?`${a}.${n}`:n,externalErrors:d,externalIssues:f,schemaErrors:h,initialState:g,originalState:C?.[n],fieldName:n,...E})]),t},[])),u=Object.fromEntries(Array.from(new Set([...Object.keys(h(c)??{}),...Object.keys(h(l)??{})])).filter(e=>!(e in n.value)).map(t=>{let n=m(r.value??{},t),o=m(c?.value??{},t),s=m(l?.value??{},t),u=e(()=>p?.value?.[t]),d=m(S?.value??{},t),f=i?`${i}.${t}`:t,h=a?`${a}.${t}`:t;return[t,et({state:n,rulesDef:e(()=>({})),path:f,cachePath:h,externalErrors:o,externalIssues:s,schemaErrors:u,initialState:d,originalState:C?.[t],fieldName:t,...E})]})),d=Object.fromEntries(Object.entries(h(p)??{}).map(([t])=>{let n=i?`${i}.${t}`:t,o=a?`${a}.${t}`:t,s=m(r.value??{},t),u=m(c?.value??{},t),d=m(l?.value??{},t),f=e(()=>p?.value?.[t]),h=m(S?.value??{},t);return[t,et({state:s,rulesDef:e(()=>({})),path:n,cachePath:o,externalErrors:u,externalIssues:d,schemaErrors:f,initialState:h,originalState:C?.[t],fieldName:t,...E})]})),f=Object.fromEntries(Object.entries(r.value??{}).filter(([e])=>!(e in n.value)&&!(e in(u??{}))&&!(e in(d??{}))).map(([t])=>{let n=m(r.value??{},t),o=m(c?.value??{},t),s=m(l?.value??{},t),u=e(()=>p?.value?.[t]),d=m(S?.value??{},t);return[t,et({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,cachePath:a?`${a}.${t}`:t,externalErrors:o,externalIssues:s,schemaErrors:u,initialState:d,originalState:C?.[t],fieldName:t,...E})]}));B.value={...s,...u,...d,...f},t&&U()}function ee(){n.value.$self&&(L.value=Xe({state:r,rulesDef:e(()=>n.value.$self??{}),path:i,cachePath:a,externalErrors:f(void 0),externalIssues:f(void 0),schemaErrors:f(void 0),initialState:S??f(void 0),originalState:C,fieldName:`$self`,...E}))}let B=E.storage.getFieldsEntry(a);R(),ee();function te(){c&&(N=y(c,()=>{W(),R()},{deep:!0}))}function V(){l&&(P=y(l,()=>{W(),R()},{deep:!0}))}function H(){F=y(r,()=>{W(),R(),O.$autoDirty.value&&!O.$silent.value&&Y(!1,!0),O.$clearExternalErrorsOnChange.value&&(K(),q())},{flush:`post`})}function U(){(o||T)&&(j?.(),j=y(n,()=>{W(),R()},{deep:!0,flush:`pre`}),te(),V()),v&&(M?.(),M=y(()=>v.value?Object.keys(v.value).sort().join(`\0`):``,()=>{W(),R()},{flush:`post`})),H(),O=D.run(()=>{let a=e({get:()=>r.value,set(e){W(),r.value=e,R(),O.$autoDirty.value&&!O.$silent.value&&Y(!1,!0),O.$clearExternalErrorsOnChange.value&&(K(),q())}}),o=d(a),s=e({get:()=>r.value,set(e){W(),r.value=e,R()}}),c=e(()=>{let e=B.value,t=Object.keys(e);if(!t.length)return!1;for(let n of t)if(!e[n]?.$dirty)return!1;return!0}),l=e(()=>{let e=B.value;for(let t in e)if(e[t]?.$anyDirty)return!0;return!1}),p=e(()=>{if(L.value?.$invalid)return!0;let e=B.value,t=Object.entries(e);if(!t.length)return!1;for(let[e,n]of t)if(n?.$invalid)return!0;return!1}),m=e(()=>{let e=Object.entries(B.value).reduce((e,[t,n])=>((!Le(n)||!n.$inactive)&&e.push([t,n]),e),[]),t=n.value.$self&&!I(n.value.$self);if(e.length||t){let t=L.value?.$correct??!0,n=!1;return n=E.schemaMode?e.every(([e,t])=>t.$correct):e.every(([e,t])=>Le(t)?`required`in t.$rules&&t.$rules.required.$active?t.$correct:!t.$invalid&&!t.$pending&&!t.$isDebouncing:t?.$correct),t&&n}return!1}),g=e(()=>{if(L.value?.$error)return!0;let e=B.value;if(!Object.keys(e).length)return!1;for(let t in e)if(e[t]?.$error)return!0;return!1}),v=e(()=>h(E.options.rewardEarly)==null?!1:h(E.options.rewardEarly)),y=e(()=>h(E.options.silent)==null?!!v.value:h(E.options.silent)===!0),T=e(()=>h(E.options.autoDirty)==null?!0:h(E.options.autoDirty)===!0),D=e(()=>h(E.options.immediateDirty)==null?!1:Ge(h(E.options.immediateDirty))),k=e(()=>h(E.options.lazy)==null?!1:h(E.options.lazy)===!0),j=e(()=>h(E.options.clearExternalErrorsOnChange)==null?!0:h(E.options.clearExternalErrorsOnChange)===!0),M=e(()=>h(E.options.clearExternalErrorsOnValidate)==null?!1:h(E.options.clearExternalErrorsOnValidate)===!0),N=e(()=>!(p.value||F.value)),P=f(!1),F=e(()=>{if(L.value?.$pending||P.value)return!0;let e=B.value;for(let t in e)if(e[t]?.$pending)return!0;return!1}),z=e(()=>{let e={...L.value&&{$self:L.value?.$issues??[]}};for(let t in B.value)e[t]=B.value[t]?.$issues;return e}),ee=e(()=>{let e={...L.value&&{$self:L.value?.$errors??[]}};for(let t in B.value)e[t]=B.value[t]?.$errors;return e}),te=e(()=>{let e={...L.value&&{$self:L.value?.$silentErrors??[]}};for(let t in B.value)e[t]=B.value[t]?.$silentErrors;return e}),V=e(()=>{if(L.value?.$edited)return!0;if(!Object.keys(B.value).length)return!1;for(let e in B.value)if(!B.value[e]?.$edited)return!1;return!0}),H=e(()=>{if(L.value?.$anyEdited)return!0;for(let e in B.value)if(B.value[e]?.$anyEdited)return!0;return!1}),U=e(()=>w??E.options.id??`root`),G=e(()=>({autoDirty:T.value,lazy:k.value,rewardEarly:v.value,silent:y.value,clearExternalErrorsOnChange:j.value,clearExternalErrorsOnValidate:M.value,immediateDirty:D.value,id:h(E.options.id),disabled:h(E.options.disabled)}));function ne(){E.shortcuts?.nested&&Object.entries(E.shortcuts.nested).forEach(([e,n])=>{let a=t();J[e]=a.run(()=>{let e=f();return b(()=>{e.value=n(u({$dirty:c,$path:i,$value:r,$output:r,$silentValue:s,$error:g,$originalValue:C,$pending:F,$invalid:p,$correct:m,$ready:N,$anyDirty:l,$name:U,$silentErrors:te,$initialValue:S,$errors:ee,$fields:B,$edited:V,$anyEdited:H,$issues:z,$self:L,"~modifiers":_(E.options)}))}),e}),A.push(a)})}let re=e({get:()=>x?Object.fromEntries(Object.entries(x?.(B.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,de(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,fe(t,e)]))}]:[])):{},set(){}}),J={};return ne(),{$dirty:c,$anyDirty:l,$invalid:p,$correct:m,$error:g,$pending:F,$issues:z,$errors:ee,$silentErrors:te,$clearExternalErrorsOnValidate:M,$clearExternalErrorsOnChange:j,$ready:N,$name:U,$shortcuts:J,$groups:re,$silentValue:s,$immediateDirty:D,$edited:V,$anyEdited:H,$localPending:P,$autoDirty:T,$silent:y,$value:a,$output:o,$modifiers:G}})}function W(){if(j?.(),N?.(),P?.(),F?.(),M?.(),A.forEach(e=>e.stop()),A=[],O={},B.value)for(let e of Object.values(B.value))e?.$unwatch()}function G(e){c&&(c.value=e),q()}function K(){c&&!I(c.value)&&(c.value={})}function ne(e){l&&(l.value=e),K()}function q(){l&&!I(l.value)&&(l.value={})}function re(){if(!O)return;let e=O.$immediateDirty.value;(e===`eager`||e===`non-empty`&&Je(L.value,B.value,S.value))&&Y(!0,!1)}function J(e,t){if(N?.(),W(),!t)if(e?.toOriginalState)r.value=z({...C}),S.value=z({...C});else if(e?.toInitialState)r.value=z({...S.value});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,S.value=z(t),r.value=z(t)}else S.value=z(r.value);if(!e?.keepValidationState){for(let t of Object.values(B.value))t?.$reset(e,!0);L.value?.$reset(e,!0)}e?.clearExternalErrors!==!1&&(K(),q()),te(),V(),t||(R(),re())}function Y(e=!0,t=!1){for(let n of Object.values(B.value))n?.$touch(e,t);L.value?.$touch(e,t)}function ie(e){return e.filter(([e,t])=>k(t)&&!Pe(t)?!(t&&typeof t==`object`&&`_null`in t)&&!I(t):Array.isArray(t)?t.length:!0)}function ae(e=!0){let t=Object.entries(B.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=ie(t)),Object.fromEntries(t)}function oe(){for(let e of Object.values(B.value))e.$abort();L.value?.$abort()}async function se(e){return e&&(r.value=e),await s(),ce()}async function ce(e){try{if(e&&(r.value=e),E.schemaMode)return E.onValidate?(Y(!1),O.$localPending.value=!0,E.onValidate()):{valid:!1,data:r.value,errors:O.$errors.value,issues:O.$issues.value};{let e=r.value;oe(),O.$clearExternalErrorsOnValidate.value&&(K(),q());let t=[...Object.values(B.value).map(e=>e.$validateWithoutRaceconditions()),...L.value?[L.value?.$validateWithoutRaceconditions()]:[]];return{valid:(await Promise.allSettled(t)).every(e=>e.status===`fulfilled`&&e?.value?.valid===!0),data:e,errors:O.$errors.value,issues:O.$issues.value}}}catch{return{valid:!1,data:r.value,errors:O.$errors.value,issues:O.$issues.value}}finally{O.$localPending.value=!1}}function le(e){try{return e&&(r.value=e),O.$clearExternalErrorsOnValidate.value&&(K(),q()),[...Object.values(B.value).map(e=>e.$validateSync()),...L.value?[L.value?.$validateSync()]:[]].every(e=>!!e)}catch{return!1}}re();let{$shortcuts:X,$localPending:Z,...ue}=O,pe=u({...ue,...X,$path:i,$initialValue:S,$originalValue:C,$self:L,$externalErrors:c,$externalIssues:l,$fields:B,$reset:J,$touch:Y,$validate:se,$unwatch:W,$watch:U,$setExternalErrors:G,$setExternalIssues:ne,$clearExternalErrors:K,$clearExternalIssues:q,$extractDirtyFields:ae,$abort:oe,$validateSync:le,$validateWithoutRaceconditions:ce,...o?{"~modifiers":O.$modifiers}:{},...We(se)});return Object.defineProperty(pe,Symbol.for(`regle:instance`),{value:!0}),b(()=>{for(let e of Object.keys(pe).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete pe[e];for(let e of Object.values(B.value))e?.$name&&Object.assign(pe,{[e.$name]:e})}),pe}function et({rulesDef:e,...n}){if(Ae(e,n.state))return Qe({rulesDef:e,...n});if(ke(n.state,e)){if(ie(n.state))return $e({rulesDef:e,...n});{let r=t().run(()=>{let e=m(n.state.value?n.state:f({}));return y(()=>n.state.value,t=>{e.value=t},{deep:!0}),y(e,e=>{n.state.value=e},{deep:!0}),{fakeState:e}}),{state:i,...a}=n;return $e({rulesDef:e,...a,state:r.fakeState})}}else if(je(e))return Xe({rulesDef:a(e.value)?e.value:e,...n})}function tt(e){return e&&k(e)&&Object.keys(e).some(e=>e.includes(`.`))?M(e):e}function nt(e){return Array.isArray(e)?e.length>0:k(e)&&Object.keys(e).length>0}function rt(e){return Array.isArray(e)?[]:{}}function it(e){let t=f(),n=f(),r,i,a,o,s=!1;function c(){let t=rt(n.value??e.externalIssues?.value);n.value=t,e.externalIssues&&(e.externalIssues.value=t)}function l(){let n=rt(t.value??e.externalErrors?.value);t.value=n,e.externalErrors&&(e.externalErrors.value=n)}function u(n,r=!1){if(s)return;s=!0;let i=tt(n);t.value=i,r&&e.externalErrors&&(e.externalErrors.value=i),nt(i)&&c(),s=!1}function d(t,r=!1){if(s)return;s=!0;let i=tt(t);n.value=i,r&&e.externalIssues&&(e.externalIssues.value=i),nt(i)&&l(),s=!1}function p(){r?.(),a?.(),r=y(()=>e.externalErrors?.value,e=>u(e),{deep:!0}),a=y(()=>e.externalIssues?.value,e=>d(e),{deep:!0})}function m(){i?.(),o?.(),i=y(()=>t.value,e=>u(e,!0),{deep:!0}),o=y(()=>n.value,e=>d(e,!0),{deep:!0})}function h(){g(),u(e.externalErrors?.value),d(e.externalIssues?.value),m()}function g(){i?.(),r?.(),o?.(),a?.(),i=void 0,r=void 0,o=void 0,a=void 0}return{externalErrors:t,externalIssues:n,start:h,watchOptionRefs:p,stop:g}}function at({initialState:e,originalState:n,options:i,scopeRules:a,state:o,customRules:c,shortcuts:u,schemaErrors:d,schemaMode:p=!1,onValidate:m,overrides:g}){let _=Oe(),v=f(!1),b=new Set,x,S=f(),C=it(i),w;function T(){w=y(()=>h(i.disabled),async e=>{e?O():(E(),C.start(),C.watchOptionRefs())})}function E(){ke(o,a)?S.value=$e({rootRules:a,rulesDef:a,state:o,customMessages:c?.(),storage:_,options:i,rootInitialState:e,externalErrors:C.externalErrors,externalIssues:C.externalIssues,validationGroups:i.validationGroups,initialState:e,originalState:n,shortcuts:u,fieldName:void 0,path:``,cachePath:``,schemaErrors:d,rootSchemaErrors:d,schemaMode:p,onValidate:m,overrides:g}):je(a)&&(S.value=Xe({rulesDef:a,state:o,customMessages:c?.(),storage:_,options:i,rootInitialState:e,externalErrors:C.externalErrors,externalIssues:C.externalIssues,initialState:e,originalState:n,shortcuts:u,fieldName:void 0,path:``,cachePath:``,schemaMode:p,schemaErrors:d,onValidate:m,overrides:g}))}function D(){w=void 0}function O(){S.value?.$unwatch(),C.stop()}function k(){v.value||(v.value=!0,x=t(!0),x.run(()=>{C.start(),E(),h(i.disabled)?s().then(()=>{S.value?.$unwatch()}):C.watchOptionRefs(),T()}))}function A(){v.value&&(v.value=!1,O(),w?.(),D(),x?.stop(),x=void 0,S.value=void 0,_.clearAll())}function j(){let e=r();!e||b.has(e)||(v.value||k(),b.add(e),l(()=>{b.delete(e),b.size||A()}))}k(),j();function M(){typeof window<`u`&&typeof __VUE_PROD_DEVTOOLS__<`u`&&__VUE_PROD_DEVTOOLS__&&!ge()&&S.value&&De(S.value,{name:h(i.id)})}return M(),{regle:S,bindToCurrentScope:j}}function ot({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),d=i(me,void 0)??{},m={...d.modifiers,...o},h=()=>({...d.rules?.(),...s?.()}),_={...d.shortcuts,...c},v={...d.overrides,...l},y={...m,...r},x,S=p(u??{});typeof n==`function`&&(x=b(()=>{S.value=n(t),g(S)}));let C=f(k(t.value)?{...z(t.value)}:z(t.value)),w=k(t.value)?{...z(t.value)}:z(t.value);Z(()=>{x?.()});let{regle:T,bindToCurrentScope:E}=at({scopeRules:S,state:t,options:y,initialState:C,originalState:w,customRules:h,shortcuts:_,overrides:v});return{regle:T,bindToCurrentScope:E}}function st(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s,c){let l=a(t)?t:f(t),u=e(()=>h(c?.disabled)??!1),{regle:d,bindToCurrentScope:p}=ot({state:l,rulesFactory:s,options:c,globalOptions:r,customRules:n,shortcuts:i,overrides:o});return{r$:U(d,u,()=>{d.value||p()})}}return s}const ct=st();function lt(){function e(e,t){return t}return e}const ut=lt();function dt(e,t){return A(h(e).$errors,String(t))}function ft(e,t){return A(h(e).$issues,String(t))}function pt(e){let t={};if(Object.entries(e).some(([e,t])=>Me(t)||typeof t==`function`))return null;for(let n in e){let r=e[n];r&&k(r)&&`$each`in r&&r.$each&&k(r.$each)?t[n]=[pt(r.$each)]:k(r)&&!I(r)&&!Object.entries(r).some(([e,t])=>Me(t)||typeof t==`function`)?t[n]=pt(r):t[n]=null}return t}function mt(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=f(pt(c?.value)),u=e(()=>h(s?.disabled)??!1),{regle:d,bindToCurrentScope:p}=ot({state:l,rulesFactory:c,options:s,globalOptions:r,customRules:n,shortcuts:i,overrides:o});return U(d,u,()=>{d.value||p()})}return s}const ht=mt();function gt(e){if(F(e)){let t=e,n=class extends t{constructor(...e){return super(...e),_t(this)}};return Object.defineProperty(n,"name",{value:t.name}),_t(n)}return _t(e)}function _t(e){return!N(e,he.REGLE_STATIC)&&Object.isExtensible(e)&&P(e,he.REGLE_STATIC,!0),e}function vt({rules:e,modifiers:t,shortcuts:n,overrides:r}){let i=st({rules:e,modifiers:t,shortcuts:n,overrides:r}),a=mt({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:lt(),useRules:a}}function yt(e,{rules:t,modifiers:n,shortcuts:r,overrides:i}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?j(a.modifiers,n):a.modifiers??n,c=a.shortcuts&&r?j(a.shortcuts,r):a.shortcuts??r,l=a.overrides&&i?j(a.overrides,i):a.overrides??i,u=st({rules:o,modifiers:s,shortcuts:c,overrides:l});return u.__config={rules:o,modifiers:s,shortcuts:c,overrides:l},{useRegle:u,inferRules:lt()}}function bt(e){return e}function xt(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)}),y=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(e){Object.values(t).forEach(t=>{t.$setExternalErrors(e)})}function E(e){Object.values(t).forEach(t=>{t.$setExternalIssues(e)})}function D(){Object.values(t).forEach(e=>{e.$clearExternalErrors()})}function O(){Object.values(t).forEach(e=>{e.$clearExternalIssues()})}function k(e){try{return e&&(i.value=e),Object.values(t).every(t=>t.$validateSync(e))}catch{return!1}}async function A(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 j=u({...!r&&{$silentValue:a},$errors:g,$issues:m,$silentIssues:h,$silentErrors:_,$instances:x,$value:i,$output:i,$dirty:o,$anyDirty:s,$invalid:c,$correct:l,$error:d,$pending:p,$ready:f,$edited:v,$anyEdited:y,$reset:S,$touch:C,$validate:A,$validateSync:k,$extractDirtyFields:w,$clearExternalErrors:D,$clearExternalIssues:O,$setExternalErrors:T,$setExternalIssues:E});return b(()=>{if(!r){for(let e of Object.keys(j).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete j[e];for(let[e,t]of Object.entries(x.value))Object.assign(j,{[e]:t})}}),j}function St(t,n){function r(r){let i=e(()=>h(r)),a=u({});c();let o=f(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]={})}))}y(i,c),y(t,e=>{o.value=l(e)},{deep:!0});function l(e){return i.value?typeof i.value==`string`?xt(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})})}),xt(a,!n.asRecord)):xt(e[`~~global`]??{},!n.asRecord)}return{r$:s.r$}}return{useCollectScope:r}}function Ct(t,r){let i=r??ct;return{useScopedRegle:((r,a,o)=>{let{namespace:s,scopeKey:l,id:u,...d}=o??{};i.__config??={};let p=e(()=>u??l),m=e(()=>h(s)),g=f(`${Object.keys(t.value).length+1}-${X()}`),_=e(()=>p.value??`instance-${g.value}`),{r$:v}=i(r,a,{...d,id:p.value});x(),Z(b),y(m,(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??m.value;n?t.value[n]&&delete t.value[n][_.value]:t.value[`~~global`][_.value]&&delete t.value[`~~global`][_.value]}function x(){m.value?(t.value[m.value]||(t.value[m.value]={}),t.value[m.value][_.value]=v):(t.value[`~~global`]||(t.value[`~~global`]={}),t.value[`~~global`][_.value]=v)}return{r$:v,dispose:b,register:x}})}}function wt(e){let t=(e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):ue(()=>f({"~~global":{}})))(),{useScopedRegle:n}=Ct(t,e?.customUseRegle),{useCollectScope:r}=St(t,{asRecord:e?.asRecord});return{useScopedRegle:n,useCollectScope:r}}const{useCollectScope:Tt,useScopedRegle:Et}=wt(),Dt=Tt,Ot=Et;function kt(t,n,r){let i=e(()=>h(t)[n]);return e(()=>r.find(e=>{if(e[n]&&`literal`in e[n]){let t=e[n].literal;if(Me(t))return h(t._params?.[0])===i.value}})||r.find(e=>k(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`))||{})}function At(e,t,n){return!!e&&t in e&&k(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function jt(e,t,n,r){let i=a(e)?m(e.value,`$fields`):m(e,`$fields`),o=f();return y(i,async()=>{await s(),At(i.value,t,n)?o.value=m(e).value:o.value=void 0},{immediate:!0,flush:`pre`}),o}function Mt(e){return e}function Nt(e,t){return n=>j({...e},t(n))}var Pt=`1.28.0`;function Ft(e){return typeof e==`function`}function It(e,t){return t.filter(t=>t in e&&!Ft(e[t])).map(t=>{let n=!1;return t===`$value`&&(n=!0),{key:t,value:e[t],editable:n}})}function Lt(e,t){return Object.entries(e).filter(([n])=>!t.includes(n)&&n.startsWith(`$`)&&!Ft(e[n])).map(([e,t])=>({key:e,value:t,editable:!1})).sort((e,t)=>e.key.localeCompare(t.key))}function Rt(e){if(!e.includes(`:field:`))return null;let[t,,n]=e.split(`:`);return{instanceId:t,fieldName:n}}function zt(e,t){return`${e}:field:${t}`}function Bt(e){if(!e.includes(`:rule:`))return null;let t=e.split(`:rule:`);if(t.length!==2)return null;let n=t[0],r=t[1],i=Rt(n);return i?{...i,ruleName:r}:null}function Vt(e,t,n){return`${zt(e,t)}:rule:${n}`}const Ht=[`$autoDirty`,`$rewardEarly`,`$clearExternalErrorsOnChange`,`$clearExternalErrorsOnValidate`,`$immediateDirty`,`$silent`];function Ut(e){let t={},n=It(e,be.FIELD);n.length>0&&(t.State=n);let r=Lt(e,[...be.FIELD,...Ht,`$rules`,`$fields`,`$modifiers`,`$deepCompare`,`$isArrayOrRegleStatic`,`$schemaMode`]);return r.length>0&&(t[`Other Properties`]=r),e[`~modifiers`]&&(t.Modifiers=Object.entries(e[`~modifiers`]).map(([e,t])=>({key:e,value:t,editable:!1}))),t}function Wt(e){let t={},n=[`$type`,`$valid`,`$active`,`$pending`,`$message`,`$tooltip`],r=It(e,n);r.length>0&&(t[`Rule State`]=r),e.$params&&Array.isArray(e.$params)&&e.$params.length>0&&(t.Parameters=[{key:`$params`,value:e.$params,editable:!1}]),e.$metadata!==void 0&&e.$metadata!==!0&&e.$metadata!==!1&&(t.Metadata=[{key:`$metadata`,value:e.$metadata,objectType:`reactive`,editable:!1}]);let i=Lt(e,[...n,`$params`,`$metadata`,`$haveAsync`,`$validating`,`$fieldDirty`,`$fieldInvalid`,`$fieldPending`,`$fieldCorrect`,`$fieldError`,`$maybePending`]);return i.length>0&&(t[`Other Properties`]=i),t}function Gt(e){let t={},n=It(e,be.ROOT);n.length>0&&(t.State=n);let r=Lt(e,[...be.ROOT,`$fields`,`$modifiers`,`$path`,...Ht]);return r.length>0&&(t[`Other Properties`]=r),e[`~modifiers`]&&(t.Modifiers=Object.entries(e[`~modifiers`]).map(([e,t])=>({key:e,value:t,editable:!1}))),t}function Kt(e,t){if(!e||!t)return null;let n=t.match(/[^.[\]]+/g);if(!n)return null;let r=e;for(let e of n){if(!r)return null;let t=parseInt(e);if(!isNaN(t))if(Ie(r)&&Array.isArray(r.$each))r=r.$each[t];else return null;else if(Ie(r)&&r.$self&&r.$self)r=r.$self;else if(Fe(r)&&r.$fields&&r.$fields[e])r=r.$fields[e];else if(r[e])r=r[e];else return null}return r}function qt(e,t){let n=Bt(e);if(n){let{instanceId:e,fieldName:r,ruleName:i}=n,a=t(e);if(!a||!a.r$.$fields)return null;let o=Kt(a.r$.$fields,r);if(!o||!(`$rules`in o))return null;let s=o.$rules[i];return s?Wt(s):null}let r=Rt(e);if(r){let{instanceId:e,fieldName:n}=r,i=t(e);if(!i||!i.r$.$fields)return null;let a=Kt(i.r$.$fields,n);return a?Ut(a):null}let i=t(e);return i?Gt(i.r$):null}function Jt(e){if(e.includes(`:rule:`))return;let t=Rt(e);if(t){let{instanceId:e,fieldName:n}=t,r=$.get(e);if(r&&r.r$.$fields){let e=Kt(r.r$.$fields,n);e&&typeof e.$validate==`function`&&e.$validate()}}else{let t=$.get(e);t&&typeof t.r$.$validate==`function`&&t.r$.$validate()}$.notifyDevtools()}function Yt(e,t=!1){let n=Rt(e);if(n){let{instanceId:e,fieldName:r}=n,i=$.get(e);if(i&&i.r$.$fields){let e=Kt(i.r$.$fields,r);e&&typeof e.$reset==`function`&&e.$reset({toOriginalState:t})}}else{let n=$.get(e);n&&typeof n.r$.$reset==`function`&&n.r$.$reset({toOriginalState:t})}$.notifyDevtools()}function Xt(e){if(e.includes(`:rule:`))return;let t=Rt(e);if(t){let{instanceId:e,fieldName:n}=t,r=$.get(e);if(r&&r.r$.$fields){let e=Kt(r.r$.$fields,n);e&&typeof e.$touch==`function`&&e.$touch()}}else{let t=$.get(e);t&&typeof t.r$.$touch==`function`&&t.r$.$touch()}$.notifyDevtools()}function Zt(e){let{nodeId:t,path:n,state:r}=e;if(!n.includes(`$value`)||!Rt(t))return;let[i,a,o]=t?.split(`:`)??[],s=$.get(i);if(s&&s.r$.$fields){let e=Kt(s.r$.$fields,o);e&&`$value`in e&&(e.$value=r.value,$.notifyDevtools())}}function Qt(e,t){let n=[],r=!1;Le(e)?r=e[`~modifiers`]?.$disabled??!1:Fe(e)?r=e[`~modifiers`]?.disabled??!1:Ie(e)&&(r=e[`~modifiers`]?.$disabled??!1);let i=Le(e)?(`required`in e.$rules&&!e.$rules.required.$active||I(e.$rules))&&!e.$schemaMode:!1,a=Le(e)?e.$inactive:!1,o=Fe(e)||Ie(e);return e.$error?n.push({label:`error`,textColor:Q.ERROR.text,backgroundColor:Q.ERROR.bg,tooltip:o?ve.ERROR:_e.ERROR}):e.$correct&&n.push({label:`correct`,textColor:Q.CORRECT.text,backgroundColor:Q.CORRECT.bg,tooltip:o?ve.CORRECT:_e.CORRECT}),e.$pending&&n.push({label:`pending`,textColor:Q.PENDING.text,backgroundColor:Q.PENDING.bg,tooltip:o?ve.PENDING:_e.PENDING}),r&&n.push({label:`disabled`,textColor:Q.DISABLED.text,backgroundColor:Q.DISABLED.bg,tooltip:_e.DISABLED}),a?n.push({label:`inactive`,textColor:Q.INACTIVE.text,backgroundColor:Q.INACTIVE.bg,tooltip:_e.INACTIVE}):i&&n.push({label:`optional`,textColor:Q.OPTIONAL.text,backgroundColor:Q.OPTIONAL.bg,tooltip:_e.OPTIONAL}),!e.$invalid&&e.$dirty&&n.push({label:`valid`,textColor:Q.VALID.text,backgroundColor:Q.VALID.bg,tooltip:_e.VALID}),e.$dirty?n.push({label:`dirty`,textColor:Q.DIRTY.text,backgroundColor:Q.DIRTY.bg,tooltip:o?ve.DIRTY:_e.DIRTY}):i||n.push({label:`pristine`,textColor:Q.PRISTINE.text,backgroundColor:Q.PRISTINE.bg,tooltip:_e.PRISTINE}),t&&n.push({label:`<${t}.vue>`,textColor:Q.COMPONENT.text,backgroundColor:Q.COMPONENT.bg}),n}function $t(e){let t=[];return e.$active?e.$valid?e.$valid&&t.push({label:`valid`,textColor:Q.VALID.text,backgroundColor:Q.VALID.bg,tooltip:ye.VALID}):t.push({label:`invalid`,textColor:Q.INVALID.text,backgroundColor:Q.INVALID.bg,tooltip:ye.INVALID}):t.push({label:`inactive`,textColor:Q.INACTIVE.text,backgroundColor:Q.INACTIVE.bg,tooltip:ye.INACTIVE}),e.$pending&&t.push({label:`pending`,textColor:Q.PENDING.text,backgroundColor:Q.PENDING.bg,tooltip:ye.PENDING}),t}function en(e,t,n){let r=[];return!e.$rules||typeof e.$rules!=`object`||Object.entries(e.$rules).forEach(([e,i])=>{if(i&&typeof i==`object`){let a=$t(i);r.push({id:Vt(t,n,e),label:`⚙️ ${e}`,tags:a,children:[]})}}),r}function tn(e,t,n){let r=[];if(!e.$each||!Array.isArray(e.$each))return r;if(e.$each.forEach((e,i)=>{if(e&&typeof e==`object`){let a=Qt(e),o=`${n}[${i}]`,s=[];Fe(e)?s=nn(e.$fields,t,o):Le(e)&&(s=en(e,t,o)),r.push({id:zt(t,o),label:`[${i}]`,tags:a,children:s})}}),e.$self&&typeof e.$self==`object`){let i=Qt(e.$self),a=`${n}[$self]`;r.unshift({id:zt(t,a),label:`$self`,tags:i,children:en(e.$self,t,a)})}return r}function nn(e,t,n){let r=[];return Object.entries(e).forEach(([e,i])=>{if(i&&typeof i==`object`){let a=n?`${n}.${e}`:e,o=Qt(i),s=!1,c=!1,l=[];Ie(i)?(l=tn(i,t,a),s=!0,l.length===0&&(c=!0)):Fe(i)?l=nn({...i.$fields,...i.$self&&{$self:i.$self}},t,a):Le(i)&&(l=en(i,t,a));let u=l.filter(e=>e.label!==`$self`);r.push({id:zt(t,a),label:`${s?`${e}[${u.length}]`:e}${c?` (empty)`:``}`,tags:o,children:l})}}),r}function rn(e,t){let n=[];return Le(e)?en(e,t,`root`):(!(`$fields`in e)||typeof e.$fields!=`object`||Object.entries(e.$fields).forEach(([e,r])=>{if(r&&typeof r==`object`){let i=Qt(r),a=[],o=!1;Ie(r)?(a=tn(r,t,e),o=!0):Fe(r)?a=nn({...r.$fields,...r.$self&&{$self:r.$self}},t,e):Le(r)&&(a=en(r,t,e));let s=a.filter(e=>e.label!==`$self`);n.push({id:zt(t,e),label:`${o?`${e}[${s.length}]`:e}`,tags:i,children:a})}}),n)}function an(e,t){let n=e.map(e=>{let{r$:t,id:n,name:r,componentName:i}=e;return{id:n,label:r,tags:Qt(t,i),children:rn(t,n)}});return!t||t.trim()===``?n:on(n,t)}function on(e,t){let n=t.toLowerCase(),r=[];for(let i of e){let e=i.label.toLowerCase().includes(n),a=i.tags?.some(e=>e.label.toLowerCase().includes(n))??!1,o=i.children?on(i.children,t):[];(e||a||o.length>0)&&r.push({...i,children:o.length>0?o:i.children})}return r}function sn(e){D({id:`regle-devtools`,label:`Regle`,logo:`https://reglejs.dev/logo_main.png`,packageName:`@regle/core`,homepage:`https://reglejs.dev`,componentStateTypes:[`Regles`],app:e},t=>{$.setApi(t,e),t.on.getInspectorTree(async e=>{if(e.inspectorId===xe.INSPECTOR){let t=an($.getAll(),e.filter);t.length>0?e.rootNodes=t:e.rootNodes=[{id:`empty-regles`,label:`No Regles instances found`,children:[]}]}}),t.on.getInspectorState(e=>{if(e.inspectorId===xe.INSPECTOR){let n=qt(e.nodeId,e=>$.get(e));n||t.sendInspectorTree(xe.INSPECTOR),n?e.state=n:e.state={}}}),t.on.editInspectorState(e=>{e.inspectorId===xe.INSPECTOR&&Zt(e)}),t.addInspector({id:xe.INSPECTOR,label:`Regle`,noSelectionText:`No instance selected`,icon:`rule`,treeFilterPlaceholder:`Filter state`,stateFilterPlaceholder:`Filter validation status`,actions:[{icon:`confirmation_number`,tooltip:`Log Regle version`,action:()=>{console.info(`Regle version`,Pt)}}],nodeActions:[{icon:`check`,tooltip:`Validate`,action:e=>{Jt(e)}},{icon:`touch_app`,action:e=>{Xt(e)},tooltip:`Touch the instance with $touch`},{icon:`refresh`,tooltip:`Reset validation state`,action:e=>{Yt(e)}},{icon:`restore`,tooltip:`Restore to original state`,action:e=>{Yt(e,!0)}}]}),E(()=>{$.notifyDevtools()}),$.notifyDevtools()})}const cn={install(e,t){e.provide(pe,Pt),t&&e.provide(me,t),typeof window<`u`&&typeof __VUE_PROD_DEVTOOLS__<`u`&&__VUE_PROD_DEVTOOLS__&&!ge()&&sn(e)}};export{W as InternalRuleType,cn as RegleVuePlugin,re as createRule,wt as createScopedUseRegle,kt as createVariant,vt as defineRegleConfig,bt as defineRegleOptions,Mt as defineRules,yt as extendRegleConfig,Ve as flatErrors,dt as getErrors,ft as getIssues,ut as inferRules,Y as isRegleInstance,gt as markStatic,xt as mergeRegles,At as narrowVariant,Nt as refineRules,G as unwrapRuleParameters,Dt as useCollectScope,ct as useRegle,at as useRootStorage,ht as useRules,Ot as useScopedRegle,jt 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,readonly as d,ref as f,shallowRef as p,toRef as m,toValue as h,triggerRef as g,unref as _,version as v,watch as y,watchEffect as b}from"vue";import{setupDevtoolsPlugin as x}from"@vue/devtools-api";function S(e){return e?.constructor?.name==`File`}function C(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function w(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 T(e){let t=String(e);return t===`__proto__`||t===`constructor`||t===`prototype`}function E(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}const D=/^\d+$/;function O(e,t,n){if(n!==void 0&&C(n)){let t=e.join(`.`),r=t?w(n,t):n;if(r!==void 0)return Array.isArray(r)}return D.test(t)}function k(e,t){if(!e)return{};let n={},r=Object.entries(e).sort((e,t)=>t[0].split(`.`).length-e[0].split(`.`).length);for(let[e,i]of r){let r=e.split(`.`),a=n;for(let e=0;e<r.length;e++){let n=r[e];if(T(n))break;let o=e===r.length-1,s=D.test(n),c=Array.isArray(a)&&s?Number(n):null,l=r[e+1],u=r.slice(0,e+1);if(c!==null)Array.isArray(a)&&(o?a[c]=i:((typeof a[c]!=`object`||a[c]===null)&&(a[c]=l&&D.test(l)?{$each:[],$self:[]}:{}),a=`$each`in a[c]?a[c].$each:a[c]));else if(o)typeof a[n]==`object`&&a[n]!==null&&!Array.isArray(a[n])?a[n].$self=i:a[n]=i;else{let e=O(u,l,t);if(Array.isArray(a[n])){let t=a[n].slice();a[n]=e?{$each:[],$self:t}:{$self:t}}(typeof a[n]!=`object`||a[n]===null)&&(a[n]=e?{$each:[],$self:[]}:{}),a=e&&`$each`in a[n]?a[n].$each:a[n]}}}return n}function A(e,t){return e&&C(e)&&Object.keys(e).some(e=>e.includes(`.`))?k(e,t):e}function j(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function M(e,t,n,r=!1){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})}function ee(e){return typeof e==`function`&&!!e.prototype&&`constructor`in e.prototype&&e.prototype.constructor===e}function N(e,t=!0,n=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):S(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:C(e)?e==null?!0:n?Object.keys(e).length===0:!1:!String(e).length}const P=Symbol(`regle-rule`);function F(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 I(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=>I(e,t+1)))),r==`Map`&&(n=new Map([...e].map(e=>[I(e[0],t+1),I(e[1],t+1)]))),r==`Date`&&(n=new Date(e.getTime())),r==`RegExp`&&(n=RegExp(e.source,F(e))),r==`Array`||r==`Object`){n=Array.isArray(e)?[]:{};for(let r in e)n[r]=I(e[r],t+1)}return n}function L(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 R(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 z(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(!z(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(C(e)&&C(t)&&s&&(r||!r&&n)&&!z(e[s],t[s],n,!1))return!1}return!0}return e!==e&&t!==t}var B=class extends Error{constructor(e=`Promise was aborted`){super(e),this.name=`AbortError`}};function V(e){let t=new AbortController,{signal:n}=t,r=new Promise((t,r)=>{function i(){r(new B)}n.addEventListener(`abort`,i),e.then(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new B):t(e)}).catch(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new B):r(e)})});function i(e){t.abort(e)}return{promise:r,abort:i,signal:n}}function H(e,t,r){if(!a(e))return r?.(),u(e);let i=f(!1);return n()&&c(async()=>{await s(),typeof window<`u`&&window.requestAnimationFrame(()=>{i.value=!0})}),u(new Proxy({},{get(n,a,o){if(r?.(),t.value&&a!==`$value`&&i.value)return Reflect.get(n,a,o);if(e.value!==void 0)return _(Reflect.get(e.value,a,o))},set(t,n,i){return r?.(),a(e.value[n])&&!a(i)?e.value[n].value=i:e.value[n]=i,!0},deleteProperty(t,n){return r?.(),Reflect.deleteProperty(e.value,n)},has(t,n){return r?.(),e.value===void 0?!1:Reflect.has(e.value,n)},ownKeys(){return r?.(),e.value===void 0?[]:Object.keys(e.value)},getOwnPropertyDescriptor(){return r?.(),{enumerable:!0,configurable:!0}}}))}const U={Inline:`__inline`,Async:`__async`};function W(e){try{return e.map(e=>h(e))}catch{return[]}}function te(t){return t.map(t=>t instanceof Function?e(t):a(t)?t:m(()=>t))}function G(e){let t=e.toString().slice(0,512).replace(/\/\/[^\n]*/g,``).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 ne(e,...t){let{validator:n,type:r,async:i}=e,a=i||r===U.Async||n.constructor.name===`AsyncFunction`;return o({validator(n,...r){return e.validator(n,...W(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:W(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:W(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:W(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...W(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:te(t),_brand:P})}function K(e){if(typeof e.validator==`function`){let t=[],n=e.async??e.validator.constructor.name===`AsyncFunction`,r=ne({...e,async:n},...t);if(G(e.validator)>1){let t=function(...t){return ne(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 re=Symbol.for(`regle:instance`);function q(e){return typeof e==`object`&&!!e&&re in e}function J(e){return C(e.value)}function ie(n,r,i){let a=t(),o;return o=n instanceof Function?a.run(()=>({computedEach:e(()=>n(r,i??0))})).computedEach:n,{scope:a,unwrapped:o}}const Y={LessThan:-1,EqualTo:0,GreaterThan:1};function ae(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 Y.GreaterThan;if(i>t)return Y.LessThan;if(!isNaN(t)&&isNaN(i))return Y.GreaterThan;if(isNaN(t)&&!isNaN(i))return Y.LessThan}return Y.EqualTo}const oe=ae(v,`3.5.0`)!==-1;function se(){return Math.floor(Math.random()*Date.now()).toString()}function ce(){return typeof window>`u`?se():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function le(e){return r()?(l(e),!0):!1}function X(e){let n=!1,r,i=t(!0);return((...t)=>(n||=(r=i.run(()=>e(...t)),!0),r))}function Z(e,t){return e.some(e=>t?e?.[t]:!1)}function ue(e,t){return t?e.reduce((e,n)=>{let r=n?.[t]||[];return e.concat(r)},[]):[]}const de=Symbol(`regle`),fe=Symbol(`regle-config`),pe={REGLE_STATIC:`__regle_static`};function me(){return!!(typeof globalThis<`u`&&(`__vitest_worker__`in globalThis||`__JEST_GLOBAL__`in globalThis||typeof window<`u`&&`Cypress`in window||typeof process<`u`&&process.env&&(process.env.VITEST||process.env.JEST_WORKER_ID||process.env.NODE_ENV===`test`||process.env.PLAYWRIGHT_TEST)))}const Q={ERROR:{text:16777215,bg:15680580},INVALID:{text:16777215,bg:16747520},CORRECT:{text:16777215,bg:1096065},VALID:{text:16777215,bg:292951},PENDING:{text:16777215,bg:16096779},DIRTY:{text:2042167,bg:16708551},COMPONENT:{text:16777215,bg:6514417},PRISTINE:{text:1120295,bg:16777215},INACTIVE:{text:0,bg:11581118},OPTIONAL:{text:0,bg:11581118},DISABLED:{text:15680580,bg:15067115}},he={PRISTINE:`Field is not touched yet`,DIRTY:`Field have been touched`,ERROR:`Field has errors`,CORRECT:`Field is dirty and all actives rules are valid`,VALID:`Field rules are all valid`,PENDING:`Field is pending`,INACTIVE:`Field is inactive`,OPTIONAL:`Field is not required`,DISABLED:`Validation reactivity is paused by the disabled modifier`},ge={DIRTY:`All nested fields have been touched`,ERROR:`Some nested fields have errors`,CORRECT:`All nested fields are correct`,PENDING:`Some nested fields are pending`},_e={INACTIVE:`The rule is not active`,INVALID:`Rule is invalid`,VALID:`Rule is valid`,PENDING:`Rule validator is pending`},ve={ROOT:[`$value`,`$invalid`,`$dirty`,`$error`,`$pending`,`$valid`,`$ready`],FIELD:[`$value`,`$invalid`,`$dirty`,`$error`,`$pending`,`$errors`]},ye={INSPECTOR:`regle-inspector`,COMPONENTS:`components`,TIMELINE:`regle-timeline`};function be(e,t){return!Te(e.value)&&(J(e)||C(t.value)&&!N(t.value)&&!Object.entries(t.value).some(([e,t])=>Ce(t)||typeof t==`function`))}function xe(e,t){return!!e.value&&C(e.value)&&`$each`in e.value||Array.isArray(t.value)}function Se(e){return!!e.value&&(C(e.value)||J(e.value))}function Ce(e){return(C(e)||typeof e==`function`)&&`_validator`in e}function we(e){return typeof e.value==`function`?`_validator`in e.value:!0}function Te(e){return C(e)&&j(e,pe.REGLE_STATIC)&&e[pe.REGLE_STATIC]===!0}function Ee(e){return C(e)&&`$fields`in e}function De(e){return!!e&&`$each`in e}function Oe(e){return!!e&&`$rules`in e}function ke(e){return typeof e==`function`}function Ae(e,t){return t.filter(t=>t in e&&!ke(e[t])).map(t=>{let n=!1;return t===`$value`&&(n=!0),{key:t,value:e[t],editable:n}})}function je(e,t){return Object.entries(e).filter(([n])=>!t.includes(n)&&n.startsWith(`$`)&&!ke(e[n])).map(([e,t])=>({key:e,value:t,editable:!1})).sort((e,t)=>e.key.localeCompare(t.key))}function Me(e){if(!e.includes(`:field:`))return null;let[t,,n]=e.split(`:`);return{instanceId:t,fieldName:n}}function Ne(e,t){return`${e}:field:${t}`}function Pe(e){if(!e.includes(`:rule:`))return null;let t=e.split(`:rule:`);if(t.length!==2)return null;let n=t[0],r=t[1],i=Me(n);return i?{...i,ruleName:r}:null}function Fe(e,t,n){return`${Ne(e,t)}:rule:${n}`}const Ie=[`$autoDirty`,`$rewardEarly`,`$clearExternalErrorsOnChange`,`$clearExternalErrorsOnValidate`,`$immediateDirty`,`$silent`];function Le(e){let t={},n=Ae(e,ve.FIELD);n.length>0&&(t.State=n);let r=je(e,[...ve.FIELD,...Ie,`$rules`,`$fields`,`$modifiers`,`$deepCompare`,`$isArrayOrRegleStatic`,`$schemaMode`]);return r.length>0&&(t[`Other Properties`]=r),e[`~modifiers`]&&(t.Modifiers=Object.entries(e[`~modifiers`]).map(([e,t])=>({key:e,value:t,editable:!1}))),t}function Re(e){let t={},n=[`$type`,`$valid`,`$active`,`$pending`,`$message`,`$tooltip`],r=Ae(e,n);r.length>0&&(t[`Rule State`]=r),e.$params&&Array.isArray(e.$params)&&e.$params.length>0&&(t.Parameters=[{key:`$params`,value:e.$params,editable:!1}]),e.$metadata!==void 0&&e.$metadata!==!0&&e.$metadata!==!1&&(t.Metadata=[{key:`$metadata`,value:e.$metadata,objectType:`reactive`,editable:!1}]);let i=je(e,[...n,`$params`,`$metadata`,`$haveAsync`,`$validating`,`$fieldDirty`,`$fieldInvalid`,`$fieldPending`,`$fieldCorrect`,`$fieldError`,`$maybePending`]);return i.length>0&&(t[`Other Properties`]=i),t}function ze(e){let t={},n=Ae(e,ve.ROOT);n.length>0&&(t.State=n);let r=je(e,[...ve.ROOT,`$fields`,`$modifiers`,`$path`,...Ie]);return r.length>0&&(t[`Other Properties`]=r),e[`~modifiers`]&&(t.Modifiers=Object.entries(e[`~modifiers`]).map(([e,t])=>({key:e,value:t,editable:!1}))),t}function Be(e,t){if(!e||!t)return null;let n=t.match(/[^.[\]]+/g);if(!n)return null;let r=e;for(let e of n){if(!r)return null;let t=parseInt(e);if(!isNaN(t))if(De(r)&&Array.isArray(r.$each))r=r.$each[t];else return null;else if(De(r)&&r.$self&&r.$self)r=r.$self;else if(Ee(r)&&r.$fields&&r.$fields[e])r=r.$fields[e];else if(r[e])r=r[e];else return null}return r}function Ve(e,t){let n=Pe(e);if(n){let{instanceId:e,fieldName:r,ruleName:i}=n,a=t(e);if(!a||!a.r$.$fields)return null;let o=Be(a.r$.$fields,r);if(!o||!(`$rules`in o))return null;let s=o.$rules[i];return s?Re(s):null}let r=Me(e);if(r){let{instanceId:e,fieldName:n}=r,i=t(e);if(!i||!i.r$.$fields)return null;let a=Be(i.r$.$fields,n);return a?Le(a):null}let i=t(e);return i?ze(i.r$):null}function He(e){if(e.includes(`:rule:`))return;let t=Me(e);if(t){let{instanceId:e,fieldName:n}=t,r=$.get(e);if(r&&r.r$.$fields){let e=Be(r.r$.$fields,n);e&&typeof e.$validate==`function`&&e.$validate()}}else{let t=$.get(e);t&&typeof t.r$.$validate==`function`&&t.r$.$validate()}$.notifyDevtools()}function Ue(e,t=!1){let n=Me(e);if(n){let{instanceId:e,fieldName:r}=n,i=$.get(e);if(i&&i.r$.$fields){let e=Be(i.r$.$fields,r);e&&typeof e.$reset==`function`&&e.$reset({toOriginalState:t})}}else{let n=$.get(e);n&&typeof n.r$.$reset==`function`&&n.r$.$reset({toOriginalState:t})}$.notifyDevtools()}function We(e){if(e.includes(`:rule:`))return;let t=Me(e);if(t){let{instanceId:e,fieldName:n}=t,r=$.get(e);if(r&&r.r$.$fields){let e=Be(r.r$.$fields,n);e&&typeof e.$touch==`function`&&e.$touch()}}else{let t=$.get(e);t&&typeof t.r$.$touch==`function`&&t.r$.$touch()}$.notifyDevtools()}function Ge(e){let{nodeId:t,path:n,state:r}=e;if(!n.includes(`$value`)||!Me(t))return;let[i,a,o]=t?.split(`:`)??[],s=$.get(i);if(s&&s.r$.$fields){let e=Be(s.r$.$fields,o);e&&`$value`in e&&(e.$value=r.value,$.notifyDevtools())}}async function Ke(e){e.sendInspectorTree(ye.INSPECTOR),e.sendInspectorState(ye.INSPECTOR)}function qe(){let e=f(!1),t=p(),n=p(new Map),r=p(new Map),i=p(new Map),a=f(0),o;function s(e){t.value=e}function c(e,t){let o=t?.filePath??`loose`,s=i.value.get(o),c=s?s+1:1;i.value.set(o,c);let d=`${t?.uid?.toString()??`regle`}#${++a.value}`,f=`r\$ #${t?.name??c}`;n.value.set(d,{id:d,name:f,r$:e,componentName:t?.componentName,filePath:t?.filePath});let p=y([()=>e.$value,()=>e.$externalErrors,()=>e.$externalIssues,()=>e.$error,()=>e.$invalid,()=>e.$pending],()=>u(),{deep:!0,flush:`post`});return r.value.set(d,p),window.requestAnimationFrame(()=>{l()}),d}function l(){t.value&&Ke(t.value)}function u(){o??=window.requestAnimationFrame(()=>{o=void 0,l()})}function d(e){let t=r.value.get(e);t&&(t(),r.value.delete(e)),n.value.delete(e),l()}function m(){return Array.from(n.value.values())}function h(e){return n.value.get(e)}function g(){r.value.forEach(e=>e()),r.value.clear(),n.value.clear(),l()}return{devtoolsApi:t,register:c,unregister:d,getAll:m,get:h,clear:g,setApi:s,notifyDevtools:l,loggedWarning:e}}const $=qe();function Je(e,t){if(typeof window>`u`||!(typeof __VUE_PROD_DEVTOOLS__<`u`&&__VUE_PROD_DEVTOOLS__)||me())return()=>{};if(!i(de,void 0)&&!$.loggedWarning.value&&$.devtoolsApi)return $.loggedWarning.value=!0,console.warn(`📏 Regle Devtools are not available. Install Regle plugin in your app to enable them. https://reglejs.dev/introduction/devtools`),()=>{};let r=n(),a=r?.type?.name||r?.type?.__name,o;r&&r.type&&typeof r.type==`object`&&`__file`in r.type&&(o=r.type.__file);let s=$.register(e,{name:t?.name,componentName:a,uid:r?.uid,filePath:o});function c(){$.unregister(s)}return le(c),c}function Ye(){let e=p(new Map),t=p(new Map),n=p(new Map),i=p(new Map),a=p(new Map),o=p(new Map),s=p(new Map);function c(e){let n=t.value.get(e);if(n)return n;{let n=f({});return t.value.set(e,n),n}}function u(e){let t=n.value.get(e);if(t)return t;{let t=f([]);return n.value.set(e,t),t}}function d(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=W(`_params`in i&&Array.isArray(i._params)?i._params:[]),n=W(r._params);return e?.[t]===n?.[t]}})}})}function C(e){let t=a.value.get(e);if(t)return t;{let t=f(!1),n=f(!0),r=f({}),i=f(!1);return a.value.set(e,{$pending:t,$valid:n,$metadata:r,$validating:i}),{$pending:t,$valid:n,$metadata:r,$validating:i}}}function w(){e.value.clear(),t.value.clear(),n.value.clear(),i.value.clear(),a.value.clear(),o.value.clear(),s.value.clear()}return r()&&l(w),{clearAll:w,addRuleDeclEntry:b,setDirtyEntry:v,checkRuleDeclEntry:x,getDirtyState:y,trySetRuleStatusRef:C,getFieldsEntry:c,getCollectionsEntry:u,getArrayStatus:g,addArrayStatus:h,deleteArrayStatus:_,arrayStatusStorage:s,addAdditionalRulesEntry:d,getAdditionalRulesEntry:m}}function Xe({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&&Array.isArray(e.$externalErrors)&&!e.$externalIssues?.length?e.$externalErrors.map(t=>({$message:t,$property:e.fieldName,$rule:`external`,$type:void 0})):[],i=e.$error&&e.$externalIssues&&Array.isArray(e.$externalIssues)?e.$externalIssues.map(t=>({...t,$property:t.$property??e.fieldName,$rule:t.$rule??`external`})):[],a=[];return e.$schemaErrors&&e.$error&&(a=!Array.isArray(e.$schemaErrors)&&`$self`in e.$schemaErrors?e.$schemaErrors.$self??[]:e.$schemaErrors??[]),[...n,...r,...i,...a]}function Ze({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 Qe(e){return C(e)&&`$each`in e}function $e(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!C(e)))return e;if(Qe(e)){let t=n?e.$self?.map(e=>({message:e,path:[]}))??[]:e.$self??[],r=e.$each?.map(e=>et(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>et(t,n,[e])).flat()}function et(e,t=!1,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(e=>!C(e)))return t?e.map(e=>({message:e,path:r??[]})):e;if(Qe(e)){let n=r?.length?e.$self?.map(e=>({message:e,path:r??[]}))??[]:e.$self??[],i=e.$each?.map((e,n)=>et(e,t,r?.concat(n)))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>et(n,t,r?.concat(e))).flat()}function tt({customMessages:n,rule:r,ruleKey:i,state:a,path:o,cachePath:s,storage:c,modifiers:l}){let d=t(),p={},m,h=e(()=>Ce(r.value)&&r.value._async),g=f(!1),_=0,{$pending:v,$valid:b,$metadata:x,$validating:S}=c.trySetRuleStatusRef(`${s}.${i}`);function C(){d=t(),p=d.run(()=>{let t=f(!1),s=f(!1),c=f(!0),l=f(!1),u=f(!1),d=e(()=>({$value:a.value,$error:s.value,$dirty:t.value,$pending:l.value,$correct:u.value,$invalid:c.value,$rule:{$valid:b.value,$invalid:!b.value,$pending:v.value},$params:S.value,...x.value})),p=e(()=>{try{return we(r)?typeof r.value.active==`function`?r.value.active(d.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(d.value):a),we(r)){let n=`_${e}_patched`;a&&!r.value[n]||(t=typeof r.value[e]==`function`?r.value[e](d.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 N(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),_=e(()=>we(r)&&r.value.type?r.value.type:i),y=e(()=>we(r)?r.value.validator:r.value),S=e(()=>typeof r.value==`function`?[]:W(r.value._params??[]));return{$active:p,$message:h,$type:_,$validator:y,$params:S,$path:e(()=>`${o}.${i}`),$tooltip:g,$fieldCorrect:u,$fieldError:s,$fieldDirty:t,$fieldPending:l,$fieldInvalid:c}}),m=y(p?.$params,()=>{(!l.$silent.value||l.$rewardEarly.value&&p.$fieldError.value)&&D()},{deep:oe?1:!0})}C();function w(){b.value=!0,p.$fieldDirty.value&&(v.value=!0)}async function T(e){let t=!1;try{let n=p.$validator.value;if(typeof n!=`function`)return console.error(`${o}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let r=n(a.value,...p.$params.value),i=a.value;w();let s;if(s=r instanceof Promise?await r:r,e!==_||a.value!==i)return b.value;if(typeof s==`boolean`)t=s;else{let{$valid:e,...n}=s;t=e,x.value=n}}catch{t=!1}finally{e===_&&(v.value=!1)}return t}function E(e,t=!0){if(Ce(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 x.value=t,e}}return!0}async function D(){let e=++_;try{S.value=!0;let t=!1;if(g.value=!0,Ce(r.value)&&r.value._async)t=await T(e);else{let e=p.$validator.value;t=E(e)}return e===_?(b.value=t,t):b.value}catch{return!1}finally{e===_&&(S.value=!1,g.value=!1)}}function O(){try{return S.value=!0,E(p.$validator.value)}catch{return!1}finally{S.value=!1}}function k(){_++,b.value=!0,x.value={},v.value=!1,S.value=!1,C()}function A(){m(),d.stop(),d=t()}return u({...p,$pending:v,$valid:b,$metadata:x,$haveAsync:h,$maybePending:g,$validating:S,$parse:D,$parseSync:O,$unwatch:A,$watch:C,$reset:k})}function nt(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:$e(i,{includePath:!0})}}}}}function rt(e){return e===!0?`eager`:e===!1||e==null?!1:e}function it(e){return C(e)&&!Te(e)?Object.values(e).some(e=>it(e)):Array.isArray(e)?e.some(e=>it(e)):!N(e)}function at(e,t){return Oe(e)?!e.$inactive&&it(t):Ee(e)?ot(e.$self,e.$fields,t):De(e)&&Array.isArray(t)?e.$self&&at(e.$self,t)?!0:e.$each.some((e,n)=>at(e,t[n])):!1}function ot(e,t,n){if(e&&at(e,n))return!0;if(!C(n)||Te(n))return!1;let r=n;return Object.entries(t).some(([e,t])=>at(t,r[e]))}function st(e,t,n,r=!1,i=!1){return e===`eager`?!0:e===`non-empty`?!r||i?!1:it(n):e===`lazy-non-empty`?it(t):!1}function ct({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,fieldName:c,storage:l,options:d,externalErrors:p,externalIssues:g,schemaErrors:_,schemaMode:v,onUnwatch:x,$isArray:S,initialState:w,rootInitialState:T,originalState:E,shortcuts:D,overrides:O,onValidate:k}){let A=t(),j,M=[],ee,P,F,B,H=()=>{},U,W=()=>{},te=f(!1),G=f(l.getAdditionalRulesEntry(o)??{});function ne(e){G.value=e??{},l.addAdditionalRulesEntry(o,e??{}),re(),H()}function K(e){ne(e)}function re(){let e={...r.value,...G.value},t=[];for(let r in e){if(r.startsWith(`$`)||r.startsWith(`~`))continue;let s=e[r];if(!s)continue;let c=m(()=>s);t.push([r,tt({modifiers:{$silent:j.$silent,$rewardEarly:j.$rewardEarly},customMessages:i,rule:c,ruleKey:r,state:n,path:a,cachePath:o,storage:l,$debounce:Z.value.$debounce})])}X.value=Object.fromEntries(t),l.addRuleDeclEntry(o,e)}function q(){let e={...r.value,...G.value},t=l.checkRuleDeclEntry(o,e),n={};for(let t in e)t.startsWith(`$`)&&(n[t]=e[t]);return Z.value=n,t}function J(){let e=q();se(),re(),j.processShortcuts(),ie(),Y(),e?.valid!=null&&(j.$dirty.value=l.getDirtyState(o),(j.$dirty.value&&!j.$silent.value||j.$rewardEarly.value&&j.$error.value)&&H()),l.addRuleDeclEntry(o,r.value)}function ie(){H=j.$debounce.value>0?R(le,j.$debounce.value,{trackDebounceRef:te}):le}function Y(){W=j.$debounce.value>0?R(()=>{j.$dirty.value=!0},j.$debounce.value):()=>{j.$dirty.value=!0}}function ae(){if(X.value)for(let e of Object.values(X.value))e.$unwatch();P(),B?.(),j.$dirty.value&&l.setDirtyEntry(o,j.$dirty.value),ee?.(),A.stop(),A=t();for(let e of M)e.stop();M=[],x?.(),F?.()}function se(){if(X.value)for(let e of Object.values(X.value))e.$watch();j=A.run(()=>{let r=f(!1),i=f(!1),a=e(()=>r.value),o=e(()=>S||Te(n.value)),s=e(()=>Z.value.$debounce==null?h(d.debounce)==null?j.$haveAnyAsyncRule.value?200:0:h(d.debounce):Z.value.$debounce),l=e(()=>Z.value.$deepCompare==null?!1:Z.value.$deepCompare),m=e(()=>Z.value.$lazy==null?h(d.lazy)==null?!1:h(d.lazy)===!0:Z.value.$lazy),y=e(()=>Z.value.$immediateDirty==null?h(d.immediateDirty)==null?!1:rt(h(d.immediateDirty)):rt(Z.value.$immediateDirty)),x=e(()=>Z.value.$rewardEarly==null?h(d.rewardEarly)==null?!1:h(d.rewardEarly)===!0:!!Z.value.$rewardEarly),C=e(()=>Z.value.$clearExternalErrorsOnChange==null?h(d.clearExternalErrorsOnChange)==null?!E.value:h(d.clearExternalErrorsOnChange)===!0:!!Z.value.$clearExternalErrorsOnChange),T=e(()=>Z.value.$clearExternalErrorsOnValidate==null?h(d.clearExternalErrorsOnValidate)==null?!1:h(d.clearExternalErrorsOnValidate)===!0:!!Z.value.$clearExternalErrorsOnValidate),E=e(()=>x.value?!0:Z.value.$silent==null?h(d.silent)==null?!1:h(d.silent)===!0:Z.value.$silent),k=e(()=>Z.value.$autoDirty==null?h(d.autoDirty)==null?!0:h(d.autoDirty)===!0:Z.value.$autoDirty),A=e(()=>{if(Z.value.$isEdited!=null)return Z.value.$isEdited;if(O?.isEdited!=null)return O.isEdited}),P=e(()=>{for(let e of Object.values(X.value))if(e.$validating)return!0;return!1}),F=e({get:()=>n.value,set(e){ee(),n.value=e,ce()}}),I=e(()=>te.value?q.value&&r.value:q.value&&!re.value&&r.value),R=e(()=>Xe({field:{$rules:X.value,$error:I.value,$externalErrors:p?.value,$externalIssues:g?.value,$schemaErrors:_?.value,fieldName:J.value}})),B=e(()=>Xe({field:{$rules:X.value,$error:I.value,$externalErrors:p?.value,$externalIssues:g?.value,$schemaErrors:_?.value,fieldName:J.value},silent:!0})),V=e(()=>R.value.map(e=>e.$message)),H=e(()=>B.value.map(e=>e.$message)),U=f(!1);function W(e,t){return t instanceof Date&&e instanceof Date?L(t).getTime()!==L(e).getTime():t==null?typeof e==`boolean`?t===void 0?e===!0:e!=null:e!=null&&e!==``:Array.isArray(e)&&Array.isArray(t)?!z(e,t,Z.value.$deepCompare):t!==e}b(()=>{r.value?A.value?U.value=A.value(n.value,w.value,W):U.value=W(n.value,w.value):U.value=!1});let G=e(()=>U.value),ne=e(()=>Ze({field:{$rules:X.value}})),K=e(()=>!(q.value||re.value)),re=e(()=>i.value||!x.value?Object.entries(X.value).some(([e,t])=>t.$pending):!1),q=e(()=>p?.value?.length||g?.value?.length||_?.value?.length?!0:ie.value?!1:Object.values(X.value).some(e=>!e.$valid||e.$maybePending)),J=e(()=>c??d.id??`root`),ie=e(()=>!v&&!Object.keys(X.value).some(e=>!e.startsWith(`$`))),Y=e(()=>{if(p?.value?.length||g?.value?.length||ie.value||te.value)return!1;if(r.value&&!N(n.value)&&!P.value&&!re.value){if(v)return!_?.value?.length;{let e=Object.values(X.value);for(let t of e)if(t.$active&&!t.$valid)return!1;return e.some(e=>e.$active)}}return!1}),ae=e(()=>Object.values(X.value).some(e=>e.$haveAsync)),oe=e(()=>({$debounce:s.value,$lazy:m.value,$rewardEarly:x.value,$autoDirty:k.value,$silent:E.value,$clearExternalErrorsOnChange:C.value,$clearExternalErrorsOnValidate:T.value,$immediateDirty:y.value,$isEdited:A.value,$disabled:h(d.disabled)??!1}));function se(){D?.fields&&Object.entries(D.fields).forEach(([e,i])=>{let o=t();le[e]=o.run(()=>{let e=f();return b(()=>{e.value=i(u({$dirty:r,$externalErrors:p?.value??[],$externalIssues:g?.value??[],$value:n,$silentValue:F,$rules:X,$error:I,$pending:re,$invalid:q,$correct:Y,$errors:V,$ready:K,$silentErrors:H,$anyDirty:a,$tooltips:ne,$name:J,$inactive:ie,$edited:U,$anyEdited:G}))}),e}),M.push(o)})}let le={};return{$error:I,$pending:re,$invalid:q,$correct:Y,$debounce:s,$deepCompare:l,$lazy:m,$immediateDirty:y,$ready:K,$issues:R,$silentIssues:B,$errors:V,$silentErrors:H,$rewardEarly:x,$autoDirty:k,$silent:E,$clearExternalErrorsOnChange:C,$clearExternalErrorsOnValidate:T,$anyDirty:a,$edited:U,$anyEdited:G,$name:J,$haveAnyAsyncRule:ae,$shortcuts:le,$validating:P,$tooltips:ne,$dirty:r,processShortcuts:se,$silentValue:F,$inactive:ie,$modifiers:oe,$isArrayOrRegleStatic:o}}),ce(),P=y(j.$dirty,e=>{l.setDirtyEntry(o,e),Object.values(X.value).forEach(t=>{t.$fieldDirty=e})}),B=y([j.$error,j.$correct,j.$invalid,j.$pending],()=>{Object.values(X.value).forEach(e=>{e.$fieldError=j.$error.value,e.$fieldInvalid=j.$invalid.value,e.$fieldPending=j.$pending.value,e.$fieldCorrect=j.$correct.value})}),F=y(j.$haveAnyAsyncRule,ie)}function ce(){ee=y(n,()=>{j.$autoDirty.value&&!j.$silent.value&&(j.$dirty.value||W()),r.value instanceof Function&&J(),(!j.$silent.value||j.$rewardEarly.value&&j.$error.value)&&H(),j.$clearExternalErrorsOnChange.value&&(be(),Se())},{deep:j.$isArrayOrRegleStatic.value?!0:oe?1:!0})}async function le(){try{let{promise:e}=pe(Promise.allSettled(Object.values(X.value).map(e=>e.$parse())));await e}catch{}}let X=f({}),Z=f({});J();function ue(){st(j.$immediateDirty.value,w.value,T?.value??w.value,a===``,j.$inactive.value)&&(j.$dirty.value=!0)}function de(e,t){if(fe(),j.$dirty.value=!1,l.setDirtyEntry(o,!1),!t)if(e?.toOriginalState)n.value=I(E),w.value=I(E);else if(e?.toInitialState)n.value=I(w.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,w.value=I(t),n.value=I(t)}else w.value=C(n.value)&&!Te(n.value)?I(n.value):Array.isArray(n.value)?[...n.value]:n.value;if(e?.clearExternalErrors!==!1&&(be(),Se()),!t&&!e?.keepValidationState)for(let e of Object.values(X.value))e.$reset();if(!j.$lazy.value&&!j.$silent.value&&!t)for(let e of Object.values(X.value))e.$parse();ue()}function fe(){`cancel`in H&&H.cancel()}function pe(e){return U&&U.abort(),U=V(e),U}function me(){fe(),U&&U.abort()}function Q(e=!0,t=!1){j.$dirty.value||W(),t&&e?(!j.$silent.value||j.$rewardEarly.value&&j.$error.value)&&(fe(),H()):e&&(fe(),H())}async function he(e){return e&&(n.value=e),await s(),ge()}async function ge(e){try{if(e&&(n.value=e),v)return k?(Q(!1),k()):{valid:!1,data:n.value,errors:j.$errors.value,issues:j.$issues.value};let t=n.value;if(j.$clearExternalErrorsOnValidate.value&&(be(),Se()),j.$autoDirty.value&&!j.$silent.value&&j.$dirty.value&&!j.$validating.value&&!j.$pending.value&&!te.value&&!N(X.value))return{valid:!j.$invalid.value,data:t,errors:j.$errors.value,issues:j.$issues.value};if(j.$dirty.value||(j.$dirty.value=!0),N(X.value))return{valid:!0,data:t,errors:j.$errors.value,issues:j.$issues.value};me();let{promise:r}=pe(Promise.allSettled(Object.values(X.value).map(e=>e.$parse()))),i=await r;return await s(),{valid:i.every(e=>e.status===`fulfilled`&&e.value===!0),data:t,errors:j.$errors.value,issues:j.$issues.value}}catch{return{valid:!1,data:n.value,errors:j.$errors.value,issues:j.$issues.value}}}function _e(e){try{return e&&(n.value=e),j.$dirty.value||(j.$dirty.value=!0),v?!1:(j.$clearExternalErrorsOnValidate.value&&(be(),Se()),Object.values(X.value).map(e=>e.$parseSync()).every(e=>!!e))}catch{return!1}}function ve(e=!0){return j.$dirty.value?n.value:e?{_null:!0}:null}function ye(e){p&&(p.value=e),Se()}function be(){p?.value?.length&&(p.value=[])}function xe(e){g&&(g.value=e),be()}function Se(){g?.value?.length&&(g.value=[])}!j.$lazy.value&&!j.$dirty.value&&!j.$silent.value&&le(),ue();let{$shortcuts:Ce,$validating:we,$autoDirty:Ee,$rewardEarly:De,$clearExternalErrorsOnChange:Oe,$clearExternalErrorsOnValidate:ke,$haveAnyAsyncRule:Ae,$debounce:je,$lazy:Me,...Ne}=j,Pe=u({...Ne,$externalErrors:p,$externalIssues:g,$value:n,$output:n,$initialValue:w,$originalValue:E,$rules:X,...Ce,$path:a,$isDebouncing:te,$reset:de,$touch:Q,$validate:he,$validateSync:_e,$validateWithoutRaceconditions:ge,$unwatch:ae,$watch:se,$extractDirtyFields:ve,$clearExternalErrors:be,$clearExternalIssues:Se,$abort:me,$addRules:ne,addRules:K,$schemaMode:v,"~modifiers":j.$modifiers,$setExternalErrors:ye,$setExternalIssues:xe,...nt(he)});return Object.defineProperty(Pe,Symbol.for(`regle:instance`),{value:!0}),Pe}function lt({$id:t,path:n,cachePath:r,index:i,options:a,storage:o,stateValue:s,customMessages:c,rules:l,externalErrors:u,externalIssues:d,schemaErrors:p,initialState:g,originalState:_,shortcuts:v,fieldName:y,schemaMode:b,overrides:x,currentIndexes:S}){let w=e(()=>h(l)),T=s.value?.$id??w.value.$key??ce(),E=`${r}.${String(T)}`,D=f(i),O=`${n}.${i}`;typeof s.value==`object`&&s.value!=null&&(s.value.$id||Object.defineProperties(s.value,{$id:{value:T,enumerable:!1,configurable:!1,writable:!1}}));let k=ft({index:i,state:s,rulesDef:w,nestedReactiveRules:!0,customMessages:c,path:O,cachePath:E,storage:o,options:a,externalErrors:m(u?.value??[],i),externalIssues:m(d?.value??[],i),schemaErrors:e(()=>p?.value?.[D.value]),initialState:g,originalState:_,shortcuts:v,fieldName:y,schemaMode:b,overrides:x});return k&&(k.$id=s.value?.$id??String(T),S?.set(k.$id,D),o.addArrayStatus(t,k.$id,k)),s.value&&(!C(s.value)||Te(s.value))&&b&&k?.$touch(),k}function ut({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,storage:s,options:c,externalErrors:l,externalIssues:d,schemaErrors:p,schemaMode:g,initialState:_,originalState:v,shortcuts:x,fieldName:S,overrides:C}){let w=t(),T,E=t(),D,O=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let k=f(),A=f(n.value),j=f({}),M,ee,P=f({}),F=s.getCollectionsEntry(a),L=new Map;D=E.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=>Ce(e)||typeof e==`function`):!1:!1)})),R(),H();function R(){j.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=ce(),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)&&(!D.isPrimitiveArray.value||g)?F.value=n.value.map((t,n)=>{let{scope:u,unwrapped:f}=ie(r.value.$each,m(()=>t),n);u&&O.push(u);let h=m(_.value??[],n),y=m(l?.value??{},`$each`),b=m(d?.value??{},`$each`),w=e(()=>p?.value?.$each);return lt({$id:k.value,path:a,cachePath:o,customMessages:i,rules:f??{},stateValue:m(()=>t),index:n,options:c,storage:s,externalErrors:y,externalIssues:b,schemaErrors:w,initialState:h,originalState:v,shortcuts:x,fieldName:S,schemaMode:g,overrides:C,currentIndexes:L})||null}).filter(e=>!!e):(F.value=[],L.clear()),P.value=ct({state:n,rulesDef:r,customMessages:i,path:a,cachePath:a,storage:s,options:c,externalErrors:m(l?.value??{},`$self`),externalIssues:m(d?.value??{},`$self`),schemaErrors:e(()=>p?.value?.$self),$isArray:!0,initialState:_,originalState:v,shortcuts:x,fieldName:S,schemaMode:g,overrides:C})}function z(){if(Array.isArray(n.value)&&(!D.isPrimitiveArray.value||g)){let t=[...F.value],o=new Set;F.value=n.value.map((t,n)=>{let u=m(()=>t);if(t.$id&&F.value.find(e=>e.$id===t.$id)){let e=s.getArrayStatus(k.value,t.$id);if(e){let r=L.get(t.$id);return r&&(r.value=n),o.add(t.$id),e.$value=u,e}return null}else{let{scope:t,unwrapped:f}=ie(r.value.$each,u,n);t&&O.push(t);let h=m(l?.value??{},`$each`),y=m(d?.value??{},`$each`),b=e(()=>p?.value?.$each??[]),w=lt({$id:k.value,path:a,cachePath:a,customMessages:i,rules:f??{},stateValue:u,index:n,options:c,storage:s,externalErrors:h,externalIssues:y,schemaErrors:b,initialState:m(_.value??[],n),originalState:v,shortcuts:x,fieldName:S,schemaMode:g,overrides:C,currentIndexes:L});return w?(w.$id&&o.add(w.$id),w):null}}).filter(e=>!!e),t.filter(e=>!n.value?.find(t=>e.$id===t.$id)).forEach((e,t)=>{s.deleteArrayStatus(k.value,t.toString())});for(let e of L.keys())o.has(e)||L.delete(e)}else F.value=[],L.clear()}function B(){M=y(n,()=>{ee?.(),n.value!=null&&!Object.hasOwn(n.value,`$id`)&&!k.value?R():z(),V()},{deep:oe?1:!0,flush:`pre`}),V()}function V(){ee=y(n,()=>{T.$autoDirty.value&&!T.$silent.value&&P.value.$touch(!1,!0)},{flush:`post`})}function H(){B(),w=t(),T=w.run(()=>{let r=e({get:()=>n.value,set(e){M?.(),ee?.(),n.value=e,B()}}),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(()=>(g?P.value.$correct:N(P.value.$rules)?!0:P.value.$correct)&&(!F.value.length||F.value.every(e=>e.$correct||e.$anyDirty&&!e.$invalid))),d=e(()=>P.value.$error||F.value.some(e=>e.$error)),p=e(()=>!(s.value||m.value)),m=e(()=>P.value.$pending||F.value.some(e=>e.$pending)),y=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)})),D=e(()=>({$self:P.value.$silentErrors,$each:F.value.map(e=>e.$silentErrors)})),k=e(()=>j.value.$rewardEarly==null?h(c.rewardEarly)==null?!1:h(c.rewardEarly)===!0:j.value.$rewardEarly),A=e(()=>k.value?!0:j.value.$silent==null?h(c.silent)==null?!1:h(c.silent)===!0:j.value.$silent),I=e(()=>j.value.$autoDirty==null?h(c.autoDirty)==null?!0:h(c.autoDirty)===!0:j.value.$autoDirty),L=e(()=>j.value.$immediateDirty==null?h(c.immediateDirty)==null?!1:rt(h(c.immediateDirty)):rt(j.value.$immediateDirty)),R=e(()=>j.value.$clearExternalErrorsOnChange==null?h(c.clearExternalErrorsOnChange)==null?!0:h(c.clearExternalErrorsOnChange)===!0:j.value.$clearExternalErrorsOnChange),z=e(()=>j.value.$clearExternalErrorsOnValidate==null?h(c.clearExternalErrorsOnValidate)==null?!1:h(c.clearExternalErrorsOnValidate)===!0:j.value.$clearExternalErrorsOnValidate),V=e(()=>{if(j.value.$isEdited!=null)return j.value.$isEdited;if(C?.isEdited!=null)return C.isEdited}),H=e(()=>S??c.id??`root`),U=e(()=>({$deepCompare:j.value.$deepCompare??!1,$debounce:j.value.$debounce??h(c.debounce)??0,$lazy:j.value.$lazy??!1,$rewardEarly:k.value,$autoDirty:I.value,$silent:A.value,$clearExternalErrorsOnChange:R.value,$clearExternalErrorsOnValidate:z.value,$immediateDirty:L.value,$isEdited:V.value,$disabled:h(c.disabled)??!1}));function W(){x?.collections&&Object.entries(x?.collections).forEach(([e,c])=>{let h=t();te[e]=h.run(()=>{let e=f();return b(()=>{e.value=c(u({$dirty:i,$error:d,$path:a,$silentValue:r,$pending:m,$invalid:s,$correct:l,$errors:E,$silentErrors:D,$initialValue:_,$originalValue:v,$ready:p,$anyDirty:o,$name:H,$each:F,$self:P,$value:n,$output:n,$edited:y,$anyEdited:w,$issues:T}))}),e}),O.push(h)})}let te={};return W(),{$dirty:i,$anyDirty:o,$invalid:s,$correct:l,$error:d,$pending:m,$errors:E,$silentErrors:D,$ready:p,$name:H,$shortcuts:te,$silentValue:r,$edited:y,$anyEdited:w,$rewardEarly:k,$silent:A,$autoDirty:I,$issues:T,$modifiers:U}}),D.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 U(){M?.(),P.value&&P.value.$unwatch(),F.value&&F.value.forEach(e=>{`$dirty`in e&&e.$unwatch()}),w.stop(),w=t(),E.stop(),E=t(!0),O.forEach(e=>e.stop()),O=[]}function W(e=!0,t=!1){P.value.$touch(e,t),F.value.forEach(n=>{n.$touch(e,t)})}function te(e,t){if(U(),!t)if(e?.toOriginalState)n.value=I(v),_.value=I(v);else if(e?.toInitialState)n.value=I(_.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,_.value=I(t),n.value=I(t)}else _.value=I(n.value);e?.clearExternalErrors!==!1&&(J(),ae()),e?.keepValidationState||(P.value.$reset(e,t),F.value.forEach(t=>{t.$reset(e,!0)})),t||R()}function G(){P.value.$abort(),F.value.forEach(e=>{e.$abort()})}async function ne(e){return e&&(n.value=e),K()}async function K(e){e&&(n.value=e);let t=n.value;try{return G(),{valid:(await Promise.allSettled([P.value.$validateWithoutRaceconditions(e),...F.value.map(e=>e.$validateWithoutRaceconditions())])).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:t,errors:T.$errors.value,issues:T.$issues.value}}catch{return{valid:!1,data:t,errors:T.$errors.value,issues:T.$issues.value}}}function re(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(e){l&&(l.value=e),ae()}function J(){P.value.$clearExternalErrors(),F.value.forEach(e=>{e.$clearExternalErrors()})}function Y(e){d&&(d.value=e),J()}function ae(){P.value.$clearExternalIssues(),F.value.forEach(e=>{e.$clearExternalIssues()})}function se(e=!0){let t=F.value.map(t=>{if(Ee(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>N(e))&&(t=[]),t}let{$shortcuts:le,...X}=T;return u({$self:P,...X,...le,$path:a,$each:F,$value:n,$output:n,$initialValue:_,$originalValue:v,$validate:ne,$validateSync:re,$validateWithoutRaceconditions:K,$unwatch:U,$watch:H,$touch:W,$reset:te,$abort:G,$extractDirtyFields:se,$clearExternalErrors:J,$clearExternalIssues:ae,$setExternalErrors:q,$setExternalIssues:Y,"~modifiers":T.$modifiers,...nt(ne)})}function dt({rulesDef:n,state:r,path:i=``,cachePath:a,rootRules:o,externalErrors:c,externalIssues:l,schemaErrors:p,rootInitialState:g,rootSchemaErrors:v,validationGroups:x,initialState:S,originalState:w,fieldName:T,nestedReactiveRules:E,...D}){let O=t(),k,j=[],M=null,ee=null,P=null,F=null,L=null,R=f(void 0);async function z(t=!0){let o=Object.entries(n.value).filter(([e])=>e!==`$self`),s=Object.fromEntries(o.reduce((t,[n,o])=>{if(!o)return t;let s=m(r.value??{},n),u=m(()=>o),d=m(c?.value??{},n),f=m(l?.value??{},n),h=e(()=>p?.value?.[n]),g=m(S?.value??{},n);return t.push([n,ft({state:s,rulesDef:u,path:i?`${i}.${n}`:n,cachePath:a?`${a}.${n}`:n,externalErrors:d,externalIssues:f,schemaErrors:h,initialState:g,originalState:w?.[n],fieldName:n,...D})]),t},[])),u=Object.fromEntries(Array.from(new Set([...Object.keys(h(c)??{}),...Object.keys(h(l)??{})])).filter(e=>!(e in n.value)).map(t=>{let n=m(r.value??{},t),o=m(c?.value??{},t),s=m(l?.value??{},t),u=e(()=>p?.value?.[t]),d=m(S?.value??{},t),f=i?`${i}.${t}`:t,h=a?`${a}.${t}`:t;return[t,ft({state:n,rulesDef:e(()=>({})),path:f,cachePath:h,externalErrors:o,externalIssues:s,schemaErrors:u,initialState:d,originalState:w?.[t],fieldName:t,...D})]})),d=Object.fromEntries(Object.entries(h(p)??{}).map(([t])=>{let n=i?`${i}.${t}`:t,o=a?`${a}.${t}`:t,s=m(r.value??{},t),u=m(c?.value??{},t),d=m(l?.value??{},t),f=e(()=>p?.value?.[t]),h=m(S?.value??{},t);return[t,ft({state:s,rulesDef:e(()=>({})),path:n,cachePath:o,externalErrors:u,externalIssues:d,schemaErrors:f,initialState:h,originalState:w?.[t],fieldName:t,...D})]})),f=Object.fromEntries(Object.entries(r.value??{}).filter(([e])=>!(e in n.value)&&!(e in(u??{}))&&!(e in(d??{}))).map(([t])=>{let n=m(r.value??{},t),o=m(c?.value??{},t),s=m(l?.value??{},t),u=e(()=>p?.value?.[t]),d=m(S?.value??{},t);return[t,ft({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,cachePath:a?`${a}.${t}`:t,externalErrors:o,externalIssues:s,schemaErrors:u,initialState:d,originalState:w?.[t],fieldName:t,...D})]}));V.value={...s,...u,...d,...f},t&&te()}function B(){n.value.$self&&(R.value=ct({state:r,rulesDef:e(()=>n.value.$self??{}),path:i,cachePath:a,externalErrors:f(void 0),externalIssues:f(void 0),schemaErrors:f(void 0),initialState:S??f(void 0),originalState:w,fieldName:`$self`,...D}))}let V=D.storage.getFieldsEntry(a);z(),B();function H(){c&&(P=y(c,()=>{G(),z()},{deep:!0}))}function U(){l&&(F=y(l,()=>{G(),z()},{deep:!0}))}function W(){L=y(r,()=>{G(),z(),k.$autoDirty.value&&!k.$silent.value&&Y(!1,!0),k.$clearExternalErrorsOnChange.value&&(K(),q())},{flush:`post`})}function te(){(o||E)&&(M?.(),M=y(n,()=>{G(),z()},{deep:!0,flush:`pre`}),H(),U()),v&&(ee?.(),ee=y(()=>v.value?Object.keys(v.value).sort().join(`\0`):``,()=>{G(),z()},{flush:`post`})),W(),k=O.run(()=>{let a=e({get:()=>r.value,set(e){G(),r.value=e,z(),k.$autoDirty.value&&!k.$silent.value&&Y(!1,!0),k.$clearExternalErrorsOnChange.value&&(K(),q())}}),o=d(a),s=e({get:()=>r.value,set(e){G(),r.value=e,z()}}),c=e(()=>{let e=V.value,t=Object.keys(e);if(!t.length)return!1;for(let n of t)if(!e[n]?.$dirty)return!1;return!0}),l=e(()=>{let e=V.value;for(let t in e)if(e[t]?.$anyDirty)return!0;return!1}),p=e(()=>{if(R.value?.$invalid)return!0;let e=V.value,t=Object.entries(e);if(!t.length)return!1;for(let[e,n]of t)if(n?.$invalid)return!0;return!1}),m=e(()=>{let e=Object.entries(V.value).reduce((e,[t,n])=>((!Oe(n)||!n.$inactive)&&e.push([t,n]),e),[]),t=n.value.$self&&!N(n.value.$self);if(e.length||t){let t=R.value?.$correct??!0,n=!1;return n=D.schemaMode?e.every(([e,t])=>t.$correct):e.every(([e,t])=>Oe(t)?`required`in t.$rules&&t.$rules.required.$active?t.$correct:!t.$invalid&&!t.$pending&&!t.$isDebouncing:t?.$correct),t&&n}return!1}),g=e(()=>{if(R.value?.$error)return!0;let e=V.value;if(!Object.keys(e).length)return!1;for(let t in e)if(e[t]?.$error)return!0;return!1}),v=e(()=>h(D.options.rewardEarly)==null?!1:h(D.options.rewardEarly)),y=e(()=>h(D.options.silent)==null?!!v.value:h(D.options.silent)===!0),C=e(()=>h(D.options.autoDirty)==null?!0:h(D.options.autoDirty)===!0),E=e(()=>h(D.options.immediateDirty)==null?!1:rt(h(D.options.immediateDirty))),O=e(()=>h(D.options.lazy)==null?!1:h(D.options.lazy)===!0),A=e(()=>h(D.options.clearExternalErrorsOnChange)==null?!0:h(D.options.clearExternalErrorsOnChange)===!0),M=e(()=>h(D.options.clearExternalErrorsOnValidate)==null?!1:h(D.options.clearExternalErrorsOnValidate)===!0),ee=e(()=>!(p.value||F.value)),P=f(!1),F=e(()=>{if(R.value?.$pending||P.value)return!0;let e=V.value;for(let t in e)if(e[t]?.$pending)return!0;return!1}),I=e(()=>{let e={...R.value&&{$self:R.value?.$issues??[]}};for(let t in V.value)e[t]=V.value[t]?.$issues;return e}),L=e(()=>{let e={...R.value&&{$self:R.value?.$errors??[]}};for(let t in V.value)e[t]=V.value[t]?.$errors;return e}),B=e(()=>{let e={...R.value&&{$self:R.value?.$silentErrors??[]}};for(let t in V.value)e[t]=V.value[t]?.$silentErrors;return e}),H=e(()=>{if(R.value?.$edited)return!0;if(!Object.keys(V.value).length)return!1;for(let e in V.value)if(!V.value[e]?.$edited)return!1;return!0}),U=e(()=>{if(R.value?.$anyEdited)return!0;for(let e in V.value)if(V.value[e]?.$anyEdited)return!0;return!1}),W=e(()=>T??D.options.id??`root`),te=e(()=>({autoDirty:C.value,lazy:O.value,rewardEarly:v.value,silent:y.value,clearExternalErrorsOnChange:A.value,clearExternalErrorsOnValidate:M.value,immediateDirty:E.value,id:h(D.options.id),disabled:h(D.options.disabled)}));function ne(){D.shortcuts?.nested&&Object.entries(D.shortcuts.nested).forEach(([e,n])=>{let a=t();J[e]=a.run(()=>{let e=f();return b(()=>{e.value=n(u({$dirty:c,$path:i,$value:r,$output:r,$silentValue:s,$error:g,$originalValue:w,$pending:F,$invalid:p,$correct:m,$ready:ee,$anyDirty:l,$name:W,$silentErrors:B,$initialValue:S,$errors:L,$fields:V,$edited:H,$anyEdited:U,$issues:I,$self:R,"~modifiers":_(D.options)}))}),e}),j.push(a)})}let re=e({get:()=>x?Object.fromEntries(Object.entries(x?.(V.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,Z(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,ue(t,e)]))}]:[])):{},set(){}}),J={};return ne(),{$dirty:c,$anyDirty:l,$invalid:p,$correct:m,$error:g,$pending:F,$issues:I,$errors:L,$silentErrors:B,$clearExternalErrorsOnValidate:M,$clearExternalErrorsOnChange:A,$ready:ee,$name:W,$shortcuts:J,$groups:re,$silentValue:s,$immediateDirty:E,$edited:H,$anyEdited:U,$localPending:P,$autoDirty:C,$silent:y,$value:a,$output:o,$modifiers:te}})}function G(){if(M?.(),P?.(),F?.(),L?.(),ee?.(),j.forEach(e=>e.stop()),j=[],k={},V.value)for(let e of Object.values(V.value))e?.$unwatch()}function ne(e){c&&(c.value=o?A(e,r.value):e),q()}function K(){c&&!N(c.value)&&(c.value={})}function re(e){l&&(l.value=e),K()}function q(){l&&!N(l.value)&&(l.value={})}function J(){if(!k)return;let e=k.$immediateDirty.value;(e===`eager`||e===`non-empty`&&ot(R.value,V.value,S.value))&&Y(!0,!1)}function ie(e,t){if(P?.(),G(),!t)if(e?.toOriginalState)r.value=I({...w}),S.value=I({...w});else if(e?.toInitialState)r.value=I({...S.value});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,S.value=I(t),r.value=I(t)}else S.value=I(r.value);if(!e?.keepValidationState){for(let t of Object.values(V.value))t?.$reset(e,!0);R.value?.$reset(e,!0)}e?.clearExternalErrors!==!1&&(K(),q()),H(),U(),t||(z(),J())}function Y(e=!0,t=!1){for(let n of Object.values(V.value))n?.$touch(e,t);R.value?.$touch(e,t)}function ae(e){return e.filter(([e,t])=>C(t)&&!Te(t)?!(t&&typeof t==`object`&&`_null`in t)&&!N(t):Array.isArray(t)?t.length:!0)}function oe(e=!0){let t=Object.entries(V.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=ae(t)),Object.fromEntries(t)}function se(){for(let e of Object.values(V.value))e.$abort();R.value?.$abort()}async function ce(e){return e&&(r.value=e),await s(),le()}async function le(e){try{if(e&&(r.value=e),D.schemaMode)return D.onValidate?(Y(!1),k.$localPending.value=!0,D.onValidate()):{valid:!1,data:r.value,errors:k.$errors.value,issues:k.$issues.value};{let e=r.value;se(),k.$clearExternalErrorsOnValidate.value&&(K(),q());let t=[...Object.values(V.value).map(e=>e.$validateWithoutRaceconditions()),...R.value?[R.value?.$validateWithoutRaceconditions()]:[]];return{valid:(await Promise.allSettled(t)).every(e=>e.status===`fulfilled`&&e?.value?.valid===!0),data:e,errors:k.$errors.value,issues:k.$issues.value}}}catch{return{valid:!1,data:r.value,errors:k.$errors.value,issues:k.$issues.value}}finally{k.$localPending.value=!1}}function X(e){try{return e&&(r.value=e),k.$clearExternalErrorsOnValidate.value&&(K(),q()),[...Object.values(V.value).map(e=>e.$validateSync()),...R.value?[R.value?.$validateSync()]:[]].every(e=>!!e)}catch{return!1}}J();let{$shortcuts:de,$localPending:fe,...pe}=k,me=u({...pe,...de,$path:i,$initialValue:S,$originalValue:w,$self:R,$externalErrors:c,$externalIssues:l,$fields:V,$reset:ie,$touch:Y,$validate:ce,$unwatch:G,$watch:te,$setExternalErrors:ne,$setExternalIssues:re,$clearExternalErrors:K,$clearExternalIssues:q,$extractDirtyFields:oe,$abort:se,$validateSync:X,$validateWithoutRaceconditions:le,...o?{"~modifiers":k.$modifiers}:{},...nt(ce)});return Object.defineProperty(me,Symbol.for(`regle:instance`),{value:!0}),b(()=>{for(let e of Object.keys(me).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete me[e];for(let e of Object.values(V.value))e?.$name&&Object.assign(me,{[e.$name]:e})}),me}function ft({rulesDef:e,...n}){if(xe(e,n.state))return ut({rulesDef:e,...n});if(be(n.state,e)){if(J(n.state))return dt({rulesDef:e,...n});{let r=t().run(()=>{let e=m(n.state.value?n.state:f({}));return y(()=>n.state.value,t=>{e.value=t},{deep:!0}),y(e,e=>{n.state.value=e},{deep:!0}),{fakeState:e}}),{state:i,...a}=n;return dt({rulesDef:e,...a,state:r.fakeState})}}else if(Se(e))return ct({rulesDef:a(e.value)?e.value:e,...n})}function pt(e){return Array.isArray(e)?e.length>0:C(e)&&Object.keys(e).length>0}function mt(e){return Array.isArray(e)?[]:{}}function ht(e,t){let n=f(),r=f(),i,a,o,s,c=!1;function l(){let t=mt(r.value??e.externalIssues?.value);r.value=t,e.externalIssues&&(e.externalIssues.value=t)}function u(){let t=mt(n.value??e.externalErrors?.value);n.value=t,e.externalErrors&&(e.externalErrors.value=t)}function d(r,i=!1){if(c)return;c=!0;let a=A(r,h(t));n.value=a,i&&e.externalErrors&&(e.externalErrors.value=a),pt(a)&&l(),c=!1}function p(n,i=!1){if(c)return;c=!0;let a=A(n,h(t));r.value=a,i&&e.externalIssues&&(e.externalIssues.value=a),pt(a)&&u(),c=!1}function m(){i?.(),o?.(),i=y(()=>e.externalErrors?.value,e=>d(e),{deep:!0}),o=y(()=>e.externalIssues?.value,e=>p(e),{deep:!0})}function g(){a?.(),s?.(),a=y(()=>n.value,e=>d(e,!0),{deep:!0}),s=y(()=>r.value,e=>p(e,!0),{deep:!0})}function _(){v(),d(e.externalErrors?.value),p(e.externalIssues?.value),g()}function v(){a?.(),i?.(),s?.(),o?.(),a=void 0,i=void 0,s=void 0,o=void 0}return{externalErrors:n,externalIssues:r,start:_,watchOptionRefs:m,stop:v}}function gt({initialState:e,originalState:n,options:i,scopeRules:a,state:o,customRules:c,shortcuts:u,schemaErrors:d,schemaMode:p=!1,onValidate:m,overrides:g}){let _=Ye(),v=f(!1),b=new Set,x,S=f(),C=ht(i,o),w;function T(){w=y(()=>h(i.disabled),async e=>{e?O():(E(),C.start(),C.watchOptionRefs())})}function E(){be(o,a)?S.value=dt({rootRules:a,rulesDef:a,state:o,customMessages:c?.(),storage:_,options:i,rootInitialState:e,externalErrors:C.externalErrors,externalIssues:C.externalIssues,validationGroups:i.validationGroups,initialState:e,originalState:n,shortcuts:u,fieldName:void 0,path:``,cachePath:``,schemaErrors:d,rootSchemaErrors:d,schemaMode:p,onValidate:m,overrides:g}):Se(a)&&(S.value=ct({rulesDef:a,state:o,customMessages:c?.(),storage:_,options:i,rootInitialState:e,externalErrors:C.externalErrors,externalIssues:C.externalIssues,initialState:e,originalState:n,shortcuts:u,fieldName:void 0,path:``,cachePath:``,schemaMode:p,schemaErrors:d,onValidate:m,overrides:g}))}function D(){w=void 0}function O(){S.value?.$unwatch(),C.stop()}function k(){v.value||(v.value=!0,x=t(!0),x.run(()=>{C.start(),E(),h(i.disabled)?s().then(()=>{S.value?.$unwatch()}):C.watchOptionRefs(),T()}))}function A(){v.value&&(v.value=!1,O(),w?.(),D(),x?.stop(),x=void 0,S.value=void 0,_.clearAll())}function j(){let e=r();!e||b.has(e)||(v.value||k(),b.add(e),l(()=>{b.delete(e),b.size||A()}))}k(),j();function M(){typeof window<`u`&&typeof __VUE_PROD_DEVTOOLS__<`u`&&__VUE_PROD_DEVTOOLS__&&!me()&&S.value&&Je(S.value,{name:h(i.id)})}return M(),{regle:S,bindToCurrentScope:j}}function _t({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),d=i(fe,void 0)??{},m={...d.modifiers,...o},h=()=>({...d.rules?.(),...s?.()}),_={...d.shortcuts,...c},v={...d.overrides,...l},y={...m,...r},x,S=p(u??{});typeof n==`function`&&(x=b(()=>{S.value=n(t),g(S)}));let w=f(C(t.value)?{...I(t.value)}:I(t.value)),T=C(t.value)?{...I(t.value)}:I(t.value);le(()=>{x?.()});let{regle:E,bindToCurrentScope:D}=gt({scopeRules:S,state:t,options:y,initialState:w,originalState:T,customRules:h,shortcuts:_,overrides:v});return{regle:E,bindToCurrentScope:D}}function vt(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s,c){let l=a(t)?t:f(t),u=e(()=>h(c?.disabled)??!1),{regle:d,bindToCurrentScope:p}=_t({state:l,rulesFactory:s,options:c,globalOptions:r,customRules:n,shortcuts:i,overrides:o});return{r$:H(d,u,()=>{d.value||p()})}}return s}const yt=vt();function bt(){function e(e,t){return t}return e}const xt=bt();function St(e,t){return w(h(e).$errors,String(t))}function Ct(e,t){return w(h(e).$issues,String(t))}function wt(e){let t={};if(Object.entries(e).some(([e,t])=>Ce(t)||typeof t==`function`))return null;for(let n in e){let r=e[n];r&&C(r)&&`$each`in r&&r.$each&&C(r.$each)?t[n]=[wt(r.$each)]:C(r)&&!N(r)&&!Object.entries(r).some(([e,t])=>Ce(t)||typeof t==`function`)?t[n]=wt(r):t[n]=null}return t}function Tt(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=f(wt(c?.value)),u=e(()=>h(s?.disabled)??!1),{regle:d,bindToCurrentScope:p}=_t({state:l,rulesFactory:c,options:s,globalOptions:r,customRules:n,shortcuts:i,overrides:o});return H(d,u,()=>{d.value||p()})}return s}const Et=Tt();function Dt(e){if(ee(e)){let t=e,n=class extends t{constructor(...e){return super(...e),Ot(this)}};return Object.defineProperty(n,"name",{value:t.name}),Ot(n)}return Ot(e)}function Ot(e){return!j(e,pe.REGLE_STATIC)&&Object.isExtensible(e)&&M(e,pe.REGLE_STATIC,!0),e}function kt({rules:e,modifiers:t,shortcuts:n,overrides:r}){let i=vt({rules:e,modifiers:t,shortcuts:n,overrides:r}),a=Tt({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:bt(),useRules:a}}function At(e,{rules:t,modifiers:n,shortcuts:r,overrides:i}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?E(a.modifiers,n):a.modifiers??n,c=a.shortcuts&&r?E(a.shortcuts,r):a.shortcuts??r,l=a.overrides&&i?E(a.overrides,i):a.overrides??i,u=vt({rules:o,modifiers:s,shortcuts:c,overrides:l});return u.__config={rules:o,modifiers:s,shortcuts:c,overrides:l},{useRegle:u,inferRules:bt()}}function jt(e){return e}function Mt(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)}),y=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(e){Object.values(t).forEach(t=>{t.$setExternalErrors(e)})}function E(e){Object.values(t).forEach(t=>{t.$setExternalIssues(e)})}function D(){Object.values(t).forEach(e=>{e.$clearExternalErrors()})}function O(){Object.values(t).forEach(e=>{e.$clearExternalIssues()})}function k(e){try{return e&&(i.value=e),Object.values(t).every(t=>t.$validateSync(e))}catch{return!1}}async function A(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 j=u({...!r&&{$silentValue:a},$errors:g,$issues:m,$silentIssues:h,$silentErrors:_,$instances:x,$value:i,$output:i,$dirty:o,$anyDirty:s,$invalid:c,$correct:l,$error:d,$pending:p,$ready:f,$edited:v,$anyEdited:y,$reset:S,$touch:C,$validate:A,$validateSync:k,$extractDirtyFields:w,$clearExternalErrors:D,$clearExternalIssues:O,$setExternalErrors:T,$setExternalIssues:E});return b(()=>{if(!r){for(let e of Object.keys(j).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete j[e];for(let[e,t]of Object.entries(x.value))Object.assign(j,{[e]:t})}}),j}function Nt(t,n){function r(r){let i=e(()=>h(r)),a=u({});c();let o=f(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]={})}))}y(i,c),y(t,e=>{o.value=l(e)},{deep:!0});function l(e){return i.value?typeof i.value==`string`?Mt(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})})}),Mt(a,!n.asRecord)):Mt(e[`~~global`]??{},!n.asRecord)}return{r$:s.r$}}return{useCollectScope:r}}function Pt(t,r){let i=r??yt;return{useScopedRegle:((r,a,o)=>{let{namespace:s,scopeKey:l,id:u,...d}=o??{};i.__config??={};let p=e(()=>u??l),m=e(()=>h(s)),g=f(`${Object.keys(t.value).length+1}-${ce()}`),_=e(()=>p.value??`instance-${g.value}`),{r$:v}=i(r,a,{...d,id:p.value});x(),le(b),y(m,(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??m.value;n?t.value[n]&&delete t.value[n][_.value]:t.value[`~~global`][_.value]&&delete t.value[`~~global`][_.value]}function x(){m.value?(t.value[m.value]||(t.value[m.value]={}),t.value[m.value][_.value]=v):(t.value[`~~global`]||(t.value[`~~global`]={}),t.value[`~~global`][_.value]=v)}return{r$:v,dispose:b,register:x}})}}function Ft(e){let t=(e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):X(()=>f({"~~global":{}})))(),{useScopedRegle:n}=Pt(t,e?.customUseRegle),{useCollectScope:r}=Nt(t,{asRecord:e?.asRecord});return{useScopedRegle:n,useCollectScope:r}}const{useCollectScope:It,useScopedRegle:Lt}=Ft(),Rt=It,zt=Lt;function Bt(t,n,r){let i=e(()=>h(t)[n]);return e(()=>r.find(e=>{if(e[n]&&`literal`in e[n]){let t=e[n].literal;if(Ce(t))return h(t._params?.[0])===i.value}})||r.find(e=>C(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`))||{})}function Vt(e,t,n){return!!e&&t in e&&C(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function Ht(e,t,n,r){let i=a(e)?m(e.value,`$fields`):m(e,`$fields`),o=f();return y(i,async()=>{await s(),Vt(i.value,t,n)?o.value=m(e).value:o.value=void 0},{immediate:!0,flush:`pre`}),o}function Ut(e){return e}function Wt(e,t){return n=>E({...e},t(n))}var Gt=`1.28.2`;function Kt(e,t){let n=[],r=!1;Oe(e)?r=e[`~modifiers`]?.$disabled??!1:Ee(e)?r=e[`~modifiers`]?.disabled??!1:De(e)&&(r=e[`~modifiers`]?.$disabled??!1);let i=Oe(e)?(`required`in e.$rules&&!e.$rules.required.$active||N(e.$rules))&&!e.$schemaMode:!1,a=Oe(e)?e.$inactive:!1,o=Ee(e)||De(e);return e.$error?n.push({label:`error`,textColor:Q.ERROR.text,backgroundColor:Q.ERROR.bg,tooltip:o?ge.ERROR:he.ERROR}):e.$correct&&n.push({label:`correct`,textColor:Q.CORRECT.text,backgroundColor:Q.CORRECT.bg,tooltip:o?ge.CORRECT:he.CORRECT}),e.$pending&&n.push({label:`pending`,textColor:Q.PENDING.text,backgroundColor:Q.PENDING.bg,tooltip:o?ge.PENDING:he.PENDING}),r&&n.push({label:`disabled`,textColor:Q.DISABLED.text,backgroundColor:Q.DISABLED.bg,tooltip:he.DISABLED}),a?n.push({label:`inactive`,textColor:Q.INACTIVE.text,backgroundColor:Q.INACTIVE.bg,tooltip:he.INACTIVE}):i&&n.push({label:`optional`,textColor:Q.OPTIONAL.text,backgroundColor:Q.OPTIONAL.bg,tooltip:he.OPTIONAL}),!e.$invalid&&e.$dirty&&n.push({label:`valid`,textColor:Q.VALID.text,backgroundColor:Q.VALID.bg,tooltip:he.VALID}),e.$dirty?n.push({label:`dirty`,textColor:Q.DIRTY.text,backgroundColor:Q.DIRTY.bg,tooltip:o?ge.DIRTY:he.DIRTY}):i||n.push({label:`pristine`,textColor:Q.PRISTINE.text,backgroundColor:Q.PRISTINE.bg,tooltip:he.PRISTINE}),t&&n.push({label:`<${t}.vue>`,textColor:Q.COMPONENT.text,backgroundColor:Q.COMPONENT.bg}),n}function qt(e){let t=[];return e.$active?e.$valid?e.$valid&&t.push({label:`valid`,textColor:Q.VALID.text,backgroundColor:Q.VALID.bg,tooltip:_e.VALID}):t.push({label:`invalid`,textColor:Q.INVALID.text,backgroundColor:Q.INVALID.bg,tooltip:_e.INVALID}):t.push({label:`inactive`,textColor:Q.INACTIVE.text,backgroundColor:Q.INACTIVE.bg,tooltip:_e.INACTIVE}),e.$pending&&t.push({label:`pending`,textColor:Q.PENDING.text,backgroundColor:Q.PENDING.bg,tooltip:_e.PENDING}),t}function Jt(e,t,n){let r=[];return!e.$rules||typeof e.$rules!=`object`||Object.entries(e.$rules).forEach(([e,i])=>{if(i&&typeof i==`object`){let a=qt(i);r.push({id:Fe(t,n,e),label:`⚙️ ${e}`,tags:a,children:[]})}}),r}function Yt(e,t,n){let r=[];if(!e.$each||!Array.isArray(e.$each))return r;if(e.$each.forEach((e,i)=>{if(e&&typeof e==`object`){let a=Kt(e),o=`${n}[${i}]`,s=[];Ee(e)?s=Xt(e.$fields,t,o):Oe(e)&&(s=Jt(e,t,o)),r.push({id:Ne(t,o),label:`[${i}]`,tags:a,children:s})}}),e.$self&&typeof e.$self==`object`){let i=Kt(e.$self),a=`${n}[$self]`;r.unshift({id:Ne(t,a),label:`$self`,tags:i,children:Jt(e.$self,t,a)})}return r}function Xt(e,t,n){let r=[];return Object.entries(e).forEach(([e,i])=>{if(i&&typeof i==`object`){let a=n?`${n}.${e}`:e,o=Kt(i),s=!1,c=!1,l=[];De(i)?(l=Yt(i,t,a),s=!0,l.length===0&&(c=!0)):Ee(i)?l=Xt({...i.$fields,...i.$self&&{$self:i.$self}},t,a):Oe(i)&&(l=Jt(i,t,a));let u=l.filter(e=>e.label!==`$self`);r.push({id:Ne(t,a),label:`${s?`${e}[${u.length}]`:e}${c?` (empty)`:``}`,tags:o,children:l})}}),r}function Zt(e,t){let n=[];return Oe(e)?Jt(e,t,`root`):(!(`$fields`in e)||typeof e.$fields!=`object`||Object.entries(e.$fields).forEach(([e,r])=>{if(r&&typeof r==`object`){let i=Kt(r),a=[],o=!1;De(r)?(a=Yt(r,t,e),o=!0):Ee(r)?a=Xt({...r.$fields,...r.$self&&{$self:r.$self}},t,e):Oe(r)&&(a=Jt(r,t,e));let s=a.filter(e=>e.label!==`$self`);n.push({id:Ne(t,e),label:`${o?`${e}[${s.length}]`:e}`,tags:i,children:a})}}),n)}function Qt(e,t){let n=e.map(e=>{let{r$:t,id:n,name:r,componentName:i}=e;return{id:n,label:r,tags:Kt(t,i),children:Zt(t,n)}});return!t||t.trim()===``?n:$t(n,t)}function $t(e,t){let n=t.toLowerCase(),r=[];for(let i of e){let e=i.label.toLowerCase().includes(n),a=i.tags?.some(e=>e.label.toLowerCase().includes(n))??!1,o=i.children?$t(i.children,t):[];(e||a||o.length>0)&&r.push({...i,children:o.length>0?o:i.children})}return r}function en(e){x({id:`regle-devtools`,label:`Regle`,logo:`https://reglejs.dev/logo_main.png`,packageName:`@regle/core`,homepage:`https://reglejs.dev`,componentStateTypes:[`Regles`],app:e},e=>{$.setApi(e),e.addInspector({id:ye.INSPECTOR,label:`Regle`,noSelectionText:`No instance selected`,icon:`rule`,treeFilterPlaceholder:`Filter state`,stateFilterPlaceholder:`Filter validation status`,actions:[{icon:`confirmation_number`,tooltip:`Log Regle version`,action:()=>{console.info(`Regle version`,Gt)}}],nodeActions:[{icon:`check`,tooltip:`Validate`,action:e=>{He(e)}},{icon:`touch_app`,action:e=>{We(e)},tooltip:`Touch the instance with $touch`},{icon:`refresh`,tooltip:`Reset validation state`,action:e=>{Ue(e)}},{icon:`restore`,tooltip:`Restore to original state`,action:e=>{Ue(e,!0)}}]}),$.notifyDevtools(),e.on.getInspectorTree(async e=>{if(e.inspectorId===ye.INSPECTOR){let t=Qt($.getAll(),e.filter);t.length>0?e.rootNodes=t:e.rootNodes=[{id:`empty-regles`,label:`No Regles instances found`,children:[]}]}}),e.on.getInspectorState(t=>{if(t.inspectorId===ye.INSPECTOR){let n=Ve(t.nodeId,e=>$.get(e));n||e.sendInspectorTree(ye.INSPECTOR),n?t.state=n:t.state={}}}),e.on.editInspectorState(e=>{e.inspectorId===ye.INSPECTOR&&Ge(e)})})}const tn={install(e,t){e.provide(de,Gt),t&&e.provide(fe,t),typeof window<`u`&&typeof __VUE_PROD_DEVTOOLS__<`u`&&__VUE_PROD_DEVTOOLS__&&!me()&&en(e)}};export{U as InternalRuleType,tn as RegleVuePlugin,K as createRule,Ft as createScopedUseRegle,Bt as createVariant,kt as defineRegleConfig,jt as defineRegleOptions,Ut as defineRules,At as extendRegleConfig,$e as flatErrors,St as getErrors,Ct as getIssues,xt as inferRules,q as isRegleInstance,Dt as markStatic,Mt as mergeRegles,Vt as narrowVariant,Wt as refineRules,W as unwrapRuleParameters,Rt as useCollectScope,yt as useRegle,gt as useRootStorage,Et as useRules,zt as useScopedRegle,Ht as variantToRef};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@regle/core",
|
|
3
|
-
"version": "1.28.
|
|
3
|
+
"version": "1.28.2",
|
|
4
4
|
"description": "Headless form validation library for Vue",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"regle",
|
|
@@ -50,14 +50,16 @@
|
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@standard-schema/spec": "1.1.0",
|
|
52
52
|
"@vue/devtools-api": "7.7.9",
|
|
53
|
-
"@vue/devtools-kit": "7.7.9",
|
|
54
53
|
"type-fest": "5.7.0"
|
|
55
54
|
},
|
|
56
55
|
"devDependencies": {
|
|
56
|
+
"@arethetypeswrong/core": "0.18.3",
|
|
57
57
|
"@total-typescript/ts-reset": "0.6.1",
|
|
58
58
|
"@types/node": "24.13.2",
|
|
59
59
|
"@typescript/native-preview": "7.0.0-dev.20260616.1",
|
|
60
60
|
"@vue/test-utils": "2.4.11",
|
|
61
|
+
"@vue/devtools-kit": "7.7.9",
|
|
62
|
+
"publint": "0.3.21",
|
|
61
63
|
"tsdown": "0.22.2",
|
|
62
64
|
"typescript": "6.0.3",
|
|
63
65
|
"vitest": "4.1.8",
|