@regle/core 1.19.16 → 1.20.0-preview.1
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 +7 -6
- package/dist/regle-core.js +2 -2
- package/dist/regle-core.min.js +2 -2
- package/package.json +3 -2
package/dist/regle-core.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @regle/core v1.
|
|
2
|
+
* @regle/core v1.20.0-preview.1
|
|
3
3
|
* (c) 2026 Victor Garcia
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { ComputedRef, MaybeRef, MaybeRefOrGetter, Plugin, Raw, Ref, UnwrapNestedRefs, UnwrapRef } from "vue";
|
|
8
|
-
import { EmptyObject, Get, IsAny, IsEmptyObject, IsNullable, IsOptional, IsStringLiteral, IsUnion, IsUnknown, Merge, Or, Paths, RequireAtLeastOne, RequireOneOrNone, RequiredDeep, UnionToIntersection, UnionToTuple } from "type-fest";
|
|
8
|
+
import { EmptyObject, Get, IsAny, IsEmptyObject, IsLiteral, IsNullable, IsOptional, IsStringLiteral, IsUnion, IsUnknown, Merge, Or, Paths, RequireAtLeastOne, RequireOneOrNone, RequiredDeep, UnionToIntersection, UnionToTuple } from "type-fest";
|
|
9
9
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
10
10
|
declare const RegleStaticSymbol: unique symbol;
|
|
11
11
|
type RegleStatic<T> = T extends (new (...args: infer Args) => infer U) ? RegleStaticImpl<new (...args: Args) => RegleStaticImpl<U>> : RegleStaticImpl<T>;
|
|
@@ -292,7 +292,7 @@ type $InternalRegleResult = {
|
|
|
292
292
|
errors: $InternalRegleErrorTree | $InternalRegleCollectionErrors | string[];
|
|
293
293
|
issues: $InternalRegleIssuesTree | $InternalRegleCollectionIssues | RegleFieldIssue[];
|
|
294
294
|
};
|
|
295
|
-
type DeepSafeFormState<TState extends Record<string, any>, TRules extends ReglePartialRuleTree<Record<string, any>, CustomRulesDeclarationTree> | undefined> =
|
|
295
|
+
type DeepSafeFormState<TState extends Record<string, any>, TRules extends ReglePartialRuleTree<Record<string, any>, CustomRulesDeclarationTree> | undefined> = IsUnknown<TState> extends true ? {} : IsAny<TState> extends true ? unknown : TRules extends undefined ? TState : HasNamedKeys<TState> extends true ? TRules extends ReglePartialRuleTree<TState, CustomRulesDeclarationTree> ? Prettify<{ [K in keyof TState as IsPropertyOutputRequired<TState[K], TRules[K]> extends false ? K : never]?: SafeProperty<TState[K], TRules[K]> extends MaybeInput<infer M> ? MaybeOutput<M> : SafeProperty<TState[K], TRules[K]> } & { [K in keyof TState as IsPropertyOutputRequired<TState[K], TRules[K]> extends false ? never : K]-?: IsUnknown<SafeProperty<TState[K], TRules[K]>> extends true ? unknown : IsAny<TState[K]> extends true ? unknown : NonNullable<SafeProperty<TState[K], TRules[K]>> }> : TState : TState;
|
|
296
296
|
type FieldHaveRequiredRule<TRule extends RegleFormPropertyType<any, any> | undefined = never> = TRule extends MaybeRefOrComputedRef<RegleRuleDecl<any, any>> ? { [K in keyof UnwrapRef<TRule>]-?: UnwrapRef<TRule>[K] extends RegleRuleDefinition<unknown, any, any[], any, any, any, any, true> ? true : false }[keyof UnwrapRef<TRule>] extends false ? false : true : false;
|
|
297
297
|
type ObjectHaveAtLeastOneRequiredField<TState extends Record<string, any>, TRules extends ReglePartialRuleTree<TState, any>> = TState extends Maybe<TState> ? ({ [K in keyof NonNullable<TState>]-?: IsPropertyOutputRequired<NonNullable<TState>[K], TRules[K] extends RegleFormPropertyType<any, any> ? TRules[K] : {}> } & {
|
|
298
298
|
$self: IsPropertyOutputRequired<string, TRules['$self']>;
|
|
@@ -710,7 +710,7 @@ declare function extendRegleConfig<TRootCustomRules extends Partial<ExtendedRule
|
|
|
710
710
|
declare function defineRegleOptions<T extends GlobalConfigOptions<Partial<ExtendedRulesDeclarationsOverrides>, RegleShortcutDefinition<any>>>(options: T): T;
|
|
711
711
|
type useRegleFnOptions<TState extends Record<string, any> | MaybeInput<PrimitiveTypes>, TRules extends ReglePartialRuleTree<NonNullable<JoinDiscriminatedUnions<TState>>, CustomRulesDeclarationTree>, TAdditionalOptions extends Record<string, any>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]>> = TState extends Record<string, any> ? Partial<DeepMaybeRef<RegleBehaviourOptions>> & LocalRegleBehaviourOptions<JoinDiscriminatedUnions<TState>, TRules, TValidationGroups> & TAdditionalOptions : Partial<DeepMaybeRef<RegleBehaviourOptions & FieldOnlyRegleBehaviourOptions>> & TAdditionalOptions;
|
|
712
712
|
interface useRegleFn<TCustomRules extends Partial<ExtendedRulesDeclarationsOverrides>, TShortcuts extends RegleShortcutDefinition<any> = never, TAdditionalReturnProperties extends Record<string, any> = {}, TAdditionalOptions extends Record<string, any> = {}> {
|
|
713
|
-
<TState extends MaybeRef<Record<string, any> | MaybeInput<PrimitiveTypes>>, TRules extends ReglePartialRuleTree<JoinDiscriminatedUnions<Unwrap<TState>>, Partial<ExtendedRulesDeclarations & Omit<TCustomRules, keyof DefaultValidatorsTree>>>, TDecl extends RegleRuleDecl<WidenPrimitiveLiterals<NonNullable<Unwrap<TState>>>, Partial<ExtendedRulesDeclarations & TCustomRules>>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]>>(...params: [state: Maybe<TState> | DeepReactiveState<TState>, rulesFactory: Unwrap<TState> extends MaybeInput<PrimitiveTypes> ? MaybeRefOrGetter<TDecl> : Unwrap<TState> extends Record<string, any> ? MaybeComputedOrGetter<TRules> : {}, ...(HaveAnyRequiredProps<useRegleFnOptions<Unwrap<TState>, TRules, TAdditionalOptions, TValidationGroups>> extends true ? [options: useRegleFnOptions<Unwrap<NoInferLegacy<TState>>, TRules, TAdditionalOptions, TValidationGroups>] : [options?: useRegleFnOptions<Unwrap<NoInferLegacy<TState>>, TRules, TAdditionalOptions, TValidationGroups>])]): NonNullable<Unwrap<TState>> extends PrimitiveTypes ? RegleSingleField<WidenPrimitiveLiterals<
|
|
713
|
+
<TState extends MaybeRef<Record<string, any> | MaybeInput<PrimitiveTypes>>, TRules extends ReglePartialRuleTree<JoinDiscriminatedUnions<Unwrap<TState>>, Partial<ExtendedRulesDeclarations & Omit<TCustomRules, keyof DefaultValidatorsTree>>>, TDecl extends RegleRuleDecl<WidenPrimitiveLiterals<NonNullable<Unwrap<TState>>>, Partial<ExtendedRulesDeclarations & TCustomRules>>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]>>(...params: [state: Maybe<TState> | DeepReactiveState<TState>, rulesFactory: Unwrap<TState> extends MaybeInput<PrimitiveTypes> ? MaybeRefOrGetter<TDecl> : Unwrap<TState> extends Record<string, any> ? MaybeComputedOrGetter<TRules> : {}, ...(HaveAnyRequiredProps<useRegleFnOptions<Unwrap<TState>, TRules, TAdditionalOptions, TValidationGroups>> extends true ? [options: useRegleFnOptions<Unwrap<NoInferLegacy<TState>>, TRules, TAdditionalOptions, TValidationGroups>] : [options?: useRegleFnOptions<Unwrap<NoInferLegacy<TState>>, TRules, TAdditionalOptions, TValidationGroups>])]): NonNullable<Unwrap<TState>> extends PrimitiveTypes ? RegleSingleField<WidenPrimitiveLiterals<Unwrap<TState>>, TDecl, TShortcuts, TAdditionalReturnProperties> : Regle<Unwrap<TState> extends Record<string, any> ? Unwrap<TState> : {}, UnwrapSimple<TRules> extends Record<string, any> ? UnwrapSimple<TRules> : {}, TValidationGroups, TShortcuts, TAdditionalReturnProperties>;
|
|
714
714
|
__config?: GlobalConfigOptions<TCustomRules, TShortcuts>;
|
|
715
715
|
}
|
|
716
716
|
/**
|
|
@@ -1076,7 +1076,6 @@ declare const InternalRuleType: {
|
|
|
1076
1076
|
readonly Async: "__async";
|
|
1077
1077
|
};
|
|
1078
1078
|
type InternalRuleType = EnumType<typeof InternalRuleType>;
|
|
1079
|
-
type IsLiteral<T> = string extends T ? false : true;
|
|
1080
1079
|
/**
|
|
1081
1080
|
* Returned typed of rules created with `createRule`
|
|
1082
1081
|
* */
|
|
@@ -1103,6 +1102,8 @@ type RegleRuleWithParamsDefinition<TType extends string | unknown = unknown, TVa
|
|
|
1103
1102
|
(...params: RegleUniversalParams<TParams>): RegleRuleDefinition<TType, TFilteredValue, TParams, TAsync, TMetadata, TInput, TFilteredValue, TNonEmpty>;
|
|
1104
1103
|
} & (HasOptionalParams<TParams> extends true ? {
|
|
1105
1104
|
exec: (value: Maybe<TFilteredValue>) => TAsync extends false ? TMetadata : Promise<TMetadata>;
|
|
1105
|
+
} : IsAny<TParams[number]> extends true ? {
|
|
1106
|
+
exec?: (value: Maybe<TFilteredValue>) => TAsync extends false ? TMetadata : Promise<TMetadata>;
|
|
1106
1107
|
} : {});
|
|
1107
1108
|
type RegleRuleWithParamsDefinitionInput<TType extends string | unknown = unknown, TValue extends any = any, TParams extends any[] = never, TAsync extends boolean = false, TMetadata extends RegleRuleMetadataDefinition = boolean, TFilteredValue extends any = (TValue extends Date & File & (infer M) ? M : TValue)> = RegleRuleCoreInput<TType, TFilteredValue, TParams, TAsync, TMetadata> & RegleInternalRuleDefs<TFilteredValue, TParams, TAsync, TMetadata> & {
|
|
1108
1109
|
exec: (value: Maybe<TFilteredValue>) => TAsync extends false ? TMetadata : Promise<TMetadata>;
|
|
@@ -2240,4 +2241,4 @@ declare function isRegleInstance(value: unknown): boolean;
|
|
|
2240
2241
|
* @see {@link https://reglejs.dev/introduction/devtools Documentation}
|
|
2241
2242
|
*/
|
|
2242
2243
|
declare const RegleVuePlugin: Plugin;
|
|
2243
|
-
export { type $InternalRegleStatus, type AllRulesDeclarations, type ArrayElement, type CommonAlphaOptions, type CommonComparisonOptions, type CreateScopedUseRegleOptions, type CustomCollectionProperties, type CustomFieldProperties, type CustomNestedProperties, type CustomRules, type DeepMaybeRef, type DeepPartial, type DeepReactiveState, type DefaultValidatorsTree, type DumbJoinDiscriminatedUnions, type ExtendedRulesDeclarations, type ExtendedRulesDeclarationsOverrides, 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 ParamsToLooseParams, type Prettify, 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 UrlOptions, type UseScopedRegleOptions, createRule, createScopedUseRegle, createVariant, defineRegleConfig, defineRegleOptions, defineRules, extendRegleConfig, flatErrors, getErrors, getIssues, inferRules, type inferRulesFn, type isEditedHandlerFn, isRegleInstance, markStatic, mergeRegles, narrowVariant, refineRules, unwrapRuleParameters, useCollectScope, type useCollectScopeFn, useRegle, type useRegleFn, useRootStorage, useRules, type useRulesFn, useScopedRegle, variantToRef };
|
|
2244
|
+
export { type $InternalRegleStatus, type AllRulesDeclarations, type ArrayElement, type CommonAlphaOptions, type CommonComparisonOptions, type CreateScopedUseRegleOptions, type CustomCollectionProperties, type CustomFieldProperties, type CustomNestedProperties, type CustomRules, type DeepMaybeRef, type DeepPartial, type DeepReactiveState, type DefaultValidatorsTree, type DumbJoinDiscriminatedUnions, type ExtendedRulesDeclarations, type ExtendedRulesDeclarationsOverrides, 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 ParamsToLooseParams, type Prettify, 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 RegleRuleDefinitionLight, 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 UrlOptions, type UseScopedRegleOptions, createRule, createScopedUseRegle, createVariant, defineRegleConfig, defineRegleOptions, defineRules, extendRegleConfig, flatErrors, getErrors, getIssues, inferRules, type inferRulesFn, type isEditedHandlerFn, isRegleInstance, 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.
|
|
2
|
+
* @regle/core v1.20.0-preview.1
|
|
3
3
|
* (c) 2026 Victor Garcia
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
@@ -1366,7 +1366,7 @@ function filterInspectorTree(nodes, filter) {
|
|
|
1366
1366
|
return filtered;
|
|
1367
1367
|
}
|
|
1368
1368
|
|
|
1369
|
-
var version$1 = "1.
|
|
1369
|
+
var version$1 = "1.20.0-preview.1";
|
|
1370
1370
|
|
|
1371
1371
|
function createDevtools(app) {
|
|
1372
1372
|
setupDevtoolsPlugin({
|
package/dist/regle-core.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @regle/core v1.
|
|
2
|
+
* @regle/core v1.20.0-preview.1
|
|
3
3
|
* (c) 2026 Victor Garcia
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import{computed as e,effectScope as t,getCurrentInstance as n,getCurrentScope as r,inject as i,isRef as a,markRaw as o,nextTick as s,onMounted as c,onScopeDispose as l,reactive as u,ref as d,shallowRef as f,toRef as p,toValue as m,triggerRef as h,unref as g,version as _,watch as v,watchEffect as y}from"vue";function b(e){return e?.constructor?.name==`File`}function x(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function S(e,t,n){if(!e)return n;var r,i;if(Array.isArray(t)&&(r=t.slice(0)),typeof t==`string`&&(r=t.split(`.`)),typeof t==`symbol`&&(r=[t]),!Array.isArray(r))throw Error(`props arg must be an array, a string or a symbol`);for(;r.length;)if(i=r.shift(),!e||!i||(e=e[i],e===void 0))return n;return e}function C(e,...t){for(var n=[].slice.call(arguments),r,i=n.length;r=n[i-1],i--;)if(!r||typeof r!=`object`&&typeof r!=`function`)throw Error(`expected object, got `+r);for(var a=n[0],o=n.slice(1),s=o.length,i=0;i<s;i++){var c=o[i];for(var l in c)a[l]=c[l]}return a}function w(e){let t={};for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n],i=n.split(`.`),a=t;for(let e=0;e<i.length;e++){let t=i[e],n=e===i.length-1,o=t.match(/^\d+$/)?Number(t):null;if(o!==null){if(Array.isArray(a))if(n)a[o]=r;else{if(typeof a[o]!=`object`||a[o]===null){let t=i[e+1];a[o]=t&&t.match(/^\d+$/)?{$each:[],$self:[]}:{}}a=`$each`in a[o]?a[o].$each:a[o]}}else if(n)if(Array.isArray(a[t])){let e=a[t].slice();a[t]={},a[t].$self=e}else typeof a[t]==`object`&&a[t]!==null&&`$each`in a[t]?a[t].$self=r:a[t]=r;else{let n=i[e+1];if(Array.isArray(a[t])){let e=a[t].slice();a[t]={$each:[]},a[t].$self=e}(typeof a[t]!=`object`||a[t]===null||Array.isArray(a[t])&&!n.match(/^\d+$/))&&(n&&n.match(/^\d+$/)?a[t]={$each:[],$self:[]}:a[t]={}),a=`$each`in a[t]?a[t].$each:a[t]}}}return t}function T(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function E(e,t,n,r=!1){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})}function D(e){return typeof e==`function`&&!!e.prototype&&`constructor`in e.prototype&&e.prototype.constructor===e}function O(e,t=!0,n=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):b(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:x(e)?e==null?!0:n?Object.keys(e).length===0:!1:!String(e).length}const k=Symbol(`regle-rule`);function A(e){let t=[];return e.global&&t.push(`g`),e.ignoreCase&&t.push(`i`),e.multiline&&t.push(`m`),e.sticky&&t.push(`y`),e.unicode&&t.push(`u`),t.join(``)}function j(e,t=0){if(t>20)return e;let n=e,r={}.toString.call(e).slice(8,-1);if(r==`Set`&&(n=new Set([...e].map(e=>j(e,t++)))),r==`Map`&&(n=new Map([...e].map(e=>[j(e[0]),j(e[1])]))),r==`Date`&&(n=new Date(e.getTime())),r==`RegExp`&&(n=RegExp(e.source,A(e))),r==`Array`||r==`Object`){n=Array.isArray(e)?[]:{};for(let r in e)n[r]=j(e[r],t++)}return n}function M(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e==`object`&&t===`[object Date]`?new Date(e.getTime()):typeof e==`number`||t===`[object Number]`||typeof e==`string`||t===`[object String]`?new Date(e):new Date(NaN)}function N(e,t,{immediate:n=!1,trackDebounceRef:r}={}){let i,a=(...a)=>{r&&(r.value=!0);function o(){r&&(r.value=!1)}return new Promise((r,s)=>{function c(e){r(e),o()}if(clearTimeout(i),i=setTimeout(()=>{if(o(),i=void 0,!n)try{Promise.resolve(e.apply(this,[...a])).then(c).catch(e=>s(e)).finally(o)}catch(e){s(e)}},t),n){o();try{Promise.resolve(e.apply(this,[...a])).then(c).catch(e=>s(e)).finally(o)}catch(e){s(e)}}})};return a.cancel=()=>{clearTimeout(i),i=void 0,r&&(r.value=!1)},a}function ee(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(!ee(e[a],t[a],n,!1))return!1}return!0}if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(o=Object.keys(e),i=o.length,i!==Object.keys(t).length)return!1;for(a=i;a--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[a]))return!1;for(a=i;a--!==0;){var s=o[a];if(x(e)&&x(t)&&s&&(r||!r&&n)&&!ee(e[s],t[s],n,!1))return!1}return!0}return e!==e&&t!==t}var P=class extends Error{constructor(e=`Promise was aborted`){super(e),this.name=`AbortError`}};function F(e){let t=new AbortController,{signal:n}=t,r=new Promise((t,r)=>{function i(){r(new P)}n.addEventListener(`abort`,i),e.then(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new P):t(e)}).catch(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new P):r(e)})});function i(e){t.abort(e)}return{promise:r,abort:i,signal:n}}function I(e,t){if(!a(e))return u(e);let n=d(!1);return c(async()=>{await s(),typeof window<`u`&&window.requestAnimationFrame(()=>{n.value=!0})}),u(new Proxy({},{get(r,i,a){if(t.value&&i!==`$value`&&n.value)return Reflect.get(r,i,a);if(e.value!==void 0)return g(Reflect.get(e.value,i,a))},set(t,n,r){return a(e.value[n])&&!a(r)?e.value[n].value=r:e.value[n]=r,!0},deleteProperty(t,n){return Reflect.deleteProperty(e.value,n)},has(t,n){return e.value===void 0?!1:Reflect.has(e.value,n)},ownKeys(){return e.value===void 0?[]:Object.keys(e.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}}))}const L={Inline:`__inline`,Async:`__async`};function R(e){try{return e.map(e=>m(e))}catch{return[]}}function z(t){return t.map(t=>t instanceof Function?e(t):a(t)?t:p(()=>t))}function B(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 V(e,...t){let{validator:n,type:r,async:i}=e,a=i||r===L.Async||n.constructor.name===`AsyncFunction`;return o({validator(n,...r){return e.validator(n,...R(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:R(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:R(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:R(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...R(t)),i;return r instanceof Promise?r.then(e=>(i=e,typeof i==`object`&&`$valid`in i?i.$valid:typeof i==`boolean`?i:!1)):(i=r,typeof i==`object`&&`$valid`in i?i.$valid:typeof i==`boolean`?i:!1)},type:r,_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:a,_params:z(t),_brand:k})}function H(e){if(typeof e.validator==`function`){let t=[],n=e.async??e.validator.constructor.name===`AsyncFunction`,r=V({...e,async:n},...t);if(B(e.validator)>1){let t=function(...t){return V(e,...t)};return t.validator=r.validator,t.message=r.message,t.active=r.active,t.tooltip=r.tooltip,t.type=r.type,t.exec=r.exec,t._validator=r.validator,t._message=r.message,t._active=r.active,t._tooltip=r.tooltip,t._type=e.type,t._message_pacthed=!1,t._tooltip_pacthed=!1,t._async=n,t}else return r}throw Error(`[createRule] validator must be a function`)}const U=Symbol.for(`regle:instance`);function W(e){return typeof e==`object`&&!!e&&U in e}function G(e){return x(e.value)}function te(e,n,r){let i=t(),a;return a=e instanceof Function?i.run(()=>e(n,r??0)):e,{scope:i,unwrapped:a}}const K={LessThan:-1,EqualTo:0,GreaterThan:1};function q(e,t){let n=String(e).split(`.`),r=String(t).split(`.`);for(let e=0;e<Math.min(n.length,r.length);e++){let t=Number(n[e]),i=Number(r[e]);if(t>i)return K.GreaterThan;if(i>t)return K.LessThan;if(!isNaN(t)&&isNaN(i))return K.GreaterThan;if(isNaN(t)&&!isNaN(i))return K.LessThan}return K.EqualTo}const J=q(_,`3.5.0`)!==-1;function Y(){return Math.floor(Math.random()*Date.now()).toString()}function X(){return typeof window>`u`?Y():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function ne(e){return r()?(l(e),!0):!1}function re(e){let n=!1,r,i=t(!0);return((...t)=>(n||=(r=i.run(()=>e(...t)),!0),r))}function ie(e,t){return e.some(e=>t?e?.[t]:!1)}function ae(e,t){return t?e.reduce((e,n)=>{let r=n?.[t]||[];return e.concat(r)},[]):[]}const oe=Symbol(`regle`),Z=Symbol(`regle-config`),Q={REGLE_STATIC:`__regle_static`};function se(e,t){return!de(e.value)&&(G(e)||x(t.value)&&!O(t.value)&&!Object.entries(t.value).some(([e,t])=>$(t)||typeof t==`function`))}function ce(e,t){return!!e.value&&x(e.value)&&`$each`in e.value||Array.isArray(t.value)}function le(e){return!!e.value&&(x(e.value)||G(e.value))}function $(e){return(x(e)||typeof e==`function`)&&`_validator`in e}function ue(e){return typeof e.value==`function`?`_validator`in e.value:!0}function de(e){return x(e)&&T(e,Q.REGLE_STATIC)&&e[Q.REGLE_STATIC]===!0}function fe(e){return x(e)&&`$fields`in e}function pe(e){return!!e&&`$rules`in e}var me=`1.19.16`;function he(){let e=f(new Map),t=f(new Map),n=f(new Map),i=f(new Map),a=f(new Map),o=f(new Map),s=f(new Map);function c(e){let n=t.value.get(e);if(n)return n;{let n=d({});return t.value.set(e,n),n}}function u(e){let t=n.value.get(e);if(t)return t;{let t=d([]);return n.value.set(e,t),t}}function p(e,t){o.value.set(e,t)}function m(e){return o.value.get(e)}function h(e,t,n){s.value.set(`${e}-${t}`,n)}function g(e,t){return s.value.get(`${e}-${t}`)}function _(e,t){e&&t!=null&&s.value.delete(`${e}-${t}`)}function v(e,t){i.value.set(e,t)}function y(e){return i.value.get(e)??!1}function b(t,n){e.value.set(t,n)}function x(t,n){let r=e.value.get(t);if(r)return S(n,r)?{valid:!0}:{valid:!1}}function S(e,t){let n=Object.keys(t),r=Object.keys(e);return r.length!==n.length||!r.every(e=>n.includes(e))?!1:r.every(n=>{let r=e[n],i=t[n];if(!i||!r||typeof r==`function`||typeof i==`function`||typeof r==`number`||typeof r==`boolean`||typeof r==`string`)return!1;if(`_params`in r){if(!r._params)return!0;if(Array.isArray(r._params))return r._params?.every((e,t)=>{if(typeof i==`number`||typeof i==`boolean`||typeof i==`string`)return!0;{let e=R(`_params`in i&&Array.isArray(i._params)?i._params:[]),n=R(r._params);return e?.[t]===n?.[t]}})}})}function C(e){let t=a.value.get(e);if(t)return t;{let t=d(!1),n=d(!0),r=d({}),i=d(!1);return a.value.set(e,{$pending:t,$valid:n,$metadata:r,$validating:i}),{$pending:t,$valid:n,$metadata:r,$validating:i}}}return r()&&l(()=>{e.value.clear(),t.value.clear(),n.value.clear(),i.value.clear(),a.value.clear(),s.value.clear()}),{addRuleDeclEntry:b,setDirtyEntry:v,checkRuleDeclEntry:x,getDirtyState:y,trySetRuleStatusRef:C,getFieldsEntry:c,getCollectionsEntry:u,getArrayStatus:g,addArrayStatus:h,deleteArrayStatus:_,arrayStatusStorage:s,addAdditionalRulesEntry:p,getAdditionalRulesEntry:m}}function ge({field:e,silent:t=!1}){let n=Object.entries(e.$rules??{}).map(([n,r])=>{let i=``;if(t&&!r.$valid)i=r.$message;else if(!r.$valid&&e.$error&&!r.$validating)i=r.$message;else return null;return{$message:i,$property:e.fieldName,$rule:n,$type:r.$type,...typeof r.$metadata==`object`?r.$metadata:{}}}).filter(e=>!!e).reduce((e,t)=>(typeof t.$message==`string`?e.push(t):e.push(...t.$message.map(e=>({...t,$message:e}))),e),[]),r=e.$error&&e.$externalErrors?e.$externalErrors.map(t=>({$message:t,$property:e.fieldName,$rule:`external`,$type:void 0})):[],i=[];return e.$schemaErrors&&e.$error&&(i=!Array.isArray(e.$schemaErrors)&&`$self`in e.$schemaErrors?e.$schemaErrors.$self??[]:e.$schemaErrors??[]),[...n,...r,...i]}function _e({field:e}){let t=[];for(let n of Object.values(e.$rules??{})){let e=n.$tooltip;e&&(typeof e==`string`?t.push(e):t.push(...e))}return t}function ve(e){return x(e)&&`$each`in e}function ye(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!x(e)))return e;if(ve(e)){let t=n?e.$self?.map(e=>({message:e,path:[]}))??[]:e.$self??[],r=e.$each?.map(e=>be(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>be(t,n,[e])).flat()}function be(e,t=!1,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(e=>!x(e)))return t?e.map(e=>({message:e,path:r??[]})):e;if(ve(e)){let n=r?.length?e.$self?.map(e=>({message:e,path:r??[]}))??[]:e.$self??[],i=e.$each?.map((e,n)=>be(e,t,r?.concat(n)))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>be(n,t,r?.concat(e))).flat()}function xe({customMessages:n,rule:r,ruleKey:i,state:a,path:o,cachePath:s,storage:c,modifiers:l}){let f=t(),p={},m,h=e(()=>$(r.value)&&r.value._async),g=d(!1),{$pending:_,$valid:y,$metadata:b,$validating:x}=c.trySetRuleStatusRef(`${s}.${i}`);function S(){f=t(),p=f.run(()=>{let t=d(!1),s=d(!1),c=d(!0),l=d(!1),u=d(!1),f=e(()=>({$value:a.value,$error:s.value,$dirty:t.value,$pending:l.value,$correct:u.value,$invalid:c.value,$rule:{$valid:y.value,$invalid:!y.value,$pending:_.value},$params:S.value,...b.value})),p=e(()=>{try{return ue(r)?typeof r.value.active==`function`?r.value.active(f.value):!!r.value.active:!0}catch(e){return console.error(`Error in "active" function for "${o}.${i}" rule`,{cause:e}),!0}});function m(e){try{let t=``,a=n?n[i]?.[e]:void 0;if(a&&(t=typeof a==`function`?a(f.value):a),ue(r)){let n=`_${e}_patched`;a&&!r.value[n]||(t=typeof r.value[e]==`function`?r.value[e](f.value):r.value[e]??``)}return t}catch(t){return console.error(`Error in "${e}" function for "${o}.${i}" rule`,{cause:t}),``}}let h=e(()=>{let e=m(`message`);return O(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),v=e(()=>ue(r)&&r.value.type?r.value.type:i),x=e(()=>ue(r)?r.value.validator:r.value),S=e(()=>typeof r.value==`function`?[]:R(r.value._params??[]));return{$active:p,$message:h,$type:v,$validator:x,$params:S,$path:e(()=>`${o}.${i}`),$tooltip:g,$fieldCorrect:u,$fieldError:s,$fieldDirty:t,$fieldPending:l,$fieldInvalid:c}}),m=v(p?.$params,()=>{(!l.$silent.value||l.$rewardEarly.value&&p.$fieldError.value)&&E()},{deep:J?1:!0})}S();function C(){y.value=!0,p.$fieldDirty.value&&(_.value=!0)}async function w(){let e=!1;try{let t=p.$validator.value;if(typeof t!=`function`)return console.error(`${o}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let n=t(a.value,...p.$params.value),r=a.value;C();let i;if(i=n instanceof Promise?await n:n,a.value!==r)return!0;if(typeof i==`boolean`)e=i;else{let{$valid:t,...n}=i;e=t,b.value=n}}catch{e=!1}finally{_.value=!1}return e}function T(e,t=!0){if($(r.value)&&r.value._async)return!0;let n=e(a.value,...p.$params.value);if(n instanceof Promise)return!0;if(n!=null){if(typeof n==`boolean`)return n;{let{$valid:e,...t}=n;return b.value=t,e}}return!0}async function E(){try{x.value=!0;let e=!1;if(g.value=!0,$(r.value)&&r.value._async)e=await w();else{let t=p.$validator.value;e=T(t)}return y.value=e,e}catch{return!1}finally{x.value=!1,g.value=!1}}function D(){try{return x.value=!0,T(p.$validator.value)}catch{return!1}finally{x.value=!1}}function k(){y.value=!0,b.value={},_.value=!1,x.value=!1,S()}function A(){m(),f.stop(),f=t()}return u({...p,$pending:_,$valid:y,$metadata:b,$haveAsync:h,$maybePending:g,$validating:x,$parse:E,$parseSync:D,$unwatch:A,$watch:S,$reset:k})}function Se(e){return{"~standard":{version:1,vendor:`regle`,validate:async t=>{let{valid:n,data:r,errors:i}=await e(t,!0);return n?{value:r,issues:[]}:{issues:ye(i,{includePath:!0})}}}}}function Ce({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,fieldName:c,storage:l,options:f,externalErrors:h,schemaErrors:g,schemaMode:_,onUnwatch:b,$isArray:S,initialState:C,originalState:w,shortcuts:T,overrides:E,onValidate:D}){let k=t(),A,P=[],I,L,R,z,B=()=>{},V,H=()=>{},U=d(!1),W=d(l.getAdditionalRulesEntry(o)??{});function G(e){W.value=e??{},l.addAdditionalRulesEntry(o,e??{}),K(),B()}function te(e){G(e)}function K(){let e={...r.value,...W.value},t=[];for(let r in e){if(r.startsWith(`$`)||r.startsWith(`~`))continue;let s=e[r];if(!s)continue;let c=p(()=>s);t.push([r,xe({modifiers:{$silent:A.$silent,$rewardEarly:A.$rewardEarly},customMessages:i,rule:c,ruleKey:r,state:n,path:a,cachePath:o,storage:l,$debounce:Q.value.$debounce})])}Z.value=Object.fromEntries(t),l.addRuleDeclEntry(o,e)}function q(){let e={...r.value,...W.value},t=l.checkRuleDeclEntry(o,e),n={};for(let t in e)t.startsWith(`$`)&&(n[t]=e[t]);return Q.value=n,t}function Y(){let e=q();ie(),K(),A.processShortcuts(),X(),ne(),e?.valid!=null&&(A.$dirty.value=l.getDirtyState(o),(A.$dirty.value&&!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&B()),l.addRuleDeclEntry(o,r.value)}function X(){B=A.$debounce.value>0?N(oe,A.$debounce.value,{trackDebounceRef:U}):oe}function ne(){H=A.$debounce.value>0?N(()=>{A.$dirty.value=!0},A.$debounce.value):()=>{A.$dirty.value=!0}}function re(){if(Z.value)for(let e of Object.values(Z.value))e.$unwatch();L(),z?.(),A.$dirty.value&&l.setDirtyEntry(o,A.$dirty.value),I?.(),k.stop(),k=t();for(let e of P)e.stop();P=[],b?.(),R?.()}function ie(){if(Z.value)for(let e of Object.values(Z.value))e.$watch();A=k.run(()=>{let r=d(!1),i=d(!1),a=e(()=>r.value),o=e(()=>S||de(n.value)),s=e(()=>Q.value.$debounce==null?A.$haveAnyAsyncRule.value?200:0:Q.value.$debounce),l=e(()=>Q.value.$deepCompare==null?!1:Q.value.$deepCompare),p=e(()=>Q.value.$lazy==null?m(f.lazy)==null?!1:m(f.lazy)===!0:Q.value.$lazy),v=e(()=>Q.value.$immediateDirty==null?m(f.immediateDirty)==null?!1:m(f.immediateDirty)===!0:Q.value.$immediateDirty),b=e(()=>Q.value.$rewardEarly==null?m(f.rewardEarly)==null?!1:m(f.rewardEarly)===!0:!!Q.value.$rewardEarly),x=e(()=>Q.value.$clearExternalErrorsOnChange==null?m(f.clearExternalErrorsOnChange)==null?!D.value:m(f.clearExternalErrorsOnChange)===!0:!!Q.value.$clearExternalErrorsOnChange),w=e(()=>Q.value.$clearExternalErrorsOnValidate==null?m(f.clearExternalErrorsOnValidate)==null?!1:m(f.clearExternalErrorsOnValidate)===!0:!!Q.value.$clearExternalErrorsOnValidate),D=e(()=>b.value?!0:Q.value.$silent==null?m(f.silent)==null?!1:m(f.silent)===!0:Q.value.$silent),k=e(()=>Q.value.$autoDirty==null?m(f.autoDirty)==null?!0:m(f.autoDirty)===!0:Q.value.$autoDirty),j=e(()=>{if(Q.value.$isEdited!=null)return Q.value.$isEdited;if(E?.isEdited!=null)return E.isEdited}),N=e(()=>{for(let e of Object.values(Z.value))if(e.$validating)return!0;return!1}),F=e({get:()=>n.value,set(e){I(),n.value=e,ae()}}),L=e(()=>U.value?J.value&&r.value:J.value&&!q.value&&r.value),R=e(()=>ge({field:{$rules:Z.value,$error:L.value,$externalErrors:h?.value,$schemaErrors:g?.value,fieldName:Y.value}})),z=e(()=>ge({field:{$rules:Z.value,$error:L.value,$externalErrors:h?.value,$schemaErrors:g?.value,fieldName:Y.value},silent:!0})),B=e(()=>R.value.map(e=>e.$message)),V=e(()=>z.value.map(e=>e.$message)),H=d(!1);function W(e,t){return t instanceof Date&&e instanceof Date?M(t).getDate()!==M(e).getDate():t==null?!!e:Array.isArray(e)&&Array.isArray(t)?!ee(e,t,Q.value.$deepCompare):t!==e}y(()=>{r.value?j.value?H.value=j.value(n.value,C.value,W):H.value=W(n.value,C.value):H.value=!1});let G=e(()=>H.value),te=e(()=>_e({field:{$rules:Z.value}})),K=e(()=>!(J.value||q.value)),q=e(()=>i.value||!b.value?Object.entries(Z.value).some(([e,t])=>t.$pending):!1),J=e(()=>h?.value?.length||g?.value?.length?!0:X.value?!1:Object.values(Z.value).some(e=>!e.$valid||e.$maybePending)),Y=e(()=>c??f.id??`root`),X=e(()=>!_&&!Object.keys(Z.value).some(e=>!e.startsWith(`$`))),ne=e(()=>{if(h?.value?.length||X.value||U.value)return!1;if(r.value&&!O(n.value)&&!N.value&&!q.value){if(_)return!g?.value?.length;{let e=Object.values(Z.value);for(let t of e)if(t.$active&&!t.$valid)return!1;return e.some(e=>e.$active)}}return!1}),re=e(()=>Object.values(Z.value).some(e=>e.$haveAsync)),ie=e(()=>({$debounce:s.value,$lazy:p.value,$rewardEarly:b.value,$autoDirty:k.value,$silent:D.value,$clearExternalErrorsOnChange:x.value,$clearExternalErrorsOnValidate:w.value,$immediateDirty:v.value,$isEdited:j.value,$disabled:m(f.disabled)??!1}));function oe(){T?.fields&&Object.entries(T.fields).forEach(([e,i])=>{let o=t();se[e]=o.run(()=>{let e=d();return y(()=>{e.value=i(u({$dirty:r,$externalErrors:h?.value??[],$value:n,$silentValue:F,$rules:Z,$error:L,$pending:q,$invalid:J,$correct:ne,$errors:B,$ready:K,$silentErrors:V,$anyDirty:a,$tooltips:te,$name:Y,$inactive:X,$edited:H,$anyEdited:G}))}),e}),P.push(o)})}let se={};return{$error:L,$pending:q,$invalid:J,$correct:ne,$debounce:s,$deepCompare:l,$lazy:p,$immediateDirty:v,$ready:K,$issues:R,$silentIssues:z,$errors:B,$silentErrors:V,$rewardEarly:b,$autoDirty:k,$silent:D,$clearExternalErrorsOnChange:x,$clearExternalErrorsOnValidate:w,$anyDirty:a,$edited:H,$anyEdited:G,$name:Y,$haveAnyAsyncRule:re,$shortcuts:se,$validating:N,$tooltips:te,$dirty:r,processShortcuts:oe,$silentValue:F,$inactive:X,$modifiers:ie,$isArrayOrRegleStatic:o}}),ae(),L=v(A.$dirty,e=>{l.setDirtyEntry(o,e),Object.values(Z.value).forEach(t=>{t.$fieldDirty=e})}),z=v([A.$error,A.$correct,A.$invalid,A.$pending],()=>{Object.values(Z.value).forEach(e=>{e.$fieldError=A.$error.value,e.$fieldInvalid=A.$invalid.value,e.$fieldPending=A.$pending.value,e.$fieldCorrect=A.$correct.value})}),R=v(A.$haveAnyAsyncRule,X)}function ae(){I=v(n,()=>{A.$autoDirty.value&&!A.$silent.value&&(A.$dirty.value||H()),r.value instanceof Function&&Y(),(!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&B(),A.$clearExternalErrorsOnChange.value&&he()},{deep:A.$isArrayOrRegleStatic.value?!0:J?1:!0})}async function oe(){try{let{promise:e}=le(Promise.allSettled(Object.values(Z.value).map(e=>e.$parse())));await e}catch{}}let Z=d({}),Q=d({});Y();function se(e,t){if(ce(),he(),A.$dirty.value=!1,l.setDirtyEntry(o,!1),!t)if(e?.toOriginalState)n.value=j(w),C.value=j(w);else if(e?.toInitialState)n.value=j(C.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,C.value=j(t),n.value=j(t)}else C.value=x(n.value)&&!de(n.value)?j(n.value):Array.isArray(n.value)?[...n.value]:n.value;if(e?.clearExternalErrors&&he(),!t&&!e?.keepValidationState)for(let e of Object.values(Z.value))e.$reset();if(!A.$lazy.value&&!A.$silent.value&&!t)for(let e of Object.values(Z.value))e.$parse()}function ce(){`cancel`in B&&B.cancel()}function le(e){return V&&V.abort(),V=F(e),V}function $(){ce(),V&&V.abort()}function ue(e=!0,t=!1){A.$dirty.value||H(),t&&e?(!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&(ce(),B()):e&&(ce(),B())}async function fe(e){try{if(e&&(n.value=e),_)return D?(ue(!1),D()):{valid:!1,data:n.value,errors:A.$errors.value,issues:A.$issues.value};let t=n.value;if(A.$dirty.value||(A.$dirty.value=!0),O(Z.value))return{valid:!0,data:t,errors:A.$errors.value,issues:A.$issues.value};$();let{promise:r}=le(Promise.allSettled(Object.values(Z.value).map(e=>e.$parse()))),i=await r;return await s(),{valid:i.every(e=>e.status===`fulfilled`&&e.value===!0),data:t,errors:A.$errors.value,issues:A.$issues.value}}catch{return{valid:!1,data:n.value,errors:A.$errors.value,issues:A.$issues.value}}}function pe(e){try{return e&&(n.value=e),A.$dirty.value||(A.$dirty.value=!0),_?!1:Object.values(Z.value).map(e=>e.$parseSync()).every(e=>!!e)}catch{return!1}}function me(e=!0){return A.$dirty.value?n.value:e?{_null:!0}:null}function he(){h?.value?.length&&(h.value=[])}!A.$lazy.value&&!A.$dirty.value&&!A.$silent.value&&oe(),A.$immediateDirty.value&&(A.$dirty.value=!0);let{$shortcuts:ve,$validating:ye,$autoDirty:be,$rewardEarly:Ce,$clearExternalErrorsOnChange:we,$clearExternalErrorsOnValidate:Te,$haveAnyAsyncRule:Ee,$debounce:De,$lazy:Oe,...ke}=A,Ae=u({...ke,$externalErrors:h,$value:n,$initialValue:C,$originalValue:w,$rules:Z,...ve,$path:a,$isDebouncing:U,$reset:se,$touch:ue,$validate:fe,$validateSync:pe,$unwatch:re,$watch:ie,$extractDirtyFields:me,$clearExternalErrors:he,$abort:$,$addRules:G,addRules:te,$schemaMode:_,"~modifiers":A.$modifiers,...Se(fe)});return Object.defineProperty(Ae,Symbol.for(`regle:instance`),{value:!0}),Ae}function we({$id:t,path:n,cachePath:r,index:i,options:a,storage:o,stateValue:s,customMessages:c,rules:l,externalErrors:u,schemaErrors:d,initialState:f,originalState:m,shortcuts:h,fieldName:g,schemaMode:_,overrides:v}){let y=s.value?.$id??l.$key??X(),b=`${r}.${String(y)}`,S=`${n}.${i}`;typeof s.value==`object`&&s.value!=null&&(s.value.$id||Object.defineProperties(s.value,{$id:{value:y,enumerable:!1,configurable:!1,writable:!1}}));let C=p(u?.value??[],i),w=e(()=>d?.value?.[i]),T=De({index:i,state:s,rulesDef:p(()=>l),customMessages:c,path:S,cachePath:b,storage:o,options:a,externalErrors:C,schemaErrors:w,initialState:f,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&&(!x(s.value)||de(s.value))&&_&&T?.$touch(),T}function Te({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,storage:s,options:c,externalErrors:l,schemaErrors:f,schemaMode:h,initialState:g,originalState:_,shortcuts:b,fieldName:x,overrides:S}){let C=t(),w,T=t(),E,D=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let k=d(),A=d(n.value),M=d({}),N,ee,P=d({}),F=s.getCollectionsEntry(a);E=T.run(()=>({isPrimitiveArray:e(()=>n.value?.length?Array.isArray(n.value)&&n.value.length?n.value.every(e=>typeof e!=`object`):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(e=>$(e)||typeof e==`function`):!1:!1)})),I(),B();function I(){M.value=Object.fromEntries(Object.entries(r.value).filter(([e])=>e.startsWith(`$`))),typeof n.value==`object`&&(n.value!=null&&!n.value?.$id&&n.value!==null?(k.value=X(),Object.defineProperties(n.value,{$id:{value:k.value,enumerable:!1,configurable:!1,writable:!1}})):n.value?.$id&&(k.value=n.value.$id)),A.value=P.value.$value,Array.isArray(n.value)&&(!E.isPrimitiveArray.value||h)?F.value=n.value.map((t,n)=>{let{scope:u,unwrapped:d}=te(r.value.$each,p(()=>t),n);u&&D.push(u);let m=p(g.value??[],n),v=p(l?.value??{},`$each`),y=e(()=>f?.value?.$each);return we({$id:k.value,path:a,cachePath:o,customMessages:i,rules:d??{},stateValue:p(()=>t),index:n,options:c,storage:s,externalErrors:v,schemaErrors:y,initialState:m,originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S})||null}).filter(e=>!!e):F.value=[],P.value=Ce({state:n,rulesDef:r,customMessages:i,path:a,cachePath:a,storage:s,options:c,externalErrors:p(l?.value??{},`$self`),schemaErrors:e(()=>f?.value?.$self),$isArray:!0,initialState:g,originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S})}function L(){if(Array.isArray(n.value)&&(!E.isPrimitiveArray.value||h)){let t=j(F.value);F.value=n.value.map((t,n)=>{let o=p(()=>t);if(t.$id&&F.value.find(e=>e.$id===t.$id)){let e=s.getArrayStatus(k.value,t.$id);return e?(e.$value=o,e):null}else{let{scope:t,unwrapped:u}=te(r.value.$each,o,n);t&&D.push(t);let d=p(l?.value??{},`$each`),m=e(()=>f?.value?.$each??[]);return we({$id:k.value,path:a,cachePath:a,customMessages:i,rules:u??{},stateValue:o,index:n,options:c,storage:s,externalErrors:d,schemaErrors:m,initialState:p(g.value??[],n),originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S})||null}}).filter(e=>!!e),t.filter(e=>!n.value?.find(t=>e.$id===t.$id)).forEach((e,t)=>{s.deleteArrayStatus(k.value,t.toString())})}else F.value=[]}function R(){N=v(n,()=>{ee?.(),n.value!=null&&!Object.hasOwn(n.value,`$id`)&&!k.value?I():L(),z()},{deep:J?1:!0,flush:`pre`}),z()}function z(){ee=v(n,()=>{w.$autoDirty.value&&!w.$silent.value&&P.value.$touch(!1,!0)},{flush:`post`})}function B(){R(),C=t(),w=C.run(()=>{let r=e({get:()=>n.value,set(e){N?.(),ee?.(),n.value=e,R()}}),i=e(()=>P.value.$dirty&&(!F.value.length||F.value.every(e=>e.$dirty))),o=e(()=>P.value.$anyDirty||F.value.some(e=>e.$anyDirty)),s=e(()=>P.value.$invalid||F.value.some(e=>e.$invalid)),l=e(()=>(h?P.value.$correct:O(P.value.$rules)?!0:P.value.$correct)&&(!F.value.length||F.value.every(e=>e.$correct||e.$anyDirty&&!e.$invalid))),f=e(()=>P.value.$error||F.value.some(e=>e.$error)),p=e(()=>!(s.value||v.value)),v=e(()=>P.value.$pending||F.value.some(e=>e.$pending)),C=e(()=>!!F.value.length&&F.value.every(e=>e.$edited)),w=e(()=>P.value.$anyEdited||F.value.some(e=>e.$anyEdited)),T=e(()=>({$self:P.value.$issues,$each:F.value.map(e=>e.$issues)})),E=e(()=>({$self:P.value.$errors,$each:F.value.map(e=>e.$errors)})),k=e(()=>({$self:P.value.$silentErrors,$each:F.value.map(e=>e.$silentErrors)})),A=e(()=>M.value.$rewardEarly==null?m(c.rewardEarly)==null?!1:m(c.rewardEarly)===!0:M.value.$rewardEarly),j=e(()=>A.value?!0:M.value.$silent==null?m(c.silent)==null?!1:m(c.silent)===!0:M.value.$silent),I=e(()=>M.value.$autoDirty==null?m(c.autoDirty)==null?!0:m(c.autoDirty)===!0:M.value.$autoDirty),L=e(()=>M.value.$immediateDirty==null?m(c.immediateDirty)==null?!1:m(c.immediateDirty)===!0:M.value.$immediateDirty),z=e(()=>M.value.$clearExternalErrorsOnChange==null?m(c.clearExternalErrorsOnChange)==null?!0:m(c.clearExternalErrorsOnChange)===!0:M.value.$clearExternalErrorsOnChange),B=e(()=>M.value.$clearExternalErrorsOnValidate==null?m(c.clearExternalErrorsOnValidate)==null?!1:m(c.clearExternalErrorsOnValidate)===!0:M.value.$clearExternalErrorsOnValidate),V=e(()=>{if(M.value.$isEdited!=null)return M.value.$isEdited;if(S?.isEdited!=null)return S.isEdited}),H=e(()=>x??c.id??`root`),U=e(()=>({$deepCompare:M.value.$deepCompare??!1,$debounce:M.value.$debounce??0,$lazy:M.value.$lazy??!1,$rewardEarly:A.value,$autoDirty:I.value,$silent:j.value,$clearExternalErrorsOnChange:z.value,$clearExternalErrorsOnValidate:B.value,$immediateDirty:L.value,$isEdited:V.value,$disabled:m(c.disabled)??!1}));function W(){b?.collections&&Object.entries(b?.collections).forEach(([e,c])=>{let m=t();G[e]=m.run(()=>{let e=d();return y(()=>{e.value=c(u({$dirty:i,$error:f,$path:a,$silentValue:r,$pending:v,$invalid:s,$correct:l,$errors:E,$silentErrors:k,$initialValue:g,$originalValue:_,$ready:p,$anyDirty:o,$name:H,$each:F,$self:P,$value:n,$edited:C,$anyEdited:w,$issues:T}))}),e}),D.push(m)})}let G={};return W(),{$dirty:i,$anyDirty:o,$invalid:s,$correct:l,$error:f,$pending:v,$errors:E,$silentErrors:k,$ready:p,$name:H,$shortcuts:G,$silentValue:r,$edited:C,$anyEdited:w,$rewardEarly:A,$silent:j,$autoDirty:I,$issues:T,$modifiers:U}}),E.isPrimitiveArray.value&&r.value.$each&&console.warn(`${a} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`)}function V(){N?.(),P.value&&P.value.$unwatch(),F.value&&F.value.forEach(e=>{`$dirty`in e&&e.$unwatch()}),C.stop(),C=t(),T.stop(),T=t(!0),D.forEach(e=>e.stop()),D=[]}function H(e=!0,t=!1){P.value.$touch(e,t),F.value.forEach(n=>{n.$touch(e,t)})}function U(e,t){if(V(),!t)if(e?.toOriginalState)n.value=j(_),g.value=j(_);else if(e?.toInitialState)n.value=j(g.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,g.value=j(t),n.value=j(t)}else g.value=j(n.value);e?.clearExternalErrors&&q(),e?.keepValidationState||(P.value.$reset(e,t),F.value.forEach(t=>{t.$reset(e,!0)})),t||I()}function W(){P.value.$abort(),F.value.forEach(e=>{e.$abort()})}async function G(e){e&&(n.value=e);let t=n.value;try{return W(),{valid:(await Promise.allSettled([P.value.$validate(e),...F.value.map(e=>e.$validate())])).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:t,errors:w.$errors.value,issues:w.$issues.value}}catch{return{valid:!1,data:t,errors:w.$errors.value,issues:w.$issues.value}}}function K(e){e&&(n.value=e);try{return[P.value.$validateSync(e),...F.value.map(e=>e.$validateSync())].every(e=>!!e)}catch{return!1}}function q(){P.value.$clearExternalErrors(),F.value.forEach(e=>{e.$clearExternalErrors()})}function Y(e=!0){let t=F.value.map(t=>{if(fe(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>O(e))&&(t=[]),t}let{$shortcuts:ne,...re}=w;return u({$self:P,...re,...ne,$path:a,$each:F,$value:n,$initialValue:g,$originalValue:_,$validate:G,$validateSync:K,$unwatch:V,$watch:B,$touch:H,$reset:U,$abort:W,$extractDirtyFields:Y,$clearExternalErrors:q,"~modifiers":w.$modifiers,...Se(G)})}function Ee({rulesDef:n,state:r,path:i=``,cachePath:a,rootRules:o,externalErrors:s,schemaErrors:c,rootSchemaErrors:l,validationGroups:f,initialState:h,originalState:_,fieldName:b,...S}){let C=t(),w,T=[],E=null,D=null,k=null,A=null,M=d(void 0);async function N(t=!0){let o=Object.entries(n.value).filter(([e])=>e!==`$self`),l=Object.fromEntries(o.reduce((t,[n,o])=>{if(!o)return t;let l=p(r.value??{},n),u=p(()=>o),d=p(s?.value??{},n),f=e(()=>c?.value?.[n]),m=p(h?.value??{},n);return t.push([n,De({state:l,rulesDef:u,path:i?`${i}.${n}`:n,cachePath:a?`${a}.${n}`:n,externalErrors:d,schemaErrors:f,initialState:m,originalState:_?.[n],fieldName:n,...S})]),t},[])),u=Object.fromEntries(Object.entries(m(s)??{}).filter(([e,t])=>!(e in n.value)&&!!t).map(([t])=>{let n=p(r.value??{},t),o=p(s?.value??{},t),l=e(()=>c?.value?.[t]),u=p(h?.value??{},t),d=i?`${i}.${t}`:t,f=a?`${a}.${t}`:t;return[t,De({state:n,rulesDef:e(()=>({})),path:d,cachePath:f,externalErrors:o,schemaErrors:l,initialState:u,originalState:_?.[t],fieldName:t,...S})]})),d=Object.fromEntries(Object.entries(m(c)??{}).map(([t])=>{let n=i?`${i}.${t}`:t,o=a?`${a}.${t}`:t,l=p(r.value??{},t),u=p(s?.value??{},t),d=e(()=>c?.value?.[t]),f=p(h?.value??{},t);return[t,De({state:l,rulesDef:e(()=>({})),path:n,cachePath:o,externalErrors:u,schemaErrors:d,initialState:f,originalState:_?.[t],fieldName:t,...S})]})),f=Object.fromEntries(Object.entries(r.value??{}).filter(([e])=>!(e in n.value)&&!(e in(u??{}))&&!(e in(d??{}))).map(([t])=>{let n=p(r.value??{},t),o=p(s?.value??{},t),l=e(()=>c?.value?.[t]),u=p(h?.value??{},t);return[t,De({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,cachePath:a?`${a}.${t}`:t,externalErrors:o,schemaErrors:l,initialState:u,originalState:_?.[t],fieldName:t,...S})]}));P.value={...l,...u,...d,...f},t&&L()}function ee(){n.value.$self&&(M.value=Ce({state:r,rulesDef:e(()=>n.value.$self??{}),path:i,cachePath:a,externalErrors:d(void 0),schemaErrors:d(void 0),initialState:p(h?.value??{},`$self`),originalState:_?.$self,fieldName:`$self`,...S}))}let P=S.storage.getFieldsEntry(a);N(),ee();function F(){s&&(k=v(s,()=>{R(),N()},{deep:!0}))}function I(){A=v(r,()=>{R(),N(),w.$autoDirty.value&&!w.$silent.value&&V(!1,!0)},{flush:`post`})}function L(){o&&(E?.(),E=v(o,()=>{R(),N()},{deep:!0,flush:`pre`}),F()),l&&(D?.(),D=v(l,()=>{R(),N()},{deep:!0,flush:`post`})),I(),w=C.run(()=>{let a=e({get:()=>r.value,set(e){R(),r.value=e,N(),w.$autoDirty.value&&!w.$silent.value&&V(!1,!0)}}),o=e({get:()=>r.value,set(e){R(),r.value=e,N()}}),s=e(()=>{let e=P.value,t=Object.keys(e);if(!t.length)return!1;for(let n of t)if(!e[n]?.$dirty)return!1;return!0}),c=e(()=>{let e=P.value;for(let t in e)if(e[t]?.$anyDirty)return!0;return!1}),l=e(()=>{if(M.value?.$invalid)return!0;let e=P.value,t=Object.entries(e);if(!t.length)return!1;for(let[e,n]of t)if(n?.$invalid)return!0;return!1}),p=e(()=>{let e=Object.entries(P.value).reduce((e,[t,n])=>((!pe(n)||!n.$inactive)&&e.push([t,n]),e),[]),t=n.value.$self&&!O(n.value.$self);if(e.length||t){let t=M.value?.$correct??!0,n=!1;return n=S.schemaMode?e.every(([e,t])=>t.$correct):e.every(([e,t])=>pe(t)?`required`in t.$rules&&t.$rules.required.$active?t.$correct:!t.$invalid&&!t.$pending&&!t.$isDebouncing:t?.$correct),t&&n}return!1}),v=e(()=>{if(M.value?.$error)return!0;let e=P.value;if(!Object.keys(e).length)return!1;for(let t in e)if(e[t]?.$error)return!0;return!1}),x=e(()=>m(S.options.rewardEarly)==null?!1:m(S.options.rewardEarly)),C=e(()=>m(S.options.silent)==null?!!x.value:m(S.options.silent)===!0),E=e(()=>m(S.options.autoDirty)==null?!0:m(S.options.autoDirty)===!0),D=e(()=>m(S.options.immediateDirty)==null?!1:m(S.options.immediateDirty)===!0),k=e(()=>m(S.options.lazy)==null?!1:m(S.options.lazy)===!0),A=e(()=>m(S.options.clearExternalErrorsOnChange)==null?!1:m(S.options.clearExternalErrorsOnChange)===!0),j=e(()=>m(S.options.clearExternalErrorsOnValidate)==null?!1:m(S.options.clearExternalErrorsOnValidate)===!0),ee=e(()=>!(l.value||I.value)),F=d(!1),I=e(()=>{if(M.value?.$pending||F.value)return!0;let e=P.value;for(let t in e)if(e[t]?.$pending)return!0;return!1}),L=e(()=>{let e={...M.value&&{$self:M.value?.$issues??[]}};for(let t in P.value)e[t]=P.value[t]?.$issues;return e}),z=e(()=>{let e={...M.value&&{$self:M.value?.$errors??[]}};for(let t in P.value)e[t]=P.value[t]?.$errors;return e}),B=e(()=>{let e={...M.value&&{$self:M.value?.$silentErrors??[]}};for(let t in P.value)e[t]=P.value[t]?.$silentErrors;return e}),H=e(()=>{if(M.value?.$edited)return!0;if(!Object.keys(P.value).length)return!1;for(let e in P.value)if(!P.value[e]?.$edited)return!1;return!0}),U=e(()=>{if(M.value?.$anyEdited)return!0;for(let e in P.value)if(P.value[e]?.$anyEdited)return!0;return!1}),W=e(()=>b??S.options.id??`root`),G=e(()=>({autoDirty:E.value,lazy:k.value,rewardEarly:x.value,silent:C.value,clearExternalErrorsOnChange:A.value,clearExternalErrorsOnValidate:j.value,immediateDirty:D.value,id:m(S.options.id),disabled:m(S.options.disabled)}));function te(){S.shortcuts?.nested&&Object.entries(S.shortcuts.nested).forEach(([e,n])=>{let a=t();q[e]=a.run(()=>{let e=d();return y(()=>{e.value=n(u({$dirty:s,$path:i,$value:r,$silentValue:o,$error:v,$originalValue:_,$pending:I,$invalid:l,$correct:p,$ready:ee,$anyDirty:c,$name:W,$silentErrors:B,$initialValue:h,$errors:z,$fields:P,$edited:H,$anyEdited:U,$issues:L,$self:M,"~modifiers":g(S.options)}))}),e}),T.push(a)})}let K=e({get:()=>f?Object.fromEntries(Object.entries(f?.(P.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,ie(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,ae(t,e)]))}]:[])):{},set(){}}),q={};return te(),{$dirty:s,$anyDirty:c,$invalid:l,$correct:p,$error:v,$pending:I,$issues:L,$errors:z,$silentErrors:B,$clearExternalErrorsOnValidate:j,$ready:ee,$name:W,$shortcuts:q,$groups:K,$silentValue:o,$edited:H,$anyEdited:U,$localPending:F,$autoDirty:E,$silent:C,$value:a,$modifiers:G}})}function R(){if(E?.(),k?.(),A?.(),D?.(),T=[],w={},P.value)for(let e of Object.values(P.value))e?.$unwatch()}function z(){s&&!O(s.value)&&(s.value={})}function B(e,t){if(k?.(),R(),!t)if(e?.toOriginalState)r.value=j({..._}),h.value=j({..._});else if(e?.toInitialState)r.value=j({...h.value});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,h.value=j(t),r.value=j(t)}else h.value=j(r.value);if(!e?.keepValidationState){for(let t of Object.values(P.value))t?.$reset(e,!0);M.value?.$reset(e,!0)}e?.clearExternalErrors===!1&&z(),F(),t||N()}function V(e=!0,t=!1){for(let n of Object.values(P.value))n?.$touch(e,t);M.value?.$touch(e,t)}function H(e){return e.filter(([e,t])=>x(t)&&!de(t)?!(t&&typeof t==`object`&&`_null`in t)&&!O(t):Array.isArray(t)?t.length:!0)}function U(e=!0){let t=Object.entries(P.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=H(t)),Object.fromEntries(t)}function W(){for(let e of Object.values(P.value))e.$abort();M.value?.$abort()}async function G(e){try{if(e&&(r.value=e),S.schemaMode)return S.onValidate?(V(!1),w.$localPending.value=!0,S.onValidate()):{valid:!1,data:r.value,errors:w.$errors.value,issues:w.$issues.value};{let e=r.value;W(),w.$clearExternalErrorsOnValidate.value&&z();let t=[...Object.values(P.value).map(e=>e.$validate()),...M.value?[M.value?.$validate()]:[]];return{valid:(await Promise.allSettled(t)).every(e=>e.status===`fulfilled`&&e?.value?.valid===!0),data:e,errors:w.$errors.value,issues:w.$issues.value}}}catch{return{valid:!1,data:r.value,errors:w.$errors.value,issues:w.$issues.value}}finally{w.$localPending.value=!1}}function te(e){try{return e&&(r.value=e),w.$clearExternalErrorsOnValidate.value&&z(),[...Object.values(P.value).map(e=>e.$validateSync()),...M.value?[M.value?.$validateSync()]:[]].every(e=>!!e)}catch{return!1}}let{$shortcuts:K,$localPending:q,...J}=w,Y=u({...J,...K,$path:i,$initialValue:h,$originalValue:_,$self:M,$externalErrors:s,$fields:P,$reset:B,$touch:V,$validate:G,$unwatch:R,$watch:L,$clearExternalErrors:z,$extractDirtyFields:U,$abort:W,$validateSync:te,...o?{"~modifiers":w.$modifiers}:{},...Se(G)});return Object.defineProperty(Y,Symbol.for(`regle:instance`),{value:!0}),y(()=>{for(let e of Object.keys(Y).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete Y[e];for(let e of Object.values(P.value))e?.$name&&Object.assign(Y,{[e.$name]:e})}),Y}function De({rulesDef:e,...n}){if(ce(e,n.state))return Te({rulesDef:e,...n});if(se(n.state,e)){if(G(n.state))return Ee({rulesDef:e,...n});{let r=t().run(()=>{let e=p(n.state.value?n.state:d({}));return v(()=>n.state.value,t=>{e.value=t},{deep:!0}),v(e,e=>{n.state.value=e},{deep:!0}),{fakeState:e}}),{state:i,...a}=n;return Ee({rulesDef:e,...a,state:r.fakeState})}}else if(le(e))return Ce({rulesDef:a(e.value)?e.value:e,...n})}function Oe({initialState:e,originalState:t,options:n,scopeRules:i,state:a,customRules:o,shortcuts:c,schemaErrors:u,schemaMode:f=!1,onValidate:p,overrides:h}){let g=he(),_=d(),y=d(),b,x,S;function C(){S=v(()=>m(n.disabled),async e=>{e?O():(D(),T())})}function T(){b=v(()=>n.externalErrors?.value,()=>{x?.(),n.externalErrors?.value&&Object.keys(n.externalErrors.value).some(e=>e.includes(`.`))?y.value=w(n.externalErrors.value):y.value=n.externalErrors?.value,E()},{immediate:!0,deep:!0})}function E(){x=v(()=>y.value,()=>{b?.(),n.externalErrors?.value&&(n.externalErrors.value=y.value),T()},{deep:!0})}function D(){se(a,i)?_.value=Ee({rootRules:i,rulesDef:i,state:a,customMessages:o?.(),storage:g,options:n,externalErrors:y,validationGroups:n.validationGroups,initialState:e,originalState:t,shortcuts:c,fieldName:void 0,path:``,cachePath:``,schemaErrors:u,rootSchemaErrors:u,schemaMode:f,onValidate:p,overrides:h}):le(i)&&(_.value=Ce({rulesDef:i,state:a,customMessages:o?.(),storage:g,options:n,externalErrors:y,initialState:e,originalState:t,shortcuts:c,fieldName:void 0,path:``,cachePath:``,schemaMode:f,schemaErrors:u,onValidate:p,overrides:h}))}D(),m(n.disabled)?s().then(()=>{_.value?.$unwatch()}):T(),C();function O(){_.value?.$unwatch(),x?.(),b?.()}return r()&&l(()=>{O(),S?.()}),_}function ke({state:t,rulesFactory:n,options:r,globalOptions:o,customRules:s,shortcuts:c,overrides:l}){let u=a(n)?n:typeof n==`function`?void 0:e(()=>n),p=i(Z,void 0)??{},m={...p.modifiers,...o},g=()=>({...p.rules?.(),...s?.()}),_={...p.shortcuts,...c},v={...p.overrides,...l},b={...m,...r},S,C=f(u??{});typeof n==`function`&&(S=y(()=>{C.value=n(t),h(C)}));let w=d(x(t.value)?{...j(t.value)}:j(t.value)),T=x(t.value)?{...j(t.value)}:j(t.value);return ne(()=>{S?.()}),Oe({scopeRules:C,state:t,options:b,initialState:w,originalState:T,customRules:g,shortcuts:_,overrides:v})}function Ae(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s,c){let l=a(t)?t:d(t),u=e(()=>m(c?.disabled)??!1);return{r$:I(ke({state:l,rulesFactory:s,options:c,globalOptions:r,customRules:n,shortcuts:i,overrides:o}),u)}}return s}const je=Ae();function Me(){function e(e,t){return t}return e}const Ne=Me();function Pe(e,t){return S(m(e).$errors,String(t))}function Fe(e,t){return S(m(e).$issues,String(t))}function Ie(e){let t={};if(Object.entries(e).some(([e,t])=>$(t)||typeof t==`function`))return null;for(let n in e){let r=e[n];r&&x(r)&&`$each`in r&&r.$each&&x(r.$each)?t[n]=[Ie(r.$each)]:x(r)&&!O(r)&&!Object.entries(r).some(([e,t])=>$(t)||typeof t==`function`)?t[n]=Ie(r):t[n]=null}return t}function Le(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s){let c=a(t)?t:typeof t==`function`?void 0:e(()=>t),l=d(Ie(c?.value)),u=e(()=>m(s?.disabled)??!1);return I(ke({state:l,rulesFactory:c,options:s,globalOptions:r,customRules:n,shortcuts:i,overrides:o}),u)}return s}const Re=Le();function ze(e){if(D(e)){let t=e,n=class extends t{constructor(...e){return super(...e),Be(this)}};return Object.defineProperty(n,`name`,{value:t.name}),Be(n)}return Be(e)}function Be(e){return!T(e,Q.REGLE_STATIC)&&Object.isExtensible(e)&&E(e,Q.REGLE_STATIC,!0),e}function Ve({rules:e,modifiers:t,shortcuts:n,overrides:r}){let i=Ae({rules:e,modifiers:t,shortcuts:n,overrides:r}),a=Le({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:Me(),useRules:a}}function He(e,{rules:t,modifiers:n,shortcuts:r,overrides:i}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?C(a.modifiers,n):a.modifiers??n,c=a.shortcuts&&r?C(a.shortcuts,r):a.shortcuts??r,l=a.overrides&&i?C(a.overrides,i):a.overrides??i,u=Ae({rules:o,modifiers:s,shortcuts:c,overrides:l});return u.__config={rules:o,modifiers:s,shortcuts:c,overrides:l},{useRegle:u,inferRules:Me()}}function Ue(e){return e}function We(t,n){let r=n??!1,i=e({get:()=>r?Object.values(t).map(e=>e.$value):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$value])),set:e=>{r||typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$value=n)}}),a=e({get:()=>Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentValue])),set:e=>{typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$silentValue=n)}}),o=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$dirty)}),s=e(()=>Object.entries(t).some(([e,t])=>t?.$anyDirty)),c=e(()=>Object.entries(t).some(([e,t])=>t?.$invalid)),l=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$correct||t.$anyDirty&&!t.$invalid)}),d=e(()=>Object.entries(t).some(([e,t])=>t?.$error)),f=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$ready)}),p=e(()=>Object.entries(t).some(([e,t])=>t?.$pending)),m=e(()=>r?Object.entries(t).map(([e,t])=>t.$issues):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$issues]))),h=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentIssues):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentIssues]))),g=e(()=>r?Object.entries(t).map(([e,t])=>t.$errors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$errors]))),_=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentErrors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentErrors]))),v=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$edited)}),b=e(()=>Object.entries(t).some(([e,t])=>t?.$anyEdited)),x=e(()=>r?Object.values(t):t);function S(e){Object.values(t).forEach(t=>{t.$reset(e)})}function C(){Object.values(t).forEach(e=>{e.$touch()})}function w(e=!0){return Object.values(t).map(t=>t.$extractDirtyFields(e))}function T(){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=u({...!r&&{$silentValue:a},$errors:g,$issues:m,$silentIssues:h,$silentErrors:_,$instances:x,$value:i,$dirty:o,$anyDirty:s,$invalid:c,$correct:l,$error:d,$pending:p,$ready:f,$edited:v,$anyEdited:b,$reset:S,$touch:C,$validate:E,$extractDirtyFields:w,$clearExternalErrors:T});return y(()=>{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 Ge(t,n){function r(r){let i=e(()=>m(r)),a=u({});c();let o=d(l(t.value)),s=u({r$:o});function c(){i.value&&(typeof i.value==`string`&&!t.value[i.value]?t.value[i.value]={}:Array.isArray(i.value)&&i.value.forEach(e=>{t.value[e]||(t.value[e]={})}))}v(i,c),v(t,e=>{o.value=l(e)},{deep:!0});function l(e){return i.value?typeof i.value==`string`?We(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})})}),We(a,!n.asRecord)):We(e[`~~global`]??{},!n.asRecord)}return{r$:s.r$}}return{useCollectScope:r}}function Ke(t,r){let i=r??je;return{useScopedRegle:((r,a,o)=>{let{namespace:s,scopeKey:l,id:u,...f}=o??{};i.__config??={};let p=e(()=>u??l),h=e(()=>m(s)),g=d(`${Object.keys(t.value).length+1}-${X()}`),_=e(()=>p.value??`instance-${g.value}`),{r$:y}=i(r,a,{...f,id:p.value});x(),ne(b),v(h,(e,t)=>{b(t),x()}),n()&&c(()=>{let e=n();typeof window<`u`&&e?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(e?.proxy?.$el?.parentElement)&&b()});function b(e){let n=e??h.value;n?t.value[n]&&delete t.value[n][_.value]:t.value[`~~global`][_.value]&&delete t.value[`~~global`][_.value]}function x(){h.value?(t.value[h.value]||(t.value[h.value]={}),t.value[h.value][_.value]=y):(t.value[`~~global`]||(t.value[`~~global`]={}),t.value[`~~global`][_.value]=y)}return{r$:y,dispose:b,register:x}})}}function qe(e){let t=(e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):re(()=>d({"~~global":{}})))(),{useScopedRegle:n}=Ke(t,e?.customUseRegle),{useCollectScope:r}=Ge(t,{asRecord:e?.asRecord});return{useScopedRegle:n,useCollectScope:r}}const{useCollectScope:Je,useScopedRegle:Ye}=qe(),Xe=Je,Ze=Ye;function Qe(t,n,r){let i=e(()=>m(t)[n]);return e(()=>r.find(e=>{if(e[n]&&`literal`in e[n]){let t=e[n].literal;if($(t))return m(t._params?.[0])===i.value}})||r.find(e=>x(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`))||{})}function $e(e,t,n){return!!e&&t in e&&x(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function et(e,t,n,r){let i=a(e)?p(e.value,`$fields`):p(e,`$fields`),o=d();return v(i,async()=>{await s(),$e(i.value,t,n)?o.value=p(e).value:o.value=void 0},{immediate:!0,flush:`pre`}),o}function tt(e){return e}function nt(e,t){return n=>C({...e},t(n))}const rt={install(e,t){e.provide(oe,me),t&&e.provide(Z,t)}};export{L as InternalRuleType,rt as RegleVuePlugin,H as createRule,qe as createScopedUseRegle,Qe as createVariant,Ve as defineRegleConfig,Ue as defineRegleOptions,tt as defineRules,He as extendRegleConfig,ye as flatErrors,Pe as getErrors,Fe as getIssues,Ne as inferRules,W as isRegleInstance,ze as markStatic,We as mergeRegles,$e as narrowVariant,nt as refineRules,R as unwrapRuleParameters,Xe as useCollectScope,je as useRegle,Oe as useRootStorage,Re as useRules,Ze as useScopedRegle,et as variantToRef};
|
|
7
|
+
import{computed as e,effectScope as t,getCurrentInstance as n,getCurrentScope as r,inject as i,isRef as a,markRaw as o,nextTick as s,onMounted as c,onScopeDispose as l,reactive as u,ref as d,shallowRef as f,toRef as p,toValue as m,triggerRef as h,unref as g,version as _,watch as v,watchEffect as y}from"vue";function b(e){return e?.constructor?.name==`File`}function x(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function S(e,t,n){if(!e)return n;var r,i;if(Array.isArray(t)&&(r=t.slice(0)),typeof t==`string`&&(r=t.split(`.`)),typeof t==`symbol`&&(r=[t]),!Array.isArray(r))throw Error(`props arg must be an array, a string or a symbol`);for(;r.length;)if(i=r.shift(),!e||!i||(e=e[i],e===void 0))return n;return e}function C(e,...t){for(var n=[].slice.call(arguments),r,i=n.length;r=n[i-1],i--;)if(!r||typeof r!=`object`&&typeof r!=`function`)throw Error(`expected object, got `+r);for(var a=n[0],o=n.slice(1),s=o.length,i=0;i<s;i++){var c=o[i];for(var l in c)a[l]=c[l]}return a}function w(e){let t={};for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n],i=n.split(`.`),a=t;for(let e=0;e<i.length;e++){let t=i[e],n=e===i.length-1,o=t.match(/^\d+$/)?Number(t):null;if(o!==null){if(Array.isArray(a))if(n)a[o]=r;else{if(typeof a[o]!=`object`||a[o]===null){let t=i[e+1];a[o]=t&&t.match(/^\d+$/)?{$each:[],$self:[]}:{}}a=`$each`in a[o]?a[o].$each:a[o]}}else if(n)if(Array.isArray(a[t])){let e=a[t].slice();a[t]={},a[t].$self=e}else typeof a[t]==`object`&&a[t]!==null&&`$each`in a[t]?a[t].$self=r:a[t]=r;else{let n=i[e+1];if(Array.isArray(a[t])){let e=a[t].slice();a[t]={$each:[]},a[t].$self=e}(typeof a[t]!=`object`||a[t]===null||Array.isArray(a[t])&&!n.match(/^\d+$/))&&(n&&n.match(/^\d+$/)?a[t]={$each:[],$self:[]}:a[t]={}),a=`$each`in a[t]?a[t].$each:a[t]}}}return t}function T(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function E(e,t,n,r=!1){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})}function D(e){return typeof e==`function`&&!!e.prototype&&`constructor`in e.prototype&&e.prototype.constructor===e}function O(e,t=!0,n=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):b(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:x(e)?e==null?!0:n?Object.keys(e).length===0:!1:!String(e).length}const k=Symbol(`regle-rule`);function A(e){let t=[];return e.global&&t.push(`g`),e.ignoreCase&&t.push(`i`),e.multiline&&t.push(`m`),e.sticky&&t.push(`y`),e.unicode&&t.push(`u`),t.join(``)}function j(e,t=0){if(t>20)return e;let n=e,r={}.toString.call(e).slice(8,-1);if(r==`Set`&&(n=new Set([...e].map(e=>j(e,t++)))),r==`Map`&&(n=new Map([...e].map(e=>[j(e[0]),j(e[1])]))),r==`Date`&&(n=new Date(e.getTime())),r==`RegExp`&&(n=RegExp(e.source,A(e))),r==`Array`||r==`Object`){n=Array.isArray(e)?[]:{};for(let r in e)n[r]=j(e[r],t++)}return n}function M(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e==`object`&&t===`[object Date]`?new Date(e.getTime()):typeof e==`number`||t===`[object Number]`||typeof e==`string`||t===`[object String]`?new Date(e):new Date(NaN)}function N(e,t,{immediate:n=!1,trackDebounceRef:r}={}){let i,a=(...a)=>{r&&(r.value=!0);function o(){r&&(r.value=!1)}return new Promise((r,s)=>{function c(e){r(e),o()}if(clearTimeout(i),i=setTimeout(()=>{if(o(),i=void 0,!n)try{Promise.resolve(e.apply(this,[...a])).then(c).catch(e=>s(e)).finally(o)}catch(e){s(e)}},t),n){o();try{Promise.resolve(e.apply(this,[...a])).then(c).catch(e=>s(e)).finally(o)}catch(e){s(e)}}})};return a.cancel=()=>{clearTimeout(i),i=void 0,r&&(r.value=!1)},a}function ee(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(!ee(e[a],t[a],n,!1))return!1}return!0}if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(o=Object.keys(e),i=o.length,i!==Object.keys(t).length)return!1;for(a=i;a--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[a]))return!1;for(a=i;a--!==0;){var s=o[a];if(x(e)&&x(t)&&s&&(r||!r&&n)&&!ee(e[s],t[s],n,!1))return!1}return!0}return e!==e&&t!==t}var P=class extends Error{constructor(e=`Promise was aborted`){super(e),this.name=`AbortError`}};function F(e){let t=new AbortController,{signal:n}=t,r=new Promise((t,r)=>{function i(){r(new P)}n.addEventListener(`abort`,i),e.then(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new P):t(e)}).catch(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new P):r(e)})});function i(e){t.abort(e)}return{promise:r,abort:i,signal:n}}function I(e,t){if(!a(e))return u(e);let n=d(!1);return c(async()=>{await s(),typeof window<`u`&&window.requestAnimationFrame(()=>{n.value=!0})}),u(new Proxy({},{get(r,i,a){if(t.value&&i!==`$value`&&n.value)return Reflect.get(r,i,a);if(e.value!==void 0)return g(Reflect.get(e.value,i,a))},set(t,n,r){return a(e.value[n])&&!a(r)?e.value[n].value=r:e.value[n]=r,!0},deleteProperty(t,n){return Reflect.deleteProperty(e.value,n)},has(t,n){return e.value===void 0?!1:Reflect.has(e.value,n)},ownKeys(){return e.value===void 0?[]:Object.keys(e.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}}))}const L={Inline:`__inline`,Async:`__async`};function R(e){try{return e.map(e=>m(e))}catch{return[]}}function z(t){return t.map(t=>t instanceof Function?e(t):a(t)?t:p(()=>t))}function B(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 V(e,...t){let{validator:n,type:r,async:i}=e,a=i||r===L.Async||n.constructor.name===`AsyncFunction`;return o({validator(n,...r){return e.validator(n,...R(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:R(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:R(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:R(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...R(t)),i;return r instanceof Promise?r.then(e=>(i=e,typeof i==`object`&&`$valid`in i?i.$valid:typeof i==`boolean`?i:!1)):(i=r,typeof i==`object`&&`$valid`in i?i.$valid:typeof i==`boolean`?i:!1)},type:r,_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:a,_params:z(t),_brand:k})}function H(e){if(typeof e.validator==`function`){let t=[],n=e.async??e.validator.constructor.name===`AsyncFunction`,r=V({...e,async:n},...t);if(B(e.validator)>1){let t=function(...t){return V(e,...t)};return t.validator=r.validator,t.message=r.message,t.active=r.active,t.tooltip=r.tooltip,t.type=r.type,t.exec=r.exec,t._validator=r.validator,t._message=r.message,t._active=r.active,t._tooltip=r.tooltip,t._type=e.type,t._message_pacthed=!1,t._tooltip_pacthed=!1,t._async=n,t}else return r}throw Error(`[createRule] validator must be a function`)}const U=Symbol.for(`regle:instance`);function W(e){return typeof e==`object`&&!!e&&U in e}function G(e){return x(e.value)}function te(e,n,r){let i=t(),a;return a=e instanceof Function?i.run(()=>e(n,r??0)):e,{scope:i,unwrapped:a}}const K={LessThan:-1,EqualTo:0,GreaterThan:1};function q(e,t){let n=String(e).split(`.`),r=String(t).split(`.`);for(let e=0;e<Math.min(n.length,r.length);e++){let t=Number(n[e]),i=Number(r[e]);if(t>i)return K.GreaterThan;if(i>t)return K.LessThan;if(!isNaN(t)&&isNaN(i))return K.GreaterThan;if(isNaN(t)&&!isNaN(i))return K.LessThan}return K.EqualTo}const J=q(_,`3.5.0`)!==-1;function Y(){return Math.floor(Math.random()*Date.now()).toString()}function X(){return typeof window>`u`?Y():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function ne(e){return r()?(l(e),!0):!1}function re(e){let n=!1,r,i=t(!0);return((...t)=>(n||=(r=i.run(()=>e(...t)),!0),r))}function ie(e,t){return e.some(e=>t?e?.[t]:!1)}function ae(e,t){return t?e.reduce((e,n)=>{let r=n?.[t]||[];return e.concat(r)},[]):[]}const oe=Symbol(`regle`),Z=Symbol(`regle-config`),Q={REGLE_STATIC:`__regle_static`};function se(e,t){return!de(e.value)&&(G(e)||x(t.value)&&!O(t.value)&&!Object.entries(t.value).some(([e,t])=>$(t)||typeof t==`function`))}function ce(e,t){return!!e.value&&x(e.value)&&`$each`in e.value||Array.isArray(t.value)}function le(e){return!!e.value&&(x(e.value)||G(e.value))}function $(e){return(x(e)||typeof e==`function`)&&`_validator`in e}function ue(e){return typeof e.value==`function`?`_validator`in e.value:!0}function de(e){return x(e)&&T(e,Q.REGLE_STATIC)&&e[Q.REGLE_STATIC]===!0}function fe(e){return x(e)&&`$fields`in e}function pe(e){return!!e&&`$rules`in e}var me=`1.20.0-preview.1`;function he(){let e=f(new Map),t=f(new Map),n=f(new Map),i=f(new Map),a=f(new Map),o=f(new Map),s=f(new Map);function c(e){let n=t.value.get(e);if(n)return n;{let n=d({});return t.value.set(e,n),n}}function u(e){let t=n.value.get(e);if(t)return t;{let t=d([]);return n.value.set(e,t),t}}function p(e,t){o.value.set(e,t)}function m(e){return o.value.get(e)}function h(e,t,n){s.value.set(`${e}-${t}`,n)}function g(e,t){return s.value.get(`${e}-${t}`)}function _(e,t){e&&t!=null&&s.value.delete(`${e}-${t}`)}function v(e,t){i.value.set(e,t)}function y(e){return i.value.get(e)??!1}function b(t,n){e.value.set(t,n)}function x(t,n){let r=e.value.get(t);if(r)return S(n,r)?{valid:!0}:{valid:!1}}function S(e,t){let n=Object.keys(t),r=Object.keys(e);return r.length!==n.length||!r.every(e=>n.includes(e))?!1:r.every(n=>{let r=e[n],i=t[n];if(!i||!r||typeof r==`function`||typeof i==`function`||typeof r==`number`||typeof r==`boolean`||typeof r==`string`)return!1;if(`_params`in r){if(!r._params)return!0;if(Array.isArray(r._params))return r._params?.every((e,t)=>{if(typeof i==`number`||typeof i==`boolean`||typeof i==`string`)return!0;{let e=R(`_params`in i&&Array.isArray(i._params)?i._params:[]),n=R(r._params);return e?.[t]===n?.[t]}})}})}function C(e){let t=a.value.get(e);if(t)return t;{let t=d(!1),n=d(!0),r=d({}),i=d(!1);return a.value.set(e,{$pending:t,$valid:n,$metadata:r,$validating:i}),{$pending:t,$valid:n,$metadata:r,$validating:i}}}return r()&&l(()=>{e.value.clear(),t.value.clear(),n.value.clear(),i.value.clear(),a.value.clear(),s.value.clear()}),{addRuleDeclEntry:b,setDirtyEntry:v,checkRuleDeclEntry:x,getDirtyState:y,trySetRuleStatusRef:C,getFieldsEntry:c,getCollectionsEntry:u,getArrayStatus:g,addArrayStatus:h,deleteArrayStatus:_,arrayStatusStorage:s,addAdditionalRulesEntry:p,getAdditionalRulesEntry:m}}function ge({field:e,silent:t=!1}){let n=Object.entries(e.$rules??{}).map(([n,r])=>{let i=``;if(t&&!r.$valid)i=r.$message;else if(!r.$valid&&e.$error&&!r.$validating)i=r.$message;else return null;return{$message:i,$property:e.fieldName,$rule:n,$type:r.$type,...typeof r.$metadata==`object`?r.$metadata:{}}}).filter(e=>!!e).reduce((e,t)=>(typeof t.$message==`string`?e.push(t):e.push(...t.$message.map(e=>({...t,$message:e}))),e),[]),r=e.$error&&e.$externalErrors?e.$externalErrors.map(t=>({$message:t,$property:e.fieldName,$rule:`external`,$type:void 0})):[],i=[];return e.$schemaErrors&&e.$error&&(i=!Array.isArray(e.$schemaErrors)&&`$self`in e.$schemaErrors?e.$schemaErrors.$self??[]:e.$schemaErrors??[]),[...n,...r,...i]}function _e({field:e}){let t=[];for(let n of Object.values(e.$rules??{})){let e=n.$tooltip;e&&(typeof e==`string`?t.push(e):t.push(...e))}return t}function ve(e){return x(e)&&`$each`in e}function ye(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!x(e)))return e;if(ve(e)){let t=n?e.$self?.map(e=>({message:e,path:[]}))??[]:e.$self??[],r=e.$each?.map(e=>be(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>be(t,n,[e])).flat()}function be(e,t=!1,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(e=>!x(e)))return t?e.map(e=>({message:e,path:r??[]})):e;if(ve(e)){let n=r?.length?e.$self?.map(e=>({message:e,path:r??[]}))??[]:e.$self??[],i=e.$each?.map((e,n)=>be(e,t,r?.concat(n)))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>be(n,t,r?.concat(e))).flat()}function xe({customMessages:n,rule:r,ruleKey:i,state:a,path:o,cachePath:s,storage:c,modifiers:l}){let f=t(),p={},m,h=e(()=>$(r.value)&&r.value._async),g=d(!1),{$pending:_,$valid:y,$metadata:b,$validating:x}=c.trySetRuleStatusRef(`${s}.${i}`);function S(){f=t(),p=f.run(()=>{let t=d(!1),s=d(!1),c=d(!0),l=d(!1),u=d(!1),f=e(()=>({$value:a.value,$error:s.value,$dirty:t.value,$pending:l.value,$correct:u.value,$invalid:c.value,$rule:{$valid:y.value,$invalid:!y.value,$pending:_.value},$params:S.value,...b.value})),p=e(()=>{try{return ue(r)?typeof r.value.active==`function`?r.value.active(f.value):!!r.value.active:!0}catch(e){return console.error(`Error in "active" function for "${o}.${i}" rule`,{cause:e}),!0}});function m(e){try{let t=``,a=n?n[i]?.[e]:void 0;if(a&&(t=typeof a==`function`?a(f.value):a),ue(r)){let n=`_${e}_patched`;a&&!r.value[n]||(t=typeof r.value[e]==`function`?r.value[e](f.value):r.value[e]??``)}return t}catch(t){return console.error(`Error in "${e}" function for "${o}.${i}" rule`,{cause:t}),``}}let h=e(()=>{let e=m(`message`);return O(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),v=e(()=>ue(r)&&r.value.type?r.value.type:i),x=e(()=>ue(r)?r.value.validator:r.value),S=e(()=>typeof r.value==`function`?[]:R(r.value._params??[]));return{$active:p,$message:h,$type:v,$validator:x,$params:S,$path:e(()=>`${o}.${i}`),$tooltip:g,$fieldCorrect:u,$fieldError:s,$fieldDirty:t,$fieldPending:l,$fieldInvalid:c}}),m=v(p?.$params,()=>{(!l.$silent.value||l.$rewardEarly.value&&p.$fieldError.value)&&E()},{deep:J?1:!0})}S();function C(){y.value=!0,p.$fieldDirty.value&&(_.value=!0)}async function w(){let e=!1;try{let t=p.$validator.value;if(typeof t!=`function`)return console.error(`${o}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let n=t(a.value,...p.$params.value),r=a.value;C();let i;if(i=n instanceof Promise?await n:n,a.value!==r)return!0;if(typeof i==`boolean`)e=i;else{let{$valid:t,...n}=i;e=t,b.value=n}}catch{e=!1}finally{_.value=!1}return e}function T(e,t=!0){if($(r.value)&&r.value._async)return!0;let n=e(a.value,...p.$params.value);if(n instanceof Promise)return!0;if(n!=null){if(typeof n==`boolean`)return n;{let{$valid:e,...t}=n;return b.value=t,e}}return!0}async function E(){try{x.value=!0;let e=!1;if(g.value=!0,$(r.value)&&r.value._async)e=await w();else{let t=p.$validator.value;e=T(t)}return y.value=e,e}catch{return!1}finally{x.value=!1,g.value=!1}}function D(){try{return x.value=!0,T(p.$validator.value)}catch{return!1}finally{x.value=!1}}function k(){y.value=!0,b.value={},_.value=!1,x.value=!1,S()}function A(){m(),f.stop(),f=t()}return u({...p,$pending:_,$valid:y,$metadata:b,$haveAsync:h,$maybePending:g,$validating:x,$parse:E,$parseSync:D,$unwatch:A,$watch:S,$reset:k})}function Se(e){return{"~standard":{version:1,vendor:`regle`,validate:async t=>{let{valid:n,data:r,errors:i}=await e(t,!0);return n?{value:r,issues:[]}:{issues:ye(i,{includePath:!0})}}}}}function Ce({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,fieldName:c,storage:l,options:f,externalErrors:h,schemaErrors:g,schemaMode:_,onUnwatch:b,$isArray:S,initialState:C,originalState:w,shortcuts:T,overrides:E,onValidate:D}){let k=t(),A,P=[],I,L,R,z,B=()=>{},V,H=()=>{},U=d(!1),W=d(l.getAdditionalRulesEntry(o)??{});function G(e){W.value=e??{},l.addAdditionalRulesEntry(o,e??{}),K(),B()}function te(e){G(e)}function K(){let e={...r.value,...W.value},t=[];for(let r in e){if(r.startsWith(`$`)||r.startsWith(`~`))continue;let s=e[r];if(!s)continue;let c=p(()=>s);t.push([r,xe({modifiers:{$silent:A.$silent,$rewardEarly:A.$rewardEarly},customMessages:i,rule:c,ruleKey:r,state:n,path:a,cachePath:o,storage:l,$debounce:Q.value.$debounce})])}Z.value=Object.fromEntries(t),l.addRuleDeclEntry(o,e)}function q(){let e={...r.value,...W.value},t=l.checkRuleDeclEntry(o,e),n={};for(let t in e)t.startsWith(`$`)&&(n[t]=e[t]);return Q.value=n,t}function Y(){let e=q();ie(),K(),A.processShortcuts(),X(),ne(),e?.valid!=null&&(A.$dirty.value=l.getDirtyState(o),(A.$dirty.value&&!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&B()),l.addRuleDeclEntry(o,r.value)}function X(){B=A.$debounce.value>0?N(oe,A.$debounce.value,{trackDebounceRef:U}):oe}function ne(){H=A.$debounce.value>0?N(()=>{A.$dirty.value=!0},A.$debounce.value):()=>{A.$dirty.value=!0}}function re(){if(Z.value)for(let e of Object.values(Z.value))e.$unwatch();L(),z?.(),A.$dirty.value&&l.setDirtyEntry(o,A.$dirty.value),I?.(),k.stop(),k=t();for(let e of P)e.stop();P=[],b?.(),R?.()}function ie(){if(Z.value)for(let e of Object.values(Z.value))e.$watch();A=k.run(()=>{let r=d(!1),i=d(!1),a=e(()=>r.value),o=e(()=>S||de(n.value)),s=e(()=>Q.value.$debounce==null?A.$haveAnyAsyncRule.value?200:0:Q.value.$debounce),l=e(()=>Q.value.$deepCompare==null?!1:Q.value.$deepCompare),p=e(()=>Q.value.$lazy==null?m(f.lazy)==null?!1:m(f.lazy)===!0:Q.value.$lazy),v=e(()=>Q.value.$immediateDirty==null?m(f.immediateDirty)==null?!1:m(f.immediateDirty)===!0:Q.value.$immediateDirty),b=e(()=>Q.value.$rewardEarly==null?m(f.rewardEarly)==null?!1:m(f.rewardEarly)===!0:!!Q.value.$rewardEarly),x=e(()=>Q.value.$clearExternalErrorsOnChange==null?m(f.clearExternalErrorsOnChange)==null?!D.value:m(f.clearExternalErrorsOnChange)===!0:!!Q.value.$clearExternalErrorsOnChange),w=e(()=>Q.value.$clearExternalErrorsOnValidate==null?m(f.clearExternalErrorsOnValidate)==null?!1:m(f.clearExternalErrorsOnValidate)===!0:!!Q.value.$clearExternalErrorsOnValidate),D=e(()=>b.value?!0:Q.value.$silent==null?m(f.silent)==null?!1:m(f.silent)===!0:Q.value.$silent),k=e(()=>Q.value.$autoDirty==null?m(f.autoDirty)==null?!0:m(f.autoDirty)===!0:Q.value.$autoDirty),j=e(()=>{if(Q.value.$isEdited!=null)return Q.value.$isEdited;if(E?.isEdited!=null)return E.isEdited}),N=e(()=>{for(let e of Object.values(Z.value))if(e.$validating)return!0;return!1}),F=e({get:()=>n.value,set(e){I(),n.value=e,ae()}}),L=e(()=>U.value?J.value&&r.value:J.value&&!q.value&&r.value),R=e(()=>ge({field:{$rules:Z.value,$error:L.value,$externalErrors:h?.value,$schemaErrors:g?.value,fieldName:Y.value}})),z=e(()=>ge({field:{$rules:Z.value,$error:L.value,$externalErrors:h?.value,$schemaErrors:g?.value,fieldName:Y.value},silent:!0})),B=e(()=>R.value.map(e=>e.$message)),V=e(()=>z.value.map(e=>e.$message)),H=d(!1);function W(e,t){return t instanceof Date&&e instanceof Date?M(t).getDate()!==M(e).getDate():t==null?!!e:Array.isArray(e)&&Array.isArray(t)?!ee(e,t,Q.value.$deepCompare):t!==e}y(()=>{r.value?j.value?H.value=j.value(n.value,C.value,W):H.value=W(n.value,C.value):H.value=!1});let G=e(()=>H.value),te=e(()=>_e({field:{$rules:Z.value}})),K=e(()=>!(J.value||q.value)),q=e(()=>i.value||!b.value?Object.entries(Z.value).some(([e,t])=>t.$pending):!1),J=e(()=>h?.value?.length||g?.value?.length?!0:X.value?!1:Object.values(Z.value).some(e=>!e.$valid||e.$maybePending)),Y=e(()=>c??f.id??`root`),X=e(()=>!_&&!Object.keys(Z.value).some(e=>!e.startsWith(`$`))),ne=e(()=>{if(h?.value?.length||X.value||U.value)return!1;if(r.value&&!O(n.value)&&!N.value&&!q.value){if(_)return!g?.value?.length;{let e=Object.values(Z.value);for(let t of e)if(t.$active&&!t.$valid)return!1;return e.some(e=>e.$active)}}return!1}),re=e(()=>Object.values(Z.value).some(e=>e.$haveAsync)),ie=e(()=>({$debounce:s.value,$lazy:p.value,$rewardEarly:b.value,$autoDirty:k.value,$silent:D.value,$clearExternalErrorsOnChange:x.value,$clearExternalErrorsOnValidate:w.value,$immediateDirty:v.value,$isEdited:j.value,$disabled:m(f.disabled)??!1}));function oe(){T?.fields&&Object.entries(T.fields).forEach(([e,i])=>{let o=t();se[e]=o.run(()=>{let e=d();return y(()=>{e.value=i(u({$dirty:r,$externalErrors:h?.value??[],$value:n,$silentValue:F,$rules:Z,$error:L,$pending:q,$invalid:J,$correct:ne,$errors:B,$ready:K,$silentErrors:V,$anyDirty:a,$tooltips:te,$name:Y,$inactive:X,$edited:H,$anyEdited:G}))}),e}),P.push(o)})}let se={};return{$error:L,$pending:q,$invalid:J,$correct:ne,$debounce:s,$deepCompare:l,$lazy:p,$immediateDirty:v,$ready:K,$issues:R,$silentIssues:z,$errors:B,$silentErrors:V,$rewardEarly:b,$autoDirty:k,$silent:D,$clearExternalErrorsOnChange:x,$clearExternalErrorsOnValidate:w,$anyDirty:a,$edited:H,$anyEdited:G,$name:Y,$haveAnyAsyncRule:re,$shortcuts:se,$validating:N,$tooltips:te,$dirty:r,processShortcuts:oe,$silentValue:F,$inactive:X,$modifiers:ie,$isArrayOrRegleStatic:o}}),ae(),L=v(A.$dirty,e=>{l.setDirtyEntry(o,e),Object.values(Z.value).forEach(t=>{t.$fieldDirty=e})}),z=v([A.$error,A.$correct,A.$invalid,A.$pending],()=>{Object.values(Z.value).forEach(e=>{e.$fieldError=A.$error.value,e.$fieldInvalid=A.$invalid.value,e.$fieldPending=A.$pending.value,e.$fieldCorrect=A.$correct.value})}),R=v(A.$haveAnyAsyncRule,X)}function ae(){I=v(n,()=>{A.$autoDirty.value&&!A.$silent.value&&(A.$dirty.value||H()),r.value instanceof Function&&Y(),(!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&B(),A.$clearExternalErrorsOnChange.value&&he()},{deep:A.$isArrayOrRegleStatic.value?!0:J?1:!0})}async function oe(){try{let{promise:e}=le(Promise.allSettled(Object.values(Z.value).map(e=>e.$parse())));await e}catch{}}let Z=d({}),Q=d({});Y();function se(e,t){if(ce(),he(),A.$dirty.value=!1,l.setDirtyEntry(o,!1),!t)if(e?.toOriginalState)n.value=j(w),C.value=j(w);else if(e?.toInitialState)n.value=j(C.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,C.value=j(t),n.value=j(t)}else C.value=x(n.value)&&!de(n.value)?j(n.value):Array.isArray(n.value)?[...n.value]:n.value;if(e?.clearExternalErrors&&he(),!t&&!e?.keepValidationState)for(let e of Object.values(Z.value))e.$reset();if(!A.$lazy.value&&!A.$silent.value&&!t)for(let e of Object.values(Z.value))e.$parse()}function ce(){`cancel`in B&&B.cancel()}function le(e){return V&&V.abort(),V=F(e),V}function $(){ce(),V&&V.abort()}function ue(e=!0,t=!1){A.$dirty.value||H(),t&&e?(!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&(ce(),B()):e&&(ce(),B())}async function fe(e){try{if(e&&(n.value=e),_)return D?(ue(!1),D()):{valid:!1,data:n.value,errors:A.$errors.value,issues:A.$issues.value};let t=n.value;if(A.$dirty.value||(A.$dirty.value=!0),O(Z.value))return{valid:!0,data:t,errors:A.$errors.value,issues:A.$issues.value};$();let{promise:r}=le(Promise.allSettled(Object.values(Z.value).map(e=>e.$parse()))),i=await r;return await s(),{valid:i.every(e=>e.status===`fulfilled`&&e.value===!0),data:t,errors:A.$errors.value,issues:A.$issues.value}}catch{return{valid:!1,data:n.value,errors:A.$errors.value,issues:A.$issues.value}}}function pe(e){try{return e&&(n.value=e),A.$dirty.value||(A.$dirty.value=!0),_?!1:Object.values(Z.value).map(e=>e.$parseSync()).every(e=>!!e)}catch{return!1}}function me(e=!0){return A.$dirty.value?n.value:e?{_null:!0}:null}function he(){h?.value?.length&&(h.value=[])}!A.$lazy.value&&!A.$dirty.value&&!A.$silent.value&&oe(),A.$immediateDirty.value&&(A.$dirty.value=!0);let{$shortcuts:ve,$validating:ye,$autoDirty:be,$rewardEarly:Ce,$clearExternalErrorsOnChange:we,$clearExternalErrorsOnValidate:Te,$haveAnyAsyncRule:Ee,$debounce:De,$lazy:Oe,...ke}=A,Ae=u({...ke,$externalErrors:h,$value:n,$initialValue:C,$originalValue:w,$rules:Z,...ve,$path:a,$isDebouncing:U,$reset:se,$touch:ue,$validate:fe,$validateSync:pe,$unwatch:re,$watch:ie,$extractDirtyFields:me,$clearExternalErrors:he,$abort:$,$addRules:G,addRules:te,$schemaMode:_,"~modifiers":A.$modifiers,...Se(fe)});return Object.defineProperty(Ae,Symbol.for(`regle:instance`),{value:!0}),Ae}function we({$id:t,path:n,cachePath:r,index:i,options:a,storage:o,stateValue:s,customMessages:c,rules:l,externalErrors:u,schemaErrors:d,initialState:f,originalState:m,shortcuts:h,fieldName:g,schemaMode:_,overrides:v}){let y=s.value?.$id??l.$key??X(),b=`${r}.${String(y)}`,S=`${n}.${i}`;typeof s.value==`object`&&s.value!=null&&(s.value.$id||Object.defineProperties(s.value,{$id:{value:y,enumerable:!1,configurable:!1,writable:!1}}));let C=p(u?.value??[],i),w=e(()=>d?.value?.[i]),T=De({index:i,state:s,rulesDef:p(()=>l),customMessages:c,path:S,cachePath:b,storage:o,options:a,externalErrors:C,schemaErrors:w,initialState:f,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&&(!x(s.value)||de(s.value))&&_&&T?.$touch(),T}function Te({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,storage:s,options:c,externalErrors:l,schemaErrors:f,schemaMode:h,initialState:g,originalState:_,shortcuts:b,fieldName:x,overrides:S}){let C=t(),w,T=t(),E,D=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let k=d(),A=d(n.value),M=d({}),N,ee,P=d({}),F=s.getCollectionsEntry(a);E=T.run(()=>({isPrimitiveArray:e(()=>n.value?.length?Array.isArray(n.value)&&n.value.length?n.value.every(e=>typeof e!=`object`):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(e=>$(e)||typeof e==`function`):!1:!1)})),I(),B();function I(){M.value=Object.fromEntries(Object.entries(r.value).filter(([e])=>e.startsWith(`$`))),typeof n.value==`object`&&(n.value!=null&&!n.value?.$id&&n.value!==null?(k.value=X(),Object.defineProperties(n.value,{$id:{value:k.value,enumerable:!1,configurable:!1,writable:!1}})):n.value?.$id&&(k.value=n.value.$id)),A.value=P.value.$value,Array.isArray(n.value)&&(!E.isPrimitiveArray.value||h)?F.value=n.value.map((t,n)=>{let{scope:u,unwrapped:d}=te(r.value.$each,p(()=>t),n);u&&D.push(u);let m=p(g.value??[],n),v=p(l?.value??{},`$each`),y=e(()=>f?.value?.$each);return we({$id:k.value,path:a,cachePath:o,customMessages:i,rules:d??{},stateValue:p(()=>t),index:n,options:c,storage:s,externalErrors:v,schemaErrors:y,initialState:m,originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S})||null}).filter(e=>!!e):F.value=[],P.value=Ce({state:n,rulesDef:r,customMessages:i,path:a,cachePath:a,storage:s,options:c,externalErrors:p(l?.value??{},`$self`),schemaErrors:e(()=>f?.value?.$self),$isArray:!0,initialState:g,originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S})}function L(){if(Array.isArray(n.value)&&(!E.isPrimitiveArray.value||h)){let t=j(F.value);F.value=n.value.map((t,n)=>{let o=p(()=>t);if(t.$id&&F.value.find(e=>e.$id===t.$id)){let e=s.getArrayStatus(k.value,t.$id);return e?(e.$value=o,e):null}else{let{scope:t,unwrapped:u}=te(r.value.$each,o,n);t&&D.push(t);let d=p(l?.value??{},`$each`),m=e(()=>f?.value?.$each??[]);return we({$id:k.value,path:a,cachePath:a,customMessages:i,rules:u??{},stateValue:o,index:n,options:c,storage:s,externalErrors:d,schemaErrors:m,initialState:p(g.value??[],n),originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S})||null}}).filter(e=>!!e),t.filter(e=>!n.value?.find(t=>e.$id===t.$id)).forEach((e,t)=>{s.deleteArrayStatus(k.value,t.toString())})}else F.value=[]}function R(){N=v(n,()=>{ee?.(),n.value!=null&&!Object.hasOwn(n.value,`$id`)&&!k.value?I():L(),z()},{deep:J?1:!0,flush:`pre`}),z()}function z(){ee=v(n,()=>{w.$autoDirty.value&&!w.$silent.value&&P.value.$touch(!1,!0)},{flush:`post`})}function B(){R(),C=t(),w=C.run(()=>{let r=e({get:()=>n.value,set(e){N?.(),ee?.(),n.value=e,R()}}),i=e(()=>P.value.$dirty&&(!F.value.length||F.value.every(e=>e.$dirty))),o=e(()=>P.value.$anyDirty||F.value.some(e=>e.$anyDirty)),s=e(()=>P.value.$invalid||F.value.some(e=>e.$invalid)),l=e(()=>(h?P.value.$correct:O(P.value.$rules)?!0:P.value.$correct)&&(!F.value.length||F.value.every(e=>e.$correct||e.$anyDirty&&!e.$invalid))),f=e(()=>P.value.$error||F.value.some(e=>e.$error)),p=e(()=>!(s.value||v.value)),v=e(()=>P.value.$pending||F.value.some(e=>e.$pending)),C=e(()=>!!F.value.length&&F.value.every(e=>e.$edited)),w=e(()=>P.value.$anyEdited||F.value.some(e=>e.$anyEdited)),T=e(()=>({$self:P.value.$issues,$each:F.value.map(e=>e.$issues)})),E=e(()=>({$self:P.value.$errors,$each:F.value.map(e=>e.$errors)})),k=e(()=>({$self:P.value.$silentErrors,$each:F.value.map(e=>e.$silentErrors)})),A=e(()=>M.value.$rewardEarly==null?m(c.rewardEarly)==null?!1:m(c.rewardEarly)===!0:M.value.$rewardEarly),j=e(()=>A.value?!0:M.value.$silent==null?m(c.silent)==null?!1:m(c.silent)===!0:M.value.$silent),I=e(()=>M.value.$autoDirty==null?m(c.autoDirty)==null?!0:m(c.autoDirty)===!0:M.value.$autoDirty),L=e(()=>M.value.$immediateDirty==null?m(c.immediateDirty)==null?!1:m(c.immediateDirty)===!0:M.value.$immediateDirty),z=e(()=>M.value.$clearExternalErrorsOnChange==null?m(c.clearExternalErrorsOnChange)==null?!0:m(c.clearExternalErrorsOnChange)===!0:M.value.$clearExternalErrorsOnChange),B=e(()=>M.value.$clearExternalErrorsOnValidate==null?m(c.clearExternalErrorsOnValidate)==null?!1:m(c.clearExternalErrorsOnValidate)===!0:M.value.$clearExternalErrorsOnValidate),V=e(()=>{if(M.value.$isEdited!=null)return M.value.$isEdited;if(S?.isEdited!=null)return S.isEdited}),H=e(()=>x??c.id??`root`),U=e(()=>({$deepCompare:M.value.$deepCompare??!1,$debounce:M.value.$debounce??0,$lazy:M.value.$lazy??!1,$rewardEarly:A.value,$autoDirty:I.value,$silent:j.value,$clearExternalErrorsOnChange:z.value,$clearExternalErrorsOnValidate:B.value,$immediateDirty:L.value,$isEdited:V.value,$disabled:m(c.disabled)??!1}));function W(){b?.collections&&Object.entries(b?.collections).forEach(([e,c])=>{let m=t();G[e]=m.run(()=>{let e=d();return y(()=>{e.value=c(u({$dirty:i,$error:f,$path:a,$silentValue:r,$pending:v,$invalid:s,$correct:l,$errors:E,$silentErrors:k,$initialValue:g,$originalValue:_,$ready:p,$anyDirty:o,$name:H,$each:F,$self:P,$value:n,$edited:C,$anyEdited:w,$issues:T}))}),e}),D.push(m)})}let G={};return W(),{$dirty:i,$anyDirty:o,$invalid:s,$correct:l,$error:f,$pending:v,$errors:E,$silentErrors:k,$ready:p,$name:H,$shortcuts:G,$silentValue:r,$edited:C,$anyEdited:w,$rewardEarly:A,$silent:j,$autoDirty:I,$issues:T,$modifiers:U}}),E.isPrimitiveArray.value&&r.value.$each&&console.warn(`${a} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`)}function V(){N?.(),P.value&&P.value.$unwatch(),F.value&&F.value.forEach(e=>{`$dirty`in e&&e.$unwatch()}),C.stop(),C=t(),T.stop(),T=t(!0),D.forEach(e=>e.stop()),D=[]}function H(e=!0,t=!1){P.value.$touch(e,t),F.value.forEach(n=>{n.$touch(e,t)})}function U(e,t){if(V(),!t)if(e?.toOriginalState)n.value=j(_),g.value=j(_);else if(e?.toInitialState)n.value=j(g.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,g.value=j(t),n.value=j(t)}else g.value=j(n.value);e?.clearExternalErrors&&q(),e?.keepValidationState||(P.value.$reset(e,t),F.value.forEach(t=>{t.$reset(e,!0)})),t||I()}function W(){P.value.$abort(),F.value.forEach(e=>{e.$abort()})}async function G(e){e&&(n.value=e);let t=n.value;try{return W(),{valid:(await Promise.allSettled([P.value.$validate(e),...F.value.map(e=>e.$validate())])).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:t,errors:w.$errors.value,issues:w.$issues.value}}catch{return{valid:!1,data:t,errors:w.$errors.value,issues:w.$issues.value}}}function K(e){e&&(n.value=e);try{return[P.value.$validateSync(e),...F.value.map(e=>e.$validateSync())].every(e=>!!e)}catch{return!1}}function q(){P.value.$clearExternalErrors(),F.value.forEach(e=>{e.$clearExternalErrors()})}function Y(e=!0){let t=F.value.map(t=>{if(fe(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>O(e))&&(t=[]),t}let{$shortcuts:ne,...re}=w;return u({$self:P,...re,...ne,$path:a,$each:F,$value:n,$initialValue:g,$originalValue:_,$validate:G,$validateSync:K,$unwatch:V,$watch:B,$touch:H,$reset:U,$abort:W,$extractDirtyFields:Y,$clearExternalErrors:q,"~modifiers":w.$modifiers,...Se(G)})}function Ee({rulesDef:n,state:r,path:i=``,cachePath:a,rootRules:o,externalErrors:s,schemaErrors:c,rootSchemaErrors:l,validationGroups:f,initialState:h,originalState:_,fieldName:b,...S}){let C=t(),w,T=[],E=null,D=null,k=null,A=null,M=d(void 0);async function N(t=!0){let o=Object.entries(n.value).filter(([e])=>e!==`$self`),l=Object.fromEntries(o.reduce((t,[n,o])=>{if(!o)return t;let l=p(r.value??{},n),u=p(()=>o),d=p(s?.value??{},n),f=e(()=>c?.value?.[n]),m=p(h?.value??{},n);return t.push([n,De({state:l,rulesDef:u,path:i?`${i}.${n}`:n,cachePath:a?`${a}.${n}`:n,externalErrors:d,schemaErrors:f,initialState:m,originalState:_?.[n],fieldName:n,...S})]),t},[])),u=Object.fromEntries(Object.entries(m(s)??{}).filter(([e,t])=>!(e in n.value)&&!!t).map(([t])=>{let n=p(r.value??{},t),o=p(s?.value??{},t),l=e(()=>c?.value?.[t]),u=p(h?.value??{},t),d=i?`${i}.${t}`:t,f=a?`${a}.${t}`:t;return[t,De({state:n,rulesDef:e(()=>({})),path:d,cachePath:f,externalErrors:o,schemaErrors:l,initialState:u,originalState:_?.[t],fieldName:t,...S})]})),d=Object.fromEntries(Object.entries(m(c)??{}).map(([t])=>{let n=i?`${i}.${t}`:t,o=a?`${a}.${t}`:t,l=p(r.value??{},t),u=p(s?.value??{},t),d=e(()=>c?.value?.[t]),f=p(h?.value??{},t);return[t,De({state:l,rulesDef:e(()=>({})),path:n,cachePath:o,externalErrors:u,schemaErrors:d,initialState:f,originalState:_?.[t],fieldName:t,...S})]})),f=Object.fromEntries(Object.entries(r.value??{}).filter(([e])=>!(e in n.value)&&!(e in(u??{}))&&!(e in(d??{}))).map(([t])=>{let n=p(r.value??{},t),o=p(s?.value??{},t),l=e(()=>c?.value?.[t]),u=p(h?.value??{},t);return[t,De({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,cachePath:a?`${a}.${t}`:t,externalErrors:o,schemaErrors:l,initialState:u,originalState:_?.[t],fieldName:t,...S})]}));P.value={...l,...u,...d,...f},t&&L()}function ee(){n.value.$self&&(M.value=Ce({state:r,rulesDef:e(()=>n.value.$self??{}),path:i,cachePath:a,externalErrors:d(void 0),schemaErrors:d(void 0),initialState:p(h?.value??{},`$self`),originalState:_?.$self,fieldName:`$self`,...S}))}let P=S.storage.getFieldsEntry(a);N(),ee();function F(){s&&(k=v(s,()=>{R(),N()},{deep:!0}))}function I(){A=v(r,()=>{R(),N(),w.$autoDirty.value&&!w.$silent.value&&V(!1,!0)},{flush:`post`})}function L(){o&&(E?.(),E=v(o,()=>{R(),N()},{deep:!0,flush:`pre`}),F()),l&&(D?.(),D=v(l,()=>{R(),N()},{deep:!0,flush:`post`})),I(),w=C.run(()=>{let a=e({get:()=>r.value,set(e){R(),r.value=e,N(),w.$autoDirty.value&&!w.$silent.value&&V(!1,!0)}}),o=e({get:()=>r.value,set(e){R(),r.value=e,N()}}),s=e(()=>{let e=P.value,t=Object.keys(e);if(!t.length)return!1;for(let n of t)if(!e[n]?.$dirty)return!1;return!0}),c=e(()=>{let e=P.value;for(let t in e)if(e[t]?.$anyDirty)return!0;return!1}),l=e(()=>{if(M.value?.$invalid)return!0;let e=P.value,t=Object.entries(e);if(!t.length)return!1;for(let[e,n]of t)if(n?.$invalid)return!0;return!1}),p=e(()=>{let e=Object.entries(P.value).reduce((e,[t,n])=>((!pe(n)||!n.$inactive)&&e.push([t,n]),e),[]),t=n.value.$self&&!O(n.value.$self);if(e.length||t){let t=M.value?.$correct??!0,n=!1;return n=S.schemaMode?e.every(([e,t])=>t.$correct):e.every(([e,t])=>pe(t)?`required`in t.$rules&&t.$rules.required.$active?t.$correct:!t.$invalid&&!t.$pending&&!t.$isDebouncing:t?.$correct),t&&n}return!1}),v=e(()=>{if(M.value?.$error)return!0;let e=P.value;if(!Object.keys(e).length)return!1;for(let t in e)if(e[t]?.$error)return!0;return!1}),x=e(()=>m(S.options.rewardEarly)==null?!1:m(S.options.rewardEarly)),C=e(()=>m(S.options.silent)==null?!!x.value:m(S.options.silent)===!0),E=e(()=>m(S.options.autoDirty)==null?!0:m(S.options.autoDirty)===!0),D=e(()=>m(S.options.immediateDirty)==null?!1:m(S.options.immediateDirty)===!0),k=e(()=>m(S.options.lazy)==null?!1:m(S.options.lazy)===!0),A=e(()=>m(S.options.clearExternalErrorsOnChange)==null?!1:m(S.options.clearExternalErrorsOnChange)===!0),j=e(()=>m(S.options.clearExternalErrorsOnValidate)==null?!1:m(S.options.clearExternalErrorsOnValidate)===!0),ee=e(()=>!(l.value||I.value)),F=d(!1),I=e(()=>{if(M.value?.$pending||F.value)return!0;let e=P.value;for(let t in e)if(e[t]?.$pending)return!0;return!1}),L=e(()=>{let e={...M.value&&{$self:M.value?.$issues??[]}};for(let t in P.value)e[t]=P.value[t]?.$issues;return e}),z=e(()=>{let e={...M.value&&{$self:M.value?.$errors??[]}};for(let t in P.value)e[t]=P.value[t]?.$errors;return e}),B=e(()=>{let e={...M.value&&{$self:M.value?.$silentErrors??[]}};for(let t in P.value)e[t]=P.value[t]?.$silentErrors;return e}),H=e(()=>{if(M.value?.$edited)return!0;if(!Object.keys(P.value).length)return!1;for(let e in P.value)if(!P.value[e]?.$edited)return!1;return!0}),U=e(()=>{if(M.value?.$anyEdited)return!0;for(let e in P.value)if(P.value[e]?.$anyEdited)return!0;return!1}),W=e(()=>b??S.options.id??`root`),G=e(()=>({autoDirty:E.value,lazy:k.value,rewardEarly:x.value,silent:C.value,clearExternalErrorsOnChange:A.value,clearExternalErrorsOnValidate:j.value,immediateDirty:D.value,id:m(S.options.id),disabled:m(S.options.disabled)}));function te(){S.shortcuts?.nested&&Object.entries(S.shortcuts.nested).forEach(([e,n])=>{let a=t();q[e]=a.run(()=>{let e=d();return y(()=>{e.value=n(u({$dirty:s,$path:i,$value:r,$silentValue:o,$error:v,$originalValue:_,$pending:I,$invalid:l,$correct:p,$ready:ee,$anyDirty:c,$name:W,$silentErrors:B,$initialValue:h,$errors:z,$fields:P,$edited:H,$anyEdited:U,$issues:L,$self:M,"~modifiers":g(S.options)}))}),e}),T.push(a)})}let K=e({get:()=>f?Object.fromEntries(Object.entries(f?.(P.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,ie(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,ae(t,e)]))}]:[])):{},set(){}}),q={};return te(),{$dirty:s,$anyDirty:c,$invalid:l,$correct:p,$error:v,$pending:I,$issues:L,$errors:z,$silentErrors:B,$clearExternalErrorsOnValidate:j,$ready:ee,$name:W,$shortcuts:q,$groups:K,$silentValue:o,$edited:H,$anyEdited:U,$localPending:F,$autoDirty:E,$silent:C,$value:a,$modifiers:G}})}function R(){if(E?.(),k?.(),A?.(),D?.(),T=[],w={},P.value)for(let e of Object.values(P.value))e?.$unwatch()}function z(){s&&!O(s.value)&&(s.value={})}function B(e,t){if(k?.(),R(),!t)if(e?.toOriginalState)r.value=j({..._}),h.value=j({..._});else if(e?.toInitialState)r.value=j({...h.value});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,h.value=j(t),r.value=j(t)}else h.value=j(r.value);if(!e?.keepValidationState){for(let t of Object.values(P.value))t?.$reset(e,!0);M.value?.$reset(e,!0)}e?.clearExternalErrors===!1&&z(),F(),t||N()}function V(e=!0,t=!1){for(let n of Object.values(P.value))n?.$touch(e,t);M.value?.$touch(e,t)}function H(e){return e.filter(([e,t])=>x(t)&&!de(t)?!(t&&typeof t==`object`&&`_null`in t)&&!O(t):Array.isArray(t)?t.length:!0)}function U(e=!0){let t=Object.entries(P.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=H(t)),Object.fromEntries(t)}function W(){for(let e of Object.values(P.value))e.$abort();M.value?.$abort()}async function G(e){try{if(e&&(r.value=e),S.schemaMode)return S.onValidate?(V(!1),w.$localPending.value=!0,S.onValidate()):{valid:!1,data:r.value,errors:w.$errors.value,issues:w.$issues.value};{let e=r.value;W(),w.$clearExternalErrorsOnValidate.value&&z();let t=[...Object.values(P.value).map(e=>e.$validate()),...M.value?[M.value?.$validate()]:[]];return{valid:(await Promise.allSettled(t)).every(e=>e.status===`fulfilled`&&e?.value?.valid===!0),data:e,errors:w.$errors.value,issues:w.$issues.value}}}catch{return{valid:!1,data:r.value,errors:w.$errors.value,issues:w.$issues.value}}finally{w.$localPending.value=!1}}function te(e){try{return e&&(r.value=e),w.$clearExternalErrorsOnValidate.value&&z(),[...Object.values(P.value).map(e=>e.$validateSync()),...M.value?[M.value?.$validateSync()]:[]].every(e=>!!e)}catch{return!1}}let{$shortcuts:K,$localPending:q,...J}=w,Y=u({...J,...K,$path:i,$initialValue:h,$originalValue:_,$self:M,$externalErrors:s,$fields:P,$reset:B,$touch:V,$validate:G,$unwatch:R,$watch:L,$clearExternalErrors:z,$extractDirtyFields:U,$abort:W,$validateSync:te,...o?{"~modifiers":w.$modifiers}:{},...Se(G)});return Object.defineProperty(Y,Symbol.for(`regle:instance`),{value:!0}),y(()=>{for(let e of Object.keys(Y).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete Y[e];for(let e of Object.values(P.value))e?.$name&&Object.assign(Y,{[e.$name]:e})}),Y}function De({rulesDef:e,...n}){if(ce(e,n.state))return Te({rulesDef:e,...n});if(se(n.state,e)){if(G(n.state))return Ee({rulesDef:e,...n});{let r=t().run(()=>{let e=p(n.state.value?n.state:d({}));return v(()=>n.state.value,t=>{e.value=t},{deep:!0}),v(e,e=>{n.state.value=e},{deep:!0}),{fakeState:e}}),{state:i,...a}=n;return Ee({rulesDef:e,...a,state:r.fakeState})}}else if(le(e))return Ce({rulesDef:a(e.value)?e.value:e,...n})}function Oe({initialState:e,originalState:t,options:n,scopeRules:i,state:a,customRules:o,shortcuts:c,schemaErrors:u,schemaMode:f=!1,onValidate:p,overrides:h}){let g=he(),_=d(),y=d(),b,x,S;function C(){S=v(()=>m(n.disabled),async e=>{e?O():(D(),T())})}function T(){b=v(()=>n.externalErrors?.value,()=>{x?.(),n.externalErrors?.value&&Object.keys(n.externalErrors.value).some(e=>e.includes(`.`))?y.value=w(n.externalErrors.value):y.value=n.externalErrors?.value,E()},{immediate:!0,deep:!0})}function E(){x=v(()=>y.value,()=>{b?.(),n.externalErrors?.value&&(n.externalErrors.value=y.value),T()},{deep:!0})}function D(){se(a,i)?_.value=Ee({rootRules:i,rulesDef:i,state:a,customMessages:o?.(),storage:g,options:n,externalErrors:y,validationGroups:n.validationGroups,initialState:e,originalState:t,shortcuts:c,fieldName:void 0,path:``,cachePath:``,schemaErrors:u,rootSchemaErrors:u,schemaMode:f,onValidate:p,overrides:h}):le(i)&&(_.value=Ce({rulesDef:i,state:a,customMessages:o?.(),storage:g,options:n,externalErrors:y,initialState:e,originalState:t,shortcuts:c,fieldName:void 0,path:``,cachePath:``,schemaMode:f,schemaErrors:u,onValidate:p,overrides:h}))}D(),m(n.disabled)?s().then(()=>{_.value?.$unwatch()}):T(),C();function O(){_.value?.$unwatch(),x?.(),b?.()}return r()&&l(()=>{O(),S?.()}),_}function ke({state:t,rulesFactory:n,options:r,globalOptions:o,customRules:s,shortcuts:c,overrides:l}){let u=a(n)?n:typeof n==`function`?void 0:e(()=>n),p=i(Z,void 0)??{},m={...p.modifiers,...o},g=()=>({...p.rules?.(),...s?.()}),_={...p.shortcuts,...c},v={...p.overrides,...l},b={...m,...r},S,C=f(u??{});typeof n==`function`&&(S=y(()=>{C.value=n(t),h(C)}));let w=d(x(t.value)?{...j(t.value)}:j(t.value)),T=x(t.value)?{...j(t.value)}:j(t.value);return ne(()=>{S?.()}),Oe({scopeRules:C,state:t,options:b,initialState:w,originalState:T,customRules:g,shortcuts:_,overrides:v})}function Ae(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s,c){let l=a(t)?t:d(t),u=e(()=>m(c?.disabled)??!1);return{r$:I(ke({state:l,rulesFactory:s,options:c,globalOptions:r,customRules:n,shortcuts:i,overrides:o}),u)}}return s}const je=Ae();function Me(){function e(e,t){return t}return e}const Ne=Me();function Pe(e,t){return S(m(e).$errors,String(t))}function Fe(e,t){return S(m(e).$issues,String(t))}function Ie(e){let t={};if(Object.entries(e).some(([e,t])=>$(t)||typeof t==`function`))return null;for(let n in e){let r=e[n];r&&x(r)&&`$each`in r&&r.$each&&x(r.$each)?t[n]=[Ie(r.$each)]:x(r)&&!O(r)&&!Object.entries(r).some(([e,t])=>$(t)||typeof t==`function`)?t[n]=Ie(r):t[n]=null}return t}function Le(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s){let c=a(t)?t:typeof t==`function`?void 0:e(()=>t),l=d(Ie(c?.value)),u=e(()=>m(s?.disabled)??!1);return I(ke({state:l,rulesFactory:c,options:s,globalOptions:r,customRules:n,shortcuts:i,overrides:o}),u)}return s}const Re=Le();function ze(e){if(D(e)){let t=e,n=class extends t{constructor(...e){return super(...e),Be(this)}};return Object.defineProperty(n,`name`,{value:t.name}),Be(n)}return Be(e)}function Be(e){return!T(e,Q.REGLE_STATIC)&&Object.isExtensible(e)&&E(e,Q.REGLE_STATIC,!0),e}function Ve({rules:e,modifiers:t,shortcuts:n,overrides:r}){let i=Ae({rules:e,modifiers:t,shortcuts:n,overrides:r}),a=Le({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:Me(),useRules:a}}function He(e,{rules:t,modifiers:n,shortcuts:r,overrides:i}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?C(a.modifiers,n):a.modifiers??n,c=a.shortcuts&&r?C(a.shortcuts,r):a.shortcuts??r,l=a.overrides&&i?C(a.overrides,i):a.overrides??i,u=Ae({rules:o,modifiers:s,shortcuts:c,overrides:l});return u.__config={rules:o,modifiers:s,shortcuts:c,overrides:l},{useRegle:u,inferRules:Me()}}function Ue(e){return e}function We(t,n){let r=n??!1,i=e({get:()=>r?Object.values(t).map(e=>e.$value):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$value])),set:e=>{r||typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$value=n)}}),a=e({get:()=>Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentValue])),set:e=>{typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$silentValue=n)}}),o=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$dirty)}),s=e(()=>Object.entries(t).some(([e,t])=>t?.$anyDirty)),c=e(()=>Object.entries(t).some(([e,t])=>t?.$invalid)),l=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$correct||t.$anyDirty&&!t.$invalid)}),d=e(()=>Object.entries(t).some(([e,t])=>t?.$error)),f=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$ready)}),p=e(()=>Object.entries(t).some(([e,t])=>t?.$pending)),m=e(()=>r?Object.entries(t).map(([e,t])=>t.$issues):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$issues]))),h=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentIssues):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentIssues]))),g=e(()=>r?Object.entries(t).map(([e,t])=>t.$errors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$errors]))),_=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentErrors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentErrors]))),v=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$edited)}),b=e(()=>Object.entries(t).some(([e,t])=>t?.$anyEdited)),x=e(()=>r?Object.values(t):t);function S(e){Object.values(t).forEach(t=>{t.$reset(e)})}function C(){Object.values(t).forEach(e=>{e.$touch()})}function w(e=!0){return Object.values(t).map(t=>t.$extractDirtyFields(e))}function T(){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=u({...!r&&{$silentValue:a},$errors:g,$issues:m,$silentIssues:h,$silentErrors:_,$instances:x,$value:i,$dirty:o,$anyDirty:s,$invalid:c,$correct:l,$error:d,$pending:p,$ready:f,$edited:v,$anyEdited:b,$reset:S,$touch:C,$validate:E,$extractDirtyFields:w,$clearExternalErrors:T});return y(()=>{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 Ge(t,n){function r(r){let i=e(()=>m(r)),a=u({});c();let o=d(l(t.value)),s=u({r$:o});function c(){i.value&&(typeof i.value==`string`&&!t.value[i.value]?t.value[i.value]={}:Array.isArray(i.value)&&i.value.forEach(e=>{t.value[e]||(t.value[e]={})}))}v(i,c),v(t,e=>{o.value=l(e)},{deep:!0});function l(e){return i.value?typeof i.value==`string`?We(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})})}),We(a,!n.asRecord)):We(e[`~~global`]??{},!n.asRecord)}return{r$:s.r$}}return{useCollectScope:r}}function Ke(t,r){let i=r??je;return{useScopedRegle:((r,a,o)=>{let{namespace:s,scopeKey:l,id:u,...f}=o??{};i.__config??={};let p=e(()=>u??l),h=e(()=>m(s)),g=d(`${Object.keys(t.value).length+1}-${X()}`),_=e(()=>p.value??`instance-${g.value}`),{r$:y}=i(r,a,{...f,id:p.value});x(),ne(b),v(h,(e,t)=>{b(t),x()}),n()&&c(()=>{let e=n();typeof window<`u`&&e?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(e?.proxy?.$el?.parentElement)&&b()});function b(e){let n=e??h.value;n?t.value[n]&&delete t.value[n][_.value]:t.value[`~~global`][_.value]&&delete t.value[`~~global`][_.value]}function x(){h.value?(t.value[h.value]||(t.value[h.value]={}),t.value[h.value][_.value]=y):(t.value[`~~global`]||(t.value[`~~global`]={}),t.value[`~~global`][_.value]=y)}return{r$:y,dispose:b,register:x}})}}function qe(e){let t=(e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):re(()=>d({"~~global":{}})))(),{useScopedRegle:n}=Ke(t,e?.customUseRegle),{useCollectScope:r}=Ge(t,{asRecord:e?.asRecord});return{useScopedRegle:n,useCollectScope:r}}const{useCollectScope:Je,useScopedRegle:Ye}=qe(),Xe=Je,Ze=Ye;function Qe(t,n,r){let i=e(()=>m(t)[n]);return e(()=>r.find(e=>{if(e[n]&&`literal`in e[n]){let t=e[n].literal;if($(t))return m(t._params?.[0])===i.value}})||r.find(e=>x(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`))||{})}function $e(e,t,n){return!!e&&t in e&&x(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function et(e,t,n,r){let i=a(e)?p(e.value,`$fields`):p(e,`$fields`),o=d();return v(i,async()=>{await s(),$e(i.value,t,n)?o.value=p(e).value:o.value=void 0},{immediate:!0,flush:`pre`}),o}function tt(e){return e}function nt(e,t){return n=>C({...e},t(n))}const rt={install(e,t){e.provide(oe,me),t&&e.provide(Z,t)}};export{L as InternalRuleType,rt as RegleVuePlugin,H as createRule,qe as createScopedUseRegle,Qe as createVariant,Ve as defineRegleConfig,Ue as defineRegleOptions,tt as defineRules,He as extendRegleConfig,ye as flatErrors,Pe as getErrors,Fe as getIssues,Ne as inferRules,W as isRegleInstance,ze as markStatic,We as mergeRegles,$e as narrowVariant,nt as refineRules,R as unwrapRuleParameters,Xe as useCollectScope,je as useRegle,Oe as useRootStorage,Re as useRules,Ze as useScopedRegle,et as variantToRef};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@regle/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.20.0-preview.1",
|
|
4
4
|
"description": "Headless form validation library for Vue",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"regle",
|
|
@@ -59,6 +59,7 @@
|
|
|
59
59
|
"@vue/test-utils": "2.4.6",
|
|
60
60
|
"tsdown": "0.20.3",
|
|
61
61
|
"typescript": "5.9.3",
|
|
62
|
+
"@typescript/native-preview": "7.0.0-dev.20260303.1",
|
|
62
63
|
"vitest": "4.0.18",
|
|
63
64
|
"vue": "3.5.28",
|
|
64
65
|
"vue-tsc": "3.2.5"
|
|
@@ -73,7 +74,7 @@
|
|
|
73
74
|
}
|
|
74
75
|
},
|
|
75
76
|
"scripts": {
|
|
76
|
-
"typecheck": "
|
|
77
|
+
"typecheck": "tsgo --noEmit",
|
|
77
78
|
"build": "tsdown",
|
|
78
79
|
"build:sourcemaps": "tsdown --config=tsdown.sourcemap.ts",
|
|
79
80
|
"dev": "tsdown --config=tsdown.dev.ts",
|