@regle/core 0.7.4-beta.1 → 0.7.4-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2258,8 +2258,8 @@ function defineRegleConfig({
2258
2258
  const inferRules2 = createInferRuleHelper();
2259
2259
  return { useRegle: useRegle2, inferRules: inferRules2 };
2260
2260
  }
2261
- function mergeRegles(regles, _nested) {
2262
- const nested = _nested == null ? false : _nested;
2261
+ function mergeRegles(regles, _scoped) {
2262
+ const scoped = _scoped == null ? false : _scoped;
2263
2263
  const $value = vue.computed({
2264
2264
  get: () => Object.fromEntries(Object.entries(regles).map(([key, r]) => [key, r.$value])),
2265
2265
  set: (value) => {
@@ -2382,7 +2382,7 @@ function mergeRegles(regles, _nested) {
2382
2382
  }
2383
2383
  }
2384
2384
  return vue.reactive({
2385
- ...!nested && {
2385
+ ...!scoped && {
2386
2386
  $instances,
2387
2387
  $value,
2388
2388
  $silentValue,
@@ -2406,8 +2406,8 @@ function mergeRegles(regles, _nested) {
2406
2406
  $clearExternalErrors
2407
2407
  });
2408
2408
  }
2409
- function createUseCollectNestedValidations(instances) {
2410
- function useCollectNestedValidations() {
2409
+ function createUseCollectScopedValidations(instances) {
2410
+ function useCollectScopedValidations() {
2411
2411
  const r$ = vue.ref(mergeRegles(instances.value, true));
2412
2412
  const regle = vue.reactive({ r$ });
2413
2413
  vue.watch(instances, (newInstances) => {
@@ -2415,12 +2415,12 @@ function createUseCollectNestedValidations(instances) {
2415
2415
  });
2416
2416
  return { r$: regle.r$ };
2417
2417
  }
2418
- return { useCollectNestedValidations };
2418
+ return { useCollectScopedValidations };
2419
2419
  }
2420
- function createUseNestedRegleComposable(customUseRegle) {
2420
+ function createUseScopedRegleComposable(customUseRegle) {
2421
2421
  const scopedUseRegle = customUseRegle ?? useRegle;
2422
2422
  const instances = vue.ref({});
2423
- const useNestedRegle = (state, rulesFactory, options) => {
2423
+ const useScopedRegle = (state, rulesFactory, options) => {
2424
2424
  const $id = randomId();
2425
2425
  const { r$ } = scopedUseRegle(state, rulesFactory, options);
2426
2426
  instances.value[$id] = r$;
@@ -2432,22 +2432,22 @@ function createUseNestedRegleComposable(customUseRegle) {
2432
2432
  }
2433
2433
  return { r$, $dispose };
2434
2434
  };
2435
- return { useNestedRegle, instances };
2435
+ return { useScopedRegle, instances };
2436
2436
  }
2437
2437
 
2438
- // src/core/createNestedUseRegle/createNestedUseRegle.ts
2439
- function createNestedUseRegle(customUseRegle) {
2440
- const { instances, useNestedRegle } = createUseNestedRegleComposable(customUseRegle);
2441
- const { useCollectNestedValidations } = createUseCollectNestedValidations(instances);
2438
+ // src/core/createScopedUseRegle/createScopedUseRegle.ts
2439
+ function createScopedUseRegle(customUseRegle) {
2440
+ const { instances, useScopedRegle } = createUseScopedRegleComposable(customUseRegle);
2441
+ const { useCollectScopedValidations } = createUseCollectScopedValidations(instances);
2442
2442
  return {
2443
- useNestedRegle,
2444
- useCollectNestedValidations
2443
+ useScopedRegle,
2444
+ useCollectScopedValidations
2445
2445
  };
2446
2446
  }
2447
2447
 
2448
2448
  exports.InternalRuleType = InternalRuleType;
2449
- exports.createNestedUseRegle = createNestedUseRegle;
2450
2449
  exports.createRule = createRule;
2450
+ exports.createScopedUseRegle = createScopedUseRegle;
2451
2451
  exports.defineRegleConfig = defineRegleConfig;
2452
2452
  exports.inferRules = inferRules;
2453
2453
  exports.mergeRegles = mergeRegles;
@@ -1739,7 +1739,7 @@ type MergedRegles<TRegles extends Record<string, SuperCompatibleRegleRoot>, TVal
1739
1739
  /** Sets all properties as dirty, triggering all rules. It returns a promise that will either resolve to false or a type safe copy of your form state. Values that had the required rule will be transformed into a non-nullable value (type only). */
1740
1740
  $validate: () => Promise<MergedReglesResult<TRegles>>;
1741
1741
  };
1742
- type MergedNestedRegles<TValue extends Record<string, any> = Record<string, unknown>> = Omit<MergedRegles<Record<string, SuperCompatibleRegleRoot>, TValue>, '$instances' | '$errors' | '$silentErrors' | '$value' | '$silentValue'>;
1742
+ type MergedScopedRegles<TValue extends Record<string, any> = Record<string, unknown>> = Omit<MergedRegles<Record<string, SuperCompatibleRegleRoot>, TValue>, '$instances' | '$errors' | '$silentErrors' | '$value' | '$silentValue'>;
1743
1743
  type MergedReglesResult<TRegles extends Record<string, SuperCompatibleRegleRoot>> = {
1744
1744
  result: false;
1745
1745
  data: {
@@ -1755,15 +1755,15 @@ type MergedReglesResult<TRegles extends Record<string, SuperCompatibleRegleRoot>
1755
1755
  }>['data'];
1756
1756
  };
1757
1757
  };
1758
- declare function mergeRegles<TRegles extends Record<string, SuperCompatibleRegleRoot>, TNested extends boolean = false>(regles: TRegles, _nested?: TNested): TNested extends false ? MergedRegles<TRegles> : MergedNestedRegles;
1758
+ declare function mergeRegles<TRegles extends Record<string, SuperCompatibleRegleRoot>, TScoped extends boolean = false>(regles: TRegles, _scoped?: TScoped): TScoped extends false ? MergedRegles<TRegles> : MergedScopedRegles;
1759
1759
 
1760
- declare function createNestedUseRegle<TCustomRegle extends useRegleFn<any, any> = useRegleFn<Partial<AllRulesDeclarations>>, TReturnedRegle extends useRegleFn<any, any> = TCustomRegle extends useRegleFn<infer A, infer B> ? useRegleFn<A, B, {
1760
+ declare function createScopedUseRegle<TCustomRegle extends useRegleFn<any, any> = useRegleFn<Partial<AllRulesDeclarations>>, TReturnedRegle extends useRegleFn<any, any> = TCustomRegle extends useRegleFn<infer A, infer B> ? useRegleFn<A, B, {
1761
1761
  $dispose: () => void;
1762
1762
  }> : useRegleFn<Partial<AllRulesDeclarations>>>(customUseRegle?: TCustomRegle): {
1763
- useNestedRegle: TReturnedRegle;
1764
- useCollectNestedValidations<TValue extends Record<string, any> = Record<string, unknown>>(): {
1765
- r$: MergedNestedRegles<TValue>;
1763
+ useScopedRegle: TReturnedRegle;
1764
+ useCollectScopedValidations<TValue extends Record<string, any> = Record<string, unknown>>(): {
1765
+ r$: MergedScopedRegles<TValue>;
1766
1766
  };
1767
1767
  };
1768
1768
 
1769
- export { type $InternalRegleStatus, type AllRulesDeclarations, type DeepMaybeRef, type DeepReactiveState, type FormRuleDeclaration, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleShortcuts, type InferRegleStatusType, type InlineRuleDeclaration, InternalRuleType, type JoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type MergedRegles, type MismatchInfo, type NoInferLegacy, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, 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 RegleShortcutDefinition, type RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, type ResolvedRegleBehaviourOptions, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, createNestedUseRegle, createRule, defineRegleConfig, inferRules, mergeRegles, unwrapRuleParameters, useRegle, useRootStorage };
1769
+ export { type $InternalRegleStatus, type AllRulesDeclarations, type DeepMaybeRef, type DeepReactiveState, type FormRuleDeclaration, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleShortcuts, type InferRegleStatusType, type InlineRuleDeclaration, InternalRuleType, type JoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type MergedRegles, type MismatchInfo, type NoInferLegacy, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, 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 RegleShortcutDefinition, type RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, type ResolvedRegleBehaviourOptions, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, createRule, createScopedUseRegle, defineRegleConfig, inferRules, mergeRegles, unwrapRuleParameters, useRegle, useRootStorage };
@@ -1739,7 +1739,7 @@ type MergedRegles<TRegles extends Record<string, SuperCompatibleRegleRoot>, TVal
1739
1739
  /** Sets all properties as dirty, triggering all rules. It returns a promise that will either resolve to false or a type safe copy of your form state. Values that had the required rule will be transformed into a non-nullable value (type only). */
1740
1740
  $validate: () => Promise<MergedReglesResult<TRegles>>;
1741
1741
  };
1742
- type MergedNestedRegles<TValue extends Record<string, any> = Record<string, unknown>> = Omit<MergedRegles<Record<string, SuperCompatibleRegleRoot>, TValue>, '$instances' | '$errors' | '$silentErrors' | '$value' | '$silentValue'>;
1742
+ type MergedScopedRegles<TValue extends Record<string, any> = Record<string, unknown>> = Omit<MergedRegles<Record<string, SuperCompatibleRegleRoot>, TValue>, '$instances' | '$errors' | '$silentErrors' | '$value' | '$silentValue'>;
1743
1743
  type MergedReglesResult<TRegles extends Record<string, SuperCompatibleRegleRoot>> = {
1744
1744
  result: false;
1745
1745
  data: {
@@ -1755,15 +1755,15 @@ type MergedReglesResult<TRegles extends Record<string, SuperCompatibleRegleRoot>
1755
1755
  }>['data'];
1756
1756
  };
1757
1757
  };
1758
- declare function mergeRegles<TRegles extends Record<string, SuperCompatibleRegleRoot>, TNested extends boolean = false>(regles: TRegles, _nested?: TNested): TNested extends false ? MergedRegles<TRegles> : MergedNestedRegles;
1758
+ declare function mergeRegles<TRegles extends Record<string, SuperCompatibleRegleRoot>, TScoped extends boolean = false>(regles: TRegles, _scoped?: TScoped): TScoped extends false ? MergedRegles<TRegles> : MergedScopedRegles;
1759
1759
 
1760
- declare function createNestedUseRegle<TCustomRegle extends useRegleFn<any, any> = useRegleFn<Partial<AllRulesDeclarations>>, TReturnedRegle extends useRegleFn<any, any> = TCustomRegle extends useRegleFn<infer A, infer B> ? useRegleFn<A, B, {
1760
+ declare function createScopedUseRegle<TCustomRegle extends useRegleFn<any, any> = useRegleFn<Partial<AllRulesDeclarations>>, TReturnedRegle extends useRegleFn<any, any> = TCustomRegle extends useRegleFn<infer A, infer B> ? useRegleFn<A, B, {
1761
1761
  $dispose: () => void;
1762
1762
  }> : useRegleFn<Partial<AllRulesDeclarations>>>(customUseRegle?: TCustomRegle): {
1763
- useNestedRegle: TReturnedRegle;
1764
- useCollectNestedValidations<TValue extends Record<string, any> = Record<string, unknown>>(): {
1765
- r$: MergedNestedRegles<TValue>;
1763
+ useScopedRegle: TReturnedRegle;
1764
+ useCollectScopedValidations<TValue extends Record<string, any> = Record<string, unknown>>(): {
1765
+ r$: MergedScopedRegles<TValue>;
1766
1766
  };
1767
1767
  };
1768
1768
 
1769
- export { type $InternalRegleStatus, type AllRulesDeclarations, type DeepMaybeRef, type DeepReactiveState, type FormRuleDeclaration, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleShortcuts, type InferRegleStatusType, type InlineRuleDeclaration, InternalRuleType, type JoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type MergedRegles, type MismatchInfo, type NoInferLegacy, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, 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 RegleShortcutDefinition, type RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, type ResolvedRegleBehaviourOptions, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, createNestedUseRegle, createRule, defineRegleConfig, inferRules, mergeRegles, unwrapRuleParameters, useRegle, useRootStorage };
1769
+ export { type $InternalRegleStatus, type AllRulesDeclarations, type DeepMaybeRef, type DeepReactiveState, type FormRuleDeclaration, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleShortcuts, type InferRegleStatusType, type InlineRuleDeclaration, InternalRuleType, type JoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type MergedRegles, type MismatchInfo, type NoInferLegacy, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, 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 RegleShortcutDefinition, type RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, type ResolvedRegleBehaviourOptions, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, createRule, createScopedUseRegle, defineRegleConfig, inferRules, mergeRegles, unwrapRuleParameters, useRegle, useRootStorage };
@@ -1,2 +1,2 @@
1
- 'use strict';var vue=require('vue');function Y(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var gt=Symbol("regle-rule");function Ut(e){if(typeof e.source.flags=="string")return e.source.flags;{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 Q(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>Q(n)))),r=="Map"&&(t=new Map([...e].map(n=>[Q(n[0]),Q(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Ut(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=Q(e[n]);}return t}function ne(e){return e instanceof Date||e instanceof File?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Be(e){if(Y(e))return false;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let r=new Date(e);if(r.toString()==="Invalid Date")return !1;t=r;}return !!t}catch{return false}}function Le(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]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}var He=(r=>(r.Inline="__inline",r.Async="__async",r))(He||{});function $t(e,t){return e.some(r=>r[t])}function yt(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function ee(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function vt(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function St(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(m=>m.trim()).filter(m=>m.length>0).length:0}function ze(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(f,...S){return e.validator(f,...ee(S.length?S:t))},message(f){return typeof e.message=="function"?e.message({...f,$params:ee(f?.$params?.length?f.$params:t)}):e.message},active(f){return typeof e.active=="function"?e.active({...f,$params:ee(f?.$params?.length?f.$params:t)}):e.active??true},tooltip(f){return typeof e.tooltip=="function"?e.tooltip({...f,$params:ee(f?.$params?.length?f.$params:t)}):e.tooltip??[]},exec(f){let S=e.validator(f,...ee(t)),y;return S instanceof Promise?S.then(b=>(y=b,typeof y=="object"&&"$valid"in y?y.$valid:typeof y=="boolean"?y:false)):(y=S,typeof y=="object"&&"$valid"in y?y.$valid:typeof y=="boolean"?y:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:l,_params:vt(t),_brand:gt}}function qe(e){if(typeof e.validator=="function"){let r=ze(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(St(e.validator)>1){let l=function(...i){return ze(e,...i)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=false,l._tooltip_pacthed=false,l._async=n,l}else return r}throw new Error("Validator must be a function")}function Ke(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),l=vue.shallowRef(new Map),i=vue.shallowRef(new Map);function m($){let h=t.value.get($);if(h)return h;{let E=vue.ref({});return t.value.set($,E),E}}function f($){let h=r.value.get($);if(h)return h;{let E=vue.ref([]);return r.value.set($,E),E}}function S($,h,E){i.value.set(`${$}-${h}`,E);}function y($,h){return i.value.get(`${$}-${h}`)}function b($,h){$&&h!=null&&i.value.delete(`${$}-${h}`);}function B($,h){n.value.set($,h);}function D($){return n.value.get($)??false}function N($,h){e.value.set($,h);}function w($,h){let E=e.value.get($);return E?a(h,E)?{valid:true}:{valid:false}:undefined}function a($,h){let E=Object.keys(h),u=Object.keys($);return u.length!==E.length||!u.every(M=>E.includes(M))?false:u.every(M=>{let o=$[M],s=h[M];return !s||!o||typeof o=="function"||typeof s=="function"||typeof o=="number"||typeof o=="boolean"?false:o._params?o._params?.every((I,V)=>{if(typeof s=="number"||typeof s=="boolean")return true;{let G=ee(s._params),J=ee(o._params);return G?.[V]===J?.[V]}}):true})}function j($){let h=l.value.get($);if(h)return h;{let E=vue.ref(false),u=vue.ref(true),v=vue.ref({}),M=vue.ref(false);return l.value.set($,{$pending:E,$valid:u,$metadata:v,$validating:M}),{$pending:E,$valid:u,$metadata:v,$validating:M}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),i.value.clear();}),{addRuleDeclEntry:N,setDirtyEntry:B,checkRuleDeclEntry:w,getDirtyState:D,trySetRuleStatusRef:j,getFieldsEntry:m,getCollectionsEntry:f,getArrayStatus:y,addArrayStatus:S,deleteArrayStatus:b,arrayStatusStorage:i}}function Ve(e){return e.value instanceof Date||e.value instanceof File?false:ne(e.value)}function Je(e,t,r){let n=vue.effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function Fe(e,t,r){let n,l=(...i)=>new Promise(m=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...i])).then(m);},t);});return l.cancel=()=>{clearTimeout(n),n=undefined;},l}function Jt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let i=Number(r[l]),m=Number(n[l]);if(i>m)return 1;if(m>i)return -1;if(!isNaN(i)&&isNaN(m))return 1;if(isNaN(i)&&!isNaN(m))return -1}return 0}var _e=Jt(vue.version,"3.5.0")!==-1;function Yt(){return Math.floor(Math.random()*Date.now()).toString()}function he(){return typeof window>"u"?Yt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function ht(e,t){return Ve(e)||ne(t.value)&&!Y(t.value)&&!Object.entries(t.value).some(([r,n])=>Oe(n)||typeof n=="function")}function bt(e,t){return !!e.value&&ne(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Et(e){return !!e.value&&ne(e.value)}function Oe(e){return ne(e)&&"_validator"in e}function we(e){return typeof e.value!="function"}function Tt(e){return ne(e)&&"$fields"in e}function xt(e){return !!e&&"$rules"in e}function Ye({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Dt({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function Ct({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:i,$debounce:m,modifiers:f}){let S=vue.effectScope(),y={},b,B=vue.ref(false),{$pending:D,$valid:N,$metadata:w,$validating:a}=i.trySetRuleStatusRef(`${l}.${r}`);function j(){S=vue.effectScope(),y=S.run(()=>{let o=vue.ref(false),s=vue.ref(false),I=vue.ref(true),V=vue.ref(false),G=vue.ref(false),J=vue.computed(()=>({$value:n.value,$error:s.value,$dirty:o.value,$pending:V.value,$valid:G.value,$invalid:I.value,$rule:{$valid:N.value,$invalid:!N.value,$pending:D.value},$params:R.value,...w.value})),C=vue.computed(()=>we(t)?typeof t.value.active=="function"?t.value.active(J.value):!!t.value.active:true);function L(d){let T="",P=e?e[r]?.[d]:undefined;if(P&&(typeof P=="function"?T=P(J.value):T=P),we(t)){let X=`_${d}_patched`;P&&!t.value[X]||(typeof t.value[d]=="function"?T=t.value[d](J.value):T=t.value[d]??"");}return T}let ie=vue.computed(()=>{let d=L("message");return Y(d)&&(d="This field is not valid"),d}),de=vue.computed(()=>L("tooltip")),pe=vue.computed(()=>we(t)&&t.value.type?t.value.type:r),me=vue.computed(()=>we(t)?t.value.validator:t.value),R=vue.computed(()=>typeof t.value=="function"?[]:ee(t.value._params??[])),c=vue.computed(()=>`${l}.${pe.value}`);return {$active:C,$message:ie,$type:pe,$validator:me,$params:R,$path:c,$tooltip:de,$fieldValid:G,$fieldError:s,$fieldDirty:o,$fieldPending:V,$fieldInvalid:I}}),b=vue.watch(y?.$params,()=>{(f.$autoDirty.value||f.$rewardEarly.value&&y.$fieldError.value)&&u();});}j();function $(){N.value=true,y.$fieldDirty.value&&(D.value=true);}async function h(){let o=false;try{let s=y.$validator.value,I=s(n.value,...y.$params.value),V=n.value;$();let G;if(I instanceof Promise?G=await I:G=I,n.value!==V)return !0;if(typeof G=="boolean")o=G;else {let{$valid:J,...C}=G;o=J,w.value=C;}}catch{o=false;}finally{D.value=false;}return o}let E=Fe(h,m??200);async function u(){try{a.value=!0;let o=!1;if(Oe(t.value)&&t.value._async)o=await E();else {let s=y.$validator.value,I=s(n.value,...y.$params.value);if(I instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(I!=null)if(typeof I=="boolean")o=I;else {let{$valid:V,...G}=I;o=V,w.value=G;}}return N.value=o,o}catch{return false}finally{a.value=false;}}function v(){N.value=true,w.value={},D.value=false,a.value=false,j();}function M(){b(),S.stop(),S=vue.effectScope();}return vue.reactive({...y,$pending:D,$valid:N,$metadata:w,$haveAsync:B,$validating:a,$validate:u,$unwatch:M,$watch:j,$reset:v})}function Ne({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:i,options:m,externalErrors:f,schemaErrors:S,schemaMode:y,onUnwatch:b,$isArray:B,initialState:D,shortcuts:N}){let w=vue.effectScope(),a,j=[],$,h,E,u,v,M=()=>{};function o(){let g=t.value,_=i.checkRuleDeclEntry(n,g);L.value=Object.fromEntries(Object.entries(g).filter(([W])=>W.startsWith("$"))),V(),C.value=Object.fromEntries(Object.entries(t.value).filter(([W])=>!W.startsWith("$")).map(([W,x])=>{if(x){let se=vue.toRef(()=>x);return [W,Ct({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:se,ruleKey:W,state:e,path:n,storage:i,$debounce:L.value.$debounce})]}return []}).filter(W=>!!W.length)),a.processShortcuts(),s(),_?.valid!=null&&(a.$dirty.value=i.getDirtyState(n),a.$dirty.value&&M()),i.addRuleDeclEntry(n,g);}function s(){M=a.$debounce.value?Fe(J,a.$debounce.value??a.$haveAnyAsyncRule?100:0):J;}function I(){C.value&&Object.entries(C.value).forEach(([g,_])=>{_.$unwatch();}),E(),v?.(),a.$dirty.value&&i.setDirtyEntry(n,a.$dirty.value),$?.(),h?.(),w.stop(),w=vue.effectScope(),j.forEach(g=>g.stop()),j=[],b?.(),u?.();}function V(){C.value&&Object.entries(C.value).forEach(([g,_])=>{_.$watch();}),a=w.run(()=>{let g=vue.ref(false),_=vue.ref(false),W=vue.computed(()=>g.value),x=vue.computed(()=>L.value.$debounce),se=vue.computed(()=>L.value.$lazy!=null?L.value.$lazy:vue.unref(m.lazy)!=null?vue.unref(m.lazy):false),le=vue.computed(()=>L.value.$rewardEarly!=null?L.value.$rewardEarly:vue.unref(m.rewardEarly)!=null?vue.unref(m.rewardEarly):false),ge=vue.computed(()=>L.value.$clearExternalErrorsOnChange!=null?L.value.$clearExternalErrorsOnChange:vue.unref(m.clearExternalErrorsOnChange)!=null?vue.unref(m.clearExternalErrorsOnChange):true),U=vue.computed(()=>L.value.$autoDirty!=null?L.value.$autoDirty:vue.unref(m.autoDirty)!=null?vue.unref(m.autoDirty):!le.value),O=vue.computed(()=>Object.entries(C.value).some(([ae,ue])=>ue.$validating)),K=vue.computed({get:()=>e.value,set(ae){$(),e.value=ae,G();}}),$e=vue.computed(()=>ye.value&&!Pe.value&&g.value),ot=vue.computed(()=>Ye({field:{$error:$e.value,$externalErrors:f?.value,$schemaErrors:S?.value,$rules:C.value}})),st=vue.computed(()=>Ye({field:{$error:true,$externalErrors:f?.value,$schemaErrors:S?.value,$rules:C.value},silent:true})),We=vue.computed(()=>g.value?Be(D.value)&&Be(e.value)?Le(D.value).getDate()!==Le(e.value).getDate():D.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(D.value)?e.value.length!==D.value.length:D.value!==e.value:false),ut=vue.computed(()=>We.value),it=vue.computed(()=>Dt({field:{$rules:C.value}})),ct=vue.computed(()=>U.value?W.value&&!(ye.value||Pe.value):!(ye.value||Pe.value)),Pe=vue.computed(()=>_.value||!le.value?Object.entries(C.value).some(([ae,ue])=>ue.$pending):false),ye=vue.computed(()=>f?.value?.length||S?.value?.length?true:Me.value?false:!le.value||le.value&&_.value?Object.entries(C.value).some(([ae,ue])=>!ue.$valid):false),ft=vue.computed(()=>l),Me=vue.computed(()=>!!(Y(C.value)&&!y)),Rt=vue.computed(()=>f?.value?.length||Me.value?false:g.value&&!Y(e.value)&&!O.value?y?!S?.value?.length:Object.values(C.value).every(ae=>ae.$valid&&ae.$active):false),Nt=vue.computed(()=>Object.entries(C.value).some(([ae,ue])=>ue.$haveAsync));function Gt(){N?.fields&&Object.entries(N.fields).forEach(([ae,ue])=>{let pt=vue.effectScope();dt[ae]=pt.run(()=>{let mt=vue.ref();return vue.watchEffect(()=>{mt.value=ue(vue.reactive({$dirty:g,$externalErrors:f?.value??[],$value:e,$silentValue:K,$rules:C,$error:$e,$pending:Pe,$invalid:ye,$valid:Rt,$errors:ot,$ready:ct,$silentErrors:st,$anyDirty:W,$tooltips:it,$name:ft,$inactive:Me,$edited:We,$anyEdited:ut}));}),mt}),j.push(pt);});}let dt={};return vue.watch(ye,ae=>{ae||(_.value=false);}),{$error:$e,$pending:Pe,$invalid:ye,$valid:Rt,$debounce:x,$lazy:se,$errors:ot,$ready:ct,$silentErrors:st,$rewardEarly:le,$autoDirty:U,$clearExternalErrorsOnChange:ge,$anyDirty:W,$edited:We,$anyEdited:ut,$name:ft,$haveAnyAsyncRule:Nt,$shortcuts:dt,$validating:O,$tooltips:it,$dirty:g,triggerPunishment:_,processShortcuts:Gt,$silentValue:K,$inactive:Me}}),G(),E=vue.watch(a.$dirty,g=>{i.setDirtyEntry(n,g),Object.values(C.value).forEach(_=>{_.$fieldDirty=g;});}),v=vue.watch([a.$error,a.$valid,a.$invalid,a.$pending],()=>{Object.values(C.value).forEach(g=>{g.$fieldError=a.$error.value,g.$fieldInvalid=a.$invalid.value,g.$fieldPending=a.$pending.value,g.$fieldValid=a.$valid.value;});}),h=vue.watch(a.$valid,g=>{a.$rewardEarly.value&&g&&(a.triggerPunishment.value=false);}),u=vue.watch(a.$haveAnyAsyncRule,s);}function G(){$=vue.watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&o(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&M(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&c();},{deep:B?true:_e?1:true,flush:"post"});}function J(){Object.values(C.value).forEach(g=>{g.$validate();});}let C=vue.ref({}),L=vue.ref({});o();function ie(){c(),a.$dirty.value=false,a.triggerPunishment.value=false,i.setDirtyEntry(n,false),D.value=ne(e.value)?Q(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(C.value).forEach(([g,_])=>{_.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(C.value).forEach(g=>g.$validate());}function de(g=true,_=false){a.$dirty.value||(a.$dirty.value=true),_&&g?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&M():g&&M();}async function pe(){try{let g=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:g};return y?{result:!S?.value?.length,data:g}:Y(C.value)?{result:!0,data:g}:{result:(await Promise.allSettled(Object.entries(C.value).map(([x,se])=>se.$validate()))).every(x=>x.status==="fulfilled"?x.value===!0:!1),data:g}}catch{return {result:false,data:e.value}}}function me(){I(),e.value=Q(D),ie();}function R(g=true){return a.$dirty.value?e.value:g?{_null:true}:null}function c(){f?.value?.length&&(f.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&M();let{$shortcuts:d,$validating:T,$autoDirty:P,$rewardEarly:X,$clearExternalErrorsOnChange:p,$haveAnyAsyncRule:A,$debounce:H,$lazy:Z,triggerPunishment:z,...oe}=a;return vue.reactive({...oe,$externalErrors:f,$value:e,$rules:C,...d,$reset:ie,$touch:de,$validate:pe,$unwatch:I,$watch:V,$resetAll:me,$extractDirtyFields:R,$clearExternalErrors:c})}function Ze({$id:e,path:t,index:r,options:n,storage:l,stateValue:i,customMessages:m,rules:f,externalErrors:S,schemaErrors:y,initialState:b,shortcuts:B,fieldName:D,schemaMode:N}){let w=f.$key?f.$key:he(),a=`${t}.${String(w)}`;typeof i.value=="object"&&i.value!=null&&(i.value.$id?a=`${t}.${i.value.$id}`:Object.defineProperties(i.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let j=vue.toRef(S?.value??[],r),$=vue.computed(()=>y?.value?.[r]),h=Te({state:i,rulesDef:vue.toRef(()=>f),customMessages:m,path:a,storage:l,options:n,externalErrors:j,schemaErrors:$,initialState:b,shortcuts:B,fieldName:D,schemaMode:N});if(h){let E=i.value?.$id;h.$id=E??String(w),l.addArrayStatus(e,h.$id,h);}return h}function wt({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:i,externalErrors:m,schemaErrors:f,schemaMode:S,initialState:y,shortcuts:b,fieldName:B}){let D=vue.effectScope(),N,w=vue.effectScope(),a,j=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let $=vue.ref(),h=vue.ref(e.value),E,u=vue.ref({}),v=l.getCollectionsEntry(n);a=w.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(c=>typeof c!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(c=>Oe(c)||typeof c=="function"):false)})),M(),I();function M(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?($.value=he(),Object.defineProperties(e.value,{$id:{value:$.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&($.value=e.value.$id)),h.value=u.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?v.value=e.value.filter(R=>typeof R=="object").map((R,c)=>{let{scope:d,unwrapped:T}=Je(t.value.$each,vue.toRef(()=>R),c);d&&j.push(d);let P=vue.toRef(y.value??[],c),X=vue.toRef(m?.value??{},"$each"),p=vue.computed(()=>f?.value?.$each),A=Ze({$id:$.value,path:n,customMessages:r,rules:T??{},stateValue:vue.toRef(()=>R),index:c,options:i,storage:l,externalErrors:X,schemaErrors:p,initialState:P,shortcuts:b,fieldName:B,schemaMode:S});return A||null}).filter(R=>!!R):v.value=[],u.value=Ne({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:i,externalErrors:vue.toRef(m?.value??{},"$self"),schemaErrors:vue.computed(()=>f?.value?.$self),$isArray:true,initialState:y,shortcuts:b,fieldName:B,schemaMode:S});}function o(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let R=Q(v.value);v.value=e.value.filter(c=>typeof c=="object").map((c,d)=>{let T=vue.toRef(()=>c);if(c.$id&&v.value.find(P=>P.$id===c.$id)){let P=l.getArrayStatus($.value,c.$id);return P?(P.$value=T,P):null}else {let{scope:P,unwrapped:X}=Je(t.value.$each,T,d);P&&j.push(P);let p=vue.toRef(m?.value??{},"$each"),A=vue.computed(()=>f?.value?.$each??[]),H=Ze({$id:$.value,path:n,customMessages:r,rules:X??{},stateValue:T,index:d,options:i,storage:l,externalErrors:p,schemaErrors:A,initialState:vue.toRef(y.value??[],d),shortcuts:b,fieldName:B,schemaMode:S});return H||null}}).filter(c=>!!c),R.filter(c=>!e.value?.find(d=>c.$id===d.$id)).forEach((c,d)=>{l.deleteArrayStatus($.value,d.toString());});}else v.value=[];}function s(){E=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?M():o();},{deep:_e?1:true,flush:"pre"});}function I(){s(),D=vue.effectScope(),N=D.run(()=>{let R=vue.computed({get:()=>e.value,set(x){E(),e.value=x,s();}}),c=vue.computed(()=>u.value.$dirty&&(!v.value.length||v.value.every(x=>x.$dirty))),d=vue.computed(()=>u.value.$anyDirty||v.value.some(x=>x.$anyDirty)),T=vue.computed(()=>u.value.$invalid||v.value.some(x=>x.$invalid)),P=vue.computed(()=>(Y(u.value.$rules)?true:u.value.$valid)&&(!v.value.length||v.value.every(x=>x.$valid))),X=vue.computed(()=>u.value.$error||v.value.some(x=>x.$error)),p=vue.computed(()=>!(T.value||A.value)),A=vue.computed(()=>u.value.$pending||v.value.some(x=>x.$pending)),H=vue.computed(()=>!!v.value.length&&v.value.every(x=>x.$edited)),Z=vue.computed(()=>u.value.$anyEdited||v.value.some(x=>x.$anyEdited)),z=vue.computed(()=>({$self:u.value.$errors,$each:v.value.map(x=>x.$errors)})),oe=vue.computed(()=>({$self:u.value.$silentErrors,$each:v.value.map(x=>x.$silentErrors)})),g=vue.computed(()=>B);function _(){b?.collections&&Object.entries(b?.collections).forEach(([x,se])=>{let le=vue.effectScope();W[x]=le.run(()=>{let ge=vue.ref();return vue.watchEffect(()=>{ge.value=se(vue.reactive({$dirty:c,$error:X,$silentValue:R,$pending:A,$invalid:T,$valid:P,$errors:z,$ready:p,$silentErrors:oe,$anyDirty:d,$name:g,$each:v,$self:u,$value:e,$edited:H,$anyEdited:Z}));}),ge}),j.push(le);});}let W={};return _(),{$dirty:c,$anyDirty:d,$invalid:T,$valid:P,$error:X,$pending:A,$errors:z,$silentErrors:oe,$ready:p,$name:g,$shortcuts:W,$silentValue:R,$edited:H,$anyEdited:Z}}),a.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function V(){E&&E(),u.value&&u.value.$unwatch(),v.value&&v.value.forEach(R=>{"$dirty"in R&&R.$unwatch();}),D.stop(),D=vue.effectScope(),w.stop(),w=vue.effectScope(true),j.forEach(R=>R.stop()),j=[];}function G(R=true,c=false){u.value.$touch(R,c),v.value.forEach(d=>{d.$touch(R,c);});}function J(){u.value.$reset(),v.value.forEach(R=>{R.$reset();});}async function C(){let R=e.value;try{return {result:(await Promise.allSettled([u.value.$validate(),...v.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:R}}catch{return {result:false,data:R}}}function L(){u.value.$clearExternalErrors(),v.value.forEach(R=>{R.$clearExternalErrors();});}function ie(R=true){let c=v.value.map(d=>{if(Tt(d))return d.$extractDirtyFields(R)});return R&&c.every(d=>Y(d))&&(c=[]),c}function de(){V(),e.value=Q(y.value),J();}let{$shortcuts:pe,...me}=N;return vue.reactive({$self:u,...me,...pe,$each:v,$value:e,$validate:C,$unwatch:V,$watch:I,$touch:G,$reset:J,$resetAll:de,$extractDirtyFields:ie,$clearExternalErrors:L})}function Ue({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:i,rootSchemaErrors:m,validationGroups:f,initialState:S,fieldName:y,...b}){let B=vue.effectScope(),D,N=[],w=null,a=null,j=null,$=null;async function E(R=true){let c=Object.entries(e.value),d=Object.fromEntries(c.filter(([p,A])=>!!A).map(([p,A])=>{if(A){let H=vue.toRef(t.value??{},p),Z=vue.toRef(()=>A),z=vue.toRef(l?.value??{},p),oe=vue.computed(()=>i?.value?.[p]),g=vue.toRef(S?.value??{},p);return [p,Te({state:H,rulesDef:Z,path:r?`${r}.${p}`:p,externalErrors:z,schemaErrors:oe,initialState:g,fieldName:p,...b})]}return []})),T=Object.fromEntries(Object.entries(vue.unref(l)??{}).filter(([p,A])=>!(p in e.value)&&!!A).map(([p])=>{let A=vue.toRef(t.value??{},p),H=vue.toRef(l?.value??{},p),Z=vue.computed(()=>i?.value?.[p]),z=vue.toRef(S?.value??{},p);return [p,Te({state:A,rulesDef:vue.computed(()=>({})),path:r?`${r}.${p}`:p,externalErrors:H,schemaErrors:Z,initialState:z,fieldName:p,...b})]})),P=Object.fromEntries(Object.entries(vue.unref(i)??{}).map(([p])=>{let A=vue.toRef(t.value??{},p),H=vue.toRef(l?.value??{},p),Z=vue.computed(()=>i?.value?.[p]),z=vue.toRef(S?.value??{},p);return [p,Te({state:A,rulesDef:vue.computed(()=>({})),path:r?`${r}.${p}`:p,externalErrors:H,schemaErrors:Z,initialState:z,fieldName:p,...b})]})),X=Object.fromEntries(Object.entries(t.value??{}).filter(([p])=>!(p in e.value)&&!(p in(T??{}))&&!(p in(P??{}))).map(([p])=>{let A=vue.toRef(t.value??{},p),H=vue.toRef(l?.value??{},p),Z=vue.computed(()=>i?.value?.[p]),z=vue.toRef(S?.value??{},p);return [p,Te({state:A,rulesDef:vue.computed(()=>({})),path:r?`${r}.${p}`:p,externalErrors:H,schemaErrors:Z,initialState:z,fieldName:p,...b})]}));u.value={...d,...T,...P,...X},R&&o();}let u=b.storage.getFieldsEntry(r);E();function v(){l&&(j=vue.watch(l,()=>{s(),E();},{deep:true}));}function M(){$=vue.watch(t,()=>{s(),E(),G(true,true);},{flush:"sync"});}function o(){n&&(w?.(),w=vue.watch(n,()=>{s(),E();},{deep:true,flush:"post"}),v()),m&&(a?.(),a=vue.watch(m,()=>{s(),E();},{deep:true,flush:"post"})),M(),D=B.run(()=>{let R=vue.computed({get:()=>t.value,set(U){s(),t.value=U,E();}}),c=vue.computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([U,O])=>O?.$dirty)),d=vue.computed(()=>Object.entries(u.value).some(([U,O])=>O?.$anyDirty)),T=vue.computed(()=>Object.entries(u.value).some(([U,O])=>O?.$invalid)),P=vue.computed(()=>{let U=Object.entries(u.value).filter(([O,K])=>xt(K)?!K.$inactive:true);return U.length?U.every(([O,K])=>K?.$valid):false}),X=vue.computed(()=>d.value&&!z.value&&T.value),p=vue.computed(()=>vue.unref(b.options.rewardEarly)!=null?vue.unref(b.options.rewardEarly):false),A=vue.computed(()=>vue.unref(b.options.autoDirty)!=null?vue.unref(b.options.autoDirty):!p.value),H=vue.computed(()=>A.value?d.value&&!(T.value||z.value):!(T.value||z.value)),Z=vue.ref(false),z=vue.computed(()=>Z.value||Object.entries(u.value).some(([U,O])=>O?.$pending)),oe=vue.computed(()=>Object.fromEntries(Object.entries(u.value).map(([U,O])=>[U,O?.$errors]))),g=vue.computed(()=>Object.fromEntries(Object.entries(u.value).map(([U,O])=>[U,O?.$silentErrors]))),_=vue.computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([U,O])=>O?.$edited)),W=vue.computed(()=>Object.entries(u.value).some(([U,O])=>O?.$anyEdited)),x=vue.computed(()=>y);function se(){b.shortcuts?.nested&&Object.entries(b.shortcuts.nested).forEach(([U,O])=>{let K=vue.effectScope();ge[U]=K.run(()=>{let $e=vue.ref();return vue.watchEffect(()=>{$e.value=O(vue.reactive({$dirty:c,$value:t,$silentValue:R,$error:X,$pending:z,$invalid:T,$valid:P,$ready:H,$anyDirty:d,$name:x,$silentErrors:g,$errors:oe,$fields:u,$edited:_,$anyEdited:W}));}),$e}),N.push(K);});}let le=vue.computed({get:()=>f?Object.fromEntries(Object.entries(f?.(u.value)??{}).map(([U,O])=>O.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(K=>[K,$t(O,K)])),...Object.fromEntries(["$errors","$silentErrors"].map(K=>[K,yt(O,K)]))}]:[])):{},set(){}}),ge={};return se(),{$dirty:c,$anyDirty:d,$invalid:T,$valid:P,$error:X,$pending:z,$errors:oe,$silentErrors:g,$ready:H,$name:x,$shortcuts:ge,$groups:le,$silentValue:R,$edited:_,$anyEdited:W,$localPending:Z}});}function s(){w?.(),j?.(),$?.(),a?.(),N=[],D={},u.value&&Object.entries(u.value).forEach(([R,c])=>{c.$unwatch();});}function I(){Object.entries(u.value).forEach(([R,c])=>{c.$clearExternalErrors();});}function V(){j?.(),Object.values(u.value).forEach(R=>{R.$reset();}),S.value={...Q(t.value)},v();}function G(R=true,c=false){Object.values(u.value).forEach(d=>{d.$touch(R,c);});}async function J(){s(),t.value=Q({...S.value??{}}),V(),E();}function C(R){return R.filter(([c,d])=>ne(d)?!(d&&typeof d=="object"&&"_null"in d)&&!Y(d):Array.isArray(d)?d.length:true)}function L(R=true){let c=Object.entries(u.value).map(([d,T])=>[d,T.$extractDirtyFields(R)]);return R&&(c=C(c)),Object.fromEntries(c)}async function ie(){try{if(b.schemaMode)return b.onValidate?(G(!1),D.$localPending.value=!0,b.onValidate()):{result:!1,data:t.value};{let R=t.value;return {result:(await Promise.allSettled(Object.values(u.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:R}}}catch{return {result:false,data:t.value}}finally{D.$localPending.value=false;}}let{$shortcuts:de,$localPending:pe,...me}=D;return vue.reactive({...me,...de,$fields:u,$value:t,$resetAll:J,$reset:V,$touch:G,$validate:ie,$unwatch:s,$watch:o,$clearExternalErrors:I,$extractDirtyFields:L})}function Te({rulesDef:e,...t}){if(bt(e,t.state))return wt({rulesDef:e,...t});if(ht(t.state,e)){if(Ve(t.state))return Ue({rulesDef:e,...t});{let n=vue.effectScope().run(()=>{let m=vue.toRef(t.state.value?t.state:vue.ref({}));return vue.watch(()=>t.state.value,f=>{m.value=f;},{deep:true}),vue.watch(m,f=>{t.state.value=f;},{deep:true}),{fakeState:m}}),{state:l,...i}=t;return Ue({rulesDef:e,...i,state:n.fakeState})}}else if(Et(e))return Ne({rulesDef:e,...t})}function Ie({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:i,schemaErrors:m,schemaMode:f=false,onValidate:S}){let y=Ke(),b=vue.ref();return b.value=Ue({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:y,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:i,fieldName:"root",path:"",schemaErrors:m,rootSchemaErrors:m,schemaMode:f,onValidate:S}),vue.getCurrentScope()&&vue.onScopeDispose(()=>{b.value?.$unwatch();}),vue.reactive({regle:b})}function rt(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(i,m,f){let S=vue.isRef(m)?m:vue.computed(typeof m=="function"?m:()=>m),y={...n,...f},b=vue.isRef(i)?i:vue.ref(i),B=vue.ref({...Q(b.value)});return {r$:Ie({scopeRules:S,state:b,options:y,initialState:B,customRules:e,shortcuts:r}).regle}}return l}var ke=rt();function nt(){function e(t,r){return r}return e}var at=nt();function Vt({rules:e,modifiers:t,shortcuts:r}){let n=rt(e,t,r),l=nt();return {useRegle:n,inferRules:l}}function je(e,t){let r=t??false,n=vue.computed({get:()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$value])),set:o=>{typeof o=="object"&&Object.entries(o).forEach(([s,I])=>e[s].$value=I);}}),l=vue.computed({get:()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentValue])),set:o=>{typeof o=="object"&&Object.entries(o).forEach(([s,I])=>e[s].$silentValue=I);}}),i=vue.computed(()=>Object.entries(e).every(([o,s])=>s?.$dirty)),m=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$anyDirty)),f=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$invalid)),S=vue.computed(()=>Object.entries(e).every(([o,s])=>s?.$invalid)),y=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$error)),b=vue.computed(()=>Object.entries(e).every(([o,s])=>s?.$ready)),B=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$pending)),D=vue.computed(()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$errors]))),N=vue.computed(()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentErrors]))),w=vue.computed(()=>Object.entries(e).every(([o,s])=>s?.$edited)),a=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$anyEdited)),j=vue.computed(()=>e);function $(){Object.values(e).forEach(o=>{o.$reset();});}function h(){Object.values(e).forEach(o=>{o.$touch();});}function E(){Object.values(e).forEach(o=>{o.$resetAll();});}function u(o=true){return Object.values(e).map(s=>s.$extractDirtyFields(o))}function v(){Object.values(e).forEach(o=>{o.$clearExternalErrors();});}async function M(){try{let o=n.value;return {result:(await Promise.allSettled(Object.values(e).map(V=>V.$validate()))).every(V=>V.status==="fulfilled"?V.value.result===!0:!1),data:o}}catch{return {result:false,data:n.value}}}return vue.reactive({...!r&&{$instances:j,$value:n,$silentValue:l,$errors:D,$silentErrors:N},$dirty:i,$anyDirty:m,$invalid:f,$valid:S,$error:y,$pending:B,$ready:b,$edited:w,$anyEdited:a,$resetAll:E,$reset:$,$touch:h,$validate:M,$extractDirtyFields:u,$clearExternalErrors:v})}function Ft(e){function t(){let r=vue.ref(je(e.value,true)),n=vue.reactive({r$:r});return vue.watch(e,l=>{r.value=je(l,true);}),{r$:n.r$}}return {useCollectNestedValidations:t}}function _t(e){let t=e??ke,r=vue.ref({});return {useNestedRegle:(l,i,m)=>{let f=he(),{r$:S}=t(l,i,m);r.value[f]=S,vue.onScopeDispose(()=>{delete r.value[f];});function y(){delete r.value[f];}return {r$:S,$dispose:y}},instances:r}}function lt(e){let{instances:t,useNestedRegle:r}=_t(e),{useCollectNestedValidations:n}=Ft(t);return {useNestedRegle:r,useCollectNestedValidations:n}}
2
- exports.InternalRuleType=He;exports.createNestedUseRegle=lt;exports.createRule=qe;exports.defineRegleConfig=Vt;exports.inferRules=at;exports.mergeRegles=je;exports.unwrapRuleParameters=ee;exports.useRegle=ke;exports.useRootStorage=Ie;
1
+ 'use strict';var vue=require('vue');function Y(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var gt=Symbol("regle-rule");function Ut(e){if(typeof e.source.flags=="string")return e.source.flags;{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 Q(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>Q(n)))),r=="Map"&&(t=new Map([...e].map(n=>[Q(n[0]),Q(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Ut(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=Q(e[n]);}return t}function ne(e){return e instanceof Date||e instanceof File?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Be(e){if(Y(e))return false;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let r=new Date(e);if(r.toString()==="Invalid Date")return !1;t=r;}return !!t}catch{return false}}function Le(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]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}var He=(r=>(r.Inline="__inline",r.Async="__async",r))(He||{});function $t(e,t){return e.some(r=>r[t])}function yt(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function ee(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function vt(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function St(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(m=>m.trim()).filter(m=>m.length>0).length:0}function ze(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(f,...S){return e.validator(f,...ee(S.length?S:t))},message(f){return typeof e.message=="function"?e.message({...f,$params:ee(f?.$params?.length?f.$params:t)}):e.message},active(f){return typeof e.active=="function"?e.active({...f,$params:ee(f?.$params?.length?f.$params:t)}):e.active??true},tooltip(f){return typeof e.tooltip=="function"?e.tooltip({...f,$params:ee(f?.$params?.length?f.$params:t)}):e.tooltip??[]},exec(f){let S=e.validator(f,...ee(t)),y;return S instanceof Promise?S.then(b=>(y=b,typeof y=="object"&&"$valid"in y?y.$valid:typeof y=="boolean"?y:false)):(y=S,typeof y=="object"&&"$valid"in y?y.$valid:typeof y=="boolean"?y:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:l,_params:vt(t),_brand:gt}}function qe(e){if(typeof e.validator=="function"){let r=ze(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(St(e.validator)>1){let l=function(...i){return ze(e,...i)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=false,l._tooltip_pacthed=false,l._async=n,l}else return r}throw new Error("Validator must be a function")}function Ke(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),l=vue.shallowRef(new Map),i=vue.shallowRef(new Map);function m($){let h=t.value.get($);if(h)return h;{let E=vue.ref({});return t.value.set($,E),E}}function f($){let h=r.value.get($);if(h)return h;{let E=vue.ref([]);return r.value.set($,E),E}}function S($,h,E){i.value.set(`${$}-${h}`,E);}function y($,h){return i.value.get(`${$}-${h}`)}function b($,h){$&&h!=null&&i.value.delete(`${$}-${h}`);}function B($,h){n.value.set($,h);}function D($){return n.value.get($)??false}function N($,h){e.value.set($,h);}function w($,h){let E=e.value.get($);return E?a(h,E)?{valid:true}:{valid:false}:undefined}function a($,h){let E=Object.keys(h),u=Object.keys($);return u.length!==E.length||!u.every(M=>E.includes(M))?false:u.every(M=>{let o=$[M],s=h[M];return !s||!o||typeof o=="function"||typeof s=="function"||typeof o=="number"||typeof o=="boolean"?false:o._params?o._params?.every((I,V)=>{if(typeof s=="number"||typeof s=="boolean")return true;{let G=ee(s._params),J=ee(o._params);return G?.[V]===J?.[V]}}):true})}function j($){let h=l.value.get($);if(h)return h;{let E=vue.ref(false),u=vue.ref(true),v=vue.ref({}),M=vue.ref(false);return l.value.set($,{$pending:E,$valid:u,$metadata:v,$validating:M}),{$pending:E,$valid:u,$metadata:v,$validating:M}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),i.value.clear();}),{addRuleDeclEntry:N,setDirtyEntry:B,checkRuleDeclEntry:w,getDirtyState:D,trySetRuleStatusRef:j,getFieldsEntry:m,getCollectionsEntry:f,getArrayStatus:y,addArrayStatus:S,deleteArrayStatus:b,arrayStatusStorage:i}}function Ve(e){return e.value instanceof Date||e.value instanceof File?false:ne(e.value)}function Je(e,t,r){let n=vue.effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function Fe(e,t,r){let n,l=(...i)=>new Promise(m=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...i])).then(m);},t);});return l.cancel=()=>{clearTimeout(n),n=undefined;},l}function Jt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let i=Number(r[l]),m=Number(n[l]);if(i>m)return 1;if(m>i)return -1;if(!isNaN(i)&&isNaN(m))return 1;if(isNaN(i)&&!isNaN(m))return -1}return 0}var _e=Jt(vue.version,"3.5.0")!==-1;function Yt(){return Math.floor(Math.random()*Date.now()).toString()}function he(){return typeof window>"u"?Yt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function ht(e,t){return Ve(e)||ne(t.value)&&!Y(t.value)&&!Object.entries(t.value).some(([r,n])=>Oe(n)||typeof n=="function")}function bt(e,t){return !!e.value&&ne(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Et(e){return !!e.value&&ne(e.value)}function Oe(e){return ne(e)&&"_validator"in e}function we(e){return typeof e.value!="function"}function Tt(e){return ne(e)&&"$fields"in e}function xt(e){return !!e&&"$rules"in e}function Ye({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Dt({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function Ct({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:i,$debounce:m,modifiers:f}){let S=vue.effectScope(),y={},b,B=vue.ref(false),{$pending:D,$valid:N,$metadata:w,$validating:a}=i.trySetRuleStatusRef(`${l}.${r}`);function j(){S=vue.effectScope(),y=S.run(()=>{let o=vue.ref(false),s=vue.ref(false),I=vue.ref(true),V=vue.ref(false),G=vue.ref(false),J=vue.computed(()=>({$value:n.value,$error:s.value,$dirty:o.value,$pending:V.value,$valid:G.value,$invalid:I.value,$rule:{$valid:N.value,$invalid:!N.value,$pending:D.value},$params:R.value,...w.value})),C=vue.computed(()=>we(t)?typeof t.value.active=="function"?t.value.active(J.value):!!t.value.active:true);function L(d){let T="",P=e?e[r]?.[d]:undefined;if(P&&(typeof P=="function"?T=P(J.value):T=P),we(t)){let X=`_${d}_patched`;P&&!t.value[X]||(typeof t.value[d]=="function"?T=t.value[d](J.value):T=t.value[d]??"");}return T}let ie=vue.computed(()=>{let d=L("message");return Y(d)&&(d="This field is not valid"),d}),de=vue.computed(()=>L("tooltip")),pe=vue.computed(()=>we(t)&&t.value.type?t.value.type:r),me=vue.computed(()=>we(t)?t.value.validator:t.value),R=vue.computed(()=>typeof t.value=="function"?[]:ee(t.value._params??[])),c=vue.computed(()=>`${l}.${pe.value}`);return {$active:C,$message:ie,$type:pe,$validator:me,$params:R,$path:c,$tooltip:de,$fieldValid:G,$fieldError:s,$fieldDirty:o,$fieldPending:V,$fieldInvalid:I}}),b=vue.watch(y?.$params,()=>{(f.$autoDirty.value||f.$rewardEarly.value&&y.$fieldError.value)&&u();});}j();function $(){N.value=true,y.$fieldDirty.value&&(D.value=true);}async function h(){let o=false;try{let s=y.$validator.value,I=s(n.value,...y.$params.value),V=n.value;$();let G;if(I instanceof Promise?G=await I:G=I,n.value!==V)return !0;if(typeof G=="boolean")o=G;else {let{$valid:J,...C}=G;o=J,w.value=C;}}catch{o=false;}finally{D.value=false;}return o}let E=Fe(h,m??200);async function u(){try{a.value=!0;let o=!1;if(Oe(t.value)&&t.value._async)o=await E();else {let s=y.$validator.value,I=s(n.value,...y.$params.value);if(I instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(I!=null)if(typeof I=="boolean")o=I;else {let{$valid:V,...G}=I;o=V,w.value=G;}}return N.value=o,o}catch{return false}finally{a.value=false;}}function v(){N.value=true,w.value={},D.value=false,a.value=false,j();}function M(){b(),S.stop(),S=vue.effectScope();}return vue.reactive({...y,$pending:D,$valid:N,$metadata:w,$haveAsync:B,$validating:a,$validate:u,$unwatch:M,$watch:j,$reset:v})}function Ne({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:i,options:m,externalErrors:f,schemaErrors:S,schemaMode:y,onUnwatch:b,$isArray:B,initialState:D,shortcuts:N}){let w=vue.effectScope(),a,j=[],$,h,E,u,v,M=()=>{};function o(){let g=t.value,_=i.checkRuleDeclEntry(n,g);L.value=Object.fromEntries(Object.entries(g).filter(([W])=>W.startsWith("$"))),V(),C.value=Object.fromEntries(Object.entries(t.value).filter(([W])=>!W.startsWith("$")).map(([W,x])=>{if(x){let se=vue.toRef(()=>x);return [W,Ct({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:se,ruleKey:W,state:e,path:n,storage:i,$debounce:L.value.$debounce})]}return []}).filter(W=>!!W.length)),a.processShortcuts(),s(),_?.valid!=null&&(a.$dirty.value=i.getDirtyState(n),a.$dirty.value&&M()),i.addRuleDeclEntry(n,g);}function s(){M=a.$debounce.value?Fe(J,a.$debounce.value??a.$haveAnyAsyncRule?100:0):J;}function I(){C.value&&Object.entries(C.value).forEach(([g,_])=>{_.$unwatch();}),E(),v?.(),a.$dirty.value&&i.setDirtyEntry(n,a.$dirty.value),$?.(),h?.(),w.stop(),w=vue.effectScope(),j.forEach(g=>g.stop()),j=[],b?.(),u?.();}function V(){C.value&&Object.entries(C.value).forEach(([g,_])=>{_.$watch();}),a=w.run(()=>{let g=vue.ref(false),_=vue.ref(false),W=vue.computed(()=>g.value),x=vue.computed(()=>L.value.$debounce),se=vue.computed(()=>L.value.$lazy!=null?L.value.$lazy:vue.unref(m.lazy)!=null?vue.unref(m.lazy):false),le=vue.computed(()=>L.value.$rewardEarly!=null?L.value.$rewardEarly:vue.unref(m.rewardEarly)!=null?vue.unref(m.rewardEarly):false),ge=vue.computed(()=>L.value.$clearExternalErrorsOnChange!=null?L.value.$clearExternalErrorsOnChange:vue.unref(m.clearExternalErrorsOnChange)!=null?vue.unref(m.clearExternalErrorsOnChange):true),U=vue.computed(()=>L.value.$autoDirty!=null?L.value.$autoDirty:vue.unref(m.autoDirty)!=null?vue.unref(m.autoDirty):!le.value),O=vue.computed(()=>Object.entries(C.value).some(([ae,ue])=>ue.$validating)),K=vue.computed({get:()=>e.value,set(ae){$(),e.value=ae,G();}}),$e=vue.computed(()=>ye.value&&!Pe.value&&g.value),ot=vue.computed(()=>Ye({field:{$error:$e.value,$externalErrors:f?.value,$schemaErrors:S?.value,$rules:C.value}})),st=vue.computed(()=>Ye({field:{$error:true,$externalErrors:f?.value,$schemaErrors:S?.value,$rules:C.value},silent:true})),We=vue.computed(()=>g.value?Be(D.value)&&Be(e.value)?Le(D.value).getDate()!==Le(e.value).getDate():D.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(D.value)?e.value.length!==D.value.length:D.value!==e.value:false),ut=vue.computed(()=>We.value),it=vue.computed(()=>Dt({field:{$rules:C.value}})),ct=vue.computed(()=>U.value?W.value&&!(ye.value||Pe.value):!(ye.value||Pe.value)),Pe=vue.computed(()=>_.value||!le.value?Object.entries(C.value).some(([ae,ue])=>ue.$pending):false),ye=vue.computed(()=>f?.value?.length||S?.value?.length?true:Me.value?false:!le.value||le.value&&_.value?Object.entries(C.value).some(([ae,ue])=>!ue.$valid):false),ft=vue.computed(()=>l),Me=vue.computed(()=>!!(Y(C.value)&&!y)),Rt=vue.computed(()=>f?.value?.length||Me.value?false:g.value&&!Y(e.value)&&!O.value?y?!S?.value?.length:Object.values(C.value).every(ae=>ae.$valid&&ae.$active):false),Nt=vue.computed(()=>Object.entries(C.value).some(([ae,ue])=>ue.$haveAsync));function Gt(){N?.fields&&Object.entries(N.fields).forEach(([ae,ue])=>{let pt=vue.effectScope();dt[ae]=pt.run(()=>{let mt=vue.ref();return vue.watchEffect(()=>{mt.value=ue(vue.reactive({$dirty:g,$externalErrors:f?.value??[],$value:e,$silentValue:K,$rules:C,$error:$e,$pending:Pe,$invalid:ye,$valid:Rt,$errors:ot,$ready:ct,$silentErrors:st,$anyDirty:W,$tooltips:it,$name:ft,$inactive:Me,$edited:We,$anyEdited:ut}));}),mt}),j.push(pt);});}let dt={};return vue.watch(ye,ae=>{ae||(_.value=false);}),{$error:$e,$pending:Pe,$invalid:ye,$valid:Rt,$debounce:x,$lazy:se,$errors:ot,$ready:ct,$silentErrors:st,$rewardEarly:le,$autoDirty:U,$clearExternalErrorsOnChange:ge,$anyDirty:W,$edited:We,$anyEdited:ut,$name:ft,$haveAnyAsyncRule:Nt,$shortcuts:dt,$validating:O,$tooltips:it,$dirty:g,triggerPunishment:_,processShortcuts:Gt,$silentValue:K,$inactive:Me}}),G(),E=vue.watch(a.$dirty,g=>{i.setDirtyEntry(n,g),Object.values(C.value).forEach(_=>{_.$fieldDirty=g;});}),v=vue.watch([a.$error,a.$valid,a.$invalid,a.$pending],()=>{Object.values(C.value).forEach(g=>{g.$fieldError=a.$error.value,g.$fieldInvalid=a.$invalid.value,g.$fieldPending=a.$pending.value,g.$fieldValid=a.$valid.value;});}),h=vue.watch(a.$valid,g=>{a.$rewardEarly.value&&g&&(a.triggerPunishment.value=false);}),u=vue.watch(a.$haveAnyAsyncRule,s);}function G(){$=vue.watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&o(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&M(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&c();},{deep:B?true:_e?1:true,flush:"post"});}function J(){Object.values(C.value).forEach(g=>{g.$validate();});}let C=vue.ref({}),L=vue.ref({});o();function ie(){c(),a.$dirty.value=false,a.triggerPunishment.value=false,i.setDirtyEntry(n,false),D.value=ne(e.value)?Q(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(C.value).forEach(([g,_])=>{_.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(C.value).forEach(g=>g.$validate());}function de(g=true,_=false){a.$dirty.value||(a.$dirty.value=true),_&&g?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&M():g&&M();}async function pe(){try{let g=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:g};return y?{result:!S?.value?.length,data:g}:Y(C.value)?{result:!0,data:g}:{result:(await Promise.allSettled(Object.entries(C.value).map(([x,se])=>se.$validate()))).every(x=>x.status==="fulfilled"?x.value===!0:!1),data:g}}catch{return {result:false,data:e.value}}}function me(){I(),e.value=Q(D),ie();}function R(g=true){return a.$dirty.value?e.value:g?{_null:true}:null}function c(){f?.value?.length&&(f.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&M();let{$shortcuts:d,$validating:T,$autoDirty:P,$rewardEarly:X,$clearExternalErrorsOnChange:p,$haveAnyAsyncRule:A,$debounce:H,$lazy:Z,triggerPunishment:z,...oe}=a;return vue.reactive({...oe,$externalErrors:f,$value:e,$rules:C,...d,$reset:ie,$touch:de,$validate:pe,$unwatch:I,$watch:V,$resetAll:me,$extractDirtyFields:R,$clearExternalErrors:c})}function Ze({$id:e,path:t,index:r,options:n,storage:l,stateValue:i,customMessages:m,rules:f,externalErrors:S,schemaErrors:y,initialState:b,shortcuts:B,fieldName:D,schemaMode:N}){let w=f.$key?f.$key:he(),a=`${t}.${String(w)}`;typeof i.value=="object"&&i.value!=null&&(i.value.$id?a=`${t}.${i.value.$id}`:Object.defineProperties(i.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let j=vue.toRef(S?.value??[],r),$=vue.computed(()=>y?.value?.[r]),h=Te({state:i,rulesDef:vue.toRef(()=>f),customMessages:m,path:a,storage:l,options:n,externalErrors:j,schemaErrors:$,initialState:b,shortcuts:B,fieldName:D,schemaMode:N});if(h){let E=i.value?.$id;h.$id=E??String(w),l.addArrayStatus(e,h.$id,h);}return h}function wt({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:i,externalErrors:m,schemaErrors:f,schemaMode:S,initialState:y,shortcuts:b,fieldName:B}){let D=vue.effectScope(),N,w=vue.effectScope(),a,j=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let $=vue.ref(),h=vue.ref(e.value),E,u=vue.ref({}),v=l.getCollectionsEntry(n);a=w.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(c=>typeof c!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(c=>Oe(c)||typeof c=="function"):false)})),M(),I();function M(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?($.value=he(),Object.defineProperties(e.value,{$id:{value:$.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&($.value=e.value.$id)),h.value=u.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?v.value=e.value.filter(R=>typeof R=="object").map((R,c)=>{let{scope:d,unwrapped:T}=Je(t.value.$each,vue.toRef(()=>R),c);d&&j.push(d);let P=vue.toRef(y.value??[],c),X=vue.toRef(m?.value??{},"$each"),p=vue.computed(()=>f?.value?.$each),A=Ze({$id:$.value,path:n,customMessages:r,rules:T??{},stateValue:vue.toRef(()=>R),index:c,options:i,storage:l,externalErrors:X,schemaErrors:p,initialState:P,shortcuts:b,fieldName:B,schemaMode:S});return A||null}).filter(R=>!!R):v.value=[],u.value=Ne({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:i,externalErrors:vue.toRef(m?.value??{},"$self"),schemaErrors:vue.computed(()=>f?.value?.$self),$isArray:true,initialState:y,shortcuts:b,fieldName:B,schemaMode:S});}function o(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let R=Q(v.value);v.value=e.value.filter(c=>typeof c=="object").map((c,d)=>{let T=vue.toRef(()=>c);if(c.$id&&v.value.find(P=>P.$id===c.$id)){let P=l.getArrayStatus($.value,c.$id);return P?(P.$value=T,P):null}else {let{scope:P,unwrapped:X}=Je(t.value.$each,T,d);P&&j.push(P);let p=vue.toRef(m?.value??{},"$each"),A=vue.computed(()=>f?.value?.$each??[]),H=Ze({$id:$.value,path:n,customMessages:r,rules:X??{},stateValue:T,index:d,options:i,storage:l,externalErrors:p,schemaErrors:A,initialState:vue.toRef(y.value??[],d),shortcuts:b,fieldName:B,schemaMode:S});return H||null}}).filter(c=>!!c),R.filter(c=>!e.value?.find(d=>c.$id===d.$id)).forEach((c,d)=>{l.deleteArrayStatus($.value,d.toString());});}else v.value=[];}function s(){E=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?M():o();},{deep:_e?1:true,flush:"pre"});}function I(){s(),D=vue.effectScope(),N=D.run(()=>{let R=vue.computed({get:()=>e.value,set(x){E(),e.value=x,s();}}),c=vue.computed(()=>u.value.$dirty&&(!v.value.length||v.value.every(x=>x.$dirty))),d=vue.computed(()=>u.value.$anyDirty||v.value.some(x=>x.$anyDirty)),T=vue.computed(()=>u.value.$invalid||v.value.some(x=>x.$invalid)),P=vue.computed(()=>(Y(u.value.$rules)?true:u.value.$valid)&&(!v.value.length||v.value.every(x=>x.$valid))),X=vue.computed(()=>u.value.$error||v.value.some(x=>x.$error)),p=vue.computed(()=>!(T.value||A.value)),A=vue.computed(()=>u.value.$pending||v.value.some(x=>x.$pending)),H=vue.computed(()=>!!v.value.length&&v.value.every(x=>x.$edited)),Z=vue.computed(()=>u.value.$anyEdited||v.value.some(x=>x.$anyEdited)),z=vue.computed(()=>({$self:u.value.$errors,$each:v.value.map(x=>x.$errors)})),oe=vue.computed(()=>({$self:u.value.$silentErrors,$each:v.value.map(x=>x.$silentErrors)})),g=vue.computed(()=>B);function _(){b?.collections&&Object.entries(b?.collections).forEach(([x,se])=>{let le=vue.effectScope();W[x]=le.run(()=>{let ge=vue.ref();return vue.watchEffect(()=>{ge.value=se(vue.reactive({$dirty:c,$error:X,$silentValue:R,$pending:A,$invalid:T,$valid:P,$errors:z,$ready:p,$silentErrors:oe,$anyDirty:d,$name:g,$each:v,$self:u,$value:e,$edited:H,$anyEdited:Z}));}),ge}),j.push(le);});}let W={};return _(),{$dirty:c,$anyDirty:d,$invalid:T,$valid:P,$error:X,$pending:A,$errors:z,$silentErrors:oe,$ready:p,$name:g,$shortcuts:W,$silentValue:R,$edited:H,$anyEdited:Z}}),a.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function V(){E&&E(),u.value&&u.value.$unwatch(),v.value&&v.value.forEach(R=>{"$dirty"in R&&R.$unwatch();}),D.stop(),D=vue.effectScope(),w.stop(),w=vue.effectScope(true),j.forEach(R=>R.stop()),j=[];}function G(R=true,c=false){u.value.$touch(R,c),v.value.forEach(d=>{d.$touch(R,c);});}function J(){u.value.$reset(),v.value.forEach(R=>{R.$reset();});}async function C(){let R=e.value;try{return {result:(await Promise.allSettled([u.value.$validate(),...v.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:R}}catch{return {result:false,data:R}}}function L(){u.value.$clearExternalErrors(),v.value.forEach(R=>{R.$clearExternalErrors();});}function ie(R=true){let c=v.value.map(d=>{if(Tt(d))return d.$extractDirtyFields(R)});return R&&c.every(d=>Y(d))&&(c=[]),c}function de(){V(),e.value=Q(y.value),J();}let{$shortcuts:pe,...me}=N;return vue.reactive({$self:u,...me,...pe,$each:v,$value:e,$validate:C,$unwatch:V,$watch:I,$touch:G,$reset:J,$resetAll:de,$extractDirtyFields:ie,$clearExternalErrors:L})}function Ue({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:i,rootSchemaErrors:m,validationGroups:f,initialState:S,fieldName:y,...b}){let B=vue.effectScope(),D,N=[],w=null,a=null,j=null,$=null;async function E(R=true){let c=Object.entries(e.value),d=Object.fromEntries(c.filter(([p,A])=>!!A).map(([p,A])=>{if(A){let H=vue.toRef(t.value??{},p),Z=vue.toRef(()=>A),z=vue.toRef(l?.value??{},p),oe=vue.computed(()=>i?.value?.[p]),g=vue.toRef(S?.value??{},p);return [p,Te({state:H,rulesDef:Z,path:r?`${r}.${p}`:p,externalErrors:z,schemaErrors:oe,initialState:g,fieldName:p,...b})]}return []})),T=Object.fromEntries(Object.entries(vue.unref(l)??{}).filter(([p,A])=>!(p in e.value)&&!!A).map(([p])=>{let A=vue.toRef(t.value??{},p),H=vue.toRef(l?.value??{},p),Z=vue.computed(()=>i?.value?.[p]),z=vue.toRef(S?.value??{},p);return [p,Te({state:A,rulesDef:vue.computed(()=>({})),path:r?`${r}.${p}`:p,externalErrors:H,schemaErrors:Z,initialState:z,fieldName:p,...b})]})),P=Object.fromEntries(Object.entries(vue.unref(i)??{}).map(([p])=>{let A=vue.toRef(t.value??{},p),H=vue.toRef(l?.value??{},p),Z=vue.computed(()=>i?.value?.[p]),z=vue.toRef(S?.value??{},p);return [p,Te({state:A,rulesDef:vue.computed(()=>({})),path:r?`${r}.${p}`:p,externalErrors:H,schemaErrors:Z,initialState:z,fieldName:p,...b})]})),X=Object.fromEntries(Object.entries(t.value??{}).filter(([p])=>!(p in e.value)&&!(p in(T??{}))&&!(p in(P??{}))).map(([p])=>{let A=vue.toRef(t.value??{},p),H=vue.toRef(l?.value??{},p),Z=vue.computed(()=>i?.value?.[p]),z=vue.toRef(S?.value??{},p);return [p,Te({state:A,rulesDef:vue.computed(()=>({})),path:r?`${r}.${p}`:p,externalErrors:H,schemaErrors:Z,initialState:z,fieldName:p,...b})]}));u.value={...d,...T,...P,...X},R&&o();}let u=b.storage.getFieldsEntry(r);E();function v(){l&&(j=vue.watch(l,()=>{s(),E();},{deep:true}));}function M(){$=vue.watch(t,()=>{s(),E(),G(true,true);},{flush:"sync"});}function o(){n&&(w?.(),w=vue.watch(n,()=>{s(),E();},{deep:true,flush:"post"}),v()),m&&(a?.(),a=vue.watch(m,()=>{s(),E();},{deep:true,flush:"post"})),M(),D=B.run(()=>{let R=vue.computed({get:()=>t.value,set(U){s(),t.value=U,E();}}),c=vue.computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([U,O])=>O?.$dirty)),d=vue.computed(()=>Object.entries(u.value).some(([U,O])=>O?.$anyDirty)),T=vue.computed(()=>Object.entries(u.value).some(([U,O])=>O?.$invalid)),P=vue.computed(()=>{let U=Object.entries(u.value).filter(([O,K])=>xt(K)?!K.$inactive:true);return U.length?U.every(([O,K])=>K?.$valid):false}),X=vue.computed(()=>d.value&&!z.value&&T.value),p=vue.computed(()=>vue.unref(b.options.rewardEarly)!=null?vue.unref(b.options.rewardEarly):false),A=vue.computed(()=>vue.unref(b.options.autoDirty)!=null?vue.unref(b.options.autoDirty):!p.value),H=vue.computed(()=>A.value?d.value&&!(T.value||z.value):!(T.value||z.value)),Z=vue.ref(false),z=vue.computed(()=>Z.value||Object.entries(u.value).some(([U,O])=>O?.$pending)),oe=vue.computed(()=>Object.fromEntries(Object.entries(u.value).map(([U,O])=>[U,O?.$errors]))),g=vue.computed(()=>Object.fromEntries(Object.entries(u.value).map(([U,O])=>[U,O?.$silentErrors]))),_=vue.computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([U,O])=>O?.$edited)),W=vue.computed(()=>Object.entries(u.value).some(([U,O])=>O?.$anyEdited)),x=vue.computed(()=>y);function se(){b.shortcuts?.nested&&Object.entries(b.shortcuts.nested).forEach(([U,O])=>{let K=vue.effectScope();ge[U]=K.run(()=>{let $e=vue.ref();return vue.watchEffect(()=>{$e.value=O(vue.reactive({$dirty:c,$value:t,$silentValue:R,$error:X,$pending:z,$invalid:T,$valid:P,$ready:H,$anyDirty:d,$name:x,$silentErrors:g,$errors:oe,$fields:u,$edited:_,$anyEdited:W}));}),$e}),N.push(K);});}let le=vue.computed({get:()=>f?Object.fromEntries(Object.entries(f?.(u.value)??{}).map(([U,O])=>O.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(K=>[K,$t(O,K)])),...Object.fromEntries(["$errors","$silentErrors"].map(K=>[K,yt(O,K)]))}]:[])):{},set(){}}),ge={};return se(),{$dirty:c,$anyDirty:d,$invalid:T,$valid:P,$error:X,$pending:z,$errors:oe,$silentErrors:g,$ready:H,$name:x,$shortcuts:ge,$groups:le,$silentValue:R,$edited:_,$anyEdited:W,$localPending:Z}});}function s(){w?.(),j?.(),$?.(),a?.(),N=[],D={},u.value&&Object.entries(u.value).forEach(([R,c])=>{c.$unwatch();});}function I(){Object.entries(u.value).forEach(([R,c])=>{c.$clearExternalErrors();});}function V(){j?.(),Object.values(u.value).forEach(R=>{R.$reset();}),S.value={...Q(t.value)},v();}function G(R=true,c=false){Object.values(u.value).forEach(d=>{d.$touch(R,c);});}async function J(){s(),t.value=Q({...S.value??{}}),V(),E();}function C(R){return R.filter(([c,d])=>ne(d)?!(d&&typeof d=="object"&&"_null"in d)&&!Y(d):Array.isArray(d)?d.length:true)}function L(R=true){let c=Object.entries(u.value).map(([d,T])=>[d,T.$extractDirtyFields(R)]);return R&&(c=C(c)),Object.fromEntries(c)}async function ie(){try{if(b.schemaMode)return b.onValidate?(G(!1),D.$localPending.value=!0,b.onValidate()):{result:!1,data:t.value};{let R=t.value;return {result:(await Promise.allSettled(Object.values(u.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:R}}}catch{return {result:false,data:t.value}}finally{D.$localPending.value=false;}}let{$shortcuts:de,$localPending:pe,...me}=D;return vue.reactive({...me,...de,$fields:u,$value:t,$resetAll:J,$reset:V,$touch:G,$validate:ie,$unwatch:s,$watch:o,$clearExternalErrors:I,$extractDirtyFields:L})}function Te({rulesDef:e,...t}){if(bt(e,t.state))return wt({rulesDef:e,...t});if(ht(t.state,e)){if(Ve(t.state))return Ue({rulesDef:e,...t});{let n=vue.effectScope().run(()=>{let m=vue.toRef(t.state.value?t.state:vue.ref({}));return vue.watch(()=>t.state.value,f=>{m.value=f;},{deep:true}),vue.watch(m,f=>{t.state.value=f;},{deep:true}),{fakeState:m}}),{state:l,...i}=t;return Ue({rulesDef:e,...i,state:n.fakeState})}}else if(Et(e))return Ne({rulesDef:e,...t})}function Ie({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:i,schemaErrors:m,schemaMode:f=false,onValidate:S}){let y=Ke(),b=vue.ref();return b.value=Ue({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:y,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:i,fieldName:"root",path:"",schemaErrors:m,rootSchemaErrors:m,schemaMode:f,onValidate:S}),vue.getCurrentScope()&&vue.onScopeDispose(()=>{b.value?.$unwatch();}),vue.reactive({regle:b})}function rt(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(i,m,f){let S=vue.isRef(m)?m:vue.computed(typeof m=="function"?m:()=>m),y={...n,...f},b=vue.isRef(i)?i:vue.ref(i),B=vue.ref({...Q(b.value)});return {r$:Ie({scopeRules:S,state:b,options:y,initialState:B,customRules:e,shortcuts:r}).regle}}return l}var ke=rt();function nt(){function e(t,r){return r}return e}var at=nt();function Vt({rules:e,modifiers:t,shortcuts:r}){let n=rt(e,t,r),l=nt();return {useRegle:n,inferRules:l}}function je(e,t){let r=t??false,n=vue.computed({get:()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$value])),set:o=>{typeof o=="object"&&Object.entries(o).forEach(([s,I])=>e[s].$value=I);}}),l=vue.computed({get:()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentValue])),set:o=>{typeof o=="object"&&Object.entries(o).forEach(([s,I])=>e[s].$silentValue=I);}}),i=vue.computed(()=>Object.entries(e).every(([o,s])=>s?.$dirty)),m=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$anyDirty)),f=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$invalid)),S=vue.computed(()=>Object.entries(e).every(([o,s])=>s?.$invalid)),y=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$error)),b=vue.computed(()=>Object.entries(e).every(([o,s])=>s?.$ready)),B=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$pending)),D=vue.computed(()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$errors]))),N=vue.computed(()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentErrors]))),w=vue.computed(()=>Object.entries(e).every(([o,s])=>s?.$edited)),a=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$anyEdited)),j=vue.computed(()=>e);function $(){Object.values(e).forEach(o=>{o.$reset();});}function h(){Object.values(e).forEach(o=>{o.$touch();});}function E(){Object.values(e).forEach(o=>{o.$resetAll();});}function u(o=true){return Object.values(e).map(s=>s.$extractDirtyFields(o))}function v(){Object.values(e).forEach(o=>{o.$clearExternalErrors();});}async function M(){try{let o=n.value;return {result:(await Promise.allSettled(Object.values(e).map(V=>V.$validate()))).every(V=>V.status==="fulfilled"?V.value.result===!0:!1),data:o}}catch{return {result:false,data:n.value}}}return vue.reactive({...!r&&{$instances:j,$value:n,$silentValue:l,$errors:D,$silentErrors:N},$dirty:i,$anyDirty:m,$invalid:f,$valid:S,$error:y,$pending:B,$ready:b,$edited:w,$anyEdited:a,$resetAll:E,$reset:$,$touch:h,$validate:M,$extractDirtyFields:u,$clearExternalErrors:v})}function Ft(e){function t(){let r=vue.ref(je(e.value,true)),n=vue.reactive({r$:r});return vue.watch(e,l=>{r.value=je(l,true);}),{r$:n.r$}}return {useCollectScopedValidations:t}}function _t(e){let t=e??ke,r=vue.ref({});return {useScopedRegle:(l,i,m)=>{let f=he(),{r$:S}=t(l,i,m);r.value[f]=S,vue.onScopeDispose(()=>{delete r.value[f];});function y(){delete r.value[f];}return {r$:S,$dispose:y}},instances:r}}function lt(e){let{instances:t,useScopedRegle:r}=_t(e),{useCollectScopedValidations:n}=Ft(t);return {useScopedRegle:r,useCollectScopedValidations:n}}
2
+ exports.InternalRuleType=He;exports.createRule=qe;exports.createScopedUseRegle=lt;exports.defineRegleConfig=Vt;exports.inferRules=at;exports.mergeRegles=je;exports.unwrapRuleParameters=ee;exports.useRegle=ke;exports.useRootStorage=Ie;
@@ -1,2 +1,2 @@
1
- import {toValue,version,ref,getCurrentScope,onScopeDispose,reactive,computed,shallowRef,effectScope,isRef,toRef,unref,watch,watchEffect}from'vue';function Y(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var gt=Symbol("regle-rule");function Ut(e){if(typeof e.source.flags=="string")return e.source.flags;{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 Q(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>Q(n)))),r=="Map"&&(t=new Map([...e].map(n=>[Q(n[0]),Q(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Ut(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=Q(e[n]);}return t}function ne(e){return e instanceof Date||e instanceof File?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Be(e){if(Y(e))return false;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let r=new Date(e);if(r.toString()==="Invalid Date")return !1;t=r;}return !!t}catch{return false}}function Le(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]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}var He=(r=>(r.Inline="__inline",r.Async="__async",r))(He||{});function $t(e,t){return e.some(r=>r[t])}function yt(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function ee(e){try{return e.map(t=>toValue(t))}catch{return []}}function vt(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function St(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(m=>m.trim()).filter(m=>m.length>0).length:0}function ze(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(f,...S){return e.validator(f,...ee(S.length?S:t))},message(f){return typeof e.message=="function"?e.message({...f,$params:ee(f?.$params?.length?f.$params:t)}):e.message},active(f){return typeof e.active=="function"?e.active({...f,$params:ee(f?.$params?.length?f.$params:t)}):e.active??true},tooltip(f){return typeof e.tooltip=="function"?e.tooltip({...f,$params:ee(f?.$params?.length?f.$params:t)}):e.tooltip??[]},exec(f){let S=e.validator(f,...ee(t)),y;return S instanceof Promise?S.then(b=>(y=b,typeof y=="object"&&"$valid"in y?y.$valid:typeof y=="boolean"?y:false)):(y=S,typeof y=="object"&&"$valid"in y?y.$valid:typeof y=="boolean"?y:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:l,_params:vt(t),_brand:gt}}function qe(e){if(typeof e.validator=="function"){let r=ze(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(St(e.validator)>1){let l=function(...i){return ze(e,...i)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=false,l._tooltip_pacthed=false,l._async=n,l}else return r}throw new Error("Validator must be a function")}function Ke(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),l=shallowRef(new Map),i=shallowRef(new Map);function m($){let h=t.value.get($);if(h)return h;{let E=ref({});return t.value.set($,E),E}}function f($){let h=r.value.get($);if(h)return h;{let E=ref([]);return r.value.set($,E),E}}function S($,h,E){i.value.set(`${$}-${h}`,E);}function y($,h){return i.value.get(`${$}-${h}`)}function b($,h){$&&h!=null&&i.value.delete(`${$}-${h}`);}function B($,h){n.value.set($,h);}function D($){return n.value.get($)??false}function N($,h){e.value.set($,h);}function w($,h){let E=e.value.get($);return E?a(h,E)?{valid:true}:{valid:false}:undefined}function a($,h){let E=Object.keys(h),u=Object.keys($);return u.length!==E.length||!u.every(M=>E.includes(M))?false:u.every(M=>{let o=$[M],s=h[M];return !s||!o||typeof o=="function"||typeof s=="function"||typeof o=="number"||typeof o=="boolean"?false:o._params?o._params?.every((I,V)=>{if(typeof s=="number"||typeof s=="boolean")return true;{let G=ee(s._params),J=ee(o._params);return G?.[V]===J?.[V]}}):true})}function j($){let h=l.value.get($);if(h)return h;{let E=ref(false),u=ref(true),v=ref({}),M=ref(false);return l.value.set($,{$pending:E,$valid:u,$metadata:v,$validating:M}),{$pending:E,$valid:u,$metadata:v,$validating:M}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),i.value.clear();}),{addRuleDeclEntry:N,setDirtyEntry:B,checkRuleDeclEntry:w,getDirtyState:D,trySetRuleStatusRef:j,getFieldsEntry:m,getCollectionsEntry:f,getArrayStatus:y,addArrayStatus:S,deleteArrayStatus:b,arrayStatusStorage:i}}function Ve(e){return e.value instanceof Date||e.value instanceof File?false:ne(e.value)}function Je(e,t,r){let n=effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function Fe(e,t,r){let n,l=(...i)=>new Promise(m=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...i])).then(m);},t);});return l.cancel=()=>{clearTimeout(n),n=undefined;},l}function Jt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let i=Number(r[l]),m=Number(n[l]);if(i>m)return 1;if(m>i)return -1;if(!isNaN(i)&&isNaN(m))return 1;if(isNaN(i)&&!isNaN(m))return -1}return 0}var _e=Jt(version,"3.5.0")!==-1;function Yt(){return Math.floor(Math.random()*Date.now()).toString()}function he(){return typeof window>"u"?Yt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function ht(e,t){return Ve(e)||ne(t.value)&&!Y(t.value)&&!Object.entries(t.value).some(([r,n])=>Oe(n)||typeof n=="function")}function bt(e,t){return !!e.value&&ne(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Et(e){return !!e.value&&ne(e.value)}function Oe(e){return ne(e)&&"_validator"in e}function we(e){return typeof e.value!="function"}function Tt(e){return ne(e)&&"$fields"in e}function xt(e){return !!e&&"$rules"in e}function Ye({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Dt({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function Ct({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:i,$debounce:m,modifiers:f}){let S=effectScope(),y={},b,B=ref(false),{$pending:D,$valid:N,$metadata:w,$validating:a}=i.trySetRuleStatusRef(`${l}.${r}`);function j(){S=effectScope(),y=S.run(()=>{let o=ref(false),s=ref(false),I=ref(true),V=ref(false),G=ref(false),J=computed(()=>({$value:n.value,$error:s.value,$dirty:o.value,$pending:V.value,$valid:G.value,$invalid:I.value,$rule:{$valid:N.value,$invalid:!N.value,$pending:D.value},$params:R.value,...w.value})),C=computed(()=>we(t)?typeof t.value.active=="function"?t.value.active(J.value):!!t.value.active:true);function L(d){let T="",P=e?e[r]?.[d]:undefined;if(P&&(typeof P=="function"?T=P(J.value):T=P),we(t)){let X=`_${d}_patched`;P&&!t.value[X]||(typeof t.value[d]=="function"?T=t.value[d](J.value):T=t.value[d]??"");}return T}let ie=computed(()=>{let d=L("message");return Y(d)&&(d="This field is not valid"),d}),de=computed(()=>L("tooltip")),pe=computed(()=>we(t)&&t.value.type?t.value.type:r),me=computed(()=>we(t)?t.value.validator:t.value),R=computed(()=>typeof t.value=="function"?[]:ee(t.value._params??[])),c=computed(()=>`${l}.${pe.value}`);return {$active:C,$message:ie,$type:pe,$validator:me,$params:R,$path:c,$tooltip:de,$fieldValid:G,$fieldError:s,$fieldDirty:o,$fieldPending:V,$fieldInvalid:I}}),b=watch(y?.$params,()=>{(f.$autoDirty.value||f.$rewardEarly.value&&y.$fieldError.value)&&u();});}j();function $(){N.value=true,y.$fieldDirty.value&&(D.value=true);}async function h(){let o=false;try{let s=y.$validator.value,I=s(n.value,...y.$params.value),V=n.value;$();let G;if(I instanceof Promise?G=await I:G=I,n.value!==V)return !0;if(typeof G=="boolean")o=G;else {let{$valid:J,...C}=G;o=J,w.value=C;}}catch{o=false;}finally{D.value=false;}return o}let E=Fe(h,m??200);async function u(){try{a.value=!0;let o=!1;if(Oe(t.value)&&t.value._async)o=await E();else {let s=y.$validator.value,I=s(n.value,...y.$params.value);if(I instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(I!=null)if(typeof I=="boolean")o=I;else {let{$valid:V,...G}=I;o=V,w.value=G;}}return N.value=o,o}catch{return false}finally{a.value=false;}}function v(){N.value=true,w.value={},D.value=false,a.value=false,j();}function M(){b(),S.stop(),S=effectScope();}return reactive({...y,$pending:D,$valid:N,$metadata:w,$haveAsync:B,$validating:a,$validate:u,$unwatch:M,$watch:j,$reset:v})}function Ne({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:i,options:m,externalErrors:f,schemaErrors:S,schemaMode:y,onUnwatch:b,$isArray:B,initialState:D,shortcuts:N}){let w=effectScope(),a,j=[],$,h,E,u,v,M=()=>{};function o(){let g=t.value,_=i.checkRuleDeclEntry(n,g);L.value=Object.fromEntries(Object.entries(g).filter(([W])=>W.startsWith("$"))),V(),C.value=Object.fromEntries(Object.entries(t.value).filter(([W])=>!W.startsWith("$")).map(([W,x])=>{if(x){let se=toRef(()=>x);return [W,Ct({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:se,ruleKey:W,state:e,path:n,storage:i,$debounce:L.value.$debounce})]}return []}).filter(W=>!!W.length)),a.processShortcuts(),s(),_?.valid!=null&&(a.$dirty.value=i.getDirtyState(n),a.$dirty.value&&M()),i.addRuleDeclEntry(n,g);}function s(){M=a.$debounce.value?Fe(J,a.$debounce.value??a.$haveAnyAsyncRule?100:0):J;}function I(){C.value&&Object.entries(C.value).forEach(([g,_])=>{_.$unwatch();}),E(),v?.(),a.$dirty.value&&i.setDirtyEntry(n,a.$dirty.value),$?.(),h?.(),w.stop(),w=effectScope(),j.forEach(g=>g.stop()),j=[],b?.(),u?.();}function V(){C.value&&Object.entries(C.value).forEach(([g,_])=>{_.$watch();}),a=w.run(()=>{let g=ref(false),_=ref(false),W=computed(()=>g.value),x=computed(()=>L.value.$debounce),se=computed(()=>L.value.$lazy!=null?L.value.$lazy:unref(m.lazy)!=null?unref(m.lazy):false),le=computed(()=>L.value.$rewardEarly!=null?L.value.$rewardEarly:unref(m.rewardEarly)!=null?unref(m.rewardEarly):false),ge=computed(()=>L.value.$clearExternalErrorsOnChange!=null?L.value.$clearExternalErrorsOnChange:unref(m.clearExternalErrorsOnChange)!=null?unref(m.clearExternalErrorsOnChange):true),U=computed(()=>L.value.$autoDirty!=null?L.value.$autoDirty:unref(m.autoDirty)!=null?unref(m.autoDirty):!le.value),O=computed(()=>Object.entries(C.value).some(([ae,ue])=>ue.$validating)),K=computed({get:()=>e.value,set(ae){$(),e.value=ae,G();}}),$e=computed(()=>ye.value&&!Pe.value&&g.value),ot=computed(()=>Ye({field:{$error:$e.value,$externalErrors:f?.value,$schemaErrors:S?.value,$rules:C.value}})),st=computed(()=>Ye({field:{$error:true,$externalErrors:f?.value,$schemaErrors:S?.value,$rules:C.value},silent:true})),We=computed(()=>g.value?Be(D.value)&&Be(e.value)?Le(D.value).getDate()!==Le(e.value).getDate():D.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(D.value)?e.value.length!==D.value.length:D.value!==e.value:false),ut=computed(()=>We.value),it=computed(()=>Dt({field:{$rules:C.value}})),ct=computed(()=>U.value?W.value&&!(ye.value||Pe.value):!(ye.value||Pe.value)),Pe=computed(()=>_.value||!le.value?Object.entries(C.value).some(([ae,ue])=>ue.$pending):false),ye=computed(()=>f?.value?.length||S?.value?.length?true:Me.value?false:!le.value||le.value&&_.value?Object.entries(C.value).some(([ae,ue])=>!ue.$valid):false),ft=computed(()=>l),Me=computed(()=>!!(Y(C.value)&&!y)),Rt=computed(()=>f?.value?.length||Me.value?false:g.value&&!Y(e.value)&&!O.value?y?!S?.value?.length:Object.values(C.value).every(ae=>ae.$valid&&ae.$active):false),Nt=computed(()=>Object.entries(C.value).some(([ae,ue])=>ue.$haveAsync));function Gt(){N?.fields&&Object.entries(N.fields).forEach(([ae,ue])=>{let pt=effectScope();dt[ae]=pt.run(()=>{let mt=ref();return watchEffect(()=>{mt.value=ue(reactive({$dirty:g,$externalErrors:f?.value??[],$value:e,$silentValue:K,$rules:C,$error:$e,$pending:Pe,$invalid:ye,$valid:Rt,$errors:ot,$ready:ct,$silentErrors:st,$anyDirty:W,$tooltips:it,$name:ft,$inactive:Me,$edited:We,$anyEdited:ut}));}),mt}),j.push(pt);});}let dt={};return watch(ye,ae=>{ae||(_.value=false);}),{$error:$e,$pending:Pe,$invalid:ye,$valid:Rt,$debounce:x,$lazy:se,$errors:ot,$ready:ct,$silentErrors:st,$rewardEarly:le,$autoDirty:U,$clearExternalErrorsOnChange:ge,$anyDirty:W,$edited:We,$anyEdited:ut,$name:ft,$haveAnyAsyncRule:Nt,$shortcuts:dt,$validating:O,$tooltips:it,$dirty:g,triggerPunishment:_,processShortcuts:Gt,$silentValue:K,$inactive:Me}}),G(),E=watch(a.$dirty,g=>{i.setDirtyEntry(n,g),Object.values(C.value).forEach(_=>{_.$fieldDirty=g;});}),v=watch([a.$error,a.$valid,a.$invalid,a.$pending],()=>{Object.values(C.value).forEach(g=>{g.$fieldError=a.$error.value,g.$fieldInvalid=a.$invalid.value,g.$fieldPending=a.$pending.value,g.$fieldValid=a.$valid.value;});}),h=watch(a.$valid,g=>{a.$rewardEarly.value&&g&&(a.triggerPunishment.value=false);}),u=watch(a.$haveAnyAsyncRule,s);}function G(){$=watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&o(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&M(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&c();},{deep:B?true:_e?1:true,flush:"post"});}function J(){Object.values(C.value).forEach(g=>{g.$validate();});}let C=ref({}),L=ref({});o();function ie(){c(),a.$dirty.value=false,a.triggerPunishment.value=false,i.setDirtyEntry(n,false),D.value=ne(e.value)?Q(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(C.value).forEach(([g,_])=>{_.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(C.value).forEach(g=>g.$validate());}function de(g=true,_=false){a.$dirty.value||(a.$dirty.value=true),_&&g?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&M():g&&M();}async function pe(){try{let g=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:g};return y?{result:!S?.value?.length,data:g}:Y(C.value)?{result:!0,data:g}:{result:(await Promise.allSettled(Object.entries(C.value).map(([x,se])=>se.$validate()))).every(x=>x.status==="fulfilled"?x.value===!0:!1),data:g}}catch{return {result:false,data:e.value}}}function me(){I(),e.value=Q(D),ie();}function R(g=true){return a.$dirty.value?e.value:g?{_null:true}:null}function c(){f?.value?.length&&(f.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&M();let{$shortcuts:d,$validating:T,$autoDirty:P,$rewardEarly:X,$clearExternalErrorsOnChange:p,$haveAnyAsyncRule:A,$debounce:H,$lazy:Z,triggerPunishment:z,...oe}=a;return reactive({...oe,$externalErrors:f,$value:e,$rules:C,...d,$reset:ie,$touch:de,$validate:pe,$unwatch:I,$watch:V,$resetAll:me,$extractDirtyFields:R,$clearExternalErrors:c})}function Ze({$id:e,path:t,index:r,options:n,storage:l,stateValue:i,customMessages:m,rules:f,externalErrors:S,schemaErrors:y,initialState:b,shortcuts:B,fieldName:D,schemaMode:N}){let w=f.$key?f.$key:he(),a=`${t}.${String(w)}`;typeof i.value=="object"&&i.value!=null&&(i.value.$id?a=`${t}.${i.value.$id}`:Object.defineProperties(i.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let j=toRef(S?.value??[],r),$=computed(()=>y?.value?.[r]),h=Te({state:i,rulesDef:toRef(()=>f),customMessages:m,path:a,storage:l,options:n,externalErrors:j,schemaErrors:$,initialState:b,shortcuts:B,fieldName:D,schemaMode:N});if(h){let E=i.value?.$id;h.$id=E??String(w),l.addArrayStatus(e,h.$id,h);}return h}function wt({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:i,externalErrors:m,schemaErrors:f,schemaMode:S,initialState:y,shortcuts:b,fieldName:B}){let D=effectScope(),N,w=effectScope(),a,j=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let $=ref(),h=ref(e.value),E,u=ref({}),v=l.getCollectionsEntry(n);a=w.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(c=>typeof c!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(c=>Oe(c)||typeof c=="function"):false)})),M(),I();function M(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?($.value=he(),Object.defineProperties(e.value,{$id:{value:$.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&($.value=e.value.$id)),h.value=u.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?v.value=e.value.filter(R=>typeof R=="object").map((R,c)=>{let{scope:d,unwrapped:T}=Je(t.value.$each,toRef(()=>R),c);d&&j.push(d);let P=toRef(y.value??[],c),X=toRef(m?.value??{},"$each"),p=computed(()=>f?.value?.$each),A=Ze({$id:$.value,path:n,customMessages:r,rules:T??{},stateValue:toRef(()=>R),index:c,options:i,storage:l,externalErrors:X,schemaErrors:p,initialState:P,shortcuts:b,fieldName:B,schemaMode:S});return A||null}).filter(R=>!!R):v.value=[],u.value=Ne({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:i,externalErrors:toRef(m?.value??{},"$self"),schemaErrors:computed(()=>f?.value?.$self),$isArray:true,initialState:y,shortcuts:b,fieldName:B,schemaMode:S});}function o(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let R=Q(v.value);v.value=e.value.filter(c=>typeof c=="object").map((c,d)=>{let T=toRef(()=>c);if(c.$id&&v.value.find(P=>P.$id===c.$id)){let P=l.getArrayStatus($.value,c.$id);return P?(P.$value=T,P):null}else {let{scope:P,unwrapped:X}=Je(t.value.$each,T,d);P&&j.push(P);let p=toRef(m?.value??{},"$each"),A=computed(()=>f?.value?.$each??[]),H=Ze({$id:$.value,path:n,customMessages:r,rules:X??{},stateValue:T,index:d,options:i,storage:l,externalErrors:p,schemaErrors:A,initialState:toRef(y.value??[],d),shortcuts:b,fieldName:B,schemaMode:S});return H||null}}).filter(c=>!!c),R.filter(c=>!e.value?.find(d=>c.$id===d.$id)).forEach((c,d)=>{l.deleteArrayStatus($.value,d.toString());});}else v.value=[];}function s(){E=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?M():o();},{deep:_e?1:true,flush:"pre"});}function I(){s(),D=effectScope(),N=D.run(()=>{let R=computed({get:()=>e.value,set(x){E(),e.value=x,s();}}),c=computed(()=>u.value.$dirty&&(!v.value.length||v.value.every(x=>x.$dirty))),d=computed(()=>u.value.$anyDirty||v.value.some(x=>x.$anyDirty)),T=computed(()=>u.value.$invalid||v.value.some(x=>x.$invalid)),P=computed(()=>(Y(u.value.$rules)?true:u.value.$valid)&&(!v.value.length||v.value.every(x=>x.$valid))),X=computed(()=>u.value.$error||v.value.some(x=>x.$error)),p=computed(()=>!(T.value||A.value)),A=computed(()=>u.value.$pending||v.value.some(x=>x.$pending)),H=computed(()=>!!v.value.length&&v.value.every(x=>x.$edited)),Z=computed(()=>u.value.$anyEdited||v.value.some(x=>x.$anyEdited)),z=computed(()=>({$self:u.value.$errors,$each:v.value.map(x=>x.$errors)})),oe=computed(()=>({$self:u.value.$silentErrors,$each:v.value.map(x=>x.$silentErrors)})),g=computed(()=>B);function _(){b?.collections&&Object.entries(b?.collections).forEach(([x,se])=>{let le=effectScope();W[x]=le.run(()=>{let ge=ref();return watchEffect(()=>{ge.value=se(reactive({$dirty:c,$error:X,$silentValue:R,$pending:A,$invalid:T,$valid:P,$errors:z,$ready:p,$silentErrors:oe,$anyDirty:d,$name:g,$each:v,$self:u,$value:e,$edited:H,$anyEdited:Z}));}),ge}),j.push(le);});}let W={};return _(),{$dirty:c,$anyDirty:d,$invalid:T,$valid:P,$error:X,$pending:A,$errors:z,$silentErrors:oe,$ready:p,$name:g,$shortcuts:W,$silentValue:R,$edited:H,$anyEdited:Z}}),a.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function V(){E&&E(),u.value&&u.value.$unwatch(),v.value&&v.value.forEach(R=>{"$dirty"in R&&R.$unwatch();}),D.stop(),D=effectScope(),w.stop(),w=effectScope(true),j.forEach(R=>R.stop()),j=[];}function G(R=true,c=false){u.value.$touch(R,c),v.value.forEach(d=>{d.$touch(R,c);});}function J(){u.value.$reset(),v.value.forEach(R=>{R.$reset();});}async function C(){let R=e.value;try{return {result:(await Promise.allSettled([u.value.$validate(),...v.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:R}}catch{return {result:false,data:R}}}function L(){u.value.$clearExternalErrors(),v.value.forEach(R=>{R.$clearExternalErrors();});}function ie(R=true){let c=v.value.map(d=>{if(Tt(d))return d.$extractDirtyFields(R)});return R&&c.every(d=>Y(d))&&(c=[]),c}function de(){V(),e.value=Q(y.value),J();}let{$shortcuts:pe,...me}=N;return reactive({$self:u,...me,...pe,$each:v,$value:e,$validate:C,$unwatch:V,$watch:I,$touch:G,$reset:J,$resetAll:de,$extractDirtyFields:ie,$clearExternalErrors:L})}function Ue({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:i,rootSchemaErrors:m,validationGroups:f,initialState:S,fieldName:y,...b}){let B=effectScope(),D,N=[],w=null,a=null,j=null,$=null;async function E(R=true){let c=Object.entries(e.value),d=Object.fromEntries(c.filter(([p,A])=>!!A).map(([p,A])=>{if(A){let H=toRef(t.value??{},p),Z=toRef(()=>A),z=toRef(l?.value??{},p),oe=computed(()=>i?.value?.[p]),g=toRef(S?.value??{},p);return [p,Te({state:H,rulesDef:Z,path:r?`${r}.${p}`:p,externalErrors:z,schemaErrors:oe,initialState:g,fieldName:p,...b})]}return []})),T=Object.fromEntries(Object.entries(unref(l)??{}).filter(([p,A])=>!(p in e.value)&&!!A).map(([p])=>{let A=toRef(t.value??{},p),H=toRef(l?.value??{},p),Z=computed(()=>i?.value?.[p]),z=toRef(S?.value??{},p);return [p,Te({state:A,rulesDef:computed(()=>({})),path:r?`${r}.${p}`:p,externalErrors:H,schemaErrors:Z,initialState:z,fieldName:p,...b})]})),P=Object.fromEntries(Object.entries(unref(i)??{}).map(([p])=>{let A=toRef(t.value??{},p),H=toRef(l?.value??{},p),Z=computed(()=>i?.value?.[p]),z=toRef(S?.value??{},p);return [p,Te({state:A,rulesDef:computed(()=>({})),path:r?`${r}.${p}`:p,externalErrors:H,schemaErrors:Z,initialState:z,fieldName:p,...b})]})),X=Object.fromEntries(Object.entries(t.value??{}).filter(([p])=>!(p in e.value)&&!(p in(T??{}))&&!(p in(P??{}))).map(([p])=>{let A=toRef(t.value??{},p),H=toRef(l?.value??{},p),Z=computed(()=>i?.value?.[p]),z=toRef(S?.value??{},p);return [p,Te({state:A,rulesDef:computed(()=>({})),path:r?`${r}.${p}`:p,externalErrors:H,schemaErrors:Z,initialState:z,fieldName:p,...b})]}));u.value={...d,...T,...P,...X},R&&o();}let u=b.storage.getFieldsEntry(r);E();function v(){l&&(j=watch(l,()=>{s(),E();},{deep:true}));}function M(){$=watch(t,()=>{s(),E(),G(true,true);},{flush:"sync"});}function o(){n&&(w?.(),w=watch(n,()=>{s(),E();},{deep:true,flush:"post"}),v()),m&&(a?.(),a=watch(m,()=>{s(),E();},{deep:true,flush:"post"})),M(),D=B.run(()=>{let R=computed({get:()=>t.value,set(U){s(),t.value=U,E();}}),c=computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([U,O])=>O?.$dirty)),d=computed(()=>Object.entries(u.value).some(([U,O])=>O?.$anyDirty)),T=computed(()=>Object.entries(u.value).some(([U,O])=>O?.$invalid)),P=computed(()=>{let U=Object.entries(u.value).filter(([O,K])=>xt(K)?!K.$inactive:true);return U.length?U.every(([O,K])=>K?.$valid):false}),X=computed(()=>d.value&&!z.value&&T.value),p=computed(()=>unref(b.options.rewardEarly)!=null?unref(b.options.rewardEarly):false),A=computed(()=>unref(b.options.autoDirty)!=null?unref(b.options.autoDirty):!p.value),H=computed(()=>A.value?d.value&&!(T.value||z.value):!(T.value||z.value)),Z=ref(false),z=computed(()=>Z.value||Object.entries(u.value).some(([U,O])=>O?.$pending)),oe=computed(()=>Object.fromEntries(Object.entries(u.value).map(([U,O])=>[U,O?.$errors]))),g=computed(()=>Object.fromEntries(Object.entries(u.value).map(([U,O])=>[U,O?.$silentErrors]))),_=computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([U,O])=>O?.$edited)),W=computed(()=>Object.entries(u.value).some(([U,O])=>O?.$anyEdited)),x=computed(()=>y);function se(){b.shortcuts?.nested&&Object.entries(b.shortcuts.nested).forEach(([U,O])=>{let K=effectScope();ge[U]=K.run(()=>{let $e=ref();return watchEffect(()=>{$e.value=O(reactive({$dirty:c,$value:t,$silentValue:R,$error:X,$pending:z,$invalid:T,$valid:P,$ready:H,$anyDirty:d,$name:x,$silentErrors:g,$errors:oe,$fields:u,$edited:_,$anyEdited:W}));}),$e}),N.push(K);});}let le=computed({get:()=>f?Object.fromEntries(Object.entries(f?.(u.value)??{}).map(([U,O])=>O.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(K=>[K,$t(O,K)])),...Object.fromEntries(["$errors","$silentErrors"].map(K=>[K,yt(O,K)]))}]:[])):{},set(){}}),ge={};return se(),{$dirty:c,$anyDirty:d,$invalid:T,$valid:P,$error:X,$pending:z,$errors:oe,$silentErrors:g,$ready:H,$name:x,$shortcuts:ge,$groups:le,$silentValue:R,$edited:_,$anyEdited:W,$localPending:Z}});}function s(){w?.(),j?.(),$?.(),a?.(),N=[],D={},u.value&&Object.entries(u.value).forEach(([R,c])=>{c.$unwatch();});}function I(){Object.entries(u.value).forEach(([R,c])=>{c.$clearExternalErrors();});}function V(){j?.(),Object.values(u.value).forEach(R=>{R.$reset();}),S.value={...Q(t.value)},v();}function G(R=true,c=false){Object.values(u.value).forEach(d=>{d.$touch(R,c);});}async function J(){s(),t.value=Q({...S.value??{}}),V(),E();}function C(R){return R.filter(([c,d])=>ne(d)?!(d&&typeof d=="object"&&"_null"in d)&&!Y(d):Array.isArray(d)?d.length:true)}function L(R=true){let c=Object.entries(u.value).map(([d,T])=>[d,T.$extractDirtyFields(R)]);return R&&(c=C(c)),Object.fromEntries(c)}async function ie(){try{if(b.schemaMode)return b.onValidate?(G(!1),D.$localPending.value=!0,b.onValidate()):{result:!1,data:t.value};{let R=t.value;return {result:(await Promise.allSettled(Object.values(u.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:R}}}catch{return {result:false,data:t.value}}finally{D.$localPending.value=false;}}let{$shortcuts:de,$localPending:pe,...me}=D;return reactive({...me,...de,$fields:u,$value:t,$resetAll:J,$reset:V,$touch:G,$validate:ie,$unwatch:s,$watch:o,$clearExternalErrors:I,$extractDirtyFields:L})}function Te({rulesDef:e,...t}){if(bt(e,t.state))return wt({rulesDef:e,...t});if(ht(t.state,e)){if(Ve(t.state))return Ue({rulesDef:e,...t});{let n=effectScope().run(()=>{let m=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,f=>{m.value=f;},{deep:true}),watch(m,f=>{t.state.value=f;},{deep:true}),{fakeState:m}}),{state:l,...i}=t;return Ue({rulesDef:e,...i,state:n.fakeState})}}else if(Et(e))return Ne({rulesDef:e,...t})}function Ie({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:i,schemaErrors:m,schemaMode:f=false,onValidate:S}){let y=Ke(),b=ref();return b.value=Ue({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:y,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:i,fieldName:"root",path:"",schemaErrors:m,rootSchemaErrors:m,schemaMode:f,onValidate:S}),getCurrentScope()&&onScopeDispose(()=>{b.value?.$unwatch();}),reactive({regle:b})}function rt(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(i,m,f){let S=isRef(m)?m:computed(typeof m=="function"?m:()=>m),y={...n,...f},b=isRef(i)?i:ref(i),B=ref({...Q(b.value)});return {r$:Ie({scopeRules:S,state:b,options:y,initialState:B,customRules:e,shortcuts:r}).regle}}return l}var ke=rt();function nt(){function e(t,r){return r}return e}var at=nt();function Vt({rules:e,modifiers:t,shortcuts:r}){let n=rt(e,t,r),l=nt();return {useRegle:n,inferRules:l}}function je(e,t){let r=t??false,n=computed({get:()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$value])),set:o=>{typeof o=="object"&&Object.entries(o).forEach(([s,I])=>e[s].$value=I);}}),l=computed({get:()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentValue])),set:o=>{typeof o=="object"&&Object.entries(o).forEach(([s,I])=>e[s].$silentValue=I);}}),i=computed(()=>Object.entries(e).every(([o,s])=>s?.$dirty)),m=computed(()=>Object.entries(e).some(([o,s])=>s?.$anyDirty)),f=computed(()=>Object.entries(e).some(([o,s])=>s?.$invalid)),S=computed(()=>Object.entries(e).every(([o,s])=>s?.$invalid)),y=computed(()=>Object.entries(e).some(([o,s])=>s?.$error)),b=computed(()=>Object.entries(e).every(([o,s])=>s?.$ready)),B=computed(()=>Object.entries(e).some(([o,s])=>s?.$pending)),D=computed(()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$errors]))),N=computed(()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentErrors]))),w=computed(()=>Object.entries(e).every(([o,s])=>s?.$edited)),a=computed(()=>Object.entries(e).some(([o,s])=>s?.$anyEdited)),j=computed(()=>e);function $(){Object.values(e).forEach(o=>{o.$reset();});}function h(){Object.values(e).forEach(o=>{o.$touch();});}function E(){Object.values(e).forEach(o=>{o.$resetAll();});}function u(o=true){return Object.values(e).map(s=>s.$extractDirtyFields(o))}function v(){Object.values(e).forEach(o=>{o.$clearExternalErrors();});}async function M(){try{let o=n.value;return {result:(await Promise.allSettled(Object.values(e).map(V=>V.$validate()))).every(V=>V.status==="fulfilled"?V.value.result===!0:!1),data:o}}catch{return {result:false,data:n.value}}}return reactive({...!r&&{$instances:j,$value:n,$silentValue:l,$errors:D,$silentErrors:N},$dirty:i,$anyDirty:m,$invalid:f,$valid:S,$error:y,$pending:B,$ready:b,$edited:w,$anyEdited:a,$resetAll:E,$reset:$,$touch:h,$validate:M,$extractDirtyFields:u,$clearExternalErrors:v})}function Ft(e){function t(){let r=ref(je(e.value,true)),n=reactive({r$:r});return watch(e,l=>{r.value=je(l,true);}),{r$:n.r$}}return {useCollectNestedValidations:t}}function _t(e){let t=e??ke,r=ref({});return {useNestedRegle:(l,i,m)=>{let f=he(),{r$:S}=t(l,i,m);r.value[f]=S,onScopeDispose(()=>{delete r.value[f];});function y(){delete r.value[f];}return {r$:S,$dispose:y}},instances:r}}function lt(e){let{instances:t,useNestedRegle:r}=_t(e),{useCollectNestedValidations:n}=Ft(t);return {useNestedRegle:r,useCollectNestedValidations:n}}
2
- export{He as InternalRuleType,lt as createNestedUseRegle,qe as createRule,Vt as defineRegleConfig,at as inferRules,je as mergeRegles,ee as unwrapRuleParameters,ke as useRegle,Ie as useRootStorage};
1
+ import {toValue,version,ref,getCurrentScope,onScopeDispose,reactive,computed,shallowRef,effectScope,isRef,toRef,unref,watch,watchEffect}from'vue';function Y(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var gt=Symbol("regle-rule");function Ut(e){if(typeof e.source.flags=="string")return e.source.flags;{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 Q(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>Q(n)))),r=="Map"&&(t=new Map([...e].map(n=>[Q(n[0]),Q(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Ut(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=Q(e[n]);}return t}function ne(e){return e instanceof Date||e instanceof File?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Be(e){if(Y(e))return false;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let r=new Date(e);if(r.toString()==="Invalid Date")return !1;t=r;}return !!t}catch{return false}}function Le(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]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}var He=(r=>(r.Inline="__inline",r.Async="__async",r))(He||{});function $t(e,t){return e.some(r=>r[t])}function yt(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function ee(e){try{return e.map(t=>toValue(t))}catch{return []}}function vt(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function St(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(m=>m.trim()).filter(m=>m.length>0).length:0}function ze(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(f,...S){return e.validator(f,...ee(S.length?S:t))},message(f){return typeof e.message=="function"?e.message({...f,$params:ee(f?.$params?.length?f.$params:t)}):e.message},active(f){return typeof e.active=="function"?e.active({...f,$params:ee(f?.$params?.length?f.$params:t)}):e.active??true},tooltip(f){return typeof e.tooltip=="function"?e.tooltip({...f,$params:ee(f?.$params?.length?f.$params:t)}):e.tooltip??[]},exec(f){let S=e.validator(f,...ee(t)),y;return S instanceof Promise?S.then(b=>(y=b,typeof y=="object"&&"$valid"in y?y.$valid:typeof y=="boolean"?y:false)):(y=S,typeof y=="object"&&"$valid"in y?y.$valid:typeof y=="boolean"?y:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:l,_params:vt(t),_brand:gt}}function qe(e){if(typeof e.validator=="function"){let r=ze(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(St(e.validator)>1){let l=function(...i){return ze(e,...i)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=false,l._tooltip_pacthed=false,l._async=n,l}else return r}throw new Error("Validator must be a function")}function Ke(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),l=shallowRef(new Map),i=shallowRef(new Map);function m($){let h=t.value.get($);if(h)return h;{let E=ref({});return t.value.set($,E),E}}function f($){let h=r.value.get($);if(h)return h;{let E=ref([]);return r.value.set($,E),E}}function S($,h,E){i.value.set(`${$}-${h}`,E);}function y($,h){return i.value.get(`${$}-${h}`)}function b($,h){$&&h!=null&&i.value.delete(`${$}-${h}`);}function B($,h){n.value.set($,h);}function D($){return n.value.get($)??false}function N($,h){e.value.set($,h);}function w($,h){let E=e.value.get($);return E?a(h,E)?{valid:true}:{valid:false}:undefined}function a($,h){let E=Object.keys(h),u=Object.keys($);return u.length!==E.length||!u.every(M=>E.includes(M))?false:u.every(M=>{let o=$[M],s=h[M];return !s||!o||typeof o=="function"||typeof s=="function"||typeof o=="number"||typeof o=="boolean"?false:o._params?o._params?.every((I,V)=>{if(typeof s=="number"||typeof s=="boolean")return true;{let G=ee(s._params),J=ee(o._params);return G?.[V]===J?.[V]}}):true})}function j($){let h=l.value.get($);if(h)return h;{let E=ref(false),u=ref(true),v=ref({}),M=ref(false);return l.value.set($,{$pending:E,$valid:u,$metadata:v,$validating:M}),{$pending:E,$valid:u,$metadata:v,$validating:M}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),i.value.clear();}),{addRuleDeclEntry:N,setDirtyEntry:B,checkRuleDeclEntry:w,getDirtyState:D,trySetRuleStatusRef:j,getFieldsEntry:m,getCollectionsEntry:f,getArrayStatus:y,addArrayStatus:S,deleteArrayStatus:b,arrayStatusStorage:i}}function Ve(e){return e.value instanceof Date||e.value instanceof File?false:ne(e.value)}function Je(e,t,r){let n=effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function Fe(e,t,r){let n,l=(...i)=>new Promise(m=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...i])).then(m);},t);});return l.cancel=()=>{clearTimeout(n),n=undefined;},l}function Jt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let i=Number(r[l]),m=Number(n[l]);if(i>m)return 1;if(m>i)return -1;if(!isNaN(i)&&isNaN(m))return 1;if(isNaN(i)&&!isNaN(m))return -1}return 0}var _e=Jt(version,"3.5.0")!==-1;function Yt(){return Math.floor(Math.random()*Date.now()).toString()}function he(){return typeof window>"u"?Yt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function ht(e,t){return Ve(e)||ne(t.value)&&!Y(t.value)&&!Object.entries(t.value).some(([r,n])=>Oe(n)||typeof n=="function")}function bt(e,t){return !!e.value&&ne(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Et(e){return !!e.value&&ne(e.value)}function Oe(e){return ne(e)&&"_validator"in e}function we(e){return typeof e.value!="function"}function Tt(e){return ne(e)&&"$fields"in e}function xt(e){return !!e&&"$rules"in e}function Ye({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Dt({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function Ct({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:i,$debounce:m,modifiers:f}){let S=effectScope(),y={},b,B=ref(false),{$pending:D,$valid:N,$metadata:w,$validating:a}=i.trySetRuleStatusRef(`${l}.${r}`);function j(){S=effectScope(),y=S.run(()=>{let o=ref(false),s=ref(false),I=ref(true),V=ref(false),G=ref(false),J=computed(()=>({$value:n.value,$error:s.value,$dirty:o.value,$pending:V.value,$valid:G.value,$invalid:I.value,$rule:{$valid:N.value,$invalid:!N.value,$pending:D.value},$params:R.value,...w.value})),C=computed(()=>we(t)?typeof t.value.active=="function"?t.value.active(J.value):!!t.value.active:true);function L(d){let T="",P=e?e[r]?.[d]:undefined;if(P&&(typeof P=="function"?T=P(J.value):T=P),we(t)){let X=`_${d}_patched`;P&&!t.value[X]||(typeof t.value[d]=="function"?T=t.value[d](J.value):T=t.value[d]??"");}return T}let ie=computed(()=>{let d=L("message");return Y(d)&&(d="This field is not valid"),d}),de=computed(()=>L("tooltip")),pe=computed(()=>we(t)&&t.value.type?t.value.type:r),me=computed(()=>we(t)?t.value.validator:t.value),R=computed(()=>typeof t.value=="function"?[]:ee(t.value._params??[])),c=computed(()=>`${l}.${pe.value}`);return {$active:C,$message:ie,$type:pe,$validator:me,$params:R,$path:c,$tooltip:de,$fieldValid:G,$fieldError:s,$fieldDirty:o,$fieldPending:V,$fieldInvalid:I}}),b=watch(y?.$params,()=>{(f.$autoDirty.value||f.$rewardEarly.value&&y.$fieldError.value)&&u();});}j();function $(){N.value=true,y.$fieldDirty.value&&(D.value=true);}async function h(){let o=false;try{let s=y.$validator.value,I=s(n.value,...y.$params.value),V=n.value;$();let G;if(I instanceof Promise?G=await I:G=I,n.value!==V)return !0;if(typeof G=="boolean")o=G;else {let{$valid:J,...C}=G;o=J,w.value=C;}}catch{o=false;}finally{D.value=false;}return o}let E=Fe(h,m??200);async function u(){try{a.value=!0;let o=!1;if(Oe(t.value)&&t.value._async)o=await E();else {let s=y.$validator.value,I=s(n.value,...y.$params.value);if(I instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(I!=null)if(typeof I=="boolean")o=I;else {let{$valid:V,...G}=I;o=V,w.value=G;}}return N.value=o,o}catch{return false}finally{a.value=false;}}function v(){N.value=true,w.value={},D.value=false,a.value=false,j();}function M(){b(),S.stop(),S=effectScope();}return reactive({...y,$pending:D,$valid:N,$metadata:w,$haveAsync:B,$validating:a,$validate:u,$unwatch:M,$watch:j,$reset:v})}function Ne({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:i,options:m,externalErrors:f,schemaErrors:S,schemaMode:y,onUnwatch:b,$isArray:B,initialState:D,shortcuts:N}){let w=effectScope(),a,j=[],$,h,E,u,v,M=()=>{};function o(){let g=t.value,_=i.checkRuleDeclEntry(n,g);L.value=Object.fromEntries(Object.entries(g).filter(([W])=>W.startsWith("$"))),V(),C.value=Object.fromEntries(Object.entries(t.value).filter(([W])=>!W.startsWith("$")).map(([W,x])=>{if(x){let se=toRef(()=>x);return [W,Ct({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:se,ruleKey:W,state:e,path:n,storage:i,$debounce:L.value.$debounce})]}return []}).filter(W=>!!W.length)),a.processShortcuts(),s(),_?.valid!=null&&(a.$dirty.value=i.getDirtyState(n),a.$dirty.value&&M()),i.addRuleDeclEntry(n,g);}function s(){M=a.$debounce.value?Fe(J,a.$debounce.value??a.$haveAnyAsyncRule?100:0):J;}function I(){C.value&&Object.entries(C.value).forEach(([g,_])=>{_.$unwatch();}),E(),v?.(),a.$dirty.value&&i.setDirtyEntry(n,a.$dirty.value),$?.(),h?.(),w.stop(),w=effectScope(),j.forEach(g=>g.stop()),j=[],b?.(),u?.();}function V(){C.value&&Object.entries(C.value).forEach(([g,_])=>{_.$watch();}),a=w.run(()=>{let g=ref(false),_=ref(false),W=computed(()=>g.value),x=computed(()=>L.value.$debounce),se=computed(()=>L.value.$lazy!=null?L.value.$lazy:unref(m.lazy)!=null?unref(m.lazy):false),le=computed(()=>L.value.$rewardEarly!=null?L.value.$rewardEarly:unref(m.rewardEarly)!=null?unref(m.rewardEarly):false),ge=computed(()=>L.value.$clearExternalErrorsOnChange!=null?L.value.$clearExternalErrorsOnChange:unref(m.clearExternalErrorsOnChange)!=null?unref(m.clearExternalErrorsOnChange):true),U=computed(()=>L.value.$autoDirty!=null?L.value.$autoDirty:unref(m.autoDirty)!=null?unref(m.autoDirty):!le.value),O=computed(()=>Object.entries(C.value).some(([ae,ue])=>ue.$validating)),K=computed({get:()=>e.value,set(ae){$(),e.value=ae,G();}}),$e=computed(()=>ye.value&&!Pe.value&&g.value),ot=computed(()=>Ye({field:{$error:$e.value,$externalErrors:f?.value,$schemaErrors:S?.value,$rules:C.value}})),st=computed(()=>Ye({field:{$error:true,$externalErrors:f?.value,$schemaErrors:S?.value,$rules:C.value},silent:true})),We=computed(()=>g.value?Be(D.value)&&Be(e.value)?Le(D.value).getDate()!==Le(e.value).getDate():D.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(D.value)?e.value.length!==D.value.length:D.value!==e.value:false),ut=computed(()=>We.value),it=computed(()=>Dt({field:{$rules:C.value}})),ct=computed(()=>U.value?W.value&&!(ye.value||Pe.value):!(ye.value||Pe.value)),Pe=computed(()=>_.value||!le.value?Object.entries(C.value).some(([ae,ue])=>ue.$pending):false),ye=computed(()=>f?.value?.length||S?.value?.length?true:Me.value?false:!le.value||le.value&&_.value?Object.entries(C.value).some(([ae,ue])=>!ue.$valid):false),ft=computed(()=>l),Me=computed(()=>!!(Y(C.value)&&!y)),Rt=computed(()=>f?.value?.length||Me.value?false:g.value&&!Y(e.value)&&!O.value?y?!S?.value?.length:Object.values(C.value).every(ae=>ae.$valid&&ae.$active):false),Nt=computed(()=>Object.entries(C.value).some(([ae,ue])=>ue.$haveAsync));function Gt(){N?.fields&&Object.entries(N.fields).forEach(([ae,ue])=>{let pt=effectScope();dt[ae]=pt.run(()=>{let mt=ref();return watchEffect(()=>{mt.value=ue(reactive({$dirty:g,$externalErrors:f?.value??[],$value:e,$silentValue:K,$rules:C,$error:$e,$pending:Pe,$invalid:ye,$valid:Rt,$errors:ot,$ready:ct,$silentErrors:st,$anyDirty:W,$tooltips:it,$name:ft,$inactive:Me,$edited:We,$anyEdited:ut}));}),mt}),j.push(pt);});}let dt={};return watch(ye,ae=>{ae||(_.value=false);}),{$error:$e,$pending:Pe,$invalid:ye,$valid:Rt,$debounce:x,$lazy:se,$errors:ot,$ready:ct,$silentErrors:st,$rewardEarly:le,$autoDirty:U,$clearExternalErrorsOnChange:ge,$anyDirty:W,$edited:We,$anyEdited:ut,$name:ft,$haveAnyAsyncRule:Nt,$shortcuts:dt,$validating:O,$tooltips:it,$dirty:g,triggerPunishment:_,processShortcuts:Gt,$silentValue:K,$inactive:Me}}),G(),E=watch(a.$dirty,g=>{i.setDirtyEntry(n,g),Object.values(C.value).forEach(_=>{_.$fieldDirty=g;});}),v=watch([a.$error,a.$valid,a.$invalid,a.$pending],()=>{Object.values(C.value).forEach(g=>{g.$fieldError=a.$error.value,g.$fieldInvalid=a.$invalid.value,g.$fieldPending=a.$pending.value,g.$fieldValid=a.$valid.value;});}),h=watch(a.$valid,g=>{a.$rewardEarly.value&&g&&(a.triggerPunishment.value=false);}),u=watch(a.$haveAnyAsyncRule,s);}function G(){$=watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&o(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&M(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&c();},{deep:B?true:_e?1:true,flush:"post"});}function J(){Object.values(C.value).forEach(g=>{g.$validate();});}let C=ref({}),L=ref({});o();function ie(){c(),a.$dirty.value=false,a.triggerPunishment.value=false,i.setDirtyEntry(n,false),D.value=ne(e.value)?Q(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(C.value).forEach(([g,_])=>{_.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(C.value).forEach(g=>g.$validate());}function de(g=true,_=false){a.$dirty.value||(a.$dirty.value=true),_&&g?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&M():g&&M();}async function pe(){try{let g=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:g};return y?{result:!S?.value?.length,data:g}:Y(C.value)?{result:!0,data:g}:{result:(await Promise.allSettled(Object.entries(C.value).map(([x,se])=>se.$validate()))).every(x=>x.status==="fulfilled"?x.value===!0:!1),data:g}}catch{return {result:false,data:e.value}}}function me(){I(),e.value=Q(D),ie();}function R(g=true){return a.$dirty.value?e.value:g?{_null:true}:null}function c(){f?.value?.length&&(f.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&M();let{$shortcuts:d,$validating:T,$autoDirty:P,$rewardEarly:X,$clearExternalErrorsOnChange:p,$haveAnyAsyncRule:A,$debounce:H,$lazy:Z,triggerPunishment:z,...oe}=a;return reactive({...oe,$externalErrors:f,$value:e,$rules:C,...d,$reset:ie,$touch:de,$validate:pe,$unwatch:I,$watch:V,$resetAll:me,$extractDirtyFields:R,$clearExternalErrors:c})}function Ze({$id:e,path:t,index:r,options:n,storage:l,stateValue:i,customMessages:m,rules:f,externalErrors:S,schemaErrors:y,initialState:b,shortcuts:B,fieldName:D,schemaMode:N}){let w=f.$key?f.$key:he(),a=`${t}.${String(w)}`;typeof i.value=="object"&&i.value!=null&&(i.value.$id?a=`${t}.${i.value.$id}`:Object.defineProperties(i.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let j=toRef(S?.value??[],r),$=computed(()=>y?.value?.[r]),h=Te({state:i,rulesDef:toRef(()=>f),customMessages:m,path:a,storage:l,options:n,externalErrors:j,schemaErrors:$,initialState:b,shortcuts:B,fieldName:D,schemaMode:N});if(h){let E=i.value?.$id;h.$id=E??String(w),l.addArrayStatus(e,h.$id,h);}return h}function wt({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:i,externalErrors:m,schemaErrors:f,schemaMode:S,initialState:y,shortcuts:b,fieldName:B}){let D=effectScope(),N,w=effectScope(),a,j=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let $=ref(),h=ref(e.value),E,u=ref({}),v=l.getCollectionsEntry(n);a=w.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(c=>typeof c!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(c=>Oe(c)||typeof c=="function"):false)})),M(),I();function M(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?($.value=he(),Object.defineProperties(e.value,{$id:{value:$.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&($.value=e.value.$id)),h.value=u.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?v.value=e.value.filter(R=>typeof R=="object").map((R,c)=>{let{scope:d,unwrapped:T}=Je(t.value.$each,toRef(()=>R),c);d&&j.push(d);let P=toRef(y.value??[],c),X=toRef(m?.value??{},"$each"),p=computed(()=>f?.value?.$each),A=Ze({$id:$.value,path:n,customMessages:r,rules:T??{},stateValue:toRef(()=>R),index:c,options:i,storage:l,externalErrors:X,schemaErrors:p,initialState:P,shortcuts:b,fieldName:B,schemaMode:S});return A||null}).filter(R=>!!R):v.value=[],u.value=Ne({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:i,externalErrors:toRef(m?.value??{},"$self"),schemaErrors:computed(()=>f?.value?.$self),$isArray:true,initialState:y,shortcuts:b,fieldName:B,schemaMode:S});}function o(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let R=Q(v.value);v.value=e.value.filter(c=>typeof c=="object").map((c,d)=>{let T=toRef(()=>c);if(c.$id&&v.value.find(P=>P.$id===c.$id)){let P=l.getArrayStatus($.value,c.$id);return P?(P.$value=T,P):null}else {let{scope:P,unwrapped:X}=Je(t.value.$each,T,d);P&&j.push(P);let p=toRef(m?.value??{},"$each"),A=computed(()=>f?.value?.$each??[]),H=Ze({$id:$.value,path:n,customMessages:r,rules:X??{},stateValue:T,index:d,options:i,storage:l,externalErrors:p,schemaErrors:A,initialState:toRef(y.value??[],d),shortcuts:b,fieldName:B,schemaMode:S});return H||null}}).filter(c=>!!c),R.filter(c=>!e.value?.find(d=>c.$id===d.$id)).forEach((c,d)=>{l.deleteArrayStatus($.value,d.toString());});}else v.value=[];}function s(){E=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?M():o();},{deep:_e?1:true,flush:"pre"});}function I(){s(),D=effectScope(),N=D.run(()=>{let R=computed({get:()=>e.value,set(x){E(),e.value=x,s();}}),c=computed(()=>u.value.$dirty&&(!v.value.length||v.value.every(x=>x.$dirty))),d=computed(()=>u.value.$anyDirty||v.value.some(x=>x.$anyDirty)),T=computed(()=>u.value.$invalid||v.value.some(x=>x.$invalid)),P=computed(()=>(Y(u.value.$rules)?true:u.value.$valid)&&(!v.value.length||v.value.every(x=>x.$valid))),X=computed(()=>u.value.$error||v.value.some(x=>x.$error)),p=computed(()=>!(T.value||A.value)),A=computed(()=>u.value.$pending||v.value.some(x=>x.$pending)),H=computed(()=>!!v.value.length&&v.value.every(x=>x.$edited)),Z=computed(()=>u.value.$anyEdited||v.value.some(x=>x.$anyEdited)),z=computed(()=>({$self:u.value.$errors,$each:v.value.map(x=>x.$errors)})),oe=computed(()=>({$self:u.value.$silentErrors,$each:v.value.map(x=>x.$silentErrors)})),g=computed(()=>B);function _(){b?.collections&&Object.entries(b?.collections).forEach(([x,se])=>{let le=effectScope();W[x]=le.run(()=>{let ge=ref();return watchEffect(()=>{ge.value=se(reactive({$dirty:c,$error:X,$silentValue:R,$pending:A,$invalid:T,$valid:P,$errors:z,$ready:p,$silentErrors:oe,$anyDirty:d,$name:g,$each:v,$self:u,$value:e,$edited:H,$anyEdited:Z}));}),ge}),j.push(le);});}let W={};return _(),{$dirty:c,$anyDirty:d,$invalid:T,$valid:P,$error:X,$pending:A,$errors:z,$silentErrors:oe,$ready:p,$name:g,$shortcuts:W,$silentValue:R,$edited:H,$anyEdited:Z}}),a.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function V(){E&&E(),u.value&&u.value.$unwatch(),v.value&&v.value.forEach(R=>{"$dirty"in R&&R.$unwatch();}),D.stop(),D=effectScope(),w.stop(),w=effectScope(true),j.forEach(R=>R.stop()),j=[];}function G(R=true,c=false){u.value.$touch(R,c),v.value.forEach(d=>{d.$touch(R,c);});}function J(){u.value.$reset(),v.value.forEach(R=>{R.$reset();});}async function C(){let R=e.value;try{return {result:(await Promise.allSettled([u.value.$validate(),...v.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:R}}catch{return {result:false,data:R}}}function L(){u.value.$clearExternalErrors(),v.value.forEach(R=>{R.$clearExternalErrors();});}function ie(R=true){let c=v.value.map(d=>{if(Tt(d))return d.$extractDirtyFields(R)});return R&&c.every(d=>Y(d))&&(c=[]),c}function de(){V(),e.value=Q(y.value),J();}let{$shortcuts:pe,...me}=N;return reactive({$self:u,...me,...pe,$each:v,$value:e,$validate:C,$unwatch:V,$watch:I,$touch:G,$reset:J,$resetAll:de,$extractDirtyFields:ie,$clearExternalErrors:L})}function Ue({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:i,rootSchemaErrors:m,validationGroups:f,initialState:S,fieldName:y,...b}){let B=effectScope(),D,N=[],w=null,a=null,j=null,$=null;async function E(R=true){let c=Object.entries(e.value),d=Object.fromEntries(c.filter(([p,A])=>!!A).map(([p,A])=>{if(A){let H=toRef(t.value??{},p),Z=toRef(()=>A),z=toRef(l?.value??{},p),oe=computed(()=>i?.value?.[p]),g=toRef(S?.value??{},p);return [p,Te({state:H,rulesDef:Z,path:r?`${r}.${p}`:p,externalErrors:z,schemaErrors:oe,initialState:g,fieldName:p,...b})]}return []})),T=Object.fromEntries(Object.entries(unref(l)??{}).filter(([p,A])=>!(p in e.value)&&!!A).map(([p])=>{let A=toRef(t.value??{},p),H=toRef(l?.value??{},p),Z=computed(()=>i?.value?.[p]),z=toRef(S?.value??{},p);return [p,Te({state:A,rulesDef:computed(()=>({})),path:r?`${r}.${p}`:p,externalErrors:H,schemaErrors:Z,initialState:z,fieldName:p,...b})]})),P=Object.fromEntries(Object.entries(unref(i)??{}).map(([p])=>{let A=toRef(t.value??{},p),H=toRef(l?.value??{},p),Z=computed(()=>i?.value?.[p]),z=toRef(S?.value??{},p);return [p,Te({state:A,rulesDef:computed(()=>({})),path:r?`${r}.${p}`:p,externalErrors:H,schemaErrors:Z,initialState:z,fieldName:p,...b})]})),X=Object.fromEntries(Object.entries(t.value??{}).filter(([p])=>!(p in e.value)&&!(p in(T??{}))&&!(p in(P??{}))).map(([p])=>{let A=toRef(t.value??{},p),H=toRef(l?.value??{},p),Z=computed(()=>i?.value?.[p]),z=toRef(S?.value??{},p);return [p,Te({state:A,rulesDef:computed(()=>({})),path:r?`${r}.${p}`:p,externalErrors:H,schemaErrors:Z,initialState:z,fieldName:p,...b})]}));u.value={...d,...T,...P,...X},R&&o();}let u=b.storage.getFieldsEntry(r);E();function v(){l&&(j=watch(l,()=>{s(),E();},{deep:true}));}function M(){$=watch(t,()=>{s(),E(),G(true,true);},{flush:"sync"});}function o(){n&&(w?.(),w=watch(n,()=>{s(),E();},{deep:true,flush:"post"}),v()),m&&(a?.(),a=watch(m,()=>{s(),E();},{deep:true,flush:"post"})),M(),D=B.run(()=>{let R=computed({get:()=>t.value,set(U){s(),t.value=U,E();}}),c=computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([U,O])=>O?.$dirty)),d=computed(()=>Object.entries(u.value).some(([U,O])=>O?.$anyDirty)),T=computed(()=>Object.entries(u.value).some(([U,O])=>O?.$invalid)),P=computed(()=>{let U=Object.entries(u.value).filter(([O,K])=>xt(K)?!K.$inactive:true);return U.length?U.every(([O,K])=>K?.$valid):false}),X=computed(()=>d.value&&!z.value&&T.value),p=computed(()=>unref(b.options.rewardEarly)!=null?unref(b.options.rewardEarly):false),A=computed(()=>unref(b.options.autoDirty)!=null?unref(b.options.autoDirty):!p.value),H=computed(()=>A.value?d.value&&!(T.value||z.value):!(T.value||z.value)),Z=ref(false),z=computed(()=>Z.value||Object.entries(u.value).some(([U,O])=>O?.$pending)),oe=computed(()=>Object.fromEntries(Object.entries(u.value).map(([U,O])=>[U,O?.$errors]))),g=computed(()=>Object.fromEntries(Object.entries(u.value).map(([U,O])=>[U,O?.$silentErrors]))),_=computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([U,O])=>O?.$edited)),W=computed(()=>Object.entries(u.value).some(([U,O])=>O?.$anyEdited)),x=computed(()=>y);function se(){b.shortcuts?.nested&&Object.entries(b.shortcuts.nested).forEach(([U,O])=>{let K=effectScope();ge[U]=K.run(()=>{let $e=ref();return watchEffect(()=>{$e.value=O(reactive({$dirty:c,$value:t,$silentValue:R,$error:X,$pending:z,$invalid:T,$valid:P,$ready:H,$anyDirty:d,$name:x,$silentErrors:g,$errors:oe,$fields:u,$edited:_,$anyEdited:W}));}),$e}),N.push(K);});}let le=computed({get:()=>f?Object.fromEntries(Object.entries(f?.(u.value)??{}).map(([U,O])=>O.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(K=>[K,$t(O,K)])),...Object.fromEntries(["$errors","$silentErrors"].map(K=>[K,yt(O,K)]))}]:[])):{},set(){}}),ge={};return se(),{$dirty:c,$anyDirty:d,$invalid:T,$valid:P,$error:X,$pending:z,$errors:oe,$silentErrors:g,$ready:H,$name:x,$shortcuts:ge,$groups:le,$silentValue:R,$edited:_,$anyEdited:W,$localPending:Z}});}function s(){w?.(),j?.(),$?.(),a?.(),N=[],D={},u.value&&Object.entries(u.value).forEach(([R,c])=>{c.$unwatch();});}function I(){Object.entries(u.value).forEach(([R,c])=>{c.$clearExternalErrors();});}function V(){j?.(),Object.values(u.value).forEach(R=>{R.$reset();}),S.value={...Q(t.value)},v();}function G(R=true,c=false){Object.values(u.value).forEach(d=>{d.$touch(R,c);});}async function J(){s(),t.value=Q({...S.value??{}}),V(),E();}function C(R){return R.filter(([c,d])=>ne(d)?!(d&&typeof d=="object"&&"_null"in d)&&!Y(d):Array.isArray(d)?d.length:true)}function L(R=true){let c=Object.entries(u.value).map(([d,T])=>[d,T.$extractDirtyFields(R)]);return R&&(c=C(c)),Object.fromEntries(c)}async function ie(){try{if(b.schemaMode)return b.onValidate?(G(!1),D.$localPending.value=!0,b.onValidate()):{result:!1,data:t.value};{let R=t.value;return {result:(await Promise.allSettled(Object.values(u.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:R}}}catch{return {result:false,data:t.value}}finally{D.$localPending.value=false;}}let{$shortcuts:de,$localPending:pe,...me}=D;return reactive({...me,...de,$fields:u,$value:t,$resetAll:J,$reset:V,$touch:G,$validate:ie,$unwatch:s,$watch:o,$clearExternalErrors:I,$extractDirtyFields:L})}function Te({rulesDef:e,...t}){if(bt(e,t.state))return wt({rulesDef:e,...t});if(ht(t.state,e)){if(Ve(t.state))return Ue({rulesDef:e,...t});{let n=effectScope().run(()=>{let m=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,f=>{m.value=f;},{deep:true}),watch(m,f=>{t.state.value=f;},{deep:true}),{fakeState:m}}),{state:l,...i}=t;return Ue({rulesDef:e,...i,state:n.fakeState})}}else if(Et(e))return Ne({rulesDef:e,...t})}function Ie({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:i,schemaErrors:m,schemaMode:f=false,onValidate:S}){let y=Ke(),b=ref();return b.value=Ue({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:y,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:i,fieldName:"root",path:"",schemaErrors:m,rootSchemaErrors:m,schemaMode:f,onValidate:S}),getCurrentScope()&&onScopeDispose(()=>{b.value?.$unwatch();}),reactive({regle:b})}function rt(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(i,m,f){let S=isRef(m)?m:computed(typeof m=="function"?m:()=>m),y={...n,...f},b=isRef(i)?i:ref(i),B=ref({...Q(b.value)});return {r$:Ie({scopeRules:S,state:b,options:y,initialState:B,customRules:e,shortcuts:r}).regle}}return l}var ke=rt();function nt(){function e(t,r){return r}return e}var at=nt();function Vt({rules:e,modifiers:t,shortcuts:r}){let n=rt(e,t,r),l=nt();return {useRegle:n,inferRules:l}}function je(e,t){let r=t??false,n=computed({get:()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$value])),set:o=>{typeof o=="object"&&Object.entries(o).forEach(([s,I])=>e[s].$value=I);}}),l=computed({get:()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentValue])),set:o=>{typeof o=="object"&&Object.entries(o).forEach(([s,I])=>e[s].$silentValue=I);}}),i=computed(()=>Object.entries(e).every(([o,s])=>s?.$dirty)),m=computed(()=>Object.entries(e).some(([o,s])=>s?.$anyDirty)),f=computed(()=>Object.entries(e).some(([o,s])=>s?.$invalid)),S=computed(()=>Object.entries(e).every(([o,s])=>s?.$invalid)),y=computed(()=>Object.entries(e).some(([o,s])=>s?.$error)),b=computed(()=>Object.entries(e).every(([o,s])=>s?.$ready)),B=computed(()=>Object.entries(e).some(([o,s])=>s?.$pending)),D=computed(()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$errors]))),N=computed(()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentErrors]))),w=computed(()=>Object.entries(e).every(([o,s])=>s?.$edited)),a=computed(()=>Object.entries(e).some(([o,s])=>s?.$anyEdited)),j=computed(()=>e);function $(){Object.values(e).forEach(o=>{o.$reset();});}function h(){Object.values(e).forEach(o=>{o.$touch();});}function E(){Object.values(e).forEach(o=>{o.$resetAll();});}function u(o=true){return Object.values(e).map(s=>s.$extractDirtyFields(o))}function v(){Object.values(e).forEach(o=>{o.$clearExternalErrors();});}async function M(){try{let o=n.value;return {result:(await Promise.allSettled(Object.values(e).map(V=>V.$validate()))).every(V=>V.status==="fulfilled"?V.value.result===!0:!1),data:o}}catch{return {result:false,data:n.value}}}return reactive({...!r&&{$instances:j,$value:n,$silentValue:l,$errors:D,$silentErrors:N},$dirty:i,$anyDirty:m,$invalid:f,$valid:S,$error:y,$pending:B,$ready:b,$edited:w,$anyEdited:a,$resetAll:E,$reset:$,$touch:h,$validate:M,$extractDirtyFields:u,$clearExternalErrors:v})}function Ft(e){function t(){let r=ref(je(e.value,true)),n=reactive({r$:r});return watch(e,l=>{r.value=je(l,true);}),{r$:n.r$}}return {useCollectScopedValidations:t}}function _t(e){let t=e??ke,r=ref({});return {useScopedRegle:(l,i,m)=>{let f=he(),{r$:S}=t(l,i,m);r.value[f]=S,onScopeDispose(()=>{delete r.value[f];});function y(){delete r.value[f];}return {r$:S,$dispose:y}},instances:r}}function lt(e){let{instances:t,useScopedRegle:r}=_t(e),{useCollectScopedValidations:n}=Ft(t);return {useScopedRegle:r,useCollectScopedValidations:n}}
2
+ export{He as InternalRuleType,qe as createRule,lt as createScopedUseRegle,Vt as defineRegleConfig,at as inferRules,je as mergeRegles,ee as unwrapRuleParameters,ke as useRegle,Ie as useRootStorage};
@@ -2256,8 +2256,8 @@ function defineRegleConfig({
2256
2256
  const inferRules2 = createInferRuleHelper();
2257
2257
  return { useRegle: useRegle2, inferRules: inferRules2 };
2258
2258
  }
2259
- function mergeRegles(regles, _nested) {
2260
- const nested = _nested == null ? false : _nested;
2259
+ function mergeRegles(regles, _scoped) {
2260
+ const scoped = _scoped == null ? false : _scoped;
2261
2261
  const $value = computed({
2262
2262
  get: () => Object.fromEntries(Object.entries(regles).map(([key, r]) => [key, r.$value])),
2263
2263
  set: (value) => {
@@ -2380,7 +2380,7 @@ function mergeRegles(regles, _nested) {
2380
2380
  }
2381
2381
  }
2382
2382
  return reactive({
2383
- ...!nested && {
2383
+ ...!scoped && {
2384
2384
  $instances,
2385
2385
  $value,
2386
2386
  $silentValue,
@@ -2404,8 +2404,8 @@ function mergeRegles(regles, _nested) {
2404
2404
  $clearExternalErrors
2405
2405
  });
2406
2406
  }
2407
- function createUseCollectNestedValidations(instances) {
2408
- function useCollectNestedValidations() {
2407
+ function createUseCollectScopedValidations(instances) {
2408
+ function useCollectScopedValidations() {
2409
2409
  const r$ = ref(mergeRegles(instances.value, true));
2410
2410
  const regle = reactive({ r$ });
2411
2411
  watch(instances, (newInstances) => {
@@ -2413,12 +2413,12 @@ function createUseCollectNestedValidations(instances) {
2413
2413
  });
2414
2414
  return { r$: regle.r$ };
2415
2415
  }
2416
- return { useCollectNestedValidations };
2416
+ return { useCollectScopedValidations };
2417
2417
  }
2418
- function createUseNestedRegleComposable(customUseRegle) {
2418
+ function createUseScopedRegleComposable(customUseRegle) {
2419
2419
  const scopedUseRegle = customUseRegle ?? useRegle;
2420
2420
  const instances = ref({});
2421
- const useNestedRegle = (state, rulesFactory, options) => {
2421
+ const useScopedRegle = (state, rulesFactory, options) => {
2422
2422
  const $id = randomId();
2423
2423
  const { r$ } = scopedUseRegle(state, rulesFactory, options);
2424
2424
  instances.value[$id] = r$;
@@ -2430,17 +2430,17 @@ function createUseNestedRegleComposable(customUseRegle) {
2430
2430
  }
2431
2431
  return { r$, $dispose };
2432
2432
  };
2433
- return { useNestedRegle, instances };
2433
+ return { useScopedRegle, instances };
2434
2434
  }
2435
2435
 
2436
- // src/core/createNestedUseRegle/createNestedUseRegle.ts
2437
- function createNestedUseRegle(customUseRegle) {
2438
- const { instances, useNestedRegle } = createUseNestedRegleComposable(customUseRegle);
2439
- const { useCollectNestedValidations } = createUseCollectNestedValidations(instances);
2436
+ // src/core/createScopedUseRegle/createScopedUseRegle.ts
2437
+ function createScopedUseRegle(customUseRegle) {
2438
+ const { instances, useScopedRegle } = createUseScopedRegleComposable(customUseRegle);
2439
+ const { useCollectScopedValidations } = createUseCollectScopedValidations(instances);
2440
2440
  return {
2441
- useNestedRegle,
2442
- useCollectNestedValidations
2441
+ useScopedRegle,
2442
+ useCollectScopedValidations
2443
2443
  };
2444
2444
  }
2445
2445
 
2446
- export { InternalRuleType, createNestedUseRegle, createRule, defineRegleConfig, inferRules, mergeRegles, unwrapRuleParameters, useRegle, useRootStorage };
2446
+ export { InternalRuleType, createRule, createScopedUseRegle, defineRegleConfig, inferRules, mergeRegles, unwrapRuleParameters, useRegle, useRootStorage };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@regle/core",
3
- "version": "0.7.4-beta.1",
3
+ "version": "0.7.4-beta.2",
4
4
  "description": "Type safe form validation library for Vue 3",
5
5
  "peerDependencies": {
6
6
  "vue": ">=3.3.0",