@regle/core 1.24.0 → 1.24.1-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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @regle/core v1.24.0
2
+ * @regle/core v1.24.1-beta.2
3
3
  * (c) 2026 Victor Garcia
4
4
  * @license MIT
5
5
  */
@@ -14,6 +14,7 @@ interface GlobalConfigOverrides<TValue extends unknown = unknown> {
14
14
  isEdited?: isEditedHandlerFn<TValue>;
15
15
  }
16
16
  type isEditedHandlerFn<TValue extends unknown = unknown> = (currentValue: MaybeInput<TValue>, initialValue: MaybeInput<TValue>, defaultHandlerFn: (currentValue: unknown, initialValue: unknown) => boolean) => boolean;
17
+ type RegleImmediateDirtyMode = 'eager' | 'non-empty' | 'lazy-non-empty';
17
18
  interface RegleBehaviourOptions {
18
19
  /**
19
20
  * Does not run rules until the field is dirty.
@@ -55,10 +56,15 @@ interface RegleBehaviourOptions {
55
56
  */
56
57
  clearExternalErrorsOnValidate?: boolean | undefined;
57
58
  /**
58
- * Set the dirty state to true when the form is initialized.
59
+ * Set the dirty state when the form is initialized.
60
+ *
61
+ * - `true` or `'eager'`: mark every field dirty.
62
+ * - `'non-empty'`: mark every field dirty when any initial value is non-empty.
63
+ * - `'lazy-non-empty'`: mark only fields with non-empty initial values dirty.
64
+ *
59
65
  * @default false
60
66
  */
61
- immediateDirty?: boolean | undefined;
67
+ immediateDirty?: boolean | RegleImmediateDirtyMode | undefined;
62
68
  /**
63
69
  * Disable all the computation
64
70
  * @default false
@@ -1657,7 +1663,7 @@ type $InternalFormPropertyTypes = MaybeRefOrComputedRef<$InternalRegleRuleDecl>
1657
1663
  * Rule tree for a form property
1658
1664
  */
1659
1665
  type RegleRuleDecl<TValue extends any = any, TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<DefaultValidatorsTree>, TOptions extends Record<string, unknown> = FieldRegleBehaviourOptions<TValue>> = TOptions & { [TKey in keyof RemoveIndexSignature<TCustomRules>]?: NonNullable<TCustomRules[TKey]> extends RegleRuleDefinitionLight<infer TParams, boolean, infer TMetadata> ? RegleRuleDefinitionLight<ParamsToLooseParams<TParams>, boolean, TMetadata> | InlineRuleDeclaration<TValue, ParamsToLooseParams<TParams>, any> : TCustomRules[TKey] } & {
1660
- [x: string]: FormRuleDeclaration<TValue, any[]> | boolean | number | undefined;
1666
+ [x: string]: FormRuleDeclaration<TValue, any[]> | boolean | number | undefined | RegleImmediateDirtyMode;
1661
1667
  };
1662
1668
  /**
1663
1669
  * @internal
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @regle/core v1.24.0
2
+ * @regle/core v1.24.1-beta.2
3
3
  * (c) 2026 Victor Garcia
4
4
  * @license MIT
5
5
  */
@@ -1356,7 +1356,7 @@ function filterInspectorTree(nodes, filter) {
1356
1356
  }
1357
1357
  return filtered;
1358
1358
  }
1359
- var version$1 = "1.24.0";
1359
+ var version$1 = "1.24.1-beta.2";
1360
1360
  function createDevtools(app) {
1361
1361
  setupDevtoolsPlugin({
1362
1362
  id: "regle-devtools",
@@ -1867,8 +1867,30 @@ function createStandardSchema(validateFn) {
1867
1867
  }
1868
1868
  } };
1869
1869
  }
1870
+ function resolveImmediateDirtyMode(value) {
1871
+ if (value === true) return "eager";
1872
+ if (value === false || value == null) return false;
1873
+ return value;
1874
+ }
1875
+ function hasNonEmptyInitialValue(value) {
1876
+ if (isObject(value) && !isStatic(value)) return Object.values(value).some((item) => hasNonEmptyInitialValue(item));
1877
+ if (Array.isArray(value)) return value.some((item) => hasNonEmptyInitialValue(item));
1878
+ return !isEmpty(value);
1879
+ }
1880
+ function shouldApplyImmediateDirty(mode, value, rootValue) {
1881
+ if (mode === "eager") return true;
1882
+ if (mode === "non-empty") return hasNonEmptyInitialValue(rootValue);
1883
+ if (mode === "lazy-non-empty") return hasNonEmptyInitialValue(value);
1884
+ return false;
1885
+ }
1886
+ function shouldApplyFieldImmediateDirty(mode, value, rootValue, isRootField = false) {
1887
+ if (mode === "eager") return true;
1888
+ if (mode === "non-empty") return isRootField && !isEmpty(rootValue);
1889
+ if (mode === "lazy-non-empty") return !isEmpty(value);
1890
+ return false;
1891
+ }
1870
1892
  const DEFAULT_DEBOUNCE_TIME = 200;
1871
- function createReactiveFieldStatus({ state, rulesDef, customMessages, path, cachePath, fieldName, storage, options, externalErrors, schemaErrors, schemaMode, onUnwatch, $isArray, initialState, originalState, shortcuts, overrides, onValidate }) {
1893
+ function createReactiveFieldStatus({ state, rulesDef, customMessages, path, cachePath, fieldName, storage, options, externalErrors, schemaErrors, schemaMode, onUnwatch, $isArray, initialState, rootInitialState, originalState, shortcuts, overrides, onValidate }) {
1872
1894
  let scope = effectScope();
1873
1895
  let scopeState;
1874
1896
  let fieldScopes = [];
@@ -1995,8 +2017,8 @@ function createReactiveFieldStatus({ state, rulesDef, customMessages, path, cach
1995
2017
  return false;
1996
2018
  });
1997
2019
  const $immediateDirty = computed(() => {
1998
- if ($localOptions.value.$immediateDirty != null) return $localOptions.value.$immediateDirty;
1999
- else if (toValue(options.immediateDirty) != null) return toValue(options.immediateDirty) === true;
2020
+ if ($localOptions.value.$immediateDirty != null) return resolveImmediateDirtyMode($localOptions.value.$immediateDirty);
2021
+ else if (toValue(options.immediateDirty) != null) return resolveImmediateDirtyMode(toValue(options.immediateDirty));
2000
2022
  return false;
2001
2023
  });
2002
2024
  const $rewardEarly = computed(() => {
@@ -2247,6 +2269,9 @@ function createReactiveFieldStatus({ state, rulesDef, customMessages, path, cach
2247
2269
  const $rules = ref({});
2248
2270
  const $localOptions = ref({});
2249
2271
  createReactiveRulesResult();
2272
+ function applyImmediateDirty() {
2273
+ if (shouldApplyFieldImmediateDirty(scopeState.$immediateDirty.value, initialState.value, rootInitialState?.value ?? initialState.value, path === "")) scopeState.$dirty.value = true;
2274
+ }
2250
2275
  function $reset(options, fromParent) {
2251
2276
  abortCommit();
2252
2277
  $clearExternalErrors();
@@ -2266,6 +2291,7 @@ function createReactiveFieldStatus({ state, rulesDef, customMessages, path, cach
2266
2291
  if (options?.clearExternalErrors) $clearExternalErrors();
2267
2292
  if (!fromParent && !options?.keepValidationState) for (const rule of Object.values($rules.value)) rule.$reset();
2268
2293
  if (!scopeState.$lazy.value && !scopeState.$silent.value && !fromParent) for (const rule of Object.values($rules.value)) rule.$parse();
2294
+ applyImmediateDirty();
2269
2295
  }
2270
2296
  function abortCommit() {
2271
2297
  if ("cancel" in $commit) $commit.cancel();
@@ -2370,7 +2396,7 @@ function createReactiveFieldStatus({ state, rulesDef, customMessages, path, cach
2370
2396
  if (externalErrors?.value?.length) externalErrors.value = [];
2371
2397
  }
2372
2398
  if (!scopeState.$lazy.value && !scopeState.$dirty.value && !scopeState.$silent.value) $commitHandler();
2373
- if (scopeState.$immediateDirty.value) scopeState.$dirty.value = true;
2399
+ applyImmediateDirty();
2374
2400
  const { $shortcuts, $validating, $autoDirty, $rewardEarly, $clearExternalErrorsOnChange, $clearExternalErrorsOnValidate, $haveAnyAsyncRule, $debounce, $lazy, ...restScope } = scopeState;
2375
2401
  const fullStatus = reactive({
2376
2402
  ...restScope,
@@ -2699,8 +2725,8 @@ function createReactiveCollectionStatus({ state, rulesDef, customMessages, path,
2699
2725
  return true;
2700
2726
  });
2701
2727
  const $immediateDirty = computed(() => {
2702
- if ($localOptions.value.$immediateDirty != null) return $localOptions.value.$immediateDirty;
2703
- else if (toValue(options.immediateDirty) != null) return toValue(options.immediateDirty) === true;
2728
+ if ($localOptions.value.$immediateDirty != null) return resolveImmediateDirtyMode($localOptions.value.$immediateDirty);
2729
+ else if (toValue(options.immediateDirty) != null) return resolveImmediateDirtyMode(toValue(options.immediateDirty));
2704
2730
  return false;
2705
2731
  });
2706
2732
  const $clearExternalErrorsOnChange = computed(() => {
@@ -2930,7 +2956,7 @@ function createReactiveCollectionStatus({ state, rulesDef, customMessages, path,
2930
2956
  ...createStandardSchema($validate)
2931
2957
  });
2932
2958
  }
2933
- function createReactiveNestedStatus({ rulesDef, state, path = "", cachePath, rootRules, externalErrors, schemaErrors, rootSchemaErrors, validationGroups, initialState, originalState, fieldName, ...commonArgs }) {
2959
+ function createReactiveNestedStatus({ rulesDef, state, path = "", cachePath, rootRules, externalErrors, schemaErrors, rootInitialState, rootSchemaErrors, validationGroups, initialState, originalState, fieldName, ...commonArgs }) {
2934
2960
  let scope = effectScope();
2935
2961
  let scopeState;
2936
2962
  let nestedScopes = [];
@@ -3156,7 +3182,7 @@ function createReactiveNestedStatus({ rulesDef, state, path = "", cachePath, roo
3156
3182
  return true;
3157
3183
  });
3158
3184
  const $immediateDirty = computed(() => {
3159
- if (toValue(commonArgs.options.immediateDirty) != null) return toValue(commonArgs.options.immediateDirty) === true;
3185
+ if (toValue(commonArgs.options.immediateDirty) != null) return resolveImmediateDirtyMode(toValue(commonArgs.options.immediateDirty));
3160
3186
  return false;
3161
3187
  });
3162
3188
  const $lazy = computed(() => {
@@ -3294,6 +3320,7 @@ function createReactiveNestedStatus({ rulesDef, state, path = "", cachePath, roo
3294
3320
  $shortcuts,
3295
3321
  $groups,
3296
3322
  $silentValue,
3323
+ $immediateDirty,
3297
3324
  $edited,
3298
3325
  $anyEdited,
3299
3326
  $localPending,
@@ -3320,6 +3347,9 @@ function createReactiveNestedStatus({ rulesDef, state, path = "", cachePath, roo
3320
3347
  function $clearExternalErrors() {
3321
3348
  if (externalErrors && !isEmpty(externalErrors.value)) externalErrors.value = {};
3322
3349
  }
3350
+ function applyImmediateDirty() {
3351
+ if (scopeState.$immediateDirty.value !== "lazy-non-empty" && shouldApplyImmediateDirty(scopeState.$immediateDirty.value, initialState.value, rootInitialState?.value ?? initialState.value)) $touch(true, false);
3352
+ }
3323
3353
  function $reset(options, fromParent) {
3324
3354
  $unwatchExternalErrors?.();
3325
3355
  $unwatch();
@@ -3340,7 +3370,10 @@ function createReactiveNestedStatus({ rulesDef, state, path = "", cachePath, roo
3340
3370
  }
3341
3371
  if (options?.clearExternalErrors === false) $clearExternalErrors();
3342
3372
  define$WatchExternalErrors();
3343
- if (!fromParent) createReactiveFieldsStatus();
3373
+ if (!fromParent) {
3374
+ createReactiveFieldsStatus();
3375
+ applyImmediateDirty();
3376
+ }
3344
3377
  }
3345
3378
  function $touch(runCommit = true, withConditions = false) {
3346
3379
  for (const field of Object.values($fields.value)) field?.$touch(runCommit, withConditions);
@@ -3420,6 +3453,7 @@ function createReactiveNestedStatus({ rulesDef, state, path = "", cachePath, roo
3420
3453
  return false;
3421
3454
  }
3422
3455
  }
3456
+ applyImmediateDirty();
3423
3457
  const { $shortcuts, $localPending: _$localPending, ...restScopeState } = scopeState;
3424
3458
  const fullStatus = reactive({
3425
3459
  ...restScopeState,
@@ -3536,6 +3570,7 @@ function useRootStorage({ initialState, originalState, options, scopeRules, stat
3536
3570
  customMessages: customRules?.(),
3537
3571
  storage,
3538
3572
  options,
3573
+ rootInitialState: initialState,
3539
3574
  externalErrors: computedExternalErrors,
3540
3575
  validationGroups: options.validationGroups,
3541
3576
  initialState,
@@ -3556,6 +3591,7 @@ function useRootStorage({ initialState, originalState, options, scopeRules, stat
3556
3591
  customMessages: customRules?.(),
3557
3592
  storage,
3558
3593
  options,
3594
+ rootInitialState: initialState,
3559
3595
  externalErrors: computedExternalErrors,
3560
3596
  initialState,
3561
3597
  originalState,
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @regle/core v1.24.0
2
+ * @regle/core v1.24.1-beta.2
3
3
  * (c) 2026 Victor Garcia
4
4
  * @license MIT
5
5
  */
6
6
 
7
- import{computed as e,effectScope as t,getCurrentInstance as n,getCurrentScope as r,inject as i,isRef as a,markRaw as o,nextTick as s,onMounted as c,onScopeDispose as l,reactive as u,ref as d,shallowRef as f,toRef as p,toValue as m,triggerRef as h,unref as g,version as _,watch as v,watchEffect as y}from"vue";function b(e){return e?.constructor?.name==`File`}function x(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function S(e,t,n){if(!e)return n;var r,i;if(Array.isArray(t)&&(r=t.slice(0)),typeof t==`string`&&(r=t.split(`.`)),typeof t==`symbol`&&(r=[t]),!Array.isArray(r))throw Error(`props arg must be an array, a string or a symbol`);for(;r.length;)if(i=r.shift(),!e||!i||(e=e[i],e===void 0))return n;return e}function C(e,...t){for(var n=[].slice.call(arguments),r,i=n.length;r=n[i-1],i--;)if(!r||typeof r!=`object`&&typeof r!=`function`)throw Error(`expected object, got `+r);for(var a=n[0],o=n.slice(1),s=o.length,i=0;i<s;i++){var c=o[i];for(var l in c)a[l]=c[l]}return a}function w(e){let t={};for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n],i=n.split(`.`),a=t;for(let e=0;e<i.length;e++){let t=i[e],n=e===i.length-1,o=t.match(/^\d+$/)?Number(t):null;if(o!==null){if(Array.isArray(a))if(n)a[o]=r;else{if(typeof a[o]!=`object`||a[o]===null){let t=i[e+1];a[o]=t&&t.match(/^\d+$/)?{$each:[],$self:[]}:{}}a=`$each`in a[o]?a[o].$each:a[o]}}else if(n)if(Array.isArray(a[t])){let e=a[t].slice();a[t]={},a[t].$self=e}else typeof a[t]==`object`&&a[t]!==null&&`$each`in a[t]?a[t].$self=r:a[t]=r;else{let n=i[e+1];if(Array.isArray(a[t])){let e=a[t].slice();a[t]={$each:[]},a[t].$self=e}(typeof a[t]!=`object`||a[t]===null||Array.isArray(a[t])&&!n.match(/^\d+$/))&&(n&&n.match(/^\d+$/)?a[t]={$each:[],$self:[]}:a[t]={}),a=`$each`in a[t]?a[t].$each:a[t]}}}return t}function T(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function E(e,t,n,r=!1){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})}function D(e){return typeof e==`function`&&!!e.prototype&&`constructor`in e.prototype&&e.prototype.constructor===e}function O(e,t=!0,n=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):b(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:x(e)?e==null?!0:n?Object.keys(e).length===0:!1:!String(e).length}const k=Symbol(`regle-rule`);function A(e){let t=[];return e.global&&t.push(`g`),e.ignoreCase&&t.push(`i`),e.multiline&&t.push(`m`),e.sticky&&t.push(`y`),e.unicode&&t.push(`u`),t.join(``)}function j(e,t=0){if(t>20)return e;let n=e,r={}.toString.call(e).slice(8,-1);if(r==`Set`&&(n=new Set([...e].map(e=>j(e,t++)))),r==`Map`&&(n=new Map([...e].map(e=>[j(e[0]),j(e[1])]))),r==`Date`&&(n=new Date(e.getTime())),r==`RegExp`&&(n=RegExp(e.source,A(e))),r==`Array`||r==`Object`){n=Array.isArray(e)?[]:{};for(let r in e)n[r]=j(e[r],t++)}return n}function M(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e==`object`&&t===`[object Date]`?new Date(e.getTime()):typeof e==`number`||t===`[object Number]`||typeof e==`string`||t===`[object String]`?new Date(e):new Date(NaN)}function N(e,t,{immediate:n=!1,trackDebounceRef:r}={}){let i,a=(...a)=>{r&&(r.value=!0);function o(){r&&(r.value=!1)}return new Promise((r,s)=>{function c(e){r(e),o()}if(clearTimeout(i),i=setTimeout(()=>{if(o(),i=void 0,!n)try{Promise.resolve(e.apply(this,[...a])).then(c).catch(e=>s(e)).finally(o)}catch(e){s(e)}},t),n){o();try{Promise.resolve(e.apply(this,[...a])).then(c).catch(e=>s(e)).finally(o)}catch(e){s(e)}}})};return a.cancel=()=>{clearTimeout(i),i=void 0,r&&(r.value=!1)},a}function P(e,t,n=!1,r=!0){if(e===t)return!0;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(e.constructor!==t.constructor)return!1;var i,a,o;if(Array.isArray(e)&&Array.isArray(t)){if(i=e.length,i!=t.length)return!1;if(r||!r&&n){for(a=i;a--!==0;)if(!P(e[a],t[a],n,!1))return!1}return!0}if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(o=Object.keys(e),i=o.length,i!==Object.keys(t).length)return!1;for(a=i;a--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[a]))return!1;for(a=i;a--!==0;){var s=o[a];if(x(e)&&x(t)&&s&&(r||!r&&n)&&!P(e[s],t[s],n,!1))return!1}return!0}return e!==e&&t!==t}var F=class extends Error{constructor(e=`Promise was aborted`){super(e),this.name=`AbortError`}};function I(e){let t=new AbortController,{signal:n}=t,r=new Promise((t,r)=>{function i(){r(new F)}n.addEventListener(`abort`,i),e.then(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new F):t(e)}).catch(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new F):r(e)})});function i(e){t.abort(e)}return{promise:r,abort:i,signal:n}}function L(e,t,r){if(!a(e))return r?.(),u(e);let i=d(!1);return n()&&c(async()=>{await s(),typeof window<`u`&&window.requestAnimationFrame(()=>{i.value=!0})}),u(new Proxy({},{get(n,a,o){if(r?.(),t.value&&a!==`$value`&&i.value)return Reflect.get(n,a,o);if(e.value!==void 0)return g(Reflect.get(e.value,a,o))},set(t,n,i){return r?.(),a(e.value[n])&&!a(i)?e.value[n].value=i:e.value[n]=i,!0},deleteProperty(t,n){return r?.(),Reflect.deleteProperty(e.value,n)},has(t,n){return r?.(),e.value===void 0?!1:Reflect.has(e.value,n)},ownKeys(){return r?.(),e.value===void 0?[]:Object.keys(e.value)},getOwnPropertyDescriptor(){return r?.(),{enumerable:!0,configurable:!0}}}))}const R={Inline:`__inline`,Async:`__async`};function z(e){try{return e.map(e=>m(e))}catch{return[]}}function B(t){return t.map(t=>t instanceof Function?e(t):a(t)?t:p(()=>t))}function V(e){let t=e.toString().replace(/\/\/.*$/gm,``).replace(/\/\*[\s\S]*?\*\//g,``).match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return t?(t[0]||t[1]||t[2]||t[3]||t[4]||``).split(`,`).map(e=>e.trim()).filter(e=>e.length>0).length:0}function H(e,...t){let{validator:n,type:r,async:i}=e,a=i||r===R.Async||n.constructor.name===`AsyncFunction`;return o({validator(n,...r){return e.validator(n,...z(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:z(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:z(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:z(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...z(t)),i;return r instanceof Promise?r.then(e=>(i=e,typeof i==`object`&&`$valid`in i?i.$valid:typeof i==`boolean`?i:!1)):(i=r,typeof i==`object`&&`$valid`in i?i.$valid:typeof i==`boolean`?i:!1)},type:r,_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:a,_params:B(t),_brand:k})}function U(e){if(typeof e.validator==`function`){let t=[],n=e.async??e.validator.constructor.name===`AsyncFunction`,r=H({...e,async:n},...t);if(V(e.validator)>1){let t=function(...t){return H(e,...t)};return t.validator=r.validator,t.message=r.message,t.active=r.active,t.tooltip=r.tooltip,t.type=r.type,t.exec=r.exec,t._validator=r.validator,t._message=r.message,t._active=r.active,t._tooltip=r.tooltip,t._type=e.type,t._message_pacthed=!1,t._tooltip_pacthed=!1,t._async=n,t}else return r}throw Error(`[createRule] validator must be a function`)}const W=Symbol.for(`regle:instance`);function G(e){return typeof e==`object`&&!!e&&W in e}function K(e){return x(e.value)}function ee(e,n,r){let i=t(),a;return a=e instanceof Function?i.run(()=>e(n,r??0)):e,{scope:i,unwrapped:a}}const q={LessThan:-1,EqualTo:0,GreaterThan:1};function J(e,t){let n=String(e).split(`.`),r=String(t).split(`.`);for(let e=0;e<Math.min(n.length,r.length);e++){let t=Number(n[e]),i=Number(r[e]);if(t>i)return q.GreaterThan;if(i>t)return q.LessThan;if(!isNaN(t)&&isNaN(i))return q.GreaterThan;if(isNaN(t)&&!isNaN(i))return q.LessThan}return q.EqualTo}const Y=J(_,`3.5.0`)!==-1;function te(){return Math.floor(Math.random()*Date.now()).toString()}function ne(){return typeof window>`u`?te():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function re(e){return r()?(l(e),!0):!1}function X(e){let n=!1,r,i=t(!0);return((...t)=>(n||=(r=i.run(()=>e(...t)),!0),r))}function ie(e,t){return e.some(e=>t?e?.[t]:!1)}function ae(e,t){return t?e.reduce((e,n)=>{let r=n?.[t]||[];return e.concat(r)},[]):[]}const oe=Symbol(`regle`),Z=Symbol(`regle-config`),Q={REGLE_STATIC:`__regle_static`};function se(e,t){return!de(e.value)&&(K(e)||x(t.value)&&!O(t.value)&&!Object.entries(t.value).some(([e,t])=>$(t)||typeof t==`function`))}function ce(e,t){return!!e.value&&x(e.value)&&`$each`in e.value||Array.isArray(t.value)}function le(e){return!!e.value&&(x(e.value)||K(e.value))}function $(e){return(x(e)||typeof e==`function`)&&`_validator`in e}function ue(e){return typeof e.value==`function`?`_validator`in e.value:!0}function de(e){return x(e)&&T(e,Q.REGLE_STATIC)&&e[Q.REGLE_STATIC]===!0}function fe(e){return x(e)&&`$fields`in e}function pe(e){return!!e&&`$rules`in e}var me=`1.24.0`;function he(){let e=f(new Map),t=f(new Map),n=f(new Map),i=f(new Map),a=f(new Map),o=f(new Map),s=f(new Map);function c(e){let n=t.value.get(e);if(n)return n;{let n=d({});return t.value.set(e,n),n}}function u(e){let t=n.value.get(e);if(t)return t;{let t=d([]);return n.value.set(e,t),t}}function p(e,t){o.value.set(e,t)}function m(e){return o.value.get(e)}function h(e,t,n){s.value.set(`${e}-${t}`,n)}function g(e,t){return s.value.get(`${e}-${t}`)}function _(e,t){e&&t!=null&&s.value.delete(`${e}-${t}`)}function v(e,t){i.value.set(e,t)}function y(e){return i.value.get(e)??!1}function b(t,n){e.value.set(t,n)}function x(t,n){let r=e.value.get(t);if(r)return S(n,r)?{valid:!0}:{valid:!1}}function S(e,t){let n=Object.keys(t),r=Object.keys(e);return r.length!==n.length||!r.every(e=>n.includes(e))?!1:r.every(n=>{let r=e[n],i=t[n];if(!i||!r||typeof r==`function`||typeof i==`function`||typeof r==`number`||typeof r==`boolean`||typeof r==`string`)return!1;if(`_params`in r){if(!r._params)return!0;if(Array.isArray(r._params))return r._params?.every((e,t)=>{if(typeof i==`number`||typeof i==`boolean`||typeof i==`string`)return!0;{let e=z(`_params`in i&&Array.isArray(i._params)?i._params:[]),n=z(r._params);return e?.[t]===n?.[t]}})}})}function C(e){let t=a.value.get(e);if(t)return t;{let t=d(!1),n=d(!0),r=d({}),i=d(!1);return a.value.set(e,{$pending:t,$valid:n,$metadata:r,$validating:i}),{$pending:t,$valid:n,$metadata:r,$validating:i}}}return r()&&l(()=>{e.value.clear(),t.value.clear(),n.value.clear(),i.value.clear(),a.value.clear(),s.value.clear()}),{addRuleDeclEntry:b,setDirtyEntry:v,checkRuleDeclEntry:x,getDirtyState:y,trySetRuleStatusRef:C,getFieldsEntry:c,getCollectionsEntry:u,getArrayStatus:g,addArrayStatus:h,deleteArrayStatus:_,arrayStatusStorage:s,addAdditionalRulesEntry:p,getAdditionalRulesEntry:m}}function ge({field:e,silent:t=!1}){let n=Object.entries(e.$rules??{}).map(([n,r])=>{let i=``;if(t&&!r.$valid)i=r.$message;else if(!r.$valid&&e.$error&&!r.$validating)i=r.$message;else return null;return{$message:i,$property:e.fieldName,$rule:n,$type:r.$type,...typeof r.$metadata==`object`?r.$metadata:{}}}).filter(e=>!!e).reduce((e,t)=>(typeof t.$message==`string`?e.push(t):e.push(...t.$message.map(e=>({...t,$message:e}))),e),[]),r=e.$error&&e.$externalErrors&&Array.isArray(e.$externalErrors)?e.$externalErrors.map(t=>({$message:t,$property:e.fieldName,$rule:`external`,$type:void 0})):[],i=[];return e.$schemaErrors&&e.$error&&(i=!Array.isArray(e.$schemaErrors)&&`$self`in e.$schemaErrors?e.$schemaErrors.$self??[]:e.$schemaErrors??[]),[...n,...r,...i]}function _e({field:e}){let t=[];for(let n of Object.values(e.$rules??{})){let e=n.$tooltip;e&&(typeof e==`string`?t.push(e):t.push(...e))}return t}function ve(e){return x(e)&&`$each`in e}function ye(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!x(e)))return e;if(ve(e)){let t=n?e.$self?.map(e=>({message:e,path:[]}))??[]:e.$self??[],r=e.$each?.map(e=>be(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>be(t,n,[e])).flat()}function be(e,t=!1,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(e=>!x(e)))return t?e.map(e=>({message:e,path:r??[]})):e;if(ve(e)){let n=r?.length?e.$self?.map(e=>({message:e,path:r??[]}))??[]:e.$self??[],i=e.$each?.map((e,n)=>be(e,t,r?.concat(n)))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>be(n,t,r?.concat(e))).flat()}function xe({customMessages:n,rule:r,ruleKey:i,state:a,path:o,cachePath:s,storage:c,modifiers:l}){let f=t(),p={},m,h=e(()=>$(r.value)&&r.value._async),g=d(!1),{$pending:_,$valid:y,$metadata:b,$validating:x}=c.trySetRuleStatusRef(`${s}.${i}`);function S(){f=t(),p=f.run(()=>{let t=d(!1),s=d(!1),c=d(!0),l=d(!1),u=d(!1),f=e(()=>({$value:a.value,$error:s.value,$dirty:t.value,$pending:l.value,$correct:u.value,$invalid:c.value,$rule:{$valid:y.value,$invalid:!y.value,$pending:_.value},$params:S.value,...b.value})),p=e(()=>{try{return ue(r)?typeof r.value.active==`function`?r.value.active(f.value):!!r.value.active:!0}catch(e){return console.error(`Error in "active" function for "${o}.${i}" rule`,{cause:e}),!0}});function m(e){try{let t=``,a=n?n[i]?.[e]:void 0;if(a&&(t=typeof a==`function`?a(f.value):a),ue(r)){let n=`_${e}_patched`;a&&!r.value[n]||(t=typeof r.value[e]==`function`?r.value[e](f.value):r.value[e]??``)}return t}catch(t){return console.error(`Error in "${e}" function for "${o}.${i}" rule`,{cause:t}),``}}let h=e(()=>{let e=m(`message`);return O(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),v=e(()=>ue(r)&&r.value.type?r.value.type:i),x=e(()=>ue(r)?r.value.validator:r.value),S=e(()=>typeof r.value==`function`?[]:z(r.value._params??[]));return{$active:p,$message:h,$type:v,$validator:x,$params:S,$path:e(()=>`${o}.${i}`),$tooltip:g,$fieldCorrect:u,$fieldError:s,$fieldDirty:t,$fieldPending:l,$fieldInvalid:c}}),m=v(p?.$params,()=>{(!l.$silent.value||l.$rewardEarly.value&&p.$fieldError.value)&&E()},{deep:Y?1:!0})}S();function C(){y.value=!0,p.$fieldDirty.value&&(_.value=!0)}async function w(){let e=!1;try{let t=p.$validator.value;if(typeof t!=`function`)return console.error(`${o}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let n=t(a.value,...p.$params.value),r=a.value;C();let i;if(i=n instanceof Promise?await n:n,a.value!==r)return!0;if(typeof i==`boolean`)e=i;else{let{$valid:t,...n}=i;e=t,b.value=n}}catch{e=!1}finally{_.value=!1}return e}function T(e,t=!0){if($(r.value)&&r.value._async)return!0;let n=e(a.value,...p.$params.value);if(n instanceof Promise)return!0;if(n!=null){if(typeof n==`boolean`)return n;{let{$valid:e,...t}=n;return b.value=t,e}}return!0}async function E(){try{x.value=!0;let e=!1;if(g.value=!0,$(r.value)&&r.value._async)e=await w();else{let t=p.$validator.value;e=T(t)}return y.value=e,e}catch{return!1}finally{x.value=!1,g.value=!1}}function D(){try{return x.value=!0,T(p.$validator.value)}catch{return!1}finally{x.value=!1}}function k(){y.value=!0,b.value={},_.value=!1,x.value=!1,S()}function A(){m(),f.stop(),f=t()}return u({...p,$pending:_,$valid:y,$metadata:b,$haveAsync:h,$maybePending:g,$validating:x,$parse:E,$parseSync:D,$unwatch:A,$watch:S,$reset:k})}function Se(e){return{"~standard":{version:1,vendor:`regle`,validate:async t=>{let{valid:n,data:r,errors:i}=await e(t,!0);return n?{value:r,issues:[]}:{issues:ye(i,{includePath:!0})}}}}}function Ce({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,fieldName:c,storage:l,options:f,externalErrors:h,schemaErrors:g,schemaMode:_,onUnwatch:b,$isArray:S,initialState:C,originalState:w,shortcuts:T,overrides:E,onValidate:D}){let k=t(),A,F=[],L,R,z,B,V=()=>{},H,U=()=>{},W=d(!1),G=d(l.getAdditionalRulesEntry(o)??{});function K(e){G.value=e??{},l.addAdditionalRulesEntry(o,e??{}),q(),V()}function ee(e){K(e)}function q(){let e={...r.value,...G.value},t=[];for(let r in e){if(r.startsWith(`$`)||r.startsWith(`~`))continue;let s=e[r];if(!s)continue;let c=p(()=>s);t.push([r,xe({modifiers:{$silent:A.$silent,$rewardEarly:A.$rewardEarly},customMessages:i,rule:c,ruleKey:r,state:n,path:a,cachePath:o,storage:l,$debounce:Q.value.$debounce})])}Z.value=Object.fromEntries(t),l.addRuleDeclEntry(o,e)}function J(){let e={...r.value,...G.value},t=l.checkRuleDeclEntry(o,e),n={};for(let t in e)t.startsWith(`$`)&&(n[t]=e[t]);return Q.value=n,t}function te(){let e=J();ie(),q(),A.processShortcuts(),ne(),re(),e?.valid!=null&&(A.$dirty.value=l.getDirtyState(o),(A.$dirty.value&&!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&V()),l.addRuleDeclEntry(o,r.value)}function ne(){V=A.$debounce.value>0?N(oe,A.$debounce.value,{trackDebounceRef:W}):oe}function re(){U=A.$debounce.value>0?N(()=>{A.$dirty.value=!0},A.$debounce.value):()=>{A.$dirty.value=!0}}function X(){if(Z.value)for(let e of Object.values(Z.value))e.$unwatch();R(),B?.(),A.$dirty.value&&l.setDirtyEntry(o,A.$dirty.value),L?.(),k.stop(),k=t();for(let e of F)e.stop();F=[],b?.(),z?.()}function ie(){if(Z.value)for(let e of Object.values(Z.value))e.$watch();A=k.run(()=>{let r=d(!1),i=d(!1),a=e(()=>r.value),o=e(()=>S||de(n.value)),s=e(()=>Q.value.$debounce==null?A.$haveAnyAsyncRule.value?200:0:Q.value.$debounce),l=e(()=>Q.value.$deepCompare==null?!1:Q.value.$deepCompare),p=e(()=>Q.value.$lazy==null?m(f.lazy)==null?!1:m(f.lazy)===!0:Q.value.$lazy),v=e(()=>Q.value.$immediateDirty==null?m(f.immediateDirty)==null?!1:m(f.immediateDirty)===!0:Q.value.$immediateDirty),b=e(()=>Q.value.$rewardEarly==null?m(f.rewardEarly)==null?!1:m(f.rewardEarly)===!0:!!Q.value.$rewardEarly),x=e(()=>Q.value.$clearExternalErrorsOnChange==null?m(f.clearExternalErrorsOnChange)==null?!D.value:m(f.clearExternalErrorsOnChange)===!0:!!Q.value.$clearExternalErrorsOnChange),w=e(()=>Q.value.$clearExternalErrorsOnValidate==null?m(f.clearExternalErrorsOnValidate)==null?!1:m(f.clearExternalErrorsOnValidate)===!0:!!Q.value.$clearExternalErrorsOnValidate),D=e(()=>b.value?!0:Q.value.$silent==null?m(f.silent)==null?!1:m(f.silent)===!0:Q.value.$silent),k=e(()=>Q.value.$autoDirty==null?m(f.autoDirty)==null?!0:m(f.autoDirty)===!0:Q.value.$autoDirty),j=e(()=>{if(Q.value.$isEdited!=null)return Q.value.$isEdited;if(E?.isEdited!=null)return E.isEdited}),N=e(()=>{for(let e of Object.values(Z.value))if(e.$validating)return!0;return!1}),I=e({get:()=>n.value,set(e){L(),n.value=e,ae()}}),R=e(()=>W.value?Y.value&&r.value:Y.value&&!J.value&&r.value),z=e(()=>ge({field:{$rules:Z.value,$error:R.value,$externalErrors:h?.value,$schemaErrors:g?.value,fieldName:te.value}})),B=e(()=>ge({field:{$rules:Z.value,$error:R.value,$externalErrors:h?.value,$schemaErrors:g?.value,fieldName:te.value},silent:!0})),V=e(()=>z.value.map(e=>e.$message)),H=e(()=>B.value.map(e=>e.$message)),U=d(!1);function G(e,t){return t instanceof Date&&e instanceof Date?M(t).getTime()!==M(e).getTime():t==null?e!=null&&e!==``:Array.isArray(e)&&Array.isArray(t)?!P(e,t,Q.value.$deepCompare):t!==e}y(()=>{r.value?j.value?U.value=j.value(n.value,C.value,G):U.value=G(n.value,C.value):U.value=!1});let K=e(()=>U.value),ee=e(()=>_e({field:{$rules:Z.value}})),q=e(()=>!(Y.value||J.value)),J=e(()=>i.value||!b.value?Object.entries(Z.value).some(([e,t])=>t.$pending):!1),Y=e(()=>h?.value?.length||g?.value?.length?!0:ne.value?!1:Object.values(Z.value).some(e=>!e.$valid||e.$maybePending)),te=e(()=>c??f.id??`root`),ne=e(()=>!_&&!Object.keys(Z.value).some(e=>!e.startsWith(`$`))),re=e(()=>{if(h?.value?.length||ne.value||W.value)return!1;if(r.value&&!O(n.value)&&!N.value&&!J.value){if(_)return!g?.value?.length;{let e=Object.values(Z.value);for(let t of e)if(t.$active&&!t.$valid)return!1;return e.some(e=>e.$active)}}return!1}),X=e(()=>Object.values(Z.value).some(e=>e.$haveAsync)),ie=e(()=>({$debounce:s.value,$lazy:p.value,$rewardEarly:b.value,$autoDirty:k.value,$silent:D.value,$clearExternalErrorsOnChange:x.value,$clearExternalErrorsOnValidate:w.value,$immediateDirty:v.value,$isEdited:j.value,$disabled:m(f.disabled)??!1}));function oe(){T?.fields&&Object.entries(T.fields).forEach(([e,i])=>{let o=t();se[e]=o.run(()=>{let e=d();return y(()=>{e.value=i(u({$dirty:r,$externalErrors:h?.value??[],$value:n,$silentValue:I,$rules:Z,$error:R,$pending:J,$invalid:Y,$correct:re,$errors:V,$ready:q,$silentErrors:H,$anyDirty:a,$tooltips:ee,$name:te,$inactive:ne,$edited:U,$anyEdited:K}))}),e}),F.push(o)})}let se={};return{$error:R,$pending:J,$invalid:Y,$correct:re,$debounce:s,$deepCompare:l,$lazy:p,$immediateDirty:v,$ready:q,$issues:z,$silentIssues:B,$errors:V,$silentErrors:H,$rewardEarly:b,$autoDirty:k,$silent:D,$clearExternalErrorsOnChange:x,$clearExternalErrorsOnValidate:w,$anyDirty:a,$edited:U,$anyEdited:K,$name:te,$haveAnyAsyncRule:X,$shortcuts:se,$validating:N,$tooltips:ee,$dirty:r,processShortcuts:oe,$silentValue:I,$inactive:ne,$modifiers:ie,$isArrayOrRegleStatic:o}}),ae(),R=v(A.$dirty,e=>{l.setDirtyEntry(o,e),Object.values(Z.value).forEach(t=>{t.$fieldDirty=e})}),B=v([A.$error,A.$correct,A.$invalid,A.$pending],()=>{Object.values(Z.value).forEach(e=>{e.$fieldError=A.$error.value,e.$fieldInvalid=A.$invalid.value,e.$fieldPending=A.$pending.value,e.$fieldCorrect=A.$correct.value})}),z=v(A.$haveAnyAsyncRule,ne)}function ae(){L=v(n,()=>{A.$autoDirty.value&&!A.$silent.value&&(A.$dirty.value||U()),r.value instanceof Function&&te(),(!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&V(),A.$clearExternalErrorsOnChange.value&&ye()},{deep:A.$isArrayOrRegleStatic.value?!0:Y?1:!0})}async function oe(){try{let{promise:e}=le(Promise.allSettled(Object.values(Z.value).map(e=>e.$parse())));await e}catch{}}let Z=d({}),Q=d({});te();function se(e,t){if(ce(),ye(),A.$dirty.value=!1,l.setDirtyEntry(o,!1),!t)if(e?.toOriginalState)n.value=j(w),C.value=j(w);else if(e?.toInitialState)n.value=j(C.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,C.value=j(t),n.value=j(t)}else C.value=x(n.value)&&!de(n.value)?j(n.value):Array.isArray(n.value)?[...n.value]:n.value;if(e?.clearExternalErrors&&ye(),!t&&!e?.keepValidationState)for(let e of Object.values(Z.value))e.$reset();if(!A.$lazy.value&&!A.$silent.value&&!t)for(let e of Object.values(Z.value))e.$parse()}function ce(){`cancel`in V&&V.cancel()}function le(e){return H&&H.abort(),H=I(e),H}function $(){ce(),H&&H.abort()}function ue(e=!0,t=!1){A.$dirty.value||U(),t&&e?(!A.$silent.value||A.$rewardEarly.value&&A.$error.value)&&(ce(),V()):e&&(ce(),V())}async function fe(e){return e&&(n.value=e),await s(),pe()}async function pe(e){try{if(e&&(n.value=e),_)return D?(ue(!1),D()):{valid:!1,data:n.value,errors:A.$errors.value,issues:A.$issues.value};let t=n.value;if(A.$autoDirty.value&&!A.$silent.value&&A.$dirty.value&&!A.$validating.value&&!A.$pending.value&&!W.value&&!O(Z.value))return{valid:!A.$invalid.value,data:t,errors:A.$errors.value,issues:A.$issues.value};if(A.$dirty.value||(A.$dirty.value=!0),O(Z.value))return{valid:!0,data:t,errors:A.$errors.value,issues:A.$issues.value};$();let{promise:r}=le(Promise.allSettled(Object.values(Z.value).map(e=>e.$parse()))),i=await r;return await s(),{valid:i.every(e=>e.status===`fulfilled`&&e.value===!0),data:t,errors:A.$errors.value,issues:A.$issues.value}}catch{return{valid:!1,data:n.value,errors:A.$errors.value,issues:A.$issues.value}}}function me(e){try{return e&&(n.value=e),A.$dirty.value||(A.$dirty.value=!0),_?!1:Object.values(Z.value).map(e=>e.$parseSync()).every(e=>!!e)}catch{return!1}}function he(e=!0){return A.$dirty.value?n.value:e?{_null:!0}:null}function ve(e){h&&(h.value=e)}function ye(){h?.value?.length&&(h.value=[])}!A.$lazy.value&&!A.$dirty.value&&!A.$silent.value&&oe(),A.$immediateDirty.value&&(A.$dirty.value=!0);let{$shortcuts:be,$validating:Ce,$autoDirty:we,$rewardEarly:Te,$clearExternalErrorsOnChange:Ee,$clearExternalErrorsOnValidate:De,$haveAnyAsyncRule:Oe,$debounce:ke,$lazy:Ae,...je}=A,Me=u({...je,$externalErrors:h,$value:n,$initialValue:C,$originalValue:w,$rules:Z,...be,$path:a,$isDebouncing:W,$reset:se,$touch:ue,$validate:fe,$validateSync:me,$validateWithoutRaceconditions:pe,$unwatch:X,$watch:ie,$extractDirtyFields:he,$clearExternalErrors:ye,$abort:$,$addRules:K,addRules:ee,$schemaMode:_,"~modifiers":A.$modifiers,$setExternalErrors:ve,...Se(fe)});return Object.defineProperty(Me,Symbol.for(`regle:instance`),{value:!0}),Me}function we({$id:t,path:n,cachePath:r,index:i,options:a,storage:o,stateValue:s,customMessages:c,rules:l,externalErrors:u,schemaErrors:f,initialState:m,originalState:h,shortcuts:g,fieldName:_,schemaMode:v,overrides:y,currentIndexes:b}){let S=s.value?.$id??l.$key??ne(),C=`${r}.${String(S)}`,w=d(i),T=`${n}.${i}`;typeof s.value==`object`&&s.value!=null&&(s.value.$id||Object.defineProperties(s.value,{$id:{value:S,enumerable:!1,configurable:!1,writable:!1}}));let E=p(u?.value??[],i),D=e(()=>f?.value?.[w.value]),O=De({index:i,state:s,rulesDef:p(()=>l),customMessages:c,path:T,cachePath:C,storage:o,options:a,externalErrors:E,schemaErrors:D,initialState:m,originalState:h,shortcuts:g,fieldName:_,schemaMode:v,overrides:y});return O&&(O.$id=s.value?.$id??String(S),b?.set(O.$id,w),o.addArrayStatus(t,O.$id,O)),s.value&&(!x(s.value)||de(s.value))&&v&&O?.$touch(),O}function Te({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,storage:s,options:c,externalErrors:l,schemaErrors:f,schemaMode:h,initialState:g,originalState:_,shortcuts:b,fieldName:x,overrides:S}){let C=t(),w,T=t(),E,D=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let k=d(),A=d(n.value),M=d({}),N,P,F=d({}),I=s.getCollectionsEntry(a),L=new Map;E=T.run(()=>({isPrimitiveArray:e(()=>n.value?.length?Array.isArray(n.value)&&n.value.length?n.value.every(e=>typeof e!=`object`):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(e=>$(e)||typeof e==`function`):!1:!1)})),R(),H();function R(){M.value=Object.fromEntries(Object.entries(r.value).filter(([e])=>e.startsWith(`$`))),typeof n.value==`object`&&(n.value!=null&&!n.value?.$id&&n.value!==null?(k.value=ne(),Object.defineProperties(n.value,{$id:{value:k.value,enumerable:!1,configurable:!1,writable:!1}})):n.value?.$id&&(k.value=n.value.$id)),A.value=F.value.$value,Array.isArray(n.value)&&(!E.isPrimitiveArray.value||h)?I.value=n.value.map((t,n)=>{let{scope:u,unwrapped:d}=ee(r.value.$each,p(()=>t),n);u&&D.push(u);let m=p(g.value??[],n),v=p(l?.value??{},`$each`),y=e(()=>f?.value?.$each);return we({$id:k.value,path:a,cachePath:o,customMessages:i,rules:d??{},stateValue:p(()=>t),index:n,options:c,storage:s,externalErrors:v,schemaErrors:y,initialState:m,originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S,currentIndexes:L})||null}).filter(e=>!!e):(I.value=[],L.clear()),F.value=Ce({state:n,rulesDef:r,customMessages:i,path:a,cachePath:a,storage:s,options:c,externalErrors:p(l?.value??{},`$self`),schemaErrors:e(()=>f?.value?.$self),$isArray:!0,initialState:g,originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S})}function z(){if(Array.isArray(n.value)&&(!E.isPrimitiveArray.value||h)){let t=j(I.value),o=new Set;I.value=n.value.map((t,n)=>{let u=p(()=>t);if(t.$id&&I.value.find(e=>e.$id===t.$id)){let e=s.getArrayStatus(k.value,t.$id);if(e){let r=L.get(t.$id);return r&&(r.value=n),o.add(t.$id),e.$value=u,e}return null}else{let{scope:t,unwrapped:d}=ee(r.value.$each,u,n);t&&D.push(t);let m=p(l?.value??{},`$each`),v=e(()=>f?.value?.$each??[]),y=we({$id:k.value,path:a,cachePath:a,customMessages:i,rules:d??{},stateValue:u,index:n,options:c,storage:s,externalErrors:m,schemaErrors:v,initialState:p(g.value??[],n),originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S,currentIndexes:L});return y?(y.$id&&o.add(y.$id),y):null}}).filter(e=>!!e),t.filter(e=>!n.value?.find(t=>e.$id===t.$id)).forEach((e,t)=>{s.deleteArrayStatus(k.value,t.toString())});for(let e of L.keys())o.has(e)||L.delete(e)}else I.value=[],L.clear()}function B(){N=v(n,()=>{P?.(),n.value!=null&&!Object.hasOwn(n.value,`$id`)&&!k.value?R():z(),V()},{deep:Y?1:!0,flush:`pre`}),V()}function V(){P=v(n,()=>{w.$autoDirty.value&&!w.$silent.value&&F.value.$touch(!1,!0)},{flush:`post`})}function H(){B(),C=t(),w=C.run(()=>{let r=e({get:()=>n.value,set(e){N?.(),P?.(),n.value=e,B()}}),i=e(()=>F.value.$dirty&&(!I.value.length||I.value.every(e=>e.$dirty))),o=e(()=>F.value.$anyDirty||I.value.some(e=>e.$anyDirty)),s=e(()=>F.value.$invalid||I.value.some(e=>e.$invalid)),l=e(()=>(h?F.value.$correct:O(F.value.$rules)?!0:F.value.$correct)&&(!I.value.length||I.value.every(e=>e.$correct||e.$anyDirty&&!e.$invalid))),f=e(()=>F.value.$error||I.value.some(e=>e.$error)),p=e(()=>!(s.value||v.value)),v=e(()=>F.value.$pending||I.value.some(e=>e.$pending)),C=e(()=>!!I.value.length&&I.value.every(e=>e.$edited)),w=e(()=>F.value.$anyEdited||I.value.some(e=>e.$anyEdited)),T=e(()=>({$self:F.value.$issues,$each:I.value.map(e=>e.$issues)})),E=e(()=>({$self:F.value.$errors,$each:I.value.map(e=>e.$errors)})),k=e(()=>({$self:F.value.$silentErrors,$each:I.value.map(e=>e.$silentErrors)})),A=e(()=>M.value.$rewardEarly==null?m(c.rewardEarly)==null?!1:m(c.rewardEarly)===!0:M.value.$rewardEarly),j=e(()=>A.value?!0:M.value.$silent==null?m(c.silent)==null?!1:m(c.silent)===!0:M.value.$silent),L=e(()=>M.value.$autoDirty==null?m(c.autoDirty)==null?!0:m(c.autoDirty)===!0:M.value.$autoDirty),R=e(()=>M.value.$immediateDirty==null?m(c.immediateDirty)==null?!1:m(c.immediateDirty)===!0:M.value.$immediateDirty),z=e(()=>M.value.$clearExternalErrorsOnChange==null?m(c.clearExternalErrorsOnChange)==null?!0:m(c.clearExternalErrorsOnChange)===!0:M.value.$clearExternalErrorsOnChange),V=e(()=>M.value.$clearExternalErrorsOnValidate==null?m(c.clearExternalErrorsOnValidate)==null?!1:m(c.clearExternalErrorsOnValidate)===!0:M.value.$clearExternalErrorsOnValidate),H=e(()=>{if(M.value.$isEdited!=null)return M.value.$isEdited;if(S?.isEdited!=null)return S.isEdited}),U=e(()=>x??c.id??`root`),W=e(()=>({$deepCompare:M.value.$deepCompare??!1,$debounce:M.value.$debounce??0,$lazy:M.value.$lazy??!1,$rewardEarly:A.value,$autoDirty:L.value,$silent:j.value,$clearExternalErrorsOnChange:z.value,$clearExternalErrorsOnValidate:V.value,$immediateDirty:R.value,$isEdited:H.value,$disabled:m(c.disabled)??!1}));function G(){b?.collections&&Object.entries(b?.collections).forEach(([e,c])=>{let m=t();K[e]=m.run(()=>{let e=d();return y(()=>{e.value=c(u({$dirty:i,$error:f,$path:a,$silentValue:r,$pending:v,$invalid:s,$correct:l,$errors:E,$silentErrors:k,$initialValue:g,$originalValue:_,$ready:p,$anyDirty:o,$name:U,$each:I,$self:F,$value:n,$edited:C,$anyEdited:w,$issues:T}))}),e}),D.push(m)})}let K={};return G(),{$dirty:i,$anyDirty:o,$invalid:s,$correct:l,$error:f,$pending:v,$errors:E,$silentErrors:k,$ready:p,$name:U,$shortcuts:K,$silentValue:r,$edited:C,$anyEdited:w,$rewardEarly:A,$silent:j,$autoDirty:L,$issues:T,$modifiers:W}}),E.isPrimitiveArray.value&&r.value.$each&&console.warn(`${a} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`)}function U(){N?.(),F.value&&F.value.$unwatch(),I.value&&I.value.forEach(e=>{`$dirty`in e&&e.$unwatch()}),C.stop(),C=t(),T.stop(),T=t(!0),D.forEach(e=>e.stop()),D=[]}function W(e=!0,t=!1){F.value.$touch(e,t),I.value.forEach(n=>{n.$touch(e,t)})}function G(e,t){if(U(),!t)if(e?.toOriginalState)n.value=j(_),g.value=j(_);else if(e?.toInitialState)n.value=j(g.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,g.value=j(t),n.value=j(t)}else g.value=j(n.value);e?.clearExternalErrors&&X(),e?.keepValidationState||(F.value.$reset(e,t),I.value.forEach(t=>{t.$reset(e,!0)})),t||R()}function K(){F.value.$abort(),I.value.forEach(e=>{e.$abort()})}async function q(e){return e&&(n.value=e),J()}async function J(e){e&&(n.value=e);let t=n.value;try{return K(),{valid:(await Promise.allSettled([F.value.$validateWithoutRaceconditions(e),...I.value.map(e=>e.$validateWithoutRaceconditions())])).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:t,errors:w.$errors.value,issues:w.$issues.value}}catch{return{valid:!1,data:t,errors:w.$errors.value,issues:w.$issues.value}}}function te(e){e&&(n.value=e);try{return[F.value.$validateSync(e),...I.value.map(e=>e.$validateSync())].every(e=>!!e)}catch{return!1}}function re(e){l?.value&&(l.value=e)}function X(){F.value.$clearExternalErrors(),I.value.forEach(e=>{e.$clearExternalErrors()})}function ie(e=!0){let t=I.value.map(t=>{if(fe(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>O(e))&&(t=[]),t}let{$shortcuts:ae,...oe}=w;return u({$self:F,...oe,...ae,$path:a,$each:I,$value:n,$initialValue:g,$originalValue:_,$validate:q,$validateSync:te,$validateWithoutRaceconditions:J,$unwatch:U,$watch:H,$touch:W,$reset:G,$abort:K,$extractDirtyFields:ie,$clearExternalErrors:X,$setExternalErrors:re,"~modifiers":w.$modifiers,...Se(q)})}function Ee({rulesDef:n,state:r,path:i=``,cachePath:a,rootRules:o,externalErrors:c,schemaErrors:l,rootSchemaErrors:f,validationGroups:h,initialState:_,originalState:b,fieldName:S,...C}){let w=t(),T,E=[],D=null,k=null,A=null,M=null,N=d(void 0);async function P(t=!0){let o=Object.entries(n.value).filter(([e])=>e!==`$self`),s=Object.fromEntries(o.reduce((t,[n,o])=>{if(!o)return t;let s=p(r.value??{},n),u=p(()=>o),d=p(c?.value??{},n),f=e(()=>l?.value?.[n]),m=p(_?.value??{},n);return t.push([n,De({state:s,rulesDef:u,path:i?`${i}.${n}`:n,cachePath:a?`${a}.${n}`:n,externalErrors:d,schemaErrors:f,initialState:m,originalState:b?.[n],fieldName:n,...C})]),t},[])),u=Object.fromEntries(Object.entries(m(c)??{}).filter(([e,t])=>!(e in n.value)&&!!t).map(([t])=>{let n=p(r.value??{},t),o=p(c?.value??{},t),s=e(()=>l?.value?.[t]),u=p(_?.value??{},t),d=i?`${i}.${t}`:t,f=a?`${a}.${t}`:t;return[t,De({state:n,rulesDef:e(()=>({})),path:d,cachePath:f,externalErrors:o,schemaErrors:s,initialState:u,originalState:b?.[t],fieldName:t,...C})]})),d=Object.fromEntries(Object.entries(m(l)??{}).map(([t])=>{let n=i?`${i}.${t}`:t,o=a?`${a}.${t}`:t,s=p(r.value??{},t),u=p(c?.value??{},t),d=e(()=>l?.value?.[t]),f=p(_?.value??{},t);return[t,De({state:s,rulesDef:e(()=>({})),path:n,cachePath:o,externalErrors:u,schemaErrors:d,initialState:f,originalState:b?.[t],fieldName:t,...C})]})),f=Object.fromEntries(Object.entries(r.value??{}).filter(([e])=>!(e in n.value)&&!(e in(u??{}))&&!(e in(d??{}))).map(([t])=>{let n=p(r.value??{},t),o=p(c?.value??{},t),s=e(()=>l?.value?.[t]),u=p(_?.value??{},t);return[t,De({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,cachePath:a?`${a}.${t}`:t,externalErrors:o,schemaErrors:s,initialState:u,originalState:b?.[t],fieldName:t,...C})]}));I.value={...s,...u,...d,...f},t&&z()}function F(){n.value.$self&&(N.value=Ce({state:r,rulesDef:e(()=>n.value.$self??{}),path:i,cachePath:a,externalErrors:d(void 0),schemaErrors:d(void 0),initialState:p(_?.value??{},`$self`),originalState:b?.$self,fieldName:`$self`,...C}))}let I=C.storage.getFieldsEntry(a);P(),F();function L(){c&&(A=v(c,()=>{B(),P()},{deep:!0}))}function R(){M=v(r,()=>{B(),P(),T.$autoDirty.value&&!T.$silent.value&&W(!1,!0)},{flush:`post`})}function z(){o&&(D?.(),D=v(o,()=>{B(),P()},{deep:!0,flush:`pre`}),L()),f&&(k?.(),k=v(()=>f.value?Object.keys(f.value).sort().join(`\0`):``,()=>{B(),P()},{flush:`post`})),R(),T=w.run(()=>{let a=e({get:()=>r.value,set(e){B(),r.value=e,P(),T.$autoDirty.value&&!T.$silent.value&&W(!1,!0)}}),o=e({get:()=>r.value,set(e){B(),r.value=e,P()}}),s=e(()=>{let e=I.value,t=Object.keys(e);if(!t.length)return!1;for(let n of t)if(!e[n]?.$dirty)return!1;return!0}),c=e(()=>{let e=I.value;for(let t in e)if(e[t]?.$anyDirty)return!0;return!1}),l=e(()=>{if(N.value?.$invalid)return!0;let e=I.value,t=Object.entries(e);if(!t.length)return!1;for(let[e,n]of t)if(n?.$invalid)return!0;return!1}),f=e(()=>{let e=Object.entries(I.value).reduce((e,[t,n])=>((!pe(n)||!n.$inactive)&&e.push([t,n]),e),[]),t=n.value.$self&&!O(n.value.$self);if(e.length||t){let t=N.value?.$correct??!0,n=!1;return n=C.schemaMode?e.every(([e,t])=>t.$correct):e.every(([e,t])=>pe(t)?`required`in t.$rules&&t.$rules.required.$active?t.$correct:!t.$invalid&&!t.$pending&&!t.$isDebouncing:t?.$correct),t&&n}return!1}),p=e(()=>{if(N.value?.$error)return!0;let e=I.value;if(!Object.keys(e).length)return!1;for(let t in e)if(e[t]?.$error)return!0;return!1}),v=e(()=>m(C.options.rewardEarly)==null?!1:m(C.options.rewardEarly)),x=e(()=>m(C.options.silent)==null?!!v.value:m(C.options.silent)===!0),w=e(()=>m(C.options.autoDirty)==null?!0:m(C.options.autoDirty)===!0),D=e(()=>m(C.options.immediateDirty)==null?!1:m(C.options.immediateDirty)===!0),k=e(()=>m(C.options.lazy)==null?!1:m(C.options.lazy)===!0),A=e(()=>m(C.options.clearExternalErrorsOnChange)==null?!1:m(C.options.clearExternalErrorsOnChange)===!0),j=e(()=>m(C.options.clearExternalErrorsOnValidate)==null?!1:m(C.options.clearExternalErrorsOnValidate)===!0),M=e(()=>!(l.value||L.value)),F=d(!1),L=e(()=>{if(N.value?.$pending||F.value)return!0;let e=I.value;for(let t in e)if(e[t]?.$pending)return!0;return!1}),R=e(()=>{let e={...N.value&&{$self:N.value?.$issues??[]}};for(let t in I.value)e[t]=I.value[t]?.$issues;return e}),z=e(()=>{let e={...N.value&&{$self:N.value?.$errors??[]}};for(let t in I.value)e[t]=I.value[t]?.$errors;return e}),V=e(()=>{let e={...N.value&&{$self:N.value?.$silentErrors??[]}};for(let t in I.value)e[t]=I.value[t]?.$silentErrors;return e}),H=e(()=>{if(N.value?.$edited)return!0;if(!Object.keys(I.value).length)return!1;for(let e in I.value)if(!I.value[e]?.$edited)return!1;return!0}),U=e(()=>{if(N.value?.$anyEdited)return!0;for(let e in I.value)if(I.value[e]?.$anyEdited)return!0;return!1}),G=e(()=>S??C.options.id??`root`),K=e(()=>({autoDirty:w.value,lazy:k.value,rewardEarly:v.value,silent:x.value,clearExternalErrorsOnChange:A.value,clearExternalErrorsOnValidate:j.value,immediateDirty:D.value,id:m(C.options.id),disabled:m(C.options.disabled)}));function ee(){C.shortcuts?.nested&&Object.entries(C.shortcuts.nested).forEach(([e,n])=>{let a=t();J[e]=a.run(()=>{let e=d();return y(()=>{e.value=n(u({$dirty:s,$path:i,$value:r,$silentValue:o,$error:p,$originalValue:b,$pending:L,$invalid:l,$correct:f,$ready:M,$anyDirty:c,$name:G,$silentErrors:V,$initialValue:_,$errors:z,$fields:I,$edited:H,$anyEdited:U,$issues:R,$self:N,"~modifiers":g(C.options)}))}),e}),E.push(a)})}let q=e({get:()=>h?Object.fromEntries(Object.entries(h?.(I.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,ie(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,ae(t,e)]))}]:[])):{},set(){}}),J={};return ee(),{$dirty:s,$anyDirty:c,$invalid:l,$correct:f,$error:p,$pending:L,$issues:R,$errors:z,$silentErrors:V,$clearExternalErrorsOnValidate:j,$ready:M,$name:G,$shortcuts:J,$groups:q,$silentValue:o,$edited:H,$anyEdited:U,$localPending:F,$autoDirty:w,$silent:x,$value:a,$modifiers:K}})}function B(){if(D?.(),A?.(),M?.(),k?.(),E=[],T={},I.value)for(let e of Object.values(I.value))e?.$unwatch()}function V(e){c&&(c.value=e)}function H(){c&&!O(c.value)&&(c.value={})}function U(e,t){if(A?.(),B(),!t)if(e?.toOriginalState)r.value=j({...b}),_.value=j({...b});else if(e?.toInitialState)r.value=j({..._.value});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,_.value=j(t),r.value=j(t)}else _.value=j(r.value);if(!e?.keepValidationState){for(let t of Object.values(I.value))t?.$reset(e,!0);N.value?.$reset(e,!0)}e?.clearExternalErrors===!1&&H(),L(),t||P()}function W(e=!0,t=!1){for(let n of Object.values(I.value))n?.$touch(e,t);N.value?.$touch(e,t)}function G(e){return e.filter(([e,t])=>x(t)&&!de(t)?!(t&&typeof t==`object`&&`_null`in t)&&!O(t):Array.isArray(t)?t.length:!0)}function K(e=!0){let t=Object.entries(I.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=G(t)),Object.fromEntries(t)}function ee(){for(let e of Object.values(I.value))e.$abort();N.value?.$abort()}async function q(e){return e&&(r.value=e),await s(),J()}async function J(e){try{if(e&&(r.value=e),C.schemaMode)return C.onValidate?(W(!1),T.$localPending.value=!0,C.onValidate()):{valid:!1,data:r.value,errors:T.$errors.value,issues:T.$issues.value};{let e=r.value;ee(),T.$clearExternalErrorsOnValidate.value&&H();let t=[...Object.values(I.value).map(e=>e.$validateWithoutRaceconditions()),...N.value?[N.value?.$validateWithoutRaceconditions()]:[]];return{valid:(await Promise.allSettled(t)).every(e=>e.status===`fulfilled`&&e?.value?.valid===!0),data:e,errors:T.$errors.value,issues:T.$issues.value}}}catch{return{valid:!1,data:r.value,errors:T.$errors.value,issues:T.$issues.value}}finally{T.$localPending.value=!1}}function Y(e){try{return e&&(r.value=e),T.$clearExternalErrorsOnValidate.value&&H(),[...Object.values(I.value).map(e=>e.$validateSync()),...N.value?[N.value?.$validateSync()]:[]].every(e=>!!e)}catch{return!1}}let{$shortcuts:te,$localPending:ne,...re}=T,X=u({...re,...te,$path:i,$initialValue:_,$originalValue:b,$self:N,$externalErrors:c,$fields:I,$reset:U,$touch:W,$validate:q,$unwatch:B,$watch:z,$setExternalErrors:V,$clearExternalErrors:H,$extractDirtyFields:K,$abort:ee,$validateSync:Y,$validateWithoutRaceconditions:J,...o?{"~modifiers":T.$modifiers}:{},...Se(q)});return Object.defineProperty(X,Symbol.for(`regle:instance`),{value:!0}),y(()=>{for(let e of Object.keys(X).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete X[e];for(let e of Object.values(I.value))e?.$name&&Object.assign(X,{[e.$name]:e})}),X}function De({rulesDef:e,...n}){if(ce(e,n.state))return Te({rulesDef:e,...n});if(se(n.state,e)){if(K(n.state))return Ee({rulesDef:e,...n});{let r=t().run(()=>{let e=p(n.state.value?n.state:d({}));return v(()=>n.state.value,t=>{e.value=t},{deep:!0}),v(e,e=>{n.state.value=e},{deep:!0}),{fakeState:e}}),{state:i,...a}=n;return Ee({rulesDef:e,...a,state:r.fakeState})}}else if(le(e))return Ce({rulesDef:a(e.value)?e.value:e,...n})}function Oe({initialState:e,originalState:n,options:i,scopeRules:a,state:o,customRules:c,shortcuts:u,schemaErrors:f,schemaMode:p=!1,onValidate:h,overrides:g}){let _=he(),y=d(!1),b=new Set,S,C=d(),T=d(),E,D,O;function k(){O=v(()=>m(i.disabled),async e=>{e?F():(N(),j())})}function A(e){D?.(),e&&(x(e)&&Object.keys(e).some(e=>e.includes(`.`))?T.value=w(e):Array.isArray(e)?T.value=e:T.value=e??{}),M()}function j(){E=v(()=>i.externalErrors?.value,A,{deep:!0})}function M(){D=v(()=>T.value,e=>{E?.(),i.externalErrors?.value&&(i.externalErrors.value=e),A(e),j()},{deep:!0})}function N(){se(o,a)?C.value=Ee({rootRules:a,rulesDef:a,state:o,customMessages:c?.(),storage:_,options:i,externalErrors:T,validationGroups:i.validationGroups,initialState:e,originalState:n,shortcuts:u,fieldName:void 0,path:``,cachePath:``,schemaErrors:f,rootSchemaErrors:f,schemaMode:p,onValidate:h,overrides:g}):le(a)&&(C.value=Ce({rulesDef:a,state:o,customMessages:c?.(),storage:_,options:i,externalErrors:T,initialState:e,originalState:n,shortcuts:u,fieldName:void 0,path:``,cachePath:``,schemaMode:p,schemaErrors:f,onValidate:h,overrides:g}))}function P(){D=void 0,E=void 0,O=void 0}function F(){C.value?.$unwatch(),D?.(),E?.()}function I(){y.value||(y.value=!0,S=t(!0),S.run(()=>{A(i.externalErrors?.value),N(),m(i.disabled)?s().then(()=>{C.value?.$unwatch()}):j(),k()}))}function L(){y.value&&(y.value=!1,F(),O?.(),P(),S?.stop(),S=void 0)}function R(){let e=r();!e||b.has(e)||(y.value||I(),b.add(e),l(()=>{b.delete(e),b.size||L()}))}return I(),R(),{regle:C,bindToCurrentScope:R}}function ke({state:t,rulesFactory:n,options:r,globalOptions:o,customRules:s,shortcuts:c,overrides:l}){let u=a(n)?n:typeof n==`function`?void 0:e(()=>n),p=i(Z,void 0)??{},m={...p.modifiers,...o},g=()=>({...p.rules?.(),...s?.()}),_={...p.shortcuts,...c},v={...p.overrides,...l},b={...m,...r},S,C=f(u??{});typeof n==`function`&&(S=y(()=>{C.value=n(t),h(C)}));let w=d(x(t.value)?{...j(t.value)}:j(t.value)),T=x(t.value)?{...j(t.value)}:j(t.value);re(()=>{S?.()});let{regle:E,bindToCurrentScope:D}=Oe({scopeRules:C,state:t,options:b,initialState:w,originalState:T,customRules:g,shortcuts:_,overrides:v});return{regle:E,bindToCurrentScope:D}}function Ae(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s,c){let l=a(t)?t:d(t),u=e(()=>m(c?.disabled)??!1),{regle:f,bindToCurrentScope:p}=ke({state:l,rulesFactory:s,options:c,globalOptions:r,customRules:n,shortcuts:i,overrides:o});return{r$:L(f,u,p)}}return s}const je=Ae();function Me(){function e(e,t){return t}return e}const Ne=Me();function Pe(e,t){return S(m(e).$errors,String(t))}function Fe(e,t){return S(m(e).$issues,String(t))}function Ie(e){let t={};if(Object.entries(e).some(([e,t])=>$(t)||typeof t==`function`))return null;for(let n in e){let r=e[n];r&&x(r)&&`$each`in r&&r.$each&&x(r.$each)?t[n]=[Ie(r.$each)]:x(r)&&!O(r)&&!Object.entries(r).some(([e,t])=>$(t)||typeof t==`function`)?t[n]=Ie(r):t[n]=null}return t}function Le(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s){let c=a(t)?t:typeof t==`function`?void 0:e(()=>t),l=d(Ie(c?.value)),u=e(()=>m(s?.disabled)??!1),{regle:f,bindToCurrentScope:p}=ke({state:l,rulesFactory:c,options:s,globalOptions:r,customRules:n,shortcuts:i,overrides:o});return L(f,u,p)}return s}const Re=Le();function ze(e){if(D(e)){let t=e,n=class extends t{constructor(...e){return super(...e),Be(this)}};return Object.defineProperty(n,`name`,{value:t.name}),Be(n)}return Be(e)}function Be(e){return!T(e,Q.REGLE_STATIC)&&Object.isExtensible(e)&&E(e,Q.REGLE_STATIC,!0),e}function Ve({rules:e,modifiers:t,shortcuts:n,overrides:r}){let i=Ae({rules:e,modifiers:t,shortcuts:n,overrides:r}),a=Le({rules:e,modifiers:t,shortcuts:n,overrides:r});return i.__config={rules:e,modifiers:t,shortcuts:n,overrides:r},a.__config={rules:e,modifiers:t,shortcuts:n,overrides:r},{useRegle:i,inferRules:Me(),useRules:a}}function He(e,{rules:t,modifiers:n,shortcuts:r,overrides:i}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?C(a.modifiers,n):a.modifiers??n,c=a.shortcuts&&r?C(a.shortcuts,r):a.shortcuts??r,l=a.overrides&&i?C(a.overrides,i):a.overrides??i,u=Ae({rules:o,modifiers:s,shortcuts:c,overrides:l});return u.__config={rules:o,modifiers:s,shortcuts:c,overrides:l},{useRegle:u,inferRules:Me()}}function Ue(e){return e}function We(t,n){let r=n??!1,i=e({get:()=>r?Object.values(t).map(e=>e.$value):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$value])),set:e=>{r||typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$value=n)}}),a=e({get:()=>Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentValue])),set:e=>{typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$silentValue=n)}}),o=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$dirty)}),s=e(()=>Object.entries(t).some(([e,t])=>t?.$anyDirty)),c=e(()=>Object.entries(t).some(([e,t])=>t?.$invalid)),l=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$correct||t.$anyDirty&&!t.$invalid)}),d=e(()=>Object.entries(t).some(([e,t])=>t?.$error)),f=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$ready)}),p=e(()=>Object.entries(t).some(([e,t])=>t?.$pending)),m=e(()=>r?Object.entries(t).map(([e,t])=>t.$issues):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$issues]))),h=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentIssues):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentIssues]))),g=e(()=>r?Object.entries(t).map(([e,t])=>t.$errors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$errors]))),_=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentErrors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentErrors]))),v=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$edited)}),b=e(()=>Object.entries(t).some(([e,t])=>t?.$anyEdited)),x=e(()=>r?Object.values(t):t);function S(e){Object.values(t).forEach(t=>{t.$reset(e)})}function C(){Object.values(t).forEach(e=>{e.$touch()})}function w(e=!0){return Object.values(t).map(t=>t.$extractDirtyFields(e))}function T(e){Object.values(t).forEach(t=>{t.$setExternalErrors(e)})}function E(){Object.values(t).forEach(e=>{e.$clearExternalErrors()})}function D(e){try{return e&&(i.value=e),Object.values(t).every(t=>t.$validateSync(e))}catch{return!1}}async function O(e){try{e&&(i.value=e);let n=i.value;return{valid:(await Promise.allSettled(Object.values(t).map(e=>e.$validate()))).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:n,errors:g.value,issues:m.value}}catch{return{valid:!1,data:i.value,errors:g.value,issues:m.value}}}let k=u({...!r&&{$silentValue:a},$errors:g,$issues:m,$silentIssues:h,$silentErrors:_,$instances:x,$value:i,$dirty:o,$anyDirty:s,$invalid:c,$correct:l,$error:d,$pending:p,$ready:f,$edited:v,$anyEdited:b,$reset:S,$touch:C,$validate:O,$validateSync:D,$extractDirtyFields:w,$clearExternalErrors:E,$setExternalErrors:T});return y(()=>{if(!r){for(let e of Object.keys(k).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete k[e];for(let[e,t]of Object.entries(x.value))Object.assign(k,{[e]:t})}}),k}function Ge(t,n){function r(r){let i=e(()=>m(r)),a=u({});c();let o=d(l(t.value)),s=u({r$:o});function c(){i.value&&(typeof i.value==`string`&&!t.value[i.value]?t.value[i.value]={}:Array.isArray(i.value)&&i.value.forEach(e=>{t.value[e]||(t.value[e]={})}))}v(i,c),v(t,e=>{o.value=l(e)},{deep:!0});function l(e){return i.value?typeof i.value==`string`?We(e[i.value]??{},!n.asRecord):(Object.keys(a).forEach(e=>{delete a[e]}),i.value.forEach(t=>{Object.entries(e[t]).forEach(([e,t])=>{Object.assign(a,{[e]:t})})}),We(a,!n.asRecord)):We(e[`~~global`]??{},!n.asRecord)}return{r$:s.r$}}return{useCollectScope:r}}function Ke(t,r){let i=r??je;return{useScopedRegle:((r,a,o)=>{let{namespace:s,scopeKey:l,id:u,...f}=o??{};i.__config??={};let p=e(()=>u??l),h=e(()=>m(s)),g=d(`${Object.keys(t.value).length+1}-${ne()}`),_=e(()=>p.value??`instance-${g.value}`),{r$:y}=i(r,a,{...f,id:p.value});x(),re(b),v(h,(e,t)=>{b(t),x()}),n()&&c(()=>{let e=n();typeof window<`u`&&e?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(e?.proxy?.$el?.parentElement)&&b()});function b(e){let n=e??h.value;n?t.value[n]&&delete t.value[n][_.value]:t.value[`~~global`][_.value]&&delete t.value[`~~global`][_.value]}function x(){h.value?(t.value[h.value]||(t.value[h.value]={}),t.value[h.value][_.value]=y):(t.value[`~~global`]||(t.value[`~~global`]={}),t.value[`~~global`][_.value]=y)}return{r$:y,dispose:b,register:x}})}}function qe(e){let t=(e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):X(()=>d({"~~global":{}})))(),{useScopedRegle:n}=Ke(t,e?.customUseRegle),{useCollectScope:r}=Ge(t,{asRecord:e?.asRecord});return{useScopedRegle:n,useCollectScope:r}}const{useCollectScope:Je,useScopedRegle:Ye}=qe(),Xe=Je,Ze=Ye;function Qe(t,n,r){let i=e(()=>m(t)[n]);return e(()=>r.find(e=>{if(e[n]&&`literal`in e[n]){let t=e[n].literal;if($(t))return m(t._params?.[0])===i.value}})||r.find(e=>x(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`))||{})}function $e(e,t,n){return!!e&&t in e&&x(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function et(e,t,n,r){let i=a(e)?p(e.value,`$fields`):p(e,`$fields`),o=d();return v(i,async()=>{await s(),$e(i.value,t,n)?o.value=p(e).value:o.value=void 0},{immediate:!0,flush:`pre`}),o}function tt(e){return e}function nt(e,t){return n=>C({...e},t(n))}const rt={install(e,t){e.provide(oe,me),t&&e.provide(Z,t)}};export{R as InternalRuleType,rt as RegleVuePlugin,U as createRule,qe as createScopedUseRegle,Qe as createVariant,Ve as defineRegleConfig,Ue as defineRegleOptions,tt as defineRules,He as extendRegleConfig,ye as flatErrors,Pe as getErrors,Fe as getIssues,Ne as inferRules,G as isRegleInstance,ze as markStatic,We as mergeRegles,$e as narrowVariant,nt as refineRules,z as unwrapRuleParameters,Xe as useCollectScope,je as useRegle,Oe as useRootStorage,Re as useRules,Ze as useScopedRegle,et as variantToRef};
7
+ import{computed as e,effectScope as t,getCurrentInstance as n,getCurrentScope as r,inject as i,isRef as a,markRaw as o,nextTick as s,onMounted as c,onScopeDispose as l,reactive as u,ref as d,shallowRef as f,toRef as p,toValue as m,triggerRef as h,unref as g,version as _,watch as v,watchEffect as y}from"vue";function b(e){return e?.constructor?.name==`File`}function x(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function S(e,t,n){if(!e)return n;var r,i;if(Array.isArray(t)&&(r=t.slice(0)),typeof t==`string`&&(r=t.split(`.`)),typeof t==`symbol`&&(r=[t]),!Array.isArray(r))throw Error(`props arg must be an array, a string or a symbol`);for(;r.length;)if(i=r.shift(),!e||!i||(e=e[i],e===void 0))return n;return e}function C(e,...t){for(var n=[].slice.call(arguments),r,i=n.length;r=n[i-1],i--;)if(!r||typeof r!=`object`&&typeof r!=`function`)throw Error(`expected object, got `+r);for(var a=n[0],o=n.slice(1),s=o.length,i=0;i<s;i++){var c=o[i];for(var l in c)a[l]=c[l]}return a}function w(e){let t={};for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n],i=n.split(`.`),a=t;for(let e=0;e<i.length;e++){let t=i[e],n=e===i.length-1,o=t.match(/^\d+$/)?Number(t):null;if(o!==null){if(Array.isArray(a))if(n)a[o]=r;else{if(typeof a[o]!=`object`||a[o]===null){let t=i[e+1];a[o]=t&&t.match(/^\d+$/)?{$each:[],$self:[]}:{}}a=`$each`in a[o]?a[o].$each:a[o]}}else if(n)if(Array.isArray(a[t])){let e=a[t].slice();a[t]={},a[t].$self=e}else typeof a[t]==`object`&&a[t]!==null&&`$each`in a[t]?a[t].$self=r:a[t]=r;else{let n=i[e+1];if(Array.isArray(a[t])){let e=a[t].slice();a[t]={$each:[]},a[t].$self=e}(typeof a[t]!=`object`||a[t]===null||Array.isArray(a[t])&&!n.match(/^\d+$/))&&(n&&n.match(/^\d+$/)?a[t]={$each:[],$self:[]}:a[t]={}),a=`$each`in a[t]?a[t].$each:a[t]}}}return t}function T(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function E(e,t,n,r=!1){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})}function D(e){return typeof e==`function`&&!!e.prototype&&`constructor`in e.prototype&&e.prototype.constructor===e}function O(e,t=!0,n=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):b(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:x(e)?e==null?!0:n?Object.keys(e).length===0:!1:!String(e).length}const k=Symbol(`regle-rule`);function A(e){let t=[];return e.global&&t.push(`g`),e.ignoreCase&&t.push(`i`),e.multiline&&t.push(`m`),e.sticky&&t.push(`y`),e.unicode&&t.push(`u`),t.join(``)}function j(e,t=0){if(t>20)return e;let n=e,r={}.toString.call(e).slice(8,-1);if(r==`Set`&&(n=new Set([...e].map(e=>j(e,t++)))),r==`Map`&&(n=new Map([...e].map(e=>[j(e[0]),j(e[1])]))),r==`Date`&&(n=new Date(e.getTime())),r==`RegExp`&&(n=RegExp(e.source,A(e))),r==`Array`||r==`Object`){n=Array.isArray(e)?[]:{};for(let r in e)n[r]=j(e[r],t++)}return n}function M(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e==`object`&&t===`[object Date]`?new Date(e.getTime()):typeof e==`number`||t===`[object Number]`||typeof e==`string`||t===`[object String]`?new Date(e):new Date(NaN)}function N(e,t,{immediate:n=!1,trackDebounceRef:r}={}){let i,a=(...a)=>{r&&(r.value=!0);function o(){r&&(r.value=!1)}return new Promise((r,s)=>{function c(e){r(e),o()}if(clearTimeout(i),i=setTimeout(()=>{if(o(),i=void 0,!n)try{Promise.resolve(e.apply(this,[...a])).then(c).catch(e=>s(e)).finally(o)}catch(e){s(e)}},t),n){o();try{Promise.resolve(e.apply(this,[...a])).then(c).catch(e=>s(e)).finally(o)}catch(e){s(e)}}})};return a.cancel=()=>{clearTimeout(i),i=void 0,r&&(r.value=!1)},a}function P(e,t,n=!1,r=!0){if(e===t)return!0;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(e.constructor!==t.constructor)return!1;var i,a,o;if(Array.isArray(e)&&Array.isArray(t)){if(i=e.length,i!=t.length)return!1;if(r||!r&&n){for(a=i;a--!==0;)if(!P(e[a],t[a],n,!1))return!1}return!0}if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(o=Object.keys(e),i=o.length,i!==Object.keys(t).length)return!1;for(a=i;a--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[a]))return!1;for(a=i;a--!==0;){var s=o[a];if(x(e)&&x(t)&&s&&(r||!r&&n)&&!P(e[s],t[s],n,!1))return!1}return!0}return e!==e&&t!==t}var F=class extends Error{constructor(e=`Promise was aborted`){super(e),this.name=`AbortError`}};function I(e){let t=new AbortController,{signal:n}=t,r=new Promise((t,r)=>{function i(){r(new F)}n.addEventListener(`abort`,i),e.then(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new F):t(e)}).catch(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new F):r(e)})});function i(e){t.abort(e)}return{promise:r,abort:i,signal:n}}function L(e,t,r){if(!a(e))return r?.(),u(e);let i=d(!1);return n()&&c(async()=>{await s(),typeof window<`u`&&window.requestAnimationFrame(()=>{i.value=!0})}),u(new Proxy({},{get(n,a,o){if(r?.(),t.value&&a!==`$value`&&i.value)return Reflect.get(n,a,o);if(e.value!==void 0)return g(Reflect.get(e.value,a,o))},set(t,n,i){return r?.(),a(e.value[n])&&!a(i)?e.value[n].value=i:e.value[n]=i,!0},deleteProperty(t,n){return r?.(),Reflect.deleteProperty(e.value,n)},has(t,n){return r?.(),e.value===void 0?!1:Reflect.has(e.value,n)},ownKeys(){return r?.(),e.value===void 0?[]:Object.keys(e.value)},getOwnPropertyDescriptor(){return r?.(),{enumerable:!0,configurable:!0}}}))}const R={Inline:`__inline`,Async:`__async`};function z(e){try{return e.map(e=>m(e))}catch{return[]}}function B(t){return t.map(t=>t instanceof Function?e(t):a(t)?t:p(()=>t))}function V(e){let t=e.toString().replace(/\/\/.*$/gm,``).replace(/\/\*[\s\S]*?\*\//g,``).match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return t?(t[0]||t[1]||t[2]||t[3]||t[4]||``).split(`,`).map(e=>e.trim()).filter(e=>e.length>0).length:0}function H(e,...t){let{validator:n,type:r,async:i}=e,a=i||r===R.Async||n.constructor.name===`AsyncFunction`;return o({validator(n,...r){return e.validator(n,...z(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:z(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:z(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:z(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...z(t)),i;return r instanceof Promise?r.then(e=>(i=e,typeof i==`object`&&`$valid`in i?i.$valid:typeof i==`boolean`?i:!1)):(i=r,typeof i==`object`&&`$valid`in i?i.$valid:typeof i==`boolean`?i:!1)},type:r,_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:a,_params:B(t),_brand:k})}function U(e){if(typeof e.validator==`function`){let t=[],n=e.async??e.validator.constructor.name===`AsyncFunction`,r=H({...e,async:n},...t);if(V(e.validator)>1){let t=function(...t){return H(e,...t)};return t.validator=r.validator,t.message=r.message,t.active=r.active,t.tooltip=r.tooltip,t.type=r.type,t.exec=r.exec,t._validator=r.validator,t._message=r.message,t._active=r.active,t._tooltip=r.tooltip,t._type=e.type,t._message_pacthed=!1,t._tooltip_pacthed=!1,t._async=n,t}else return r}throw Error(`[createRule] validator must be a function`)}const W=Symbol.for(`regle:instance`);function ee(e){return typeof e==`object`&&!!e&&W in e}function G(e){return x(e.value)}function te(e,n,r){let i=t(),a;return a=e instanceof Function?i.run(()=>e(n,r??0)):e,{scope:i,unwrapped:a}}const K={LessThan:-1,EqualTo:0,GreaterThan:1};function q(e,t){let n=String(e).split(`.`),r=String(t).split(`.`);for(let e=0;e<Math.min(n.length,r.length);e++){let t=Number(n[e]),i=Number(r[e]);if(t>i)return K.GreaterThan;if(i>t)return K.LessThan;if(!isNaN(t)&&isNaN(i))return K.GreaterThan;if(isNaN(t)&&!isNaN(i))return K.LessThan}return K.EqualTo}const J=q(_,`3.5.0`)!==-1;function ne(){return Math.floor(Math.random()*Date.now()).toString()}function Y(){return typeof window>`u`?ne():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function re(e){return r()?(l(e),!0):!1}function ie(e){let n=!1,r,i=t(!0);return((...t)=>(n||=(r=i.run(()=>e(...t)),!0),r))}function ae(e,t){return e.some(e=>t?e?.[t]:!1)}function oe(e,t){return t?e.reduce((e,n)=>{let r=n?.[t]||[];return e.concat(r)},[]):[]}const se=Symbol(`regle`),X=Symbol(`regle-config`),Z={REGLE_STATIC:`__regle_static`};function Q(e,t){return!de(e.value)&&(G(e)||x(t.value)&&!O(t.value)&&!Object.entries(t.value).some(([e,t])=>$(t)||typeof t==`function`))}function ce(e,t){return!!e.value&&x(e.value)&&`$each`in e.value||Array.isArray(t.value)}function le(e){return!!e.value&&(x(e.value)||G(e.value))}function $(e){return(x(e)||typeof e==`function`)&&`_validator`in e}function ue(e){return typeof e.value==`function`?`_validator`in e.value:!0}function de(e){return x(e)&&T(e,Z.REGLE_STATIC)&&e[Z.REGLE_STATIC]===!0}function fe(e){return x(e)&&`$fields`in e}function pe(e){return!!e&&`$rules`in e}var me=`1.24.1-beta.2`;function he(){let e=f(new Map),t=f(new Map),n=f(new Map),i=f(new Map),a=f(new Map),o=f(new Map),s=f(new Map);function c(e){let n=t.value.get(e);if(n)return n;{let n=d({});return t.value.set(e,n),n}}function u(e){let t=n.value.get(e);if(t)return t;{let t=d([]);return n.value.set(e,t),t}}function p(e,t){o.value.set(e,t)}function m(e){return o.value.get(e)}function h(e,t,n){s.value.set(`${e}-${t}`,n)}function g(e,t){return s.value.get(`${e}-${t}`)}function _(e,t){e&&t!=null&&s.value.delete(`${e}-${t}`)}function v(e,t){i.value.set(e,t)}function y(e){return i.value.get(e)??!1}function b(t,n){e.value.set(t,n)}function x(t,n){let r=e.value.get(t);if(r)return S(n,r)?{valid:!0}:{valid:!1}}function S(e,t){let n=Object.keys(t),r=Object.keys(e);return r.length!==n.length||!r.every(e=>n.includes(e))?!1:r.every(n=>{let r=e[n],i=t[n];if(!i||!r||typeof r==`function`||typeof i==`function`||typeof r==`number`||typeof r==`boolean`||typeof r==`string`)return!1;if(`_params`in r){if(!r._params)return!0;if(Array.isArray(r._params))return r._params?.every((e,t)=>{if(typeof i==`number`||typeof i==`boolean`||typeof i==`string`)return!0;{let e=z(`_params`in i&&Array.isArray(i._params)?i._params:[]),n=z(r._params);return e?.[t]===n?.[t]}})}})}function C(e){let t=a.value.get(e);if(t)return t;{let t=d(!1),n=d(!0),r=d({}),i=d(!1);return a.value.set(e,{$pending:t,$valid:n,$metadata:r,$validating:i}),{$pending:t,$valid:n,$metadata:r,$validating:i}}}return r()&&l(()=>{e.value.clear(),t.value.clear(),n.value.clear(),i.value.clear(),a.value.clear(),s.value.clear()}),{addRuleDeclEntry:b,setDirtyEntry:v,checkRuleDeclEntry:x,getDirtyState:y,trySetRuleStatusRef:C,getFieldsEntry:c,getCollectionsEntry:u,getArrayStatus:g,addArrayStatus:h,deleteArrayStatus:_,arrayStatusStorage:s,addAdditionalRulesEntry:p,getAdditionalRulesEntry:m}}function ge({field:e,silent:t=!1}){let n=Object.entries(e.$rules??{}).map(([n,r])=>{let i=``;if(t&&!r.$valid)i=r.$message;else if(!r.$valid&&e.$error&&!r.$validating)i=r.$message;else return null;return{$message:i,$property:e.fieldName,$rule:n,$type:r.$type,...typeof r.$metadata==`object`?r.$metadata:{}}}).filter(e=>!!e).reduce((e,t)=>(typeof t.$message==`string`?e.push(t):e.push(...t.$message.map(e=>({...t,$message:e}))),e),[]),r=e.$error&&e.$externalErrors&&Array.isArray(e.$externalErrors)?e.$externalErrors.map(t=>({$message:t,$property:e.fieldName,$rule:`external`,$type:void 0})):[],i=[];return e.$schemaErrors&&e.$error&&(i=!Array.isArray(e.$schemaErrors)&&`$self`in e.$schemaErrors?e.$schemaErrors.$self??[]:e.$schemaErrors??[]),[...n,...r,...i]}function _e({field:e}){let t=[];for(let n of Object.values(e.$rules??{})){let e=n.$tooltip;e&&(typeof e==`string`?t.push(e):t.push(...e))}return t}function ve(e){return x(e)&&`$each`in e}function ye(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!x(e)))return e;if(ve(e)){let t=n?e.$self?.map(e=>({message:e,path:[]}))??[]:e.$self??[],r=e.$each?.map(e=>be(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>be(t,n,[e])).flat()}function be(e,t=!1,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(e=>!x(e)))return t?e.map(e=>({message:e,path:r??[]})):e;if(ve(e)){let n=r?.length?e.$self?.map(e=>({message:e,path:r??[]}))??[]:e.$self??[],i=e.$each?.map((e,n)=>be(e,t,r?.concat(n)))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>be(n,t,r?.concat(e))).flat()}function xe({customMessages:n,rule:r,ruleKey:i,state:a,path:o,cachePath:s,storage:c,modifiers:l}){let f=t(),p={},m,h=e(()=>$(r.value)&&r.value._async),g=d(!1),{$pending:_,$valid:y,$metadata:b,$validating:x}=c.trySetRuleStatusRef(`${s}.${i}`);function S(){f=t(),p=f.run(()=>{let t=d(!1),s=d(!1),c=d(!0),l=d(!1),u=d(!1),f=e(()=>({$value:a.value,$error:s.value,$dirty:t.value,$pending:l.value,$correct:u.value,$invalid:c.value,$rule:{$valid:y.value,$invalid:!y.value,$pending:_.value},$params:S.value,...b.value})),p=e(()=>{try{return ue(r)?typeof r.value.active==`function`?r.value.active(f.value):!!r.value.active:!0}catch(e){return console.error(`Error in "active" function for "${o}.${i}" rule`,{cause:e}),!0}});function m(e){try{let t=``,a=n?n[i]?.[e]:void 0;if(a&&(t=typeof a==`function`?a(f.value):a),ue(r)){let n=`_${e}_patched`;a&&!r.value[n]||(t=typeof r.value[e]==`function`?r.value[e](f.value):r.value[e]??``)}return t}catch(t){return console.error(`Error in "${e}" function for "${o}.${i}" rule`,{cause:t}),``}}let h=e(()=>{let e=m(`message`);return O(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),v=e(()=>ue(r)&&r.value.type?r.value.type:i),x=e(()=>ue(r)?r.value.validator:r.value),S=e(()=>typeof r.value==`function`?[]:z(r.value._params??[]));return{$active:p,$message:h,$type:v,$validator:x,$params:S,$path:e(()=>`${o}.${i}`),$tooltip:g,$fieldCorrect:u,$fieldError:s,$fieldDirty:t,$fieldPending:l,$fieldInvalid:c}}),m=v(p?.$params,()=>{(!l.$silent.value||l.$rewardEarly.value&&p.$fieldError.value)&&E()},{deep:J?1:!0})}S();function C(){y.value=!0,p.$fieldDirty.value&&(_.value=!0)}async function w(){let e=!1;try{let t=p.$validator.value;if(typeof t!=`function`)return console.error(`${o}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let n=t(a.value,...p.$params.value),r=a.value;C();let i;if(i=n instanceof Promise?await n:n,a.value!==r)return!0;if(typeof i==`boolean`)e=i;else{let{$valid:t,...n}=i;e=t,b.value=n}}catch{e=!1}finally{_.value=!1}return e}function T(e,t=!0){if($(r.value)&&r.value._async)return!0;let n=e(a.value,...p.$params.value);if(n instanceof Promise)return!0;if(n!=null){if(typeof n==`boolean`)return n;{let{$valid:e,...t}=n;return b.value=t,e}}return!0}async function E(){try{x.value=!0;let e=!1;if(g.value=!0,$(r.value)&&r.value._async)e=await w();else{let t=p.$validator.value;e=T(t)}return y.value=e,e}catch{return!1}finally{x.value=!1,g.value=!1}}function D(){try{return x.value=!0,T(p.$validator.value)}catch{return!1}finally{x.value=!1}}function k(){y.value=!0,b.value={},_.value=!1,x.value=!1,S()}function A(){m(),f.stop(),f=t()}return u({...p,$pending:_,$valid:y,$metadata:b,$haveAsync:h,$maybePending:g,$validating:x,$parse:E,$parseSync:D,$unwatch:A,$watch:S,$reset:k})}function Se(e){return{"~standard":{version:1,vendor:`regle`,validate:async t=>{let{valid:n,data:r,errors:i}=await e(t,!0);return n?{value:r,issues:[]}:{issues:ye(i,{includePath:!0})}}}}}function Ce(e){return e===!0?`eager`:e===!1||e==null?!1:e}function we(e){return x(e)&&!de(e)?Object.values(e).some(e=>we(e)):Array.isArray(e)?e.some(e=>we(e)):!O(e)}function Te(e,t,n){return e===`eager`?!0:e===`non-empty`?we(n):e===`lazy-non-empty`?we(t):!1}function Ee(e,t,n,r=!1){return e===`eager`?!0:e===`non-empty`?r&&!O(n):e===`lazy-non-empty`?!O(t):!1}function De({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,fieldName:c,storage:l,options:f,externalErrors:h,schemaErrors:g,schemaMode:_,onUnwatch:b,$isArray:S,initialState:C,rootInitialState:w,originalState:T,shortcuts:E,overrides:D,onValidate:k}){let A=t(),F,L=[],R,z,B,V,H=()=>{},U,W=()=>{},ee=d(!1),G=d(l.getAdditionalRulesEntry(o)??{});function te(e){G.value=e??{},l.addAdditionalRulesEntry(o,e??{}),q(),H()}function K(e){te(e)}function q(){let e={...r.value,...G.value},t=[];for(let r in e){if(r.startsWith(`$`)||r.startsWith(`~`))continue;let s=e[r];if(!s)continue;let c=p(()=>s);t.push([r,xe({modifiers:{$silent:F.$silent,$rewardEarly:F.$rewardEarly},customMessages:i,rule:c,ruleKey:r,state:n,path:a,cachePath:o,storage:l,$debounce:Q.value.$debounce})])}Z.value=Object.fromEntries(t),l.addRuleDeclEntry(o,e)}function ne(){let e={...r.value,...G.value},t=l.checkRuleDeclEntry(o,e),n={};for(let t in e)t.startsWith(`$`)&&(n[t]=e[t]);return Q.value=n,t}function Y(){let e=ne();oe(),q(),F.processShortcuts(),re(),ie(),e?.valid!=null&&(F.$dirty.value=l.getDirtyState(o),(F.$dirty.value&&!F.$silent.value||F.$rewardEarly.value&&F.$error.value)&&H()),l.addRuleDeclEntry(o,r.value)}function re(){H=F.$debounce.value>0?N(X,F.$debounce.value,{trackDebounceRef:ee}):X}function ie(){W=F.$debounce.value>0?N(()=>{F.$dirty.value=!0},F.$debounce.value):()=>{F.$dirty.value=!0}}function ae(){if(Z.value)for(let e of Object.values(Z.value))e.$unwatch();z(),V?.(),F.$dirty.value&&l.setDirtyEntry(o,F.$dirty.value),R?.(),A.stop(),A=t();for(let e of L)e.stop();L=[],b?.(),B?.()}function oe(){if(Z.value)for(let e of Object.values(Z.value))e.$watch();F=A.run(()=>{let r=d(!1),i=d(!1),a=e(()=>r.value),o=e(()=>S||de(n.value)),s=e(()=>Q.value.$debounce==null?F.$haveAnyAsyncRule.value?200:0:Q.value.$debounce),l=e(()=>Q.value.$deepCompare==null?!1:Q.value.$deepCompare),p=e(()=>Q.value.$lazy==null?m(f.lazy)==null?!1:m(f.lazy)===!0:Q.value.$lazy),v=e(()=>Q.value.$immediateDirty==null?m(f.immediateDirty)==null?!1:Ce(m(f.immediateDirty)):Ce(Q.value.$immediateDirty)),b=e(()=>Q.value.$rewardEarly==null?m(f.rewardEarly)==null?!1:m(f.rewardEarly)===!0:!!Q.value.$rewardEarly),x=e(()=>Q.value.$clearExternalErrorsOnChange==null?m(f.clearExternalErrorsOnChange)==null?!T.value:m(f.clearExternalErrorsOnChange)===!0:!!Q.value.$clearExternalErrorsOnChange),w=e(()=>Q.value.$clearExternalErrorsOnValidate==null?m(f.clearExternalErrorsOnValidate)==null?!1:m(f.clearExternalErrorsOnValidate)===!0:!!Q.value.$clearExternalErrorsOnValidate),T=e(()=>b.value?!0:Q.value.$silent==null?m(f.silent)==null?!1:m(f.silent)===!0:Q.value.$silent),k=e(()=>Q.value.$autoDirty==null?m(f.autoDirty)==null?!0:m(f.autoDirty)===!0:Q.value.$autoDirty),A=e(()=>{if(Q.value.$isEdited!=null)return Q.value.$isEdited;if(D?.isEdited!=null)return D.isEdited}),j=e(()=>{for(let e of Object.values(Z.value))if(e.$validating)return!0;return!1}),N=e({get:()=>n.value,set(e){R(),n.value=e,se()}}),I=e(()=>ee.value?J.value&&r.value:J.value&&!q.value&&r.value),z=e(()=>ge({field:{$rules:Z.value,$error:I.value,$externalErrors:h?.value,$schemaErrors:g?.value,fieldName:ne.value}})),B=e(()=>ge({field:{$rules:Z.value,$error:I.value,$externalErrors:h?.value,$schemaErrors:g?.value,fieldName:ne.value},silent:!0})),V=e(()=>z.value.map(e=>e.$message)),H=e(()=>B.value.map(e=>e.$message)),U=d(!1);function W(e,t){return t instanceof Date&&e instanceof Date?M(t).getTime()!==M(e).getTime():t==null?e!=null&&e!==``:Array.isArray(e)&&Array.isArray(t)?!P(e,t,Q.value.$deepCompare):t!==e}y(()=>{r.value?A.value?U.value=A.value(n.value,C.value,W):U.value=W(n.value,C.value):U.value=!1});let G=e(()=>U.value),te=e(()=>_e({field:{$rules:Z.value}})),K=e(()=>!(J.value||q.value)),q=e(()=>i.value||!b.value?Object.entries(Z.value).some(([e,t])=>t.$pending):!1),J=e(()=>h?.value?.length||g?.value?.length?!0:Y.value?!1:Object.values(Z.value).some(e=>!e.$valid||e.$maybePending)),ne=e(()=>c??f.id??`root`),Y=e(()=>!_&&!Object.keys(Z.value).some(e=>!e.startsWith(`$`))),re=e(()=>{if(h?.value?.length||Y.value||ee.value)return!1;if(r.value&&!O(n.value)&&!j.value&&!q.value){if(_)return!g?.value?.length;{let e=Object.values(Z.value);for(let t of e)if(t.$active&&!t.$valid)return!1;return e.some(e=>e.$active)}}return!1}),ie=e(()=>Object.values(Z.value).some(e=>e.$haveAsync)),ae=e(()=>({$debounce:s.value,$lazy:p.value,$rewardEarly:b.value,$autoDirty:k.value,$silent:T.value,$clearExternalErrorsOnChange:x.value,$clearExternalErrorsOnValidate:w.value,$immediateDirty:v.value,$isEdited:A.value,$disabled:m(f.disabled)??!1}));function oe(){E?.fields&&Object.entries(E.fields).forEach(([e,i])=>{let o=t();X[e]=o.run(()=>{let e=d();return y(()=>{e.value=i(u({$dirty:r,$externalErrors:h?.value??[],$value:n,$silentValue:N,$rules:Z,$error:I,$pending:q,$invalid:J,$correct:re,$errors:V,$ready:K,$silentErrors:H,$anyDirty:a,$tooltips:te,$name:ne,$inactive:Y,$edited:U,$anyEdited:G}))}),e}),L.push(o)})}let X={};return{$error:I,$pending:q,$invalid:J,$correct:re,$debounce:s,$deepCompare:l,$lazy:p,$immediateDirty:v,$ready:K,$issues:z,$silentIssues:B,$errors:V,$silentErrors:H,$rewardEarly:b,$autoDirty:k,$silent:T,$clearExternalErrorsOnChange:x,$clearExternalErrorsOnValidate:w,$anyDirty:a,$edited:U,$anyEdited:G,$name:ne,$haveAnyAsyncRule:ie,$shortcuts:X,$validating:j,$tooltips:te,$dirty:r,processShortcuts:oe,$silentValue:N,$inactive:Y,$modifiers:ae,$isArrayOrRegleStatic:o}}),se(),z=v(F.$dirty,e=>{l.setDirtyEntry(o,e),Object.values(Z.value).forEach(t=>{t.$fieldDirty=e})}),V=v([F.$error,F.$correct,F.$invalid,F.$pending],()=>{Object.values(Z.value).forEach(e=>{e.$fieldError=F.$error.value,e.$fieldInvalid=F.$invalid.value,e.$fieldPending=F.$pending.value,e.$fieldCorrect=F.$correct.value})}),B=v(F.$haveAnyAsyncRule,re)}function se(){R=v(n,()=>{F.$autoDirty.value&&!F.$silent.value&&(F.$dirty.value||W()),r.value instanceof Function&&Y(),(!F.$silent.value||F.$rewardEarly.value&&F.$error.value)&&H(),F.$clearExternalErrorsOnChange.value&&we()},{deep:F.$isArrayOrRegleStatic.value?!0:J?1:!0})}async function X(){try{let{promise:e}=ue(Promise.allSettled(Object.values(Z.value).map(e=>e.$parse())));await e}catch{}}let Z=d({}),Q=d({});Y();function ce(){Ee(F.$immediateDirty.value,C.value,w?.value??C.value,a===``)&&(F.$dirty.value=!0)}function le(e,t){if($(),we(),F.$dirty.value=!1,l.setDirtyEntry(o,!1),!t)if(e?.toOriginalState)n.value=j(T),C.value=j(T);else if(e?.toInitialState)n.value=j(C.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,C.value=j(t),n.value=j(t)}else C.value=x(n.value)&&!de(n.value)?j(n.value):Array.isArray(n.value)?[...n.value]:n.value;if(e?.clearExternalErrors&&we(),!t&&!e?.keepValidationState)for(let e of Object.values(Z.value))e.$reset();if(!F.$lazy.value&&!F.$silent.value&&!t)for(let e of Object.values(Z.value))e.$parse();ce()}function $(){`cancel`in H&&H.cancel()}function ue(e){return U&&U.abort(),U=I(e),U}function fe(){$(),U&&U.abort()}function pe(e=!0,t=!1){F.$dirty.value||W(),t&&e?(!F.$silent.value||F.$rewardEarly.value&&F.$error.value)&&($(),H()):e&&($(),H())}async function me(e){return e&&(n.value=e),await s(),he()}async function he(e){try{if(e&&(n.value=e),_)return k?(pe(!1),k()):{valid:!1,data:n.value,errors:F.$errors.value,issues:F.$issues.value};let t=n.value;if(F.$autoDirty.value&&!F.$silent.value&&F.$dirty.value&&!F.$validating.value&&!F.$pending.value&&!ee.value&&!O(Z.value))return{valid:!F.$invalid.value,data:t,errors:F.$errors.value,issues:F.$issues.value};if(F.$dirty.value||(F.$dirty.value=!0),O(Z.value))return{valid:!0,data:t,errors:F.$errors.value,issues:F.$issues.value};fe();let{promise:r}=ue(Promise.allSettled(Object.values(Z.value).map(e=>e.$parse()))),i=await r;return await s(),{valid:i.every(e=>e.status===`fulfilled`&&e.value===!0),data:t,errors:F.$errors.value,issues:F.$issues.value}}catch{return{valid:!1,data:n.value,errors:F.$errors.value,issues:F.$issues.value}}}function ve(e){try{return e&&(n.value=e),F.$dirty.value||(F.$dirty.value=!0),_?!1:Object.values(Z.value).map(e=>e.$parseSync()).every(e=>!!e)}catch{return!1}}function ye(e=!0){return F.$dirty.value?n.value:e?{_null:!0}:null}function be(e){h&&(h.value=e)}function we(){h?.value?.length&&(h.value=[])}!F.$lazy.value&&!F.$dirty.value&&!F.$silent.value&&X(),ce();let{$shortcuts:Te,$validating:De,$autoDirty:Oe,$rewardEarly:ke,$clearExternalErrorsOnChange:Ae,$clearExternalErrorsOnValidate:je,$haveAnyAsyncRule:Me,$debounce:Ne,$lazy:Pe,...Fe}=F,Ie=u({...Fe,$externalErrors:h,$value:n,$initialValue:C,$originalValue:T,$rules:Z,...Te,$path:a,$isDebouncing:ee,$reset:le,$touch:pe,$validate:me,$validateSync:ve,$validateWithoutRaceconditions:he,$unwatch:ae,$watch:oe,$extractDirtyFields:ye,$clearExternalErrors:we,$abort:fe,$addRules:te,addRules:K,$schemaMode:_,"~modifiers":F.$modifiers,$setExternalErrors:be,...Se(me)});return Object.defineProperty(Ie,Symbol.for(`regle:instance`),{value:!0}),Ie}function Oe({$id:t,path:n,cachePath:r,index:i,options:a,storage:o,stateValue:s,customMessages:c,rules:l,externalErrors:u,schemaErrors:f,initialState:m,originalState:h,shortcuts:g,fieldName:_,schemaMode:v,overrides:y,currentIndexes:b}){let S=s.value?.$id??l.$key??Y(),C=`${r}.${String(S)}`,w=d(i),T=`${n}.${i}`;typeof s.value==`object`&&s.value!=null&&(s.value.$id||Object.defineProperties(s.value,{$id:{value:S,enumerable:!1,configurable:!1,writable:!1}}));let E=p(u?.value??[],i),D=e(()=>f?.value?.[w.value]),O=je({index:i,state:s,rulesDef:p(()=>l),customMessages:c,path:T,cachePath:C,storage:o,options:a,externalErrors:E,schemaErrors:D,initialState:m,originalState:h,shortcuts:g,fieldName:_,schemaMode:v,overrides:y});return O&&(O.$id=s.value?.$id??String(S),b?.set(O.$id,w),o.addArrayStatus(t,O.$id,O)),s.value&&(!x(s.value)||de(s.value))&&v&&O?.$touch(),O}function ke({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,storage:s,options:c,externalErrors:l,schemaErrors:f,schemaMode:h,initialState:g,originalState:_,shortcuts:b,fieldName:x,overrides:S}){let C=t(),w,T=t(),E,D=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let k=d(),A=d(n.value),M=d({}),N,P,F=d({}),I=s.getCollectionsEntry(a),L=new Map;E=T.run(()=>({isPrimitiveArray:e(()=>n.value?.length?Array.isArray(n.value)&&n.value.length?n.value.every(e=>typeof e!=`object`):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(e=>$(e)||typeof e==`function`):!1:!1)})),R(),H();function R(){M.value=Object.fromEntries(Object.entries(r.value).filter(([e])=>e.startsWith(`$`))),typeof n.value==`object`&&(n.value!=null&&!n.value?.$id&&n.value!==null?(k.value=Y(),Object.defineProperties(n.value,{$id:{value:k.value,enumerable:!1,configurable:!1,writable:!1}})):n.value?.$id&&(k.value=n.value.$id)),A.value=F.value.$value,Array.isArray(n.value)&&(!E.isPrimitiveArray.value||h)?I.value=n.value.map((t,n)=>{let{scope:u,unwrapped:d}=te(r.value.$each,p(()=>t),n);u&&D.push(u);let m=p(g.value??[],n),v=p(l?.value??{},`$each`),y=e(()=>f?.value?.$each);return Oe({$id:k.value,path:a,cachePath:o,customMessages:i,rules:d??{},stateValue:p(()=>t),index:n,options:c,storage:s,externalErrors:v,schemaErrors:y,initialState:m,originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S,currentIndexes:L})||null}).filter(e=>!!e):(I.value=[],L.clear()),F.value=De({state:n,rulesDef:r,customMessages:i,path:a,cachePath:a,storage:s,options:c,externalErrors:p(l?.value??{},`$self`),schemaErrors:e(()=>f?.value?.$self),$isArray:!0,initialState:g,originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S})}function z(){if(Array.isArray(n.value)&&(!E.isPrimitiveArray.value||h)){let t=j(I.value),o=new Set;I.value=n.value.map((t,n)=>{let u=p(()=>t);if(t.$id&&I.value.find(e=>e.$id===t.$id)){let e=s.getArrayStatus(k.value,t.$id);if(e){let r=L.get(t.$id);return r&&(r.value=n),o.add(t.$id),e.$value=u,e}return null}else{let{scope:t,unwrapped:d}=te(r.value.$each,u,n);t&&D.push(t);let m=p(l?.value??{},`$each`),v=e(()=>f?.value?.$each??[]),y=Oe({$id:k.value,path:a,cachePath:a,customMessages:i,rules:d??{},stateValue:u,index:n,options:c,storage:s,externalErrors:m,schemaErrors:v,initialState:p(g.value??[],n),originalState:_,shortcuts:b,fieldName:x,schemaMode:h,overrides:S,currentIndexes:L});return y?(y.$id&&o.add(y.$id),y):null}}).filter(e=>!!e),t.filter(e=>!n.value?.find(t=>e.$id===t.$id)).forEach((e,t)=>{s.deleteArrayStatus(k.value,t.toString())});for(let e of L.keys())o.has(e)||L.delete(e)}else I.value=[],L.clear()}function B(){N=v(n,()=>{P?.(),n.value!=null&&!Object.hasOwn(n.value,`$id`)&&!k.value?R():z(),V()},{deep:J?1:!0,flush:`pre`}),V()}function V(){P=v(n,()=>{w.$autoDirty.value&&!w.$silent.value&&F.value.$touch(!1,!0)},{flush:`post`})}function H(){B(),C=t(),w=C.run(()=>{let r=e({get:()=>n.value,set(e){N?.(),P?.(),n.value=e,B()}}),i=e(()=>F.value.$dirty&&(!I.value.length||I.value.every(e=>e.$dirty))),o=e(()=>F.value.$anyDirty||I.value.some(e=>e.$anyDirty)),s=e(()=>F.value.$invalid||I.value.some(e=>e.$invalid)),l=e(()=>(h?F.value.$correct:O(F.value.$rules)?!0:F.value.$correct)&&(!I.value.length||I.value.every(e=>e.$correct||e.$anyDirty&&!e.$invalid))),f=e(()=>F.value.$error||I.value.some(e=>e.$error)),p=e(()=>!(s.value||v.value)),v=e(()=>F.value.$pending||I.value.some(e=>e.$pending)),C=e(()=>!!I.value.length&&I.value.every(e=>e.$edited)),w=e(()=>F.value.$anyEdited||I.value.some(e=>e.$anyEdited)),T=e(()=>({$self:F.value.$issues,$each:I.value.map(e=>e.$issues)})),E=e(()=>({$self:F.value.$errors,$each:I.value.map(e=>e.$errors)})),k=e(()=>({$self:F.value.$silentErrors,$each:I.value.map(e=>e.$silentErrors)})),A=e(()=>M.value.$rewardEarly==null?m(c.rewardEarly)==null?!1:m(c.rewardEarly)===!0:M.value.$rewardEarly),j=e(()=>A.value?!0:M.value.$silent==null?m(c.silent)==null?!1:m(c.silent)===!0:M.value.$silent),L=e(()=>M.value.$autoDirty==null?m(c.autoDirty)==null?!0:m(c.autoDirty)===!0:M.value.$autoDirty),R=e(()=>M.value.$immediateDirty==null?m(c.immediateDirty)==null?!1:Ce(m(c.immediateDirty)):Ce(M.value.$immediateDirty)),z=e(()=>M.value.$clearExternalErrorsOnChange==null?m(c.clearExternalErrorsOnChange)==null?!0:m(c.clearExternalErrorsOnChange)===!0:M.value.$clearExternalErrorsOnChange),V=e(()=>M.value.$clearExternalErrorsOnValidate==null?m(c.clearExternalErrorsOnValidate)==null?!1:m(c.clearExternalErrorsOnValidate)===!0:M.value.$clearExternalErrorsOnValidate),H=e(()=>{if(M.value.$isEdited!=null)return M.value.$isEdited;if(S?.isEdited!=null)return S.isEdited}),U=e(()=>x??c.id??`root`),W=e(()=>({$deepCompare:M.value.$deepCompare??!1,$debounce:M.value.$debounce??0,$lazy:M.value.$lazy??!1,$rewardEarly:A.value,$autoDirty:L.value,$silent:j.value,$clearExternalErrorsOnChange:z.value,$clearExternalErrorsOnValidate:V.value,$immediateDirty:R.value,$isEdited:H.value,$disabled:m(c.disabled)??!1}));function ee(){b?.collections&&Object.entries(b?.collections).forEach(([e,c])=>{let m=t();G[e]=m.run(()=>{let e=d();return y(()=>{e.value=c(u({$dirty:i,$error:f,$path:a,$silentValue:r,$pending:v,$invalid:s,$correct:l,$errors:E,$silentErrors:k,$initialValue:g,$originalValue:_,$ready:p,$anyDirty:o,$name:U,$each:I,$self:F,$value:n,$edited:C,$anyEdited:w,$issues:T}))}),e}),D.push(m)})}let G={};return ee(),{$dirty:i,$anyDirty:o,$invalid:s,$correct:l,$error:f,$pending:v,$errors:E,$silentErrors:k,$ready:p,$name:U,$shortcuts:G,$silentValue:r,$edited:C,$anyEdited:w,$rewardEarly:A,$silent:j,$autoDirty:L,$issues:T,$modifiers:W}}),E.isPrimitiveArray.value&&r.value.$each&&console.warn(`${a} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`)}function U(){N?.(),F.value&&F.value.$unwatch(),I.value&&I.value.forEach(e=>{`$dirty`in e&&e.$unwatch()}),C.stop(),C=t(),T.stop(),T=t(!0),D.forEach(e=>e.stop()),D=[]}function W(e=!0,t=!1){F.value.$touch(e,t),I.value.forEach(n=>{n.$touch(e,t)})}function ee(e,t){if(U(),!t)if(e?.toOriginalState)n.value=j(_),g.value=j(_);else if(e?.toInitialState)n.value=j(g.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,g.value=j(t),n.value=j(t)}else g.value=j(n.value);e?.clearExternalErrors&&ie(),e?.keepValidationState||(F.value.$reset(e,t),I.value.forEach(t=>{t.$reset(e,!0)})),t||R()}function G(){F.value.$abort(),I.value.forEach(e=>{e.$abort()})}async function K(e){return e&&(n.value=e),q()}async function q(e){e&&(n.value=e);let t=n.value;try{return G(),{valid:(await Promise.allSettled([F.value.$validateWithoutRaceconditions(e),...I.value.map(e=>e.$validateWithoutRaceconditions())])).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:t,errors:w.$errors.value,issues:w.$issues.value}}catch{return{valid:!1,data:t,errors:w.$errors.value,issues:w.$issues.value}}}function ne(e){e&&(n.value=e);try{return[F.value.$validateSync(e),...I.value.map(e=>e.$validateSync())].every(e=>!!e)}catch{return!1}}function re(e){l?.value&&(l.value=e)}function ie(){F.value.$clearExternalErrors(),I.value.forEach(e=>{e.$clearExternalErrors()})}function ae(e=!0){let t=I.value.map(t=>{if(fe(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>O(e))&&(t=[]),t}let{$shortcuts:oe,...se}=w;return u({$self:F,...se,...oe,$path:a,$each:I,$value:n,$initialValue:g,$originalValue:_,$validate:K,$validateSync:ne,$validateWithoutRaceconditions:q,$unwatch:U,$watch:H,$touch:W,$reset:ee,$abort:G,$extractDirtyFields:ae,$clearExternalErrors:ie,$setExternalErrors:re,"~modifiers":w.$modifiers,...Se(K)})}function Ae({rulesDef:n,state:r,path:i=``,cachePath:a,rootRules:o,externalErrors:c,schemaErrors:l,rootInitialState:f,rootSchemaErrors:h,validationGroups:_,initialState:b,originalState:S,fieldName:C,...w}){let T=t(),E,D=[],k=null,A=null,M=null,N=null,P=d(void 0);async function F(t=!0){let o=Object.entries(n.value).filter(([e])=>e!==`$self`),s=Object.fromEntries(o.reduce((t,[n,o])=>{if(!o)return t;let s=p(r.value??{},n),u=p(()=>o),d=p(c?.value??{},n),f=e(()=>l?.value?.[n]),m=p(b?.value??{},n);return t.push([n,je({state:s,rulesDef:u,path:i?`${i}.${n}`:n,cachePath:a?`${a}.${n}`:n,externalErrors:d,schemaErrors:f,initialState:m,originalState:S?.[n],fieldName:n,...w})]),t},[])),u=Object.fromEntries(Object.entries(m(c)??{}).filter(([e,t])=>!(e in n.value)&&!!t).map(([t])=>{let n=p(r.value??{},t),o=p(c?.value??{},t),s=e(()=>l?.value?.[t]),u=p(b?.value??{},t),d=i?`${i}.${t}`:t,f=a?`${a}.${t}`:t;return[t,je({state:n,rulesDef:e(()=>({})),path:d,cachePath:f,externalErrors:o,schemaErrors:s,initialState:u,originalState:S?.[t],fieldName:t,...w})]})),d=Object.fromEntries(Object.entries(m(l)??{}).map(([t])=>{let n=i?`${i}.${t}`:t,o=a?`${a}.${t}`:t,s=p(r.value??{},t),u=p(c?.value??{},t),d=e(()=>l?.value?.[t]),f=p(b?.value??{},t);return[t,je({state:s,rulesDef:e(()=>({})),path:n,cachePath:o,externalErrors:u,schemaErrors:d,initialState:f,originalState:S?.[t],fieldName:t,...w})]})),f=Object.fromEntries(Object.entries(r.value??{}).filter(([e])=>!(e in n.value)&&!(e in(u??{}))&&!(e in(d??{}))).map(([t])=>{let n=p(r.value??{},t),o=p(c?.value??{},t),s=e(()=>l?.value?.[t]),u=p(b?.value??{},t);return[t,je({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,cachePath:a?`${a}.${t}`:t,externalErrors:o,schemaErrors:s,initialState:u,originalState:S?.[t],fieldName:t,...w})]}));L.value={...s,...u,...d,...f},t&&B()}function I(){n.value.$self&&(P.value=De({state:r,rulesDef:e(()=>n.value.$self??{}),path:i,cachePath:a,externalErrors:d(void 0),schemaErrors:d(void 0),initialState:p(b?.value??{},`$self`),originalState:S?.$self,fieldName:`$self`,...w}))}let L=w.storage.getFieldsEntry(a);F(),I();function R(){c&&(M=v(c,()=>{V(),F()},{deep:!0}))}function z(){N=v(r,()=>{V(),F(),E.$autoDirty.value&&!E.$silent.value&&G(!1,!0)},{flush:`post`})}function B(){o&&(k?.(),k=v(o,()=>{V(),F()},{deep:!0,flush:`pre`}),R()),h&&(A?.(),A=v(()=>h.value?Object.keys(h.value).sort().join(`\0`):``,()=>{V(),F()},{flush:`post`})),z(),E=T.run(()=>{let a=e({get:()=>r.value,set(e){V(),r.value=e,F(),E.$autoDirty.value&&!E.$silent.value&&G(!1,!0)}}),o=e({get:()=>r.value,set(e){V(),r.value=e,F()}}),s=e(()=>{let e=L.value,t=Object.keys(e);if(!t.length)return!1;for(let n of t)if(!e[n]?.$dirty)return!1;return!0}),c=e(()=>{let e=L.value;for(let t in e)if(e[t]?.$anyDirty)return!0;return!1}),l=e(()=>{if(P.value?.$invalid)return!0;let e=L.value,t=Object.entries(e);if(!t.length)return!1;for(let[e,n]of t)if(n?.$invalid)return!0;return!1}),f=e(()=>{let e=Object.entries(L.value).reduce((e,[t,n])=>((!pe(n)||!n.$inactive)&&e.push([t,n]),e),[]),t=n.value.$self&&!O(n.value.$self);if(e.length||t){let t=P.value?.$correct??!0,n=!1;return n=w.schemaMode?e.every(([e,t])=>t.$correct):e.every(([e,t])=>pe(t)?`required`in t.$rules&&t.$rules.required.$active?t.$correct:!t.$invalid&&!t.$pending&&!t.$isDebouncing:t?.$correct),t&&n}return!1}),p=e(()=>{if(P.value?.$error)return!0;let e=L.value;if(!Object.keys(e).length)return!1;for(let t in e)if(e[t]?.$error)return!0;return!1}),h=e(()=>m(w.options.rewardEarly)==null?!1:m(w.options.rewardEarly)),v=e(()=>m(w.options.silent)==null?!!h.value:m(w.options.silent)===!0),x=e(()=>m(w.options.autoDirty)==null?!0:m(w.options.autoDirty)===!0),T=e(()=>m(w.options.immediateDirty)==null?!1:Ce(m(w.options.immediateDirty))),k=e(()=>m(w.options.lazy)==null?!1:m(w.options.lazy)===!0),A=e(()=>m(w.options.clearExternalErrorsOnChange)==null?!1:m(w.options.clearExternalErrorsOnChange)===!0),j=e(()=>m(w.options.clearExternalErrorsOnValidate)==null?!1:m(w.options.clearExternalErrorsOnValidate)===!0),M=e(()=>!(l.value||I.value)),N=d(!1),I=e(()=>{if(P.value?.$pending||N.value)return!0;let e=L.value;for(let t in e)if(e[t]?.$pending)return!0;return!1}),R=e(()=>{let e={...P.value&&{$self:P.value?.$issues??[]}};for(let t in L.value)e[t]=L.value[t]?.$issues;return e}),z=e(()=>{let e={...P.value&&{$self:P.value?.$errors??[]}};for(let t in L.value)e[t]=L.value[t]?.$errors;return e}),B=e(()=>{let e={...P.value&&{$self:P.value?.$silentErrors??[]}};for(let t in L.value)e[t]=L.value[t]?.$silentErrors;return e}),H=e(()=>{if(P.value?.$edited)return!0;if(!Object.keys(L.value).length)return!1;for(let e in L.value)if(!L.value[e]?.$edited)return!1;return!0}),U=e(()=>{if(P.value?.$anyEdited)return!0;for(let e in L.value)if(L.value[e]?.$anyEdited)return!0;return!1}),W=e(()=>C??w.options.id??`root`),ee=e(()=>({autoDirty:x.value,lazy:k.value,rewardEarly:h.value,silent:v.value,clearExternalErrorsOnChange:A.value,clearExternalErrorsOnValidate:j.value,immediateDirty:T.value,id:m(w.options.id),disabled:m(w.options.disabled)}));function te(){w.shortcuts?.nested&&Object.entries(w.shortcuts.nested).forEach(([e,n])=>{let a=t();q[e]=a.run(()=>{let e=d();return y(()=>{e.value=n(u({$dirty:s,$path:i,$value:r,$silentValue:o,$error:p,$originalValue:S,$pending:I,$invalid:l,$correct:f,$ready:M,$anyDirty:c,$name:W,$silentErrors:B,$initialValue:b,$errors:z,$fields:L,$edited:H,$anyEdited:U,$issues:R,$self:P,"~modifiers":g(w.options)}))}),e}),D.push(a)})}let K=e({get:()=>_?Object.fromEntries(Object.entries(_?.(L.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,ae(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,oe(t,e)]))}]:[])):{},set(){}}),q={};return te(),{$dirty:s,$anyDirty:c,$invalid:l,$correct:f,$error:p,$pending:I,$issues:R,$errors:z,$silentErrors:B,$clearExternalErrorsOnValidate:j,$ready:M,$name:W,$shortcuts:q,$groups:K,$silentValue:o,$immediateDirty:T,$edited:H,$anyEdited:U,$localPending:N,$autoDirty:x,$silent:v,$value:a,$modifiers:ee}})}function V(){if(k?.(),M?.(),N?.(),A?.(),D=[],E={},L.value)for(let e of Object.values(L.value))e?.$unwatch()}function H(e){c&&(c.value=e)}function U(){c&&!O(c.value)&&(c.value={})}function W(){E.$immediateDirty.value!==`lazy-non-empty`&&Te(E.$immediateDirty.value,b.value,f?.value??b.value)&&G(!0,!1)}function ee(e,t){if(M?.(),V(),!t)if(e?.toOriginalState)r.value=j({...S}),b.value=j({...S});else if(e?.toInitialState)r.value=j({...b.value});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,b.value=j(t),r.value=j(t)}else b.value=j(r.value);if(!e?.keepValidationState){for(let t of Object.values(L.value))t?.$reset(e,!0);P.value?.$reset(e,!0)}e?.clearExternalErrors===!1&&U(),R(),t||(F(),W())}function G(e=!0,t=!1){for(let n of Object.values(L.value))n?.$touch(e,t);P.value?.$touch(e,t)}function te(e){return e.filter(([e,t])=>x(t)&&!de(t)?!(t&&typeof t==`object`&&`_null`in t)&&!O(t):Array.isArray(t)?t.length:!0)}function K(e=!0){let t=Object.entries(L.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=te(t)),Object.fromEntries(t)}function q(){for(let e of Object.values(L.value))e.$abort();P.value?.$abort()}async function J(e){return e&&(r.value=e),await s(),ne()}async function ne(e){try{if(e&&(r.value=e),w.schemaMode)return w.onValidate?(G(!1),E.$localPending.value=!0,w.onValidate()):{valid:!1,data:r.value,errors:E.$errors.value,issues:E.$issues.value};{let e=r.value;q(),E.$clearExternalErrorsOnValidate.value&&U();let t=[...Object.values(L.value).map(e=>e.$validateWithoutRaceconditions()),...P.value?[P.value?.$validateWithoutRaceconditions()]:[]];return{valid:(await Promise.allSettled(t)).every(e=>e.status===`fulfilled`&&e?.value?.valid===!0),data:e,errors:E.$errors.value,issues:E.$issues.value}}}catch{return{valid:!1,data:r.value,errors:E.$errors.value,issues:E.$issues.value}}finally{E.$localPending.value=!1}}function Y(e){try{return e&&(r.value=e),E.$clearExternalErrorsOnValidate.value&&U(),[...Object.values(L.value).map(e=>e.$validateSync()),...P.value?[P.value?.$validateSync()]:[]].every(e=>!!e)}catch{return!1}}W();let{$shortcuts:re,$localPending:ie,...se}=E,X=u({...se,...re,$path:i,$initialValue:b,$originalValue:S,$self:P,$externalErrors:c,$fields:L,$reset:ee,$touch:G,$validate:J,$unwatch:V,$watch:B,$setExternalErrors:H,$clearExternalErrors:U,$extractDirtyFields:K,$abort:q,$validateSync:Y,$validateWithoutRaceconditions:ne,...o?{"~modifiers":E.$modifiers}:{},...Se(J)});return Object.defineProperty(X,Symbol.for(`regle:instance`),{value:!0}),y(()=>{for(let e of Object.keys(X).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete X[e];for(let e of Object.values(L.value))e?.$name&&Object.assign(X,{[e.$name]:e})}),X}function je({rulesDef:e,...n}){if(ce(e,n.state))return ke({rulesDef:e,...n});if(Q(n.state,e)){if(G(n.state))return Ae({rulesDef:e,...n});{let r=t().run(()=>{let e=p(n.state.value?n.state:d({}));return v(()=>n.state.value,t=>{e.value=t},{deep:!0}),v(e,e=>{n.state.value=e},{deep:!0}),{fakeState:e}}),{state:i,...a}=n;return Ae({rulesDef:e,...a,state:r.fakeState})}}else if(le(e))return De({rulesDef:a(e.value)?e.value:e,...n})}function Me({initialState:e,originalState:n,options:i,scopeRules:a,state:o,customRules:c,shortcuts:u,schemaErrors:f,schemaMode:p=!1,onValidate:h,overrides:g}){let _=he(),y=d(!1),b=new Set,S,C=d(),T=d(),E,D,O;function k(){O=v(()=>m(i.disabled),async e=>{e?F():(N(),j())})}function A(e){D?.(),e&&(x(e)&&Object.keys(e).some(e=>e.includes(`.`))?T.value=w(e):Array.isArray(e)?T.value=e:T.value=e??{}),M()}function j(){E=v(()=>i.externalErrors?.value,A,{deep:!0})}function M(){D=v(()=>T.value,e=>{E?.(),i.externalErrors?.value&&(i.externalErrors.value=e),A(e),j()},{deep:!0})}function N(){Q(o,a)?C.value=Ae({rootRules:a,rulesDef:a,state:o,customMessages:c?.(),storage:_,options:i,rootInitialState:e,externalErrors:T,validationGroups:i.validationGroups,initialState:e,originalState:n,shortcuts:u,fieldName:void 0,path:``,cachePath:``,schemaErrors:f,rootSchemaErrors:f,schemaMode:p,onValidate:h,overrides:g}):le(a)&&(C.value=De({rulesDef:a,state:o,customMessages:c?.(),storage:_,options:i,rootInitialState:e,externalErrors:T,initialState:e,originalState:n,shortcuts:u,fieldName:void 0,path:``,cachePath:``,schemaMode:p,schemaErrors:f,onValidate:h,overrides:g}))}function P(){D=void 0,E=void 0,O=void 0}function F(){C.value?.$unwatch(),D?.(),E?.()}function I(){y.value||(y.value=!0,S=t(!0),S.run(()=>{A(i.externalErrors?.value),N(),m(i.disabled)?s().then(()=>{C.value?.$unwatch()}):j(),k()}))}function L(){y.value&&(y.value=!1,F(),O?.(),P(),S?.stop(),S=void 0)}function R(){let e=r();!e||b.has(e)||(y.value||I(),b.add(e),l(()=>{b.delete(e),b.size||L()}))}return I(),R(),{regle:C,bindToCurrentScope:R}}function Ne({state:t,rulesFactory:n,options:r,globalOptions:o,customRules:s,shortcuts:c,overrides:l}){let u=a(n)?n:typeof n==`function`?void 0:e(()=>n),p=i(X,void 0)??{},m={...p.modifiers,...o},g=()=>({...p.rules?.(),...s?.()}),_={...p.shortcuts,...c},v={...p.overrides,...l},b={...m,...r},S,C=f(u??{});typeof n==`function`&&(S=y(()=>{C.value=n(t),h(C)}));let w=d(x(t.value)?{...j(t.value)}:j(t.value)),T=x(t.value)?{...j(t.value)}:j(t.value);re(()=>{S?.()});let{regle:E,bindToCurrentScope:D}=Me({scopeRules:C,state:t,options:b,initialState:w,originalState:T,customRules:g,shortcuts:_,overrides:v});return{regle:E,bindToCurrentScope:D}}function Pe(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s,c){let l=a(t)?t:d(t),u=e(()=>m(c?.disabled)??!1),{regle:f,bindToCurrentScope:p}=Ne({state:l,rulesFactory:s,options:c,globalOptions:r,customRules:n,shortcuts:i,overrides:o});return{r$:L(f,u,p)}}return s}const Fe=Pe();function Ie(){function e(e,t){return t}return e}const Le=Ie();function Re(e,t){return S(m(e).$errors,String(t))}function ze(e,t){return S(m(e).$issues,String(t))}function Be(e){let t={};if(Object.entries(e).some(([e,t])=>$(t)||typeof t==`function`))return null;for(let n in e){let r=e[n];r&&x(r)&&`$each`in r&&r.$each&&x(r.$each)?t[n]=[Be(r.$each)]:x(r)&&!O(r)&&!Object.entries(r).some(([e,t])=>$(t)||typeof t==`function`)?t[n]=Be(r):t[n]=null}return t}function Ve(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s){let c=a(t)?t:typeof t==`function`?void 0:e(()=>t),l=d(Be(c?.value)),u=e(()=>m(s?.disabled)??!1),{regle:f,bindToCurrentScope:p}=Ne({state:l,rulesFactory:c,options:s,globalOptions:r,customRules:n,shortcuts:i,overrides:o});return L(f,u,p)}return s}const He=Ve();function Ue(e){if(D(e)){let t=e,n=class extends t{constructor(...e){return super(...e),We(this)}};return Object.defineProperty(n,`name`,{value:t.name}),We(n)}return We(e)}function We(e){return!T(e,Z.REGLE_STATIC)&&Object.isExtensible(e)&&E(e,Z.REGLE_STATIC,!0),e}function Ge({rules:e,modifiers:t,shortcuts:n,overrides:r}){let i=Pe({rules:e,modifiers:t,shortcuts:n,overrides:r}),a=Ve({rules:e,modifiers:t,shortcuts:n,overrides:r});return i.__config={rules:e,modifiers:t,shortcuts:n,overrides:r},a.__config={rules:e,modifiers:t,shortcuts:n,overrides:r},{useRegle:i,inferRules:Ie(),useRules:a}}function Ke(e,{rules:t,modifiers:n,shortcuts:r,overrides:i}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?C(a.modifiers,n):a.modifiers??n,c=a.shortcuts&&r?C(a.shortcuts,r):a.shortcuts??r,l=a.overrides&&i?C(a.overrides,i):a.overrides??i,u=Pe({rules:o,modifiers:s,shortcuts:c,overrides:l});return u.__config={rules:o,modifiers:s,shortcuts:c,overrides:l},{useRegle:u,inferRules:Ie()}}function qe(e){return e}function Je(t,n){let r=n??!1,i=e({get:()=>r?Object.values(t).map(e=>e.$value):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$value])),set:e=>{r||typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$value=n)}}),a=e({get:()=>Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentValue])),set:e=>{typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$silentValue=n)}}),o=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$dirty)}),s=e(()=>Object.entries(t).some(([e,t])=>t?.$anyDirty)),c=e(()=>Object.entries(t).some(([e,t])=>t?.$invalid)),l=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$correct||t.$anyDirty&&!t.$invalid)}),d=e(()=>Object.entries(t).some(([e,t])=>t?.$error)),f=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$ready)}),p=e(()=>Object.entries(t).some(([e,t])=>t?.$pending)),m=e(()=>r?Object.entries(t).map(([e,t])=>t.$issues):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$issues]))),h=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentIssues):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentIssues]))),g=e(()=>r?Object.entries(t).map(([e,t])=>t.$errors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$errors]))),_=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentErrors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentErrors]))),v=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$edited)}),b=e(()=>Object.entries(t).some(([e,t])=>t?.$anyEdited)),x=e(()=>r?Object.values(t):t);function S(e){Object.values(t).forEach(t=>{t.$reset(e)})}function C(){Object.values(t).forEach(e=>{e.$touch()})}function w(e=!0){return Object.values(t).map(t=>t.$extractDirtyFields(e))}function T(e){Object.values(t).forEach(t=>{t.$setExternalErrors(e)})}function E(){Object.values(t).forEach(e=>{e.$clearExternalErrors()})}function D(e){try{return e&&(i.value=e),Object.values(t).every(t=>t.$validateSync(e))}catch{return!1}}async function O(e){try{e&&(i.value=e);let n=i.value;return{valid:(await Promise.allSettled(Object.values(t).map(e=>e.$validate()))).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:n,errors:g.value,issues:m.value}}catch{return{valid:!1,data:i.value,errors:g.value,issues:m.value}}}let k=u({...!r&&{$silentValue:a},$errors:g,$issues:m,$silentIssues:h,$silentErrors:_,$instances:x,$value:i,$dirty:o,$anyDirty:s,$invalid:c,$correct:l,$error:d,$pending:p,$ready:f,$edited:v,$anyEdited:b,$reset:S,$touch:C,$validate:O,$validateSync:D,$extractDirtyFields:w,$clearExternalErrors:E,$setExternalErrors:T});return y(()=>{if(!r){for(let e of Object.keys(k).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete k[e];for(let[e,t]of Object.entries(x.value))Object.assign(k,{[e]:t})}}),k}function Ye(t,n){function r(r){let i=e(()=>m(r)),a=u({});c();let o=d(l(t.value)),s=u({r$:o});function c(){i.value&&(typeof i.value==`string`&&!t.value[i.value]?t.value[i.value]={}:Array.isArray(i.value)&&i.value.forEach(e=>{t.value[e]||(t.value[e]={})}))}v(i,c),v(t,e=>{o.value=l(e)},{deep:!0});function l(e){return i.value?typeof i.value==`string`?Je(e[i.value]??{},!n.asRecord):(Object.keys(a).forEach(e=>{delete a[e]}),i.value.forEach(t=>{Object.entries(e[t]).forEach(([e,t])=>{Object.assign(a,{[e]:t})})}),Je(a,!n.asRecord)):Je(e[`~~global`]??{},!n.asRecord)}return{r$:s.r$}}return{useCollectScope:r}}function Xe(t,r){let i=r??Fe;return{useScopedRegle:((r,a,o)=>{let{namespace:s,scopeKey:l,id:u,...f}=o??{};i.__config??={};let p=e(()=>u??l),h=e(()=>m(s)),g=d(`${Object.keys(t.value).length+1}-${Y()}`),_=e(()=>p.value??`instance-${g.value}`),{r$:y}=i(r,a,{...f,id:p.value});x(),re(b),v(h,(e,t)=>{b(t),x()}),n()&&c(()=>{let e=n();typeof window<`u`&&e?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(e?.proxy?.$el?.parentElement)&&b()});function b(e){let n=e??h.value;n?t.value[n]&&delete t.value[n][_.value]:t.value[`~~global`][_.value]&&delete t.value[`~~global`][_.value]}function x(){h.value?(t.value[h.value]||(t.value[h.value]={}),t.value[h.value][_.value]=y):(t.value[`~~global`]||(t.value[`~~global`]={}),t.value[`~~global`][_.value]=y)}return{r$:y,dispose:b,register:x}})}}function Ze(e){let t=(e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):ie(()=>d({"~~global":{}})))(),{useScopedRegle:n}=Xe(t,e?.customUseRegle),{useCollectScope:r}=Ye(t,{asRecord:e?.asRecord});return{useScopedRegle:n,useCollectScope:r}}const{useCollectScope:Qe,useScopedRegle:$e}=Ze(),et=Qe,tt=$e;function nt(t,n,r){let i=e(()=>m(t)[n]);return e(()=>r.find(e=>{if(e[n]&&`literal`in e[n]){let t=e[n].literal;if($(t))return m(t._params?.[0])===i.value}})||r.find(e=>x(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`))||{})}function rt(e,t,n){return!!e&&t in e&&x(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function it(e,t,n,r){let i=a(e)?p(e.value,`$fields`):p(e,`$fields`),o=d();return v(i,async()=>{await s(),rt(i.value,t,n)?o.value=p(e).value:o.value=void 0},{immediate:!0,flush:`pre`}),o}function at(e){return e}function ot(e,t){return n=>C({...e},t(n))}const st={install(e,t){e.provide(se,me),t&&e.provide(X,t)}};export{R as InternalRuleType,st as RegleVuePlugin,U as createRule,Ze as createScopedUseRegle,nt as createVariant,Ge as defineRegleConfig,qe as defineRegleOptions,at as defineRules,Ke as extendRegleConfig,ye as flatErrors,Re as getErrors,ze as getIssues,Le as inferRules,ee as isRegleInstance,Ue as markStatic,Je as mergeRegles,rt as narrowVariant,ot as refineRules,z as unwrapRuleParameters,et as useCollectScope,Fe as useRegle,Me as useRootStorage,He as useRules,tt as useScopedRegle,it as variantToRef};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@regle/core",
3
- "version": "1.24.0",
3
+ "version": "1.24.1-beta.2",
4
4
  "description": "Headless form validation library for Vue",
5
5
  "keywords": [
6
6
  "regle",