@regle/core 1.28.1 → 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.
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @regle/core v1.28.1
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>> | Record<string, string[]>>;
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>> | Record<string, RegleExternalFieldIssue[]>>;
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]> }) & (TRules['$self'] extends RegleRuleDeclInput<any, Partial<ExtendedRulesDeclarations>> ? {
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>, ...args: any[]) => RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>) & ((value: IsUnknown<TValue> extends true ? any : TValue, ...args: [TParams] extends [never[]] ? [] : [unknown[]] extends [TParams] ? any[] : TParams) => RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>);
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> = {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @regle/core v1.28.1
2
+ * @regle/core v1.28.2
3
3
  * (c) 2026 Victor Garcia
4
4
  * @license MIT
5
5
  */
@@ -32,6 +32,10 @@ function getDotPath(obj, propsArg, defaultValue) {
32
32
  }
33
33
  return obj;
34
34
  }
35
+ function isPrototypeKey(prop) {
36
+ const key = String(prop);
37
+ return key === "__proto__" || key === "constructor" || key === "prototype";
38
+ }
35
39
  function merge(_obj1, ..._objs) {
36
40
  var args = [].slice.call(arguments);
37
41
  var arg;
@@ -46,6 +50,15 @@ function merge(_obj1, ..._objs) {
46
50
  }
47
51
  return result;
48
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
+ }
49
62
  /**
50
63
  * Converts an object with dot-path keys into a nested object structure.
51
64
  * Example:
@@ -60,55 +73,61 @@ function merge(_obj1, ..._objs) {
60
73
  * password: "bar",
61
74
  * collection: [{ name: "hello" }]
62
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.
63
80
  */
64
- function dotPathObjectToNested(obj) {
81
+ function dotPathObjectToNested(obj, state) {
82
+ if (!obj) return {};
65
83
  const result = {};
66
- for (const key in obj) {
67
- if (!Object.prototype.hasOwnProperty.call(obj, key)) continue;
68
- 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) {
69
86
  const path = key.split(".");
70
87
  let current = result;
71
88
  for (let i = 0; i < path.length; i++) {
72
89
  const part = path[i];
90
+ if (isPrototypeKey(part)) break;
73
91
  const isLast = i === path.length - 1;
74
- const arrayIndex = part.match(/^\d+$/) ? Number(part) : null;
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);
75
96
  if (arrayIndex !== null) {
76
97
  if (Array.isArray(current)) if (isLast) current[arrayIndex] = value;
77
98
  else {
78
- if (typeof current[arrayIndex] !== "object" || current[arrayIndex] === null) {
79
- const nextPart = path[i + 1];
80
- current[arrayIndex] = nextPart && nextPart.match(/^\d+$/) ? {
81
- $each: [],
82
- $self: []
83
- } : {};
84
- }
99
+ if (typeof current[arrayIndex] !== "object" || current[arrayIndex] === null) current[arrayIndex] = nextPart && numericPartRegex.test(nextPart) ? {
100
+ $each: [],
101
+ $self: []
102
+ } : {};
85
103
  current = "$each" in current[arrayIndex] ? current[arrayIndex].$each : current[arrayIndex];
86
104
  }
87
- } else if (isLast) if (Array.isArray(current[part])) {
88
- let previous = current[part].slice();
89
- current[part] = {};
90
- current[part].$self = previous;
91
- } 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;
92
106
  else current[part] = value;
93
107
  else {
94
- const nextPart = path[i + 1];
108
+ const isCollection = isCollectionConflict(fieldPath, nextPart, state);
95
109
  if (Array.isArray(current[part])) {
96
- let previous = current[part].slice();
97
- current[part] = { $each: [] };
98
- current[part].$self = previous;
110
+ const previous = current[part].slice();
111
+ current[part] = isCollection ? {
112
+ $each: [],
113
+ $self: previous
114
+ } : { $self: previous };
99
115
  }
100
- if (typeof current[part] !== "object" || current[part] === null || Array.isArray(current[part]) && !nextPart.match(/^\d+$/)) if (nextPart && nextPart.match(/^\d+$/)) current[part] = {
116
+ if (typeof current[part] !== "object" || current[part] === null) current[part] = isCollection ? {
101
117
  $each: [],
102
118
  $self: []
103
- };
104
- else current[part] = {};
105
- if ("$each" in current[part]) current = current[part].$each;
119
+ } : {};
120
+ if (isCollection && "$each" in current[part]) current = current[part].$each;
106
121
  else current = current[part];
107
122
  }
108
123
  }
109
124
  }
110
125
  return result;
111
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
+ }
112
131
  function hasOwn(val, key) {
113
132
  return Object.prototype.hasOwnProperty.call(val, key);
114
133
  }
@@ -407,7 +426,7 @@ function createReactiveParams(params) {
407
426
  * Due to `function.length` not returning default parameters, it needed to parse the func.toString()
408
427
  */
409
428
  function getFunctionParametersLength(func) {
410
- const paramsMatch = func.toString().replace(/\/\/.*$/gm, "").replace(/\/\*[\s\S]*?\*\//g, "").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);
429
+ const paramsMatch = func.toString().slice(0, 512).replace(/\/\/[^\n]*/g, "").replace(/\/\*[\s\S]*?\*\//g, "").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);
411
430
  if (!paramsMatch) return 0;
412
431
  return (paramsMatch[0] || paramsMatch[1] || paramsMatch[2] || paramsMatch[3] || paramsMatch[4] || "").split(",").map((p) => p.trim()).filter((p) => p.length > 0).length;
413
432
  }
@@ -1380,7 +1399,7 @@ function filterInspectorTree(nodes, filter) {
1380
1399
  }
1381
1400
  return filtered;
1382
1401
  }
1383
- var version$1 = "1.28.1";
1402
+ var version$1 = "1.28.2";
1384
1403
  function createDevtools(app) {
1385
1404
  setupDevtoolsPlugin({
1386
1405
  id: "regle-devtools",
@@ -3497,7 +3516,7 @@ function createReactiveNestedStatus({ rulesDef, state, path = "", cachePath, roo
3497
3516
  if ($fields.value) for (const field of Object.values($fields.value)) field?.$unwatch();
3498
3517
  }
3499
3518
  function $setExternalErrors(errors) {
3500
- if (externalErrors) externalErrors.value = errors;
3519
+ if (externalErrors) externalErrors.value = rootRules ? normalizeDotPathExternalValue(errors, state.value) : errors;
3501
3520
  $clearExternalIssues();
3502
3521
  }
3503
3522
  function $clearExternalErrors() {
@@ -3699,10 +3718,6 @@ function createReactiveChildrenStatus({ rulesDef, ...properties }) {
3699
3718
  ...properties
3700
3719
  });
3701
3720
  }
3702
- function normalizeExternalValue(value) {
3703
- if (value && isObject(value) && Object.keys(value).some((key) => key.includes("."))) return dotPathObjectToNested(value);
3704
- return value;
3705
- }
3706
3721
  function hasExternalValue(value) {
3707
3722
  if (Array.isArray(value)) return value.length > 0;
3708
3723
  return isObject(value) && Object.keys(value).length > 0;
@@ -3710,7 +3725,7 @@ function hasExternalValue(value) {
3710
3725
  function emptyExternalValue(value) {
3711
3726
  return Array.isArray(value) ? [] : {};
3712
3727
  }
3713
- function createExternalChannels(options) {
3728
+ function createExternalChannels(options, state) {
3714
3729
  const externalErrors = ref();
3715
3730
  const externalIssues = ref();
3716
3731
  let unwatchOptionErrors;
@@ -3731,7 +3746,7 @@ function createExternalChannels(options) {
3731
3746
  function syncErrors(newErrors, updateOptionRef = false) {
3732
3747
  if (syncing) return;
3733
3748
  syncing = true;
3734
- const normalizedErrors = normalizeExternalValue(newErrors);
3749
+ const normalizedErrors = normalizeDotPathExternalValue(newErrors, toValue(state));
3735
3750
  externalErrors.value = normalizedErrors;
3736
3751
  if (updateOptionRef && options.externalErrors) options.externalErrors.value = normalizedErrors;
3737
3752
  if (hasExternalValue(normalizedErrors)) clearIssues();
@@ -3740,7 +3755,7 @@ function createExternalChannels(options) {
3740
3755
  function syncIssues(newIssues, updateOptionRef = false) {
3741
3756
  if (syncing) return;
3742
3757
  syncing = true;
3743
- const normalizedIssues = normalizeExternalValue(newIssues);
3758
+ const normalizedIssues = normalizeDotPathExternalValue(newIssues, toValue(state));
3744
3759
  externalIssues.value = normalizedIssues;
3745
3760
  if (updateOptionRef && options.externalIssues) options.externalIssues.value = normalizedIssues;
3746
3761
  if (hasExternalValue(normalizedIssues)) clearErrors();
@@ -3793,7 +3808,7 @@ function useRootStorage({ initialState, originalState, options, scopeRules, stat
3793
3808
  const attachedScopes = /* @__PURE__ */ new Set();
3794
3809
  let rootScope;
3795
3810
  const regle = ref();
3796
- const externalChannels = createExternalChannels(options);
3811
+ const externalChannels = createExternalChannels(options, state);
3797
3812
  let $unwatchDisabled;
3798
3813
  function defineDisabledWatchSource() {
3799
3814
  $unwatchDisabled = watch(() => toValue(options.disabled), async (disabled) => {
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @regle/core v1.28.1
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{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,...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 E(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 D(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function O(e,t,n,r=!1){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})}function k(e){return typeof e==`function`&&!!e.prototype&&`constructor`in e.prototype&&e.prototype.constructor===e}function A(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 j=Symbol(`regle-rule`);function M(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 N(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=>N(e,t+1)))),r==`Map`&&(n=new Map([...e].map(e=>[N(e[0],t+1),N(e[1],t+1)]))),r==`Date`&&(n=new Date(e.getTime())),r==`RegExp`&&(n=RegExp(e.source,M(e))),r==`Array`||r==`Object`){n=Array.isArray(e)?[]:{};for(let r in e)n[r]=N(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 P(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 F(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(!F(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)&&!F(e[s],t[s],n,!1))return!1}return!0}return e!==e&&t!==t}var I=class extends Error{constructor(e=`Promise was aborted`){super(e),this.name=`AbortError`}};function L(e){let t=new AbortController,{signal:n}=t,r=new Promise((t,r)=>{function i(){r(new I)}n.addEventListener(`abort`,i),e.then(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new I):t(e)}).catch(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new I):r(e)})});function i(e){t.abort(e)}return{promise:r,abort:i,signal:n}}function R(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 te={Inline:`__inline`,Async:`__async`};function z(e){try{return e.map(e=>h(e))}catch{return[]}}function B(t){return t.map(t=>t instanceof Function?e(t):a(t)?t:m(()=>t))}function V(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 H(e,...t){let{validator:n,type:r,async:i}=e,a=i||r===te.Async||n.constructor.name===`AsyncFunction`;return o({validator(n,...r){return e.validator(n,...z(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:z(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:z(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:z(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...z(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:B(t),_brand:j})}function U(e){if(typeof e.validator==`function`){let t=[],n=e.async??e.validator.constructor.name===`AsyncFunction`,r=H({...e,async:n},...t);if(V(e.validator)>1){let t=function(...t){return H(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 W=Symbol.for(`regle:instance`);function ne(e){return typeof e==`object`&&!!e&&W in e}function G(e){return C(e.value)}function re(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 K={LessThan:-1,EqualTo:0,GreaterThan:1};function ie(e,t){let n=String(e).split(`.`),r=String(t).split(`.`);for(let e=0;e<Math.min(n.length,r.length);e++){let t=Number(n[e]),i=Number(r[e]);if(t>i)return K.GreaterThan;if(i>t)return K.LessThan;if(!isNaN(t)&&isNaN(i))return K.GreaterThan;if(isNaN(t)&&!isNaN(i))return K.LessThan}return K.EqualTo}const ae=ie(v,`3.5.0`)!==-1;function q(){return Math.floor(Math.random()*Date.now()).toString()}function oe(){return typeof window>`u`?q():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function se(e){return r()?(l(e),!0):!1}function ce(e){let n=!1,r,i=t(!0);return((...t)=>(n||=(r=i.run(()=>e(...t)),!0),r))}function le(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`),J=Symbol(`regle-config`),Y={REGLE_STATIC:`__regle_static`};function fe(){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 X={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}},Z={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`},pe={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`},me={INACTIVE:`The rule is not active`,INVALID:`Rule is invalid`,VALID:`Rule is valid`,PENDING:`Rule validator is pending`},he={ROOT:[`$value`,`$invalid`,`$dirty`,`$error`,`$pending`,`$valid`,`$ready`],FIELD:[`$value`,`$invalid`,`$dirty`,`$error`,`$pending`,`$errors`]},ge={INSPECTOR:`regle-inspector`,COMPONENTS:`components`,TIMELINE:`regle-timeline`};function _e(e,t){return!Se(e.value)&&(G(e)||C(t.value)&&!A(t.value)&&!Object.entries(t.value).some(([e,t])=>be(t)||typeof t==`function`))}function ve(e,t){return!!e.value&&C(e.value)&&`$each`in e.value||Array.isArray(t.value)}function ye(e){return!!e.value&&(C(e.value)||G(e.value))}function be(e){return(C(e)||typeof e==`function`)&&`_validator`in e}function xe(e){return typeof e.value==`function`?`_validator`in e.value:!0}function Se(e){return C(e)&&D(e,Y.REGLE_STATIC)&&e[Y.REGLE_STATIC]===!0}function Ce(e){return C(e)&&`$fields`in e}function Q(e){return!!e&&`$each`in e}function we(e){return!!e&&`$rules`in e}function Te(e){return typeof e==`function`}function Ee(e,t){return t.filter(t=>t in e&&!Te(e[t])).map(t=>{let n=!1;return t===`$value`&&(n=!0),{key:t,value:e[t],editable:n}})}function De(e,t){return Object.entries(e).filter(([n])=>!t.includes(n)&&n.startsWith(`$`)&&!Te(e[n])).map(([e,t])=>({key:e,value:t,editable:!1})).sort((e,t)=>e.key.localeCompare(t.key))}function Oe(e){if(!e.includes(`:field:`))return null;let[t,,n]=e.split(`:`);return{instanceId:t,fieldName:n}}function ke(e,t){return`${e}:field:${t}`}function Ae(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=Oe(n);return i?{...i,ruleName:r}:null}function je(e,t,n){return`${ke(e,t)}:rule:${n}`}const Me=[`$autoDirty`,`$rewardEarly`,`$clearExternalErrorsOnChange`,`$clearExternalErrorsOnValidate`,`$immediateDirty`,`$silent`];function Ne(e){let t={},n=Ee(e,he.FIELD);n.length>0&&(t.State=n);let r=De(e,[...he.FIELD,...Me,`$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 Pe(e){let t={},n=[`$type`,`$valid`,`$active`,`$pending`,`$message`,`$tooltip`],r=Ee(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=De(e,[...n,`$params`,`$metadata`,`$haveAsync`,`$validating`,`$fieldDirty`,`$fieldInvalid`,`$fieldPending`,`$fieldCorrect`,`$fieldError`,`$maybePending`]);return i.length>0&&(t[`Other Properties`]=i),t}function Fe(e){let t={},n=Ee(e,he.ROOT);n.length>0&&(t.State=n);let r=De(e,[...he.ROOT,`$fields`,`$modifiers`,`$path`,...Me]);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 Ie(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(Q(r)&&Array.isArray(r.$each))r=r.$each[t];else return null;else if(Q(r)&&r.$self&&r.$self)r=r.$self;else if(Ce(r)&&r.$fields&&r.$fields[e])r=r.$fields[e];else if(r[e])r=r[e];else return null}return r}function Le(e,t){let n=Ae(e);if(n){let{instanceId:e,fieldName:r,ruleName:i}=n,a=t(e);if(!a||!a.r$.$fields)return null;let o=Ie(a.r$.$fields,r);if(!o||!(`$rules`in o))return null;let s=o.$rules[i];return s?Pe(s):null}let r=Oe(e);if(r){let{instanceId:e,fieldName:n}=r,i=t(e);if(!i||!i.r$.$fields)return null;let a=Ie(i.r$.$fields,n);return a?Ne(a):null}let i=t(e);return i?Fe(i.r$):null}function Re(e){if(e.includes(`:rule:`))return;let t=Oe(e);if(t){let{instanceId:e,fieldName:n}=t,r=$.get(e);if(r&&r.r$.$fields){let e=Ie(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 ze(e,t=!1){let n=Oe(e);if(n){let{instanceId:e,fieldName:r}=n,i=$.get(e);if(i&&i.r$.$fields){let e=Ie(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 Be(e){if(e.includes(`:rule:`))return;let t=Oe(e);if(t){let{instanceId:e,fieldName:n}=t,r=$.get(e);if(r&&r.r$.$fields){let e=Ie(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 Ve(e){let{nodeId:t,path:n,state:r}=e;if(!n.includes(`$value`)||!Oe(t))return;let[i,a,o]=t?.split(`:`)??[],s=$.get(i);if(s&&s.r$.$fields){let e=Ie(s.r$.$fields,o);e&&`$value`in e&&(e.$value=r.value,$.notifyDevtools())}}async function He(e){e.sendInspectorTree(ge.INSPECTOR),e.sendInspectorState(ge.INSPECTOR)}function Ue(){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&&He(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 $=Ue();function We(e,t){if(typeof window>`u`||!(typeof __VUE_PROD_DEVTOOLS__<`u`&&__VUE_PROD_DEVTOOLS__)||fe())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 se(c),c}function Ge(){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=z(`_params`in i&&Array.isArray(i._params)?i._params:[]),n=z(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({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 qe({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 Je(e){return C(e)&&`$each`in e}function Ye(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!C(e)))return e;if(Je(e)){let t=n?e.$self?.map(e=>({message:e,path:[]}))??[]:e.$self??[],r=e.$each?.map(e=>Xe(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>Xe(t,n,[e])).flat()}function Xe(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(Je(e)){let n=r?.length?e.$self?.map(e=>({message:e,path:r??[]}))??[]:e.$self??[],i=e.$each?.map((e,n)=>Xe(e,t,r?.concat(n)))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>Xe(n,t,r?.concat(e))).flat()}function Ze({customMessages:n,rule:r,ruleKey:i,state:a,path:o,cachePath:s,storage:c,modifiers:l}){let d=t(),p={},m,h=e(()=>be(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 xe(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),xe(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 A(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),_=e(()=>xe(r)&&r.value.type?r.value.type:i),y=e(()=>xe(r)?r.value.validator:r.value),S=e(()=>typeof r.value==`function`?[]:z(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:ae?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(be(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,be(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 j(){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:j,$watch:C,$reset:k})}function Qe(e){return{"~standard":{version:1,vendor:`regle`,validate:async t=>{let{valid:n,data:r,errors:i}=await e(t,!0);return n?{value:r,issues:[]}:{issues:Ye(i,{includePath:!0})}}}}}function $e(e){return e===!0?`eager`:e===!1||e==null?!1:e}function et(e){return C(e)&&!Se(e)?Object.values(e).some(e=>et(e)):Array.isArray(e)?e.some(e=>et(e)):!A(e)}function tt(e,t){return we(e)?!e.$inactive&&et(t):Ce(e)?nt(e.$self,e.$fields,t):Q(e)&&Array.isArray(t)?e.$self&&tt(e.$self,t)?!0:e.$each.some((e,n)=>tt(e,t[n])):!1}function nt(e,t,n){if(e&&tt(e,n))return!0;if(!C(n)||Se(n))return!1;let r=n;return Object.entries(t).some(([e,t])=>tt(t,r[e]))}function rt(e,t,n,r=!1,i=!1){return e===`eager`?!0:e===`non-empty`?!r||i?!1:et(n):e===`lazy-non-empty`?et(t):!1}function it({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 j=t(),M,I=[],R,te,z,B,V=()=>{},H,U=()=>{},W=f(!1),ne=f(l.getAdditionalRulesEntry(o)??{});function G(e){ne.value=e??{},l.addAdditionalRulesEntry(o,e??{}),K(),V()}function re(e){G(e)}function K(){let e={...r.value,...ne.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,Ze({modifiers:{$silent:M.$silent,$rewardEarly:M.$rewardEarly},customMessages:i,rule:c,ruleKey:r,state:n,path:a,cachePath:o,storage:l,$debounce:Y.value.$debounce})])}J.value=Object.fromEntries(t),l.addRuleDeclEntry(o,e)}function ie(){let e={...r.value,...ne.value},t=l.checkRuleDeclEntry(o,e),n={};for(let t in e)t.startsWith(`$`)&&(n[t]=e[t]);return Y.value=n,t}function q(){let e=ie();le(),K(),M.processShortcuts(),oe(),se(),e?.valid!=null&&(M.$dirty.value=l.getDirtyState(o),(M.$dirty.value&&!M.$silent.value||M.$rewardEarly.value&&M.$error.value)&&V()),l.addRuleDeclEntry(o,r.value)}function oe(){V=M.$debounce.value>0?P(de,M.$debounce.value,{trackDebounceRef:W}):de}function se(){U=M.$debounce.value>0?P(()=>{M.$dirty.value=!0},M.$debounce.value):()=>{M.$dirty.value=!0}}function ce(){if(J.value)for(let e of Object.values(J.value))e.$unwatch();te(),B?.(),M.$dirty.value&&l.setDirtyEntry(o,M.$dirty.value),R?.(),j.stop(),j=t();for(let e of I)e.stop();I=[],x?.(),z?.()}function le(){if(J.value)for(let e of Object.values(J.value))e.$watch();M=j.run(()=>{let r=f(!1),i=f(!1),a=e(()=>r.value),o=e(()=>S||Se(n.value)),s=e(()=>Y.value.$debounce==null?h(d.debounce)==null?M.$haveAnyAsyncRule.value?200:0:h(d.debounce):Y.value.$debounce),l=e(()=>Y.value.$deepCompare==null?!1:Y.value.$deepCompare),m=e(()=>Y.value.$lazy==null?h(d.lazy)==null?!1:h(d.lazy)===!0:Y.value.$lazy),y=e(()=>Y.value.$immediateDirty==null?h(d.immediateDirty)==null?!1:$e(h(d.immediateDirty)):$e(Y.value.$immediateDirty)),x=e(()=>Y.value.$rewardEarly==null?h(d.rewardEarly)==null?!1:h(d.rewardEarly)===!0:!!Y.value.$rewardEarly),C=e(()=>Y.value.$clearExternalErrorsOnChange==null?h(d.clearExternalErrorsOnChange)==null?!E.value:h(d.clearExternalErrorsOnChange)===!0:!!Y.value.$clearExternalErrorsOnChange),T=e(()=>Y.value.$clearExternalErrorsOnValidate==null?h(d.clearExternalErrorsOnValidate)==null?!1:h(d.clearExternalErrorsOnValidate)===!0:!!Y.value.$clearExternalErrorsOnValidate),E=e(()=>x.value?!0:Y.value.$silent==null?h(d.silent)==null?!1:h(d.silent)===!0:Y.value.$silent),k=e(()=>Y.value.$autoDirty==null?h(d.autoDirty)==null?!0:h(d.autoDirty)===!0:Y.value.$autoDirty),j=e(()=>{if(Y.value.$isEdited!=null)return Y.value.$isEdited;if(O?.isEdited!=null)return O.isEdited}),N=e(()=>{for(let e of Object.values(J.value))if(e.$validating)return!0;return!1}),P=e({get:()=>n.value,set(e){R(),n.value=e,ue()}}),L=e(()=>W.value?ie.value&&r.value:ie.value&&!K.value&&r.value),te=e(()=>Ke({field:{$rules:J.value,$error:L.value,$externalErrors:p?.value,$externalIssues:g?.value,$schemaErrors:_?.value,fieldName:ae.value}})),z=e(()=>Ke({field:{$rules:J.value,$error:L.value,$externalErrors:p?.value,$externalIssues:g?.value,$schemaErrors:_?.value,fieldName:ae.value},silent:!0})),B=e(()=>te.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)?!F(e,t,Y.value.$deepCompare):t!==e}b(()=>{r.value?j.value?H.value=j.value(n.value,w.value,U):H.value=U(n.value,w.value):H.value=!1});let ne=e(()=>H.value),G=e(()=>qe({field:{$rules:J.value}})),re=e(()=>!(ie.value||K.value)),K=e(()=>i.value||!x.value?Object.entries(J.value).some(([e,t])=>t.$pending):!1),ie=e(()=>p?.value?.length||g?.value?.length||_?.value?.length?!0:q.value?!1:Object.values(J.value).some(e=>!e.$valid||e.$maybePending)),ae=e(()=>c??d.id??`root`),q=e(()=>!v&&!Object.keys(J.value).some(e=>!e.startsWith(`$`))),oe=e(()=>{if(p?.value?.length||g?.value?.length||q.value||W.value)return!1;if(r.value&&!A(n.value)&&!N.value&&!K.value){if(v)return!_?.value?.length;{let e=Object.values(J.value);for(let t of e)if(t.$active&&!t.$valid)return!1;return e.some(e=>e.$active)}}return!1}),se=e(()=>Object.values(J.value).some(e=>e.$haveAsync)),ce=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:j.value,$disabled:h(d.disabled)??!1}));function le(){D?.fields&&Object.entries(D.fields).forEach(([e,i])=>{let o=t();de[e]=o.run(()=>{let e=f();return b(()=>{e.value=i(u({$dirty:r,$externalErrors:p?.value??[],$externalIssues:g?.value??[],$value:n,$silentValue:P,$rules:J,$error:L,$pending:K,$invalid:ie,$correct:oe,$errors:B,$ready:re,$silentErrors:V,$anyDirty:a,$tooltips:G,$name:ae,$inactive:q,$edited:H,$anyEdited:ne}))}),e}),I.push(o)})}let de={};return{$error:L,$pending:K,$invalid:ie,$correct:oe,$debounce:s,$deepCompare:l,$lazy:m,$immediateDirty:y,$ready:re,$issues:te,$silentIssues:z,$errors:B,$silentErrors:V,$rewardEarly:x,$autoDirty:k,$silent:E,$clearExternalErrorsOnChange:C,$clearExternalErrorsOnValidate:T,$anyDirty:a,$edited:H,$anyEdited:ne,$name:ae,$haveAnyAsyncRule:se,$shortcuts:de,$validating:N,$tooltips:G,$dirty:r,processShortcuts:le,$silentValue:P,$inactive:q,$modifiers:ce,$isArrayOrRegleStatic:o}}),ue(),te=y(M.$dirty,e=>{l.setDirtyEntry(o,e),Object.values(J.value).forEach(t=>{t.$fieldDirty=e})}),B=y([M.$error,M.$correct,M.$invalid,M.$pending],()=>{Object.values(J.value).forEach(e=>{e.$fieldError=M.$error.value,e.$fieldInvalid=M.$invalid.value,e.$fieldPending=M.$pending.value,e.$fieldCorrect=M.$correct.value})}),z=y(M.$haveAnyAsyncRule,oe)}function ue(){R=y(n,()=>{M.$autoDirty.value&&!M.$silent.value&&(M.$dirty.value||U()),r.value instanceof Function&&q(),(!M.$silent.value||M.$rewardEarly.value&&M.$error.value)&&V(),M.$clearExternalErrorsOnChange.value&&(xe(),Q())},{deep:M.$isArrayOrRegleStatic.value?!0:ae?1:!0})}async function de(){try{let{promise:e}=pe(Promise.allSettled(Object.values(J.value).map(e=>e.$parse())));await e}catch{}}let J=f({}),Y=f({});q();function fe(){rt(M.$immediateDirty.value,w.value,T?.value??w.value,a===``,M.$inactive.value)&&(M.$dirty.value=!0)}function X(e,t){if(Z(),M.$dirty.value=!1,l.setDirtyEntry(o,!1),!t)if(e?.toOriginalState)n.value=N(E),w.value=N(E);else if(e?.toInitialState)n.value=N(w.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,w.value=N(t),n.value=N(t)}else w.value=C(n.value)&&!Se(n.value)?N(n.value):Array.isArray(n.value)?[...n.value]:n.value;if(e?.clearExternalErrors!==!1&&(xe(),Q()),!t&&!e?.keepValidationState)for(let e of Object.values(J.value))e.$reset();if(!M.$lazy.value&&!M.$silent.value&&!t)for(let e of Object.values(J.value))e.$parse();fe()}function Z(){`cancel`in V&&V.cancel()}function pe(e){return H&&H.abort(),H=L(e),H}function me(){Z(),H&&H.abort()}function he(e=!0,t=!1){M.$dirty.value||U(),t&&e?(!M.$silent.value||M.$rewardEarly.value&&M.$error.value)&&(Z(),V()):e&&(Z(),V())}async function ge(e){return e&&(n.value=e),await s(),_e()}async function _e(e){try{if(e&&(n.value=e),v)return k?(he(!1),k()):{valid:!1,data:n.value,errors:M.$errors.value,issues:M.$issues.value};let t=n.value;if(M.$clearExternalErrorsOnValidate.value&&(xe(),Q()),M.$autoDirty.value&&!M.$silent.value&&M.$dirty.value&&!M.$validating.value&&!M.$pending.value&&!W.value&&!A(J.value))return{valid:!M.$invalid.value,data:t,errors:M.$errors.value,issues:M.$issues.value};if(M.$dirty.value||(M.$dirty.value=!0),A(J.value))return{valid:!0,data:t,errors:M.$errors.value,issues:M.$issues.value};me();let{promise:r}=pe(Promise.allSettled(Object.values(J.value).map(e=>e.$parse()))),i=await r;return await s(),{valid:i.every(e=>e.status===`fulfilled`&&e.value===!0),data:t,errors:M.$errors.value,issues:M.$issues.value}}catch{return{valid:!1,data:n.value,errors:M.$errors.value,issues:M.$issues.value}}}function ve(e){try{return e&&(n.value=e),M.$dirty.value||(M.$dirty.value=!0),v?!1:(M.$clearExternalErrorsOnValidate.value&&(xe(),Q()),Object.values(J.value).map(e=>e.$parseSync()).every(e=>!!e))}catch{return!1}}function ye(e=!0){return M.$dirty.value?n.value:e?{_null:!0}:null}function be(e){p&&(p.value=e),Q()}function xe(){p?.value?.length&&(p.value=[])}function Ce(e){g&&(g.value=e),xe()}function Q(){g?.value?.length&&(g.value=[])}!M.$lazy.value&&!M.$dirty.value&&!M.$silent.value&&de(),fe();let{$shortcuts:we,$validating:Te,$autoDirty:Ee,$rewardEarly:De,$clearExternalErrorsOnChange:Oe,$clearExternalErrorsOnValidate:ke,$haveAnyAsyncRule:Ae,$debounce:je,$lazy:Me,...Ne}=M,Pe=u({...Ne,$externalErrors:p,$externalIssues:g,$value:n,$output:n,$initialValue:w,$originalValue:E,$rules:J,...we,$path:a,$isDebouncing:W,$reset:X,$touch:he,$validate:ge,$validateSync:ve,$validateWithoutRaceconditions:_e,$unwatch:ce,$watch:le,$extractDirtyFields:ye,$clearExternalErrors:xe,$clearExternalIssues:Q,$abort:me,$addRules:G,addRules:re,$schemaMode:v,"~modifiers":M.$modifiers,$setExternalErrors:be,$setExternalIssues:Ce,...Qe(ge)});return Object.defineProperty(Pe,Symbol.for(`regle:instance`),{value:!0}),Pe}function at({$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??oe(),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=ct({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)||Se(s.value))&&b&&k?.$touch(),k}function ot({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(),j=f(n.value),M=f({}),ee,P,F=f({}),I=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=>be(e)||typeof e==`function`):!1:!1)})),R(),V();function R(){M.value=Object.fromEntries(Object.entries(r.value).filter(([e])=>e.startsWith(`$`))),typeof n.value==`object`&&(n.value!=null&&!n.value?.$id&&n.value!==null?(k.value=oe(),Object.defineProperties(n.value,{$id:{value:k.value,enumerable:!1,configurable:!1,writable:!1}})):n.value?.$id&&(k.value=n.value.$id)),j.value=F.value.$value,Array.isArray(n.value)&&(!D.isPrimitiveArray.value||g)?I.value=n.value.map((t,n)=>{let{scope:u,unwrapped:f}=re(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 at({$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):(I.value=[],L.clear()),F.value=it({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 te(){if(Array.isArray(n.value)&&(!D.isPrimitiveArray.value||g)){let t=[...I.value],o=new Set;I.value=n.value.map((t,n)=>{let u=m(()=>t);if(t.$id&&I.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}=re(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=at({$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 I.value=[],L.clear()}function z(){ee=y(n,()=>{P?.(),n.value!=null&&!Object.hasOwn(n.value,`$id`)&&!k.value?R():te(),B()},{deep:ae?1:!0,flush:`pre`}),B()}function B(){P=y(n,()=>{T.$autoDirty.value&&!T.$silent.value&&F.value.$touch(!1,!0)},{flush:`post`})}function V(){z(),w=t(),T=w.run(()=>{let r=e({get:()=>n.value,set(e){ee?.(),P?.(),n.value=e,z()}}),i=e(()=>F.value.$dirty&&(!I.value.length||I.value.every(e=>e.$dirty))),o=e(()=>F.value.$anyDirty||I.value.some(e=>e.$anyDirty)),s=e(()=>F.value.$invalid||I.value.some(e=>e.$invalid)),l=e(()=>(g?F.value.$correct:A(F.value.$rules)?!0:F.value.$correct)&&(!I.value.length||I.value.every(e=>e.$correct||e.$anyDirty&&!e.$invalid))),d=e(()=>F.value.$error||I.value.some(e=>e.$error)),p=e(()=>!(s.value||m.value)),m=e(()=>F.value.$pending||I.value.some(e=>e.$pending)),y=e(()=>!!I.value.length&&I.value.every(e=>e.$edited)),w=e(()=>F.value.$anyEdited||I.value.some(e=>e.$anyEdited)),T=e(()=>({$self:F.value.$issues,$each:I.value.map(e=>e.$issues)})),E=e(()=>({$self:F.value.$errors,$each:I.value.map(e=>e.$errors)})),D=e(()=>({$self:F.value.$silentErrors,$each:I.value.map(e=>e.$silentErrors)})),k=e(()=>M.value.$rewardEarly==null?h(c.rewardEarly)==null?!1:h(c.rewardEarly)===!0:M.value.$rewardEarly),j=e(()=>k.value?!0:M.value.$silent==null?h(c.silent)==null?!1:h(c.silent)===!0:M.value.$silent),N=e(()=>M.value.$autoDirty==null?h(c.autoDirty)==null?!0:h(c.autoDirty)===!0:M.value.$autoDirty),L=e(()=>M.value.$immediateDirty==null?h(c.immediateDirty)==null?!1:$e(h(c.immediateDirty)):$e(M.value.$immediateDirty)),R=e(()=>M.value.$clearExternalErrorsOnChange==null?h(c.clearExternalErrorsOnChange)==null?!0:h(c.clearExternalErrorsOnChange)===!0:M.value.$clearExternalErrorsOnChange),te=e(()=>M.value.$clearExternalErrorsOnValidate==null?h(c.clearExternalErrorsOnValidate)==null?!1:h(c.clearExternalErrorsOnValidate)===!0:M.value.$clearExternalErrorsOnValidate),B=e(()=>{if(M.value.$isEdited!=null)return M.value.$isEdited;if(C?.isEdited!=null)return C.isEdited}),V=e(()=>S??c.id??`root`),H=e(()=>({$deepCompare:M.value.$deepCompare??!1,$debounce:M.value.$debounce??h(c.debounce)??0,$lazy:M.value.$lazy??!1,$rewardEarly:k.value,$autoDirty:N.value,$silent:j.value,$clearExternalErrorsOnChange:R.value,$clearExternalErrorsOnValidate:te.value,$immediateDirty:L.value,$isEdited:B.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:I,$self:F,$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:j,$autoDirty:N,$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(){ee?.(),F.value&&F.value.$unwatch(),I.value&&I.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){F.value.$touch(e,t),I.value.forEach(n=>{n.$touch(e,t)})}function W(e,t){if(H(),!t)if(e?.toOriginalState)n.value=N(v),_.value=N(v);else if(e?.toInitialState)n.value=N(_.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,_.value=N(t),n.value=N(t)}else _.value=N(n.value);e?.clearExternalErrors!==!1&&(se(),le()),e?.keepValidationState||(F.value.$reset(e,t),I.value.forEach(t=>{t.$reset(e,!0)})),t||R()}function ne(){F.value.$abort(),I.value.forEach(e=>{e.$abort()})}async function G(e){return e&&(n.value=e),K()}async function K(e){e&&(n.value=e);let t=n.value;try{return ne(),{valid:(await Promise.allSettled([F.value.$validateWithoutRaceconditions(e),...I.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 ie(e){e&&(n.value=e);try{return[F.value.$validateSync(e),...I.value.map(e=>e.$validateSync())].every(e=>!!e)}catch{return!1}}function q(e){l&&(l.value=e),le()}function se(){F.value.$clearExternalErrors(),I.value.forEach(e=>{e.$clearExternalErrors()})}function ce(e){d&&(d.value=e),se()}function le(){F.value.$clearExternalIssues(),I.value.forEach(e=>{e.$clearExternalIssues()})}function ue(e=!0){let t=I.value.map(t=>{if(Ce(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>A(e))&&(t=[]),t}let{$shortcuts:de,...J}=T;return u({$self:F,...J,...de,$path:a,$each:I,$value:n,$output:n,$initialValue:_,$originalValue:v,$validate:G,$validateSync:ie,$validateWithoutRaceconditions:K,$unwatch:H,$watch:V,$touch:U,$reset:W,$abort:ne,$extractDirtyFields:ue,$clearExternalErrors:se,$clearExternalIssues:le,$setExternalErrors:q,$setExternalIssues:ce,"~modifiers":T.$modifiers,...Qe(G)})}function st({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,I=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,ct({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,ct({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,ct({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,ct({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})]}));z.value={...s,...u,...d,...f},t&&U()}function te(){n.value.$self&&(L.value=it({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 z=D.storage.getFieldsEntry(a);R(),te();function B(){c&&(P=y(c,()=>{W(),R()},{deep:!0}))}function V(){l&&(F=y(l,()=>{W(),R()},{deep:!0}))}function H(){I=y(r,()=>{W(),R(),k.$autoDirty.value&&!k.$silent.value&&q(!1,!0),k.$clearExternalErrorsOnChange.value&&(G(),K())},{flush:`post`})}function U(){(o||E)&&(M?.(),M=y(n,()=>{W(),R()},{deep:!0,flush:`pre`}),B(),V()),v&&(ee?.(),ee=y(()=>v.value?Object.keys(v.value).sort().join(`\0`):``,()=>{W(),R()},{flush:`post`})),H(),k=O.run(()=>{let a=e({get:()=>r.value,set(e){W(),r.value=e,R(),k.$autoDirty.value&&!k.$silent.value&&q(!1,!0),k.$clearExternalErrorsOnChange.value&&(G(),K())}}),o=d(a),s=e({get:()=>r.value,set(e){W(),r.value=e,R()}}),c=e(()=>{let e=z.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=z.value;for(let t in e)if(e[t]?.$anyDirty)return!0;return!1}),p=e(()=>{if(L.value?.$invalid)return!0;let e=z.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(z.value).reduce((e,[t,n])=>((!we(n)||!n.$inactive)&&e.push([t,n]),e),[]),t=n.value.$self&&!A(n.value.$self);if(e.length||t){let t=L.value?.$correct??!0,n=!1;return n=D.schemaMode?e.every(([e,t])=>t.$correct):e.every(([e,t])=>we(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=z.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:$e(h(D.options.immediateDirty))),O=e(()=>h(D.options.lazy)==null?!1:h(D.options.lazy)===!0),M=e(()=>h(D.options.clearExternalErrorsOnChange)==null?!0:h(D.options.clearExternalErrorsOnChange)===!0),N=e(()=>h(D.options.clearExternalErrorsOnValidate)==null?!1:h(D.options.clearExternalErrorsOnValidate)===!0),ee=e(()=>!(p.value||F.value)),P=f(!1),F=e(()=>{if(L.value?.$pending||P.value)return!0;let e=z.value;for(let t in e)if(e[t]?.$pending)return!0;return!1}),I=e(()=>{let e={...L.value&&{$self:L.value?.$issues??[]}};for(let t in z.value)e[t]=z.value[t]?.$issues;return e}),te=e(()=>{let e={...L.value&&{$self:L.value?.$errors??[]}};for(let t in z.value)e[t]=z.value[t]?.$errors;return e}),B=e(()=>{let e={...L.value&&{$self:L.value?.$silentErrors??[]}};for(let t in z.value)e[t]=z.value[t]?.$silentErrors;return e}),V=e(()=>{if(L.value?.$edited)return!0;if(!Object.keys(z.value).length)return!1;for(let e in z.value)if(!z.value[e]?.$edited)return!1;return!0}),H=e(()=>{if(L.value?.$anyEdited)return!0;for(let e in z.value)if(z.value[e]?.$anyEdited)return!0;return!1}),U=e(()=>T??D.options.id??`root`),ne=e(()=>({autoDirty:C.value,lazy:O.value,rewardEarly:v.value,silent:y.value,clearExternalErrorsOnChange:M.value,clearExternalErrorsOnValidate:N.value,immediateDirty:E.value,id:h(D.options.id),disabled:h(D.options.disabled)}));function re(){D.shortcuts?.nested&&Object.entries(D.shortcuts.nested).forEach(([e,n])=>{let a=t();ae[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:U,$silentErrors:B,$initialValue:S,$errors:te,$fields:z,$edited:V,$anyEdited:H,$issues:I,$self:L,"~modifiers":_(D.options)}))}),e}),j.push(a)})}let ie=e({get:()=>x?Object.fromEntries(Object.entries(x?.(z.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,le(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,ue(t,e)]))}]:[])):{},set(){}}),ae={};return re(),{$dirty:c,$anyDirty:l,$invalid:p,$correct:m,$error:g,$pending:F,$issues:I,$errors:te,$silentErrors:B,$clearExternalErrorsOnValidate:N,$clearExternalErrorsOnChange:M,$ready:ee,$name:U,$shortcuts:ae,$groups:ie,$silentValue:s,$immediateDirty:E,$edited:V,$anyEdited:H,$localPending:P,$autoDirty:C,$silent:y,$value:a,$output:o,$modifiers:ne}})}function W(){if(M?.(),P?.(),F?.(),I?.(),ee?.(),j.forEach(e=>e.stop()),j=[],k={},z.value)for(let e of Object.values(z.value))e?.$unwatch()}function ne(e){c&&(c.value=e),K()}function G(){c&&!A(c.value)&&(c.value={})}function re(e){l&&(l.value=e),G()}function K(){l&&!A(l.value)&&(l.value={})}function ie(){if(!k)return;let e=k.$immediateDirty.value;(e===`eager`||e===`non-empty`&&nt(L.value,z.value,S.value))&&q(!0,!1)}function ae(e,t){if(P?.(),W(),!t)if(e?.toOriginalState)r.value=N({...w}),S.value=N({...w});else if(e?.toInitialState)r.value=N({...S.value});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,S.value=N(t),r.value=N(t)}else S.value=N(r.value);if(!e?.keepValidationState){for(let t of Object.values(z.value))t?.$reset(e,!0);L.value?.$reset(e,!0)}e?.clearExternalErrors!==!1&&(G(),K()),B(),V(),t||(R(),ie())}function q(e=!0,t=!1){for(let n of Object.values(z.value))n?.$touch(e,t);L.value?.$touch(e,t)}function oe(e){return e.filter(([e,t])=>C(t)&&!Se(t)?!(t&&typeof t==`object`&&`_null`in t)&&!A(t):Array.isArray(t)?t.length:!0)}function se(e=!0){let t=Object.entries(z.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=oe(t)),Object.fromEntries(t)}function ce(){for(let e of Object.values(z.value))e.$abort();L.value?.$abort()}async function de(e){return e&&(r.value=e),await s(),J()}async function J(e){try{if(e&&(r.value=e),D.schemaMode)return D.onValidate?(q(!1),k.$localPending.value=!0,D.onValidate()):{valid:!1,data:r.value,errors:k.$errors.value,issues:k.$issues.value};{let e=r.value;ce(),k.$clearExternalErrorsOnValidate.value&&(G(),K());let t=[...Object.values(z.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: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 Y(e){try{return e&&(r.value=e),k.$clearExternalErrorsOnValidate.value&&(G(),K()),[...Object.values(z.value).map(e=>e.$validateSync()),...L.value?[L.value?.$validateSync()]:[]].every(e=>!!e)}catch{return!1}}ie();let{$shortcuts:fe,$localPending:X,...Z}=k,pe=u({...Z,...fe,$path:i,$initialValue:S,$originalValue:w,$self:L,$externalErrors:c,$externalIssues:l,$fields:z,$reset:ae,$touch:q,$validate:de,$unwatch:W,$watch:U,$setExternalErrors:ne,$setExternalIssues:re,$clearExternalErrors:G,$clearExternalIssues:K,$extractDirtyFields:se,$abort:ce,$validateSync:Y,$validateWithoutRaceconditions:J,...o?{"~modifiers":k.$modifiers}:{},...Qe(de)});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(z.value))e?.$name&&Object.assign(pe,{[e.$name]:e})}),pe}function ct({rulesDef:e,...n}){if(ve(e,n.state))return ot({rulesDef:e,...n});if(_e(n.state,e)){if(G(n.state))return st({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 st({rulesDef:e,...a,state:r.fakeState})}}else if(ye(e))return it({rulesDef:a(e.value)?e.value:e,...n})}function lt(e){return e&&C(e)&&Object.keys(e).some(e=>e.includes(`.`))?E(e):e}function ut(e){return Array.isArray(e)?e.length>0:C(e)&&Object.keys(e).length>0}function dt(e){return Array.isArray(e)?[]:{}}function ft(e){let t=f(),n=f(),r,i,a,o,s=!1;function c(){let t=dt(n.value??e.externalIssues?.value);n.value=t,e.externalIssues&&(e.externalIssues.value=t)}function l(){let n=dt(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=lt(n);t.value=i,r&&e.externalErrors&&(e.externalErrors.value=i),ut(i)&&c(),s=!1}function d(t,r=!1){if(s)return;s=!0;let i=lt(t);n.value=i,r&&e.externalIssues&&(e.externalIssues.value=i),ut(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 pt({initialState:e,originalState:n,options:i,scopeRules:a,state:o,customRules:c,shortcuts:u,schemaErrors:d,schemaMode:p=!1,onValidate:m,overrides:g}){let _=Ge(),v=f(!1),b=new Set,x,S=f(),C=ft(i),w;function T(){w=y(()=>h(i.disabled),async e=>{e?O():(E(),C.start(),C.watchOptionRefs())})}function E(){_e(o,a)?S.value=st({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}):ye(a)&&(S.value=it({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__&&!fe()&&S.value&&We(S.value,{name:h(i.id)})}return M(),{regle:S,bindToCurrentScope:j}}function mt({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(J,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)?{...N(t.value)}:N(t.value)),T=C(t.value)?{...N(t.value)}:N(t.value);se(()=>{x?.()});let{regle:E,bindToCurrentScope:D}=pt({scopeRules:S,state:t,options:y,initialState:w,originalState:T,customRules:h,shortcuts:_,overrides:v});return{regle:E,bindToCurrentScope:D}}function ht(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}=mt({state:l,rulesFactory:s,options:c,globalOptions:r,customRules:n,shortcuts:i,overrides:o});return{r$:R(d,u,()=>{d.value||p()})}}return s}const gt=ht();function _t(){function e(e,t){return t}return e}const vt=_t();function yt(e,t){return w(h(e).$errors,String(t))}function bt(e,t){return w(h(e).$issues,String(t))}function xt(e){let t={};if(Object.entries(e).some(([e,t])=>be(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]=[xt(r.$each)]:C(r)&&!A(r)&&!Object.entries(r).some(([e,t])=>be(t)||typeof t==`function`)?t[n]=xt(r):t[n]=null}return t}function St(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(xt(c?.value)),u=e(()=>h(s?.disabled)??!1),{regle:d,bindToCurrentScope:p}=mt({state:l,rulesFactory:c,options:s,globalOptions:r,customRules:n,shortcuts:i,overrides:o});return R(d,u,()=>{d.value||p()})}return s}const Ct=St();function wt(e){if(k(e)){let t=e,n=class extends t{constructor(...e){return super(...e),Tt(this)}};return Object.defineProperty(n,"name",{value:t.name}),Tt(n)}return Tt(e)}function Tt(e){return!D(e,Y.REGLE_STATIC)&&Object.isExtensible(e)&&O(e,Y.REGLE_STATIC,!0),e}function Et({rules:e,modifiers:t,shortcuts:n,overrides:r}){let i=ht({rules:e,modifiers:t,shortcuts:n,overrides:r}),a=St({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:_t(),useRules:a}}function Dt(e,{rules:t,modifiers:n,shortcuts:r,overrides:i}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?T(a.modifiers,n):a.modifiers??n,c=a.shortcuts&&r?T(a.shortcuts,r):a.shortcuts??r,l=a.overrides&&i?T(a.overrides,i):a.overrides??i,u=ht({rules:o,modifiers:s,shortcuts:c,overrides:l});return u.__config={rules:o,modifiers:s,shortcuts:c,overrides:l},{useRegle:u,inferRules:_t()}}function Ot(e){return e}function kt(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 At(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`?kt(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})})}),kt(a,!n.asRecord)):kt(e[`~~global`]??{},!n.asRecord)}return{r$:s.r$}}return{useCollectScope:r}}function jt(t,r){let i=r??gt;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}-${oe()}`),_=e(()=>p.value??`instance-${g.value}`),{r$:v}=i(r,a,{...d,id:p.value});x(),se(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 Mt(e){let t=(e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):ce(()=>f({"~~global":{}})))(),{useScopedRegle:n}=jt(t,e?.customUseRegle),{useCollectScope:r}=At(t,{asRecord:e?.asRecord});return{useScopedRegle:n,useCollectScope:r}}const{useCollectScope:Nt,useScopedRegle:Pt}=Mt(),Ft=Nt,It=Pt;function Lt(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(be(t))return h(t._params?.[0])===i.value}})||r.find(e=>C(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`))||{})}function Rt(e,t,n){return!!e&&t in e&&C(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function zt(e,t,n,r){let i=a(e)?m(e.value,`$fields`):m(e,`$fields`),o=f();return y(i,async()=>{await s(),Rt(i.value,t,n)?o.value=m(e).value:o.value=void 0},{immediate:!0,flush:`pre`}),o}function Bt(e){return e}function Vt(e,t){return n=>T({...e},t(n))}var Ht=`1.28.1`;function Ut(e,t){let n=[],r=!1;we(e)?r=e[`~modifiers`]?.$disabled??!1:Ce(e)?r=e[`~modifiers`]?.disabled??!1:Q(e)&&(r=e[`~modifiers`]?.$disabled??!1);let i=we(e)?(`required`in e.$rules&&!e.$rules.required.$active||A(e.$rules))&&!e.$schemaMode:!1,a=we(e)?e.$inactive:!1,o=Ce(e)||Q(e);return e.$error?n.push({label:`error`,textColor:X.ERROR.text,backgroundColor:X.ERROR.bg,tooltip:o?pe.ERROR:Z.ERROR}):e.$correct&&n.push({label:`correct`,textColor:X.CORRECT.text,backgroundColor:X.CORRECT.bg,tooltip:o?pe.CORRECT:Z.CORRECT}),e.$pending&&n.push({label:`pending`,textColor:X.PENDING.text,backgroundColor:X.PENDING.bg,tooltip:o?pe.PENDING:Z.PENDING}),r&&n.push({label:`disabled`,textColor:X.DISABLED.text,backgroundColor:X.DISABLED.bg,tooltip:Z.DISABLED}),a?n.push({label:`inactive`,textColor:X.INACTIVE.text,backgroundColor:X.INACTIVE.bg,tooltip:Z.INACTIVE}):i&&n.push({label:`optional`,textColor:X.OPTIONAL.text,backgroundColor:X.OPTIONAL.bg,tooltip:Z.OPTIONAL}),!e.$invalid&&e.$dirty&&n.push({label:`valid`,textColor:X.VALID.text,backgroundColor:X.VALID.bg,tooltip:Z.VALID}),e.$dirty?n.push({label:`dirty`,textColor:X.DIRTY.text,backgroundColor:X.DIRTY.bg,tooltip:o?pe.DIRTY:Z.DIRTY}):i||n.push({label:`pristine`,textColor:X.PRISTINE.text,backgroundColor:X.PRISTINE.bg,tooltip:Z.PRISTINE}),t&&n.push({label:`<${t}.vue>`,textColor:X.COMPONENT.text,backgroundColor:X.COMPONENT.bg}),n}function Wt(e){let t=[];return e.$active?e.$valid?e.$valid&&t.push({label:`valid`,textColor:X.VALID.text,backgroundColor:X.VALID.bg,tooltip:me.VALID}):t.push({label:`invalid`,textColor:X.INVALID.text,backgroundColor:X.INVALID.bg,tooltip:me.INVALID}):t.push({label:`inactive`,textColor:X.INACTIVE.text,backgroundColor:X.INACTIVE.bg,tooltip:me.INACTIVE}),e.$pending&&t.push({label:`pending`,textColor:X.PENDING.text,backgroundColor:X.PENDING.bg,tooltip:me.PENDING}),t}function Gt(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=Wt(i);r.push({id:je(t,n,e),label:`⚙️ ${e}`,tags:a,children:[]})}}),r}function Kt(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=Ut(e),o=`${n}[${i}]`,s=[];Ce(e)?s=qt(e.$fields,t,o):we(e)&&(s=Gt(e,t,o)),r.push({id:ke(t,o),label:`[${i}]`,tags:a,children:s})}}),e.$self&&typeof e.$self==`object`){let i=Ut(e.$self),a=`${n}[$self]`;r.unshift({id:ke(t,a),label:`$self`,tags:i,children:Gt(e.$self,t,a)})}return r}function qt(e,t,n){let r=[];return Object.entries(e).forEach(([e,i])=>{if(i&&typeof i==`object`){let a=n?`${n}.${e}`:e,o=Ut(i),s=!1,c=!1,l=[];Q(i)?(l=Kt(i,t,a),s=!0,l.length===0&&(c=!0)):Ce(i)?l=qt({...i.$fields,...i.$self&&{$self:i.$self}},t,a):we(i)&&(l=Gt(i,t,a));let u=l.filter(e=>e.label!==`$self`);r.push({id:ke(t,a),label:`${s?`${e}[${u.length}]`:e}${c?` (empty)`:``}`,tags:o,children:l})}}),r}function Jt(e,t){let n=[];return we(e)?Gt(e,t,`root`):(!(`$fields`in e)||typeof e.$fields!=`object`||Object.entries(e.$fields).forEach(([e,r])=>{if(r&&typeof r==`object`){let i=Ut(r),a=[],o=!1;Q(r)?(a=Kt(r,t,e),o=!0):Ce(r)?a=qt({...r.$fields,...r.$self&&{$self:r.$self}},t,e):we(r)&&(a=Gt(r,t,e));let s=a.filter(e=>e.label!==`$self`);n.push({id:ke(t,e),label:`${o?`${e}[${s.length}]`:e}`,tags:i,children:a})}}),n)}function Yt(e,t){let n=e.map(e=>{let{r$:t,id:n,name:r,componentName:i}=e;return{id:n,label:r,tags:Ut(t,i),children:Jt(t,n)}});return!t||t.trim()===``?n:Xt(n,t)}function Xt(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?Xt(i.children,t):[];(e||a||o.length>0)&&r.push({...i,children:o.length>0?o:i.children})}return r}function Zt(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:ge.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`,Ht)}}],nodeActions:[{icon:`check`,tooltip:`Validate`,action:e=>{Re(e)}},{icon:`touch_app`,action:e=>{Be(e)},tooltip:`Touch the instance with $touch`},{icon:`refresh`,tooltip:`Reset validation state`,action:e=>{ze(e)}},{icon:`restore`,tooltip:`Restore to original state`,action:e=>{ze(e,!0)}}]}),$.notifyDevtools(),e.on.getInspectorTree(async e=>{if(e.inspectorId===ge.INSPECTOR){let t=Yt($.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===ge.INSPECTOR){let n=Le(t.nodeId,e=>$.get(e));n||e.sendInspectorTree(ge.INSPECTOR),n?t.state=n:t.state={}}}),e.on.editInspectorState(e=>{e.inspectorId===ge.INSPECTOR&&Ve(e)})})}const Qt={install(e,t){e.provide(de,Ht),t&&e.provide(J,t),typeof window<`u`&&typeof __VUE_PROD_DEVTOOLS__<`u`&&__VUE_PROD_DEVTOOLS__&&!fe()&&Zt(e)}};export{te as InternalRuleType,Qt as RegleVuePlugin,U as createRule,Mt as createScopedUseRegle,Lt as createVariant,Et as defineRegleConfig,Ot as defineRegleOptions,Bt as defineRules,Dt as extendRegleConfig,Ye as flatErrors,yt as getErrors,bt as getIssues,vt as inferRules,ne as isRegleInstance,wt as markStatic,kt as mergeRegles,Rt as narrowVariant,Vt as refineRules,z as unwrapRuleParameters,Ft as useCollectScope,gt as useRegle,pt as useRootStorage,Ct as useRules,It as useScopedRegle,zt 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.1",
3
+ "version": "1.28.2",
4
4
  "description": "Headless form validation library for Vue",
5
5
  "keywords": [
6
6
  "regle",