@regle/core 1.24.3 → 1.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/regle-core.d.ts +16 -12
- package/dist/regle-core.js +10 -3
- package/dist/regle-core.min.js +2 -2
- package/package.json +1 -1
package/dist/regle-core.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @regle/core v1.
|
|
2
|
+
* @regle/core v1.25.0
|
|
3
3
|
* (c) 2026 Victor Garcia
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
@@ -1278,11 +1278,13 @@ type RegleRoot<TState extends object | Record<string, unknown> = {}, TRules exte
|
|
|
1278
1278
|
$groups: { readonly [TKey in keyof TValidationGroups]: RegleValidationGroupOutput };
|
|
1279
1279
|
});
|
|
1280
1280
|
type ComputeNestedFieldStatus<TState extends Record<string, any>, TRules extends Record<string, any>, TKey extends keyof TState, TShortcuts extends RegleShortcutDefinition> = TKey extends string ? IsUnion<NonNullable<TRules[TKey]>> extends true ? ExtendOnlyRealRecord<TState[TKey]> extends true ? MaybeVariantStatus<NonNullable<TState>[TKey], NonNullable<TRules[TKey]>, TShortcuts> : InferRegleStatusType<NonNullable<TRules[TKey]>, NonNullable<TState>, TKey, TShortcuts> : InferRegleStatusType<NonNullable<TRules[TKey]>, NonNullable<TState>, TKey, TShortcuts> : never;
|
|
1281
|
-
type ProcessNestedFields<TState extends Record<string, any> | undefined, TRules extends ReglePartialRuleTree<NonNullable<TState>>, TShortcuts extends RegleShortcutDefinition = {}, TIsFields extends boolean = false> = Or<HasNamedKeys<TState>, TIsFields> extends true ? { readonly [TKey in keyof TState as TRules[TKey] extends NonNullable<TRules[TKey]> ? NonNullable<TRules[TKey]> extends MaybeRef<RegleRuleDecl> ? IsEmptyObject<TRules[TKey]> extends true ? TKey : never : never : TKey]: ComputeNestedFieldStatus<NonNullable<TState>, TRules, TKey, TShortcuts> } & (IsEmptyObject<TRules> extends true ? { readonly [TKey in keyof TState as TRules[TKey] extends NonNullable<TRules[TKey]> ? NonNullable<TRules[TKey]> extends MaybeRef<RegleRuleDecl> ? IsEmptyObject<TRules[TKey]> extends true ? never : TKey : TKey : never]: ComputeNestedFieldStatus<NonNullable<TState>, TRules, TKey, TShortcuts> | (isUndefinedOrNull<TState[TKey]> extends true ? undefined : never) } : { readonly [TKey in keyof TState as TRules[TKey] extends NonNullable<TRules[TKey]> ? NonNullable<TRules[TKey]> extends MaybeRef<RegleRuleDecl> ? IsEmptyObject<TRules[TKey]> extends true ? never : TKey : TKey : never]-?: ComputeNestedFieldStatus<NonNullable<TState>, TRules, TKey, TShortcuts> }) : {
|
|
1281
|
+
type ProcessNestedFields<TState extends Record<string, any> | undefined, TRules extends ReglePartialRuleTree<NonNullable<TState>>, TShortcuts extends RegleShortcutDefinition = {}, TIsFields extends boolean = false> = Or<HasNamedKeys<TState>, TIsFields> extends true ? { readonly [TKey in keyof TState as TRules[TKey] extends NonNullable<TRules[TKey]> ? NonNullable<TRules[TKey]> extends MaybeRef<RegleRuleDecl> ? IsEmptyObject<TRules[TKey]> extends true ? TKey : never : never : TKey]: ComputeNestedFieldStatus<NonNullable<TState>, TRules, TKey, TShortcuts> } & (IsEmptyObject<TRules> extends true ? { readonly [TKey in keyof TState as TRules[TKey] extends NonNullable<TRules[TKey]> ? NonNullable<TRules[TKey]> extends MaybeRef<RegleRuleDecl> ? IsEmptyObject<TRules[TKey]> extends true ? never : TKey : TKey : never]: ComputeNestedFieldStatus<NonNullable<TState>, TRules, TKey, TShortcuts> | (isUndefinedOrNull<TState[TKey]> extends true ? undefined : never) } : { readonly [TKey in keyof TState as TRules[TKey] extends NonNullable<TRules[TKey]> ? NonNullable<TRules[TKey]> extends MaybeRef<RegleRuleDecl> ? IsEmptyObject<TRules[TKey]> extends true ? never : TKey : TKey : never]-?: ComputeNestedFieldStatus<NonNullable<TState>, TRules, TKey, TShortcuts> }) : {
|
|
1282
|
+
[x: string]: RegleCommonStatus<unknown, unknown>;
|
|
1283
|
+
};
|
|
1282
1284
|
/**
|
|
1283
1285
|
* @public
|
|
1284
1286
|
*/
|
|
1285
|
-
type RegleStatus<TState extends object | Record<string, any> | undefined = Record<string, any>, TRules extends ReglePartialRuleTree<NonNullable<TState>, Partial<ExtendedRulesDeclarations>> = Record<string, any>, TShortcuts extends RegleShortcutDefinition = {}, _TFields = ProcessNestedFields<TState, TRules, TShortcuts, true>> = RegleCommonStatus<TState, TRules> & {
|
|
1287
|
+
type RegleStatus<TState extends object | Record<string, any> | undefined = Record<string, any>, TRules extends ReglePartialRuleTree<NonNullable<TState>, Partial<ExtendedRulesDeclarations>> = Record<string, any>, TShortcuts extends RegleShortcutDefinition = {}, _TFields = ProcessNestedFields<TState, TRules, TShortcuts, true>> = RegleCommonStatus<TState, TState, TRules> & {
|
|
1286
1288
|
/** 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;
|
|
1287
1289
|
/**
|
|
1288
1290
|
* Collection of all the issues, collected for all children properties and nested forms.
|
|
@@ -1325,7 +1327,7 @@ interface $InternalRegleStatus extends $InternalRegleCommonStatus {
|
|
|
1325
1327
|
/**
|
|
1326
1328
|
* @public
|
|
1327
1329
|
*/
|
|
1328
|
-
type InferRegleStatusType<TRule extends RegleCollectionRuleDecl | RegleRuleDecl | ReglePartialRuleTree<any>, TState extends Record<PropertyKey, any> = any, TKey extends PropertyKey = string, TShortcuts extends RegleShortcutDefinition = {}, isUnionOverride extends boolean = false, TRulesTuple extends readonly any[] = never> = HasNamedKeys<TState> extends true ? [TState[TKey]] extends [undefined | null] ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends string | number | boolean | bigint | symbol ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Array<unknown> ? TRule extends RegleCollectionRuleDefinition<any, any> ? ExtractFromGetter<TRule['$each']> extends ReglePartialRuleTree<any> ? RegleCollectionStatus<TState[TKey], ExtractFromGetter<TRule['$each']>, TRule, TShortcuts> : RegleFieldStatus<TState[TKey], TRule, TShortcuts> : RegleCollectionStatus<TState[TKey], {}, TRule, TShortcuts> : TRule extends ReglePartialRuleTree<any> ? NonNullable<TState[TKey]> extends Array<any> ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Date | File ? RegleFieldStatus<Raw<TState[TKey]>, TRule, TShortcuts> : unknown extends TState[TKey] ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Record<PropertyKey, any> ? NonNullable<TState[TKey]> extends RegleStaticImpl<infer U> ? RegleFieldStatus<Raw<U>, TRule, TShortcuts> : TRule extends ReglePartialRuleTree<TState[TKey]> ? MaybeVariantStatus<TState[TKey], TRule, TShortcuts, isUnionOverride, TRulesTuple> : MaybeVariantStatus<TState[TKey], {}, TShortcuts, isUnionOverride, TRulesTuple> : RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Date | File ? RegleFieldStatus<Raw<NonNullable<TState[TKey]>>, TRule, TShortcuts> : unknown extends TState[TKey] ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Record<PropertyKey, any> ? NonNullable<TState[TKey]> extends RegleStaticImpl<infer U> ? RegleFieldStatus<Raw<U>, TRule, TShortcuts> : MaybeVariantStatus<TState[TKey], ReglePartialRuleTree<TState[TKey]>, TShortcuts, isUnionOverride, []> : RegleFieldStatus<TState[TKey], TRule, TShortcuts> : RegleCommonStatus<unknown>;
|
|
1330
|
+
type InferRegleStatusType<TRule extends RegleCollectionRuleDecl | RegleRuleDecl | ReglePartialRuleTree<any>, TState extends Record<PropertyKey, any> = any, TKey extends PropertyKey = string, TShortcuts extends RegleShortcutDefinition = {}, isUnionOverride extends boolean = false, TRulesTuple extends readonly any[] = never> = HasNamedKeys<TState> extends true ? [TState[TKey]] extends [undefined | null] ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends string | number | boolean | bigint | symbol ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Array<unknown> ? TRule extends RegleCollectionRuleDefinition<any, any> ? ExtractFromGetter<TRule['$each']> extends ReglePartialRuleTree<any> ? RegleCollectionStatus<TState[TKey], ExtractFromGetter<TRule['$each']>, TRule, TShortcuts> : RegleFieldStatus<TState[TKey], TRule, TShortcuts> : RegleCollectionStatus<TState[TKey], {}, TRule, TShortcuts> : TRule extends ReglePartialRuleTree<any> ? NonNullable<TState[TKey]> extends Array<any> ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Date | File ? RegleFieldStatus<Raw<TState[TKey]>, TRule, TShortcuts> : unknown extends TState[TKey] ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Record<PropertyKey, any> ? NonNullable<TState[TKey]> extends RegleStaticImpl<infer U> ? RegleFieldStatus<Raw<U>, TRule, TShortcuts> : TRule extends ReglePartialRuleTree<TState[TKey]> ? MaybeVariantStatus<TState[TKey], TRule, TShortcuts, isUnionOverride, TRulesTuple> : MaybeVariantStatus<TState[TKey], {}, TShortcuts, isUnionOverride, TRulesTuple> : RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Date | File ? RegleFieldStatus<Raw<NonNullable<TState[TKey]>>, TRule, TShortcuts> : unknown extends TState[TKey] ? RegleFieldStatus<TState[TKey], TRule, TShortcuts> : NonNullable<TState[TKey]> extends Record<PropertyKey, any> ? NonNullable<TState[TKey]> extends RegleStaticImpl<infer U> ? RegleFieldStatus<Raw<U>, TRule, TShortcuts> : MaybeVariantStatus<TState[TKey], ReglePartialRuleTree<TState[TKey]>, TShortcuts, isUnionOverride, []> : RegleFieldStatus<TState[TKey], TRule, TShortcuts> : RegleCommonStatus<unknown, unknown>;
|
|
1329
1331
|
/**
|
|
1330
1332
|
* @internal
|
|
1331
1333
|
* @reference {@link InferRegleStatusType}
|
|
@@ -1334,7 +1336,7 @@ type $InternalRegleStatusType = $InternalRegleCollectionStatus | $InternalRegleS
|
|
|
1334
1336
|
/**
|
|
1335
1337
|
* @public
|
|
1336
1338
|
*/
|
|
1337
|
-
type RegleFieldStatus<TState extends any = any, TRules extends RegleFormPropertyType<any, Partial<ExtendedRulesDeclarations>> = Record<string, any>, TShortcuts extends RegleShortcutDefinition = never> = Omit<RegleCommonStatus<TState, TRules>, '$value' | '$silentValue' | '$initialValue' | '$originalValue'> & {
|
|
1339
|
+
type RegleFieldStatus<TState extends any = any, TRules extends RegleFormPropertyType<any, Partial<ExtendedRulesDeclarations>> = Record<string, any>, TShortcuts extends RegleShortcutDefinition = never> = Omit<RegleCommonStatus<TState, TState, TRules>, '$value' | '$silentValue' | '$initialValue' | '$originalValue'> & {
|
|
1338
1340
|
/** A reference to the original validated model. It can be used to bind your form with v-model.*/$value: MaybeOutput<UnwrapNestedRefs<TState>>; /** $value variant that will not "touch" the field and update the value silently, running only the rules, so you can easily swap values without impacting user interaction. */
|
|
1339
1341
|
$silentValue: MaybeOutput<UnwrapNestedRefs<TState>>;
|
|
1340
1342
|
/**
|
|
@@ -1406,7 +1408,7 @@ interface $InternalRegleFieldStatus extends $InternalRegleCommonStatus {
|
|
|
1406
1408
|
/**
|
|
1407
1409
|
* @public
|
|
1408
1410
|
*/
|
|
1409
|
-
interface RegleCommonStatus<
|
|
1411
|
+
interface RegleCommonStatus<TInput = any, TOutput = TInput, TRules extends Record<string, any> = Record<string, any>> extends StandardSchemaV1<TInput, HasNamedKeys<TRules> extends true ? InferOutput<TRules, TInput> : MaybeOrPartial<TInput>> {
|
|
1410
1412
|
/** Indicates whether the field is invalid. It becomes true if any associated rules return false. */
|
|
1411
1413
|
readonly $invalid: boolean;
|
|
1412
1414
|
/**
|
|
@@ -1442,20 +1444,22 @@ interface RegleCommonStatus<TValue = any, TRules extends Record<string, any> = R
|
|
|
1442
1444
|
/** Id used to track collections items */
|
|
1443
1445
|
$id?: string;
|
|
1444
1446
|
/** A reference to the original validated model. It can be used to bind your form with v-model.*/
|
|
1445
|
-
$value: JoinDiscriminatedUnions<UnwrapNestedRefs<
|
|
1447
|
+
$value: JoinDiscriminatedUnions<UnwrapNestedRefs<TInput>>;
|
|
1448
|
+
/** The output value of the field. */
|
|
1449
|
+
readonly $output: JoinDiscriminatedUnions<UnwrapNestedRefs<TOutput>>;
|
|
1446
1450
|
/**
|
|
1447
1451
|
* `$value` variant that will not "touch" the field and update the value silently, running only the rules, so you can easily swap values without impacting user interaction.
|
|
1448
1452
|
* */
|
|
1449
|
-
$silentValue: JoinDiscriminatedUnions<UnwrapNestedRefs<
|
|
1453
|
+
$silentValue: JoinDiscriminatedUnions<UnwrapNestedRefs<TInput>>;
|
|
1450
1454
|
/**
|
|
1451
1455
|
* This value reflect the current initial value of the field.
|
|
1452
1456
|
* The initial value is different than the original value as the initial value can be mutated when using `$reset`.
|
|
1453
1457
|
*/
|
|
1454
|
-
readonly $initialValue: JoinDiscriminatedUnions<UnwrapNestedRefs<
|
|
1458
|
+
readonly $initialValue: JoinDiscriminatedUnions<UnwrapNestedRefs<TInput>>;
|
|
1455
1459
|
/**
|
|
1456
1460
|
* This value reflect the original value of the field at original call. This can't be mutated
|
|
1457
1461
|
*/
|
|
1458
|
-
readonly $originalValue: JoinDiscriminatedUnions<UnwrapNestedRefs<
|
|
1462
|
+
readonly $originalValue: JoinDiscriminatedUnions<UnwrapNestedRefs<TInput>>;
|
|
1459
1463
|
/**
|
|
1460
1464
|
* Validates the field synchronously without waiting for async rules.
|
|
1461
1465
|
*
|
|
@@ -1499,7 +1503,7 @@ interface RegleCommonStatus<TValue = any, TRules extends Record<string, any> = R
|
|
|
1499
1503
|
* Rerun rules if `$lazy` is false
|
|
1500
1504
|
*/
|
|
1501
1505
|
$reset(): void;
|
|
1502
|
-
$reset(options?: ResetOptions<
|
|
1506
|
+
$reset(options?: ResetOptions<TInput>): void;
|
|
1503
1507
|
/** Clears the $externalErrors state back to an empty object. */
|
|
1504
1508
|
$clearExternalErrors(): void;
|
|
1505
1509
|
}
|
|
@@ -1582,7 +1586,7 @@ interface $InternalRegleRuleStatus {
|
|
|
1582
1586
|
/**
|
|
1583
1587
|
* @public
|
|
1584
1588
|
*/
|
|
1585
|
-
type RegleCollectionStatus<TState extends any[] = any[], TRules extends ReglePartialRuleTree<Record<string, any>> = Record<string, any>, TFieldRule extends RegleCollectionRuleDecl<any, any> = never, TShortcuts extends RegleShortcutDefinition = {}> = Omit<RegleCommonStatus<TState, TRules>, '$value'> & {
|
|
1589
|
+
type RegleCollectionStatus<TState extends any[] = any[], TRules extends ReglePartialRuleTree<Record<string, any>> = Record<string, any>, TFieldRule extends RegleCollectionRuleDecl<any, any> = never, TShortcuts extends RegleShortcutDefinition = {}> = Omit<RegleCommonStatus<TState, TState, TRules>, '$value'> & {
|
|
1586
1590
|
/** A reference to the original validated model. It can be used to bind your form with v-model.*/$value: MaybeOutput<TState>; /** $value variant that will not "touch" the field and update the value silently, running only the rules, so you can easily swap values without impacting user interaction. */
|
|
1587
1591
|
$silentValue: MaybeOutput<TState>; /** Collection of status of every item in your collection. Each item will be a field you can access, or map on it to display your elements. */
|
|
1588
1592
|
readonly $each: InferRegleStatusType<NonNullable<TRules>, NonNullable<TState>, number, TShortcuts, IsUnion<TRules>, UnionToTuple<TRules>>[]; /** Represents the status of the collection itself. You can have validation rules on the array like minLength, this field represents the isolated status of the collection. */
|
package/dist/regle-core.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @regle/core v1.
|
|
2
|
+
* @regle/core v1.25.0
|
|
3
3
|
* (c) 2026 Victor Garcia
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { computed, effectScope, getCurrentInstance, getCurrentScope, inject, isRef, markRaw, nextTick, onMounted, onScopeDispose, reactive, ref, shallowRef, toRef, toValue, triggerRef, unref, version, watch, watchEffect } from "vue";
|
|
7
|
+
import { computed, effectScope, getCurrentInstance, getCurrentScope, inject, isRef, markRaw, nextTick, onMounted, onScopeDispose, reactive, readonly, ref, shallowRef, toRef, toValue, triggerRef, unref, version, watch, watchEffect } from "vue";
|
|
8
8
|
import { setupDevtoolsPlugin } from "@vue/devtools-api";
|
|
9
9
|
/**
|
|
10
10
|
* Server side friendly way of checking for a File
|
|
@@ -1356,7 +1356,7 @@ function filterInspectorTree(nodes, filter) {
|
|
|
1356
1356
|
}
|
|
1357
1357
|
return filtered;
|
|
1358
1358
|
}
|
|
1359
|
-
var version$1 = "1.
|
|
1359
|
+
var version$1 = "1.25.0";
|
|
1360
1360
|
function createDevtools(app) {
|
|
1361
1361
|
setupDevtoolsPlugin({
|
|
1362
1362
|
id: "regle-devtools",
|
|
@@ -2402,6 +2402,7 @@ function createReactiveFieldStatus({ state, rulesDef, customMessages, path, cach
|
|
|
2402
2402
|
...restScope,
|
|
2403
2403
|
$externalErrors: externalErrors,
|
|
2404
2404
|
$value: state,
|
|
2405
|
+
$output: state,
|
|
2405
2406
|
$initialValue: initialState,
|
|
2406
2407
|
$originalValue: originalState,
|
|
2407
2408
|
$rules,
|
|
@@ -2783,6 +2784,7 @@ function createReactiveCollectionStatus({ state, rulesDef, customMessages, path,
|
|
|
2783
2784
|
$each: $eachStatus,
|
|
2784
2785
|
$self: $selfStatus,
|
|
2785
2786
|
$value: state,
|
|
2787
|
+
$output: state,
|
|
2786
2788
|
$edited,
|
|
2787
2789
|
$anyEdited,
|
|
2788
2790
|
$issues
|
|
@@ -2939,6 +2941,7 @@ function createReactiveCollectionStatus({ state, rulesDef, customMessages, path,
|
|
|
2939
2941
|
$path: path,
|
|
2940
2942
|
$each: $eachStatus,
|
|
2941
2943
|
$value: state,
|
|
2944
|
+
$output: state,
|
|
2942
2945
|
$initialValue: initialState,
|
|
2943
2946
|
$originalValue: originalState,
|
|
2944
2947
|
$validate,
|
|
@@ -3115,6 +3118,7 @@ function createReactiveNestedStatus({ rulesDef, state, path = "", cachePath, roo
|
|
|
3115
3118
|
if (scopeState.$autoDirty.value && !scopeState.$silent.value) $touch(false, true);
|
|
3116
3119
|
}
|
|
3117
3120
|
});
|
|
3121
|
+
const $output = readonly($value);
|
|
3118
3122
|
const $silentValue = computed({
|
|
3119
3123
|
get: () => state.value,
|
|
3120
3124
|
set(value) {
|
|
@@ -3258,6 +3262,7 @@ function createReactiveNestedStatus({ rulesDef, state, path = "", cachePath, roo
|
|
|
3258
3262
|
$dirty,
|
|
3259
3263
|
$path: path,
|
|
3260
3264
|
$value: state,
|
|
3265
|
+
$output: state,
|
|
3261
3266
|
$silentValue,
|
|
3262
3267
|
$error,
|
|
3263
3268
|
$originalValue: originalState,
|
|
@@ -3327,6 +3332,7 @@ function createReactiveNestedStatus({ rulesDef, state, path = "", cachePath, roo
|
|
|
3327
3332
|
$autoDirty,
|
|
3328
3333
|
$silent,
|
|
3329
3334
|
$value,
|
|
3335
|
+
$output,
|
|
3330
3336
|
$modifiers
|
|
3331
3337
|
};
|
|
3332
3338
|
});
|
|
@@ -4315,6 +4321,7 @@ function mergeRegles(regles, _scoped) {
|
|
|
4315
4321
|
$silentErrors,
|
|
4316
4322
|
$instances,
|
|
4317
4323
|
$value,
|
|
4324
|
+
$output: $value,
|
|
4318
4325
|
$dirty,
|
|
4319
4326
|
$anyDirty,
|
|
4320
4327
|
$invalid,
|
package/dist/regle-core.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @regle/core v1.
|
|
2
|
+
* @regle/core v1.25.0
|
|
3
3
|
* (c) 2026 Victor Garcia
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import{computed as e,effectScope as t,getCurrentInstance as n,getCurrentScope as r,inject as i,isRef as a,markRaw as o,nextTick as s,onMounted as c,onScopeDispose as l,reactive as u,ref as d,shallowRef as f,toRef as p,toValue as m,triggerRef as h,unref as g,version as _,watch as v,watchEffect as y}from"vue";function b(e){return e?.constructor?.name==`File`}function x(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function S(e,t,n){if(!e)return n;var r,i;if(Array.isArray(t)&&(r=t.slice(0)),typeof t==`string`&&(r=t.split(`.`)),typeof t==`symbol`&&(r=[t]),!Array.isArray(r))throw Error(`props arg must be an array, a string or a symbol`);for(;r.length;)if(i=r.shift(),!e||!i||(e=e[i],e===void 0))return n;return e}function C(e,...t){for(var n=[].slice.call(arguments),r,i=n.length;r=n[i-1],i--;)if(!r||typeof r!=`object`&&typeof r!=`function`)throw Error(`expected object, got `+r);for(var a=n[0],o=n.slice(1),s=o.length,i=0;i<s;i++){var c=o[i];for(var l in c)a[l]=c[l]}return a}function w(e){let t={};for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n],i=n.split(`.`),a=t;for(let e=0;e<i.length;e++){let t=i[e],n=e===i.length-1,o=t.match(/^\d+$/)?Number(t):null;if(o!==null){if(Array.isArray(a))if(n)a[o]=r;else{if(typeof a[o]!=`object`||a[o]===null){let t=i[e+1];a[o]=t&&t.match(/^\d+$/)?{$each:[],$self:[]}:{}}a=`$each`in a[o]?a[o].$each:a[o]}}else if(n)if(Array.isArray(a[t])){let e=a[t].slice();a[t]={},a[t].$self=e}else typeof a[t]==`object`&&a[t]!==null&&`$each`in a[t]?a[t].$self=r:a[t]=r;else{let n=i[e+1];if(Array.isArray(a[t])){let e=a[t].slice();a[t]={$each:[]},a[t].$self=e}(typeof a[t]!=`object`||a[t]===null||Array.isArray(a[t])&&!n.match(/^\d+$/))&&(n&&n.match(/^\d+$/)?a[t]={$each:[],$self:[]}:a[t]={}),a=`$each`in a[t]?a[t].$each:a[t]}}}return t}function T(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function E(e,t,n,r=!1){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})}function D(e){return typeof e==`function`&&!!e.prototype&&`constructor`in e.prototype&&e.prototype.constructor===e}function O(e,t=!0,n=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):b(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:x(e)?e==null?!0:n?Object.keys(e).length===0:!1:!String(e).length}const k=Symbol(`regle-rule`);function A(e){let t=[];return e.global&&t.push(`g`),e.ignoreCase&&t.push(`i`),e.multiline&&t.push(`m`),e.sticky&&t.push(`y`),e.unicode&&t.push(`u`),t.join(``)}function j(e,t=0){if(t>20)return e;let n=e,r={}.toString.call(e).slice(8,-1);if(r==`Set`&&(n=new Set([...e].map(e=>j(e,t++)))),r==`Map`&&(n=new Map([...e].map(e=>[j(e[0]),j(e[1])]))),r==`Date`&&(n=new Date(e.getTime())),r==`RegExp`&&(n=RegExp(e.source,A(e))),r==`Array`||r==`Object`){n=Array.isArray(e)?[]:{};for(let r in e)n[r]=j(e[r],t++)}return n}function M(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e==`object`&&t===`[object Date]`?new Date(e.getTime()):typeof e==`number`||t===`[object Number]`||typeof e==`string`||t===`[object String]`?new Date(e):new Date(NaN)}function N(e,t,{immediate:n=!1,trackDebounceRef:r}={}){let i,a=(...a)=>{r&&(r.value=!0);function o(){r&&(r.value=!1)}return new Promise((r,s)=>{function c(e){r(e),o()}if(clearTimeout(i),i=setTimeout(()=>{if(o(),i=void 0,!n)try{Promise.resolve(e.apply(this,[...a])).then(c).catch(e=>s(e)).finally(o)}catch(e){s(e)}},t),n){o();try{Promise.resolve(e.apply(this,[...a])).then(c).catch(e=>s(e)).finally(o)}catch(e){s(e)}}})};return a.cancel=()=>{clearTimeout(i),i=void 0,r&&(r.value=!1)},a}function P(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(!P(e[a],t[a],n,!1))return!1}return!0}if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(o=Object.keys(e),i=o.length,i!==Object.keys(t).length)return!1;for(a=i;a--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[a]))return!1;for(a=i;a--!==0;){var s=o[a];if(x(e)&&x(t)&&s&&(r||!r&&n)&&!P(e[s],t[s],n,!1))return!1}return!0}return e!==e&&t!==t}var F=class extends Error{constructor(e=`Promise was aborted`){super(e),this.name=`AbortError`}};function I(e){let t=new AbortController,{signal:n}=t,r=new Promise((t,r)=>{function i(){r(new F)}n.addEventListener(`abort`,i),e.then(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new F):t(e)}).catch(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new F):r(e)})});function i(e){t.abort(e)}return{promise:r,abort:i,signal:n}}function L(e,t,r){if(!a(e))return r?.(),u(e);let i=d(!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 g(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 R={Inline:`__inline`,Async:`__async`};function z(e){try{return e.map(e=>m(e))}catch{return[]}}function B(t){return t.map(t=>t instanceof Function?e(t):a(t)?t:p(()=>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===R.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:k})}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 ee(e){return typeof e==`object`&&!!e&&W in e}function G(e){return x(e.value)}function te(e,n,r){let i=t(),a;return a=e instanceof Function?i.run(()=>e(n,r??0)):e,{scope:i,unwrapped:a}}const K={LessThan:-1,EqualTo:0,GreaterThan:1};function q(e,t){let n=String(e).split(`.`),r=String(t).split(`.`);for(let e=0;e<Math.min(n.length,r.length);e++){let t=Number(n[e]),i=Number(r[e]);if(t>i)return K.GreaterThan;if(i>t)return K.LessThan;if(!isNaN(t)&&isNaN(i))return K.GreaterThan;if(isNaN(t)&&!isNaN(i))return K.LessThan}return K.EqualTo}const J=q(_,`3.5.0`)!==-1;function ne(){return Math.floor(Math.random()*Date.now()).toString()}function Y(){return typeof window>`u`?ne():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function re(e){return r()?(l(e),!0):!1}function ie(e){let n=!1,r,i=t(!0);return((...t)=>(n||=(r=i.run(()=>e(...t)),!0),r))}function ae(e,t){return e.some(e=>t?e?.[t]:!1)}function oe(e,t){return t?e.reduce((e,n)=>{let r=n?.[t]||[];return e.concat(r)},[]):[]}const se=Symbol(`regle`),X=Symbol(`regle-config`),Z={REGLE_STATIC:`__regle_static`};function Q(e,t){return!de(e.value)&&(G(e)||x(t.value)&&!O(t.value)&&!Object.entries(t.value).some(([e,t])=>$(t)||typeof t==`function`))}function ce(e,t){return!!e.value&&x(e.value)&&`$each`in e.value||Array.isArray(t.value)}function le(e){return!!e.value&&(x(e.value)||G(e.value))}function $(e){return(x(e)||typeof e==`function`)&&`_validator`in e}function ue(e){return typeof e.value==`function`?`_validator`in e.value:!0}function de(e){return x(e)&&T(e,Z.REGLE_STATIC)&&e[Z.REGLE_STATIC]===!0}function fe(e){return x(e)&&`$fields`in e}function pe(e){return!!e&&`$rules`in e}var me=`1.24.3`;function he(){let e=f(new Map),t=f(new Map),n=f(new Map),i=f(new Map),a=f(new Map),o=f(new Map),s=f(new Map);function c(e){let n=t.value.get(e);if(n)return n;{let n=d({});return t.value.set(e,n),n}}function u(e){let t=n.value.get(e);if(t)return t;{let t=d([]);return n.value.set(e,t),t}}function p(e,t){o.value.set(e,t)}function m(e){return o.value.get(e)}function h(e,t,n){s.value.set(`${e}-${t}`,n)}function g(e,t){return s.value.get(`${e}-${t}`)}function _(e,t){e&&t!=null&&s.value.delete(`${e}-${t}`)}function v(e,t){i.value.set(e,t)}function y(e){return i.value.get(e)??!1}function b(t,n){e.value.set(t,n)}function x(t,n){let r=e.value.get(t);if(r)return S(n,r)?{valid:!0}:{valid:!1}}function S(e,t){let n=Object.keys(t),r=Object.keys(e);return r.length!==n.length||!r.every(e=>n.includes(e))?!1:r.every(n=>{let r=e[n],i=t[n];if(!i||!r||typeof r==`function`||typeof i==`function`||typeof r==`number`||typeof r==`boolean`||typeof r==`string`)return!1;if(`_params`in r){if(!r._params)return!0;if(Array.isArray(r._params))return r._params?.every((e,t)=>{if(typeof i==`number`||typeof i==`boolean`||typeof i==`string`)return!0;{let e=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=d(!1),n=d(!0),r=d({}),i=d(!1);return a.value.set(e,{$pending:t,$valid:n,$metadata:r,$validating:i}),{$pending:t,$valid:n,$metadata:r,$validating:i}}}return r()&&l(()=>{e.value.clear(),t.value.clear(),n.value.clear(),i.value.clear(),a.value.clear(),s.value.clear()}),{addRuleDeclEntry:b,setDirtyEntry:v,checkRuleDeclEntry:x,getDirtyState:y,trySetRuleStatusRef:C,getFieldsEntry:c,getCollectionsEntry:u,getArrayStatus:g,addArrayStatus:h,deleteArrayStatus:_,arrayStatusStorage:s,addAdditionalRulesEntry:p,getAdditionalRulesEntry:m}}function ge({field:e,silent:t=!1}){let n=Object.entries(e.$rules??{}).map(([n,r])=>{let i=``;if(t&&!r.$valid)i=r.$message;else if(!r.$valid&&e.$error&&!r.$validating)i=r.$message;else return null;return{$message:i,$property:e.fieldName,$rule:n,$type:r.$type,...typeof r.$metadata==`object`?r.$metadata:{}}}).filter(e=>!!e).reduce((e,t)=>(typeof t.$message==`string`?e.push(t):e.push(...t.$message.map(e=>({...t,$message:e}))),e),[]),r=e.$error&&e.$externalErrors&&Array.isArray(e.$externalErrors)?e.$externalErrors.map(t=>({$message:t,$property:e.fieldName,$rule:`external`,$type:void 0})):[],i=[];return e.$schemaErrors&&e.$error&&(i=!Array.isArray(e.$schemaErrors)&&`$self`in e.$schemaErrors?e.$schemaErrors.$self??[]:e.$schemaErrors??[]),[...n,...r,...i]}function _e({field:e}){let t=[];for(let n of Object.values(e.$rules??{})){let e=n.$tooltip;e&&(typeof e==`string`?t.push(e):t.push(...e))}return t}function ve(e){return x(e)&&`$each`in e}function ye(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!x(e)))return e;if(ve(e)){let t=n?e.$self?.map(e=>({message:e,path:[]}))??[]:e.$self??[],r=e.$each?.map(e=>be(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>be(t,n,[e])).flat()}function be(e,t=!1,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(e=>!x(e)))return t?e.map(e=>({message:e,path:r??[]})):e;if(ve(e)){let n=r?.length?e.$self?.map(e=>({message:e,path:r??[]}))??[]:e.$self??[],i=e.$each?.map((e,n)=>be(e,t,r?.concat(n)))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>be(n,t,r?.concat(e))).flat()}function xe({customMessages:n,rule:r,ruleKey:i,state:a,path:o,cachePath:s,storage:c,modifiers:l}){let f=t(),p={},m,h=e(()=>$(r.value)&&r.value._async),g=d(!1),{$pending:_,$valid:y,$metadata:b,$validating:x}=c.trySetRuleStatusRef(`${s}.${i}`);function S(){f=t(),p=f.run(()=>{let t=d(!1),s=d(!1),c=d(!0),l=d(!1),u=d(!1),f=e(()=>({$value:a.value,$error:s.value,$dirty:t.value,$pending:l.value,$correct:u.value,$invalid:c.value,$rule:{$valid:y.value,$invalid:!y.value,$pending:_.value},$params:S.value,...b.value})),p=e(()=>{try{return ue(r)?typeof r.value.active==`function`?r.value.active(f.value):!!r.value.active:!0}catch(e){return console.error(`Error in "active" function for "${o}.${i}" rule`,{cause:e}),!0}});function m(e){try{let t=``,a=n?n[i]?.[e]:void 0;if(a&&(t=typeof a==`function`?a(f.value):a),ue(r)){let n=`_${e}_patched`;a&&!r.value[n]||(t=typeof r.value[e]==`function`?r.value[e](f.value):r.value[e]??``)}return t}catch(t){return console.error(`Error in "${e}" function for "${o}.${i}" rule`,{cause:t}),``}}let h=e(()=>{let e=m(`message`);return O(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),v=e(()=>ue(r)&&r.value.type?r.value.type:i),x=e(()=>ue(r)?r.value.validator:r.value),S=e(()=>typeof r.value==`function`?[]:z(r.value._params??[]));return{$active:p,$message:h,$type:v,$validator:x,$params:S,$path:e(()=>`${o}.${i}`),$tooltip:g,$fieldCorrect:u,$fieldError:s,$fieldDirty:t,$fieldPending:l,$fieldInvalid:c}}),m=v(p?.$params,()=>{(!l.$silent.value||l.$rewardEarly.value&&p.$fieldError.value)&&E()},{deep:J?1:!0})}S();function C(){y.value=!0,p.$fieldDirty.value&&(_.value=!0)}async function w(){let e=!1;try{let t=p.$validator.value;if(typeof t!=`function`)return console.error(`${o}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let n=t(a.value,...p.$params.value),r=a.value;C();let i;if(i=n instanceof Promise?await n:n,a.value!==r)return!0;if(typeof i==`boolean`)e=i;else{let{$valid:t,...n}=i;e=t,b.value=n}}catch{e=!1}finally{_.value=!1}return e}function T(e,t=!0){if($(r.value)&&r.value._async)return!0;let n=e(a.value,...p.$params.value);if(n instanceof Promise)return!0;if(n!=null){if(typeof n==`boolean`)return n;{let{$valid:e,...t}=n;return b.value=t,e}}return!0}async function E(){try{x.value=!0;let e=!1;if(g.value=!0,$(r.value)&&r.value._async)e=await w();else{let t=p.$validator.value;e=T(t)}return y.value=e,e}catch{return!1}finally{x.value=!1,g.value=!1}}function D(){try{return x.value=!0,T(p.$validator.value)}catch{return!1}finally{x.value=!1}}function k(){y.value=!0,b.value={},_.value=!1,x.value=!1,S()}function A(){m(),f.stop(),f=t()}return u({...p,$pending:_,$valid:y,$metadata:b,$haveAsync:h,$maybePending:g,$validating:x,$parse:E,$parseSync:D,$unwatch:A,$watch:S,$reset:k})}function Se(e){return{"~standard":{version:1,vendor:`regle`,validate:async t=>{let{valid:n,data:r,errors:i}=await e(t,!0);return n?{value:r,issues:[]}:{issues:ye(i,{includePath:!0})}}}}}function Ce(e){return e===!0?`eager`:e===!1||e==null?!1:e}function we(e){return x(e)&&!de(e)?Object.values(e).some(e=>we(e)):Array.isArray(e)?e.some(e=>we(e)):!O(e)}function Te(e,t,n){return e===`eager`?!0:e===`non-empty`?we(n):e===`lazy-non-empty`?we(t):!1}function Ee(e,t,n,r=!1){return e===`eager`?!0:e===`non-empty`?r&&!O(n):e===`lazy-non-empty`?!O(t):!1}function De({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,fieldName:c,storage:l,options:f,externalErrors:h,schemaErrors:g,schemaMode:_,onUnwatch:b,$isArray:S,initialState:C,rootInitialState:w,originalState:T,shortcuts:E,overrides:D,onValidate:k}){let A=t(),F,L=[],R,z,B,V,H=()=>{},U,W=()=>{},ee=d(!1),G=d(l.getAdditionalRulesEntry(o)??{});function te(e){G.value=e??{},l.addAdditionalRulesEntry(o,e??{}),q(),H()}function K(e){te(e)}function q(){let e={...r.value,...G.value},t=[];for(let r in e){if(r.startsWith(`$`)||r.startsWith(`~`))continue;let s=e[r];if(!s)continue;let c=p(()=>s);t.push([r,xe({modifiers:{$silent:F.$silent,$rewardEarly:F.$rewardEarly},customMessages:i,rule:c,ruleKey:r,state:n,path:a,cachePath:o,storage:l,$debounce:Q.value.$debounce})])}Z.value=Object.fromEntries(t),l.addRuleDeclEntry(o,e)}function ne(){let e={...r.value,...G.value},t=l.checkRuleDeclEntry(o,e),n={};for(let t in e)t.startsWith(`$`)&&(n[t]=e[t]);return Q.value=n,t}function Y(){let e=ne();oe(),q(),F.processShortcuts(),re(),ie(),e?.valid!=null&&(F.$dirty.value=l.getDirtyState(o),(F.$dirty.value&&!F.$silent.value||F.$rewardEarly.value&&F.$error.value)&&H()),l.addRuleDeclEntry(o,r.value)}function re(){H=F.$debounce.value>0?N(X,F.$debounce.value,{trackDebounceRef:ee}):X}function ie(){W=F.$debounce.value>0?N(()=>{F.$dirty.value=!0},F.$debounce.value):()=>{F.$dirty.value=!0}}function ae(){if(Z.value)for(let e of Object.values(Z.value))e.$unwatch();z(),V?.(),F.$dirty.value&&l.setDirtyEntry(o,F.$dirty.value),R?.(),A.stop(),A=t();for(let e of L)e.stop();L=[],b?.(),B?.()}function oe(){if(Z.value)for(let e of Object.values(Z.value))e.$watch();F=A.run(()=>{let r=d(!1),i=d(!1),a=e(()=>r.value),o=e(()=>S||de(n.value)),s=e(()=>Q.value.$debounce==null?F.$haveAnyAsyncRule.value?200:0:Q.value.$debounce),l=e(()=>Q.value.$deepCompare==null?!1:Q.value.$deepCompare),p=e(()=>Q.value.$lazy==null?m(f.lazy)==null?!1:m(f.lazy)===!0:Q.value.$lazy),v=e(()=>Q.value.$immediateDirty==null?m(f.immediateDirty)==null?!1:Ce(m(f.immediateDirty)):Ce(Q.value.$immediateDirty)),b=e(()=>Q.value.$rewardEarly==null?m(f.rewardEarly)==null?!1:m(f.rewardEarly)===!0:!!Q.value.$rewardEarly),x=e(()=>Q.value.$clearExternalErrorsOnChange==null?m(f.clearExternalErrorsOnChange)==null?!T.value:m(f.clearExternalErrorsOnChange)===!0:!!Q.value.$clearExternalErrorsOnChange),w=e(()=>Q.value.$clearExternalErrorsOnValidate==null?m(f.clearExternalErrorsOnValidate)==null?!1:m(f.clearExternalErrorsOnValidate)===!0:!!Q.value.$clearExternalErrorsOnValidate),T=e(()=>b.value?!0:Q.value.$silent==null?m(f.silent)==null?!1:m(f.silent)===!0:Q.value.$silent),k=e(()=>Q.value.$autoDirty==null?m(f.autoDirty)==null?!0:m(f.autoDirty)===!0:Q.value.$autoDirty),A=e(()=>{if(Q.value.$isEdited!=null)return Q.value.$isEdited;if(D?.isEdited!=null)return D.isEdited}),j=e(()=>{for(let e of Object.values(Z.value))if(e.$validating)return!0;return!1}),N=e({get:()=>n.value,set(e){R(),n.value=e,se()}}),I=e(()=>ee.value?J.value&&r.value:J.value&&!q.value&&r.value),z=e(()=>ge({field:{$rules:Z.value,$error:I.value,$externalErrors:h?.value,$schemaErrors:g?.value,fieldName:ne.value}})),B=e(()=>ge({field:{$rules:Z.value,$error:I.value,$externalErrors:h?.value,$schemaErrors:g?.value,fieldName:ne.value},silent:!0})),V=e(()=>z.value.map(e=>e.$message)),H=e(()=>B.value.map(e=>e.$message)),U=d(!1);function W(e,t){return t instanceof Date&&e instanceof Date?M(t).getTime()!==M(e).getTime():t==null?e!=null&&e!==``:Array.isArray(e)&&Array.isArray(t)?!P(e,t,Q.value.$deepCompare):t!==e}y(()=>{r.value?A.value?U.value=A.value(n.value,C.value,W):U.value=W(n.value,C.value):U.value=!1});let G=e(()=>U.value),te=e(()=>_e({field:{$rules:Z.value}})),K=e(()=>!(J.value||q.value)),q=e(()=>i.value||!b.value?Object.entries(Z.value).some(([e,t])=>t.$pending):!1),J=e(()=>h?.value?.length||g?.value?.length?!0:Y.value?!1:Object.values(Z.value).some(e=>!e.$valid||e.$maybePending)),ne=e(()=>c??f.id??`root`),Y=e(()=>!_&&!Object.keys(Z.value).some(e=>!e.startsWith(`$`))),re=e(()=>{if(h?.value?.length||Y.value||ee.value)return!1;if(r.value&&!O(n.value)&&!j.value&&!q.value){if(_)return!g?.value?.length;{let e=Object.values(Z.value);for(let t of e)if(t.$active&&!t.$valid)return!1;return e.some(e=>e.$active)}}return!1}),ie=e(()=>Object.values(Z.value).some(e=>e.$haveAsync)),ae=e(()=>({$debounce:s.value,$lazy:p.value,$rewardEarly:b.value,$autoDirty:k.value,$silent:T.value,$clearExternalErrorsOnChange:x.value,$clearExternalErrorsOnValidate:w.value,$immediateDirty:v.value,$isEdited:A.value,$disabled:m(f.disabled)??!1}));function oe(){E?.fields&&Object.entries(E.fields).forEach(([e,i])=>{let o=t();X[e]=o.run(()=>{let e=d();return y(()=>{e.value=i(u({$dirty:r,$externalErrors:h?.value??[],$value:n,$silentValue:N,$rules:Z,$error:I,$pending:q,$invalid:J,$correct:re,$errors:V,$ready:K,$silentErrors:H,$anyDirty:a,$tooltips:te,$name:ne,$inactive:Y,$edited:U,$anyEdited:G}))}),e}),L.push(o)})}let X={};return{$error:I,$pending:q,$invalid:J,$correct:re,$debounce:s,$deepCompare:l,$lazy:p,$immediateDirty:v,$ready:K,$issues:z,$silentIssues:B,$errors:V,$silentErrors:H,$rewardEarly:b,$autoDirty:k,$silent:T,$clearExternalErrorsOnChange:x,$clearExternalErrorsOnValidate:w,$anyDirty:a,$edited:U,$anyEdited:G,$name:ne,$haveAnyAsyncRule:ie,$shortcuts:X,$validating:j,$tooltips:te,$dirty:r,processShortcuts:oe,$silentValue:N,$inactive:Y,$modifiers:ae,$isArrayOrRegleStatic:o}}),se(),z=v(F.$dirty,e=>{l.setDirtyEntry(o,e),Object.values(Z.value).forEach(t=>{t.$fieldDirty=e})}),V=v([F.$error,F.$correct,F.$invalid,F.$pending],()=>{Object.values(Z.value).forEach(e=>{e.$fieldError=F.$error.value,e.$fieldInvalid=F.$invalid.value,e.$fieldPending=F.$pending.value,e.$fieldCorrect=F.$correct.value})}),B=v(F.$haveAnyAsyncRule,re)}function se(){R=v(n,()=>{F.$autoDirty.value&&!F.$silent.value&&(F.$dirty.value||W()),r.value instanceof Function&&Y(),(!F.$silent.value||F.$rewardEarly.value&&F.$error.value)&&H(),F.$clearExternalErrorsOnChange.value&&we()},{deep:F.$isArrayOrRegleStatic.value?!0:J?1:!0})}async function X(){try{let{promise:e}=ue(Promise.allSettled(Object.values(Z.value).map(e=>e.$parse())));await e}catch{}}let Z=d({}),Q=d({});Y();function ce(){Ee(F.$immediateDirty.value,C.value,w?.value??C.value,a===``)&&(F.$dirty.value=!0)}function le(e,t){if($(),we(),F.$dirty.value=!1,l.setDirtyEntry(o,!1),!t)if(e?.toOriginalState)n.value=j(T),C.value=j(T);else if(e?.toInitialState)n.value=j(C.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,C.value=j(t),n.value=j(t)}else C.value=x(n.value)&&!de(n.value)?j(n.value):Array.isArray(n.value)?[...n.value]:n.value;if(e?.clearExternalErrors&&we(),!t&&!e?.keepValidationState)for(let e of Object.values(Z.value))e.$reset();if(!F.$lazy.value&&!F.$silent.value&&!t)for(let e of Object.values(Z.value))e.$parse();ce()}function $(){`cancel`in H&&H.cancel()}function ue(e){return U&&U.abort(),U=I(e),U}function fe(){$(),U&&U.abort()}function pe(e=!0,t=!1){F.$dirty.value||W(),t&&e?(!F.$silent.value||F.$rewardEarly.value&&F.$error.value)&&($(),H()):e&&($(),H())}async function me(e){return e&&(n.value=e),await s(),he()}async function he(e){try{if(e&&(n.value=e),_)return k?(pe(!1),k()):{valid:!1,data:n.value,errors:F.$errors.value,issues:F.$issues.value};let t=n.value;if(F.$autoDirty.value&&!F.$silent.value&&F.$dirty.value&&!F.$validating.value&&!F.$pending.value&&!ee.value&&!O(Z.value))return{valid:!F.$invalid.value,data:t,errors:F.$errors.value,issues:F.$issues.value};if(F.$dirty.value||(F.$dirty.value=!0),O(Z.value))return{valid:!0,data:t,errors:F.$errors.value,issues:F.$issues.value};fe();let{promise:r}=ue(Promise.allSettled(Object.values(Z.value).map(e=>e.$parse()))),i=await r;return await s(),{valid:i.every(e=>e.status===`fulfilled`&&e.value===!0),data:t,errors:F.$errors.value,issues:F.$issues.value}}catch{return{valid:!1,data:n.value,errors:F.$errors.value,issues:F.$issues.value}}}function ve(e){try{return e&&(n.value=e),F.$dirty.value||(F.$dirty.value=!0),_?!1:Object.values(Z.value).map(e=>e.$parseSync()).every(e=>!!e)}catch{return!1}}function ye(e=!0){return F.$dirty.value?n.value:e?{_null:!0}:null}function be(e){h&&(h.value=e)}function we(){h?.value?.length&&(h.value=[])}!F.$lazy.value&&!F.$dirty.value&&!F.$silent.value&&X(),ce();let{$shortcuts:Te,$validating:De,$autoDirty:Oe,$rewardEarly:ke,$clearExternalErrorsOnChange:Ae,$clearExternalErrorsOnValidate:je,$haveAnyAsyncRule:Me,$debounce:Ne,$lazy:Pe,...Fe}=F,Ie=u({...Fe,$externalErrors:h,$value:n,$initialValue:C,$originalValue:T,$rules:Z,...Te,$path:a,$isDebouncing:ee,$reset:le,$touch:pe,$validate:me,$validateSync:ve,$validateWithoutRaceconditions:he,$unwatch:ae,$watch:oe,$extractDirtyFields:ye,$clearExternalErrors:we,$abort:fe,$addRules:te,addRules:K,$schemaMode:_,"~modifiers":F.$modifiers,$setExternalErrors:be,...Se(me)});return Object.defineProperty(Ie,Symbol.for(`regle:instance`),{value:!0}),Ie}function Oe({$id:t,path:n,cachePath:r,index:i,options:a,storage:o,stateValue:s,customMessages:c,rules:l,externalErrors:u,schemaErrors:f,initialState:m,originalState:h,shortcuts:g,fieldName:_,schemaMode:v,overrides:y,currentIndexes:b}){let S=s.value?.$id??l.$key??Y(),C=`${r}.${String(S)}`,w=d(i),T=`${n}.${i}`;typeof s.value==`object`&&s.value!=null&&(s.value.$id||Object.defineProperties(s.value,{$id:{value:S,enumerable:!1,configurable:!1,writable:!1}}));let E=p(u?.value??[],i),D=e(()=>f?.value?.[w.value]),O=je({index:i,state:s,rulesDef:p(()=>l),customMessages:c,path:T,cachePath:C,storage:o,options:a,externalErrors:E,schemaErrors:D,initialState:m,originalState:h,shortcuts:g,fieldName:_,schemaMode:v,overrides:y});return O&&(O.$id=s.value?.$id??String(S),b?.set(O.$id,w),o.addArrayStatus(t,O.$id,O)),s.value&&(!x(s.value)||de(s.value))&&v&&O?.$touch(),O}function ke({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,storage:s,options:c,externalErrors:l,schemaErrors:f,schemaMode:h,initialState:g,originalState:_,shortcuts:b,fieldName:x,overrides:S}){let C=t(),w,T=t(),E,D=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let k=d(),A=d(n.value),M=d({}),N,P,F=d({}),I=s.getCollectionsEntry(a),L=new Map;E=T.run(()=>({isPrimitiveArray:e(()=>n.value?.length?Array.isArray(n.value)&&n.value.length?n.value.every(e=>typeof e!=`object`):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(e=>$(e)||typeof e==`function`):!1:!1)})),R(),H();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=Y(),Object.defineProperties(n.value,{$id:{value:k.value,enumerable:!1,configurable:!1,writable:!1}})):n.value?.$id&&(k.value=n.value.$id)),A.value=F.value.$value,Array.isArray(n.value)&&(!E.isPrimitiveArray.value||h)?I.value=n.value.map((t,n)=>{let{scope:u,unwrapped:d}=te(r.value.$each,p(()=>t),n);u&&D.push(u);let m=p(g.value??[],n),v=p(l?.value??{},`$each`),y=e(()=>f?.value?.$each);return Oe({$id:k.value,path:a,cachePath:o,customMessages:i,rules:d??{},stateValue:p(()=>t),index:n,options:c,storage:s,externalErrors:v,schemaErrors:y,initialState:m,originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S,currentIndexes:L})||null}).filter(e=>!!e):(I.value=[],L.clear()),F.value=De({state:n,rulesDef:r,customMessages:i,path:a,cachePath:a,storage:s,options:c,externalErrors:p(l?.value??{},`$self`),schemaErrors:e(()=>f?.value?.$self),$isArray:!0,initialState:g,originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S})}function z(){if(Array.isArray(n.value)&&(!E.isPrimitiveArray.value||h)){let t=j(I.value),o=new Set;I.value=n.value.map((t,n)=>{let u=p(()=>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:d}=te(r.value.$each,u,n);t&&D.push(t);let m=p(l?.value??{},`$each`),v=e(()=>f?.value?.$each??[]),y=Oe({$id:k.value,path:a,cachePath:a,customMessages:i,rules:d??{},stateValue:u,index:n,options:c,storage:s,externalErrors:m,schemaErrors:v,initialState:p(g.value??[],n),originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S,currentIndexes:L});return y?(y.$id&&o.add(y.$id),y):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 B(){N=v(n,()=>{P?.(),n.value!=null&&!Object.hasOwn(n.value,`$id`)&&!k.value?R():z(),V()},{deep:J?1:!0,flush:`pre`}),V()}function V(){P=v(n,()=>{w.$autoDirty.value&&!w.$silent.value&&F.value.$touch(!1,!0)},{flush:`post`})}function H(){B(),C=t(),w=C.run(()=>{let r=e({get:()=>n.value,set(e){N?.(),P?.(),n.value=e,B()}}),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(()=>(h?F.value.$correct:O(F.value.$rules)?!0:F.value.$correct)&&(!I.value.length||I.value.every(e=>e.$correct||e.$anyDirty&&!e.$invalid))),f=e(()=>F.value.$error||I.value.some(e=>e.$error)),p=e(()=>!(s.value||v.value)),v=e(()=>F.value.$pending||I.value.some(e=>e.$pending)),C=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)})),k=e(()=>({$self:F.value.$silentErrors,$each:I.value.map(e=>e.$silentErrors)})),A=e(()=>M.value.$rewardEarly==null?m(c.rewardEarly)==null?!1:m(c.rewardEarly)===!0:M.value.$rewardEarly),j=e(()=>A.value?!0:M.value.$silent==null?m(c.silent)==null?!1:m(c.silent)===!0:M.value.$silent),L=e(()=>M.value.$autoDirty==null?m(c.autoDirty)==null?!0:m(c.autoDirty)===!0:M.value.$autoDirty),R=e(()=>M.value.$immediateDirty==null?m(c.immediateDirty)==null?!1:Ce(m(c.immediateDirty)):Ce(M.value.$immediateDirty)),z=e(()=>M.value.$clearExternalErrorsOnChange==null?m(c.clearExternalErrorsOnChange)==null?!0:m(c.clearExternalErrorsOnChange)===!0:M.value.$clearExternalErrorsOnChange),V=e(()=>M.value.$clearExternalErrorsOnValidate==null?m(c.clearExternalErrorsOnValidate)==null?!1:m(c.clearExternalErrorsOnValidate)===!0:M.value.$clearExternalErrorsOnValidate),H=e(()=>{if(M.value.$isEdited!=null)return M.value.$isEdited;if(S?.isEdited!=null)return S.isEdited}),U=e(()=>x??c.id??`root`),W=e(()=>({$deepCompare:M.value.$deepCompare??!1,$debounce:M.value.$debounce??0,$lazy:M.value.$lazy??!1,$rewardEarly:A.value,$autoDirty:L.value,$silent:j.value,$clearExternalErrorsOnChange:z.value,$clearExternalErrorsOnValidate:V.value,$immediateDirty:R.value,$isEdited:H.value,$disabled:m(c.disabled)??!1}));function ee(){b?.collections&&Object.entries(b?.collections).forEach(([e,c])=>{let m=t();G[e]=m.run(()=>{let e=d();return y(()=>{e.value=c(u({$dirty:i,$error:f,$path:a,$silentValue:r,$pending:v,$invalid:s,$correct:l,$errors:E,$silentErrors:k,$initialValue:g,$originalValue:_,$ready:p,$anyDirty:o,$name:U,$each:I,$self:F,$value:n,$edited:C,$anyEdited:w,$issues:T}))}),e}),D.push(m)})}let G={};return ee(),{$dirty:i,$anyDirty:o,$invalid:s,$correct:l,$error:f,$pending:v,$errors:E,$silentErrors:k,$ready:p,$name:U,$shortcuts:G,$silentValue:r,$edited:C,$anyEdited:w,$rewardEarly:A,$silent:j,$autoDirty:L,$issues:T,$modifiers:W}}),E.isPrimitiveArray.value&&r.value.$each&&console.warn(`${a} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`)}function U(){N?.(),F.value&&F.value.$unwatch(),I.value&&I.value.forEach(e=>{`$dirty`in e&&e.$unwatch()}),C.stop(),C=t(),T.stop(),T=t(!0),D.forEach(e=>e.stop()),D=[]}function W(e=!0,t=!1){F.value.$touch(e,t),I.value.forEach(n=>{n.$touch(e,t)})}function ee(e,t){if(U(),!t)if(e?.toOriginalState)n.value=j(_),g.value=j(_);else if(e?.toInitialState)n.value=j(g.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,g.value=j(t),n.value=j(t)}else g.value=j(n.value);e?.clearExternalErrors&&ie(),e?.keepValidationState||(F.value.$reset(e,t),I.value.forEach(t=>{t.$reset(e,!0)})),t||R()}function G(){F.value.$abort(),I.value.forEach(e=>{e.$abort()})}async function K(e){return e&&(n.value=e),q()}async function q(e){e&&(n.value=e);let t=n.value;try{return G(),{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:w.$errors.value,issues:w.$issues.value}}catch{return{valid:!1,data:t,errors:w.$errors.value,issues:w.$issues.value}}}function ne(e){e&&(n.value=e);try{return[F.value.$validateSync(e),...I.value.map(e=>e.$validateSync())].every(e=>!!e)}catch{return!1}}function re(e){l?.value&&(l.value=e)}function ie(){F.value.$clearExternalErrors(),I.value.forEach(e=>{e.$clearExternalErrors()})}function ae(e=!0){let t=I.value.map(t=>{if(fe(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>O(e))&&(t=[]),t}let{$shortcuts:oe,...se}=w;return u({$self:F,...se,...oe,$path:a,$each:I,$value:n,$initialValue:g,$originalValue:_,$validate:K,$validateSync:ne,$validateWithoutRaceconditions:q,$unwatch:U,$watch:H,$touch:W,$reset:ee,$abort:G,$extractDirtyFields:ae,$clearExternalErrors:ie,$setExternalErrors:re,"~modifiers":w.$modifiers,...Se(K)})}function Ae({rulesDef:n,state:r,path:i=``,cachePath:a,rootRules:o,externalErrors:c,schemaErrors:l,rootInitialState:f,rootSchemaErrors:h,validationGroups:_,initialState:b,originalState:S,fieldName:C,...w}){let T=t(),E,D=[],k=null,A=null,M=null,N=null,P=d(void 0);async function F(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=p(r.value??{},n),u=p(()=>o),d=p(c?.value??{},n),f=e(()=>l?.value?.[n]),m=p(b?.value??{},n);return t.push([n,je({state:s,rulesDef:u,path:i?`${i}.${n}`:n,cachePath:a?`${a}.${n}`:n,externalErrors:d,schemaErrors:f,initialState:m,originalState:S?.[n],fieldName:n,...w})]),t},[])),u=Object.fromEntries(Object.entries(m(c)??{}).filter(([e,t])=>!(e in n.value)&&!!t).map(([t])=>{let n=p(r.value??{},t),o=p(c?.value??{},t),s=e(()=>l?.value?.[t]),u=p(b?.value??{},t),d=i?`${i}.${t}`:t,f=a?`${a}.${t}`:t;return[t,je({state:n,rulesDef:e(()=>({})),path:d,cachePath:f,externalErrors:o,schemaErrors:s,initialState:u,originalState:S?.[t],fieldName:t,...w})]})),d=Object.fromEntries(Object.entries(m(l)??{}).map(([t])=>{let n=i?`${i}.${t}`:t,o=a?`${a}.${t}`:t,s=p(r.value??{},t),u=p(c?.value??{},t),d=e(()=>l?.value?.[t]),f=p(b?.value??{},t);return[t,je({state:s,rulesDef:e(()=>({})),path:n,cachePath:o,externalErrors:u,schemaErrors:d,initialState:f,originalState:S?.[t],fieldName:t,...w})]})),f=Object.fromEntries(Object.entries(r.value??{}).filter(([e])=>!(e in n.value)&&!(e in(u??{}))&&!(e in(d??{}))).map(([t])=>{let n=p(r.value??{},t),o=p(c?.value??{},t),s=e(()=>l?.value?.[t]),u=p(b?.value??{},t);return[t,je({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,cachePath:a?`${a}.${t}`:t,externalErrors:o,schemaErrors:s,initialState:u,originalState:S?.[t],fieldName:t,...w})]}));L.value={...s,...u,...d,...f},t&&B()}function I(){n.value.$self&&(P.value=De({state:r,rulesDef:e(()=>n.value.$self??{}),path:i,cachePath:a,externalErrors:d(void 0),schemaErrors:d(void 0),initialState:p(b?.value??{},`$self`),originalState:S?.$self,fieldName:`$self`,...w}))}let L=w.storage.getFieldsEntry(a);F(),I();function R(){c&&(M=v(c,()=>{V(),F()},{deep:!0}))}function z(){N=v(r,()=>{V(),F(),E.$autoDirty.value&&!E.$silent.value&&G(!1,!0)},{flush:`post`})}function B(){o&&(k?.(),k=v(o,()=>{V(),F()},{deep:!0,flush:`pre`}),R()),h&&(A?.(),A=v(()=>h.value?Object.keys(h.value).sort().join(`\0`):``,()=>{V(),F()},{flush:`post`})),z(),E=T.run(()=>{let a=e({get:()=>r.value,set(e){V(),r.value=e,F(),E.$autoDirty.value&&!E.$silent.value&&G(!1,!0)}}),o=e({get:()=>r.value,set(e){V(),r.value=e,F()}}),s=e(()=>{let e=L.value,t=Object.keys(e);if(!t.length)return!1;for(let n of t)if(!e[n]?.$dirty)return!1;return!0}),c=e(()=>{let e=L.value;for(let t in e)if(e[t]?.$anyDirty)return!0;return!1}),l=e(()=>{if(P.value?.$invalid)return!0;let e=L.value,t=Object.entries(e);if(!t.length)return!1;for(let[e,n]of t)if(n?.$invalid)return!0;return!1}),f=e(()=>{let e=Object.entries(L.value).reduce((e,[t,n])=>((!pe(n)||!n.$inactive)&&e.push([t,n]),e),[]),t=n.value.$self&&!O(n.value.$self);if(e.length||t){let t=P.value?.$correct??!0,n=!1;return n=w.schemaMode?e.every(([e,t])=>t.$correct):e.every(([e,t])=>pe(t)?`required`in t.$rules&&t.$rules.required.$active?t.$correct:!t.$invalid&&!t.$pending&&!t.$isDebouncing:t?.$correct),t&&n}return!1}),p=e(()=>{if(P.value?.$error)return!0;let e=L.value;if(!Object.keys(e).length)return!1;for(let t in e)if(e[t]?.$error)return!0;return!1}),h=e(()=>m(w.options.rewardEarly)==null?!1:m(w.options.rewardEarly)),v=e(()=>m(w.options.silent)==null?!!h.value:m(w.options.silent)===!0),x=e(()=>m(w.options.autoDirty)==null?!0:m(w.options.autoDirty)===!0),T=e(()=>m(w.options.immediateDirty)==null?!1:Ce(m(w.options.immediateDirty))),k=e(()=>m(w.options.lazy)==null?!1:m(w.options.lazy)===!0),A=e(()=>m(w.options.clearExternalErrorsOnChange)==null?!1:m(w.options.clearExternalErrorsOnChange)===!0),j=e(()=>m(w.options.clearExternalErrorsOnValidate)==null?!1:m(w.options.clearExternalErrorsOnValidate)===!0),M=e(()=>!(l.value||I.value)),N=d(!1),I=e(()=>{if(P.value?.$pending||N.value)return!0;let e=L.value;for(let t in e)if(e[t]?.$pending)return!0;return!1}),R=e(()=>{let e={...P.value&&{$self:P.value?.$issues??[]}};for(let t in L.value)e[t]=L.value[t]?.$issues;return e}),z=e(()=>{let e={...P.value&&{$self:P.value?.$errors??[]}};for(let t in L.value)e[t]=L.value[t]?.$errors;return e}),B=e(()=>{let e={...P.value&&{$self:P.value?.$silentErrors??[]}};for(let t in L.value)e[t]=L.value[t]?.$silentErrors;return e}),H=e(()=>{if(P.value?.$edited)return!0;if(!Object.keys(L.value).length)return!1;for(let e in L.value)if(!L.value[e]?.$edited)return!1;return!0}),U=e(()=>{if(P.value?.$anyEdited)return!0;for(let e in L.value)if(L.value[e]?.$anyEdited)return!0;return!1}),W=e(()=>C??w.options.id??`root`),ee=e(()=>({autoDirty:x.value,lazy:k.value,rewardEarly:h.value,silent:v.value,clearExternalErrorsOnChange:A.value,clearExternalErrorsOnValidate:j.value,immediateDirty:T.value,id:m(w.options.id),disabled:m(w.options.disabled)}));function te(){w.shortcuts?.nested&&Object.entries(w.shortcuts.nested).forEach(([e,n])=>{let a=t();q[e]=a.run(()=>{let e=d();return y(()=>{e.value=n(u({$dirty:s,$path:i,$value:r,$silentValue:o,$error:p,$originalValue:S,$pending:I,$invalid:l,$correct:f,$ready:M,$anyDirty:c,$name:W,$silentErrors:B,$initialValue:b,$errors:z,$fields:L,$edited:H,$anyEdited:U,$issues:R,$self:P,"~modifiers":g(w.options)}))}),e}),D.push(a)})}let K=e({get:()=>_?Object.fromEntries(Object.entries(_?.(L.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,ae(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,oe(t,e)]))}]:[])):{},set(){}}),q={};return te(),{$dirty:s,$anyDirty:c,$invalid:l,$correct:f,$error:p,$pending:I,$issues:R,$errors:z,$silentErrors:B,$clearExternalErrorsOnValidate:j,$ready:M,$name:W,$shortcuts:q,$groups:K,$silentValue:o,$immediateDirty:T,$edited:H,$anyEdited:U,$localPending:N,$autoDirty:x,$silent:v,$value:a,$modifiers:ee}})}function V(){if(k?.(),M?.(),N?.(),A?.(),D=[],E={},L.value)for(let e of Object.values(L.value))e?.$unwatch()}function H(e){c&&(c.value=e)}function U(){c&&!O(c.value)&&(c.value={})}function W(){E&&E.$immediateDirty.value!==`lazy-non-empty`&&Te(E.$immediateDirty.value,b.value,f?.value??b.value)&&G(!0,!1)}function ee(e,t){if(M?.(),V(),!t)if(e?.toOriginalState)r.value=j({...S}),b.value=j({...S});else if(e?.toInitialState)r.value=j({...b.value});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,b.value=j(t),r.value=j(t)}else b.value=j(r.value);if(!e?.keepValidationState){for(let t of Object.values(L.value))t?.$reset(e,!0);P.value?.$reset(e,!0)}e?.clearExternalErrors===!1&&U(),R(),t||(F(),W())}function G(e=!0,t=!1){for(let n of Object.values(L.value))n?.$touch(e,t);P.value?.$touch(e,t)}function te(e){return e.filter(([e,t])=>x(t)&&!de(t)?!(t&&typeof t==`object`&&`_null`in t)&&!O(t):Array.isArray(t)?t.length:!0)}function K(e=!0){let t=Object.entries(L.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=te(t)),Object.fromEntries(t)}function q(){for(let e of Object.values(L.value))e.$abort();P.value?.$abort()}async function J(e){return e&&(r.value=e),await s(),ne()}async function ne(e){try{if(e&&(r.value=e),w.schemaMode)return w.onValidate?(G(!1),E.$localPending.value=!0,w.onValidate()):{valid:!1,data:r.value,errors:E.$errors.value,issues:E.$issues.value};{let e=r.value;q(),E.$clearExternalErrorsOnValidate.value&&U();let t=[...Object.values(L.value).map(e=>e.$validateWithoutRaceconditions()),...P.value?[P.value?.$validateWithoutRaceconditions()]:[]];return{valid:(await Promise.allSettled(t)).every(e=>e.status===`fulfilled`&&e?.value?.valid===!0),data:e,errors:E.$errors.value,issues:E.$issues.value}}}catch{return{valid:!1,data:r.value,errors:E.$errors.value,issues:E.$issues.value}}finally{E.$localPending.value=!1}}function Y(e){try{return e&&(r.value=e),E.$clearExternalErrorsOnValidate.value&&U(),[...Object.values(L.value).map(e=>e.$validateSync()),...P.value?[P.value?.$validateSync()]:[]].every(e=>!!e)}catch{return!1}}W();let{$shortcuts:re,$localPending:ie,...se}=E,X=u({...se,...re,$path:i,$initialValue:b,$originalValue:S,$self:P,$externalErrors:c,$fields:L,$reset:ee,$touch:G,$validate:J,$unwatch:V,$watch:B,$setExternalErrors:H,$clearExternalErrors:U,$extractDirtyFields:K,$abort:q,$validateSync:Y,$validateWithoutRaceconditions:ne,...o?{"~modifiers":E.$modifiers}:{},...Se(J)});return Object.defineProperty(X,Symbol.for(`regle:instance`),{value:!0}),y(()=>{for(let e of Object.keys(X).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete X[e];for(let e of Object.values(L.value))e?.$name&&Object.assign(X,{[e.$name]:e})}),X}function je({rulesDef:e,...n}){if(ce(e,n.state))return ke({rulesDef:e,...n});if(Q(n.state,e)){if(G(n.state))return Ae({rulesDef:e,...n});{let r=t().run(()=>{let e=p(n.state.value?n.state:d({}));return v(()=>n.state.value,t=>{e.value=t},{deep:!0}),v(e,e=>{n.state.value=e},{deep:!0}),{fakeState:e}}),{state:i,...a}=n;return Ae({rulesDef:e,...a,state:r.fakeState})}}else if(le(e))return De({rulesDef:a(e.value)?e.value:e,...n})}function Me({initialState:e,originalState:n,options:i,scopeRules:a,state:o,customRules:c,shortcuts:u,schemaErrors:f,schemaMode:p=!1,onValidate:h,overrides:g}){let _=he(),y=d(!1),b=new Set,S,C=d(),T=d(),E,D,O;function k(){O=v(()=>m(i.disabled),async e=>{e?F():(N(),j())})}function A(e){D?.(),e&&(x(e)&&Object.keys(e).some(e=>e.includes(`.`))?T.value=w(e):Array.isArray(e)?T.value=e:T.value=e??{}),M()}function j(){E=v(()=>i.externalErrors?.value,A,{deep:!0})}function M(){D=v(()=>T.value,e=>{E?.(),i.externalErrors?.value&&(i.externalErrors.value=e),A(e),j()},{deep:!0})}function N(){Q(o,a)?C.value=Ae({rootRules:a,rulesDef:a,state:o,customMessages:c?.(),storage:_,options:i,rootInitialState:e,externalErrors:T,validationGroups:i.validationGroups,initialState:e,originalState:n,shortcuts:u,fieldName:void 0,path:``,cachePath:``,schemaErrors:f,rootSchemaErrors:f,schemaMode:p,onValidate:h,overrides:g}):le(a)&&(C.value=De({rulesDef:a,state:o,customMessages:c?.(),storage:_,options:i,rootInitialState:e,externalErrors:T,initialState:e,originalState:n,shortcuts:u,fieldName:void 0,path:``,cachePath:``,schemaMode:p,schemaErrors:f,onValidate:h,overrides:g}))}function P(){D=void 0,E=void 0,O=void 0}function F(){C.value?.$unwatch(),D?.(),E?.()}function I(){y.value||(y.value=!0,S=t(!0),S.run(()=>{A(i.externalErrors?.value),N(),m(i.disabled)?s().then(()=>{C.value?.$unwatch()}):j(),k()}))}function L(){y.value&&(y.value=!1,F(),O?.(),P(),S?.stop(),S=void 0)}function R(){let e=r();!e||b.has(e)||(y.value||I(),b.add(e),l(()=>{b.delete(e),b.size||L()}))}return I(),R(),{regle:C,bindToCurrentScope:R}}function Ne({state:t,rulesFactory:n,options:r,globalOptions:o,customRules:s,shortcuts:c,overrides:l}){let u=a(n)?n:typeof n==`function`?void 0:e(()=>n),p=i(X,void 0)??{},m={...p.modifiers,...o},g=()=>({...p.rules?.(),...s?.()}),_={...p.shortcuts,...c},v={...p.overrides,...l},b={...m,...r},S,C=f(u??{});typeof n==`function`&&(S=y(()=>{C.value=n(t),h(C)}));let w=d(x(t.value)?{...j(t.value)}:j(t.value)),T=x(t.value)?{...j(t.value)}:j(t.value);re(()=>{S?.()});let{regle:E,bindToCurrentScope:D}=Me({scopeRules:C,state:t,options:b,initialState:w,originalState:T,customRules:g,shortcuts:_,overrides:v});return{regle:E,bindToCurrentScope:D}}function Pe(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s,c){let l=a(t)?t:d(t),u=e(()=>m(c?.disabled)??!1),{regle:f,bindToCurrentScope:p}=Ne({state:l,rulesFactory:s,options:c,globalOptions:r,customRules:n,shortcuts:i,overrides:o});return{r$:L(f,u,p)}}return s}const Fe=Pe();function Ie(){function e(e,t){return t}return e}const Le=Ie();function Re(e,t){return S(m(e).$errors,String(t))}function ze(e,t){return S(m(e).$issues,String(t))}function Be(e){let t={};if(Object.entries(e).some(([e,t])=>$(t)||typeof t==`function`))return null;for(let n in e){let r=e[n];r&&x(r)&&`$each`in r&&r.$each&&x(r.$each)?t[n]=[Be(r.$each)]:x(r)&&!O(r)&&!Object.entries(r).some(([e,t])=>$(t)||typeof t==`function`)?t[n]=Be(r):t[n]=null}return t}function Ve(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s){let c=a(t)?t:typeof t==`function`?void 0:e(()=>t),l=d(Be(c?.value)),u=e(()=>m(s?.disabled)??!1),{regle:f,bindToCurrentScope:p}=Ne({state:l,rulesFactory:c,options:s,globalOptions:r,customRules:n,shortcuts:i,overrides:o});return L(f,u,p)}return s}const He=Ve();function Ue(e){if(D(e)){let t=e,n=class extends t{constructor(...e){return super(...e),We(this)}};return Object.defineProperty(n,`name`,{value:t.name}),We(n)}return We(e)}function We(e){return!T(e,Z.REGLE_STATIC)&&Object.isExtensible(e)&&E(e,Z.REGLE_STATIC,!0),e}function Ge({rules:e,modifiers:t,shortcuts:n,overrides:r}){let i=Pe({rules:e,modifiers:t,shortcuts:n,overrides:r}),a=Ve({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:Ie(),useRules:a}}function Ke(e,{rules:t,modifiers:n,shortcuts:r,overrides:i}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?C(a.modifiers,n):a.modifiers??n,c=a.shortcuts&&r?C(a.shortcuts,r):a.shortcuts??r,l=a.overrides&&i?C(a.overrides,i):a.overrides??i,u=Pe({rules:o,modifiers:s,shortcuts:c,overrides:l});return u.__config={rules:o,modifiers:s,shortcuts:c,overrides:l},{useRegle:u,inferRules:Ie()}}function qe(e){return e}function Je(t,n){let r=n??!1,i=e({get:()=>r?Object.values(t).map(e=>e.$value):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$value])),set:e=>{r||typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$value=n)}}),a=e({get:()=>Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentValue])),set:e=>{typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$silentValue=n)}}),o=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$dirty)}),s=e(()=>Object.entries(t).some(([e,t])=>t?.$anyDirty)),c=e(()=>Object.entries(t).some(([e,t])=>t?.$invalid)),l=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$correct||t.$anyDirty&&!t.$invalid)}),d=e(()=>Object.entries(t).some(([e,t])=>t?.$error)),f=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$ready)}),p=e(()=>Object.entries(t).some(([e,t])=>t?.$pending)),m=e(()=>r?Object.entries(t).map(([e,t])=>t.$issues):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$issues]))),h=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentIssues):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentIssues]))),g=e(()=>r?Object.entries(t).map(([e,t])=>t.$errors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$errors]))),_=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentErrors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentErrors]))),v=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$edited)}),b=e(()=>Object.entries(t).some(([e,t])=>t?.$anyEdited)),x=e(()=>r?Object.values(t):t);function S(e){Object.values(t).forEach(t=>{t.$reset(e)})}function C(){Object.values(t).forEach(e=>{e.$touch()})}function w(e=!0){return Object.values(t).map(t=>t.$extractDirtyFields(e))}function T(e){Object.values(t).forEach(t=>{t.$setExternalErrors(e)})}function E(){Object.values(t).forEach(e=>{e.$clearExternalErrors()})}function D(e){try{return e&&(i.value=e),Object.values(t).every(t=>t.$validateSync(e))}catch{return!1}}async function O(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 k=u({...!r&&{$silentValue:a},$errors:g,$issues:m,$silentIssues:h,$silentErrors:_,$instances:x,$value:i,$dirty:o,$anyDirty:s,$invalid:c,$correct:l,$error:d,$pending:p,$ready:f,$edited:v,$anyEdited:b,$reset:S,$touch:C,$validate:O,$validateSync:D,$extractDirtyFields:w,$clearExternalErrors:E,$setExternalErrors:T});return y(()=>{if(!r){for(let e of Object.keys(k).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete k[e];for(let[e,t]of Object.entries(x.value))Object.assign(k,{[e]:t})}}),k}function Ye(t,n){function r(r){let i=e(()=>m(r)),a=u({});c();let o=d(l(t.value)),s=u({r$:o});function c(){i.value&&(typeof i.value==`string`&&!t.value[i.value]?t.value[i.value]={}:Array.isArray(i.value)&&i.value.forEach(e=>{t.value[e]||(t.value[e]={})}))}v(i,c),v(t,e=>{o.value=l(e)},{deep:!0});function l(e){return i.value?typeof i.value==`string`?Je(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})})}),Je(a,!n.asRecord)):Je(e[`~~global`]??{},!n.asRecord)}return{r$:s.r$}}return{useCollectScope:r}}function Xe(t,r){let i=r??Fe;return{useScopedRegle:((r,a,o)=>{let{namespace:s,scopeKey:l,id:u,...f}=o??{};i.__config??={};let p=e(()=>u??l),h=e(()=>m(s)),g=d(`${Object.keys(t.value).length+1}-${Y()}`),_=e(()=>p.value??`instance-${g.value}`),{r$:y}=i(r,a,{...f,id:p.value});x(),re(b),v(h,(e,t)=>{b(t),x()}),n()&&c(()=>{let e=n();typeof window<`u`&&e?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(e?.proxy?.$el?.parentElement)&&b()});function b(e){let n=e??h.value;n?t.value[n]&&delete t.value[n][_.value]:t.value[`~~global`][_.value]&&delete t.value[`~~global`][_.value]}function x(){h.value?(t.value[h.value]||(t.value[h.value]={}),t.value[h.value][_.value]=y):(t.value[`~~global`]||(t.value[`~~global`]={}),t.value[`~~global`][_.value]=y)}return{r$:y,dispose:b,register:x}})}}function Ze(e){let t=(e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):ie(()=>d({"~~global":{}})))(),{useScopedRegle:n}=Xe(t,e?.customUseRegle),{useCollectScope:r}=Ye(t,{asRecord:e?.asRecord});return{useScopedRegle:n,useCollectScope:r}}const{useCollectScope:Qe,useScopedRegle:$e}=Ze(),et=Qe,tt=$e;function nt(t,n,r){let i=e(()=>m(t)[n]);return e(()=>r.find(e=>{if(e[n]&&`literal`in e[n]){let t=e[n].literal;if($(t))return m(t._params?.[0])===i.value}})||r.find(e=>x(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`))||{})}function rt(e,t,n){return!!e&&t in e&&x(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function it(e,t,n,r){let i=a(e)?p(e.value,`$fields`):p(e,`$fields`),o=d();return v(i,async()=>{await s(),rt(i.value,t,n)?o.value=p(e).value:o.value=void 0},{immediate:!0,flush:`pre`}),o}function at(e){return e}function ot(e,t){return n=>C({...e},t(n))}const st={install(e,t){e.provide(se,me),t&&e.provide(X,t)}};export{R as InternalRuleType,st as RegleVuePlugin,U as createRule,Ze as createScopedUseRegle,nt as createVariant,Ge as defineRegleConfig,qe as defineRegleOptions,at as defineRules,Ke as extendRegleConfig,ye as flatErrors,Re as getErrors,ze as getIssues,Le as inferRules,ee as isRegleInstance,Ue as markStatic,Je as mergeRegles,rt as narrowVariant,ot as refineRules,z as unwrapRuleParameters,et as useCollectScope,Fe as useRegle,Me as useRootStorage,He as useRules,tt as useScopedRegle,it 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";function x(e){return e?.constructor?.name==`File`}function S(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function C(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 w(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 T(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 E(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function D(e,t,n,r=!1){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})}function O(e){return typeof e==`function`&&!!e.prototype&&`constructor`in e.prototype&&e.prototype.constructor===e}function k(e,t=!0,n=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):x(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:S(e)?e==null?!0:n?Object.keys(e).length===0:!1:!String(e).length}const A=Symbol(`regle-rule`);function j(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 M(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=>M(e,t++)))),r==`Map`&&(n=new Map([...e].map(e=>[M(e[0]),M(e[1])]))),r==`Date`&&(n=new Date(e.getTime())),r==`RegExp`&&(n=RegExp(e.source,j(e))),r==`Array`||r==`Object`){n=Array.isArray(e)?[]:{};for(let r in e)n[r]=M(e[r],t++)}return n}function N(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(S(e)&&S(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 z={Inline:`__inline`,Async:`__async`};function B(e){try{return e.map(e=>h(e))}catch{return[]}}function V(t){return t.map(t=>t instanceof Function?e(t):a(t)?t:m(()=>t))}function H(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 U(e,...t){let{validator:n,type:r,async:i}=e,a=i||r===z.Async||n.constructor.name===`AsyncFunction`;return o({validator(n,...r){return e.validator(n,...B(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:B(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:B(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:B(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...B(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:V(t),_brand:A})}function W(e){if(typeof e.validator==`function`){let t=[],n=e.async??e.validator.constructor.name===`AsyncFunction`,r=U({...e,async:n},...t);if(H(e.validator)>1){let t=function(...t){return U(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 G=Symbol.for(`regle:instance`);function K(e){return typeof e==`object`&&!!e&&G in e}function q(e){return S(e.value)}function ee(e,n,r){let i=t(),a;return a=e instanceof Function?i.run(()=>e(n,r??0)):e,{scope:i,unwrapped:a}}const J={LessThan:-1,EqualTo:0,GreaterThan:1};function Y(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 J.GreaterThan;if(i>t)return J.LessThan;if(!isNaN(t)&&isNaN(i))return J.GreaterThan;if(isNaN(t)&&!isNaN(i))return J.LessThan}return J.EqualTo}const X=Y(v,`3.5.0`)!==-1;function Z(){return Math.floor(Math.random()*Date.now()).toString()}function te(){return typeof window>`u`?Z():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function ne(e){return r()?(l(e),!0):!1}function re(e){let n=!1,r,i=t(!0);return((...t)=>(n||=(r=i.run(()=>e(...t)),!0),r))}function ie(e,t){return e.some(e=>t?e?.[t]:!1)}function ae(e,t){return t?e.reduce((e,n)=>{let r=n?.[t]||[];return e.concat(r)},[]):[]}const oe=Symbol(`regle`),Q=Symbol(`regle-config`),$={REGLE_STATIC:`__regle_static`};function se(e,t){return!fe(e.value)&&(q(e)||S(t.value)&&!k(t.value)&&!Object.entries(t.value).some(([e,t])=>ue(t)||typeof t==`function`))}function ce(e,t){return!!e.value&&S(e.value)&&`$each`in e.value||Array.isArray(t.value)}function le(e){return!!e.value&&(S(e.value)||q(e.value))}function ue(e){return(S(e)||typeof e==`function`)&&`_validator`in e}function de(e){return typeof e.value==`function`?`_validator`in e.value:!0}function fe(e){return S(e)&&E(e,$.REGLE_STATIC)&&e[$.REGLE_STATIC]===!0}function pe(e){return S(e)&&`$fields`in e}function me(e){return!!e&&`$rules`in e}var he=`1.25.0`;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=B(`_params`in i&&Array.isArray(i._params)?i._params:[]),n=B(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}}}return r()&&l(()=>{e.value.clear(),t.value.clear(),n.value.clear(),i.value.clear(),a.value.clear(),s.value.clear()}),{addRuleDeclEntry:b,setDirtyEntry:v,checkRuleDeclEntry:x,getDirtyState:y,trySetRuleStatusRef:C,getFieldsEntry:c,getCollectionsEntry:u,getArrayStatus:g,addArrayStatus:h,deleteArrayStatus:_,arrayStatusStorage:s,addAdditionalRulesEntry:d,getAdditionalRulesEntry:m}}function _e({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.$externalErrors.map(t=>({$message:t,$property:e.fieldName,$rule:`external`,$type:void 0})):[],i=[];return e.$schemaErrors&&e.$error&&(i=!Array.isArray(e.$schemaErrors)&&`$self`in e.$schemaErrors?e.$schemaErrors.$self??[]:e.$schemaErrors??[]),[...n,...r,...i]}function ve({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 ye(e){return S(e)&&`$each`in e}function be(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!S(e)))return e;if(ye(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=>!S(e)))return t?e.map(e=>({message:e,path:r??[]})):e;if(ye(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 Se({customMessages:n,rule:r,ruleKey:i,state:a,path:o,cachePath:s,storage:c,modifiers:l}){let d=t(),p={},m,h=e(()=>ue(r.value)&&r.value._async),g=f(!1),{$pending:_,$valid:v,$metadata:b,$validating:x}=c.trySetRuleStatusRef(`${s}.${i}`);function S(){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:v.value,$invalid:!v.value,$pending:_.value},$params:S.value,...b.value})),p=e(()=>{try{return de(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),de(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 k(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),y=e(()=>de(r)&&r.value.type?r.value.type:i),x=e(()=>de(r)?r.value.validator:r.value),S=e(()=>typeof r.value==`function`?[]:B(r.value._params??[]));return{$active:p,$message:h,$type:y,$validator:x,$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)&&E()},{deep:X?1:!0})}S();function C(){v.value=!0,p.$fieldDirty.value&&(_.value=!0)}async function w(){let e=!1;try{let t=p.$validator.value;if(typeof t!=`function`)return console.error(`${o}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let n=t(a.value,...p.$params.value),r=a.value;C();let i;if(i=n instanceof Promise?await n:n,a.value!==r)return!0;if(typeof i==`boolean`)e=i;else{let{$valid:t,...n}=i;e=t,b.value=n}}catch{e=!1}finally{_.value=!1}return e}function T(e,t=!0){if(ue(r.value)&&r.value._async)return!0;let n=e(a.value,...p.$params.value);if(n instanceof Promise)return!0;if(n!=null){if(typeof n==`boolean`)return n;{let{$valid:e,...t}=n;return b.value=t,e}}return!0}async function E(){try{x.value=!0;let e=!1;if(g.value=!0,ue(r.value)&&r.value._async)e=await w();else{let t=p.$validator.value;e=T(t)}return v.value=e,e}catch{return!1}finally{x.value=!1,g.value=!1}}function D(){try{return x.value=!0,T(p.$validator.value)}catch{return!1}finally{x.value=!1}}function O(){v.value=!0,b.value={},_.value=!1,x.value=!1,S()}function A(){m(),d.stop(),d=t()}return u({...p,$pending:_,$valid:v,$metadata:b,$haveAsync:h,$maybePending:g,$validating:x,$parse:E,$parseSync:D,$unwatch:A,$watch:S,$reset:O})}function Ce(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:be(i,{includePath:!0})}}}}}function we(e){return e===!0?`eager`:e===!1||e==null?!1:e}function Te(e){return S(e)&&!fe(e)?Object.values(e).some(e=>Te(e)):Array.isArray(e)?e.some(e=>Te(e)):!k(e)}function Ee(e,t,n){return e===`eager`?!0:e===`non-empty`?Te(n):e===`lazy-non-empty`?Te(t):!1}function De(e,t,n,r=!1){return e===`eager`?!0:e===`non-empty`?r&&!k(n):e===`lazy-non-empty`?!k(t):!1}function Oe({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,fieldName:c,storage:l,options:d,externalErrors:p,schemaErrors:g,schemaMode:_,onUnwatch:v,$isArray:x,initialState:C,rootInitialState:w,originalState:T,shortcuts:E,overrides:D,onValidate:O}){let A=t(),j,I=[],R,z,B,V,H=()=>{},U,W=()=>{},G=f(!1),K=f(l.getAdditionalRulesEntry(o)??{});function q(e){K.value=e??{},l.addAdditionalRulesEntry(o,e??{}),J(),H()}function ee(e){q(e)}function J(){let e={...r.value,...K.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,Se({modifiers:{$silent:j.$silent,$rewardEarly:j.$rewardEarly},customMessages:i,rule:c,ruleKey:r,state:n,path:a,cachePath:o,storage:l,$debounce:$.value.$debounce})])}Q.value=Object.fromEntries(t),l.addRuleDeclEntry(o,e)}function Y(){let e={...r.value,...K.value},t=l.checkRuleDeclEntry(o,e),n={};for(let t in e)t.startsWith(`$`)&&(n[t]=e[t]);return $.value=n,t}function Z(){let e=Y();ie(),J(),j.processShortcuts(),te(),ne(),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 te(){H=j.$debounce.value>0?P(oe,j.$debounce.value,{trackDebounceRef:G}):oe}function ne(){W=j.$debounce.value>0?P(()=>{j.$dirty.value=!0},j.$debounce.value):()=>{j.$dirty.value=!0}}function re(){if(Q.value)for(let e of Object.values(Q.value))e.$unwatch();z(),V?.(),j.$dirty.value&&l.setDirtyEntry(o,j.$dirty.value),R?.(),A.stop(),A=t();for(let e of I)e.stop();I=[],v?.(),B?.()}function ie(){if(Q.value)for(let e of Object.values(Q.value))e.$watch();j=A.run(()=>{let r=f(!1),i=f(!1),a=e(()=>r.value),o=e(()=>x||fe(n.value)),s=e(()=>$.value.$debounce==null?j.$haveAnyAsyncRule.value?200:0:$.value.$debounce),l=e(()=>$.value.$deepCompare==null?!1:$.value.$deepCompare),m=e(()=>$.value.$lazy==null?h(d.lazy)==null?!1:h(d.lazy)===!0:$.value.$lazy),v=e(()=>$.value.$immediateDirty==null?h(d.immediateDirty)==null?!1:we(h(d.immediateDirty)):we($.value.$immediateDirty)),y=e(()=>$.value.$rewardEarly==null?h(d.rewardEarly)==null?!1:h(d.rewardEarly)===!0:!!$.value.$rewardEarly),S=e(()=>$.value.$clearExternalErrorsOnChange==null?h(d.clearExternalErrorsOnChange)==null?!T.value:h(d.clearExternalErrorsOnChange)===!0:!!$.value.$clearExternalErrorsOnChange),w=e(()=>$.value.$clearExternalErrorsOnValidate==null?h(d.clearExternalErrorsOnValidate)==null?!1:h(d.clearExternalErrorsOnValidate)===!0:!!$.value.$clearExternalErrorsOnValidate),T=e(()=>y.value?!0:$.value.$silent==null?h(d.silent)==null?!1:h(d.silent)===!0:$.value.$silent),O=e(()=>$.value.$autoDirty==null?h(d.autoDirty)==null?!0:h(d.autoDirty)===!0:$.value.$autoDirty),A=e(()=>{if($.value.$isEdited!=null)return $.value.$isEdited;if(D?.isEdited!=null)return D.isEdited}),M=e(()=>{for(let e of Object.values(Q.value))if(e.$validating)return!0;return!1}),P=e({get:()=>n.value,set(e){R(),n.value=e,ae()}}),L=e(()=>G.value?Y.value&&r.value:Y.value&&!J.value&&r.value),z=e(()=>_e({field:{$rules:Q.value,$error:L.value,$externalErrors:p?.value,$schemaErrors:g?.value,fieldName:X.value}})),B=e(()=>_e({field:{$rules:Q.value,$error:L.value,$externalErrors:p?.value,$schemaErrors:g?.value,fieldName:X.value},silent:!0})),V=e(()=>z.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?N(t).getTime()!==N(e).getTime():t==null?e!=null&&e!==``:Array.isArray(e)&&Array.isArray(t)?!F(e,t,$.value.$deepCompare):t!==e}b(()=>{r.value?A.value?U.value=A.value(n.value,C.value,W):U.value=W(n.value,C.value):U.value=!1});let K=e(()=>U.value),q=e(()=>ve({field:{$rules:Q.value}})),ee=e(()=>!(Y.value||J.value)),J=e(()=>i.value||!y.value?Object.entries(Q.value).some(([e,t])=>t.$pending):!1),Y=e(()=>p?.value?.length||g?.value?.length?!0:Z.value?!1:Object.values(Q.value).some(e=>!e.$valid||e.$maybePending)),X=e(()=>c??d.id??`root`),Z=e(()=>!_&&!Object.keys(Q.value).some(e=>!e.startsWith(`$`))),te=e(()=>{if(p?.value?.length||Z.value||G.value)return!1;if(r.value&&!k(n.value)&&!M.value&&!J.value){if(_)return!g?.value?.length;{let e=Object.values(Q.value);for(let t of e)if(t.$active&&!t.$valid)return!1;return e.some(e=>e.$active)}}return!1}),ne=e(()=>Object.values(Q.value).some(e=>e.$haveAsync)),re=e(()=>({$debounce:s.value,$lazy:m.value,$rewardEarly:y.value,$autoDirty:O.value,$silent:T.value,$clearExternalErrorsOnChange:S.value,$clearExternalErrorsOnValidate:w.value,$immediateDirty:v.value,$isEdited:A.value,$disabled:h(d.disabled)??!1}));function ie(){E?.fields&&Object.entries(E.fields).forEach(([e,i])=>{let o=t();oe[e]=o.run(()=>{let e=f();return b(()=>{e.value=i(u({$dirty:r,$externalErrors:p?.value??[],$value:n,$silentValue:P,$rules:Q,$error:L,$pending:J,$invalid:Y,$correct:te,$errors:V,$ready:ee,$silentErrors:H,$anyDirty:a,$tooltips:q,$name:X,$inactive:Z,$edited:U,$anyEdited:K}))}),e}),I.push(o)})}let oe={};return{$error:L,$pending:J,$invalid:Y,$correct:te,$debounce:s,$deepCompare:l,$lazy:m,$immediateDirty:v,$ready:ee,$issues:z,$silentIssues:B,$errors:V,$silentErrors:H,$rewardEarly:y,$autoDirty:O,$silent:T,$clearExternalErrorsOnChange:S,$clearExternalErrorsOnValidate:w,$anyDirty:a,$edited:U,$anyEdited:K,$name:X,$haveAnyAsyncRule:ne,$shortcuts:oe,$validating:M,$tooltips:q,$dirty:r,processShortcuts:ie,$silentValue:P,$inactive:Z,$modifiers:re,$isArrayOrRegleStatic:o}}),ae(),z=y(j.$dirty,e=>{l.setDirtyEntry(o,e),Object.values(Q.value).forEach(t=>{t.$fieldDirty=e})}),V=y([j.$error,j.$correct,j.$invalid,j.$pending],()=>{Object.values(Q.value).forEach(e=>{e.$fieldError=j.$error.value,e.$fieldInvalid=j.$invalid.value,e.$fieldPending=j.$pending.value,e.$fieldCorrect=j.$correct.value})}),B=y(j.$haveAnyAsyncRule,te)}function ae(){R=y(n,()=>{j.$autoDirty.value&&!j.$silent.value&&(j.$dirty.value||W()),r.value instanceof Function&&Z(),(!j.$silent.value||j.$rewardEarly.value&&j.$error.value)&&H(),j.$clearExternalErrorsOnChange.value&&xe()},{deep:j.$isArrayOrRegleStatic.value?!0:X?1:!0})}async function oe(){try{let{promise:e}=ue(Promise.allSettled(Object.values(Q.value).map(e=>e.$parse())));await e}catch{}}let Q=f({}),$=f({});Z();function se(){De(j.$immediateDirty.value,C.value,w?.value??C.value,a===``)&&(j.$dirty.value=!0)}function ce(e,t){if(le(),xe(),j.$dirty.value=!1,l.setDirtyEntry(o,!1),!t)if(e?.toOriginalState)n.value=M(T),C.value=M(T);else if(e?.toInitialState)n.value=M(C.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,C.value=M(t),n.value=M(t)}else C.value=S(n.value)&&!fe(n.value)?M(n.value):Array.isArray(n.value)?[...n.value]:n.value;if(e?.clearExternalErrors&&xe(),!t&&!e?.keepValidationState)for(let e of Object.values(Q.value))e.$reset();if(!j.$lazy.value&&!j.$silent.value&&!t)for(let e of Object.values(Q.value))e.$parse();se()}function le(){`cancel`in H&&H.cancel()}function ue(e){return U&&U.abort(),U=L(e),U}function de(){le(),U&&U.abort()}function pe(e=!0,t=!1){j.$dirty.value||W(),t&&e?(!j.$silent.value||j.$rewardEarly.value&&j.$error.value)&&(le(),H()):e&&(le(),H())}async function me(e){return e&&(n.value=e),await s(),he()}async function he(e){try{if(e&&(n.value=e),_)return O?(pe(!1),O()):{valid:!1,data:n.value,errors:j.$errors.value,issues:j.$issues.value};let t=n.value;if(j.$autoDirty.value&&!j.$silent.value&&j.$dirty.value&&!j.$validating.value&&!j.$pending.value&&!G.value&&!k(Q.value))return{valid:!j.$invalid.value,data:t,errors:j.$errors.value,issues:j.$issues.value};if(j.$dirty.value||(j.$dirty.value=!0),k(Q.value))return{valid:!0,data:t,errors:j.$errors.value,issues:j.$issues.value};de();let{promise:r}=ue(Promise.allSettled(Object.values(Q.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 ge(e){try{return e&&(n.value=e),j.$dirty.value||(j.$dirty.value=!0),_?!1:Object.values(Q.value).map(e=>e.$parseSync()).every(e=>!!e)}catch{return!1}}function ye(e=!0){return j.$dirty.value?n.value:e?{_null:!0}:null}function be(e){p&&(p.value=e)}function xe(){p?.value?.length&&(p.value=[])}!j.$lazy.value&&!j.$dirty.value&&!j.$silent.value&&oe(),se();let{$shortcuts:Te,$validating:Ee,$autoDirty:Oe,$rewardEarly:ke,$clearExternalErrorsOnChange:Ae,$clearExternalErrorsOnValidate:je,$haveAnyAsyncRule:Me,$debounce:Ne,$lazy:Pe,...Fe}=j,Ie=u({...Fe,$externalErrors:p,$value:n,$output:n,$initialValue:C,$originalValue:T,$rules:Q,...Te,$path:a,$isDebouncing:G,$reset:ce,$touch:pe,$validate:me,$validateSync:ge,$validateWithoutRaceconditions:he,$unwatch:re,$watch:ie,$extractDirtyFields:ye,$clearExternalErrors:xe,$abort:de,$addRules:q,addRules:ee,$schemaMode:_,"~modifiers":j.$modifiers,$setExternalErrors:be,...Ce(me)});return Object.defineProperty(Ie,Symbol.for(`regle:instance`),{value:!0}),Ie}function ke({$id:t,path:n,cachePath:r,index:i,options:a,storage:o,stateValue:s,customMessages:c,rules:l,externalErrors:u,schemaErrors:d,initialState:p,originalState:h,shortcuts:g,fieldName:_,schemaMode:v,overrides:y,currentIndexes:b}){let x=s.value?.$id??l.$key??te(),C=`${r}.${String(x)}`,w=f(i),T=`${n}.${i}`;typeof s.value==`object`&&s.value!=null&&(s.value.$id||Object.defineProperties(s.value,{$id:{value:x,enumerable:!1,configurable:!1,writable:!1}}));let E=m(u?.value??[],i),D=e(()=>d?.value?.[w.value]),O=Me({index:i,state:s,rulesDef:m(()=>l),customMessages:c,path:T,cachePath:C,storage:o,options:a,externalErrors:E,schemaErrors:D,initialState:p,originalState:h,shortcuts:g,fieldName:_,schemaMode:v,overrides:y});return O&&(O.$id=s.value?.$id??String(x),b?.set(O.$id,w),o.addArrayStatus(t,O.$id,O)),s.value&&(!S(s.value)||fe(s.value))&&v&&O?.$touch(),O}function Ae({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,storage:s,options:c,externalErrors:l,schemaErrors:d,schemaMode:p,initialState:g,originalState:_,shortcuts:v,fieldName:x,overrides:S}){let C=t(),w,T=t(),E,D=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let O=f(),A=f(n.value),j=f({}),N,P,F=f({}),I=s.getCollectionsEntry(a),L=new Map;E=T.run(()=>({isPrimitiveArray:e(()=>n.value?.length?Array.isArray(n.value)&&n.value.length?n.value.every(e=>typeof e!=`object`):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(e=>ue(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?(O.value=te(),Object.defineProperties(n.value,{$id:{value:O.value,enumerable:!1,configurable:!1,writable:!1}})):n.value?.$id&&(O.value=n.value.$id)),A.value=F.value.$value,Array.isArray(n.value)&&(!E.isPrimitiveArray.value||p)?I.value=n.value.map((t,n)=>{let{scope:u,unwrapped:f}=ee(r.value.$each,m(()=>t),n);u&&D.push(u);let h=m(g.value??[],n),y=m(l?.value??{},`$each`),b=e(()=>d?.value?.$each);return ke({$id:O.value,path:a,cachePath:o,customMessages:i,rules:f??{},stateValue:m(()=>t),index:n,options:c,storage:s,externalErrors:y,schemaErrors:b,initialState:h,originalState:_,shortcuts:v,fieldName:x,schemaMode:p,overrides:S,currentIndexes:L})||null}).filter(e=>!!e):(I.value=[],L.clear()),F.value=Oe({state:n,rulesDef:r,customMessages:i,path:a,cachePath:a,storage:s,options:c,externalErrors:m(l?.value??{},`$self`),schemaErrors:e(()=>d?.value?.$self),$isArray:!0,initialState:g,originalState:_,shortcuts:v,fieldName:x,schemaMode:p,overrides:S})}function z(){if(Array.isArray(n.value)&&(!E.isPrimitiveArray.value||p)){let t=M(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(O.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}=ee(r.value.$each,u,n);t&&D.push(t);let h=m(l?.value??{},`$each`),y=e(()=>d?.value?.$each??[]),b=ke({$id:O.value,path:a,cachePath:a,customMessages:i,rules:f??{},stateValue:u,index:n,options:c,storage:s,externalErrors:h,schemaErrors:y,initialState:m(g.value??[],n),originalState:_,shortcuts:v,fieldName:x,schemaMode:p,overrides:S,currentIndexes:L});return b?(b.$id&&o.add(b.$id),b):null}}).filter(e=>!!e),t.filter(e=>!n.value?.find(t=>e.$id===t.$id)).forEach((e,t)=>{s.deleteArrayStatus(O.value,t.toString())});for(let e of L.keys())o.has(e)||L.delete(e)}else I.value=[],L.clear()}function B(){N=y(n,()=>{P?.(),n.value!=null&&!Object.hasOwn(n.value,`$id`)&&!O.value?R():z(),V()},{deep:X?1:!0,flush:`pre`}),V()}function V(){P=y(n,()=>{w.$autoDirty.value&&!w.$silent.value&&F.value.$touch(!1,!0)},{flush:`post`})}function H(){B(),C=t(),w=C.run(()=>{let r=e({get:()=>n.value,set(e){N?.(),P?.(),n.value=e,B()}}),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(()=>(p?F.value.$correct:k(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)),m=e(()=>!(s.value||y.value)),y=e(()=>F.value.$pending||I.value.some(e=>e.$pending)),C=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)})),O=e(()=>({$self:F.value.$silentErrors,$each:I.value.map(e=>e.$silentErrors)})),A=e(()=>j.value.$rewardEarly==null?h(c.rewardEarly)==null?!1:h(c.rewardEarly)===!0:j.value.$rewardEarly),M=e(()=>A.value?!0:j.value.$silent==null?h(c.silent)==null?!1:h(c.silent)===!0:j.value.$silent),L=e(()=>j.value.$autoDirty==null?h(c.autoDirty)==null?!0:h(c.autoDirty)===!0:j.value.$autoDirty),R=e(()=>j.value.$immediateDirty==null?h(c.immediateDirty)==null?!1:we(h(c.immediateDirty)):we(j.value.$immediateDirty)),z=e(()=>j.value.$clearExternalErrorsOnChange==null?h(c.clearExternalErrorsOnChange)==null?!0:h(c.clearExternalErrorsOnChange)===!0:j.value.$clearExternalErrorsOnChange),V=e(()=>j.value.$clearExternalErrorsOnValidate==null?h(c.clearExternalErrorsOnValidate)==null?!1:h(c.clearExternalErrorsOnValidate)===!0:j.value.$clearExternalErrorsOnValidate),H=e(()=>{if(j.value.$isEdited!=null)return j.value.$isEdited;if(S?.isEdited!=null)return S.isEdited}),U=e(()=>x??c.id??`root`),W=e(()=>({$deepCompare:j.value.$deepCompare??!1,$debounce:j.value.$debounce??0,$lazy:j.value.$lazy??!1,$rewardEarly:A.value,$autoDirty:L.value,$silent:M.value,$clearExternalErrorsOnChange:z.value,$clearExternalErrorsOnValidate:V.value,$immediateDirty:R.value,$isEdited:H.value,$disabled:h(c.disabled)??!1}));function G(){v?.collections&&Object.entries(v?.collections).forEach(([e,c])=>{let p=t();K[e]=p.run(()=>{let e=f();return b(()=>{e.value=c(u({$dirty:i,$error:d,$path:a,$silentValue:r,$pending:y,$invalid:s,$correct:l,$errors:E,$silentErrors:O,$initialValue:g,$originalValue:_,$ready:m,$anyDirty:o,$name:U,$each:I,$self:F,$value:n,$output:n,$edited:C,$anyEdited:w,$issues:T}))}),e}),D.push(p)})}let K={};return G(),{$dirty:i,$anyDirty:o,$invalid:s,$correct:l,$error:d,$pending:y,$errors:E,$silentErrors:O,$ready:m,$name:U,$shortcuts:K,$silentValue:r,$edited:C,$anyEdited:w,$rewardEarly:A,$silent:M,$autoDirty:L,$issues:T,$modifiers:W}}),E.isPrimitiveArray.value&&r.value.$each&&console.warn(`${a} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`)}function U(){N?.(),F.value&&F.value.$unwatch(),I.value&&I.value.forEach(e=>{`$dirty`in e&&e.$unwatch()}),C.stop(),C=t(),T.stop(),T=t(!0),D.forEach(e=>e.stop()),D=[]}function W(e=!0,t=!1){F.value.$touch(e,t),I.value.forEach(n=>{n.$touch(e,t)})}function G(e,t){if(U(),!t)if(e?.toOriginalState)n.value=M(_),g.value=M(_);else if(e?.toInitialState)n.value=M(g.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,g.value=M(t),n.value=M(t)}else g.value=M(n.value);e?.clearExternalErrors&&ne(),e?.keepValidationState||(F.value.$reset(e,t),I.value.forEach(t=>{t.$reset(e,!0)})),t||R()}function K(){F.value.$abort(),I.value.forEach(e=>{e.$abort()})}async function q(e){return e&&(n.value=e),J()}async function J(e){e&&(n.value=e);let t=n.value;try{return K(),{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:w.$errors.value,issues:w.$issues.value}}catch{return{valid:!1,data:t,errors:w.$errors.value,issues:w.$issues.value}}}function Y(e){e&&(n.value=e);try{return[F.value.$validateSync(e),...I.value.map(e=>e.$validateSync())].every(e=>!!e)}catch{return!1}}function Z(e){l?.value&&(l.value=e)}function ne(){F.value.$clearExternalErrors(),I.value.forEach(e=>{e.$clearExternalErrors()})}function re(e=!0){let t=I.value.map(t=>{if(pe(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>k(e))&&(t=[]),t}let{$shortcuts:ie,...ae}=w;return u({$self:F,...ae,...ie,$path:a,$each:I,$value:n,$output:n,$initialValue:g,$originalValue:_,$validate:q,$validateSync:Y,$validateWithoutRaceconditions:J,$unwatch:U,$watch:H,$touch:W,$reset:G,$abort:K,$extractDirtyFields:re,$clearExternalErrors:ne,$setExternalErrors:Z,"~modifiers":w.$modifiers,...Ce(q)})}function je({rulesDef:n,state:r,path:i=``,cachePath:a,rootRules:o,externalErrors:c,schemaErrors:l,rootInitialState:p,rootSchemaErrors:g,validationGroups:v,initialState:x,originalState:C,fieldName:w,...T}){let E=t(),D,O=[],A=null,j=null,N=null,P=null,F=f(void 0);async function I(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=e(()=>l?.value?.[n]),p=m(x?.value??{},n);return t.push([n,Me({state:s,rulesDef:u,path:i?`${i}.${n}`:n,cachePath:a?`${a}.${n}`:n,externalErrors:d,schemaErrors:f,initialState:p,originalState:C?.[n],fieldName:n,...T})]),t},[])),u=Object.fromEntries(Object.entries(h(c)??{}).filter(([e,t])=>!(e in n.value)&&!!t).map(([t])=>{let n=m(r.value??{},t),o=m(c?.value??{},t),s=e(()=>l?.value?.[t]),u=m(x?.value??{},t),d=i?`${i}.${t}`:t,f=a?`${a}.${t}`:t;return[t,Me({state:n,rulesDef:e(()=>({})),path:d,cachePath:f,externalErrors:o,schemaErrors:s,initialState:u,originalState:C?.[t],fieldName:t,...T})]})),d=Object.fromEntries(Object.entries(h(l)??{}).map(([t])=>{let n=i?`${i}.${t}`:t,o=a?`${a}.${t}`:t,s=m(r.value??{},t),u=m(c?.value??{},t),d=e(()=>l?.value?.[t]),f=m(x?.value??{},t);return[t,Me({state:s,rulesDef:e(()=>({})),path:n,cachePath:o,externalErrors:u,schemaErrors:d,initialState:f,originalState:C?.[t],fieldName:t,...T})]})),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=e(()=>l?.value?.[t]),u=m(x?.value??{},t);return[t,Me({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,cachePath:a?`${a}.${t}`:t,externalErrors:o,schemaErrors:s,initialState:u,originalState:C?.[t],fieldName:t,...T})]}));R.value={...s,...u,...d,...f},t&&V()}function L(){n.value.$self&&(F.value=Oe({state:r,rulesDef:e(()=>n.value.$self??{}),path:i,cachePath:a,externalErrors:f(void 0),schemaErrors:f(void 0),initialState:m(x?.value??{},`$self`),originalState:C?.$self,fieldName:`$self`,...T}))}let R=T.storage.getFieldsEntry(a);I(),L();function z(){c&&(N=y(c,()=>{H(),I()},{deep:!0}))}function B(){P=y(r,()=>{H(),I(),D.$autoDirty.value&&!D.$silent.value&&q(!1,!0)},{flush:`post`})}function V(){o&&(A?.(),A=y(o,()=>{H(),I()},{deep:!0,flush:`pre`}),z()),g&&(j?.(),j=y(()=>g.value?Object.keys(g.value).sort().join(`\0`):``,()=>{H(),I()},{flush:`post`})),B(),D=E.run(()=>{let a=e({get:()=>r.value,set(e){H(),r.value=e,I(),D.$autoDirty.value&&!D.$silent.value&&q(!1,!0)}}),o=d(a),s=e({get:()=>r.value,set(e){H(),r.value=e,I()}}),c=e(()=>{let e=R.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=R.value;for(let t in e)if(e[t]?.$anyDirty)return!0;return!1}),p=e(()=>{if(F.value?.$invalid)return!0;let e=R.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(R.value).reduce((e,[t,n])=>((!me(n)||!n.$inactive)&&e.push([t,n]),e),[]),t=n.value.$self&&!k(n.value.$self);if(e.length||t){let t=F.value?.$correct??!0,n=!1;return n=T.schemaMode?e.every(([e,t])=>t.$correct):e.every(([e,t])=>me(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(F.value?.$error)return!0;let e=R.value;if(!Object.keys(e).length)return!1;for(let t in e)if(e[t]?.$error)return!0;return!1}),y=e(()=>h(T.options.rewardEarly)==null?!1:h(T.options.rewardEarly)),S=e(()=>h(T.options.silent)==null?!!y.value:h(T.options.silent)===!0),E=e(()=>h(T.options.autoDirty)==null?!0:h(T.options.autoDirty)===!0),A=e(()=>h(T.options.immediateDirty)==null?!1:we(h(T.options.immediateDirty))),j=e(()=>h(T.options.lazy)==null?!1:h(T.options.lazy)===!0),M=e(()=>h(T.options.clearExternalErrorsOnChange)==null?!1:h(T.options.clearExternalErrorsOnChange)===!0),N=e(()=>h(T.options.clearExternalErrorsOnValidate)==null?!1:h(T.options.clearExternalErrorsOnValidate)===!0),P=e(()=>!(p.value||z.value)),L=f(!1),z=e(()=>{if(F.value?.$pending||L.value)return!0;let e=R.value;for(let t in e)if(e[t]?.$pending)return!0;return!1}),B=e(()=>{let e={...F.value&&{$self:F.value?.$issues??[]}};for(let t in R.value)e[t]=R.value[t]?.$issues;return e}),V=e(()=>{let e={...F.value&&{$self:F.value?.$errors??[]}};for(let t in R.value)e[t]=R.value[t]?.$errors;return e}),U=e(()=>{let e={...F.value&&{$self:F.value?.$silentErrors??[]}};for(let t in R.value)e[t]=R.value[t]?.$silentErrors;return e}),W=e(()=>{if(F.value?.$edited)return!0;if(!Object.keys(R.value).length)return!1;for(let e in R.value)if(!R.value[e]?.$edited)return!1;return!0}),G=e(()=>{if(F.value?.$anyEdited)return!0;for(let e in R.value)if(R.value[e]?.$anyEdited)return!0;return!1}),K=e(()=>w??T.options.id??`root`),ee=e(()=>({autoDirty:E.value,lazy:j.value,rewardEarly:y.value,silent:S.value,clearExternalErrorsOnChange:M.value,clearExternalErrorsOnValidate:N.value,immediateDirty:A.value,id:h(T.options.id),disabled:h(T.options.disabled)}));function J(){T.shortcuts?.nested&&Object.entries(T.shortcuts.nested).forEach(([e,n])=>{let a=t();X[e]=a.run(()=>{let e=f();return b(()=>{e.value=n(u({$dirty:c,$path:i,$value:r,$output:r,$silentValue:s,$error:g,$originalValue:C,$pending:z,$invalid:p,$correct:m,$ready:P,$anyDirty:l,$name:K,$silentErrors:U,$initialValue:x,$errors:V,$fields:R,$edited:W,$anyEdited:G,$issues:B,$self:F,"~modifiers":_(T.options)}))}),e}),O.push(a)})}let Y=e({get:()=>v?Object.fromEntries(Object.entries(v?.(R.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,ie(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,ae(t,e)]))}]:[])):{},set(){}}),X={};return J(),{$dirty:c,$anyDirty:l,$invalid:p,$correct:m,$error:g,$pending:z,$issues:B,$errors:V,$silentErrors:U,$clearExternalErrorsOnValidate:N,$ready:P,$name:K,$shortcuts:X,$groups:Y,$silentValue:s,$immediateDirty:A,$edited:W,$anyEdited:G,$localPending:L,$autoDirty:E,$silent:S,$value:a,$output:o,$modifiers:ee}})}function H(){if(A?.(),N?.(),P?.(),j?.(),O=[],D={},R.value)for(let e of Object.values(R.value))e?.$unwatch()}function U(e){c&&(c.value=e)}function W(){c&&!k(c.value)&&(c.value={})}function G(){D&&D.$immediateDirty.value!==`lazy-non-empty`&&Ee(D.$immediateDirty.value,x.value,p?.value??x.value)&&q(!0,!1)}function K(e,t){if(N?.(),H(),!t)if(e?.toOriginalState)r.value=M({...C}),x.value=M({...C});else if(e?.toInitialState)r.value=M({...x.value});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,x.value=M(t),r.value=M(t)}else x.value=M(r.value);if(!e?.keepValidationState){for(let t of Object.values(R.value))t?.$reset(e,!0);F.value?.$reset(e,!0)}e?.clearExternalErrors===!1&&W(),z(),t||(I(),G())}function q(e=!0,t=!1){for(let n of Object.values(R.value))n?.$touch(e,t);F.value?.$touch(e,t)}function ee(e){return e.filter(([e,t])=>S(t)&&!fe(t)?!(t&&typeof t==`object`&&`_null`in t)&&!k(t):Array.isArray(t)?t.length:!0)}function J(e=!0){let t=Object.entries(R.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=ee(t)),Object.fromEntries(t)}function Y(){for(let e of Object.values(R.value))e.$abort();F.value?.$abort()}async function X(e){return e&&(r.value=e),await s(),Z()}async function Z(e){try{if(e&&(r.value=e),T.schemaMode)return T.onValidate?(q(!1),D.$localPending.value=!0,T.onValidate()):{valid:!1,data:r.value,errors:D.$errors.value,issues:D.$issues.value};{let e=r.value;Y(),D.$clearExternalErrorsOnValidate.value&&W();let t=[...Object.values(R.value).map(e=>e.$validateWithoutRaceconditions()),...F.value?[F.value?.$validateWithoutRaceconditions()]:[]];return{valid:(await Promise.allSettled(t)).every(e=>e.status===`fulfilled`&&e?.value?.valid===!0),data:e,errors:D.$errors.value,issues:D.$issues.value}}}catch{return{valid:!1,data:r.value,errors:D.$errors.value,issues:D.$issues.value}}finally{D.$localPending.value=!1}}function te(e){try{return e&&(r.value=e),D.$clearExternalErrorsOnValidate.value&&W(),[...Object.values(R.value).map(e=>e.$validateSync()),...F.value?[F.value?.$validateSync()]:[]].every(e=>!!e)}catch{return!1}}G();let{$shortcuts:ne,$localPending:re,...oe}=D,Q=u({...oe,...ne,$path:i,$initialValue:x,$originalValue:C,$self:F,$externalErrors:c,$fields:R,$reset:K,$touch:q,$validate:X,$unwatch:H,$watch:V,$setExternalErrors:U,$clearExternalErrors:W,$extractDirtyFields:J,$abort:Y,$validateSync:te,$validateWithoutRaceconditions:Z,...o?{"~modifiers":D.$modifiers}:{},...Ce(X)});return Object.defineProperty(Q,Symbol.for(`regle:instance`),{value:!0}),b(()=>{for(let e of Object.keys(Q).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete Q[e];for(let e of Object.values(R.value))e?.$name&&Object.assign(Q,{[e.$name]:e})}),Q}function Me({rulesDef:e,...n}){if(ce(e,n.state))return Ae({rulesDef:e,...n});if(se(n.state,e)){if(q(n.state))return je({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 je({rulesDef:e,...a,state:r.fakeState})}}else if(le(e))return Oe({rulesDef:a(e.value)?e.value:e,...n})}function Ne({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,C=f(),w=f(),E,D,O;function k(){O=y(()=>h(i.disabled),async e=>{e?F():(N(),j())})}function A(e){D?.(),e&&(S(e)&&Object.keys(e).some(e=>e.includes(`.`))?w.value=T(e):Array.isArray(e)?w.value=e:w.value=e??{}),M()}function j(){E=y(()=>i.externalErrors?.value,A,{deep:!0})}function M(){D=y(()=>w.value,e=>{E?.(),i.externalErrors?.value&&(i.externalErrors.value=e),A(e),j()},{deep:!0})}function N(){se(o,a)?C.value=je({rootRules:a,rulesDef:a,state:o,customMessages:c?.(),storage:_,options:i,rootInitialState:e,externalErrors:w,validationGroups:i.validationGroups,initialState:e,originalState:n,shortcuts:u,fieldName:void 0,path:``,cachePath:``,schemaErrors:d,rootSchemaErrors:d,schemaMode:p,onValidate:m,overrides:g}):le(a)&&(C.value=Oe({rulesDef:a,state:o,customMessages:c?.(),storage:_,options:i,rootInitialState:e,externalErrors:w,initialState:e,originalState:n,shortcuts:u,fieldName:void 0,path:``,cachePath:``,schemaMode:p,schemaErrors:d,onValidate:m,overrides:g}))}function P(){D=void 0,E=void 0,O=void 0}function F(){C.value?.$unwatch(),D?.(),E?.()}function I(){v.value||(v.value=!0,x=t(!0),x.run(()=>{A(i.externalErrors?.value),N(),h(i.disabled)?s().then(()=>{C.value?.$unwatch()}):j(),k()}))}function L(){v.value&&(v.value=!1,F(),O?.(),P(),x?.stop(),x=void 0)}function R(){let e=r();!e||b.has(e)||(v.value||I(),b.add(e),l(()=>{b.delete(e),b.size||L()}))}return I(),R(),{regle:C,bindToCurrentScope:R}}function Pe({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(Q,void 0)??{},m={...d.modifiers,...o},h=()=>({...d.rules?.(),...s?.()}),_={...d.shortcuts,...c},v={...d.overrides,...l},y={...m,...r},x,C=p(u??{});typeof n==`function`&&(x=b(()=>{C.value=n(t),g(C)}));let w=f(S(t.value)?{...M(t.value)}:M(t.value)),T=S(t.value)?{...M(t.value)}:M(t.value);ne(()=>{x?.()});let{regle:E,bindToCurrentScope:D}=Ne({scopeRules:C,state:t,options:y,initialState:w,originalState:T,customRules:h,shortcuts:_,overrides:v});return{regle:E,bindToCurrentScope:D}}function Fe(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}=Pe({state:l,rulesFactory:s,options:c,globalOptions:r,customRules:n,shortcuts:i,overrides:o});return{r$:R(d,u,p)}}return s}const Ie=Fe();function Le(){function e(e,t){return t}return e}const Re=Le();function ze(e,t){return C(h(e).$errors,String(t))}function Be(e,t){return C(h(e).$issues,String(t))}function Ve(e){let t={};if(Object.entries(e).some(([e,t])=>ue(t)||typeof t==`function`))return null;for(let n in e){let r=e[n];r&&S(r)&&`$each`in r&&r.$each&&S(r.$each)?t[n]=[Ve(r.$each)]:S(r)&&!k(r)&&!Object.entries(r).some(([e,t])=>ue(t)||typeof t==`function`)?t[n]=Ve(r):t[n]=null}return t}function He(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(Ve(c?.value)),u=e(()=>h(s?.disabled)??!1),{regle:d,bindToCurrentScope:p}=Pe({state:l,rulesFactory:c,options:s,globalOptions:r,customRules:n,shortcuts:i,overrides:o});return R(d,u,p)}return s}const Ue=He();function We(e){if(O(e)){let t=e,n=class extends t{constructor(...e){return super(...e),Ge(this)}};return Object.defineProperty(n,`name`,{value:t.name}),Ge(n)}return Ge(e)}function Ge(e){return!E(e,$.REGLE_STATIC)&&Object.isExtensible(e)&&D(e,$.REGLE_STATIC,!0),e}function Ke({rules:e,modifiers:t,shortcuts:n,overrides:r}){let i=Fe({rules:e,modifiers:t,shortcuts:n,overrides:r}),a=He({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:Le(),useRules:a}}function qe(e,{rules:t,modifiers:n,shortcuts:r,overrides:i}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?w(a.modifiers,n):a.modifiers??n,c=a.shortcuts&&r?w(a.shortcuts,r):a.shortcuts??r,l=a.overrides&&i?w(a.overrides,i):a.overrides??i,u=Fe({rules:o,modifiers:s,shortcuts:c,overrides:l});return u.__config={rules:o,modifiers:s,shortcuts:c,overrides:l},{useRegle:u,inferRules:Le()}}function Je(e){return e}function Ye(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(){Object.values(t).forEach(e=>{e.$clearExternalErrors()})}function D(e){try{return e&&(i.value=e),Object.values(t).every(t=>t.$validateSync(e))}catch{return!1}}async function O(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 k=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:O,$validateSync:D,$extractDirtyFields:w,$clearExternalErrors:E,$setExternalErrors:T});return b(()=>{if(!r){for(let e of Object.keys(k).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete k[e];for(let[e,t]of Object.entries(x.value))Object.assign(k,{[e]:t})}}),k}function Xe(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`?Ye(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})})}),Ye(a,!n.asRecord)):Ye(e[`~~global`]??{},!n.asRecord)}return{r$:s.r$}}return{useCollectScope:r}}function Ze(t,r){let i=r??Ie;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}-${te()}`),_=e(()=>p.value??`instance-${g.value}`),{r$:v}=i(r,a,{...d,id:p.value});x(),ne(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 Qe(e){let t=(e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):re(()=>f({"~~global":{}})))(),{useScopedRegle:n}=Ze(t,e?.customUseRegle),{useCollectScope:r}=Xe(t,{asRecord:e?.asRecord});return{useScopedRegle:n,useCollectScope:r}}const{useCollectScope:$e,useScopedRegle:et}=Qe(),tt=$e,nt=et;function rt(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(ue(t))return h(t._params?.[0])===i.value}})||r.find(e=>S(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`))||{})}function it(e,t,n){return!!e&&t in e&&S(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function at(e,t,n,r){let i=a(e)?m(e.value,`$fields`):m(e,`$fields`),o=f();return y(i,async()=>{await s(),it(i.value,t,n)?o.value=m(e).value:o.value=void 0},{immediate:!0,flush:`pre`}),o}function ot(e){return e}function st(e,t){return n=>w({...e},t(n))}const ct={install(e,t){e.provide(oe,he),t&&e.provide(Q,t)}};export{z as InternalRuleType,ct as RegleVuePlugin,W as createRule,Qe as createScopedUseRegle,rt as createVariant,Ke as defineRegleConfig,Je as defineRegleOptions,ot as defineRules,qe as extendRegleConfig,be as flatErrors,ze as getErrors,Be as getIssues,Re as inferRules,K as isRegleInstance,We as markStatic,Ye as mergeRegles,it as narrowVariant,st as refineRules,B as unwrapRuleParameters,tt as useCollectScope,Ie as useRegle,Ne as useRootStorage,Ue as useRules,nt as useScopedRegle,at as variantToRef};
|