@regle/core 1.17.1 → 1.17.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/regle-core.d.ts +12 -5
- package/dist/regle-core.js +13 -4
- 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.17.
|
|
2
|
+
* @regle/core v1.17.2
|
|
3
3
|
* (c) 2026 Victor Garcia
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
@@ -421,12 +421,12 @@ interface GlobalConfigOverrides<TValue$1 extends unknown = unknown> {
|
|
|
421
421
|
type isEditedHandlerFn<TValue$1 extends unknown = unknown> = (currentValue: MaybeInput<TValue$1>, initialValue: MaybeInput<TValue$1>, defaultHandlerFn: (currentValue: unknown, initialValue: unknown) => boolean) => boolean;
|
|
422
422
|
interface RegleBehaviourOptions {
|
|
423
423
|
/**
|
|
424
|
-
*
|
|
424
|
+
* Does not run rules until the field is dirty.
|
|
425
425
|
* @default false
|
|
426
426
|
*/
|
|
427
427
|
lazy?: boolean | undefined;
|
|
428
428
|
/**
|
|
429
|
-
* Automatically set the dirty
|
|
429
|
+
* Automatically set the dirty state to true when value is changed without the need of calling `$touch`.
|
|
430
430
|
* @default true
|
|
431
431
|
*
|
|
432
432
|
*/
|
|
@@ -453,6 +453,11 @@ interface RegleBehaviourOptions {
|
|
|
453
453
|
* @default true
|
|
454
454
|
*/
|
|
455
455
|
clearExternalErrorsOnChange?: boolean | undefined;
|
|
456
|
+
/**
|
|
457
|
+
* Set the dirty state to true when the form is initialized.
|
|
458
|
+
* @default false
|
|
459
|
+
*/
|
|
460
|
+
immediateDirty?: boolean | undefined;
|
|
456
461
|
}
|
|
457
462
|
interface LocalRegleBehaviourOptions<TState$1 extends Record<string, any>, TRules$1 extends ReglePartialRuleTree<TState$1, CustomRulesDeclarationTree>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]> = {}> {
|
|
458
463
|
/**
|
|
@@ -708,12 +713,14 @@ type VariantTuple<T extends Record<string, any>, TKey$1 extends keyof T> = [Requ
|
|
|
708
713
|
/**
|
|
709
714
|
* Combine all members of a union type, merging types for each key, and keeping loose types
|
|
710
715
|
*/
|
|
711
|
-
type JoinDiscriminatedUnions<TUnion extends unknown> = HasNamedKeys<TUnion> extends true ? isRecordLiteral<TUnion> extends true ? Prettify<Partial<UnionToIntersection<RemoveCommonKey<UnionToTuple<NonNullable<TUnion>>, keyof NormalizeUnion<NonNullable<TUnion>>>[number]>> & Pick<NormalizeUnion<NonNullable<TUnion>>, keyof NormalizeUnion<NonNullable<TUnion>>>> : TUnion : TUnion;
|
|
716
|
+
type JoinDiscriminatedUnions<TUnion extends unknown> = HasNamedKeys<TUnion> extends true ? isRecordLiteral<TUnion> extends true ? HasCommonKey<UnionToTuple<NonNullable<TUnion>>, keyof NormalizeUnion<NonNullable<TUnion>>> extends true ? Prettify<Partial<UnionToIntersection<RemoveCommonKey<UnionToTuple<NonNullable<TUnion>>, keyof NormalizeUnion<NonNullable<TUnion>>>[number]>> & Pick<NormalizeUnion<NonNullable<TUnion>>, keyof NormalizeUnion<NonNullable<TUnion>>>> : DumbJoinDiscriminatedUnions<TUnion> : TUnion : TUnion;
|
|
712
717
|
/**
|
|
713
718
|
* Combine all members of a union type on one level and not nested.
|
|
714
719
|
*/
|
|
715
720
|
type LazyJoinDiscriminatedUnions<TUnion extends unknown> = isRecordLiteral<TUnion> extends true ? Prettify<Partial<UnionToIntersection<RemoveCommonKey<UnionToTuple<TUnion>, keyof NonNullable<TUnion>>[number]>> & Pick<NonNullable<TUnion>, keyof NonNullable<TUnion>>> : TUnion;
|
|
721
|
+
type DumbJoinDiscriminatedUnions<TUnion extends unknown> = isRecordLiteral<TUnion> extends true ? Prettify<Partial<UnionToIntersection<TUnion>> & Pick<NonNullable<TUnion>, keyof NonNullable<TUnion>>> : TUnion;
|
|
716
722
|
type RemoveCommonKey<T extends readonly any[], K$1 extends PropertyKey> = T extends [infer F, ...infer R] ? [Prettify<Omit<F, K$1>>, ...RemoveCommonKey<R, K$1>] : [];
|
|
723
|
+
type HasCommonKey<T extends readonly any[], K$1 extends PropertyKey> = T extends [infer F, ...infer R] ? K$1 extends keyof F ? true : HasCommonKey<R, K$1> : false;
|
|
717
724
|
/**
|
|
718
725
|
* Transforms a union and apply undefined values to non-present keys to support intersection
|
|
719
726
|
*/
|
|
@@ -1991,4 +1998,4 @@ declare function refineRules<TRules$1 extends RegleUnknownRulesTree, TRefinement
|
|
|
1991
1998
|
* @see {@link https://reglejs.dev/introduction/devtools Documentation}
|
|
1992
1999
|
*/
|
|
1993
2000
|
declare const RegleVuePlugin: Plugin;
|
|
1994
|
-
export { type $InternalRegleStatus, type AllRulesDeclarations, type ArrayElement, type CommonAlphaOptions, type CommonComparisonOptions, type CreateScopedUseRegleOptions, type DeepMaybeRef, type DeepPartial, type DeepReactiveState, type DefaultValidatorsTree, type ExtendedRulesDeclarations, type FormRuleDeclaration, type GlobalConfigOverrides, type HasNamedKeys, type HaveAnyRequiredProps, type InferInput, type InferOutput, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleSettings, type InferRegleShortcuts, type InferRegleStatusType, type InferRegleValidationResult, type InferSafeOutput, type InferValidOutput, type InlineRuleDeclaration, InternalRuleType, type IsRegleStatic, type JoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type MaybeInput, type MaybeOutput, type MaybeReadonly, type MaybeVariantStatus, type MergedRegles, type MergedScopedRegles, type NarrowVariant, type NarrowVariantExtracts, type NarrowVariantFieldExtracts, type NoInferLegacy, type NonEmptyTuple, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleCustomFieldStatus, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleExternalSchemaErrorTree, type RegleFieldIssue, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type RegleIssuesTree, type RegleLike, type ReglePartialRuleTree, type RegleResult, type RegleRoot, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleMetadataExtended, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleTypeReturn, type RegleRuleWithParamsDefinition, type RegleRuleWithParamsDefinitionInput, type RegleShortcutDefinition, type RegleSingleField, type RegleStatic, type RegleStaticImpl, type RegleStatus, type RegleUniversalParams, type RegleUnknownRulesTree, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, RegleVuePlugin, type ResolvedRegleBehaviourOptions, type ScopedInstancesRecord, type ScopedInstancesRecordLike, type SuperCompatibleRegle, type SuperCompatibleRegleCollectionErrors, type SuperCompatibleRegleCollectionStatus, type SuperCompatibleRegleFieldStatus, type SuperCompatibleRegleResult, type SuperCompatibleRegleRoot, type SuperCompatibleRegleRuleStatus, type SuperCompatibleRegleStatus, type TupleToPlainObj, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, type UnwrapStatic, type UseScopedRegleOptions, createRule, createScopedUseRegle, createVariant, defineRegleConfig, defineRules, extendRegleConfig, flatErrors, inferRules, type inferRulesFn, type isEditedHandlerFn, markStatic, mergeRegles, narrowVariant, refineRules, unwrapRuleParameters, useCollectScope, type useCollectScopeFn, useRegle, type useRegleFn, useRootStorage, useRules, type useRulesFn, useScopedRegle, variantToRef };
|
|
2001
|
+
export { type $InternalRegleStatus, type AllRulesDeclarations, type ArrayElement, type CommonAlphaOptions, type CommonComparisonOptions, type CreateScopedUseRegleOptions, type DeepMaybeRef, type DeepPartial, type DeepReactiveState, type DefaultValidatorsTree, type DumbJoinDiscriminatedUnions, type ExtendedRulesDeclarations, type FormRuleDeclaration, type GlobalConfigOverrides, type HasNamedKeys, type HaveAnyRequiredProps, type InferInput, type InferOutput, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleSettings, type InferRegleShortcuts, type InferRegleStatusType, type InferRegleValidationResult, type InferSafeOutput, type InferValidOutput, type InlineRuleDeclaration, InternalRuleType, type IsRegleStatic, type JoinDiscriminatedUnions, type LazyJoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type MaybeInput, type MaybeOutput, type MaybeReadonly, type MaybeVariantStatus, type MergedRegles, type MergedScopedRegles, type NarrowVariant, type NarrowVariantExtracts, type NarrowVariantFieldExtracts, type NoInferLegacy, type NonEmptyTuple, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleCustomFieldStatus, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleExternalSchemaErrorTree, type RegleFieldIssue, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type RegleIssuesTree, type RegleLike, type ReglePartialRuleTree, type RegleResult, type RegleRoot, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleMetadataExtended, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleTypeReturn, type RegleRuleWithParamsDefinition, type RegleRuleWithParamsDefinitionInput, type RegleShortcutDefinition, type RegleSingleField, type RegleStatic, type RegleStaticImpl, type RegleStatus, type RegleUniversalParams, type RegleUnknownRulesTree, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, RegleVuePlugin, type ResolvedRegleBehaviourOptions, type ScopedInstancesRecord, type ScopedInstancesRecordLike, type SuperCompatibleRegle, type SuperCompatibleRegleCollectionErrors, type SuperCompatibleRegleCollectionStatus, type SuperCompatibleRegleFieldStatus, type SuperCompatibleRegleResult, type SuperCompatibleRegleRoot, type SuperCompatibleRegleRuleStatus, type SuperCompatibleRegleStatus, type TupleToPlainObj, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, type UnwrapStatic, type UseScopedRegleOptions, createRule, createScopedUseRegle, createVariant, defineRegleConfig, defineRules, extendRegleConfig, flatErrors, inferRules, type inferRulesFn, type isEditedHandlerFn, markStatic, mergeRegles, narrowVariant, refineRules, unwrapRuleParameters, useCollectScope, type useCollectScopeFn, useRegle, type useRegleFn, useRootStorage, useRules, type useRulesFn, useScopedRegle, variantToRef };
|
package/dist/regle-core.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @regle/core v1.17.
|
|
2
|
+
* @regle/core v1.17.2
|
|
3
3
|
* (c) 2026 Victor Garcia
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
@@ -1128,6 +1128,11 @@ function createReactiveFieldStatus({ state, rulesDef, customMessages, path, cach
|
|
|
1128
1128
|
else if (unref(options.lazy) != null) return unref(options.lazy);
|
|
1129
1129
|
return false;
|
|
1130
1130
|
});
|
|
1131
|
+
const $immediateDirty = computed(() => {
|
|
1132
|
+
if ($localOptions.value.$immediateDirty != null) return $localOptions.value.$immediateDirty;
|
|
1133
|
+
else if (unref(options.immediateDirty) != null) return unref(options.immediateDirty);
|
|
1134
|
+
return false;
|
|
1135
|
+
});
|
|
1131
1136
|
const $rewardEarly$1 = computed(() => {
|
|
1132
1137
|
if ($localOptions.value.$rewardEarly != null) return $localOptions.value.$rewardEarly;
|
|
1133
1138
|
else if (unref(options.rewardEarly) != null) return unref(options.rewardEarly);
|
|
@@ -1296,6 +1301,7 @@ function createReactiveFieldStatus({ state, rulesDef, customMessages, path, cach
|
|
|
1296
1301
|
$debounce: $debounce$1,
|
|
1297
1302
|
$deepCompare,
|
|
1298
1303
|
$lazy: $lazy$1,
|
|
1304
|
+
$immediateDirty,
|
|
1299
1305
|
$ready,
|
|
1300
1306
|
$issues,
|
|
1301
1307
|
$silentIssues,
|
|
@@ -1464,6 +1470,7 @@ function createReactiveFieldStatus({ state, rulesDef, customMessages, path, cach
|
|
|
1464
1470
|
if (externalErrors?.value?.length) externalErrors.value = [];
|
|
1465
1471
|
}
|
|
1466
1472
|
if (!scopeState.$lazy.value && !scopeState.$dirty.value && !scopeState.$silent.value) $commitHandler();
|
|
1473
|
+
if (scopeState.$immediateDirty.value) scopeState.$dirty.value = true;
|
|
1467
1474
|
const { $shortcuts, $validating, $autoDirty, $rewardEarly, $clearExternalErrorsOnChange, $haveAnyAsyncRule, $debounce, $lazy, ...restScope } = scopeState;
|
|
1468
1475
|
return reactive({
|
|
1469
1476
|
...restScope,
|
|
@@ -3066,7 +3073,7 @@ function filterInspectorTree(nodes, filter) {
|
|
|
3066
3073
|
return filtered;
|
|
3067
3074
|
}
|
|
3068
3075
|
|
|
3069
|
-
var version$1 = "1.17.
|
|
3076
|
+
var version$1 = "1.17.2";
|
|
3070
3077
|
|
|
3071
3078
|
function createDevtools(app) {
|
|
3072
3079
|
setupDevtoolsPlugin({
|
|
@@ -3264,7 +3271,8 @@ function createUseRegleComposable(options) {
|
|
|
3264
3271
|
lazy: modifiers?.lazy,
|
|
3265
3272
|
rewardEarly: modifiers?.rewardEarly,
|
|
3266
3273
|
silent: modifiers?.silent,
|
|
3267
|
-
clearExternalErrorsOnChange: modifiers?.clearExternalErrorsOnChange
|
|
3274
|
+
clearExternalErrorsOnChange: modifiers?.clearExternalErrorsOnChange,
|
|
3275
|
+
immediateDirty: modifiers?.immediateDirty
|
|
3268
3276
|
};
|
|
3269
3277
|
function useRegle$1(state, rulesFactory, options$1) {
|
|
3270
3278
|
return { r$: createRootRegleLogic({
|
|
@@ -3367,7 +3375,8 @@ function createUseRulesComposable(options) {
|
|
|
3367
3375
|
lazy: modifiers?.lazy,
|
|
3368
3376
|
rewardEarly: modifiers?.rewardEarly,
|
|
3369
3377
|
silent: modifiers?.silent,
|
|
3370
|
-
clearExternalErrorsOnChange: modifiers?.clearExternalErrorsOnChange
|
|
3378
|
+
clearExternalErrorsOnChange: modifiers?.clearExternalErrorsOnChange,
|
|
3379
|
+
immediateDirty: modifiers?.immediateDirty
|
|
3371
3380
|
};
|
|
3372
3381
|
function useRules$1(rulesFactory, options$1) {
|
|
3373
3382
|
const definedRules = isRef(rulesFactory) ? rulesFactory : typeof rulesFactory === "function" ? void 0 : computed(() => rulesFactory);
|
package/dist/regle-core.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @regle/core v1.17.
|
|
2
|
+
* @regle/core v1.17.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,t=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):y(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:typeof e==`object`&&e?Object.keys(e).length===0:!String(e).length}const x=Symbol(`regle-rule`);function S(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 C(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=>C(e,t++)))),r==`Map`&&(n=new Map([...e].map(e=>[C(e[0]),C(e[1])]))),r==`Date`&&(n=new Date(e.getTime())),r==`RegExp`&&(n=RegExp(e.source,S(e))),r==`Array`||r==`Object`)for(let r in n=Array.isArray(e)?[]:{},e)n[r]=C(e[r],t++);return n}function w(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function T(e,...t){for(var n=[].slice.call(arguments),r,i=n.length;r=n[i-1],i--;)if(!r||typeof r!=`object`&&typeof r!=`function`)throw Error(`expected object, got `+r);for(var a=n[0],o=n.slice(1),s=o.length,i=0;i<s;i++){var c=o[i];for(var l in c)a[l]=c[l]}return a}function E(e){let t={};for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n],i=n.split(`.`),a=t;for(let e=0;e<i.length;e++){let t=i[e],n=e===i.length-1,o=t.match(/^\d+$/)?Number(t):null;if(o!==null){if(Array.isArray(a))if(n)a[o]=r;else{if(typeof a[o]!=`object`||a[o]===null){let t=i[e+1];a[o]=t&&t.match(/^\d+$/)?{$each:[],$self:[]}:{}}a=`$each`in a[o]?a[o].$each:a[o]}}else if(n)if(Array.isArray(a[t])){let e=a[t].slice();a[t]={},a[t].$self=e}else typeof a[t]==`object`&&a[t]!==null&&`$each`in a[t]?a[t].$self=r:a[t]=r;else{let n=i[e+1];if(Array.isArray(a[t])){let e=a[t].slice();a[t]={$each:[]},a[t].$self=e}(typeof a[t]!=`object`||a[t]===null||Array.isArray(a[t])&&!n.match(/^\d+$/))&&(n&&n.match(/^\d+$/)?a[t]={$each:[],$self:[]}:a[t]={}),a=`$each`in a[t]?a[t].$each:a[t]}}}return t}function D(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function O(e,t,n,r=!1){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})}function k(e){return typeof e==`function`&&!!e.prototype&&`constructor`in e.prototype&&e.prototype.constructor===e}function A(e){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 j(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 M(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(!M(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(w(e)&&w(t)&&s&&(r||!r&&n)&&!M(e[s],t[s],n,!1))return!1}return!0}return e!==e&&t!==t}var N=class extends Error{constructor(e=`Promise was aborted`){super(e),this.name=`AbortError`}};function P(e){let t=new AbortController,{signal:n}=t,r=new Promise((t,r)=>{function i(){r(new N)}n.addEventListener(`abort`,i),e.then(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new N):t(e)}).catch(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new N):r(e)})});function i(e){t.abort(e)}return{promise:r,abort:i,signal:n}}const F={Inline:`__inline`,Async:`__async`};function I(e){try{return e.map(e=>p(e))}catch{return[]}}function L(t){return t.map(t=>t instanceof Function?e(t):i(t)?t:f(()=>t))}function R(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 z(e,...t){let{validator:n,type:r,async:i}=e,o=i||r===F.Async||n.constructor.name===`AsyncFunction`;return a({validator(n,...r){return e.validator(n,...I(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:I(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:I(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:I(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...I(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:L(t),_brand:x})}function B(e){if(typeof e.validator==`function`){let t=[],n=e.async??e.validator.constructor.name===`AsyncFunction`,r=z({...e,async:n},...t);if(R(e.validator)>1){let t=function(...t){return z(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 V(e){return w(e.value)}function H(e,n,r){let i=t(),a;return a=e instanceof Function?i.run(()=>e(n,r??0)):e,{scope:i,unwrapped:a}}const U={LessThan:-1,EqualTo:0,GreaterThan:1};function W(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 U.GreaterThan;if(i>t)return U.LessThan;if(!isNaN(t)&&isNaN(i))return U.GreaterThan;if(isNaN(t)&&!isNaN(i))return U.LessThan}return U.EqualTo}const ee=W(g,`3.5.0`)!==-1;function te(){return Math.floor(Math.random()*Date.now()).toString()}function G(){return typeof window>`u`?te():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function K(e){return r()?(c(e),!0):!1}function q(e){let n=!1,r,i=t(!0);return((...t)=>(n||=(r=i.run(()=>e(...t)),!0),r))}function ne(e,t){return e.some(e=>t?e?.[t]:!1)}function J(e,t){return t?e.reduce((e,n)=>{let r=n?.[t]||[];return e.concat(r)},[]):[]}function Y(){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=I(i._params),n=I(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 X=Symbol(`regle`),Z={REGLE_STATIC:`__regle_static`};function Q(e,t){return!oe(e.value)&&(V(e)||w(t.value)&&!b(t.value)&&!Object.entries(t.value).some(([e,t])=>$(t)||typeof t==`function`))}function re(e,t,n=!1){return!!e.value&&w(e.value)&&`$each`in e.value||n&&Array.isArray(t.value)||Array.isArray(t.value)&&t.value.some(w)}function ie(e){return!!e.value&&(w(e.value)||V(e.value))}function $(e){return(w(e)||typeof e==`function`)&&`_validator`in e}function ae(e){return typeof e.value==`function`?`_validator`in e.value:!0}function oe(e){return w(e)&&D(e,Z.REGLE_STATIC)&&e[Z.REGLE_STATIC]===!0}function se(e){return w(e)&&`$fields`in e}function ce(e){return!!e&&`$rules`in e}function le({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 ue({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 de(e){return w(e)&&`$each`in e}function fe(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!w(e)))return e;if(de(e)){let t=n?e.$self?.map(e=>({message:e,path:[]}))??[]:e.$self??[],r=e.$each?.map(e=>pe(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>pe(t,n,[e])).flat()}function pe(e,t=!1,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(e=>!w(e)))return t?e.map(e=>({message:e,path:r??[]})):e;if(de(e)){let n=r?.length?e.$self?.map(e=>({message:e,path:r??[]}))??[]:e.$self??[],i=e.$each?.map((e,n)=>pe(e,t,r?.concat(n)))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>pe(n,t,r?.concat(e))).flat()}function me({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:x,$validating:S}=c.trySetRuleStatusRef(`${s}.${i}`);function C(){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:C.value,...x.value})),p=e(()=>{try{return ae(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),ae(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 b(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),_=e(()=>ae(r)&&r.value.type?r.value.type:i),S=e(()=>ae(r)?r.value.validator:r.value),C=e(()=>typeof r.value==`function`?[]:I(r.value._params??[]));return{$active:p,$message:h,$type:_,$validator:S,$params:C,$path:e(()=>`${o}.${_.value}`),$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()})}C();function w(){y.value=!0,p.$fieldDirty.value&&(v.value=!0)}async function T(){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;w();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,x.value=n}}catch{e=!1}finally{v.value=!1}return e}async function E(){try{S.value=!0;let e=!1;if(g.value=!0,$(r.value)&&r.value._async)e=await T();else{let t=p.$validator.value,n=t(a.value,...p.$params.value);if(n instanceof Promise)console.warn(`You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper`);else if(n!=null)if(typeof n==`boolean`)e=n;else{let{$valid:t,...r}=n;e=t,x.value=r}}return y.value=e,e}catch{return!1}finally{S.value=!1,g.value=!1}}function D(){y.value=!0,x.value={},v.value=!1,S.value=!1,C()}function O(){m(),f.stop(),f=t()}return l({...p,$pending:v,$valid:y,$metadata:x,$haveAsync:h,$maybePending:g,$validating:S,$parse:E,$unwatch:O,$watch:C,$reset:D})}function he(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:fe(i,{includePath:!0})}}}}}function ge({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:T,shortcuts:E,overrides:D,onValidate:O}){let k=t(),N,F=[],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]);X.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,me({modifiers:{$silent:N.$silent,$rewardEarly:N.$rewardEarly},customMessages:i,rule:r,ruleKey:e,state:n,path:a,cachePath:o,storage:c,$debounce:X.value.$debounce})])}Y.value=Object.fromEntries(u),N.processShortcuts(),te(),G(),t?.valid!=null&&(N.$dirty.value=c.getDirtyState(o),(N.$dirty.value&&!N.$silent.value||N.$rewardEarly.value&&N.$error.value)&&B()),c.addRuleDeclEntry(o,e)}function te(){B=N.$debounce.value>0?j(J,N.$debounce.value,{trackDebounceRef:U}):J}function G(){H=N.$debounce.value>0?j(()=>{N.$dirty.value=!0},N.$debounce.value):()=>{N.$dirty.value=!0}}function K(){if(Y.value)for(let e of Object.values(Y.value))e.$unwatch();L(),z?.(),N.$dirty.value&&c.setDirtyEntry(o,N.$dirty.value),I?.(),k.stop(),k=t();for(let e of F)e.stop();F=[],y?.(),R?.()}function q(){if(Y.value)for(let e of Object.values(Y.value))e.$watch();N=k.run(()=>{let i=u(!1),a=u(!1),o=e(()=>i.value),c=e(()=>x||oe(n.value)),f=e(()=>X.value.$debounce==null?N.$haveAnyAsyncRule.value?200:0:X.value.$debounce),_=e(()=>X.value.$deepCompare==null?!1:X.value.$deepCompare),y=e(()=>X.value.$lazy==null?h(d.lazy)==null?!1:h(d.lazy):X.value.$lazy),C=e(()=>X.value.$rewardEarly==null?h(d.rewardEarly)==null?!1:h(d.rewardEarly):X.value.$rewardEarly),w=e(()=>X.value.$clearExternalErrorsOnChange==null?h(d.clearExternalErrorsOnChange)==null?!T.value:h(d.clearExternalErrorsOnChange):X.value.$clearExternalErrorsOnChange),T=e(()=>C.value?!0:X.value.$silent==null?h(d.silent)==null?!1:h(d.silent):X.value.$silent),O=e(()=>X.value.$autoDirty==null?h(d.autoDirty)==null?!0:h(d.autoDirty):X.value.$autoDirty),k=e(()=>{for(let e of Object.values(Y.value))if(e.$validating)return!0;return!1}),j=e({get:()=>n.value,set(e){I(),n.value=e,ne()}}),P=e(()=>U.value?K.value&&i.value:K.value&&!G.value&&i.value),L=e(()=>le({field:{$rules:Y.value,$error:P.value,$externalErrors:p?.value,$schemaErrors:m?.value,fieldName:q.value}})),R=e(()=>le({field:{$rules:Y.value,$error:P.value,$externalErrors:p?.value,$schemaErrors:m?.value,fieldName:q.value},silent:!0})),z=e(()=>L.value.map(e=>e.$message)),B=e(()=>R.value.map(e=>e.$message)),V=u(!1);function H(e,t){return t instanceof Date&&e instanceof Date?A(t).getDate()!==A(e).getDate():t==null?!!e:Array.isArray(e)&&Array.isArray(t)?!M(e,t,X.value.$deepCompare):t!==e}v(()=>{i.value?X.value.$isEdited?V.value=X.value.$isEdited(n.value,S.value,H):D?.isEdited?V.value=D.isEdited(n.value,S.value,H):V.value=H(n.value,S.value):V.value=!1});let W=e(()=>V.value),ee=e(()=>ue({field:{$rules:Y.value}})),te=e(()=>!(K.value||G.value)),G=e(()=>a.value||!C.value?Object.entries(Y.value).some(([e,t])=>t.$pending):!1),K=e(()=>p?.value?.length||m?.value?.length?!0:J.value?!1:Object.values(Y.value).some(e=>!e.$valid||e.$maybePending)),q=e(()=>s??d.id??`root`),J=e(()=>!g&&!Object.keys(r.value).some(e=>!e.startsWith(`$`))),Z=e(()=>{if(p?.value?.length||J.value||U.value)return!1;if(i.value&&!b(n.value)&&!k.value&&!G.value){if(g)return!m?.value?.length;{let e=Object.values(Y.value);for(let t of e)if(t.$active&&!t.$valid)return!1;return e.some(e=>e.$active)}}return!1}),Q=e(()=>Object.values(Y.value).some(e=>e.$haveAsync)),re=e(()=>({$debounce:f.value,$lazy:y.value,$rewardEarly:C.value,$autoDirty:O.value,$silent:T.value,$clearExternalErrorsOnChange:w.value}));function ie(){E?.fields&&Object.entries(E.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:j,$rules:Y,$error:P,$pending:G,$invalid:K,$correct:Z,$errors:z,$ready:te,$silentErrors:B,$anyDirty:o,$tooltips:ee,$name:q,$inactive:J,$edited:V,$anyEdited:W}))}),e}),F.push(a)})}let $={};return{$error:P,$pending:G,$invalid:K,$correct:Z,$debounce:f,$deepCompare:_,$lazy:y,$ready:te,$issues:L,$silentIssues:R,$errors:z,$silentErrors:B,$rewardEarly:C,$autoDirty:O,$silent:T,$clearExternalErrorsOnChange:w,$anyDirty:o,$edited:V,$anyEdited:W,$name:q,$haveAnyAsyncRule:Q,$shortcuts:$,$validating:k,$tooltips:ee,$dirty:i,processShortcuts:ie,$silentValue:j,$inactive:J,$modifiers:re,$isArrayOrRegleStatic:c}}),ne(),L=_(N.$dirty,e=>{c.setDirtyEntry(o,e),Object.values(Y.value).forEach(t=>{t.$fieldDirty=e})}),z=_([N.$error,N.$correct,N.$invalid,N.$pending],()=>{Object.values(Y.value).forEach(e=>{e.$fieldError=N.$error.value,e.$fieldInvalid=N.$invalid.value,e.$fieldPending=N.$pending.value,e.$fieldCorrect=N.$correct.value})}),R=_(N.$haveAnyAsyncRule,te)}function ne(){I=_(n,()=>{N.$autoDirty.value&&!N.$silent.value&&(N.$dirty.value||H()),r.value instanceof Function&&W(),(!N.$silent.value||N.$rewardEarly.value&&N.$error.value)&&B(),N.$clearExternalErrorsOnChange.value&&ce()},{deep:N.$isArrayOrRegleStatic.value?!0:ee?1:!0})}async function J(){try{let{promise:e}=re(Promise.allSettled(Object.values(Y.value).map(e=>e.$parse())));await e}catch{}}let Y=u({}),X=u({});W();function Z(e,t){if(Q(),ce(),N.$dirty.value=!1,c.setDirtyEntry(o,!1),!t)if(e?.toOriginalState)n.value=C(T),S.value=C(T);else if(e?.toInitialState)n.value=C(S.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,S.value=C(t),n.value=C(t)}else S.value=w(n.value)&&!oe(n.value)?C(n.value):Array.isArray(n.value)?[...n.value]:n.value;if(e?.clearExternalErrors&&ce(),!t&&!e?.keepValidationState)for(let e of Object.values(Y.value))e.$reset();if(!N.$lazy.value&&!N.$silent.value&&!t)for(let e of Object.values(Y.value))e.$parse()}function Q(){`cancel`in B&&B.cancel()}function re(e){return V&&V.abort(),V=P(e),V}function ie(){Q(),V&&V.abort()}function $(e=!0,t=!1){N.$dirty.value||H(),t&&e?(!N.$silent.value||N.$rewardEarly.value&&N.$error.value)&&(Q(),B()):e&&(Q(),B())}async function ae(e){try{if(e&&(n.value=e),g)return O?($(!1),O()):{valid:!1,data:n.value,errors:N.$errors.value,issues:N.$issues.value};let t=n.value;if(!N.$dirty.value)N.$dirty.value=!0;else if(!N.$silent.value&&N.$dirty.value&&!N.$pending.value&&!U.value&&!N.$haveAnyAsyncRule.value)return{valid:!N.$error.value,data:t,errors:N.$errors.value,issues:N.$issues.value};if(g)return{valid:!m?.value?.length,data:t,errors:N.$errors.value,issues:N.$issues.value};if(b(Y.value))return{valid:!0,data:t,errors:N.$errors.value,issues:N.$issues.value};ie();let{promise:r}=re(Promise.allSettled(Object.values(Y.value).map(e=>e.$parse())));return{valid:(await r).every(e=>e.status===`fulfilled`&&e.value===!0),data:t,errors:N.$errors.value,issues:N.$issues.value}}catch{return{valid:!1,data:n.value,errors:N.$errors.value,issues:N.$issues.value}}}function se(e=!0){return N.$dirty.value?n.value:e?{_null:!0}:null}function ce(){p?.value?.length&&(p.value=[])}!N.$lazy.value&&!N.$dirty.value&&!N.$silent.value&&J();let{$shortcuts:de,$validating:fe,$autoDirty:pe,$rewardEarly:ge,$clearExternalErrorsOnChange:_e,$haveAnyAsyncRule:ve,$debounce:ye,$lazy:be,...xe}=N;return l({...xe,$externalErrors:p,$value:n,$initialValue:S,$originalValue:T,$rules:Y,...de,$path:a,$isDebouncing:U,$reset:Z,$touch:$,$validate:ae,$unwatch:K,$watch:q,$extractDirtyFields:se,$clearExternalErrors:ce,$abort:ie,$schemaMode:g,"~modifiers":N.$modifiers,...he(ae)})}function _e({$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??G(),b=`${r}.${String(y)}`,x=`${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 S=f(u?.value??[],i),C=e(()=>d?.value?.[i]),T=be({index:i,state:s,rulesDef:f(()=>l),customMessages:c,path:x,cachePath:b,storage:o,options:a,externalErrors:S,schemaErrors:C,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&&(!w(s.value)||oe(s.value))&&_&&T?.$touch(),T}function ve({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:x,fieldName:S,overrides:w}){let T=t(),E,D=t(),O,k=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let A=u(),j=u(n.value),M=u({}),N,P,F=u({}),I=s.getCollectionsEntry(a);O=D.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?(A.value=G(),Object.defineProperties(n.value,{$id:{value:A.value,enumerable:!1,configurable:!1,writable:!1}})):n.value?.$id&&(A.value=n.value.$id)),j.value=F.value.$value,Array.isArray(n.value)&&(!O.isPrimitiveArray.value||m)?I.value=n.value.map((t,n)=>{let{scope:l,unwrapped:u}=H(r.value.$each,f(()=>t),n);l&&k.push(l);let h=f(g.value??[],n),_=f(d?.value??{},`$each`),v=e(()=>p?.value?.$each);return _e({$id:A.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:x,fieldName:S,schemaMode:m,overrides:w})||null}).filter(e=>!!e):I.value=[],F.value=ge({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:x,fieldName:S,schemaMode:m,overrides:w})}function R(){if(Array.isArray(n.value)&&(!O.isPrimitiveArray.value||m)){let t=C(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(A.value,t.$id);return e?(e.$value=o,e):null}else{let{scope:t,unwrapped:l}=H(r.value.$each,o,n);t&&k.push(t);let u=f(d?.value??{},`$each`),h=e(()=>p?.value?.$each??[]);return _e({$id:A.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:x,fieldName:S,schemaMode:m,overrides:w})||null}}).filter(e=>!!e),t.filter(e=>!n.value?.find(t=>e.$id===t.$id)).forEach((e,t)=>{s.deleteArrayStatus(A.value,t.toString())})}else I.value=[]}function z(){N=_(n,()=>{P?.(),n.value!=null&&!Object.hasOwn(n.value,`$id`)&&!A.value?L():R(),B()},{deep:ee?1:!0,flush:`pre`}),B()}function B(){P=_(n,()=>{E.$autoDirty.value&&!E.$silent.value&&F.value.$touch(!1,!0)},{flush:`post`})}function V(){z(),T=t(),E=T.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:b(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)),C=e(()=>!!I.value.length&&I.value.every(e=>e.$edited)),w=e(()=>F.value.$anyEdited||I.value.some(e=>e.$anyEdited)),T=e(()=>({$self:F.value.$issues,$each:I.value.map(e=>e.$issues)})),E=e(()=>({$self:F.value.$errors,$each:I.value.map(e=>e.$errors)})),D=e(()=>({$self:F.value.$silentErrors,$each:I.value.map(e=>e.$silentErrors)})),O=e(()=>M.value.$rewardEarly==null?h(c.rewardEarly)==null?!1:h(c.rewardEarly):M.value.$rewardEarly),A=e(()=>O.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(()=>S??c.id??`root`),R=e(()=>({$deepCompare:M.value.$deepCompare??!1,$lazy:M.value.$lazy??!1,$rewardEarly:O.value,$autoDirty:j.value,$silent:A.value,$clearExternalErrorsOnChange:M.value.$clearExternalErrorsOnChange??!1}));function B(){x?.collections&&Object.entries(x?.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:E,$silentErrors:D,$initialValue:g,$originalValue:y,$ready:p,$anyDirty:o,$name:L,$each:I,$self:F,$value:n,$edited:C,$anyEdited:w,$issues:T}))}),e}),k.push(m)})}let V={};return B(),{$dirty:i,$anyDirty:o,$invalid:s,$correct:d,$error:f,$pending:_,$errors:E,$silentErrors:D,$ready:p,$name:L,$shortcuts:V,$silentValue:r,$edited:C,$anyEdited:w,$rewardEarly:O,$silent:A,$autoDirty:j,$issues:T,$modifiers:R}}),O.isPrimitiveArray.value&&r.value.$each&&console.warn(`${a} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`)}function U(){N?.(),F.value&&F.value.$unwatch(),I.value&&I.value.forEach(e=>{`$dirty`in e&&e.$unwatch()}),T.stop(),T=t(),D.stop(),D=t(!0),k.forEach(e=>e.stop()),k=[]}function W(e=!0,t=!1){F.value.$touch(e,t),I.value.forEach(n=>{n.$touch(e,t)})}function te(e,t){if(U(),!t)if(e?.toOriginalState)n.value=C(y),g.value=C(y);else if(e?.toInitialState)n.value=C(g.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,g.value=C(t),n.value=C(t)}else g.value=C(n.value);e?.clearExternalErrors&&ne(),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 q(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:E.$errors.value,issues:E.$issues.value}}catch{return{valid:!1,data:t,errors:E.$errors.value,issues:E.$issues.value}}}function ne(){F.value.$clearExternalErrors(),I.value.forEach(e=>{e.$clearExternalErrors()})}function J(e=!0){let t=I.value.map(t=>{if(se(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>b(e))&&(t=[]),t}let{$shortcuts:Y,...X}=E;return l({$self:F,...X,...Y,$path:a,$each:I,$value:n,$initialValue:g,$originalValue:y,$validate:q,$unwatch:U,$watch:V,$touch:W,$reset:te,$abort:K,$extractDirtyFields:J,$clearExternalErrors:ne,"~modifiers":E.$modifiers,...he(q)})}function ye({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(),T,E=[],D=null,O=null,k=null,A=null;async function j(t=!0){let o=Object.entries(n.value),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,be({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,be({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,be({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,be({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})]}));M.value={...l,...u,...d,...p},t&&F()}let M=x.storage.getFieldsEntry(a);j();function N(){s&&(k=_(s,()=>{I(),j()},{deep:!0}))}function P(){A=_(r,()=>{I(),j(),T.$autoDirty.value&&!T.$silent.value&&z(!1,!0)},{flush:`post`})}function F(){o&&(D?.(),D=_(o,()=>{I(),j()},{deep:!0,flush:`pre`}),N()),d&&(O?.(),O=_(d,()=>{I(),j()},{deep:!0,flush:`post`})),P(),T=S.run(()=>{let n=e({get:()=>r.value,set(e){I(),r.value=e,j(),T.$autoDirty.value&&!T.$silent.value&&z(!1,!0)}}),a=e({get:()=>r.value,set(e){I(),r.value=e,j()}}),o=e(()=>{let e=M.value,t=Object.keys(e);if(!t.length)return!1;for(let n of t)if(!e[n]?.$dirty)return!1;return!0}),s=e(()=>{let e=M.value;for(let t in e)if(e[t]?.$anyDirty)return!0;return!1}),c=e(()=>{let e=M.value,t=Object.entries(e);if(!t.length)return!1;for(let[e,n]of t)if(n?.$invalid)return!0;return!1}),d=e(()=>{let e=Object.entries(M.value).reduce((e,[t,n])=>((!ce(n)||!n.$inactive)&&e.push([t,n]),e),[]);return e.length?x.schemaMode?e.every(([e,t])=>t.$correct):e.every(([e,t])=>ce(t)?`required`in t.$rules&&t.$rules.required.$active?t.$correct:!t.$invalid&&!t.$pending&&!t.$isDebouncing:t?.$correct):!1}),f=e(()=>{let e=M.value;if(!Object.keys(e).length)return!1;for(let t in e)if(e[t]?.$error)return!0;return!1}),_=e(()=>h(x.options.rewardEarly)==null?!1:h(x.options.rewardEarly)),b=e(()=>h(x.options.silent)==null?!!_.value:h(x.options.silent)),S=e(()=>h(x.options.autoDirty)==null?!0:h(x.options.autoDirty)),C=e(()=>!(c.value||D.value)),w=u(!1),D=e(()=>{if(w.value)return!0;let e=M.value;for(let t in e)if(e[t]?.$pending)return!0;return!1}),O=e(()=>{let e={};for(let t in M.value)e[t]=M.value[t]?.$issues;return e}),k=e(()=>{let e={};for(let t in M.value)e[t]=M.value[t]?.$errors;return e}),A=e(()=>{let e={};for(let t in M.value)e[t]=M.value[t]?.$silentErrors;return e}),N=e(()=>{if(!Object.keys(M.value).length)return!1;for(let e in M.value)if(!M.value[e]?.$edited)return!1;return!0}),P=e(()=>{for(let e in M.value)if(M.value[e]?.$anyEdited)return!0;return!1}),F=e(()=>y??x.options.id??`root`),L=e(()=>({autoDirty:S.value,lazy:h(x.options.lazy)??!1,rewardEarly:_.value,silent:b.value,clearExternalErrorsOnChange:h(x.options.clearExternalErrorsOnChange)??!1,id:h(x.options.id)}));function R(){x.shortcuts?.nested&&Object.entries(x.shortcuts.nested).forEach(([e,n])=>{let p=t();V[e]=p.run(()=>{let e=u();return v(()=>{e.value=n(l({$dirty:o,$path:i,$value:r,$silentValue:a,$error:f,$originalValue:g,$pending:D,$invalid:c,$correct:d,$ready:C,$anyDirty:s,$name:F,$silentErrors:A,$initialValue:m,$errors:k,$fields:M,$edited:N,$anyEdited:P,$issues:O,"~modifiers":h(x.options)}))}),e}),E.push(p)})}let B=e({get:()=>p?Object.fromEntries(Object.entries(p?.(M.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,ne(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,J(t,e)]))}]:[])):{},set(){}}),V={};return R(),{$dirty:o,$anyDirty:s,$invalid:c,$correct:d,$error:f,$pending:D,$issues:O,$errors:k,$silentErrors:A,$ready:C,$name:F,$shortcuts:V,$groups:B,$silentValue:a,$edited:N,$anyEdited:P,$localPending:w,$autoDirty:S,$silent:b,$value:n,$modifiers:L}})}function I(){if(D?.(),k?.(),A?.(),O?.(),E=[],T={},M.value)for(let e of Object.values(M.value))e?.$unwatch()}function L(){let e=M.value;for(let t of Object.values(e))t.$clearExternalErrors()}function R(e,t){if(k?.(),I(),!t)if(e?.toOriginalState)r.value=C({...g}),m.value=C({...g});else if(e?.toInitialState)r.value=C({...m.value});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,m.value=C(t),r.value=C(t)}else m.value=C(r.value);if(!e?.keepValidationState)for(let t of Object.values(M.value))t?.$reset(e,!0);e?.clearExternalErrors&&L(),N(),t||j()}function z(e=!0,t=!1){for(let n of Object.values(M.value))n?.$touch(e,t)}function B(e){return e.filter(([e,t])=>w(t)&&!oe(t)?!(t&&typeof t==`object`&&`_null`in t)&&!b(t):Array.isArray(t)?t.length:!0)}function V(e=!0){let t=Object.entries(M.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=B(t)),Object.fromEntries(t)}function H(){for(let e of Object.values(M.value))e.$abort()}async function U(e){try{if(e&&(r.value=e),x.schemaMode)return x.onValidate?(z(!1),T.$localPending.value=!0,x.onValidate()):{valid:!1,data:r.value,errors:T.$errors.value,issues:T.$issues.value};{let e=r.value;return H(),{valid:(await Promise.allSettled(Object.values(M.value).map(e=>e.$validate()))).every(e=>e.status===`fulfilled`&&e?.value.valid===!0),data:e,errors:T.$errors.value,issues:T.$issues.value}}}catch{return{valid:!1,data:r.value,errors:T.$errors.value,issues:T.$issues.value}}finally{T.$localPending.value=!1}}let{$shortcuts:W,$localPending:ee,...te}=T,G=l({...te,...W,$path:i,$initialValue:m,$originalValue:g,$fields:M,$reset:R,$touch:z,$validate:U,$unwatch:I,$watch:F,$clearExternalErrors:L,$extractDirtyFields:V,$abort:H,...o?{"~modifiers":T.$modifiers}:{},...he(U)});return v(()=>{for(let e of Object.keys(G).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete G[e];for(let e of Object.values(M.value))e?.$name&&Object.assign(G,{[e.$name]:e})}),G}function be({rulesDef:e,...n}){if(re(e,n.state,n.schemaMode))return ve({rulesDef:e,...n});if(Q(n.state,e)){if(V(n.state))return ye({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 ye({rulesDef:e,...a,state:r.fakeState})}}else if(ie(e))return ge({rulesDef:i(e.value)?e.value:e,...n})}var xe=`1.17.1`;function Se({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=Y(),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=E(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(),Q(a,i)?g.value=ye({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}):ie(i)&&(g.value=ge({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 Ce({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(w(t.value)?{...C(t.value)}:C(t.value)),_=w(t.value)?{...C(t.value)}:C(t.value);return K(()=>{p?.()}),Se({scopeRules:h,state:t,options:f,initialState:g,originalState:_,customRules:o,shortcuts:s,overrides:c})}function we(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};function s(e,n,s){return{r$:Ce({state:i(e)?e:u(e),rulesFactory:n,options:s,globalOptions:o,customRules:t,shortcuts:r,overrides:a}).regle}}return s}const Te=we();function Ee(){function e(e,t){return t}return e}const De=Ee();function Oe(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&&w(r)&&`$each`in r&&r.$each&&w(r.$each)?t[n]=[Oe(r.$each)]:w(r)&&!b(r)&&!Object.entries(r).some(([e,t])=>$(t)||typeof t==`function`)?t[n]=Oe(r):t[n]=null}return t}function ke(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};function c(t,r){let c=i(t)?t:typeof t==`function`?void 0:e(()=>t);return Ce({state:u(Oe(c?.value)),rulesFactory:c,options:r,globalOptions:s,customRules:n,shortcuts:a,overrides:o}).regle}return c}const Ae=ke();function je(e){if(k(e)){let t=e,n=class extends t{constructor(...e){return super(...e),Me(this)}};return Object.defineProperty(n,`name`,{value:t.name}),Me(n)}return Me(e)}function Me(e){return!D(e,Z.REGLE_STATIC)&&Object.isExtensible(e)&&O(e,Z.REGLE_STATIC,!0),e}function Ne({rules:e,modifiers:t,shortcuts:n,overrides:r}){let i=we({rules:e,modifiers:t,shortcuts:n,overrides:r}),a=ke({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:Ee(),useRules:a}}function Pe(e,{rules:t,modifiers:n,shortcuts:r,overrides:i}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?T(a.modifiers,n):a.modifiers??n,c=a.shortcuts&&r?T(a.shortcuts,r):a.shortcuts??r,l=a.overrides&&i?T(a.overrides,i):a.overrides??i,u=we({rules:o,modifiers:s,shortcuts:c,overrides:l});return u.__config={rules:o,modifiers:s,shortcuts:c,overrides:l},{useRegle:u,inferRules:Ee()}}function Fe(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 Ie(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`?Fe(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})})}),Fe(a,!n.asRecord)):Fe(e[`~~global`]??{},!n.asRecord)}return{r$:s.r$}}return{useCollectScope:r}}function Le(t,r){let i=r??Te;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}-${G()}`),v=e(()=>m.value??`instance-${g.value}`),{r$:y}=i(r,a,{...f,id:m.value});x(),K(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 Re(e){let t=(e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):q(()=>u({"~~global":{}})))(),{useScopedRegle:n}=Le(t,e?.customUseRegle),{useCollectScope:r}=Ie(t,{asRecord:e?.asRecord});return{useScopedRegle:n,useCollectScope:r}}const{useCollectScope:ze,useScopedRegle:Be}=Re(),Ve=ze,He=Be;function Ue(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=>w(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`))||{})}function We(e,t,n){return!!e&&w(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function Ge(e,t,n,r){let a=i(e)?f(e.value,`$fields`):f(e,`$fields`),s=u();return _(a,async()=>{await o(),We(a.value,t,n)?s.value=f(e).value:s.value=void 0},{immediate:!0,flush:`pre`}),s}function Ke(e){return e}function qe(e,t){return n=>T({...e},t(n))}const Je={install(e){e.provide(X,xe)}};export{F as InternalRuleType,Je as RegleVuePlugin,B as createRule,Re as createScopedUseRegle,Ue as createVariant,Ne as defineRegleConfig,Ke as defineRules,Pe as extendRegleConfig,fe as flatErrors,De as inferRules,je as markStatic,Fe as mergeRegles,We as narrowVariant,qe as refineRules,I as unwrapRuleParameters,Ve as useCollectScope,Te as useRegle,Se as useRootStorage,Ae as useRules,He as useScopedRegle,Ge 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,t=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):y(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:typeof e==`object`&&e?Object.keys(e).length===0:!String(e).length}const x=Symbol(`regle-rule`);function S(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 C(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=>C(e,t++)))),r==`Map`&&(n=new Map([...e].map(e=>[C(e[0]),C(e[1])]))),r==`Date`&&(n=new Date(e.getTime())),r==`RegExp`&&(n=RegExp(e.source,S(e))),r==`Array`||r==`Object`)for(let r in n=Array.isArray(e)?[]:{},e)n[r]=C(e[r],t++);return n}function w(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function T(e,...t){for(var n=[].slice.call(arguments),r,i=n.length;r=n[i-1],i--;)if(!r||typeof r!=`object`&&typeof r!=`function`)throw Error(`expected object, got `+r);for(var a=n[0],o=n.slice(1),s=o.length,i=0;i<s;i++){var c=o[i];for(var l in c)a[l]=c[l]}return a}function E(e){let t={};for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n],i=n.split(`.`),a=t;for(let e=0;e<i.length;e++){let t=i[e],n=e===i.length-1,o=t.match(/^\d+$/)?Number(t):null;if(o!==null){if(Array.isArray(a))if(n)a[o]=r;else{if(typeof a[o]!=`object`||a[o]===null){let t=i[e+1];a[o]=t&&t.match(/^\d+$/)?{$each:[],$self:[]}:{}}a=`$each`in a[o]?a[o].$each:a[o]}}else if(n)if(Array.isArray(a[t])){let e=a[t].slice();a[t]={},a[t].$self=e}else typeof a[t]==`object`&&a[t]!==null&&`$each`in a[t]?a[t].$self=r:a[t]=r;else{let n=i[e+1];if(Array.isArray(a[t])){let e=a[t].slice();a[t]={$each:[]},a[t].$self=e}(typeof a[t]!=`object`||a[t]===null||Array.isArray(a[t])&&!n.match(/^\d+$/))&&(n&&n.match(/^\d+$/)?a[t]={$each:[],$self:[]}:a[t]={}),a=`$each`in a[t]?a[t].$each:a[t]}}}return t}function D(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function O(e,t,n,r=!1){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})}function k(e){return typeof e==`function`&&!!e.prototype&&`constructor`in e.prototype&&e.prototype.constructor===e}function A(e){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 j(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 M(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(!M(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(w(e)&&w(t)&&s&&(r||!r&&n)&&!M(e[s],t[s],n,!1))return!1}return!0}return e!==e&&t!==t}var N=class extends Error{constructor(e=`Promise was aborted`){super(e),this.name=`AbortError`}};function P(e){let t=new AbortController,{signal:n}=t,r=new Promise((t,r)=>{function i(){r(new N)}n.addEventListener(`abort`,i),e.then(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new N):t(e)}).catch(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new N):r(e)})});function i(e){t.abort(e)}return{promise:r,abort:i,signal:n}}const F={Inline:`__inline`,Async:`__async`};function I(e){try{return e.map(e=>p(e))}catch{return[]}}function L(t){return t.map(t=>t instanceof Function?e(t):i(t)?t:f(()=>t))}function R(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 z(e,...t){let{validator:n,type:r,async:i}=e,o=i||r===F.Async||n.constructor.name===`AsyncFunction`;return a({validator(n,...r){return e.validator(n,...I(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:I(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:I(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:I(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...I(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:L(t),_brand:x})}function B(e){if(typeof e.validator==`function`){let t=[],n=e.async??e.validator.constructor.name===`AsyncFunction`,r=z({...e,async:n},...t);if(R(e.validator)>1){let t=function(...t){return z(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 V(e){return w(e.value)}function H(e,n,r){let i=t(),a;return a=e instanceof Function?i.run(()=>e(n,r??0)):e,{scope:i,unwrapped:a}}const U={LessThan:-1,EqualTo:0,GreaterThan:1};function W(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 U.GreaterThan;if(i>t)return U.LessThan;if(!isNaN(t)&&isNaN(i))return U.GreaterThan;if(isNaN(t)&&!isNaN(i))return U.LessThan}return U.EqualTo}const ee=W(g,`3.5.0`)!==-1;function te(){return Math.floor(Math.random()*Date.now()).toString()}function G(){return typeof window>`u`?te():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function K(e){return r()?(c(e),!0):!1}function q(e){let n=!1,r,i=t(!0);return((...t)=>(n||=(r=i.run(()=>e(...t)),!0),r))}function ne(e,t){return e.some(e=>t?e?.[t]:!1)}function J(e,t){return t?e.reduce((e,n)=>{let r=n?.[t]||[];return e.concat(r)},[]):[]}function Y(){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=I(i._params),n=I(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 X=Symbol(`regle`),Z={REGLE_STATIC:`__regle_static`};function Q(e,t){return!oe(e.value)&&(V(e)||w(t.value)&&!b(t.value)&&!Object.entries(t.value).some(([e,t])=>$(t)||typeof t==`function`))}function re(e,t,n=!1){return!!e.value&&w(e.value)&&`$each`in e.value||n&&Array.isArray(t.value)||Array.isArray(t.value)&&t.value.some(w)}function ie(e){return!!e.value&&(w(e.value)||V(e.value))}function $(e){return(w(e)||typeof e==`function`)&&`_validator`in e}function ae(e){return typeof e.value==`function`?`_validator`in e.value:!0}function oe(e){return w(e)&&D(e,Z.REGLE_STATIC)&&e[Z.REGLE_STATIC]===!0}function se(e){return w(e)&&`$fields`in e}function ce(e){return!!e&&`$rules`in e}function le({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 ue({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 de(e){return w(e)&&`$each`in e}function fe(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!w(e)))return e;if(de(e)){let t=n?e.$self?.map(e=>({message:e,path:[]}))??[]:e.$self??[],r=e.$each?.map(e=>pe(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>pe(t,n,[e])).flat()}function pe(e,t=!1,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(e=>!w(e)))return t?e.map(e=>({message:e,path:r??[]})):e;if(de(e)){let n=r?.length?e.$self?.map(e=>({message:e,path:r??[]}))??[]:e.$self??[],i=e.$each?.map((e,n)=>pe(e,t,r?.concat(n)))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>pe(n,t,r?.concat(e))).flat()}function me({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:x,$validating:S}=c.trySetRuleStatusRef(`${s}.${i}`);function C(){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:C.value,...x.value})),p=e(()=>{try{return ae(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),ae(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 b(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),_=e(()=>ae(r)&&r.value.type?r.value.type:i),S=e(()=>ae(r)?r.value.validator:r.value),C=e(()=>typeof r.value==`function`?[]:I(r.value._params??[]));return{$active:p,$message:h,$type:_,$validator:S,$params:C,$path:e(()=>`${o}.${_.value}`),$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()})}C();function w(){y.value=!0,p.$fieldDirty.value&&(v.value=!0)}async function T(){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;w();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,x.value=n}}catch{e=!1}finally{v.value=!1}return e}async function E(){try{S.value=!0;let e=!1;if(g.value=!0,$(r.value)&&r.value._async)e=await T();else{let t=p.$validator.value,n=t(a.value,...p.$params.value);if(n instanceof Promise)console.warn(`You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper`);else if(n!=null)if(typeof n==`boolean`)e=n;else{let{$valid:t,...r}=n;e=t,x.value=r}}return y.value=e,e}catch{return!1}finally{S.value=!1,g.value=!1}}function D(){y.value=!0,x.value={},v.value=!1,S.value=!1,C()}function O(){m(),f.stop(),f=t()}return l({...p,$pending:v,$valid:y,$metadata:x,$haveAsync:h,$maybePending:g,$validating:S,$parse:E,$unwatch:O,$watch:C,$reset:D})}function he(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:fe(i,{includePath:!0})}}}}}function ge({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:T,shortcuts:E,overrides:D,onValidate:O}){let k=t(),N,F=[],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]);X.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,me({modifiers:{$silent:N.$silent,$rewardEarly:N.$rewardEarly},customMessages:i,rule:r,ruleKey:e,state:n,path:a,cachePath:o,storage:c,$debounce:X.value.$debounce})])}Y.value=Object.fromEntries(u),N.processShortcuts(),te(),G(),t?.valid!=null&&(N.$dirty.value=c.getDirtyState(o),(N.$dirty.value&&!N.$silent.value||N.$rewardEarly.value&&N.$error.value)&&B()),c.addRuleDeclEntry(o,e)}function te(){B=N.$debounce.value>0?j(J,N.$debounce.value,{trackDebounceRef:U}):J}function G(){H=N.$debounce.value>0?j(()=>{N.$dirty.value=!0},N.$debounce.value):()=>{N.$dirty.value=!0}}function K(){if(Y.value)for(let e of Object.values(Y.value))e.$unwatch();L(),z?.(),N.$dirty.value&&c.setDirtyEntry(o,N.$dirty.value),I?.(),k.stop(),k=t();for(let e of F)e.stop();F=[],y?.(),R?.()}function q(){if(Y.value)for(let e of Object.values(Y.value))e.$watch();N=k.run(()=>{let i=u(!1),a=u(!1),o=e(()=>i.value),c=e(()=>x||oe(n.value)),f=e(()=>X.value.$debounce==null?N.$haveAnyAsyncRule.value?200:0:X.value.$debounce),_=e(()=>X.value.$deepCompare==null?!1:X.value.$deepCompare),y=e(()=>X.value.$lazy==null?h(d.lazy)==null?!1:h(d.lazy):X.value.$lazy),C=e(()=>X.value.$immediateDirty==null?h(d.immediateDirty)==null?!1:h(d.immediateDirty):X.value.$immediateDirty),w=e(()=>X.value.$rewardEarly==null?h(d.rewardEarly)==null?!1:h(d.rewardEarly):X.value.$rewardEarly),T=e(()=>X.value.$clearExternalErrorsOnChange==null?h(d.clearExternalErrorsOnChange)==null?!O.value:h(d.clearExternalErrorsOnChange):X.value.$clearExternalErrorsOnChange),O=e(()=>w.value?!0:X.value.$silent==null?h(d.silent)==null?!1:h(d.silent):X.value.$silent),k=e(()=>X.value.$autoDirty==null?h(d.autoDirty)==null?!0:h(d.autoDirty):X.value.$autoDirty),j=e(()=>{for(let e of Object.values(Y.value))if(e.$validating)return!0;return!1}),P=e({get:()=>n.value,set(e){I(),n.value=e,ne()}}),L=e(()=>U.value?q.value&&i.value:q.value&&!K.value&&i.value),R=e(()=>le({field:{$rules:Y.value,$error:L.value,$externalErrors:p?.value,$schemaErrors:m?.value,fieldName:J.value}})),z=e(()=>le({field:{$rules:Y.value,$error:L.value,$externalErrors:p?.value,$schemaErrors:m?.value,fieldName:J.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?A(t).getDate()!==A(e).getDate():t==null?!!e:Array.isArray(e)&&Array.isArray(t)?!M(e,t,X.value.$deepCompare):t!==e}v(()=>{i.value?X.value.$isEdited?H.value=X.value.$isEdited(n.value,S.value,W):D?.isEdited?H.value=D.isEdited(n.value,S.value,W):H.value=W(n.value,S.value):H.value=!1});let ee=e(()=>H.value),te=e(()=>ue({field:{$rules:Y.value}})),G=e(()=>!(q.value||K.value)),K=e(()=>a.value||!w.value?Object.entries(Y.value).some(([e,t])=>t.$pending):!1),q=e(()=>p?.value?.length||m?.value?.length?!0:Z.value?!1:Object.values(Y.value).some(e=>!e.$valid||e.$maybePending)),J=e(()=>s??d.id??`root`),Z=e(()=>!g&&!Object.keys(r.value).some(e=>!e.startsWith(`$`))),Q=e(()=>{if(p?.value?.length||Z.value||U.value)return!1;if(i.value&&!b(n.value)&&!j.value&&!K.value){if(g)return!m?.value?.length;{let e=Object.values(Y.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(Y.value).some(e=>e.$haveAsync)),ie=e(()=>({$debounce:f.value,$lazy:y.value,$rewardEarly:w.value,$autoDirty:k.value,$silent:O.value,$clearExternalErrorsOnChange:T.value}));function $(){E?.fields&&Object.entries(E.fields).forEach(([e,r])=>{let a=t();ae[e]=a.run(()=>{let e=u();return v(()=>{e.value=r(l({$dirty:i,$externalErrors:p?.value??[],$value:n,$silentValue:P,$rules:Y,$error:L,$pending:K,$invalid:q,$correct:Q,$errors:B,$ready:G,$silentErrors:V,$anyDirty:o,$tooltips:te,$name:J,$inactive:Z,$edited:H,$anyEdited:ee}))}),e}),F.push(a)})}let ae={};return{$error:L,$pending:K,$invalid:q,$correct:Q,$debounce:f,$deepCompare:_,$lazy:y,$immediateDirty:C,$ready:G,$issues:R,$silentIssues:z,$errors:B,$silentErrors:V,$rewardEarly:w,$autoDirty:k,$silent:O,$clearExternalErrorsOnChange:T,$anyDirty:o,$edited:H,$anyEdited:ee,$name:J,$haveAnyAsyncRule:re,$shortcuts:ae,$validating:j,$tooltips:te,$dirty:i,processShortcuts:$,$silentValue:P,$inactive:Z,$modifiers:ie,$isArrayOrRegleStatic:c}}),ne(),L=_(N.$dirty,e=>{c.setDirtyEntry(o,e),Object.values(Y.value).forEach(t=>{t.$fieldDirty=e})}),z=_([N.$error,N.$correct,N.$invalid,N.$pending],()=>{Object.values(Y.value).forEach(e=>{e.$fieldError=N.$error.value,e.$fieldInvalid=N.$invalid.value,e.$fieldPending=N.$pending.value,e.$fieldCorrect=N.$correct.value})}),R=_(N.$haveAnyAsyncRule,te)}function ne(){I=_(n,()=>{N.$autoDirty.value&&!N.$silent.value&&(N.$dirty.value||H()),r.value instanceof Function&&W(),(!N.$silent.value||N.$rewardEarly.value&&N.$error.value)&&B(),N.$clearExternalErrorsOnChange.value&&ce()},{deep:N.$isArrayOrRegleStatic.value?!0:ee?1:!0})}async function J(){try{let{promise:e}=re(Promise.allSettled(Object.values(Y.value).map(e=>e.$parse())));await e}catch{}}let Y=u({}),X=u({});W();function Z(e,t){if(Q(),ce(),N.$dirty.value=!1,c.setDirtyEntry(o,!1),!t)if(e?.toOriginalState)n.value=C(T),S.value=C(T);else if(e?.toInitialState)n.value=C(S.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,S.value=C(t),n.value=C(t)}else S.value=w(n.value)&&!oe(n.value)?C(n.value):Array.isArray(n.value)?[...n.value]:n.value;if(e?.clearExternalErrors&&ce(),!t&&!e?.keepValidationState)for(let e of Object.values(Y.value))e.$reset();if(!N.$lazy.value&&!N.$silent.value&&!t)for(let e of Object.values(Y.value))e.$parse()}function Q(){`cancel`in B&&B.cancel()}function re(e){return V&&V.abort(),V=P(e),V}function ie(){Q(),V&&V.abort()}function $(e=!0,t=!1){N.$dirty.value||H(),t&&e?(!N.$silent.value||N.$rewardEarly.value&&N.$error.value)&&(Q(),B()):e&&(Q(),B())}async function ae(e){try{if(e&&(n.value=e),g)return O?($(!1),O()):{valid:!1,data:n.value,errors:N.$errors.value,issues:N.$issues.value};let t=n.value;if(!N.$dirty.value)N.$dirty.value=!0;else if(!N.$silent.value&&N.$dirty.value&&!N.$pending.value&&!U.value&&!N.$haveAnyAsyncRule.value)return{valid:!N.$error.value,data:t,errors:N.$errors.value,issues:N.$issues.value};if(g)return{valid:!m?.value?.length,data:t,errors:N.$errors.value,issues:N.$issues.value};if(b(Y.value))return{valid:!0,data:t,errors:N.$errors.value,issues:N.$issues.value};ie();let{promise:r}=re(Promise.allSettled(Object.values(Y.value).map(e=>e.$parse())));return{valid:(await r).every(e=>e.status===`fulfilled`&&e.value===!0),data:t,errors:N.$errors.value,issues:N.$issues.value}}catch{return{valid:!1,data:n.value,errors:N.$errors.value,issues:N.$issues.value}}}function se(e=!0){return N.$dirty.value?n.value:e?{_null:!0}:null}function ce(){p?.value?.length&&(p.value=[])}!N.$lazy.value&&!N.$dirty.value&&!N.$silent.value&&J(),N.$immediateDirty.value&&(N.$dirty.value=!0);let{$shortcuts:de,$validating:fe,$autoDirty:pe,$rewardEarly:ge,$clearExternalErrorsOnChange:_e,$haveAnyAsyncRule:ve,$debounce:ye,$lazy:be,...xe}=N;return l({...xe,$externalErrors:p,$value:n,$initialValue:S,$originalValue:T,$rules:Y,...de,$path:a,$isDebouncing:U,$reset:Z,$touch:$,$validate:ae,$unwatch:K,$watch:q,$extractDirtyFields:se,$clearExternalErrors:ce,$abort:ie,$schemaMode:g,"~modifiers":N.$modifiers,...he(ae)})}function _e({$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??G(),b=`${r}.${String(y)}`,x=`${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 S=f(u?.value??[],i),C=e(()=>d?.value?.[i]),T=be({index:i,state:s,rulesDef:f(()=>l),customMessages:c,path:x,cachePath:b,storage:o,options:a,externalErrors:S,schemaErrors:C,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&&(!w(s.value)||oe(s.value))&&_&&T?.$touch(),T}function ve({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:x,fieldName:S,overrides:w}){let T=t(),E,D=t(),O,k=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let A=u(),j=u(n.value),M=u({}),N,P,F=u({}),I=s.getCollectionsEntry(a);O=D.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?(A.value=G(),Object.defineProperties(n.value,{$id:{value:A.value,enumerable:!1,configurable:!1,writable:!1}})):n.value?.$id&&(A.value=n.value.$id)),j.value=F.value.$value,Array.isArray(n.value)&&(!O.isPrimitiveArray.value||m)?I.value=n.value.map((t,n)=>{let{scope:l,unwrapped:u}=H(r.value.$each,f(()=>t),n);l&&k.push(l);let h=f(g.value??[],n),_=f(d?.value??{},`$each`),v=e(()=>p?.value?.$each);return _e({$id:A.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:x,fieldName:S,schemaMode:m,overrides:w})||null}).filter(e=>!!e):I.value=[],F.value=ge({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:x,fieldName:S,schemaMode:m,overrides:w})}function R(){if(Array.isArray(n.value)&&(!O.isPrimitiveArray.value||m)){let t=C(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(A.value,t.$id);return e?(e.$value=o,e):null}else{let{scope:t,unwrapped:l}=H(r.value.$each,o,n);t&&k.push(t);let u=f(d?.value??{},`$each`),h=e(()=>p?.value?.$each??[]);return _e({$id:A.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:x,fieldName:S,schemaMode:m,overrides:w})||null}}).filter(e=>!!e),t.filter(e=>!n.value?.find(t=>e.$id===t.$id)).forEach((e,t)=>{s.deleteArrayStatus(A.value,t.toString())})}else I.value=[]}function z(){N=_(n,()=>{P?.(),n.value!=null&&!Object.hasOwn(n.value,`$id`)&&!A.value?L():R(),B()},{deep:ee?1:!0,flush:`pre`}),B()}function B(){P=_(n,()=>{E.$autoDirty.value&&!E.$silent.value&&F.value.$touch(!1,!0)},{flush:`post`})}function V(){z(),T=t(),E=T.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:b(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)),C=e(()=>!!I.value.length&&I.value.every(e=>e.$edited)),w=e(()=>F.value.$anyEdited||I.value.some(e=>e.$anyEdited)),T=e(()=>({$self:F.value.$issues,$each:I.value.map(e=>e.$issues)})),E=e(()=>({$self:F.value.$errors,$each:I.value.map(e=>e.$errors)})),D=e(()=>({$self:F.value.$silentErrors,$each:I.value.map(e=>e.$silentErrors)})),O=e(()=>M.value.$rewardEarly==null?h(c.rewardEarly)==null?!1:h(c.rewardEarly):M.value.$rewardEarly),A=e(()=>O.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(()=>S??c.id??`root`),R=e(()=>({$deepCompare:M.value.$deepCompare??!1,$lazy:M.value.$lazy??!1,$rewardEarly:O.value,$autoDirty:j.value,$silent:A.value,$clearExternalErrorsOnChange:M.value.$clearExternalErrorsOnChange??!1}));function B(){x?.collections&&Object.entries(x?.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:E,$silentErrors:D,$initialValue:g,$originalValue:y,$ready:p,$anyDirty:o,$name:L,$each:I,$self:F,$value:n,$edited:C,$anyEdited:w,$issues:T}))}),e}),k.push(m)})}let V={};return B(),{$dirty:i,$anyDirty:o,$invalid:s,$correct:d,$error:f,$pending:_,$errors:E,$silentErrors:D,$ready:p,$name:L,$shortcuts:V,$silentValue:r,$edited:C,$anyEdited:w,$rewardEarly:O,$silent:A,$autoDirty:j,$issues:T,$modifiers:R}}),O.isPrimitiveArray.value&&r.value.$each&&console.warn(`${a} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`)}function U(){N?.(),F.value&&F.value.$unwatch(),I.value&&I.value.forEach(e=>{`$dirty`in e&&e.$unwatch()}),T.stop(),T=t(),D.stop(),D=t(!0),k.forEach(e=>e.stop()),k=[]}function W(e=!0,t=!1){F.value.$touch(e,t),I.value.forEach(n=>{n.$touch(e,t)})}function te(e,t){if(U(),!t)if(e?.toOriginalState)n.value=C(y),g.value=C(y);else if(e?.toInitialState)n.value=C(g.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,g.value=C(t),n.value=C(t)}else g.value=C(n.value);e?.clearExternalErrors&&ne(),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 q(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:E.$errors.value,issues:E.$issues.value}}catch{return{valid:!1,data:t,errors:E.$errors.value,issues:E.$issues.value}}}function ne(){F.value.$clearExternalErrors(),I.value.forEach(e=>{e.$clearExternalErrors()})}function J(e=!0){let t=I.value.map(t=>{if(se(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>b(e))&&(t=[]),t}let{$shortcuts:Y,...X}=E;return l({$self:F,...X,...Y,$path:a,$each:I,$value:n,$initialValue:g,$originalValue:y,$validate:q,$unwatch:U,$watch:V,$touch:W,$reset:te,$abort:K,$extractDirtyFields:J,$clearExternalErrors:ne,"~modifiers":E.$modifiers,...he(q)})}function ye({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(),T,E=[],D=null,O=null,k=null,A=null;async function j(t=!0){let o=Object.entries(n.value),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,be({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,be({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,be({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,be({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})]}));M.value={...l,...u,...d,...p},t&&F()}let M=x.storage.getFieldsEntry(a);j();function N(){s&&(k=_(s,()=>{I(),j()},{deep:!0}))}function P(){A=_(r,()=>{I(),j(),T.$autoDirty.value&&!T.$silent.value&&z(!1,!0)},{flush:`post`})}function F(){o&&(D?.(),D=_(o,()=>{I(),j()},{deep:!0,flush:`pre`}),N()),d&&(O?.(),O=_(d,()=>{I(),j()},{deep:!0,flush:`post`})),P(),T=S.run(()=>{let n=e({get:()=>r.value,set(e){I(),r.value=e,j(),T.$autoDirty.value&&!T.$silent.value&&z(!1,!0)}}),a=e({get:()=>r.value,set(e){I(),r.value=e,j()}}),o=e(()=>{let e=M.value,t=Object.keys(e);if(!t.length)return!1;for(let n of t)if(!e[n]?.$dirty)return!1;return!0}),s=e(()=>{let e=M.value;for(let t in e)if(e[t]?.$anyDirty)return!0;return!1}),c=e(()=>{let e=M.value,t=Object.entries(e);if(!t.length)return!1;for(let[e,n]of t)if(n?.$invalid)return!0;return!1}),d=e(()=>{let e=Object.entries(M.value).reduce((e,[t,n])=>((!ce(n)||!n.$inactive)&&e.push([t,n]),e),[]);return e.length?x.schemaMode?e.every(([e,t])=>t.$correct):e.every(([e,t])=>ce(t)?`required`in t.$rules&&t.$rules.required.$active?t.$correct:!t.$invalid&&!t.$pending&&!t.$isDebouncing:t?.$correct):!1}),f=e(()=>{let e=M.value;if(!Object.keys(e).length)return!1;for(let t in e)if(e[t]?.$error)return!0;return!1}),_=e(()=>h(x.options.rewardEarly)==null?!1:h(x.options.rewardEarly)),b=e(()=>h(x.options.silent)==null?!!_.value:h(x.options.silent)),S=e(()=>h(x.options.autoDirty)==null?!0:h(x.options.autoDirty)),C=e(()=>!(c.value||D.value)),w=u(!1),D=e(()=>{if(w.value)return!0;let e=M.value;for(let t in e)if(e[t]?.$pending)return!0;return!1}),O=e(()=>{let e={};for(let t in M.value)e[t]=M.value[t]?.$issues;return e}),k=e(()=>{let e={};for(let t in M.value)e[t]=M.value[t]?.$errors;return e}),A=e(()=>{let e={};for(let t in M.value)e[t]=M.value[t]?.$silentErrors;return e}),N=e(()=>{if(!Object.keys(M.value).length)return!1;for(let e in M.value)if(!M.value[e]?.$edited)return!1;return!0}),P=e(()=>{for(let e in M.value)if(M.value[e]?.$anyEdited)return!0;return!1}),F=e(()=>y??x.options.id??`root`),L=e(()=>({autoDirty:S.value,lazy:h(x.options.lazy)??!1,rewardEarly:_.value,silent:b.value,clearExternalErrorsOnChange:h(x.options.clearExternalErrorsOnChange)??!1,id:h(x.options.id)}));function R(){x.shortcuts?.nested&&Object.entries(x.shortcuts.nested).forEach(([e,n])=>{let p=t();V[e]=p.run(()=>{let e=u();return v(()=>{e.value=n(l({$dirty:o,$path:i,$value:r,$silentValue:a,$error:f,$originalValue:g,$pending:D,$invalid:c,$correct:d,$ready:C,$anyDirty:s,$name:F,$silentErrors:A,$initialValue:m,$errors:k,$fields:M,$edited:N,$anyEdited:P,$issues:O,"~modifiers":h(x.options)}))}),e}),E.push(p)})}let B=e({get:()=>p?Object.fromEntries(Object.entries(p?.(M.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,ne(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,J(t,e)]))}]:[])):{},set(){}}),V={};return R(),{$dirty:o,$anyDirty:s,$invalid:c,$correct:d,$error:f,$pending:D,$issues:O,$errors:k,$silentErrors:A,$ready:C,$name:F,$shortcuts:V,$groups:B,$silentValue:a,$edited:N,$anyEdited:P,$localPending:w,$autoDirty:S,$silent:b,$value:n,$modifiers:L}})}function I(){if(D?.(),k?.(),A?.(),O?.(),E=[],T={},M.value)for(let e of Object.values(M.value))e?.$unwatch()}function L(){let e=M.value;for(let t of Object.values(e))t.$clearExternalErrors()}function R(e,t){if(k?.(),I(),!t)if(e?.toOriginalState)r.value=C({...g}),m.value=C({...g});else if(e?.toInitialState)r.value=C({...m.value});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,m.value=C(t),r.value=C(t)}else m.value=C(r.value);if(!e?.keepValidationState)for(let t of Object.values(M.value))t?.$reset(e,!0);e?.clearExternalErrors&&L(),N(),t||j()}function z(e=!0,t=!1){for(let n of Object.values(M.value))n?.$touch(e,t)}function B(e){return e.filter(([e,t])=>w(t)&&!oe(t)?!(t&&typeof t==`object`&&`_null`in t)&&!b(t):Array.isArray(t)?t.length:!0)}function V(e=!0){let t=Object.entries(M.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=B(t)),Object.fromEntries(t)}function H(){for(let e of Object.values(M.value))e.$abort()}async function U(e){try{if(e&&(r.value=e),x.schemaMode)return x.onValidate?(z(!1),T.$localPending.value=!0,x.onValidate()):{valid:!1,data:r.value,errors:T.$errors.value,issues:T.$issues.value};{let e=r.value;return H(),{valid:(await Promise.allSettled(Object.values(M.value).map(e=>e.$validate()))).every(e=>e.status===`fulfilled`&&e?.value.valid===!0),data:e,errors:T.$errors.value,issues:T.$issues.value}}}catch{return{valid:!1,data:r.value,errors:T.$errors.value,issues:T.$issues.value}}finally{T.$localPending.value=!1}}let{$shortcuts:W,$localPending:ee,...te}=T,G=l({...te,...W,$path:i,$initialValue:m,$originalValue:g,$fields:M,$reset:R,$touch:z,$validate:U,$unwatch:I,$watch:F,$clearExternalErrors:L,$extractDirtyFields:V,$abort:H,...o?{"~modifiers":T.$modifiers}:{},...he(U)});return v(()=>{for(let e of Object.keys(G).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete G[e];for(let e of Object.values(M.value))e?.$name&&Object.assign(G,{[e.$name]:e})}),G}function be({rulesDef:e,...n}){if(re(e,n.state,n.schemaMode))return ve({rulesDef:e,...n});if(Q(n.state,e)){if(V(n.state))return ye({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 ye({rulesDef:e,...a,state:r.fakeState})}}else if(ie(e))return ge({rulesDef:i(e.value)?e.value:e,...n})}var xe=`1.17.2`;function Se({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=Y(),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=E(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(),Q(a,i)?g.value=ye({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}):ie(i)&&(g.value=ge({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 Ce({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(w(t.value)?{...C(t.value)}:C(t.value)),_=w(t.value)?{...C(t.value)}:C(t.value);return K(()=>{p?.()}),Se({scopeRules:h,state:t,options:f,initialState:g,originalState:_,customRules:o,shortcuts:s,overrides:c})}function we(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$:Ce({state:i(e)?e:u(e),rulesFactory:n,options:s,globalOptions:o,customRules:t,shortcuts:r,overrides:a}).regle}}return s}const Te=we();function Ee(){function e(e,t){return t}return e}const De=Ee();function Oe(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&&w(r)&&`$each`in r&&r.$each&&w(r.$each)?t[n]=[Oe(r.$each)]:w(r)&&!b(r)&&!Object.entries(r).some(([e,t])=>$(t)||typeof t==`function`)?t[n]=Oe(r):t[n]=null}return t}function ke(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 Ce({state:u(Oe(c?.value)),rulesFactory:c,options:r,globalOptions:s,customRules:n,shortcuts:a,overrides:o}).regle}return c}const Ae=ke();function je(e){if(k(e)){let t=e,n=class extends t{constructor(...e){return super(...e),Me(this)}};return Object.defineProperty(n,`name`,{value:t.name}),Me(n)}return Me(e)}function Me(e){return!D(e,Z.REGLE_STATIC)&&Object.isExtensible(e)&&O(e,Z.REGLE_STATIC,!0),e}function Ne({rules:e,modifiers:t,shortcuts:n,overrides:r}){let i=we({rules:e,modifiers:t,shortcuts:n,overrides:r}),a=ke({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:Ee(),useRules:a}}function Pe(e,{rules:t,modifiers:n,shortcuts:r,overrides:i}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?T(a.modifiers,n):a.modifiers??n,c=a.shortcuts&&r?T(a.shortcuts,r):a.shortcuts??r,l=a.overrides&&i?T(a.overrides,i):a.overrides??i,u=we({rules:o,modifiers:s,shortcuts:c,overrides:l});return u.__config={rules:o,modifiers:s,shortcuts:c,overrides:l},{useRegle:u,inferRules:Ee()}}function Fe(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 Ie(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`?Fe(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})})}),Fe(a,!n.asRecord)):Fe(e[`~~global`]??{},!n.asRecord)}return{r$:s.r$}}return{useCollectScope:r}}function Le(t,r){let i=r??Te;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}-${G()}`),v=e(()=>m.value??`instance-${g.value}`),{r$:y}=i(r,a,{...f,id:m.value});x(),K(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 Re(e){let t=(e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):q(()=>u({"~~global":{}})))(),{useScopedRegle:n}=Le(t,e?.customUseRegle),{useCollectScope:r}=Ie(t,{asRecord:e?.asRecord});return{useScopedRegle:n,useCollectScope:r}}const{useCollectScope:ze,useScopedRegle:Be}=Re(),Ve=ze,He=Be;function Ue(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=>w(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`))||{})}function We(e,t,n){return!!e&&w(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function Ge(e,t,n,r){let a=i(e)?f(e.value,`$fields`):f(e,`$fields`),s=u();return _(a,async()=>{await o(),We(a.value,t,n)?s.value=f(e).value:s.value=void 0},{immediate:!0,flush:`pre`}),s}function Ke(e){return e}function qe(e,t){return n=>T({...e},t(n))}const Je={install(e){e.provide(X,xe)}};export{F as InternalRuleType,Je as RegleVuePlugin,B as createRule,Re as createScopedUseRegle,Ue as createVariant,Ne as defineRegleConfig,Ke as defineRules,Pe as extendRegleConfig,fe as flatErrors,De as inferRules,je as markStatic,Fe as mergeRegles,We as narrowVariant,qe as refineRules,I as unwrapRuleParameters,Ve as useCollectScope,Te as useRegle,Se as useRootStorage,Ae as useRules,He as useScopedRegle,Ge as variantToRef};
|