@regle/core 1.18.2-beta.1 → 1.18.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/regle-core.d.ts +71 -10
- package/dist/regle-core.js +84 -10
- 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.18.2
|
|
2
|
+
* @regle/core v1.18.2
|
|
3
3
|
* (c) 2026 Victor Garcia
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
@@ -1221,7 +1221,12 @@ interface $InternalRegleFieldStatus extends $InternalRegleCommonStatus {
|
|
|
1221
1221
|
readonly $schemaMode?: boolean;
|
|
1222
1222
|
readonly '~modifiers'?: FieldRegleBehaviourOptions;
|
|
1223
1223
|
$extractDirtyFields: (filterNullishValues?: boolean) => any;
|
|
1224
|
-
$validate: (forceValues?:
|
|
1224
|
+
$validate: (forceValues?: unknown) => Promise<$InternalRegleResult>;
|
|
1225
|
+
/**
|
|
1226
|
+
* Validates the field synchronously without waiting for async rules.
|
|
1227
|
+
* @internal
|
|
1228
|
+
*/
|
|
1229
|
+
$validateSync: (forceValues?: unknown) => boolean;
|
|
1225
1230
|
}
|
|
1226
1231
|
/**
|
|
1227
1232
|
* @public
|
|
@@ -1276,6 +1281,41 @@ interface RegleCommonStatus<TValue = any, TRules extends Record<string, any> = n
|
|
|
1276
1281
|
* This value reflect the original value of the field at original call. This can't be mutated
|
|
1277
1282
|
*/
|
|
1278
1283
|
readonly $originalValue: JoinDiscriminatedUnions<UnwrapNestedRefs<TValue>>;
|
|
1284
|
+
/**
|
|
1285
|
+
* Validates the field synchronously without waiting for async rules.
|
|
1286
|
+
*
|
|
1287
|
+
* This method provides immediate validation feedback by running only synchronous rules.
|
|
1288
|
+
* Async rules are skipped and assumed to be valid. Unlike `$validate`, this method:
|
|
1289
|
+
* - Does NOT wait for async validation results
|
|
1290
|
+
* - Returns a boolean directly instead of a Promise
|
|
1291
|
+
*
|
|
1292
|
+
* Use this when you need immediate validation feedback without side effects,
|
|
1293
|
+
* such as for real-time UI feedback or form gating logic.
|
|
1294
|
+
*
|
|
1295
|
+
* @param forceValues - Optional values to set before validating. Note that due to Vue's
|
|
1296
|
+
* reactivity system, you may need to wait for `nextTick()` after
|
|
1297
|
+
* setting values for rules to recalculate.
|
|
1298
|
+
* @returns `true` if all synchronous rules pass, `false` otherwise.
|
|
1299
|
+
* Always returns `false` in schema mode.
|
|
1300
|
+
*
|
|
1301
|
+
* @example
|
|
1302
|
+
* ```ts
|
|
1303
|
+
* // Basic usage
|
|
1304
|
+
* const isValid = r$.$validateSync();
|
|
1305
|
+
*
|
|
1306
|
+
* // Field-level validation
|
|
1307
|
+
* const isEmailValid = r$.email.$validateSync();
|
|
1308
|
+
*
|
|
1309
|
+
* // Use with form submission gating
|
|
1310
|
+
* function handleSubmit() {
|
|
1311
|
+
* if (r$.$validateSync()) {
|
|
1312
|
+
* // Proceed with submission
|
|
1313
|
+
* }
|
|
1314
|
+
* }
|
|
1315
|
+
* ```
|
|
1316
|
+
*
|
|
1317
|
+
*/
|
|
1318
|
+
$validateSync: (forceValues?: unknown) => boolean;
|
|
1279
1319
|
/** Marks the field and all nested properties as $dirty. */
|
|
1280
1320
|
$touch(): void;
|
|
1281
1321
|
/**
|
|
@@ -1306,8 +1346,21 @@ type RegleRuleStatus<TValue = any, TParams extends any[] = any[], TMetadata exte
|
|
|
1306
1346
|
readonly $valid: boolean; /** If the rule is async, indicates if it's currently pending. Always false if it's synchronous. */
|
|
1307
1347
|
readonly $pending: boolean; /** Returns the current path of the rule (used internally for tracking) */
|
|
1308
1348
|
readonly $path: string; /** Contains the metadata returned by the validator function. */
|
|
1309
|
-
readonly $metadata: TMetadata extends boolean ? TMetadata : Omit<TMetadata, '$valid'>;
|
|
1310
|
-
|
|
1349
|
+
readonly $metadata: TMetadata extends boolean ? TMetadata : Omit<TMetadata, '$valid'>;
|
|
1350
|
+
/**
|
|
1351
|
+
* Run the rule validator asynchronously and compute its properties like `$message` and `$active`.
|
|
1352
|
+
* @returns A promise that resolves to `true` if the rule passes, `false` otherwise.
|
|
1353
|
+
*/
|
|
1354
|
+
$parse(): Promise<boolean>;
|
|
1355
|
+
/**
|
|
1356
|
+
* Run only the rule validator synchronously, skipping async rules.
|
|
1357
|
+
*
|
|
1358
|
+
* If the rule is async, this method returns `true` (assumes valid) since it cannot
|
|
1359
|
+
* wait for the async result. Use `$parse()` for async rules.
|
|
1360
|
+
*
|
|
1361
|
+
* @returns `true` if the sync rule passes or if the rule is async, `false` otherwise.
|
|
1362
|
+
*/
|
|
1363
|
+
$parseSync(): boolean; /** Reset the $valid, $metadata and $pending states */
|
|
1311
1364
|
$reset(): void; /** Returns the original rule validator function. */
|
|
1312
1365
|
$validator: ((value: IsUnknown<TValue> extends true ? any : MaybeInput<TValue>, ...args: any[]) => RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>) & ((value: IsUnknown<TValue> extends true ? any : TValue, ...args: [TParams] extends [never[]] ? [] : [unknown[]] extends [TParams] ? any[] : TParams) => RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>);
|
|
1313
1366
|
} & ([TParams] extends [never[]] ? {} : [unknown[]] extends [TParams] ? {
|
|
@@ -1339,7 +1392,13 @@ interface $InternalRegleRuleStatus {
|
|
|
1339
1392
|
$fieldError: boolean;
|
|
1340
1393
|
$maybePending: boolean;
|
|
1341
1394
|
$validator(value: any, ...args: any[]): RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>;
|
|
1395
|
+
/** @internal */
|
|
1342
1396
|
$parse(): Promise<boolean>;
|
|
1397
|
+
/**
|
|
1398
|
+
* Run only the rule validator synchronously. Returns `true` for async rules.
|
|
1399
|
+
* @internal
|
|
1400
|
+
*/
|
|
1401
|
+
$parseSync(): boolean;
|
|
1343
1402
|
$reset(): void;
|
|
1344
1403
|
$unwatch(): void;
|
|
1345
1404
|
$watch(): void;
|
|
@@ -1561,12 +1620,12 @@ type SuperCompatibleRegleStatus = {
|
|
|
1561
1620
|
readonly $errors: Record<string, RegleValidationErrors<any, false>>;
|
|
1562
1621
|
readonly $silentErrors: Record<string, RegleValidationErrors<any, false>>;
|
|
1563
1622
|
$extractDirtyFields: (filterNullishValues?: boolean) => Record<string, any>;
|
|
1564
|
-
$validate?: () => Promise<SuperCompatibleRegleResult>;
|
|
1623
|
+
$validate?: (...args: any[]) => Promise<SuperCompatibleRegleResult>;
|
|
1565
1624
|
$reset: (options?: ResetOptions<unknown>) => void;
|
|
1566
1625
|
[x: string]: any;
|
|
1567
1626
|
};
|
|
1568
1627
|
type SuperCompatibleRegleRuleStatus = Omit<$InternalRegleRuleStatus, '$haveAsync' | '$validating' | '$fieldDirty' | '$fieldInvalid' | '$fieldPending' | '$fieldCorrect' | '$fieldError' | '$unwatch' | '$watch' | '$maybePending'>;
|
|
1569
|
-
type SuperCompatibleRegleCommonStatus = Omit<RegleCommonStatus, '$pending'> & {
|
|
1628
|
+
type SuperCompatibleRegleCommonStatus = Omit<RegleCommonStatus, '$pending' | '$validateSync'> & {
|
|
1570
1629
|
$pending?: boolean;
|
|
1571
1630
|
};
|
|
1572
1631
|
interface SuperCompatibleRegleFieldStatus extends SuperCompatibleRegleCommonStatus {
|
|
@@ -1579,10 +1638,10 @@ interface SuperCompatibleRegleFieldStatus extends SuperCompatibleRegleCommonStat
|
|
|
1579
1638
|
readonly $errors: string[];
|
|
1580
1639
|
readonly $inactive: boolean;
|
|
1581
1640
|
readonly $silentErrors: string[];
|
|
1582
|
-
$
|
|
1583
|
-
$
|
|
1641
|
+
$validate?: (...args: any[]) => Promise<SuperCompatibleRegleResult>;
|
|
1642
|
+
$validateSync?: (...args: any[]) => boolean;
|
|
1584
1643
|
}
|
|
1585
|
-
interface SuperCompatibleRegleCollectionStatus extends Omit<SuperCompatibleRegleStatus, '$fields' | '$issues' | '$errors' | '$silentErrors'> {
|
|
1644
|
+
interface SuperCompatibleRegleCollectionStatus extends Omit<SuperCompatibleRegleStatus, '$fields' | '$issues' | '$errors' | '$silentErrors' | 'extractDirtyFields'> {
|
|
1586
1645
|
readonly $self: SuperCompatibleRegleFieldStatus;
|
|
1587
1646
|
readonly $each: Array<SuperCompatibleRegleStatus | SuperCompatibleRegleFieldStatus>;
|
|
1588
1647
|
readonly $issues: SuperCompatibleRegleCollectionIssues;
|
|
@@ -1590,7 +1649,8 @@ interface SuperCompatibleRegleCollectionStatus extends Omit<SuperCompatibleRegle
|
|
|
1590
1649
|
readonly $silentErrors: SuperCompatibleRegleCollectionErrors;
|
|
1591
1650
|
readonly $externalErrors?: string[];
|
|
1592
1651
|
$extractDirtyFields: (filterNullishValues?: boolean) => any[];
|
|
1593
|
-
$validate?: () => Promise<SuperCompatibleRegleResult>;
|
|
1652
|
+
$validate?: (...args: any[]) => Promise<SuperCompatibleRegleResult>;
|
|
1653
|
+
$validateSync?: (...args: any[]) => boolean;
|
|
1594
1654
|
}
|
|
1595
1655
|
type SuperCompatibleRegleCollectionErrors = $InternalRegleCollectionErrors;
|
|
1596
1656
|
type SuperCompatibleRegleCollectionIssues = $InternalRegleCollectionIssues;
|
|
@@ -1666,6 +1726,7 @@ type MergedRegles<TRegles extends Record<string, SuperCompatibleRegleRoot>, TVal
|
|
|
1666
1726
|
readonly $silentIssues: { [K in keyof TRegles]: TRegles[K]['$silentIssues'] }; /** Will return a copy of your state with only the fields that are dirty. By default it will filter out nullish values or objects, but you can override it with the first parameter $extractDirtyFields(false). */
|
|
1667
1727
|
$extractDirtyFields: (filterNullishValues?: boolean) => DeepPartial<TValue>[]; /** Sets all properties as dirty, triggering all rules. It returns a promise that will either resolve to false or a type safe copy of your form state. Values that had the required rule will be transformed into a non-nullable value (type only). */
|
|
1668
1728
|
$validate: (forceValues?: TRegles['$value']) => Promise<MergedReglesResult<TRegles>>;
|
|
1729
|
+
$validateSync: (forceValues?: TRegles['$value']) => boolean;
|
|
1669
1730
|
} & (HasNamedKeys<TRegles> extends true ? { [K in keyof TRegles]: TRegles[K] } : {});
|
|
1670
1731
|
type MergedScopedRegles<TValue extends Record<string, unknown>[] = Record<string, unknown>[]> = Omit<MergedRegles<Record<string, SuperCompatibleRegleRoot>, TValue>, '$instances' | '$errors' | '$silentErrors' | '$value' | '$silentValue' | '$validate' | '$extractDirtyFields'> & {
|
|
1671
1732
|
/** Array of scoped Regles instances */readonly $instances: SuperCompatibleRegleRoot[]; /** Collection of all registered Regles instances values */
|
package/dist/regle-core.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @regle/core v1.18.2
|
|
2
|
+
* @regle/core v1.18.2
|
|
3
3
|
* (c) 2026 Victor Garcia
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
@@ -980,6 +980,22 @@ function createReactiveRuleStatus({ customMessages, rule, ruleKey, state, path,
|
|
|
980
980
|
}
|
|
981
981
|
return ruleResult;
|
|
982
982
|
}
|
|
983
|
+
function computeSyncResult(validator, logWarning = true) {
|
|
984
|
+
if (isRuleDef(rule.value) && rule.value._async) return true;
|
|
985
|
+
const resultOrPromise = validator(state.value, ...scopeState.$params.value);
|
|
986
|
+
if (resultOrPromise instanceof Promise) {
|
|
987
|
+
if (logWarning) console.warn("You used a async validator function on a non-async rule, please use \"async await\" or the \"withAsync\" helper");
|
|
988
|
+
return true;
|
|
989
|
+
} else {
|
|
990
|
+
if (resultOrPromise != null) if (typeof resultOrPromise === "boolean") return resultOrPromise;
|
|
991
|
+
else {
|
|
992
|
+
const { $valid, ...rest } = resultOrPromise;
|
|
993
|
+
$metadata.value = rest;
|
|
994
|
+
return $valid;
|
|
995
|
+
}
|
|
996
|
+
return true;
|
|
997
|
+
}
|
|
998
|
+
}
|
|
983
999
|
async function $parse() {
|
|
984
1000
|
try {
|
|
985
1001
|
$validating.value = true;
|
|
@@ -988,14 +1004,7 @@ function createReactiveRuleStatus({ customMessages, rule, ruleKey, state, path,
|
|
|
988
1004
|
if (isRuleDef(rule.value) && rule.value._async) ruleResult = await computeAsyncResult();
|
|
989
1005
|
else {
|
|
990
1006
|
const validator = scopeState.$validator.value;
|
|
991
|
-
|
|
992
|
-
if (resultOrPromise instanceof Promise) console.warn("You used a async validator function on a non-async rule, please use \"async await\" or the \"withAsync\" helper");
|
|
993
|
-
else if (resultOrPromise != null) if (typeof resultOrPromise === "boolean") ruleResult = resultOrPromise;
|
|
994
|
-
else {
|
|
995
|
-
const { $valid, ...rest } = resultOrPromise;
|
|
996
|
-
ruleResult = $valid;
|
|
997
|
-
$metadata.value = rest;
|
|
998
|
-
}
|
|
1007
|
+
ruleResult = computeSyncResult(validator);
|
|
999
1008
|
}
|
|
1000
1009
|
$valid.value = ruleResult;
|
|
1001
1010
|
return ruleResult;
|
|
@@ -1006,6 +1015,21 @@ function createReactiveRuleStatus({ customMessages, rule, ruleKey, state, path,
|
|
|
1006
1015
|
$maybePending.value = false;
|
|
1007
1016
|
}
|
|
1008
1017
|
}
|
|
1018
|
+
/**
|
|
1019
|
+
* Runs the rule validator synchronously.
|
|
1020
|
+
* If the rule is async, returns true (assumes valid) since it cannot wait.
|
|
1021
|
+
* @returns true if the sync rule passes or rule is async, false otherwise
|
|
1022
|
+
*/
|
|
1023
|
+
function $parseSync() {
|
|
1024
|
+
try {
|
|
1025
|
+
$validating.value = true;
|
|
1026
|
+
return computeSyncResult(scopeState.$validator.value);
|
|
1027
|
+
} catch {
|
|
1028
|
+
return false;
|
|
1029
|
+
} finally {
|
|
1030
|
+
$validating.value = false;
|
|
1031
|
+
}
|
|
1032
|
+
}
|
|
1009
1033
|
function $reset() {
|
|
1010
1034
|
$valid.value = true;
|
|
1011
1035
|
$metadata.value = {};
|
|
@@ -1027,6 +1051,7 @@ function createReactiveRuleStatus({ customMessages, rule, ruleKey, state, path,
|
|
|
1027
1051
|
$maybePending,
|
|
1028
1052
|
$validating,
|
|
1029
1053
|
$parse,
|
|
1054
|
+
$parseSync,
|
|
1030
1055
|
$unwatch,
|
|
1031
1056
|
$watch,
|
|
1032
1057
|
$reset
|
|
@@ -1481,6 +1506,22 @@ function createReactiveFieldStatus({ state, rulesDef, customMessages, path, cach
|
|
|
1481
1506
|
};
|
|
1482
1507
|
}
|
|
1483
1508
|
}
|
|
1509
|
+
/**
|
|
1510
|
+
* Validates the field synchronously by running $parseSync on all rules.
|
|
1511
|
+
* Async rules are skipped and assumed valid.
|
|
1512
|
+
* @param forceValues - Optional value to set before validating
|
|
1513
|
+
* @returns true if all sync rules pass, false if any fail or in schema mode
|
|
1514
|
+
*/
|
|
1515
|
+
function $validateSync(forceValues) {
|
|
1516
|
+
try {
|
|
1517
|
+
if (forceValues) state.value = forceValues;
|
|
1518
|
+
if (!scopeState.$dirty.value) scopeState.$dirty.value = true;
|
|
1519
|
+
if (schemaMode) return false;
|
|
1520
|
+
return Object.values($rules.value).map((rule) => rule.$parseSync()).every((result) => !!result);
|
|
1521
|
+
} catch {
|
|
1522
|
+
return false;
|
|
1523
|
+
}
|
|
1524
|
+
}
|
|
1484
1525
|
function $extractDirtyFields(filterNullishValues = true) {
|
|
1485
1526
|
if (scopeState.$dirty.value) return state.value;
|
|
1486
1527
|
if (filterNullishValues) return { _null: true };
|
|
@@ -1505,6 +1546,7 @@ function createReactiveFieldStatus({ state, rulesDef, customMessages, path, cach
|
|
|
1505
1546
|
$reset,
|
|
1506
1547
|
$touch,
|
|
1507
1548
|
$validate,
|
|
1549
|
+
$validateSync,
|
|
1508
1550
|
$unwatch,
|
|
1509
1551
|
$watch,
|
|
1510
1552
|
$extractDirtyFields,
|
|
@@ -1937,6 +1979,22 @@ function createReactiveCollectionStatus({ state, rulesDef, customMessages, path,
|
|
|
1937
1979
|
};
|
|
1938
1980
|
}
|
|
1939
1981
|
}
|
|
1982
|
+
/**
|
|
1983
|
+
* Validates the collection and all its items synchronously.
|
|
1984
|
+
* Validates both $self rules and each item's rules.
|
|
1985
|
+
* @param forceValues - Optional array value to set before validating
|
|
1986
|
+
* @returns true if all sync rules pass for $self and all items, false otherwise
|
|
1987
|
+
*/
|
|
1988
|
+
function $validateSync(forceValues) {
|
|
1989
|
+
if (forceValues) state.value = forceValues;
|
|
1990
|
+
try {
|
|
1991
|
+
return [$selfStatus.value.$validateSync(forceValues), ...$eachStatus.value.map((status) => {
|
|
1992
|
+
return status.$validateSync();
|
|
1993
|
+
})].every((result) => !!result);
|
|
1994
|
+
} catch {
|
|
1995
|
+
return false;
|
|
1996
|
+
}
|
|
1997
|
+
}
|
|
1940
1998
|
function $clearExternalErrors() {
|
|
1941
1999
|
$selfStatus.value.$clearExternalErrors();
|
|
1942
2000
|
$eachStatus.value.forEach(($each) => {
|
|
@@ -1965,6 +2023,7 @@ function createReactiveCollectionStatus({ state, rulesDef, customMessages, path,
|
|
|
1965
2023
|
$initialValue: initialState,
|
|
1966
2024
|
$originalValue: originalState,
|
|
1967
2025
|
$validate,
|
|
2026
|
+
$validateSync,
|
|
1968
2027
|
$unwatch,
|
|
1969
2028
|
$watch,
|
|
1970
2029
|
$touch,
|
|
@@ -2428,6 +2487,20 @@ function createReactiveNestedStatus({ rulesDef, state, path = "", cachePath, roo
|
|
|
2428
2487
|
scopeState.$localPending.value = false;
|
|
2429
2488
|
}
|
|
2430
2489
|
}
|
|
2490
|
+
/**
|
|
2491
|
+
* Validates all fields synchronously without waiting for async rules.
|
|
2492
|
+
* Unlike $validate, this method does NOT touch fields.
|
|
2493
|
+
* @param forceValues - Optional values to set before validating
|
|
2494
|
+
* @returns true if all sync rules pass, false otherwise
|
|
2495
|
+
*/
|
|
2496
|
+
function $validateSync(forceValues) {
|
|
2497
|
+
try {
|
|
2498
|
+
if (forceValues) state.value = forceValues;
|
|
2499
|
+
return [...Object.values($fields.value).map((statusOrField) => statusOrField.$validateSync()), ...$selfStatus.value ? [$selfStatus.value?.$validateSync()] : []].every((result) => !!result);
|
|
2500
|
+
} catch {
|
|
2501
|
+
return false;
|
|
2502
|
+
}
|
|
2503
|
+
}
|
|
2431
2504
|
const { $shortcuts, $localPending: _$localPending, ...restScopeState } = scopeState;
|
|
2432
2505
|
const fullStatus = reactive({
|
|
2433
2506
|
...restScopeState,
|
|
@@ -2445,6 +2518,7 @@ function createReactiveNestedStatus({ rulesDef, state, path = "", cachePath, roo
|
|
|
2445
2518
|
$clearExternalErrors,
|
|
2446
2519
|
$extractDirtyFields,
|
|
2447
2520
|
$abort,
|
|
2521
|
+
$validateSync,
|
|
2448
2522
|
...rootRules ? { "~modifiers": scopeState.$modifiers } : {},
|
|
2449
2523
|
...createStandardSchema($validate)
|
|
2450
2524
|
});
|
|
@@ -3133,7 +3207,7 @@ function filterInspectorTree(nodes, filter) {
|
|
|
3133
3207
|
return filtered;
|
|
3134
3208
|
}
|
|
3135
3209
|
|
|
3136
|
-
var version$1 = "1.18.2
|
|
3210
|
+
var version$1 = "1.18.2";
|
|
3137
3211
|
|
|
3138
3212
|
function createDevtools(app) {
|
|
3139
3213
|
setupDevtoolsPlugin({
|
package/dist/regle-core.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @regle/core v1.18.2
|
|
2
|
+
* @regle/core v1.18.2
|
|
3
3
|
* (c) 2026 Victor Garcia
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import{computed as e,effectScope as t,getCurrentInstance as n,getCurrentScope as r,isRef as i,markRaw as a,nextTick as o,onMounted as s,onScopeDispose as c,reactive as l,ref as u,shallowRef as d,toRef as f,toValue as p,triggerRef as m,unref as h,version as g,watch as _,watchEffect as v}from"vue";function y(e){return e?.constructor?.name==`File`}function b(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function x(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 S(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 C(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 w(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function T(e,t,n,r=!1){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})}function E(e){return typeof e==`function`&&!!e.prototype&&`constructor`in e.prototype&&e.prototype.constructor===e}function D(e,t=!0,n=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):y(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:b(e)?e==null?!0:n?Object.keys(e).length===0:!1:!String(e).length}const O=Symbol(`regle-rule`);function k(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 A(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=>A(e,t++)))),r==`Map`&&(n=new Map([...e].map(e=>[A(e[0]),A(e[1])]))),r==`Date`&&(n=new Date(e.getTime())),r==`RegExp`&&(n=RegExp(e.source,k(e))),r==`Array`||r==`Object`)for(let r in n=Array.isArray(e)?[]:{},e)n[r]=A(e[r],t++);return n}function j(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 M(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 N(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(!N(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(b(e)&&b(t)&&s&&(r||!r&&n)&&!N(e[s],t[s],n,!1))return!1}return!0}return e!==e&&t!==t}var P=class extends Error{constructor(e=`Promise was aborted`){super(e),this.name=`AbortError`}};function F(e){let t=new AbortController,{signal:n}=t,r=new Promise((t,r)=>{function i(){r(new P)}n.addEventListener(`abort`,i),e.then(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new P):t(e)}).catch(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new P):r(e)})});function i(e){t.abort(e)}return{promise:r,abort:i,signal:n}}const I={Inline:`__inline`,Async:`__async`};function L(e){try{return e.map(e=>p(e))}catch{return[]}}function R(t){return t.map(t=>t instanceof Function?e(t):i(t)?t:f(()=>t))}function z(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 B(e,...t){let{validator:n,type:r,async:i}=e,o=i||r===I.Async||n.constructor.name===`AsyncFunction`;return a({validator(n,...r){return e.validator(n,...L(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:L(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:L(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:L(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...L(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:o,_params:R(t),_brand:O})}function V(e){if(typeof e.validator==`function`){let t=[],n=e.async??e.validator.constructor.name===`AsyncFunction`,r=B({...e,async:n},...t);if(z(e.validator)>1){let t=function(...t){return B(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`)}function H(e){return b(e.value)}function U(e,n,r){let i=t(),a;return a=e instanceof Function?i.run(()=>e(n,r??0)):e,{scope:i,unwrapped:a}}const W={LessThan:-1,EqualTo:0,GreaterThan:1};function G(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 W.GreaterThan;if(i>t)return W.LessThan;if(!isNaN(t)&&isNaN(i))return W.GreaterThan;if(isNaN(t)&&!isNaN(i))return W.LessThan}return W.EqualTo}const ee=G(g,`3.5.0`)!==-1;function K(){return Math.floor(Math.random()*Date.now()).toString()}function q(){return typeof window>`u`?K():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function J(e){return r()?(c(e),!0):!1}function te(e){let n=!1,r,i=t(!0);return((...t)=>(n||=(r=i.run(()=>e(...t)),!0),r))}function Y(e,t){return e.some(e=>t?e?.[t]:!1)}function X(e,t){return t?e.reduce((e,n)=>{let r=n?.[t]||[];return e.concat(r)},[]):[]}function Z(){let e=d(new Map),t=d(new Map),n=d(new Map),i=d(new Map),a=d(new Map),o=d(new Map);function s(e){let n=t.value.get(e);if(n)return n;{let n=u({});return t.value.set(e,n),n}}function l(e){let t=n.value.get(e);if(t)return t;{let t=u([]);return n.value.set(e,t),t}}function f(e,t,n){o.value.set(`${e}-${t}`,n)}function p(e,t){return o.value.get(`${e}-${t}`)}function m(e,t){e&&t!=null&&o.value.delete(`${e}-${t}`)}function h(e,t){i.value.set(e,t)}function g(e){return i.value.get(e)??!1}function _(t,n){e.value.set(t,n)}function v(t,n){let r=e.value.get(t);if(r)return y(n,r)?{valid:!0}:{valid:!1}}function y(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];return!i||!r||typeof r==`function`||typeof i==`function`||typeof r==`number`||typeof r==`boolean`||typeof r==`string`?!1:r._params?r._params?.every((e,t)=>{if(typeof i==`number`||typeof i==`boolean`||typeof i==`string`)return!0;{let e=L(i._params),n=L(r._params);return e?.[t]===n?.[t]}}):!0})}function b(e){let t=a.value.get(e);if(t)return t;{let t=u(!1),n=u(!0),r=u({}),i=u(!1);return a.value.set(e,{$pending:t,$valid:n,$metadata:r,$validating:i}),{$pending:t,$valid:n,$metadata:r,$validating:i}}}return r()&&c(()=>{e.value.clear(),t.value.clear(),n.value.clear(),i.value.clear(),a.value.clear(),o.value.clear()}),{addRuleDeclEntry:_,setDirtyEntry:h,checkRuleDeclEntry:v,getDirtyState:g,trySetRuleStatusRef:b,getFieldsEntry:s,getCollectionsEntry:l,getArrayStatus:p,addArrayStatus:f,deleteArrayStatus:m,arrayStatusStorage:o}}const ne=Symbol(`regle`),Q={REGLE_STATIC:`__regle_static`};function re(e,t){return!se(e.value)&&(H(e)||b(t.value)&&!D(t.value)&&!Object.entries(t.value).some(([e,t])=>$(t)||typeof t==`function`))}function ie(e,t){return!!e.value&&b(e.value)&&`$each`in e.value||Array.isArray(t.value)}function ae(e){return!!e.value&&(b(e.value)||H(e.value))}function $(e){return(b(e)||typeof e==`function`)&&`_validator`in e}function oe(e){return typeof e.value==`function`?`_validator`in e.value:!0}function se(e){return b(e)&&w(e,Q.REGLE_STATIC)&&e[Q.REGLE_STATIC]===!0}function ce(e){return b(e)&&`$fields`in e}function le(e){return!!e&&`$rules`in e}function ue({field:e,silent:t=!1}){let n=Object.entries(e.$rules??{}).map(([n,r])=>{let i=``;if(t&&!r.$valid)i=r.$message;else if(!r.$valid&&e.$error&&!r.$validating)i=r.$message;else return null;return{$message:i,$property:e.fieldName,$rule:n,$type:r.$type,...typeof r.$metadata==`object`?r.$metadata:{}}}).filter(e=>!!e).reduce((e,t)=>(typeof t.$message==`string`?e.push(t):e.push(...t.$message.map(e=>({...t,$message:e}))),e),[]),r=e.$error&&e.$externalErrors?e.$externalErrors.map(t=>({$message:t,$property:e.fieldName,$rule:`external`,$type:void 0})):[],i=[];return e.$schemaErrors&&e.$error&&(i=!Array.isArray(e.$schemaErrors)&&`$self`in e.$schemaErrors?e.$schemaErrors.$self??[]:e.$schemaErrors??[]),[...n,...r,...i]}function de({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 fe(e){return b(e)&&`$each`in e}function pe(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!b(e)))return e;if(fe(e)){let t=n?e.$self?.map(e=>({message:e,path:[]}))??[]:e.$self??[],r=e.$each?.map(e=>me(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>me(t,n,[e])).flat()}function me(e,t=!1,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(e=>!b(e)))return t?e.map(e=>({message:e,path:r??[]})):e;if(fe(e)){let n=r?.length?e.$self?.map(e=>({message:e,path:r??[]}))??[]:e.$self??[],i=e.$each?.map((e,n)=>me(e,t,r?.concat(n)))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>me(n,t,r?.concat(e))).flat()}function he({customMessages:n,rule:r,ruleKey:i,state:a,path:o,cachePath:s,storage:c,modifiers:d}){let f=t(),p={},m,h=e(()=>$(r.value)&&r.value._async),g=u(!1),{$pending:v,$valid:y,$metadata:b,$validating:x}=c.trySetRuleStatusRef(`${s}.${i}`);function S(){f=t(),p=f.run(()=>{let t=u(!1),s=u(!1),c=u(!0),l=u(!1),d=u(!1),f=e(()=>({$value:a.value,$error:s.value,$dirty:t.value,$pending:l.value,$correct:d.value,$invalid:c.value,$rule:{$valid:y.value,$invalid:!y.value,$pending:v.value},$params:S.value,...b.value})),p=e(()=>{try{return oe(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),oe(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 D(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),_=e(()=>oe(r)&&r.value.type?r.value.type:i),x=e(()=>oe(r)?r.value.validator:r.value),S=e(()=>typeof r.value==`function`?[]:L(r.value._params??[]));return{$active:p,$message:h,$type:_,$validator:x,$params:S,$path:e(()=>`${o}.${i}`),$tooltip:g,$fieldCorrect:d,$fieldError:s,$fieldDirty:t,$fieldPending:l,$fieldInvalid:c}}),m=_(p?.$params,()=>{(!d.$silent.value||d.$rewardEarly.value&&p.$fieldError.value)&&T()},{deep:ee?1:!0})}S();function C(){y.value=!0,p.$fieldDirty.value&&(v.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{v.value=!1}return e}async function T(){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,n=t(a.value,...p.$params.value);if(!(n instanceof Promise)&&n!=null)if(typeof n==`boolean`)e=n;else{let{$valid:t,...r}=n;e=t,b.value=r}}return y.value=e,e}catch{return!1}finally{x.value=!1,g.value=!1}}function E(){y.value=!0,b.value={},v.value=!1,x.value=!1,S()}function O(){m(),f.stop(),f=t()}return l({...p,$pending:v,$valid:y,$metadata:b,$haveAsync:h,$maybePending:g,$validating:x,$parse:T,$unwatch:O,$watch:S,$reset:E})}function ge(e){return{"~standard":{version:1,vendor:`regle`,validate:async t=>{let{valid:n,data:r,errors:i}=await e(t);return n?{value:r,issues:[]}:{issues:pe(i,{includePath:!0})}}}}}function _e({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,fieldName:s,storage:c,options:d,externalErrors:p,schemaErrors:m,schemaMode:g,onUnwatch:y,$isArray:x,initialState:S,originalState:C,shortcuts:w,overrides:T,onValidate:E}){let O=t(),k,P=[],I,L,R,z,B=()=>{},V,H=()=>{},U=u(!1);function W(){let e=r.value,t=c.checkRuleDeclEntry(o,e),s={};for(let t in e)t.startsWith(`$`)&&(s[t]=e[t]);Z.value=s,J();let l=r.value,u=[];for(let e in l){if(e.startsWith(`$`)||e.startsWith(`~`))continue;let t=l[e];if(!t)continue;let r=f(()=>t);u.push([e,he({modifiers:{$silent:k.$silent,$rewardEarly:k.$rewardEarly},customMessages:i,rule:r,ruleKey:e,state:n,path:a,cachePath:o,storage:c,$debounce:Z.value.$debounce})])}X.value=Object.fromEntries(u),k.processShortcuts(),G(),K(),t?.valid!=null&&(k.$dirty.value=c.getDirtyState(o),(k.$dirty.value&&!k.$silent.value||k.$rewardEarly.value&&k.$error.value)&&B()),c.addRuleDeclEntry(o,e)}function G(){B=k.$debounce.value>0?M(Y,k.$debounce.value,{trackDebounceRef:U}):Y}function K(){H=k.$debounce.value>0?M(()=>{k.$dirty.value=!0},k.$debounce.value):()=>{k.$dirty.value=!0}}function q(){if(X.value)for(let e of Object.values(X.value))e.$unwatch();L(),z?.(),k.$dirty.value&&c.setDirtyEntry(o,k.$dirty.value),I?.(),O.stop(),O=t();for(let e of P)e.stop();P=[],y?.(),R?.()}function J(){if(X.value)for(let e of Object.values(X.value))e.$watch();k=O.run(()=>{let i=u(!1),a=u(!1),o=e(()=>i.value),c=e(()=>x||se(n.value)),f=e(()=>Z.value.$debounce==null?k.$haveAnyAsyncRule.value?200:0:Z.value.$debounce),_=e(()=>Z.value.$deepCompare==null?!1:Z.value.$deepCompare),y=e(()=>Z.value.$lazy==null?h(d.lazy)==null?!1:h(d.lazy):Z.value.$lazy),b=e(()=>Z.value.$immediateDirty==null?h(d.immediateDirty)==null?!1:h(d.immediateDirty):Z.value.$immediateDirty),C=e(()=>Z.value.$rewardEarly==null?h(d.rewardEarly)==null?!1:h(d.rewardEarly):Z.value.$rewardEarly),E=e(()=>Z.value.$clearExternalErrorsOnChange==null?h(d.clearExternalErrorsOnChange)==null?!O.value:h(d.clearExternalErrorsOnChange):Z.value.$clearExternalErrorsOnChange),O=e(()=>C.value?!0:Z.value.$silent==null?h(d.silent)==null?!1:h(d.silent):Z.value.$silent),A=e(()=>Z.value.$autoDirty==null?h(d.autoDirty)==null?!0:h(d.autoDirty):Z.value.$autoDirty),M=e(()=>{for(let e of Object.values(X.value))if(e.$validating)return!0;return!1}),F=e({get:()=>n.value,set(e){I(),n.value=e,te()}}),L=e(()=>U.value?J.value&&i.value:J.value&&!q.value&&i.value),R=e(()=>ue({field:{$rules:X.value,$error:L.value,$externalErrors:p?.value,$schemaErrors:m?.value,fieldName:Y.value}})),z=e(()=>ue({field:{$rules:X.value,$error:L.value,$externalErrors:p?.value,$schemaErrors:m?.value,fieldName:Y.value},silent:!0})),B=e(()=>R.value.map(e=>e.$message)),V=e(()=>z.value.map(e=>e.$message)),H=u(!1);function W(e,t){return t instanceof Date&&e instanceof Date?j(t).getDate()!==j(e).getDate():t==null?!!e:Array.isArray(e)&&Array.isArray(t)?!N(e,t,Z.value.$deepCompare):t!==e}v(()=>{i.value?Z.value.$isEdited?H.value=Z.value.$isEdited(n.value,S.value,W):T?.isEdited?H.value=T.isEdited(n.value,S.value,W):H.value=W(n.value,S.value):H.value=!1});let G=e(()=>H.value),ee=e(()=>de({field:{$rules:X.value}})),K=e(()=>!(J.value||q.value)),q=e(()=>a.value||!C.value?Object.entries(X.value).some(([e,t])=>t.$pending):!1),J=e(()=>p?.value?.length||m?.value?.length?!0:ne.value?!1:Object.values(X.value).some(e=>!e.$valid||e.$maybePending)),Y=e(()=>s??d.id??`root`),ne=e(()=>!g&&!Object.keys(r.value).some(e=>!e.startsWith(`$`))),Q=e(()=>{if(p?.value?.length||ne.value||U.value)return!1;if(i.value&&!D(n.value)&&!M.value&&!q.value){if(g)return!m?.value?.length;{let e=Object.values(X.value);for(let t of e)if(t.$active&&!t.$valid)return!1;return e.some(e=>e.$active)}}return!1}),re=e(()=>Object.values(X.value).some(e=>e.$haveAsync)),ie=e(()=>({$debounce:f.value,$lazy:y.value,$rewardEarly:C.value,$autoDirty:A.value,$silent:O.value,$clearExternalErrorsOnChange:E.value}));function ae(){w?.fields&&Object.entries(w.fields).forEach(([e,r])=>{let a=t();$[e]=a.run(()=>{let e=u();return v(()=>{e.value=r(l({$dirty:i,$externalErrors:p?.value??[],$value:n,$silentValue:F,$rules:X,$error:L,$pending:q,$invalid:J,$correct:Q,$errors:B,$ready:K,$silentErrors:V,$anyDirty:o,$tooltips:ee,$name:Y,$inactive:ne,$edited:H,$anyEdited:G}))}),e}),P.push(a)})}let $={};return{$error:L,$pending:q,$invalid:J,$correct:Q,$debounce:f,$deepCompare:_,$lazy:y,$immediateDirty:b,$ready:K,$issues:R,$silentIssues:z,$errors:B,$silentErrors:V,$rewardEarly:C,$autoDirty:A,$silent:O,$clearExternalErrorsOnChange:E,$anyDirty:o,$edited:H,$anyEdited:G,$name:Y,$haveAnyAsyncRule:re,$shortcuts:$,$validating:M,$tooltips:ee,$dirty:i,processShortcuts:ae,$silentValue:F,$inactive:ne,$modifiers:ie,$isArrayOrRegleStatic:c}}),te(),L=_(k.$dirty,e=>{c.setDirtyEntry(o,e),Object.values(X.value).forEach(t=>{t.$fieldDirty=e})}),z=_([k.$error,k.$correct,k.$invalid,k.$pending],()=>{Object.values(X.value).forEach(e=>{e.$fieldError=k.$error.value,e.$fieldInvalid=k.$invalid.value,e.$fieldPending=k.$pending.value,e.$fieldCorrect=k.$correct.value})}),R=_(k.$haveAnyAsyncRule,G)}function te(){I=_(n,()=>{k.$autoDirty.value&&!k.$silent.value&&(k.$dirty.value||H()),r.value instanceof Function&&W(),(!k.$silent.value||k.$rewardEarly.value&&k.$error.value)&&B(),k.$clearExternalErrorsOnChange.value&&ce()},{deep:k.$isArrayOrRegleStatic.value?!0:ee?1:!0})}async function Y(){try{let{promise:e}=re(Promise.allSettled(Object.values(X.value).map(e=>e.$parse())));await e}catch{}}let X=u({}),Z=u({});W();function ne(e,t){if(Q(),ce(),k.$dirty.value=!1,c.setDirtyEntry(o,!1),!t)if(e?.toOriginalState)n.value=A(C),S.value=A(C);else if(e?.toInitialState)n.value=A(S.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,S.value=A(t),n.value=A(t)}else S.value=b(n.value)&&!se(n.value)?A(n.value):Array.isArray(n.value)?[...n.value]:n.value;if(e?.clearExternalErrors&&ce(),!t&&!e?.keepValidationState)for(let e of Object.values(X.value))e.$reset();if(!k.$lazy.value&&!k.$silent.value&&!t)for(let e of Object.values(X.value))e.$parse()}function Q(){`cancel`in B&&B.cancel()}function re(e){return V&&V.abort(),V=F(e),V}function ie(){Q(),V&&V.abort()}function ae(e=!0,t=!1){k.$dirty.value||H(),t&&e?(!k.$silent.value||k.$rewardEarly.value&&k.$error.value)&&(Q(),B()):e&&(Q(),B())}async function $(e){try{if(e&&(n.value=e),g)return E?(ae(!1),E()):{valid:!1,data:n.value,errors:k.$errors.value,issues:k.$issues.value};let t=n.value;if(!k.$dirty.value)k.$dirty.value=!0;else if(!k.$silent.value&&k.$dirty.value&&!k.$pending.value&&!U.value&&!k.$haveAnyAsyncRule.value)return{valid:!k.$error.value,data:t,errors:k.$errors.value,issues:k.$issues.value};if(g)return{valid:!m?.value?.length,data:t,errors:k.$errors.value,issues:k.$issues.value};if(D(X.value))return{valid:!0,data:t,errors:k.$errors.value,issues:k.$issues.value};ie();let{promise:r}=re(Promise.allSettled(Object.values(X.value).map(e=>e.$parse())));return{valid:(await r).every(e=>e.status===`fulfilled`&&e.value===!0),data:t,errors:k.$errors.value,issues:k.$issues.value}}catch{return{valid:!1,data:n.value,errors:k.$errors.value,issues:k.$issues.value}}}function oe(e=!0){return k.$dirty.value?n.value:e?{_null:!0}:null}function ce(){p?.value?.length&&(p.value=[])}!k.$lazy.value&&!k.$dirty.value&&!k.$silent.value&&Y(),k.$immediateDirty.value&&(k.$dirty.value=!0);let{$shortcuts:le,$validating:fe,$autoDirty:pe,$rewardEarly:me,$clearExternalErrorsOnChange:_e,$haveAnyAsyncRule:ve,$debounce:ye,$lazy:be,...xe}=k;return l({...xe,$externalErrors:p,$value:n,$initialValue:S,$originalValue:C,$rules:X,...le,$path:a,$isDebouncing:U,$reset:ne,$touch:ae,$validate:$,$unwatch:q,$watch:J,$extractDirtyFields:oe,$clearExternalErrors:ce,$abort:ie,$schemaMode:g,"~modifiers":k.$modifiers,...ge($)})}function ve({$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:m,shortcuts:h,fieldName:g,schemaMode:_,overrides:v}){let y=s.value?.$id??l.$key??q(),x=`${r}.${String(y)}`,S=`${n}.${i}`;typeof s.value==`object`&&s.value!=null&&(s.value.$id||Object.defineProperties(s.value,{$id:{value:y,enumerable:!1,configurable:!1,writable:!1}}));let C=f(u?.value??[],i),w=e(()=>d?.value?.[i]),T=xe({index:i,state:s,rulesDef:f(()=>l),customMessages:c,path:S,cachePath:x,storage:o,options:a,externalErrors:C,schemaErrors:w,initialState:p,originalState:m,shortcuts:h,fieldName:g,schemaMode:_,overrides:v});return T&&(T.$id=s.value?.$id??String(y),o.addArrayStatus(t,T.$id,T)),s.value&&(!b(s.value)||se(s.value))&&_&&T?.$touch(),T}function ye({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,storage:s,options:c,externalErrors:d,schemaErrors:p,schemaMode:m,initialState:g,originalState:y,shortcuts:b,fieldName:x,overrides:S}){let C=t(),w,T=t(),E,O=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let k=u(),j=u(n.value),M=u({}),N,P,F=u({}),I=s.getCollectionsEntry(a);E=T.run(()=>({isPrimitiveArray:e(()=>n.value?.length?Array.isArray(n.value)&&n.value.length?n.value.every(e=>typeof e!=`object`):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(e=>$(e)||typeof e==`function`):!1:!1)})),L(),V();function L(){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=q(),Object.defineProperties(n.value,{$id:{value:k.value,enumerable:!1,configurable:!1,writable:!1}})):n.value?.$id&&(k.value=n.value.$id)),j.value=F.value.$value,Array.isArray(n.value)&&(!E.isPrimitiveArray.value||m)?I.value=n.value.map((t,n)=>{let{scope:l,unwrapped:u}=U(r.value.$each,f(()=>t),n);l&&O.push(l);let h=f(g.value??[],n),_=f(d?.value??{},`$each`),v=e(()=>p?.value?.$each);return ve({$id:k.value,path:a,cachePath:o,customMessages:i,rules:u??{},stateValue:f(()=>t),index:n,options:c,storage:s,externalErrors:_,schemaErrors:v,initialState:h,originalState:y,shortcuts:b,fieldName:x,schemaMode:m,overrides:S})||null}).filter(e=>!!e):I.value=[],F.value=_e({state:n,rulesDef:r,customMessages:i,path:a,cachePath:a,storage:s,options:c,externalErrors:f(d?.value??{},`$self`),schemaErrors:e(()=>p?.value?.$self),$isArray:!0,initialState:g,originalState:y,shortcuts:b,fieldName:x,schemaMode:m,overrides:S})}function R(){if(Array.isArray(n.value)&&(!E.isPrimitiveArray.value||m)){let t=A(I.value);I.value=n.value.map((t,n)=>{let o=f(()=>t);if(t.$id&&I.value.find(e=>e.$id===t.$id)){let e=s.getArrayStatus(k.value,t.$id);return e?(e.$value=o,e):null}else{let{scope:t,unwrapped:l}=U(r.value.$each,o,n);t&&O.push(t);let u=f(d?.value??{},`$each`),h=e(()=>p?.value?.$each??[]);return ve({$id:k.value,path:a,cachePath:a,customMessages:i,rules:l??{},stateValue:o,index:n,options:c,storage:s,externalErrors:u,schemaErrors:h,initialState:f(g.value??[],n),originalState:y,shortcuts:b,fieldName:x,schemaMode:m,overrides:S})||null}}).filter(e=>!!e),t.filter(e=>!n.value?.find(t=>e.$id===t.$id)).forEach((e,t)=>{s.deleteArrayStatus(k.value,t.toString())})}else I.value=[]}function z(){N=_(n,()=>{P?.(),n.value!=null&&!Object.hasOwn(n.value,`$id`)&&!k.value?L():R(),B()},{deep:ee?1:!0,flush:`pre`}),B()}function B(){P=_(n,()=>{w.$autoDirty.value&&!w.$silent.value&&F.value.$touch(!1,!0)},{flush:`post`})}function V(){z(),C=t(),w=C.run(()=>{let r=e({get:()=>n.value,set(e){N?.(),P?.(),n.value=e,z()}}),i=e(()=>F.value.$dirty&&(!I.value.length||I.value.every(e=>e.$dirty))),o=e(()=>F.value.$anyDirty||I.value.some(e=>e.$anyDirty)),s=e(()=>F.value.$invalid||I.value.some(e=>e.$invalid)),d=e(()=>(m?F.value.$correct:D(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||_.value)),_=e(()=>F.value.$pending||I.value.some(e=>e.$pending)),S=e(()=>!!I.value.length&&I.value.every(e=>e.$edited)),C=e(()=>F.value.$anyEdited||I.value.some(e=>e.$anyEdited)),w=e(()=>({$self:F.value.$issues,$each:I.value.map(e=>e.$issues)})),T=e(()=>({$self:F.value.$errors,$each:I.value.map(e=>e.$errors)})),E=e(()=>({$self:F.value.$silentErrors,$each:I.value.map(e=>e.$silentErrors)})),k=e(()=>M.value.$rewardEarly==null?h(c.rewardEarly)==null?!1:h(c.rewardEarly):M.value.$rewardEarly),A=e(()=>k.value?!0:M.value.$silent==null?h(c.silent)==null?!1:h(c.silent):M.value.$silent),j=e(()=>M.value.$autoDirty==null?h(c.autoDirty)==null?!0:h(c.autoDirty):M.value.$autoDirty),L=e(()=>x??c.id??`root`),R=e(()=>({$deepCompare:M.value.$deepCompare??!1,$lazy:M.value.$lazy??!1,$rewardEarly:k.value,$autoDirty:j.value,$silent:A.value,$clearExternalErrorsOnChange:M.value.$clearExternalErrorsOnChange??!1}));function B(){b?.collections&&Object.entries(b?.collections).forEach(([e,c])=>{let m=t();V[e]=m.run(()=>{let e=u();return v(()=>{e.value=c(l({$dirty:i,$error:f,$path:a,$silentValue:r,$pending:_,$invalid:s,$correct:d,$errors:T,$silentErrors:E,$initialValue:g,$originalValue:y,$ready:p,$anyDirty:o,$name:L,$each:I,$self:F,$value:n,$edited:S,$anyEdited:C,$issues:w}))}),e}),O.push(m)})}let V={};return B(),{$dirty:i,$anyDirty:o,$invalid:s,$correct:d,$error:f,$pending:_,$errors:T,$silentErrors:E,$ready:p,$name:L,$shortcuts:V,$silentValue:r,$edited:S,$anyEdited:C,$rewardEarly:k,$silent:A,$autoDirty:j,$issues:w,$modifiers:R}}),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 H(){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),O.forEach(e=>e.stop()),O=[]}function W(e=!0,t=!1){F.value.$touch(e,t),I.value.forEach(n=>{n.$touch(e,t)})}function G(e,t){if(H(),!t)if(e?.toOriginalState)n.value=A(y),g.value=A(y);else if(e?.toInitialState)n.value=A(g.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,g.value=A(t),n.value=A(t)}else g.value=A(n.value);e?.clearExternalErrors&&te(),e?.keepValidationState||(F.value.$reset(e,t),I.value.forEach(t=>{t.$reset(e,!0)})),t||L()}function K(){F.value.$abort(),I.value.forEach(e=>{e.$abort()})}async function J(e){e&&(n.value=e);let t=n.value;try{return K(),{valid:(await Promise.allSettled([F.value.$validate(e),...I.value.map(e=>e.$validate())])).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:t,errors:w.$errors.value,issues:w.$issues.value}}catch{return{valid:!1,data:t,errors:w.$errors.value,issues:w.$issues.value}}}function te(){F.value.$clearExternalErrors(),I.value.forEach(e=>{e.$clearExternalErrors()})}function Y(e=!0){let t=I.value.map(t=>{if(ce(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>D(e))&&(t=[]),t}let{$shortcuts:X,...Z}=w;return l({$self:F,...Z,...X,$path:a,$each:I,$value:n,$initialValue:g,$originalValue:y,$validate:J,$unwatch:H,$watch:V,$touch:W,$reset:G,$abort:K,$extractDirtyFields:Y,$clearExternalErrors:te,"~modifiers":w.$modifiers,...ge(J)})}function be({rulesDef:n,state:r,path:i=``,cachePath:a,rootRules:o,externalErrors:s,schemaErrors:c,rootSchemaErrors:d,validationGroups:p,initialState:m,originalState:g,fieldName:y,...x}){let S=t(),C,w=[],T=null,E=null,O=null,k=null,j=u(void 0);async function M(t=!0){let o=Object.entries(n.value).filter(([e])=>e!==`$self`),l=Object.fromEntries(o.reduce((t,[n,o])=>{if(!o)return t;let l=f(r.value??{},n),u=f(()=>o),d=f(s?.value??{},n),p=e(()=>c?.value?.[n]),h=f(m?.value??{},n);return t.push([n,xe({state:l,rulesDef:u,path:i?`${i}.${n}`:n,cachePath:a?`${a}.${n}`:n,externalErrors:d,schemaErrors:p,initialState:h,originalState:g?.[n],fieldName:n,...x})]),t},[])),u=Object.fromEntries(Object.entries(h(s)??{}).filter(([e,t])=>!(e in n.value)&&!!t).map(([t])=>{let n=f(r.value??{},t),o=f(s?.value??{},t),l=e(()=>c?.value?.[t]),u=f(m?.value??{},t),d=i?`${i}.${t}`:t,p=a?`${a}.${t}`:t;return[t,xe({state:n,rulesDef:e(()=>({})),path:d,cachePath:p,externalErrors:o,schemaErrors:l,initialState:u,originalState:g?.[t],fieldName:t,...x})]})),d=Object.fromEntries(Object.entries(h(c)??{}).map(([t])=>{let n=i?`${i}.${t}`:t,o=a?`${a}.${t}`:t,l=f(r.value??{},t),u=f(s?.value??{},t),d=e(()=>c?.value?.[t]),p=f(m?.value??{},t);return[t,xe({state:l,rulesDef:e(()=>({})),path:n,cachePath:o,externalErrors:u,schemaErrors:d,initialState:p,originalState:g?.[t],fieldName:t,...x})]})),p=Object.fromEntries(Object.entries(r.value??{}).filter(([e])=>!(e in n.value)&&!(e in(u??{}))&&!(e in(d??{}))).map(([t])=>{let n=f(r.value??{},t),o=f(s?.value??{},t),l=e(()=>c?.value?.[t]),u=f(m?.value??{},t);return[t,xe({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,cachePath:a?`${a}.${t}`:t,externalErrors:o,schemaErrors:l,initialState:u,originalState:g?.[t],fieldName:t,...x})]}));P.value={...l,...u,...d,...p},t&&L()}function N(){n.value.$self&&(j.value=_e({state:r,rulesDef:e(()=>n.value.$self??{}),path:i,cachePath:a,externalErrors:u(void 0),schemaErrors:u(void 0),initialState:f(m?.value??{},`$self`),originalState:g?.$self,fieldName:`$self`,...x}))}let P=x.storage.getFieldsEntry(a);M(),N();function F(){s&&(O=_(s,()=>{R(),M()},{deep:!0}))}function I(){k=_(r,()=>{R(),M(),C.$autoDirty.value&&!C.$silent.value&&V(!1,!0)},{flush:`post`})}function L(){o&&(T?.(),T=_(o,()=>{R(),M()},{deep:!0,flush:`pre`}),F()),d&&(E?.(),E=_(d,()=>{R(),M()},{deep:!0,flush:`post`})),I(),C=S.run(()=>{let a=e({get:()=>r.value,set(e){R(),r.value=e,M(),C.$autoDirty.value&&!C.$silent.value&&V(!1,!0)}}),o=e({get:()=>r.value,set(e){R(),r.value=e,M()}}),s=e(()=>{let e=P.value,t=Object.keys(e);if(!t.length)return!1;for(let n of t)if(!e[n]?.$dirty)return!1;return!0}),c=e(()=>{let e=P.value;for(let t in e)if(e[t]?.$anyDirty)return!0;return!1}),d=e(()=>{if(j.value?.$invalid)return!0;let e=P.value,t=Object.entries(e);if(!t.length)return!1;for(let[e,n]of t)if(n?.$invalid)return!0;return!1}),f=e(()=>{let e=Object.entries(P.value).reduce((e,[t,n])=>((!le(n)||!n.$inactive)&&e.push([t,n]),e),[]),t=n.value.$self&&!D(n.value.$self);if(e.length||t){let t=j.value?.$correct??!0,n=!1;return n=x.schemaMode?e.every(([e,t])=>t.$correct):e.every(([e,t])=>le(t)?`required`in t.$rules&&t.$rules.required.$active?t.$correct:!t.$invalid&&!t.$pending&&!t.$isDebouncing:t?.$correct),t&&n}return!1}),_=e(()=>{if(j.value?.$error)return!0;let e=P.value;if(!Object.keys(e).length)return!1;for(let t in e)if(e[t]?.$error)return!0;return!1}),b=e(()=>h(x.options.rewardEarly)==null?!1:h(x.options.rewardEarly)),S=e(()=>h(x.options.silent)==null?!!b.value:h(x.options.silent)),T=e(()=>h(x.options.autoDirty)==null?!0:h(x.options.autoDirty)),E=e(()=>!(d.value||k.value)),O=u(!1),k=e(()=>{if(j.value?.$pending||O.value)return!0;let e=P.value;for(let t in e)if(e[t]?.$pending)return!0;return!1}),A=e(()=>{let e={...j.value&&{$self:j.value?.$issues??[]}};for(let t in P.value)e[t]=P.value[t]?.$issues;return e}),N=e(()=>{let e={...j.value&&{$self:j.value?.$errors??[]}};for(let t in P.value)e[t]=P.value[t]?.$errors;return e}),F=e(()=>{let e={...j.value&&{$self:j.value?.$silentErrors??[]}};for(let t in P.value)e[t]=P.value[t]?.$silentErrors;return e}),I=e(()=>{if(j.value?.$edited)return!0;if(!Object.keys(P.value).length)return!1;for(let e in P.value)if(!P.value[e]?.$edited)return!1;return!0}),L=e(()=>{if(j.value?.$anyEdited)return!0;for(let e in P.value)if(P.value[e]?.$anyEdited)return!0;return!1}),z=e(()=>y??x.options.id??`root`),B=e(()=>({autoDirty:T.value,lazy:h(x.options.lazy)??!1,rewardEarly:b.value,silent:S.value,clearExternalErrorsOnChange:h(x.options.clearExternalErrorsOnChange)??!1,id:h(x.options.id)}));function H(){x.shortcuts?.nested&&Object.entries(x.shortcuts.nested).forEach(([e,n])=>{let a=t();W[e]=a.run(()=>{let e=u();return v(()=>{e.value=n(l({$dirty:s,$path:i,$value:r,$silentValue:o,$error:_,$originalValue:g,$pending:k,$invalid:d,$correct:f,$ready:E,$anyDirty:c,$name:z,$silentErrors:F,$initialValue:m,$errors:N,$fields:P,$edited:I,$anyEdited:L,$issues:A,$self:j,"~modifiers":h(x.options)}))}),e}),w.push(a)})}let U=e({get:()=>p?Object.fromEntries(Object.entries(p?.(P.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,Y(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,X(t,e)]))}]:[])):{},set(){}}),W={};return H(),{$dirty:s,$anyDirty:c,$invalid:d,$correct:f,$error:_,$pending:k,$issues:A,$errors:N,$silentErrors:F,$ready:E,$name:z,$shortcuts:W,$groups:U,$silentValue:o,$edited:I,$anyEdited:L,$localPending:O,$autoDirty:T,$silent:S,$value:a,$modifiers:B}})}function R(){if(T?.(),O?.(),k?.(),E?.(),w=[],C={},P.value)for(let e of Object.values(P.value))e?.$unwatch()}function z(){let e=P.value;for(let t of Object.values(e))t.$clearExternalErrors();j.value?.$clearExternalErrors()}function B(e,t){if(O?.(),R(),!t)if(e?.toOriginalState)r.value=A({...g}),m.value=A({...g});else if(e?.toInitialState)r.value=A({...m.value});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,m.value=A(t),r.value=A(t)}else m.value=A(r.value);if(!e?.keepValidationState){for(let t of Object.values(P.value))t?.$reset(e,!0);j.value?.$reset(e,!0)}e?.clearExternalErrors&&z(),F(),t||M()}function V(e=!0,t=!1){for(let n of Object.values(P.value))n?.$touch(e,t);j.value?.$touch(e,t)}function H(e){return e.filter(([e,t])=>b(t)&&!se(t)?!(t&&typeof t==`object`&&`_null`in t)&&!D(t):Array.isArray(t)?t.length:!0)}function U(e=!0){let t=Object.entries(P.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=H(t)),Object.fromEntries(t)}function W(){for(let e of Object.values(P.value))e.$abort();j.value?.$abort()}async function G(e){try{if(e&&(r.value=e),x.schemaMode)return x.onValidate?(V(!1),C.$localPending.value=!0,x.onValidate()):{valid:!1,data:r.value,errors:C.$errors.value,issues:C.$issues.value};{let e=r.value;W();let t=[...Object.values(P.value).map(e=>e.$validate()),...j.value?[j.value?.$validate()]:[]];return{valid:(await Promise.allSettled(t)).every(e=>e.status===`fulfilled`&&e?.value?.valid===!0),data:e,errors:C.$errors.value,issues:C.$issues.value}}}catch{return{valid:!1,data:r.value,errors:C.$errors.value,issues:C.$issues.value}}finally{C.$localPending.value=!1}}let{$shortcuts:ee,$localPending:K,...q}=C,J=l({...q,...ee,$path:i,$initialValue:m,$originalValue:g,$self:j,$fields:P,$reset:B,$touch:V,$validate:G,$unwatch:R,$watch:L,$clearExternalErrors:z,$extractDirtyFields:U,$abort:W,...o?{"~modifiers":C.$modifiers}:{},...ge(G)});return v(()=>{for(let e of Object.keys(J).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete J[e];for(let e of Object.values(P.value))e?.$name&&Object.assign(J,{[e.$name]:e})}),J}function xe({rulesDef:e,...n}){if(ie(e,n.state))return ye({rulesDef:e,...n});if(re(n.state,e)){if(H(n.state))return be({rulesDef:e,...n});{let r=t().run(()=>{let e=f(n.state.value?n.state:u({}));return _(()=>n.state.value,t=>{e.value=t},{deep:!0}),_(e,e=>{n.state.value=e},{deep:!0}),{fakeState:e}}),{state:i,...a}=n;return be({rulesDef:e,...a,state:r.fakeState})}}else if(ae(e))return _e({rulesDef:i(e.value)?e.value:e,...n})}var Se=`1.18.2-beta.1`;function Ce({initialState:e,originalState:t,options:n,scopeRules:i,state:a,customRules:o,shortcuts:s,schemaErrors:d,schemaMode:f=!1,onValidate:p,overrides:m}){let h=Z(),g=u(),v=u(),y,b;function x(){y=_(()=>n.externalErrors?.value,()=>{b?.(),n.externalErrors?.value&&Object.keys(n.externalErrors.value).some(e=>e.includes(`.`))?v.value=C(n.externalErrors.value):v.value=n.externalErrors?.value,S()},{immediate:!0,deep:!0})}function S(){b=_(()=>v.value,()=>{y?.(),n.externalErrors?.value&&(n.externalErrors.value=v.value),x()},{deep:!0})}return x(),re(a,i)?g.value=be({rootRules:i,rulesDef:i,state:a,customMessages:o?.(),storage:h,options:n,externalErrors:v,validationGroups:n.validationGroups,initialState:e,originalState:t,shortcuts:s,fieldName:void 0,path:``,cachePath:``,schemaErrors:d,rootSchemaErrors:d,schemaMode:f,onValidate:p,overrides:m}):ae(i)&&(g.value=_e({rulesDef:i,state:a,customMessages:o?.(),storage:h,options:n,externalErrors:v,initialState:e,originalState:t,shortcuts:s,fieldName:void 0,path:``,cachePath:``,schemaMode:f,schemaErrors:d,onValidate:p,overrides:m})),r()&&c(()=>{g.value?.$unwatch(),b?.(),y?.()}),l({regle:g})}function we({state:t,rulesFactory:n,options:r,globalOptions:a,customRules:o,shortcuts:s,overrides:c}){let l=i(n)?n:typeof n==`function`?void 0:e(()=>n),f={...a,...r},p,h=d(l??{});typeof n==`function`&&(p=v(()=>{h.value=n(t),m(h)}));let g=u(b(t.value)?{...A(t.value)}:A(t.value)),_=b(t.value)?{...A(t.value)}:A(t.value);return J(()=>{p?.()}),Ce({scopeRules:h,state:t,options:f,initialState:g,originalState:_,customRules:o,shortcuts:s,overrides:c})}function Te(e){let{rules:t,modifiers:n,shortcuts:r,overrides:a}=e??{},o={autoDirty:n?.autoDirty,lazy:n?.lazy,rewardEarly:n?.rewardEarly,silent:n?.silent,clearExternalErrorsOnChange:n?.clearExternalErrorsOnChange,immediateDirty:n?.immediateDirty};function s(e,n,s){return{r$:we({state:i(e)?e:u(e),rulesFactory:n,options:s,globalOptions:o,customRules:t,shortcuts:r,overrides:a}).regle}}return s}const Ee=Te();function De(){function e(e,t){return t}return e}const Oe=De();function ke(e,t){return x(h(e).$errors,String(t))}function Ae(e,t){return x(h(e).$issues,String(t))}function je(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&&b(r)&&`$each`in r&&r.$each&&b(r.$each)?t[n]=[je(r.$each)]:b(r)&&!D(r)&&!Object.entries(r).some(([e,t])=>$(t)||typeof t==`function`)?t[n]=je(r):t[n]=null}return t}function Me(t){let{rules:n,modifiers:r,shortcuts:a,overrides:o}=t??{},s={autoDirty:r?.autoDirty,lazy:r?.lazy,rewardEarly:r?.rewardEarly,silent:r?.silent,clearExternalErrorsOnChange:r?.clearExternalErrorsOnChange,immediateDirty:r?.immediateDirty};function c(t,r){let c=i(t)?t:typeof t==`function`?void 0:e(()=>t);return we({state:u(je(c?.value)),rulesFactory:c,options:r,globalOptions:s,customRules:n,shortcuts:a,overrides:o}).regle}return c}const Ne=Me();function Pe(e){if(E(e)){let t=e,n=class extends t{constructor(...e){return super(...e),Fe(this)}};return Object.defineProperty(n,`name`,{value:t.name}),Fe(n)}return Fe(e)}function Fe(e){return!w(e,Q.REGLE_STATIC)&&Object.isExtensible(e)&&T(e,Q.REGLE_STATIC,!0),e}function Ie({rules:e,modifiers:t,shortcuts:n,overrides:r}){let i=Te({rules:e,modifiers:t,shortcuts:n,overrides:r}),a=Me({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:De(),useRules:a}}function Le(e,{rules:t,modifiers:n,shortcuts:r,overrides:i}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?S(a.modifiers,n):a.modifiers??n,c=a.shortcuts&&r?S(a.shortcuts,r):a.shortcuts??r,l=a.overrides&&i?S(a.overrides,i):a.overrides??i,u=Te({rules:o,modifiers:s,shortcuts:c,overrides:l});return u.__config={rules:o,modifiers:s,shortcuts:c,overrides:l},{useRegle:u,inferRules:De()}}function Re(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)),u=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]))),y=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$edited)}),b=e(()=>Object.entries(t).some(([e,t])=>t?.$anyEdited)),x=e(()=>r?Object.values(t):t);function S(e){Object.values(t).forEach(t=>{t.$reset(e)})}function C(){Object.values(t).forEach(e=>{e.$touch()})}function w(e=!0){return Object.values(t).map(t=>t.$extractDirtyFields(e))}function T(){Object.values(t).forEach(e=>{e.$clearExternalErrors()})}async function E(e){try{e&&(i.value=e);let n=i.value;return{valid:(await Promise.allSettled(Object.values(t).map(e=>e.$validate()))).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:n,errors:g.value,issues:m.value}}catch{return{valid:!1,data:i.value,errors:g.value,issues:m.value}}}let D=l({...!r&&{$silentValue:a},$errors:g,$issues:m,$silentIssues:h,$silentErrors:_,$instances:x,$value:i,$dirty:o,$anyDirty:s,$invalid:c,$correct:u,$error:d,$pending:p,$ready:f,$edited:y,$anyEdited:b,$reset:S,$touch:C,$validate:E,$extractDirtyFields:w,$clearExternalErrors:T});return v(()=>{if(!r){for(let e of Object.keys(D).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete D[e];for(let[e,t]of Object.entries(x.value))Object.assign(D,{[e]:t})}}),D}function ze(t,n){function r(r){let i=e(()=>p(r)),a=l({});c();let o=u(d(t.value)),s=l({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]={})}))}_(i,c),_(t,e=>{o.value=d(e)},{deep:!0});function d(e){return i.value?typeof i.value==`string`?Re(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})})}),Re(a,!n.asRecord)):Re(e[`~~global`]??{},!n.asRecord)}return{r$:s.r$}}return{useCollectScope:r}}function Be(t,r){let i=r??Ee;return{useScopedRegle:((r,a,o)=>{let{namespace:c,scopeKey:l,id:d,...f}=o??{};i.__config??={};let m=e(()=>d??l),h=e(()=>p(c)),g=u(`${Object.keys(t.value).length+1}-${q()}`),v=e(()=>m.value??`instance-${g.value}`),{r$:y}=i(r,a,{...f,id:m.value});x(),J(b),_(h,(e,t)=>{b(t),x()}),n()&&s(()=>{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][v.value]:t.value[`~~global`][v.value]&&delete t.value[`~~global`][v.value]}function x(){h.value?(t.value[h.value]||(t.value[h.value]={}),t.value[h.value][v.value]=y):(t.value[`~~global`]||(t.value[`~~global`]={}),t.value[`~~global`][v.value]=y)}return{r$:y,dispose:b,register:x}})}}function Ve(e){let t=(e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):te(()=>u({"~~global":{}})))(),{useScopedRegle:n}=Be(t,e?.customUseRegle),{useCollectScope:r}=ze(t,{asRecord:e?.asRecord});return{useScopedRegle:n,useCollectScope:r}}const{useCollectScope:He,useScopedRegle:Ue}=Ve(),We=He,Ge=Ue;function Ke(t,n,r){let i=e(()=>p(t)[n]);return e(()=>r.find(e=>{if(e[n]&&`literal`in e[n]){let t=e[n].literal;if($(t))return h(t._params?.[0])===i.value}})||r.find(e=>b(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`))||{})}function qe(e,t,n){return!!e&&b(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function Je(e,t,n,r){let a=i(e)?f(e.value,`$fields`):f(e,`$fields`),s=u();return _(a,async()=>{await o(),qe(a.value,t,n)?s.value=f(e).value:s.value=void 0},{immediate:!0,flush:`pre`}),s}function Ye(e){return e}function Xe(e,t){return n=>S({...e},t(n))}const Ze={install(e){e.provide(ne,Se)}};export{I as InternalRuleType,Ze as RegleVuePlugin,V as createRule,Ve as createScopedUseRegle,Ke as createVariant,Ie as defineRegleConfig,Ye as defineRules,Le as extendRegleConfig,pe as flatErrors,ke as getErrors,Ae as getIssues,Oe as inferRules,Pe as markStatic,Re as mergeRegles,qe as narrowVariant,Xe as refineRules,L as unwrapRuleParameters,We as useCollectScope,Ee as useRegle,Ce as useRootStorage,Ne as useRules,Ge as useScopedRegle,Je as variantToRef};
|
|
7
|
+
import{computed as e,effectScope as t,getCurrentInstance as n,getCurrentScope as r,isRef as i,markRaw as a,nextTick as o,onMounted as s,onScopeDispose as c,reactive as l,ref as u,shallowRef as d,toRef as f,toValue as p,triggerRef as m,unref as h,version as g,watch as _,watchEffect as v}from"vue";function y(e){return e?.constructor?.name==`File`}function b(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function x(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 S(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 C(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 w(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function T(e,t,n,r=!1){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})}function E(e){return typeof e==`function`&&!!e.prototype&&`constructor`in e.prototype&&e.prototype.constructor===e}function D(e,t=!0,n=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):y(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:b(e)?e==null?!0:n?Object.keys(e).length===0:!1:!String(e).length}const O=Symbol(`regle-rule`);function k(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 A(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=>A(e,t++)))),r==`Map`&&(n=new Map([...e].map(e=>[A(e[0]),A(e[1])]))),r==`Date`&&(n=new Date(e.getTime())),r==`RegExp`&&(n=RegExp(e.source,k(e))),r==`Array`||r==`Object`)for(let r in n=Array.isArray(e)?[]:{},e)n[r]=A(e[r],t++);return n}function j(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 M(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 N(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(!N(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(b(e)&&b(t)&&s&&(r||!r&&n)&&!N(e[s],t[s],n,!1))return!1}return!0}return e!==e&&t!==t}var P=class extends Error{constructor(e=`Promise was aborted`){super(e),this.name=`AbortError`}};function F(e){let t=new AbortController,{signal:n}=t,r=new Promise((t,r)=>{function i(){r(new P)}n.addEventListener(`abort`,i),e.then(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new P):t(e)}).catch(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new P):r(e)})});function i(e){t.abort(e)}return{promise:r,abort:i,signal:n}}const I={Inline:`__inline`,Async:`__async`};function L(e){try{return e.map(e=>p(e))}catch{return[]}}function R(t){return t.map(t=>t instanceof Function?e(t):i(t)?t:f(()=>t))}function z(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 B(e,...t){let{validator:n,type:r,async:i}=e,o=i||r===I.Async||n.constructor.name===`AsyncFunction`;return a({validator(n,...r){return e.validator(n,...L(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:L(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:L(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:L(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...L(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:o,_params:R(t),_brand:O})}function V(e){if(typeof e.validator==`function`){let t=[],n=e.async??e.validator.constructor.name===`AsyncFunction`,r=B({...e,async:n},...t);if(z(e.validator)>1){let t=function(...t){return B(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`)}function H(e){return b(e.value)}function U(e,n,r){let i=t(),a;return a=e instanceof Function?i.run(()=>e(n,r??0)):e,{scope:i,unwrapped:a}}const W={LessThan:-1,EqualTo:0,GreaterThan:1};function G(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 W.GreaterThan;if(i>t)return W.LessThan;if(!isNaN(t)&&isNaN(i))return W.GreaterThan;if(isNaN(t)&&!isNaN(i))return W.LessThan}return W.EqualTo}const ee=G(g,`3.5.0`)!==-1;function te(){return Math.floor(Math.random()*Date.now()).toString()}function K(){return typeof window>`u`?te():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function q(e){return r()?(c(e),!0):!1}function J(e){let n=!1,r,i=t(!0);return((...t)=>(n||=(r=i.run(()=>e(...t)),!0),r))}function Y(e,t){return e.some(e=>t?e?.[t]:!1)}function X(e,t){return t?e.reduce((e,n)=>{let r=n?.[t]||[];return e.concat(r)},[]):[]}function Z(){let e=d(new Map),t=d(new Map),n=d(new Map),i=d(new Map),a=d(new Map),o=d(new Map);function s(e){let n=t.value.get(e);if(n)return n;{let n=u({});return t.value.set(e,n),n}}function l(e){let t=n.value.get(e);if(t)return t;{let t=u([]);return n.value.set(e,t),t}}function f(e,t,n){o.value.set(`${e}-${t}`,n)}function p(e,t){return o.value.get(`${e}-${t}`)}function m(e,t){e&&t!=null&&o.value.delete(`${e}-${t}`)}function h(e,t){i.value.set(e,t)}function g(e){return i.value.get(e)??!1}function _(t,n){e.value.set(t,n)}function v(t,n){let r=e.value.get(t);if(r)return y(n,r)?{valid:!0}:{valid:!1}}function y(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];return!i||!r||typeof r==`function`||typeof i==`function`||typeof r==`number`||typeof r==`boolean`||typeof r==`string`?!1:r._params?r._params?.every((e,t)=>{if(typeof i==`number`||typeof i==`boolean`||typeof i==`string`)return!0;{let e=L(i._params),n=L(r._params);return e?.[t]===n?.[t]}}):!0})}function b(e){let t=a.value.get(e);if(t)return t;{let t=u(!1),n=u(!0),r=u({}),i=u(!1);return a.value.set(e,{$pending:t,$valid:n,$metadata:r,$validating:i}),{$pending:t,$valid:n,$metadata:r,$validating:i}}}return r()&&c(()=>{e.value.clear(),t.value.clear(),n.value.clear(),i.value.clear(),a.value.clear(),o.value.clear()}),{addRuleDeclEntry:_,setDirtyEntry:h,checkRuleDeclEntry:v,getDirtyState:g,trySetRuleStatusRef:b,getFieldsEntry:s,getCollectionsEntry:l,getArrayStatus:p,addArrayStatus:f,deleteArrayStatus:m,arrayStatusStorage:o}}const ne=Symbol(`regle`),Q={REGLE_STATIC:`__regle_static`};function re(e,t){return!se(e.value)&&(H(e)||b(t.value)&&!D(t.value)&&!Object.entries(t.value).some(([e,t])=>$(t)||typeof t==`function`))}function ie(e,t){return!!e.value&&b(e.value)&&`$each`in e.value||Array.isArray(t.value)}function ae(e){return!!e.value&&(b(e.value)||H(e.value))}function $(e){return(b(e)||typeof e==`function`)&&`_validator`in e}function oe(e){return typeof e.value==`function`?`_validator`in e.value:!0}function se(e){return b(e)&&w(e,Q.REGLE_STATIC)&&e[Q.REGLE_STATIC]===!0}function ce(e){return b(e)&&`$fields`in e}function le(e){return!!e&&`$rules`in e}function ue({field:e,silent:t=!1}){let n=Object.entries(e.$rules??{}).map(([n,r])=>{let i=``;if(t&&!r.$valid)i=r.$message;else if(!r.$valid&&e.$error&&!r.$validating)i=r.$message;else return null;return{$message:i,$property:e.fieldName,$rule:n,$type:r.$type,...typeof r.$metadata==`object`?r.$metadata:{}}}).filter(e=>!!e).reduce((e,t)=>(typeof t.$message==`string`?e.push(t):e.push(...t.$message.map(e=>({...t,$message:e}))),e),[]),r=e.$error&&e.$externalErrors?e.$externalErrors.map(t=>({$message:t,$property:e.fieldName,$rule:`external`,$type:void 0})):[],i=[];return e.$schemaErrors&&e.$error&&(i=!Array.isArray(e.$schemaErrors)&&`$self`in e.$schemaErrors?e.$schemaErrors.$self??[]:e.$schemaErrors??[]),[...n,...r,...i]}function de({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 fe(e){return b(e)&&`$each`in e}function pe(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!b(e)))return e;if(fe(e)){let t=n?e.$self?.map(e=>({message:e,path:[]}))??[]:e.$self??[],r=e.$each?.map(e=>me(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>me(t,n,[e])).flat()}function me(e,t=!1,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(e=>!b(e)))return t?e.map(e=>({message:e,path:r??[]})):e;if(fe(e)){let n=r?.length?e.$self?.map(e=>({message:e,path:r??[]}))??[]:e.$self??[],i=e.$each?.map((e,n)=>me(e,t,r?.concat(n)))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>me(n,t,r?.concat(e))).flat()}function he({customMessages:n,rule:r,ruleKey:i,state:a,path:o,cachePath:s,storage:c,modifiers:d}){let f=t(),p={},m,h=e(()=>$(r.value)&&r.value._async),g=u(!1),{$pending:v,$valid:y,$metadata:b,$validating:x}=c.trySetRuleStatusRef(`${s}.${i}`);function S(){f=t(),p=f.run(()=>{let t=u(!1),s=u(!1),c=u(!0),l=u(!1),d=u(!1),f=e(()=>({$value:a.value,$error:s.value,$dirty:t.value,$pending:l.value,$correct:d.value,$invalid:c.value,$rule:{$valid:y.value,$invalid:!y.value,$pending:v.value},$params:S.value,...b.value})),p=e(()=>{try{return oe(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),oe(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 D(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),_=e(()=>oe(r)&&r.value.type?r.value.type:i),x=e(()=>oe(r)?r.value.validator:r.value),S=e(()=>typeof r.value==`function`?[]:L(r.value._params??[]));return{$active:p,$message:h,$type:_,$validator:x,$params:S,$path:e(()=>`${o}.${i}`),$tooltip:g,$fieldCorrect:d,$fieldError:s,$fieldDirty:t,$fieldPending:l,$fieldInvalid:c}}),m=_(p?.$params,()=>{(!d.$silent.value||d.$rewardEarly.value&&p.$fieldError.value)&&E()},{deep:ee?1:!0})}S();function C(){y.value=!0,p.$fieldDirty.value&&(v.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{v.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 O(){try{return x.value=!0,T(p.$validator.value)}catch{return!1}finally{x.value=!1}}function k(){y.value=!0,b.value={},v.value=!1,x.value=!1,S()}function A(){m(),f.stop(),f=t()}return l({...p,$pending:v,$valid:y,$metadata:b,$haveAsync:h,$maybePending:g,$validating:x,$parse:E,$parseSync:O,$unwatch:A,$watch:S,$reset:k})}function ge(e){return{"~standard":{version:1,vendor:`regle`,validate:async t=>{let{valid:n,data:r,errors:i}=await e(t);return n?{value:r,issues:[]}:{issues:pe(i,{includePath:!0})}}}}}function _e({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,fieldName:s,storage:c,options:d,externalErrors:p,schemaErrors:m,schemaMode:g,onUnwatch:y,$isArray:x,initialState:S,originalState:C,shortcuts:w,overrides:T,onValidate:E}){let O=t(),k,P=[],I,L,R,z,B=()=>{},V,H=()=>{},U=u(!1);function W(){let e=r.value,t=c.checkRuleDeclEntry(o,e),s={};for(let t in e)t.startsWith(`$`)&&(s[t]=e[t]);Z.value=s,q();let l=r.value,u=[];for(let e in l){if(e.startsWith(`$`)||e.startsWith(`~`))continue;let t=l[e];if(!t)continue;let r=f(()=>t);u.push([e,he({modifiers:{$silent:k.$silent,$rewardEarly:k.$rewardEarly},customMessages:i,rule:r,ruleKey:e,state:n,path:a,cachePath:o,storage:c,$debounce:Z.value.$debounce})])}X.value=Object.fromEntries(u),k.processShortcuts(),G(),te(),t?.valid!=null&&(k.$dirty.value=c.getDirtyState(o),(k.$dirty.value&&!k.$silent.value||k.$rewardEarly.value&&k.$error.value)&&B()),c.addRuleDeclEntry(o,e)}function G(){B=k.$debounce.value>0?M(Y,k.$debounce.value,{trackDebounceRef:U}):Y}function te(){H=k.$debounce.value>0?M(()=>{k.$dirty.value=!0},k.$debounce.value):()=>{k.$dirty.value=!0}}function K(){if(X.value)for(let e of Object.values(X.value))e.$unwatch();L(),z?.(),k.$dirty.value&&c.setDirtyEntry(o,k.$dirty.value),I?.(),O.stop(),O=t();for(let e of P)e.stop();P=[],y?.(),R?.()}function q(){if(X.value)for(let e of Object.values(X.value))e.$watch();k=O.run(()=>{let i=u(!1),a=u(!1),o=e(()=>i.value),c=e(()=>x||se(n.value)),f=e(()=>Z.value.$debounce==null?k.$haveAnyAsyncRule.value?200:0:Z.value.$debounce),_=e(()=>Z.value.$deepCompare==null?!1:Z.value.$deepCompare),y=e(()=>Z.value.$lazy==null?h(d.lazy)==null?!1:h(d.lazy):Z.value.$lazy),b=e(()=>Z.value.$immediateDirty==null?h(d.immediateDirty)==null?!1:h(d.immediateDirty):Z.value.$immediateDirty),C=e(()=>Z.value.$rewardEarly==null?h(d.rewardEarly)==null?!1:h(d.rewardEarly):Z.value.$rewardEarly),E=e(()=>Z.value.$clearExternalErrorsOnChange==null?h(d.clearExternalErrorsOnChange)==null?!O.value:h(d.clearExternalErrorsOnChange):Z.value.$clearExternalErrorsOnChange),O=e(()=>C.value?!0:Z.value.$silent==null?h(d.silent)==null?!1:h(d.silent):Z.value.$silent),A=e(()=>Z.value.$autoDirty==null?h(d.autoDirty)==null?!0:h(d.autoDirty):Z.value.$autoDirty),M=e(()=>{for(let e of Object.values(X.value))if(e.$validating)return!0;return!1}),F=e({get:()=>n.value,set(e){I(),n.value=e,J()}}),L=e(()=>U.value?q.value&&i.value:q.value&&!K.value&&i.value),R=e(()=>ue({field:{$rules:X.value,$error:L.value,$externalErrors:p?.value,$schemaErrors:m?.value,fieldName:Y.value}})),z=e(()=>ue({field:{$rules:X.value,$error:L.value,$externalErrors:p?.value,$schemaErrors:m?.value,fieldName:Y.value},silent:!0})),B=e(()=>R.value.map(e=>e.$message)),V=e(()=>z.value.map(e=>e.$message)),H=u(!1);function W(e,t){return t instanceof Date&&e instanceof Date?j(t).getDate()!==j(e).getDate():t==null?!!e:Array.isArray(e)&&Array.isArray(t)?!N(e,t,Z.value.$deepCompare):t!==e}v(()=>{i.value?Z.value.$isEdited?H.value=Z.value.$isEdited(n.value,S.value,W):T?.isEdited?H.value=T.isEdited(n.value,S.value,W):H.value=W(n.value,S.value):H.value=!1});let G=e(()=>H.value),ee=e(()=>de({field:{$rules:X.value}})),te=e(()=>!(q.value||K.value)),K=e(()=>a.value||!C.value?Object.entries(X.value).some(([e,t])=>t.$pending):!1),q=e(()=>p?.value?.length||m?.value?.length?!0:ne.value?!1:Object.values(X.value).some(e=>!e.$valid||e.$maybePending)),Y=e(()=>s??d.id??`root`),ne=e(()=>!g&&!Object.keys(r.value).some(e=>!e.startsWith(`$`))),Q=e(()=>{if(p?.value?.length||ne.value||U.value)return!1;if(i.value&&!D(n.value)&&!M.value&&!K.value){if(g)return!m?.value?.length;{let e=Object.values(X.value);for(let t of e)if(t.$active&&!t.$valid)return!1;return e.some(e=>e.$active)}}return!1}),re=e(()=>Object.values(X.value).some(e=>e.$haveAsync)),ie=e(()=>({$debounce:f.value,$lazy:y.value,$rewardEarly:C.value,$autoDirty:A.value,$silent:O.value,$clearExternalErrorsOnChange:E.value}));function ae(){w?.fields&&Object.entries(w.fields).forEach(([e,r])=>{let a=t();$[e]=a.run(()=>{let e=u();return v(()=>{e.value=r(l({$dirty:i,$externalErrors:p?.value??[],$value:n,$silentValue:F,$rules:X,$error:L,$pending:K,$invalid:q,$correct:Q,$errors:B,$ready:te,$silentErrors:V,$anyDirty:o,$tooltips:ee,$name:Y,$inactive:ne,$edited:H,$anyEdited:G}))}),e}),P.push(a)})}let $={};return{$error:L,$pending:K,$invalid:q,$correct:Q,$debounce:f,$deepCompare:_,$lazy:y,$immediateDirty:b,$ready:te,$issues:R,$silentIssues:z,$errors:B,$silentErrors:V,$rewardEarly:C,$autoDirty:A,$silent:O,$clearExternalErrorsOnChange:E,$anyDirty:o,$edited:H,$anyEdited:G,$name:Y,$haveAnyAsyncRule:re,$shortcuts:$,$validating:M,$tooltips:ee,$dirty:i,processShortcuts:ae,$silentValue:F,$inactive:ne,$modifiers:ie,$isArrayOrRegleStatic:c}}),J(),L=_(k.$dirty,e=>{c.setDirtyEntry(o,e),Object.values(X.value).forEach(t=>{t.$fieldDirty=e})}),z=_([k.$error,k.$correct,k.$invalid,k.$pending],()=>{Object.values(X.value).forEach(e=>{e.$fieldError=k.$error.value,e.$fieldInvalid=k.$invalid.value,e.$fieldPending=k.$pending.value,e.$fieldCorrect=k.$correct.value})}),R=_(k.$haveAnyAsyncRule,G)}function J(){I=_(n,()=>{k.$autoDirty.value&&!k.$silent.value&&(k.$dirty.value||H()),r.value instanceof Function&&W(),(!k.$silent.value||k.$rewardEarly.value&&k.$error.value)&&B(),k.$clearExternalErrorsOnChange.value&&le()},{deep:k.$isArrayOrRegleStatic.value?!0:ee?1:!0})}async function Y(){try{let{promise:e}=re(Promise.allSettled(Object.values(X.value).map(e=>e.$parse())));await e}catch{}}let X=u({}),Z=u({});W();function ne(e,t){if(Q(),le(),k.$dirty.value=!1,c.setDirtyEntry(o,!1),!t)if(e?.toOriginalState)n.value=A(C),S.value=A(C);else if(e?.toInitialState)n.value=A(S.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,S.value=A(t),n.value=A(t)}else S.value=b(n.value)&&!se(n.value)?A(n.value):Array.isArray(n.value)?[...n.value]:n.value;if(e?.clearExternalErrors&&le(),!t&&!e?.keepValidationState)for(let e of Object.values(X.value))e.$reset();if(!k.$lazy.value&&!k.$silent.value&&!t)for(let e of Object.values(X.value))e.$parse()}function Q(){`cancel`in B&&B.cancel()}function re(e){return V&&V.abort(),V=F(e),V}function ie(){Q(),V&&V.abort()}function ae(e=!0,t=!1){k.$dirty.value||H(),t&&e?(!k.$silent.value||k.$rewardEarly.value&&k.$error.value)&&(Q(),B()):e&&(Q(),B())}async function $(e){try{if(e&&(n.value=e),g)return E?(ae(!1),E()):{valid:!1,data:n.value,errors:k.$errors.value,issues:k.$issues.value};let t=n.value;if(!k.$dirty.value)k.$dirty.value=!0;else if(!k.$silent.value&&k.$dirty.value&&!k.$pending.value&&!U.value&&!k.$haveAnyAsyncRule.value)return{valid:!k.$error.value,data:t,errors:k.$errors.value,issues:k.$issues.value};if(g)return{valid:!m?.value?.length,data:t,errors:k.$errors.value,issues:k.$issues.value};if(D(X.value))return{valid:!0,data:t,errors:k.$errors.value,issues:k.$issues.value};ie();let{promise:r}=re(Promise.allSettled(Object.values(X.value).map(e=>e.$parse())));return{valid:(await r).every(e=>e.status===`fulfilled`&&e.value===!0),data:t,errors:k.$errors.value,issues:k.$issues.value}}catch{return{valid:!1,data:n.value,errors:k.$errors.value,issues:k.$issues.value}}}function oe(e){try{return e&&(n.value=e),k.$dirty.value||(k.$dirty.value=!0),g?!1:Object.values(X.value).map(e=>e.$parseSync()).every(e=>!!e)}catch{return!1}}function ce(e=!0){return k.$dirty.value?n.value:e?{_null:!0}:null}function le(){p?.value?.length&&(p.value=[])}!k.$lazy.value&&!k.$dirty.value&&!k.$silent.value&&Y(),k.$immediateDirty.value&&(k.$dirty.value=!0);let{$shortcuts:fe,$validating:pe,$autoDirty:me,$rewardEarly:_e,$clearExternalErrorsOnChange:ve,$haveAnyAsyncRule:ye,$debounce:be,$lazy:xe,...Se}=k;return l({...Se,$externalErrors:p,$value:n,$initialValue:S,$originalValue:C,$rules:X,...fe,$path:a,$isDebouncing:U,$reset:ne,$touch:ae,$validate:$,$validateSync:oe,$unwatch:K,$watch:q,$extractDirtyFields:ce,$clearExternalErrors:le,$abort:ie,$schemaMode:g,"~modifiers":k.$modifiers,...ge($)})}function ve({$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:m,shortcuts:h,fieldName:g,schemaMode:_,overrides:v}){let y=s.value?.$id??l.$key??K(),x=`${r}.${String(y)}`,S=`${n}.${i}`;typeof s.value==`object`&&s.value!=null&&(s.value.$id||Object.defineProperties(s.value,{$id:{value:y,enumerable:!1,configurable:!1,writable:!1}}));let C=f(u?.value??[],i),w=e(()=>d?.value?.[i]),T=xe({index:i,state:s,rulesDef:f(()=>l),customMessages:c,path:S,cachePath:x,storage:o,options:a,externalErrors:C,schemaErrors:w,initialState:p,originalState:m,shortcuts:h,fieldName:g,schemaMode:_,overrides:v});return T&&(T.$id=s.value?.$id??String(y),o.addArrayStatus(t,T.$id,T)),s.value&&(!b(s.value)||se(s.value))&&_&&T?.$touch(),T}function ye({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,storage:s,options:c,externalErrors:d,schemaErrors:p,schemaMode:m,initialState:g,originalState:y,shortcuts:b,fieldName:x,overrides:S}){let C=t(),w,T=t(),E,O=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let k=u(),j=u(n.value),M=u({}),N,P,F=u({}),I=s.getCollectionsEntry(a);E=T.run(()=>({isPrimitiveArray:e(()=>n.value?.length?Array.isArray(n.value)&&n.value.length?n.value.every(e=>typeof e!=`object`):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(e=>$(e)||typeof e==`function`):!1:!1)})),L(),V();function L(){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=K(),Object.defineProperties(n.value,{$id:{value:k.value,enumerable:!1,configurable:!1,writable:!1}})):n.value?.$id&&(k.value=n.value.$id)),j.value=F.value.$value,Array.isArray(n.value)&&(!E.isPrimitiveArray.value||m)?I.value=n.value.map((t,n)=>{let{scope:l,unwrapped:u}=U(r.value.$each,f(()=>t),n);l&&O.push(l);let h=f(g.value??[],n),_=f(d?.value??{},`$each`),v=e(()=>p?.value?.$each);return ve({$id:k.value,path:a,cachePath:o,customMessages:i,rules:u??{},stateValue:f(()=>t),index:n,options:c,storage:s,externalErrors:_,schemaErrors:v,initialState:h,originalState:y,shortcuts:b,fieldName:x,schemaMode:m,overrides:S})||null}).filter(e=>!!e):I.value=[],F.value=_e({state:n,rulesDef:r,customMessages:i,path:a,cachePath:a,storage:s,options:c,externalErrors:f(d?.value??{},`$self`),schemaErrors:e(()=>p?.value?.$self),$isArray:!0,initialState:g,originalState:y,shortcuts:b,fieldName:x,schemaMode:m,overrides:S})}function R(){if(Array.isArray(n.value)&&(!E.isPrimitiveArray.value||m)){let t=A(I.value);I.value=n.value.map((t,n)=>{let o=f(()=>t);if(t.$id&&I.value.find(e=>e.$id===t.$id)){let e=s.getArrayStatus(k.value,t.$id);return e?(e.$value=o,e):null}else{let{scope:t,unwrapped:l}=U(r.value.$each,o,n);t&&O.push(t);let u=f(d?.value??{},`$each`),h=e(()=>p?.value?.$each??[]);return ve({$id:k.value,path:a,cachePath:a,customMessages:i,rules:l??{},stateValue:o,index:n,options:c,storage:s,externalErrors:u,schemaErrors:h,initialState:f(g.value??[],n),originalState:y,shortcuts:b,fieldName:x,schemaMode:m,overrides:S})||null}}).filter(e=>!!e),t.filter(e=>!n.value?.find(t=>e.$id===t.$id)).forEach((e,t)=>{s.deleteArrayStatus(k.value,t.toString())})}else I.value=[]}function z(){N=_(n,()=>{P?.(),n.value!=null&&!Object.hasOwn(n.value,`$id`)&&!k.value?L():R(),B()},{deep:ee?1:!0,flush:`pre`}),B()}function B(){P=_(n,()=>{w.$autoDirty.value&&!w.$silent.value&&F.value.$touch(!1,!0)},{flush:`post`})}function V(){z(),C=t(),w=C.run(()=>{let r=e({get:()=>n.value,set(e){N?.(),P?.(),n.value=e,z()}}),i=e(()=>F.value.$dirty&&(!I.value.length||I.value.every(e=>e.$dirty))),o=e(()=>F.value.$anyDirty||I.value.some(e=>e.$anyDirty)),s=e(()=>F.value.$invalid||I.value.some(e=>e.$invalid)),d=e(()=>(m?F.value.$correct:D(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||_.value)),_=e(()=>F.value.$pending||I.value.some(e=>e.$pending)),S=e(()=>!!I.value.length&&I.value.every(e=>e.$edited)),C=e(()=>F.value.$anyEdited||I.value.some(e=>e.$anyEdited)),w=e(()=>({$self:F.value.$issues,$each:I.value.map(e=>e.$issues)})),T=e(()=>({$self:F.value.$errors,$each:I.value.map(e=>e.$errors)})),E=e(()=>({$self:F.value.$silentErrors,$each:I.value.map(e=>e.$silentErrors)})),k=e(()=>M.value.$rewardEarly==null?h(c.rewardEarly)==null?!1:h(c.rewardEarly):M.value.$rewardEarly),A=e(()=>k.value?!0:M.value.$silent==null?h(c.silent)==null?!1:h(c.silent):M.value.$silent),j=e(()=>M.value.$autoDirty==null?h(c.autoDirty)==null?!0:h(c.autoDirty):M.value.$autoDirty),L=e(()=>x??c.id??`root`),R=e(()=>({$deepCompare:M.value.$deepCompare??!1,$lazy:M.value.$lazy??!1,$rewardEarly:k.value,$autoDirty:j.value,$silent:A.value,$clearExternalErrorsOnChange:M.value.$clearExternalErrorsOnChange??!1}));function B(){b?.collections&&Object.entries(b?.collections).forEach(([e,c])=>{let m=t();V[e]=m.run(()=>{let e=u();return v(()=>{e.value=c(l({$dirty:i,$error:f,$path:a,$silentValue:r,$pending:_,$invalid:s,$correct:d,$errors:T,$silentErrors:E,$initialValue:g,$originalValue:y,$ready:p,$anyDirty:o,$name:L,$each:I,$self:F,$value:n,$edited:S,$anyEdited:C,$issues:w}))}),e}),O.push(m)})}let V={};return B(),{$dirty:i,$anyDirty:o,$invalid:s,$correct:d,$error:f,$pending:_,$errors:T,$silentErrors:E,$ready:p,$name:L,$shortcuts:V,$silentValue:r,$edited:S,$anyEdited:C,$rewardEarly:k,$silent:A,$autoDirty:j,$issues:w,$modifiers:R}}),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 H(){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),O.forEach(e=>e.stop()),O=[]}function W(e=!0,t=!1){F.value.$touch(e,t),I.value.forEach(n=>{n.$touch(e,t)})}function G(e,t){if(H(),!t)if(e?.toOriginalState)n.value=A(y),g.value=A(y);else if(e?.toInitialState)n.value=A(g.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,g.value=A(t),n.value=A(t)}else g.value=A(n.value);e?.clearExternalErrors&&Y(),e?.keepValidationState||(F.value.$reset(e,t),I.value.forEach(t=>{t.$reset(e,!0)})),t||L()}function te(){F.value.$abort(),I.value.forEach(e=>{e.$abort()})}async function q(e){e&&(n.value=e);let t=n.value;try{return te(),{valid:(await Promise.allSettled([F.value.$validate(e),...I.value.map(e=>e.$validate())])).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:t,errors:w.$errors.value,issues:w.$issues.value}}catch{return{valid:!1,data:t,errors:w.$errors.value,issues:w.$issues.value}}}function J(e){e&&(n.value=e);try{return[F.value.$validateSync(e),...I.value.map(e=>e.$validateSync())].every(e=>!!e)}catch{return!1}}function Y(){F.value.$clearExternalErrors(),I.value.forEach(e=>{e.$clearExternalErrors()})}function X(e=!0){let t=I.value.map(t=>{if(ce(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>D(e))&&(t=[]),t}let{$shortcuts:Z,...ne}=w;return l({$self:F,...ne,...Z,$path:a,$each:I,$value:n,$initialValue:g,$originalValue:y,$validate:q,$validateSync:J,$unwatch:H,$watch:V,$touch:W,$reset:G,$abort:te,$extractDirtyFields:X,$clearExternalErrors:Y,"~modifiers":w.$modifiers,...ge(q)})}function be({rulesDef:n,state:r,path:i=``,cachePath:a,rootRules:o,externalErrors:s,schemaErrors:c,rootSchemaErrors:d,validationGroups:p,initialState:m,originalState:g,fieldName:y,...x}){let S=t(),C,w=[],T=null,E=null,O=null,k=null,j=u(void 0);async function M(t=!0){let o=Object.entries(n.value).filter(([e])=>e!==`$self`),l=Object.fromEntries(o.reduce((t,[n,o])=>{if(!o)return t;let l=f(r.value??{},n),u=f(()=>o),d=f(s?.value??{},n),p=e(()=>c?.value?.[n]),h=f(m?.value??{},n);return t.push([n,xe({state:l,rulesDef:u,path:i?`${i}.${n}`:n,cachePath:a?`${a}.${n}`:n,externalErrors:d,schemaErrors:p,initialState:h,originalState:g?.[n],fieldName:n,...x})]),t},[])),u=Object.fromEntries(Object.entries(h(s)??{}).filter(([e,t])=>!(e in n.value)&&!!t).map(([t])=>{let n=f(r.value??{},t),o=f(s?.value??{},t),l=e(()=>c?.value?.[t]),u=f(m?.value??{},t),d=i?`${i}.${t}`:t,p=a?`${a}.${t}`:t;return[t,xe({state:n,rulesDef:e(()=>({})),path:d,cachePath:p,externalErrors:o,schemaErrors:l,initialState:u,originalState:g?.[t],fieldName:t,...x})]})),d=Object.fromEntries(Object.entries(h(c)??{}).map(([t])=>{let n=i?`${i}.${t}`:t,o=a?`${a}.${t}`:t,l=f(r.value??{},t),u=f(s?.value??{},t),d=e(()=>c?.value?.[t]),p=f(m?.value??{},t);return[t,xe({state:l,rulesDef:e(()=>({})),path:n,cachePath:o,externalErrors:u,schemaErrors:d,initialState:p,originalState:g?.[t],fieldName:t,...x})]})),p=Object.fromEntries(Object.entries(r.value??{}).filter(([e])=>!(e in n.value)&&!(e in(u??{}))&&!(e in(d??{}))).map(([t])=>{let n=f(r.value??{},t),o=f(s?.value??{},t),l=e(()=>c?.value?.[t]),u=f(m?.value??{},t);return[t,xe({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,cachePath:a?`${a}.${t}`:t,externalErrors:o,schemaErrors:l,initialState:u,originalState:g?.[t],fieldName:t,...x})]}));P.value={...l,...u,...d,...p},t&&L()}function N(){n.value.$self&&(j.value=_e({state:r,rulesDef:e(()=>n.value.$self??{}),path:i,cachePath:a,externalErrors:u(void 0),schemaErrors:u(void 0),initialState:f(m?.value??{},`$self`),originalState:g?.$self,fieldName:`$self`,...x}))}let P=x.storage.getFieldsEntry(a);M(),N();function F(){s&&(O=_(s,()=>{R(),M()},{deep:!0}))}function I(){k=_(r,()=>{R(),M(),C.$autoDirty.value&&!C.$silent.value&&V(!1,!0)},{flush:`post`})}function L(){o&&(T?.(),T=_(o,()=>{R(),M()},{deep:!0,flush:`pre`}),F()),d&&(E?.(),E=_(d,()=>{R(),M()},{deep:!0,flush:`post`})),I(),C=S.run(()=>{let a=e({get:()=>r.value,set(e){R(),r.value=e,M(),C.$autoDirty.value&&!C.$silent.value&&V(!1,!0)}}),o=e({get:()=>r.value,set(e){R(),r.value=e,M()}}),s=e(()=>{let e=P.value,t=Object.keys(e);if(!t.length)return!1;for(let n of t)if(!e[n]?.$dirty)return!1;return!0}),c=e(()=>{let e=P.value;for(let t in e)if(e[t]?.$anyDirty)return!0;return!1}),d=e(()=>{if(j.value?.$invalid)return!0;let e=P.value,t=Object.entries(e);if(!t.length)return!1;for(let[e,n]of t)if(n?.$invalid)return!0;return!1}),f=e(()=>{let e=Object.entries(P.value).reduce((e,[t,n])=>((!le(n)||!n.$inactive)&&e.push([t,n]),e),[]),t=n.value.$self&&!D(n.value.$self);if(e.length||t){let t=j.value?.$correct??!0,n=!1;return n=x.schemaMode?e.every(([e,t])=>t.$correct):e.every(([e,t])=>le(t)?`required`in t.$rules&&t.$rules.required.$active?t.$correct:!t.$invalid&&!t.$pending&&!t.$isDebouncing:t?.$correct),t&&n}return!1}),_=e(()=>{if(j.value?.$error)return!0;let e=P.value;if(!Object.keys(e).length)return!1;for(let t in e)if(e[t]?.$error)return!0;return!1}),b=e(()=>h(x.options.rewardEarly)==null?!1:h(x.options.rewardEarly)),S=e(()=>h(x.options.silent)==null?!!b.value:h(x.options.silent)),T=e(()=>h(x.options.autoDirty)==null?!0:h(x.options.autoDirty)),E=e(()=>!(d.value||k.value)),O=u(!1),k=e(()=>{if(j.value?.$pending||O.value)return!0;let e=P.value;for(let t in e)if(e[t]?.$pending)return!0;return!1}),A=e(()=>{let e={...j.value&&{$self:j.value?.$issues??[]}};for(let t in P.value)e[t]=P.value[t]?.$issues;return e}),N=e(()=>{let e={...j.value&&{$self:j.value?.$errors??[]}};for(let t in P.value)e[t]=P.value[t]?.$errors;return e}),F=e(()=>{let e={...j.value&&{$self:j.value?.$silentErrors??[]}};for(let t in P.value)e[t]=P.value[t]?.$silentErrors;return e}),I=e(()=>{if(j.value?.$edited)return!0;if(!Object.keys(P.value).length)return!1;for(let e in P.value)if(!P.value[e]?.$edited)return!1;return!0}),L=e(()=>{if(j.value?.$anyEdited)return!0;for(let e in P.value)if(P.value[e]?.$anyEdited)return!0;return!1}),z=e(()=>y??x.options.id??`root`),B=e(()=>({autoDirty:T.value,lazy:h(x.options.lazy)??!1,rewardEarly:b.value,silent:S.value,clearExternalErrorsOnChange:h(x.options.clearExternalErrorsOnChange)??!1,id:h(x.options.id)}));function H(){x.shortcuts?.nested&&Object.entries(x.shortcuts.nested).forEach(([e,n])=>{let a=t();W[e]=a.run(()=>{let e=u();return v(()=>{e.value=n(l({$dirty:s,$path:i,$value:r,$silentValue:o,$error:_,$originalValue:g,$pending:k,$invalid:d,$correct:f,$ready:E,$anyDirty:c,$name:z,$silentErrors:F,$initialValue:m,$errors:N,$fields:P,$edited:I,$anyEdited:L,$issues:A,$self:j,"~modifiers":h(x.options)}))}),e}),w.push(a)})}let U=e({get:()=>p?Object.fromEntries(Object.entries(p?.(P.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,Y(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,X(t,e)]))}]:[])):{},set(){}}),W={};return H(),{$dirty:s,$anyDirty:c,$invalid:d,$correct:f,$error:_,$pending:k,$issues:A,$errors:N,$silentErrors:F,$ready:E,$name:z,$shortcuts:W,$groups:U,$silentValue:o,$edited:I,$anyEdited:L,$localPending:O,$autoDirty:T,$silent:S,$value:a,$modifiers:B}})}function R(){if(T?.(),O?.(),k?.(),E?.(),w=[],C={},P.value)for(let e of Object.values(P.value))e?.$unwatch()}function z(){let e=P.value;for(let t of Object.values(e))t.$clearExternalErrors();j.value?.$clearExternalErrors()}function B(e,t){if(O?.(),R(),!t)if(e?.toOriginalState)r.value=A({...g}),m.value=A({...g});else if(e?.toInitialState)r.value=A({...m.value});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,m.value=A(t),r.value=A(t)}else m.value=A(r.value);if(!e?.keepValidationState){for(let t of Object.values(P.value))t?.$reset(e,!0);j.value?.$reset(e,!0)}e?.clearExternalErrors&&z(),F(),t||M()}function V(e=!0,t=!1){for(let n of Object.values(P.value))n?.$touch(e,t);j.value?.$touch(e,t)}function H(e){return e.filter(([e,t])=>b(t)&&!se(t)?!(t&&typeof t==`object`&&`_null`in t)&&!D(t):Array.isArray(t)?t.length:!0)}function U(e=!0){let t=Object.entries(P.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=H(t)),Object.fromEntries(t)}function W(){for(let e of Object.values(P.value))e.$abort();j.value?.$abort()}async function G(e){try{if(e&&(r.value=e),x.schemaMode)return x.onValidate?(V(!1),C.$localPending.value=!0,x.onValidate()):{valid:!1,data:r.value,errors:C.$errors.value,issues:C.$issues.value};{let e=r.value;W();let t=[...Object.values(P.value).map(e=>e.$validate()),...j.value?[j.value?.$validate()]:[]];return{valid:(await Promise.allSettled(t)).every(e=>e.status===`fulfilled`&&e?.value?.valid===!0),data:e,errors:C.$errors.value,issues:C.$issues.value}}}catch{return{valid:!1,data:r.value,errors:C.$errors.value,issues:C.$issues.value}}finally{C.$localPending.value=!1}}function ee(e){try{return e&&(r.value=e),[...Object.values(P.value).map(e=>e.$validateSync()),...j.value?[j.value?.$validateSync()]:[]].every(e=>!!e)}catch{return!1}}let{$shortcuts:te,$localPending:K,...q}=C,J=l({...q,...te,$path:i,$initialValue:m,$originalValue:g,$self:j,$fields:P,$reset:B,$touch:V,$validate:G,$unwatch:R,$watch:L,$clearExternalErrors:z,$extractDirtyFields:U,$abort:W,$validateSync:ee,...o?{"~modifiers":C.$modifiers}:{},...ge(G)});return v(()=>{for(let e of Object.keys(J).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete J[e];for(let e of Object.values(P.value))e?.$name&&Object.assign(J,{[e.$name]:e})}),J}function xe({rulesDef:e,...n}){if(ie(e,n.state))return ye({rulesDef:e,...n});if(re(n.state,e)){if(H(n.state))return be({rulesDef:e,...n});{let r=t().run(()=>{let e=f(n.state.value?n.state:u({}));return _(()=>n.state.value,t=>{e.value=t},{deep:!0}),_(e,e=>{n.state.value=e},{deep:!0}),{fakeState:e}}),{state:i,...a}=n;return be({rulesDef:e,...a,state:r.fakeState})}}else if(ae(e))return _e({rulesDef:i(e.value)?e.value:e,...n})}var Se=`1.18.2`;function Ce({initialState:e,originalState:t,options:n,scopeRules:i,state:a,customRules:o,shortcuts:s,schemaErrors:d,schemaMode:f=!1,onValidate:p,overrides:m}){let h=Z(),g=u(),v=u(),y,b;function x(){y=_(()=>n.externalErrors?.value,()=>{b?.(),n.externalErrors?.value&&Object.keys(n.externalErrors.value).some(e=>e.includes(`.`))?v.value=C(n.externalErrors.value):v.value=n.externalErrors?.value,S()},{immediate:!0,deep:!0})}function S(){b=_(()=>v.value,()=>{y?.(),n.externalErrors?.value&&(n.externalErrors.value=v.value),x()},{deep:!0})}return x(),re(a,i)?g.value=be({rootRules:i,rulesDef:i,state:a,customMessages:o?.(),storage:h,options:n,externalErrors:v,validationGroups:n.validationGroups,initialState:e,originalState:t,shortcuts:s,fieldName:void 0,path:``,cachePath:``,schemaErrors:d,rootSchemaErrors:d,schemaMode:f,onValidate:p,overrides:m}):ae(i)&&(g.value=_e({rulesDef:i,state:a,customMessages:o?.(),storage:h,options:n,externalErrors:v,initialState:e,originalState:t,shortcuts:s,fieldName:void 0,path:``,cachePath:``,schemaMode:f,schemaErrors:d,onValidate:p,overrides:m})),r()&&c(()=>{g.value?.$unwatch(),b?.(),y?.()}),l({regle:g})}function we({state:t,rulesFactory:n,options:r,globalOptions:a,customRules:o,shortcuts:s,overrides:c}){let l=i(n)?n:typeof n==`function`?void 0:e(()=>n),f={...a,...r},p,h=d(l??{});typeof n==`function`&&(p=v(()=>{h.value=n(t),m(h)}));let g=u(b(t.value)?{...A(t.value)}:A(t.value)),_=b(t.value)?{...A(t.value)}:A(t.value);return q(()=>{p?.()}),Ce({scopeRules:h,state:t,options:f,initialState:g,originalState:_,customRules:o,shortcuts:s,overrides:c})}function Te(e){let{rules:t,modifiers:n,shortcuts:r,overrides:a}=e??{},o={autoDirty:n?.autoDirty,lazy:n?.lazy,rewardEarly:n?.rewardEarly,silent:n?.silent,clearExternalErrorsOnChange:n?.clearExternalErrorsOnChange,immediateDirty:n?.immediateDirty};function s(e,n,s){return{r$:we({state:i(e)?e:u(e),rulesFactory:n,options:s,globalOptions:o,customRules:t,shortcuts:r,overrides:a}).regle}}return s}const Ee=Te();function De(){function e(e,t){return t}return e}const Oe=De();function ke(e,t){return x(h(e).$errors,String(t))}function Ae(e,t){return x(h(e).$issues,String(t))}function je(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&&b(r)&&`$each`in r&&r.$each&&b(r.$each)?t[n]=[je(r.$each)]:b(r)&&!D(r)&&!Object.entries(r).some(([e,t])=>$(t)||typeof t==`function`)?t[n]=je(r):t[n]=null}return t}function Me(t){let{rules:n,modifiers:r,shortcuts:a,overrides:o}=t??{},s={autoDirty:r?.autoDirty,lazy:r?.lazy,rewardEarly:r?.rewardEarly,silent:r?.silent,clearExternalErrorsOnChange:r?.clearExternalErrorsOnChange,immediateDirty:r?.immediateDirty};function c(t,r){let c=i(t)?t:typeof t==`function`?void 0:e(()=>t);return we({state:u(je(c?.value)),rulesFactory:c,options:r,globalOptions:s,customRules:n,shortcuts:a,overrides:o}).regle}return c}const Ne=Me();function Pe(e){if(E(e)){let t=e,n=class extends t{constructor(...e){return super(...e),Fe(this)}};return Object.defineProperty(n,`name`,{value:t.name}),Fe(n)}return Fe(e)}function Fe(e){return!w(e,Q.REGLE_STATIC)&&Object.isExtensible(e)&&T(e,Q.REGLE_STATIC,!0),e}function Ie({rules:e,modifiers:t,shortcuts:n,overrides:r}){let i=Te({rules:e,modifiers:t,shortcuts:n,overrides:r}),a=Me({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:De(),useRules:a}}function Le(e,{rules:t,modifiers:n,shortcuts:r,overrides:i}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?S(a.modifiers,n):a.modifiers??n,c=a.shortcuts&&r?S(a.shortcuts,r):a.shortcuts??r,l=a.overrides&&i?S(a.overrides,i):a.overrides??i,u=Te({rules:o,modifiers:s,shortcuts:c,overrides:l});return u.__config={rules:o,modifiers:s,shortcuts:c,overrides:l},{useRegle:u,inferRules:De()}}function Re(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)),u=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]))),y=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$edited)}),b=e(()=>Object.entries(t).some(([e,t])=>t?.$anyEdited)),x=e(()=>r?Object.values(t):t);function S(e){Object.values(t).forEach(t=>{t.$reset(e)})}function C(){Object.values(t).forEach(e=>{e.$touch()})}function w(e=!0){return Object.values(t).map(t=>t.$extractDirtyFields(e))}function T(){Object.values(t).forEach(e=>{e.$clearExternalErrors()})}async function E(e){try{e&&(i.value=e);let n=i.value;return{valid:(await Promise.allSettled(Object.values(t).map(e=>e.$validate()))).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:n,errors:g.value,issues:m.value}}catch{return{valid:!1,data:i.value,errors:g.value,issues:m.value}}}let D=l({...!r&&{$silentValue:a},$errors:g,$issues:m,$silentIssues:h,$silentErrors:_,$instances:x,$value:i,$dirty:o,$anyDirty:s,$invalid:c,$correct:u,$error:d,$pending:p,$ready:f,$edited:y,$anyEdited:b,$reset:S,$touch:C,$validate:E,$extractDirtyFields:w,$clearExternalErrors:T});return v(()=>{if(!r){for(let e of Object.keys(D).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete D[e];for(let[e,t]of Object.entries(x.value))Object.assign(D,{[e]:t})}}),D}function ze(t,n){function r(r){let i=e(()=>p(r)),a=l({});c();let o=u(d(t.value)),s=l({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]={})}))}_(i,c),_(t,e=>{o.value=d(e)},{deep:!0});function d(e){return i.value?typeof i.value==`string`?Re(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})})}),Re(a,!n.asRecord)):Re(e[`~~global`]??{},!n.asRecord)}return{r$:s.r$}}return{useCollectScope:r}}function Be(t,r){let i=r??Ee;return{useScopedRegle:((r,a,o)=>{let{namespace:c,scopeKey:l,id:d,...f}=o??{};i.__config??={};let m=e(()=>d??l),h=e(()=>p(c)),g=u(`${Object.keys(t.value).length+1}-${K()}`),v=e(()=>m.value??`instance-${g.value}`),{r$:y}=i(r,a,{...f,id:m.value});x(),q(b),_(h,(e,t)=>{b(t),x()}),n()&&s(()=>{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][v.value]:t.value[`~~global`][v.value]&&delete t.value[`~~global`][v.value]}function x(){h.value?(t.value[h.value]||(t.value[h.value]={}),t.value[h.value][v.value]=y):(t.value[`~~global`]||(t.value[`~~global`]={}),t.value[`~~global`][v.value]=y)}return{r$:y,dispose:b,register:x}})}}function Ve(e){let t=(e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):J(()=>u({"~~global":{}})))(),{useScopedRegle:n}=Be(t,e?.customUseRegle),{useCollectScope:r}=ze(t,{asRecord:e?.asRecord});return{useScopedRegle:n,useCollectScope:r}}const{useCollectScope:He,useScopedRegle:Ue}=Ve(),We=He,Ge=Ue;function Ke(t,n,r){let i=e(()=>p(t)[n]);return e(()=>r.find(e=>{if(e[n]&&`literal`in e[n]){let t=e[n].literal;if($(t))return h(t._params?.[0])===i.value}})||r.find(e=>b(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`))||{})}function qe(e,t,n){return!!e&&b(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function Je(e,t,n,r){let a=i(e)?f(e.value,`$fields`):f(e,`$fields`),s=u();return _(a,async()=>{await o(),qe(a.value,t,n)?s.value=f(e).value:s.value=void 0},{immediate:!0,flush:`pre`}),s}function Ye(e){return e}function Xe(e,t){return n=>S({...e},t(n))}const Ze={install(e){e.provide(ne,Se)}};export{I as InternalRuleType,Ze as RegleVuePlugin,V as createRule,Ve as createScopedUseRegle,Ke as createVariant,Ie as defineRegleConfig,Ye as defineRules,Le as extendRegleConfig,pe as flatErrors,ke as getErrors,Ae as getIssues,Oe as inferRules,Pe as markStatic,Re as mergeRegles,qe as narrowVariant,Xe as refineRules,L as unwrapRuleParameters,We as useCollectScope,Ee as useRegle,Ce as useRootStorage,Ne as useRules,Ge as useScopedRegle,Je as variantToRef};
|