@regle/core 1.26.0-beta.6 → 1.26.0-beta.7

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.26.0-beta.6
2
+ * @regle/core v1.26.0-beta.7
3
3
  * (c) 2026 Victor Garcia
4
4
  * @license MIT
5
5
  */
@@ -933,9 +933,9 @@ type $InternalRegleResult = {
933
933
  };
934
934
  type DeepSafeFormState<TState extends Record<string, any>, TRules extends ReglePartialRuleTree<Record<string, any>, CustomRulesDeclarationTree> | undefined> = IsUnknown<TState> extends true ? {} : IsAny<TState> extends true ? unknown : TRules extends undefined ? TState : HasNamedKeys<TState> extends true ? TRules extends ReglePartialRuleTree<TState, CustomRulesDeclarationTree> ? Prettify<{ [K in keyof TState as IsPropertyOutputRequired<TState[K], TRules[K]> extends false ? K : never]?: SafeProperty<TState[K], TRules[K]> extends MaybeInput<infer M> ? MaybeOutput<M> : SafeProperty<TState[K], TRules[K]> } & { [K in keyof TState as IsPropertyOutputRequired<TState[K], TRules[K]> extends false ? never : K]-?: IsUnknown<SafeProperty<TState[K], TRules[K]>> extends true ? unknown : IsAny<TState[K]> extends true ? unknown : NonNullable<SafeProperty<TState[K], TRules[K]>> }> : TState : TState;
935
935
  type FieldHaveRequiredRule<TRule extends RegleFormPropertyType<any, any> | undefined = never> = TRule extends MaybeRefOrComputedRef<RegleRuleDecl<any, any>> ? UnwrapRef<TRule> extends infer TRuleResolved extends Record<string, any> ? { [K in keyof TRuleResolved]-?: TRuleResolved[K] extends RegleRuleDefinition<unknown, any, any[], any, any, any, any, true> ? true : false }[keyof TRuleResolved] extends false ? false : true : false : false;
936
- type ObjectHaveAtLeastOneRequiredField<TState extends Record<string, any>, TRules extends ReglePartialRuleTree<TState, any>> = TState extends Maybe<TState> ? ({ [K in keyof NonNullable<TState>]-?: IsPropertyOutputRequired<NonNullable<TState>[K], TRules[K] extends RegleFormPropertyType<any, any> ? TRules[K] : {}> } & {
936
+ type ObjectHaveAtLeastOneRequiredField<TState extends Record<string, any>, TRules extends ReglePartialRuleTree<TState, any>> = TState extends Maybe<TState> ? ({ [K in keyof TRules & keyof NonNullable<TState>]-?: IsPropertyOutputRequired<NonNullable<TState>[K], TRules[K] extends RegleFormPropertyType<any, any> ? TRules[K] : undefined> } & {
937
937
  $self: IsPropertyOutputRequired<string, TRules['$self']>;
938
- })[keyof TState | '$self'] extends false ? false : true : true;
938
+ })[(keyof TRules & keyof NonNullable<TState>) | '$self'] extends false ? false : true : true;
939
939
  type ArrayHaveAtLeastOneRequiredField<TState extends Maybe<any[]>, TRule extends RegleCollectionRuleDecl<any>> = TState extends Maybe<TState> ? FieldHaveRequiredRule<Omit<TRule, '$each'> extends MaybeRef<RegleRuleDecl> ? Omit<UnwrapRef<TRule>, '$each'> : {}> | ObjectHaveAtLeastOneRequiredField<ArrayElement<NonNullable<TState>>, ExtractFromGetter<TRule['$each']> extends undefined ? {} : NonNullable<ExtractFromGetter<TRule['$each']>>> extends false ? false : true : true;
940
940
  type SafeProperty<TState, TRule extends RegleFormPropertyType<any, any> | undefined> = unknown extends TState ? unknown : [TRule] extends [RegleCollectionRuleDecl<any, any>] ? TState extends Array<infer U extends Record<string, any>> ? DeepSafeFormState<U, ExtractFromGetter<TRule['$each']>>[] : TState : [TRule] extends [ReglePartialRuleTree<any, any>] ? ExtendOnlyRealRecord<TState> extends true ? DeepSafeFormState<NonNullable<TState> extends Record<string, any> ? JoinDiscriminatedUnions<NonNullable<TState>> : {}, TRule> : [TRule] extends [MaybeRef<RegleRuleDecl<any, any>>] ? FieldHaveRequiredRule<UnwrapRef<TRule>> extends true ? TState : MaybeOutput<TState> : TState : TState;
941
941
  type IsPropertyOutputRequired<TState, TRule extends RegleFormPropertyType<any, any> | undefined> = [unknown] extends [TState] ? unknown : NonNullable<TState> extends Array<any> ? TRule extends RegleCollectionRuleDecl<any, any> ? ArrayHaveAtLeastOneRequiredField<NonNullable<TState>, TRule> extends false ? false : true : false : TRule extends ReglePartialRuleTree<any, any> ? ExtendOnlyRealRecord<TState> extends true ? ObjectHaveAtLeastOneRequiredField<NonNullable<TState> extends Record<string, any> ? NonNullable<TState> : {}, TRule extends ReglePartialRuleTree<NonNullable<TState> extends Record<string, any> ? NonNullable<TState> : {}, any> ? TRule : {}> extends false ? false : true : TRule extends MaybeRef<RegleRuleDecl<any, any>> ? FieldHaveRequiredRule<UnwrapRef<TRule>> extends false ? false : true : false : false;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @regle/core v1.26.0-beta.6
2
+ * @regle/core v1.26.0-beta.7
3
3
  * (c) 2026 Victor Garcia
4
4
  * @license MIT
5
5
  */
@@ -756,6 +756,9 @@ const INSPECTOR_IDS = {
756
756
  const regleSymbol = Symbol("regle");
757
757
  const regleConfigSymbol = Symbol("regle-config");
758
758
  const REGLE_FLAGS = { REGLE_STATIC: "__regle_static" };
759
+ function isRegleDevtoolsTestEnv() {
760
+ return Boolean(typeof globalThis !== "undefined" && ("__vitest_worker__" in globalThis || "__JEST_GLOBAL__" in globalThis || typeof window !== "undefined" && "Cypress" in window || typeof process !== "undefined" && process.env && (process.env.VITEST || process.env.JEST_WORKER_ID || process.env.NODE_ENV === "test" || process.env.PLAYWRIGHT_TEST)));
761
+ }
759
762
  /*#__PURE__*/
760
763
  function useRegleDevtoolsRegistry() {
761
764
  const loggedWarning = ref(false);
@@ -837,15 +840,11 @@ const regleDevtoolsRegistry = useRegleDevtoolsRegistry();
837
840
  * To be used by `useRegle` like composables.
838
841
  */
839
842
  function registerRegleInstance(r$, options) {
840
- if (typeof window === "undefined") return () => {};
841
- {
842
- const isTestEnv = typeof globalThis !== "undefined" && ("__vitest_worker__" in globalThis || "__JEST_GLOBAL__" in globalThis || typeof window !== "undefined" && "Cypress" in window || typeof process !== "undefined" && process.env && (process.env.VITEST || process.env.JEST_WORKER_ID || process.env.NODE_ENV === "test" || process.env.PLAYWRIGHT_TEST));
843
- if (isTestEnv) return () => {};
844
- if (!inject(regleSymbol, void 0) && !regleDevtoolsRegistry.loggedWarning.value && !!regleDevtoolsRegistry.devtoolsApi && !isTestEnv) {
845
- regleDevtoolsRegistry.loggedWarning.value = true;
846
- console.warn(`📏 Regle Devtools are not available. Install Regle plugin in your app to enable them. https://reglejs.dev/introduction/devtools`);
847
- return () => {};
848
- }
843
+ if (typeof window === "undefined" || isRegleDevtoolsTestEnv()) return () => {};
844
+ if (!inject(regleSymbol, void 0) && !regleDevtoolsRegistry.loggedWarning.value && !!regleDevtoolsRegistry.devtoolsApi) {
845
+ regleDevtoolsRegistry.loggedWarning.value = true;
846
+ console.warn(`📏 Regle Devtools are not available. Install Regle plugin in your app to enable them. https://reglejs.dev/introduction/devtools`);
847
+ return () => {};
849
848
  }
850
849
  const instance = getCurrentInstance();
851
850
  const componentName = instance?.type?.name || instance?.type?.__name;
@@ -1358,7 +1357,7 @@ function filterInspectorTree(nodes, filter) {
1358
1357
  }
1359
1358
  return filtered;
1360
1359
  }
1361
- var version$1 = "1.26.0-beta.6";
1360
+ var version$1 = "1.26.0-beta.7";
1362
1361
  function createDevtools(app) {
1363
1362
  setupDevtoolsPlugin({
1364
1363
  id: "regle-devtools",
@@ -3660,7 +3659,7 @@ function useRootStorage({ initialState, originalState, options, scopeRules, stat
3660
3659
  startRootStorage();
3661
3660
  bindToCurrentScope();
3662
3661
  function registerDevtools() {
3663
- if (typeof window !== "undefined" && regle.value) registerRegleInstance(regle.value, { name: toValue(options.id) });
3662
+ if (typeof window !== "undefined" && !isRegleDevtoolsTestEnv() && regle.value) registerRegleInstance(regle.value, { name: toValue(options.id) });
3664
3663
  }
3665
3664
  registerDevtools();
3666
3665
  return {
@@ -4711,6 +4710,6 @@ function refineRules(rules, refinement) {
4711
4710
  const RegleVuePlugin = { install(app, options) {
4712
4711
  app.provide(regleSymbol, version$1);
4713
4712
  if (options) app.provide(regleConfigSymbol, options);
4714
- if (typeof window !== "undefined" && true) createDevtools(app);
4713
+ if (typeof window !== "undefined" && !isRegleDevtoolsTestEnv()) createDevtools(app);
4715
4714
  } };
4716
4715
  export { InternalRuleType, RegleVuePlugin, createRule, createScopedUseRegle, createVariant, defineRegleConfig, defineRegleOptions, defineRules, extendRegleConfig, flatErrors, getErrors, getIssues, inferRules, isRegleInstance, markStatic, mergeRegles, narrowVariant, refineRules, unwrapRuleParameters, useCollectScope, useRegle, useRootStorage, useRules, useScopedRegle, variantToRef };
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @regle/core v1.26.0-beta.6
2
+ * @regle/core v1.26.0-beta.7
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,readonly as d,ref as f,shallowRef as p,toRef as m,toValue as h,triggerRef as g,unref as _,version as v,watch as y,watchEffect as b}from"vue";function x(e){return e?.constructor?.name==`File`}function S(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function C(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 w(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 T(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 E(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function D(e,t,n,r=!1){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})}function O(e){return typeof e==`function`&&!!e.prototype&&`constructor`in e.prototype&&e.prototype.constructor===e}function k(e,t=!0,n=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):x(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:S(e)?e==null?!0:n?Object.keys(e).length===0:!1:!String(e).length}const A=Symbol(`regle-rule`);function j(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 M(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=>M(e,t++)))),r==`Map`&&(n=new Map([...e].map(e=>[M(e[0]),M(e[1])]))),r==`Date`&&(n=new Date(e.getTime())),r==`RegExp`&&(n=RegExp(e.source,j(e))),r==`Array`||r==`Object`){n=Array.isArray(e)?[]:{};for(let r in e)n[r]=M(e[r],t++)}return n}function N(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 P(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 F(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(!F(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(S(e)&&S(t)&&s&&(r||!r&&n)&&!F(e[s],t[s],n,!1))return!1}return!0}return e!==e&&t!==t}var I=class extends Error{constructor(e=`Promise was aborted`){super(e),this.name=`AbortError`}};function L(e){let t=new AbortController,{signal:n}=t,r=new Promise((t,r)=>{function i(){r(new I)}n.addEventListener(`abort`,i),e.then(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new I):t(e)}).catch(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new I):r(e)})});function i(e){t.abort(e)}return{promise:r,abort:i,signal:n}}function R(e,t,r){if(!a(e))return r?.(),u(e);let i=f(!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 _(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 z={Inline:`__inline`,Async:`__async`};function B(e){try{return e.map(e=>h(e))}catch{return[]}}function V(t){return t.map(t=>t instanceof Function?e(t):a(t)?t:m(()=>t))}function H(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 U(e,...t){let{validator:n,type:r,async:i}=e,a=i||r===z.Async||n.constructor.name===`AsyncFunction`;return o({validator(n,...r){return e.validator(n,...B(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:B(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:B(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:B(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...B(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:V(t),_brand:A})}function W(e){if(typeof e.validator==`function`){let t=[],n=e.async??e.validator.constructor.name===`AsyncFunction`,r=U({...e,async:n},...t);if(H(e.validator)>1){let t=function(...t){return U(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 G=Symbol.for(`regle:instance`);function K(e){return typeof e==`object`&&!!e&&G in e}function q(e){return S(e.value)}function J(n,r,i){let a=t(),o;return o=n instanceof Function?a.run(()=>({computedEach:e(()=>n(r,i??0))})).computedEach:n,{scope:a,unwrapped:o}}const Y={LessThan:-1,EqualTo:0,GreaterThan:1};function X(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 Y.GreaterThan;if(i>t)return Y.LessThan;if(!isNaN(t)&&isNaN(i))return Y.GreaterThan;if(isNaN(t)&&!isNaN(i))return Y.LessThan}return Y.EqualTo}const Z=X(v,`3.5.0`)!==-1;function ee(){return Math.floor(Math.random()*Date.now()).toString()}function te(){return typeof window>`u`?ee():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function ne(e){return r()?(l(e),!0):!1}function re(e){let n=!1,r,i=t(!0);return((...t)=>(n||=(r=i.run(()=>e(...t)),!0),r))}function ie(e,t){return e.some(e=>t?e?.[t]:!1)}function ae(e,t){return t?e.reduce((e,n)=>{let r=n?.[t]||[];return e.concat(r)},[]):[]}const oe=Symbol(`regle`),Q=Symbol(`regle-config`),$={REGLE_STATIC:`__regle_static`};function se(e,t){return!fe(e.value)&&(q(e)||S(t.value)&&!k(t.value)&&!Object.entries(t.value).some(([e,t])=>ue(t)||typeof t==`function`))}function ce(e,t){return!!e.value&&S(e.value)&&`$each`in e.value||Array.isArray(t.value)}function le(e){return!!e.value&&(S(e.value)||q(e.value))}function ue(e){return(S(e)||typeof e==`function`)&&`_validator`in e}function de(e){return typeof e.value==`function`?`_validator`in e.value:!0}function fe(e){return S(e)&&E(e,$.REGLE_STATIC)&&e[$.REGLE_STATIC]===!0}function pe(e){return S(e)&&`$fields`in e}function me(e){return!!e&&`$rules`in e}var he=`1.26.0-beta.6`;function ge(){let e=p(new Map),t=p(new Map),n=p(new Map),i=p(new Map),a=p(new Map),o=p(new Map),s=p(new Map);function c(e){let n=t.value.get(e);if(n)return n;{let n=f({});return t.value.set(e,n),n}}function u(e){let t=n.value.get(e);if(t)return t;{let t=f([]);return n.value.set(e,t),t}}function d(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=B(`_params`in i&&Array.isArray(i._params)?i._params:[]),n=B(r._params);return e?.[t]===n?.[t]}})}})}function C(e){let t=a.value.get(e);if(t)return t;{let t=f(!1),n=f(!0),r=f({}),i=f(!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:d,getAdditionalRulesEntry:m}}function _e({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 ve({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 ye(e){return S(e)&&`$each`in e}function be(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!S(e)))return e;if(ye(e)){let t=n?e.$self?.map(e=>({message:e,path:[]}))??[]:e.$self??[],r=e.$each?.map(e=>xe(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>xe(t,n,[e])).flat()}function xe(e,t=!1,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(e=>!S(e)))return t?e.map(e=>({message:e,path:r??[]})):e;if(ye(e)){let n=r?.length?e.$self?.map(e=>({message:e,path:r??[]}))??[]:e.$self??[],i=e.$each?.map((e,n)=>xe(e,t,r?.concat(n)))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>xe(n,t,r?.concat(e))).flat()}function Se({customMessages:n,rule:r,ruleKey:i,state:a,path:o,cachePath:s,storage:c,modifiers:l}){let d=t(),p={},m,h=e(()=>ue(r.value)&&r.value._async),g=f(!1),{$pending:_,$valid:v,$metadata:b,$validating:x}=c.trySetRuleStatusRef(`${s}.${i}`);function S(){d=t(),p=d.run(()=>{let t=f(!1),s=f(!1),c=f(!0),l=f(!1),u=f(!1),d=e(()=>({$value:a.value,$error:s.value,$dirty:t.value,$pending:l.value,$correct:u.value,$invalid:c.value,$rule:{$valid:v.value,$invalid:!v.value,$pending:_.value},$params:S.value,...b.value})),p=e(()=>{try{return de(r)?typeof r.value.active==`function`?r.value.active(d.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(d.value):a),de(r)){let n=`_${e}_patched`;a&&!r.value[n]||(t=typeof r.value[e]==`function`?r.value[e](d.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 k(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),y=e(()=>de(r)&&r.value.type?r.value.type:i),x=e(()=>de(r)?r.value.validator:r.value),S=e(()=>typeof r.value==`function`?[]:B(r.value._params??[]));return{$active:p,$message:h,$type:y,$validator:x,$params:S,$path:e(()=>`${o}.${i}`),$tooltip:g,$fieldCorrect:u,$fieldError:s,$fieldDirty:t,$fieldPending:l,$fieldInvalid:c}}),m=y(p?.$params,()=>{(!l.$silent.value||l.$rewardEarly.value&&p.$fieldError.value)&&E()},{deep:Z?1:!0})}S();function C(){v.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(ue(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,ue(r.value)&&r.value._async)e=await w();else{let t=p.$validator.value;e=T(t)}return v.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 O(){v.value=!0,b.value={},_.value=!1,x.value=!1,S()}function A(){m(),d.stop(),d=t()}return u({...p,$pending:_,$valid:v,$metadata:b,$haveAsync:h,$maybePending:g,$validating:x,$parse:E,$parseSync:D,$unwatch:A,$watch:S,$reset:O})}function Ce(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:be(i,{includePath:!0})}}}}}function we(e){return e===!0?`eager`:e===!1||e==null?!1:e}function Te(e){return S(e)&&!fe(e)?Object.values(e).some(e=>Te(e)):Array.isArray(e)?e.some(e=>Te(e)):!k(e)}function Ee(e,t,n){return e===`eager`?!0:e===`non-empty`?Te(n):e===`lazy-non-empty`?Te(t):!1}function De(e,t,n,r=!1){return e===`eager`?!0:e===`non-empty`?r&&!k(n):e===`lazy-non-empty`?!k(t):!1}function Oe({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,fieldName:c,storage:l,options:d,externalErrors:p,schemaErrors:g,schemaMode:_,onUnwatch:v,$isArray:x,initialState:C,rootInitialState:w,originalState:T,shortcuts:E,overrides:D,onValidate:O}){let A=t(),j,I=[],R,z,B,V,H=()=>{},U,W=()=>{},G=f(!1),K=f(l.getAdditionalRulesEntry(o)??{});function q(e){K.value=e??{},l.addAdditionalRulesEntry(o,e??{}),Y(),H()}function J(e){q(e)}function Y(){let e={...r.value,...K.value},t=[];for(let r in e){if(r.startsWith(`$`)||r.startsWith(`~`))continue;let s=e[r];if(!s)continue;let c=m(()=>s);t.push([r,Se({modifiers:{$silent:j.$silent,$rewardEarly:j.$rewardEarly},customMessages:i,rule:c,ruleKey:r,state:n,path:a,cachePath:o,storage:l,$debounce:$.value.$debounce})])}Q.value=Object.fromEntries(t),l.addRuleDeclEntry(o,e)}function X(){let e={...r.value,...K.value},t=l.checkRuleDeclEntry(o,e),n={};for(let t in e)t.startsWith(`$`)&&(n[t]=e[t]);return $.value=n,t}function ee(){let e=X();ie(),Y(),j.processShortcuts(),te(),ne(),e?.valid!=null&&(j.$dirty.value=l.getDirtyState(o),(j.$dirty.value&&!j.$silent.value||j.$rewardEarly.value&&j.$error.value)&&H()),l.addRuleDeclEntry(o,r.value)}function te(){H=j.$debounce.value>0?P(oe,j.$debounce.value,{trackDebounceRef:G}):oe}function ne(){W=j.$debounce.value>0?P(()=>{j.$dirty.value=!0},j.$debounce.value):()=>{j.$dirty.value=!0}}function re(){if(Q.value)for(let e of Object.values(Q.value))e.$unwatch();z(),V?.(),j.$dirty.value&&l.setDirtyEntry(o,j.$dirty.value),R?.(),A.stop(),A=t();for(let e of I)e.stop();I=[],v?.(),B?.()}function ie(){if(Q.value)for(let e of Object.values(Q.value))e.$watch();j=A.run(()=>{let r=f(!1),i=f(!1),a=e(()=>r.value),o=e(()=>x||fe(n.value)),s=e(()=>$.value.$debounce==null?j.$haveAnyAsyncRule.value?200:0:$.value.$debounce),l=e(()=>$.value.$deepCompare==null?!1:$.value.$deepCompare),m=e(()=>$.value.$lazy==null?h(d.lazy)==null?!1:h(d.lazy)===!0:$.value.$lazy),v=e(()=>$.value.$immediateDirty==null?h(d.immediateDirty)==null?!1:we(h(d.immediateDirty)):we($.value.$immediateDirty)),y=e(()=>$.value.$rewardEarly==null?h(d.rewardEarly)==null?!1:h(d.rewardEarly)===!0:!!$.value.$rewardEarly),S=e(()=>$.value.$clearExternalErrorsOnChange==null?h(d.clearExternalErrorsOnChange)==null?!T.value:h(d.clearExternalErrorsOnChange)===!0:!!$.value.$clearExternalErrorsOnChange),w=e(()=>$.value.$clearExternalErrorsOnValidate==null?h(d.clearExternalErrorsOnValidate)==null?!1:h(d.clearExternalErrorsOnValidate)===!0:!!$.value.$clearExternalErrorsOnValidate),T=e(()=>y.value?!0:$.value.$silent==null?h(d.silent)==null?!1:h(d.silent)===!0:$.value.$silent),O=e(()=>$.value.$autoDirty==null?h(d.autoDirty)==null?!0:h(d.autoDirty)===!0:$.value.$autoDirty),A=e(()=>{if($.value.$isEdited!=null)return $.value.$isEdited;if(D?.isEdited!=null)return D.isEdited}),M=e(()=>{for(let e of Object.values(Q.value))if(e.$validating)return!0;return!1}),P=e({get:()=>n.value,set(e){R(),n.value=e,ae()}}),L=e(()=>G.value?X.value&&r.value:X.value&&!Y.value&&r.value),z=e(()=>_e({field:{$rules:Q.value,$error:L.value,$externalErrors:p?.value,$schemaErrors:g?.value,fieldName:Z.value}})),B=e(()=>_e({field:{$rules:Q.value,$error:L.value,$externalErrors:p?.value,$schemaErrors:g?.value,fieldName:Z.value},silent:!0})),V=e(()=>z.value.map(e=>e.$message)),H=e(()=>B.value.map(e=>e.$message)),U=f(!1);function W(e,t){return t instanceof Date&&e instanceof Date?N(t).getTime()!==N(e).getTime():t==null?e!=null&&e!==``:Array.isArray(e)&&Array.isArray(t)?!F(e,t,$.value.$deepCompare):t!==e}b(()=>{r.value?A.value?U.value=A.value(n.value,C.value,W):U.value=W(n.value,C.value):U.value=!1});let K=e(()=>U.value),q=e(()=>ve({field:{$rules:Q.value}})),J=e(()=>!(X.value||Y.value)),Y=e(()=>i.value||!y.value?Object.entries(Q.value).some(([e,t])=>t.$pending):!1),X=e(()=>p?.value?.length||g?.value?.length?!0:ee.value?!1:Object.values(Q.value).some(e=>!e.$valid||e.$maybePending)),Z=e(()=>c??d.id??`root`),ee=e(()=>!_&&!Object.keys(Q.value).some(e=>!e.startsWith(`$`))),te=e(()=>{if(p?.value?.length||ee.value||G.value)return!1;if(r.value&&!k(n.value)&&!M.value&&!Y.value){if(_)return!g?.value?.length;{let e=Object.values(Q.value);for(let t of e)if(t.$active&&!t.$valid)return!1;return e.some(e=>e.$active)}}return!1}),ne=e(()=>Object.values(Q.value).some(e=>e.$haveAsync)),re=e(()=>({$debounce:s.value,$lazy:m.value,$rewardEarly:y.value,$autoDirty:O.value,$silent:T.value,$clearExternalErrorsOnChange:S.value,$clearExternalErrorsOnValidate:w.value,$immediateDirty:v.value,$isEdited:A.value,$disabled:h(d.disabled)??!1}));function ie(){E?.fields&&Object.entries(E.fields).forEach(([e,i])=>{let o=t();oe[e]=o.run(()=>{let e=f();return b(()=>{e.value=i(u({$dirty:r,$externalErrors:p?.value??[],$value:n,$silentValue:P,$rules:Q,$error:L,$pending:Y,$invalid:X,$correct:te,$errors:V,$ready:J,$silentErrors:H,$anyDirty:a,$tooltips:q,$name:Z,$inactive:ee,$edited:U,$anyEdited:K}))}),e}),I.push(o)})}let oe={};return{$error:L,$pending:Y,$invalid:X,$correct:te,$debounce:s,$deepCompare:l,$lazy:m,$immediateDirty:v,$ready:J,$issues:z,$silentIssues:B,$errors:V,$silentErrors:H,$rewardEarly:y,$autoDirty:O,$silent:T,$clearExternalErrorsOnChange:S,$clearExternalErrorsOnValidate:w,$anyDirty:a,$edited:U,$anyEdited:K,$name:Z,$haveAnyAsyncRule:ne,$shortcuts:oe,$validating:M,$tooltips:q,$dirty:r,processShortcuts:ie,$silentValue:P,$inactive:ee,$modifiers:re,$isArrayOrRegleStatic:o}}),ae(),z=y(j.$dirty,e=>{l.setDirtyEntry(o,e),Object.values(Q.value).forEach(t=>{t.$fieldDirty=e})}),V=y([j.$error,j.$correct,j.$invalid,j.$pending],()=>{Object.values(Q.value).forEach(e=>{e.$fieldError=j.$error.value,e.$fieldInvalid=j.$invalid.value,e.$fieldPending=j.$pending.value,e.$fieldCorrect=j.$correct.value})}),B=y(j.$haveAnyAsyncRule,te)}function ae(){R=y(n,()=>{j.$autoDirty.value&&!j.$silent.value&&(j.$dirty.value||W()),r.value instanceof Function&&ee(),(!j.$silent.value||j.$rewardEarly.value&&j.$error.value)&&H(),j.$clearExternalErrorsOnChange.value&&xe()},{deep:j.$isArrayOrRegleStatic.value?!0:Z?1:!0})}async function oe(){try{let{promise:e}=ue(Promise.allSettled(Object.values(Q.value).map(e=>e.$parse())));await e}catch{}}let Q=f({}),$=f({});ee();function se(){De(j.$immediateDirty.value,C.value,w?.value??C.value,a===``)&&(j.$dirty.value=!0)}function ce(e,t){if(le(),xe(),j.$dirty.value=!1,l.setDirtyEntry(o,!1),!t)if(e?.toOriginalState)n.value=M(T),C.value=M(T);else if(e?.toInitialState)n.value=M(C.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,C.value=M(t),n.value=M(t)}else C.value=S(n.value)&&!fe(n.value)?M(n.value):Array.isArray(n.value)?[...n.value]:n.value;if(e?.clearExternalErrors&&xe(),!t&&!e?.keepValidationState)for(let e of Object.values(Q.value))e.$reset();if(!j.$lazy.value&&!j.$silent.value&&!t)for(let e of Object.values(Q.value))e.$parse();se()}function le(){`cancel`in H&&H.cancel()}function ue(e){return U&&U.abort(),U=L(e),U}function de(){le(),U&&U.abort()}function pe(e=!0,t=!1){j.$dirty.value||W(),t&&e?(!j.$silent.value||j.$rewardEarly.value&&j.$error.value)&&(le(),H()):e&&(le(),H())}async function me(e){return e&&(n.value=e),await s(),he()}async function he(e){try{if(e&&(n.value=e),_)return O?(pe(!1),O()):{valid:!1,data:n.value,errors:j.$errors.value,issues:j.$issues.value};let t=n.value;if(j.$autoDirty.value&&!j.$silent.value&&j.$dirty.value&&!j.$validating.value&&!j.$pending.value&&!G.value&&!k(Q.value))return{valid:!j.$invalid.value,data:t,errors:j.$errors.value,issues:j.$issues.value};if(j.$dirty.value||(j.$dirty.value=!0),k(Q.value))return{valid:!0,data:t,errors:j.$errors.value,issues:j.$issues.value};de();let{promise:r}=ue(Promise.allSettled(Object.values(Q.value).map(e=>e.$parse()))),i=await r;return await s(),{valid:i.every(e=>e.status===`fulfilled`&&e.value===!0),data:t,errors:j.$errors.value,issues:j.$issues.value}}catch{return{valid:!1,data:n.value,errors:j.$errors.value,issues:j.$issues.value}}}function ge(e){try{return e&&(n.value=e),j.$dirty.value||(j.$dirty.value=!0),_?!1:Object.values(Q.value).map(e=>e.$parseSync()).every(e=>!!e)}catch{return!1}}function ye(e=!0){return j.$dirty.value?n.value:e?{_null:!0}:null}function be(e){p&&(p.value=e)}function xe(){p?.value?.length&&(p.value=[])}!j.$lazy.value&&!j.$dirty.value&&!j.$silent.value&&oe(),se();let{$shortcuts:Te,$validating:Ee,$autoDirty:Oe,$rewardEarly:ke,$clearExternalErrorsOnChange:Ae,$clearExternalErrorsOnValidate:je,$haveAnyAsyncRule:Me,$debounce:Ne,$lazy:Pe,...Fe}=j,Ie=u({...Fe,$externalErrors:p,$value:n,$output:n,$initialValue:C,$originalValue:T,$rules:Q,...Te,$path:a,$isDebouncing:G,$reset:ce,$touch:pe,$validate:me,$validateSync:ge,$validateWithoutRaceconditions:he,$unwatch:re,$watch:ie,$extractDirtyFields:ye,$clearExternalErrors:xe,$abort:de,$addRules:q,addRules:J,$schemaMode:_,"~modifiers":j.$modifiers,$setExternalErrors:be,...Ce(me)});return Object.defineProperty(Ie,Symbol.for(`regle:instance`),{value:!0}),Ie}function ke({$id:t,path:n,cachePath:r,index:i,options:a,storage:o,stateValue:s,customMessages:c,rules:l,externalErrors:u,schemaErrors:d,initialState:p,originalState:g,shortcuts:_,fieldName:v,schemaMode:y,overrides:b,currentIndexes:x}){let C=e(()=>h(l)),w=s.value?.$id??C.value.$key??te(),T=`${r}.${String(w)}`,E=f(i),D=`${n}.${i}`;typeof s.value==`object`&&s.value!=null&&(s.value.$id||Object.defineProperties(s.value,{$id:{value:w,enumerable:!1,configurable:!1,writable:!1}}));let O=Me({index:i,state:s,rulesDef:C,nestedReactiveRules:!0,customMessages:c,path:D,cachePath:T,storage:o,options:a,externalErrors:m(u?.value??[],i),schemaErrors:e(()=>d?.value?.[E.value]),initialState:p,originalState:g,shortcuts:_,fieldName:v,schemaMode:y,overrides:b});return O&&(O.$id=s.value?.$id??String(w),x?.set(O.$id,E),o.addArrayStatus(t,O.$id,O)),s.value&&(!S(s.value)||fe(s.value))&&y&&O?.$touch(),O}function Ae({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,storage:s,options:c,externalErrors:l,schemaErrors:d,schemaMode:p,initialState:g,originalState:_,shortcuts:v,fieldName:x,overrides:S}){let C=t(),w,T=t(),E,D=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let O=f(),A=f(n.value),j=f({}),N,P,F=f({}),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=>ue(e)||typeof e==`function`):!1:!1)})),R(),H();function R(){j.value=Object.fromEntries(Object.entries(r.value).filter(([e])=>e.startsWith(`$`))),typeof n.value==`object`&&(n.value!=null&&!n.value?.$id&&n.value!==null?(O.value=te(),Object.defineProperties(n.value,{$id:{value:O.value,enumerable:!1,configurable:!1,writable:!1}})):n.value?.$id&&(O.value=n.value.$id)),A.value=F.value.$value,Array.isArray(n.value)&&(!E.isPrimitiveArray.value||p)?I.value=n.value.map((t,n)=>{let{scope:u,unwrapped:f}=J(r.value.$each,m(()=>t),n);u&&D.push(u);let h=m(g.value??[],n),y=m(l?.value??{},`$each`),b=e(()=>d?.value?.$each);return ke({$id:O.value,path:a,cachePath:o,customMessages:i,rules:f??{},stateValue:m(()=>t),index:n,options:c,storage:s,externalErrors:y,schemaErrors:b,initialState:h,originalState:_,shortcuts:v,fieldName:x,schemaMode:p,overrides:S,currentIndexes:L})||null}).filter(e=>!!e):(I.value=[],L.clear()),F.value=Oe({state:n,rulesDef:r,customMessages:i,path:a,cachePath:a,storage:s,options:c,externalErrors:m(l?.value??{},`$self`),schemaErrors:e(()=>d?.value?.$self),$isArray:!0,initialState:g,originalState:_,shortcuts:v,fieldName:x,schemaMode:p,overrides:S})}function z(){if(Array.isArray(n.value)&&(!E.isPrimitiveArray.value||p)){let t=M(I.value),o=new Set;I.value=n.value.map((t,n)=>{let u=m(()=>t);if(t.$id&&I.value.find(e=>e.$id===t.$id)){let e=s.getArrayStatus(O.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:f}=J(r.value.$each,u,n);t&&D.push(t);let h=m(l?.value??{},`$each`),y=e(()=>d?.value?.$each??[]),b=ke({$id:O.value,path:a,cachePath:a,customMessages:i,rules:f??{},stateValue:u,index:n,options:c,storage:s,externalErrors:h,schemaErrors:y,initialState:m(g.value??[],n),originalState:_,shortcuts:v,fieldName:x,schemaMode:p,overrides:S,currentIndexes:L});return b?(b.$id&&o.add(b.$id),b):null}}).filter(e=>!!e),t.filter(e=>!n.value?.find(t=>e.$id===t.$id)).forEach((e,t)=>{s.deleteArrayStatus(O.value,t.toString())});for(let e of L.keys())o.has(e)||L.delete(e)}else I.value=[],L.clear()}function B(){N=y(n,()=>{P?.(),n.value!=null&&!Object.hasOwn(n.value,`$id`)&&!O.value?R():z(),V()},{deep:Z?1:!0,flush:`pre`}),V()}function V(){P=y(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(()=>(p?F.value.$correct:k(F.value.$rules)?!0:F.value.$correct)&&(!I.value.length||I.value.every(e=>e.$correct||e.$anyDirty&&!e.$invalid))),d=e(()=>F.value.$error||I.value.some(e=>e.$error)),m=e(()=>!(s.value||y.value)),y=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)})),O=e(()=>({$self:F.value.$silentErrors,$each:I.value.map(e=>e.$silentErrors)})),A=e(()=>j.value.$rewardEarly==null?h(c.rewardEarly)==null?!1:h(c.rewardEarly)===!0:j.value.$rewardEarly),M=e(()=>A.value?!0:j.value.$silent==null?h(c.silent)==null?!1:h(c.silent)===!0:j.value.$silent),L=e(()=>j.value.$autoDirty==null?h(c.autoDirty)==null?!0:h(c.autoDirty)===!0:j.value.$autoDirty),R=e(()=>j.value.$immediateDirty==null?h(c.immediateDirty)==null?!1:we(h(c.immediateDirty)):we(j.value.$immediateDirty)),z=e(()=>j.value.$clearExternalErrorsOnChange==null?h(c.clearExternalErrorsOnChange)==null?!0:h(c.clearExternalErrorsOnChange)===!0:j.value.$clearExternalErrorsOnChange),V=e(()=>j.value.$clearExternalErrorsOnValidate==null?h(c.clearExternalErrorsOnValidate)==null?!1:h(c.clearExternalErrorsOnValidate)===!0:j.value.$clearExternalErrorsOnValidate),H=e(()=>{if(j.value.$isEdited!=null)return j.value.$isEdited;if(S?.isEdited!=null)return S.isEdited}),U=e(()=>x??c.id??`root`),W=e(()=>({$deepCompare:j.value.$deepCompare??!1,$debounce:j.value.$debounce??0,$lazy:j.value.$lazy??!1,$rewardEarly:A.value,$autoDirty:L.value,$silent:M.value,$clearExternalErrorsOnChange:z.value,$clearExternalErrorsOnValidate:V.value,$immediateDirty:R.value,$isEdited:H.value,$disabled:h(c.disabled)??!1}));function G(){v?.collections&&Object.entries(v?.collections).forEach(([e,c])=>{let p=t();K[e]=p.run(()=>{let e=f();return b(()=>{e.value=c(u({$dirty:i,$error:d,$path:a,$silentValue:r,$pending:y,$invalid:s,$correct:l,$errors:E,$silentErrors:O,$initialValue:g,$originalValue:_,$ready:m,$anyDirty:o,$name:U,$each:I,$self:F,$value:n,$output:n,$edited:C,$anyEdited:w,$issues:T}))}),e}),D.push(p)})}let K={};return G(),{$dirty:i,$anyDirty:o,$invalid:s,$correct:l,$error:d,$pending:y,$errors:E,$silentErrors:O,$ready:m,$name:U,$shortcuts:K,$silentValue:r,$edited:C,$anyEdited:w,$rewardEarly:A,$silent:M,$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=M(_),g.value=M(_);else if(e?.toInitialState)n.value=M(g.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,g.value=M(t),n.value=M(t)}else g.value=M(n.value);e?.clearExternalErrors&&ne(),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),Y()}async function Y(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 X(e){e&&(n.value=e);try{return[F.value.$validateSync(e),...I.value.map(e=>e.$validateSync())].every(e=>!!e)}catch{return!1}}function ee(e){l?.value&&(l.value=e)}function ne(){F.value.$clearExternalErrors(),I.value.forEach(e=>{e.$clearExternalErrors()})}function re(e=!0){let t=I.value.map(t=>{if(pe(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>k(e))&&(t=[]),t}let{$shortcuts:ie,...ae}=w;return u({$self:F,...ae,...ie,$path:a,$each:I,$value:n,$output:n,$initialValue:g,$originalValue:_,$validate:q,$validateSync:X,$validateWithoutRaceconditions:Y,$unwatch:U,$watch:H,$touch:W,$reset:G,$abort:K,$extractDirtyFields:re,$clearExternalErrors:ne,$setExternalErrors:ee,"~modifiers":w.$modifiers,...Ce(q)})}function je({rulesDef:n,state:r,path:i=``,cachePath:a,rootRules:o,externalErrors:c,schemaErrors:l,rootInitialState:p,rootSchemaErrors:g,validationGroups:v,initialState:x,originalState:C,fieldName:w,nestedReactiveRules:T,...E}){let D=t(),O,A=[],j=null,N=null,P=null,F=null,I=f(void 0);async function L(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=m(r.value??{},n),u=m(()=>o),d=m(c?.value??{},n),f=e(()=>l?.value?.[n]),p=m(x?.value??{},n);return t.push([n,Me({state:s,rulesDef:u,path:i?`${i}.${n}`:n,cachePath:a?`${a}.${n}`:n,externalErrors:d,schemaErrors:f,initialState:p,originalState:C?.[n],fieldName:n,...E})]),t},[])),u=Object.fromEntries(Object.entries(h(c)??{}).filter(([e,t])=>!(e in n.value)&&!!t).map(([t])=>{let n=m(r.value??{},t),o=m(c?.value??{},t),s=e(()=>l?.value?.[t]),u=m(x?.value??{},t),d=i?`${i}.${t}`:t,f=a?`${a}.${t}`:t;return[t,Me({state:n,rulesDef:e(()=>({})),path:d,cachePath:f,externalErrors:o,schemaErrors:s,initialState:u,originalState:C?.[t],fieldName:t,...E})]})),d=Object.fromEntries(Object.entries(h(l)??{}).map(([t])=>{let n=i?`${i}.${t}`:t,o=a?`${a}.${t}`:t,s=m(r.value??{},t),u=m(c?.value??{},t),d=e(()=>l?.value?.[t]),f=m(x?.value??{},t);return[t,Me({state:s,rulesDef:e(()=>({})),path:n,cachePath:o,externalErrors:u,schemaErrors:d,initialState:f,originalState:C?.[t],fieldName:t,...E})]})),f=Object.fromEntries(Object.entries(r.value??{}).filter(([e])=>!(e in n.value)&&!(e in(u??{}))&&!(e in(d??{}))).map(([t])=>{let n=m(r.value??{},t),o=m(c?.value??{},t),s=e(()=>l?.value?.[t]),u=m(x?.value??{},t);return[t,Me({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,cachePath:a?`${a}.${t}`:t,externalErrors:o,schemaErrors:s,initialState:u,originalState:C?.[t],fieldName:t,...E})]}));z.value={...s,...u,...d,...f},t&&H()}function R(){n.value.$self&&(I.value=Oe({state:r,rulesDef:e(()=>n.value.$self??{}),path:i,cachePath:a,externalErrors:f(void 0),schemaErrors:f(void 0),initialState:m(x?.value??{},`$self`),originalState:C?.$self,fieldName:`$self`,...E}))}let z=E.storage.getFieldsEntry(a);L(),R();function B(){c&&(P=y(c,()=>{U(),L()},{deep:!0}))}function V(){F=y(r,()=>{U(),L(),O.$autoDirty.value&&!O.$silent.value&&J(!1,!0)},{flush:`post`})}function H(){(o||T)&&(j?.(),j=y(n,()=>{U(),L()},{deep:!0,flush:`pre`}),B()),g&&(N?.(),N=y(()=>g.value?Object.keys(g.value).sort().join(`\0`):``,()=>{U(),L()},{flush:`post`})),V(),O=D.run(()=>{let a=e({get:()=>r.value,set(e){U(),r.value=e,L(),O.$autoDirty.value&&!O.$silent.value&&J(!1,!0)}}),o=d(a),s=e({get:()=>r.value,set(e){U(),r.value=e,L()}}),c=e(()=>{let e=z.value,t=Object.keys(e);if(!t.length)return!1;for(let n of t)if(!e[n]?.$dirty)return!1;return!0}),l=e(()=>{let e=z.value;for(let t in e)if(e[t]?.$anyDirty)return!0;return!1}),p=e(()=>{if(I.value?.$invalid)return!0;let e=z.value,t=Object.entries(e);if(!t.length)return!1;for(let[e,n]of t)if(n?.$invalid)return!0;return!1}),m=e(()=>{let e=Object.entries(z.value).reduce((e,[t,n])=>((!me(n)||!n.$inactive)&&e.push([t,n]),e),[]),t=n.value.$self&&!k(n.value.$self);if(e.length||t){let t=I.value?.$correct??!0,n=!1;return n=E.schemaMode?e.every(([e,t])=>t.$correct):e.every(([e,t])=>me(t)?`required`in t.$rules&&t.$rules.required.$active?t.$correct:!t.$invalid&&!t.$pending&&!t.$isDebouncing:t?.$correct),t&&n}return!1}),g=e(()=>{if(I.value?.$error)return!0;let e=z.value;if(!Object.keys(e).length)return!1;for(let t in e)if(e[t]?.$error)return!0;return!1}),y=e(()=>h(E.options.rewardEarly)==null?!1:h(E.options.rewardEarly)),S=e(()=>h(E.options.silent)==null?!!y.value:h(E.options.silent)===!0),T=e(()=>h(E.options.autoDirty)==null?!0:h(E.options.autoDirty)===!0),D=e(()=>h(E.options.immediateDirty)==null?!1:we(h(E.options.immediateDirty))),j=e(()=>h(E.options.lazy)==null?!1:h(E.options.lazy)===!0),M=e(()=>h(E.options.clearExternalErrorsOnChange)==null?!1:h(E.options.clearExternalErrorsOnChange)===!0),N=e(()=>h(E.options.clearExternalErrorsOnValidate)==null?!1:h(E.options.clearExternalErrorsOnValidate)===!0),P=e(()=>!(p.value||R.value)),F=f(!1),R=e(()=>{if(I.value?.$pending||F.value)return!0;let e=z.value;for(let t in e)if(e[t]?.$pending)return!0;return!1}),B=e(()=>{let e={...I.value&&{$self:I.value?.$issues??[]}};for(let t in z.value)e[t]=z.value[t]?.$issues;return e}),V=e(()=>{let e={...I.value&&{$self:I.value?.$errors??[]}};for(let t in z.value)e[t]=z.value[t]?.$errors;return e}),H=e(()=>{let e={...I.value&&{$self:I.value?.$silentErrors??[]}};for(let t in z.value)e[t]=z.value[t]?.$silentErrors;return e}),W=e(()=>{if(I.value?.$edited)return!0;if(!Object.keys(z.value).length)return!1;for(let e in z.value)if(!z.value[e]?.$edited)return!1;return!0}),G=e(()=>{if(I.value?.$anyEdited)return!0;for(let e in z.value)if(z.value[e]?.$anyEdited)return!0;return!1}),K=e(()=>w??E.options.id??`root`),q=e(()=>({autoDirty:T.value,lazy:j.value,rewardEarly:y.value,silent:S.value,clearExternalErrorsOnChange:M.value,clearExternalErrorsOnValidate:N.value,immediateDirty:D.value,id:h(E.options.id),disabled:h(E.options.disabled)}));function Y(){E.shortcuts?.nested&&Object.entries(E.shortcuts.nested).forEach(([e,n])=>{let a=t();Z[e]=a.run(()=>{let e=f();return b(()=>{e.value=n(u({$dirty:c,$path:i,$value:r,$output:r,$silentValue:s,$error:g,$originalValue:C,$pending:R,$invalid:p,$correct:m,$ready:P,$anyDirty:l,$name:K,$silentErrors:H,$initialValue:x,$errors:V,$fields:z,$edited:W,$anyEdited:G,$issues:B,$self:I,"~modifiers":_(E.options)}))}),e}),A.push(a)})}let X=e({get:()=>v?Object.fromEntries(Object.entries(v?.(z.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(){}}),Z={};return Y(),{$dirty:c,$anyDirty:l,$invalid:p,$correct:m,$error:g,$pending:R,$issues:B,$errors:V,$silentErrors:H,$clearExternalErrorsOnValidate:N,$ready:P,$name:K,$shortcuts:Z,$groups:X,$silentValue:s,$immediateDirty:D,$edited:W,$anyEdited:G,$localPending:F,$autoDirty:T,$silent:S,$value:a,$output:o,$modifiers:q}})}function U(){if(j?.(),P?.(),F?.(),N?.(),A=[],O={},z.value)for(let e of Object.values(z.value))e?.$unwatch()}function W(e){c&&(c.value=e)}function G(){c&&!k(c.value)&&(c.value={})}function K(){O&&O.$immediateDirty.value!==`lazy-non-empty`&&Ee(O.$immediateDirty.value,x.value,p?.value??x.value)&&J(!0,!1)}function q(e,t){if(P?.(),U(),!t)if(e?.toOriginalState)r.value=M({...C}),x.value=M({...C});else if(e?.toInitialState)r.value=M({...x.value});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,x.value=M(t),r.value=M(t)}else x.value=M(r.value);if(!e?.keepValidationState){for(let t of Object.values(z.value))t?.$reset(e,!0);I.value?.$reset(e,!0)}e?.clearExternalErrors===!1&&G(),B(),t||(L(),K())}function J(e=!0,t=!1){for(let n of Object.values(z.value))n?.$touch(e,t);I.value?.$touch(e,t)}function Y(e){return e.filter(([e,t])=>S(t)&&!fe(t)?!(t&&typeof t==`object`&&`_null`in t)&&!k(t):Array.isArray(t)?t.length:!0)}function X(e=!0){let t=Object.entries(z.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=Y(t)),Object.fromEntries(t)}function Z(){for(let e of Object.values(z.value))e.$abort();I.value?.$abort()}async function ee(e){return e&&(r.value=e),await s(),te()}async function te(e){try{if(e&&(r.value=e),E.schemaMode)return E.onValidate?(J(!1),O.$localPending.value=!0,E.onValidate()):{valid:!1,data:r.value,errors:O.$errors.value,issues:O.$issues.value};{let e=r.value;Z(),O.$clearExternalErrorsOnValidate.value&&G();let t=[...Object.values(z.value).map(e=>e.$validateWithoutRaceconditions()),...I.value?[I.value?.$validateWithoutRaceconditions()]:[]];return{valid:(await Promise.allSettled(t)).every(e=>e.status===`fulfilled`&&e?.value?.valid===!0),data:e,errors:O.$errors.value,issues:O.$issues.value}}}catch{return{valid:!1,data:r.value,errors:O.$errors.value,issues:O.$issues.value}}finally{O.$localPending.value=!1}}function ne(e){try{return e&&(r.value=e),O.$clearExternalErrorsOnValidate.value&&G(),[...Object.values(z.value).map(e=>e.$validateSync()),...I.value?[I.value?.$validateSync()]:[]].every(e=>!!e)}catch{return!1}}K();let{$shortcuts:re,$localPending:oe,...Q}=O,$=u({...Q,...re,$path:i,$initialValue:x,$originalValue:C,$self:I,$externalErrors:c,$fields:z,$reset:q,$touch:J,$validate:ee,$unwatch:U,$watch:H,$setExternalErrors:W,$clearExternalErrors:G,$extractDirtyFields:X,$abort:Z,$validateSync:ne,$validateWithoutRaceconditions:te,...o?{"~modifiers":O.$modifiers}:{},...Ce(ee)});return Object.defineProperty($,Symbol.for(`regle:instance`),{value:!0}),b(()=>{for(let e of Object.keys($).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete $[e];for(let e of Object.values(z.value))e?.$name&&Object.assign($,{[e.$name]:e})}),$}function Me({rulesDef:e,...n}){if(ce(e,n.state))return Ae({rulesDef:e,...n});if(se(n.state,e)){if(q(n.state))return je({rulesDef:e,...n});{let r=t().run(()=>{let e=m(n.state.value?n.state:f({}));return y(()=>n.state.value,t=>{e.value=t},{deep:!0}),y(e,e=>{n.state.value=e},{deep:!0}),{fakeState:e}}),{state:i,...a}=n;return je({rulesDef:e,...a,state:r.fakeState})}}else if(le(e))return Oe({rulesDef:a(e.value)?e.value:e,...n})}function Ne({initialState:e,originalState:n,options:i,scopeRules:a,state:o,customRules:c,shortcuts:u,schemaErrors:d,schemaMode:p=!1,onValidate:m,overrides:g}){let _=ge(),v=f(!1),b=new Set,x,C=f(),w=f(),E,D,O;function k(){O=y(()=>h(i.disabled),async e=>{e?F():(N(),j())})}function A(e){D?.(),e&&(S(e)&&Object.keys(e).some(e=>e.includes(`.`))?w.value=T(e):Array.isArray(e)?w.value=e:w.value=e??{}),M()}function j(){E=y(()=>i.externalErrors?.value,A,{deep:!0})}function M(){D=y(()=>w.value,e=>{E?.(),i.externalErrors?.value&&(i.externalErrors.value=e),A(e),j()},{deep:!0})}function N(){se(o,a)?C.value=je({rootRules:a,rulesDef:a,state:o,customMessages:c?.(),storage:_,options:i,rootInitialState:e,externalErrors:w,validationGroups:i.validationGroups,initialState:e,originalState:n,shortcuts:u,fieldName:void 0,path:``,cachePath:``,schemaErrors:d,rootSchemaErrors:d,schemaMode:p,onValidate:m,overrides:g}):le(a)&&(C.value=Oe({rulesDef:a,state:o,customMessages:c?.(),storage:_,options:i,rootInitialState:e,externalErrors:w,initialState:e,originalState:n,shortcuts:u,fieldName:void 0,path:``,cachePath:``,schemaMode:p,schemaErrors:d,onValidate:m,overrides:g}))}function P(){D=void 0,E=void 0,O=void 0}function F(){C.value?.$unwatch(),D?.(),E?.()}function I(){v.value||(v.value=!0,x=t(!0),x.run(()=>{A(i.externalErrors?.value),N(),h(i.disabled)?s().then(()=>{C.value?.$unwatch()}):j(),k()}))}function L(){v.value&&(v.value=!1,F(),O?.(),P(),x?.stop(),x=void 0)}function R(){let e=r();!e||b.has(e)||(v.value||I(),b.add(e),l(()=>{b.delete(e),b.size||L()}))}return I(),R(),{regle:C,bindToCurrentScope:R}}function Pe({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),d=i(Q,void 0)??{},m={...d.modifiers,...o},h=()=>({...d.rules?.(),...s?.()}),_={...d.shortcuts,...c},v={...d.overrides,...l},y={...m,...r},x,C=p(u??{});typeof n==`function`&&(x=b(()=>{C.value=n(t),g(C)}));let w=f(S(t.value)?{...M(t.value)}:M(t.value)),T=S(t.value)?{...M(t.value)}:M(t.value);ne(()=>{x?.()});let{regle:E,bindToCurrentScope:D}=Ne({scopeRules:C,state:t,options:y,initialState:w,originalState:T,customRules:h,shortcuts:_,overrides:v});return{regle:E,bindToCurrentScope:D}}function Fe(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s,c){let l=a(t)?t:f(t),u=e(()=>h(c?.disabled)??!1),{regle:d,bindToCurrentScope:p}=Pe({state:l,rulesFactory:s,options:c,globalOptions:r,customRules:n,shortcuts:i,overrides:o});return{r$:R(d,u,p)}}return s}const Ie=Fe();function Le(){function e(e,t){return t}return e}const Re=Le();function ze(e,t){return C(h(e).$errors,String(t))}function Be(e,t){return C(h(e).$issues,String(t))}function Ve(e){let t={};if(Object.entries(e).some(([e,t])=>ue(t)||typeof t==`function`))return null;for(let n in e){let r=e[n];r&&S(r)&&`$each`in r&&r.$each&&S(r.$each)?t[n]=[Ve(r.$each)]:S(r)&&!k(r)&&!Object.entries(r).some(([e,t])=>ue(t)||typeof t==`function`)?t[n]=Ve(r):t[n]=null}return t}function He(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=f(Ve(c?.value)),u=e(()=>h(s?.disabled)??!1),{regle:d,bindToCurrentScope:p}=Pe({state:l,rulesFactory:c,options:s,globalOptions:r,customRules:n,shortcuts:i,overrides:o});return R(d,u,p)}return s}const Ue=He();function We(e){if(O(e)){let t=e,n=class extends t{constructor(...e){return super(...e),Ge(this)}};return Object.defineProperty(n,`name`,{value:t.name}),Ge(n)}return Ge(e)}function Ge(e){return!E(e,$.REGLE_STATIC)&&Object.isExtensible(e)&&D(e,$.REGLE_STATIC,!0),e}function Ke({rules:e,modifiers:t,shortcuts:n,overrides:r}){let i=Fe({rules:e,modifiers:t,shortcuts:n,overrides:r}),a=He({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:Le(),useRules:a}}function qe(e,{rules:t,modifiers:n,shortcuts:r,overrides:i}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?w(a.modifiers,n):a.modifiers??n,c=a.shortcuts&&r?w(a.shortcuts,r):a.shortcuts??r,l=a.overrides&&i?w(a.overrides,i):a.overrides??i,u=Fe({rules:o,modifiers:s,shortcuts:c,overrides:l});return u.__config={rules:o,modifiers:s,shortcuts:c,overrides:l},{useRegle:u,inferRules:Le()}}function Je(e){return e}function Ye(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)}),y=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,$output:i,$dirty:o,$anyDirty:s,$invalid:c,$correct:l,$error:d,$pending:p,$ready:f,$edited:v,$anyEdited:y,$reset:S,$touch:C,$validate:O,$validateSync:D,$extractDirtyFields:w,$clearExternalErrors:E,$setExternalErrors:T});return b(()=>{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 Xe(t,n){function r(r){let i=e(()=>h(r)),a=u({});c();let o=f(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]={})}))}y(i,c),y(t,e=>{o.value=l(e)},{deep:!0});function l(e){return i.value?typeof i.value==`string`?Ye(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})})}),Ye(a,!n.asRecord)):Ye(e[`~~global`]??{},!n.asRecord)}return{r$:s.r$}}return{useCollectScope:r}}function Ze(t,r){let i=r??Ie;return{useScopedRegle:((r,a,o)=>{let{namespace:s,scopeKey:l,id:u,...d}=o??{};i.__config??={};let p=e(()=>u??l),m=e(()=>h(s)),g=f(`${Object.keys(t.value).length+1}-${te()}`),_=e(()=>p.value??`instance-${g.value}`),{r$:v}=i(r,a,{...d,id:p.value});x(),ne(b),y(m,(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??m.value;n?t.value[n]&&delete t.value[n][_.value]:t.value[`~~global`][_.value]&&delete t.value[`~~global`][_.value]}function x(){m.value?(t.value[m.value]||(t.value[m.value]={}),t.value[m.value][_.value]=v):(t.value[`~~global`]||(t.value[`~~global`]={}),t.value[`~~global`][_.value]=v)}return{r$:v,dispose:b,register:x}})}}function Qe(e){let t=(e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):re(()=>f({"~~global":{}})))(),{useScopedRegle:n}=Ze(t,e?.customUseRegle),{useCollectScope:r}=Xe(t,{asRecord:e?.asRecord});return{useScopedRegle:n,useCollectScope:r}}const{useCollectScope:$e,useScopedRegle:et}=Qe(),tt=$e,nt=et;function rt(t,n,r){let i=e(()=>h(t)[n]);return e(()=>r.find(e=>{if(e[n]&&`literal`in e[n]){let t=e[n].literal;if(ue(t))return h(t._params?.[0])===i.value}})||r.find(e=>S(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`))||{})}function it(e,t,n){return!!e&&t in e&&S(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function at(e,t,n,r){let i=a(e)?m(e.value,`$fields`):m(e,`$fields`),o=f();return y(i,async()=>{await s(),it(i.value,t,n)?o.value=m(e).value:o.value=void 0},{immediate:!0,flush:`pre`}),o}function ot(e){return e}function st(e,t){return n=>w({...e},t(n))}const ct={install(e,t){e.provide(oe,he),t&&e.provide(Q,t)}};export{z as InternalRuleType,ct as RegleVuePlugin,W as createRule,Qe as createScopedUseRegle,rt as createVariant,Ke as defineRegleConfig,Je as defineRegleOptions,ot as defineRules,qe as extendRegleConfig,be as flatErrors,ze as getErrors,Be as getIssues,Re as inferRules,K as isRegleInstance,We as markStatic,Ye as mergeRegles,it as narrowVariant,st as refineRules,B as unwrapRuleParameters,tt as useCollectScope,Ie as useRegle,Ne as useRootStorage,Ue as useRules,nt as useScopedRegle,at 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,readonly as d,ref as f,shallowRef as p,toRef as m,toValue as h,triggerRef as g,unref as _,version as v,watch as y,watchEffect as b}from"vue";import{setupDevtoolsPlugin as x}from"@vue/devtools-api";function S(e){return e?.constructor?.name==`File`}function C(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function w(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 T(e,...t){for(var n=[].slice.call(arguments),r,i=n.length;r=n[i-1],i--;)if(!r||typeof r!=`object`&&typeof r!=`function`)throw Error(`expected object, got `+r);for(var a=n[0],o=n.slice(1),s=o.length,i=0;i<s;i++){var c=o[i];for(var l in c)a[l]=c[l]}return a}function E(e){let t={};for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n],i=n.split(`.`),a=t;for(let e=0;e<i.length;e++){let t=i[e],n=e===i.length-1,o=t.match(/^\d+$/)?Number(t):null;if(o!==null){if(Array.isArray(a))if(n)a[o]=r;else{if(typeof a[o]!=`object`||a[o]===null){let t=i[e+1];a[o]=t&&t.match(/^\d+$/)?{$each:[],$self:[]}:{}}a=`$each`in a[o]?a[o].$each:a[o]}}else if(n)if(Array.isArray(a[t])){let e=a[t].slice();a[t]={},a[t].$self=e}else typeof a[t]==`object`&&a[t]!==null&&`$each`in a[t]?a[t].$self=r:a[t]=r;else{let n=i[e+1];if(Array.isArray(a[t])){let e=a[t].slice();a[t]={$each:[]},a[t].$self=e}(typeof a[t]!=`object`||a[t]===null||Array.isArray(a[t])&&!n.match(/^\d+$/))&&(n&&n.match(/^\d+$/)?a[t]={$each:[],$self:[]}:a[t]={}),a=`$each`in a[t]?a[t].$each:a[t]}}}return t}function D(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function O(e,t,n,r=!1){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})}function k(e){return typeof e==`function`&&!!e.prototype&&`constructor`in e.prototype&&e.prototype.constructor===e}function A(e,t=!0,n=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):S(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:C(e)?e==null?!0:n?Object.keys(e).length===0:!1:!String(e).length}const j=Symbol(`regle-rule`);function M(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 N(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=>N(e,t++)))),r==`Map`&&(n=new Map([...e].map(e=>[N(e[0]),N(e[1])]))),r==`Date`&&(n=new Date(e.getTime())),r==`RegExp`&&(n=RegExp(e.source,M(e))),r==`Array`||r==`Object`){n=Array.isArray(e)?[]:{};for(let r in e)n[r]=N(e[r],t++)}return n}function P(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 F(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 I(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(!I(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(C(e)&&C(t)&&s&&(r||!r&&n)&&!I(e[s],t[s],n,!1))return!1}return!0}return e!==e&&t!==t}var L=class extends Error{constructor(e=`Promise was aborted`){super(e),this.name=`AbortError`}};function R(e){let t=new AbortController,{signal:n}=t,r=new Promise((t,r)=>{function i(){r(new L)}n.addEventListener(`abort`,i),e.then(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new L):t(e)}).catch(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new L):r(e)})});function i(e){t.abort(e)}return{promise:r,abort:i,signal:n}}function z(e,t,r){if(!a(e))return r?.(),u(e);let i=f(!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 _(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 B={Inline:`__inline`,Async:`__async`};function V(e){try{return e.map(e=>h(e))}catch{return[]}}function H(t){return t.map(t=>t instanceof Function?e(t):a(t)?t:m(()=>t))}function U(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 W(e,...t){let{validator:n,type:r,async:i}=e,a=i||r===B.Async||n.constructor.name===`AsyncFunction`;return o({validator(n,...r){return e.validator(n,...V(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:V(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:V(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:V(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...V(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:H(t),_brand:j})}function G(e){if(typeof e.validator==`function`){let t=[],n=e.async??e.validator.constructor.name===`AsyncFunction`,r=W({...e,async:n},...t);if(U(e.validator)>1){let t=function(...t){return W(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 K=Symbol.for(`regle:instance`);function ee(e){return typeof e==`object`&&!!e&&K in e}function q(e){return C(e.value)}function J(n,r,i){let a=t(),o;return o=n instanceof Function?a.run(()=>({computedEach:e(()=>n(r,i??0))})).computedEach:n,{scope:a,unwrapped:o}}const Y={LessThan:-1,EqualTo:0,GreaterThan:1};function X(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 Y.GreaterThan;if(i>t)return Y.LessThan;if(!isNaN(t)&&isNaN(i))return Y.GreaterThan;if(isNaN(t)&&!isNaN(i))return Y.LessThan}return Y.EqualTo}const te=X(v,`3.5.0`)!==-1;function ne(){return Math.floor(Math.random()*Date.now()).toString()}function re(){return typeof window>`u`?ne():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function ie(e){return r()?(l(e),!0):!1}function ae(e){let n=!1,r,i=t(!0);return((...t)=>(n||=(r=i.run(()=>e(...t)),!0),r))}function oe(e,t){return e.some(e=>t?e?.[t]:!1)}function se(e,t){return t?e.reduce((e,n)=>{let r=n?.[t]||[];return e.concat(r)},[]):[]}const Z={ERROR:{text:16777215,bg:15680580},INVALID:{text:16777215,bg:16747520},CORRECT:{text:16777215,bg:1096065},VALID:{text:16777215,bg:292951},PENDING:{text:16777215,bg:16096779},DIRTY:{text:2042167,bg:16708551},COMPONENT:{text:16777215,bg:6514417},PRISTINE:{text:1120295,bg:16777215},INACTIVE:{text:0,bg:11581118},OPTIONAL:{text:0,bg:11581118},DISABLED:{text:15680580,bg:15067115}},Q={PRISTINE:`Field is not touched yet`,DIRTY:`Field have been touched`,ERROR:`Field has errors`,CORRECT:`Field is dirty and all actives rules are valid`,VALID:`Field rules are all valid`,PENDING:`Field is pending`,INACTIVE:`Field is inactive`,OPTIONAL:`Field is not required`,DISABLED:`Validation reactivity is paused by the disabled modifier`},ce={DIRTY:`All nested fields have been touched`,ERROR:`Some nested fields have errors`,CORRECT:`All nested fields are correct`,PENDING:`Some nested fields are pending`},le={INACTIVE:`The rule is not active`,INVALID:`Rule is invalid`,VALID:`Rule is valid`,PENDING:`Rule validator is pending`},ue={ROOT:[`$invalid`,`$dirty`,`$error`,`$pending`,`$valid`,`$ready`],FIELD:[`$value`,`$invalid`,`$dirty`,`$error`,`$pending`,`$errors`]},de={INSPECTOR:`regle-inspector`,COMPONENTS:`components`,TIMELINE:`regle-timeline`},fe=Symbol(`regle`),pe=Symbol(`regle-config`),me={REGLE_STATIC:`__regle_static`};function he(){return!!(typeof globalThis<`u`&&(`__vitest_worker__`in globalThis||`__JEST_GLOBAL__`in globalThis||typeof window<`u`&&`Cypress`in window||typeof process<`u`&&process.env&&(process.env.VITEST||process.env.JEST_WORKER_ID||process.env.NODE_ENV===`test`||process.env.PLAYWRIGHT_TEST)))}function ge(){let e=f(!1),t=p(),n=p(new Map),r=p(new Map),i=p(new Map),a=f(0);function o(e){t.value=e}function s(e,t){let r=t?.filePath??`loose`,o=i.value.get(r),s=o?o+1:1;i.value.set(r,s);let l=`${t?.uid?.toString()??`regle`}#${++a.value}`,u=`r\$ #${t?.name??s}`;n.value.set(l,{id:l,name:u,r$:e,componentName:t?.componentName,filePath:t?.filePath});let d=y(()=>e,()=>c(),{deep:!0,flush:`post`});return $.addWatcher(l,d),window.requestAnimationFrame(()=>{c()}),l}function c(){t.value&&Ue(t.value)}function l(e){let t=r.value.get(e);t&&(t(),r.value.delete(e)),n.value.delete(e),c()}function u(){return Array.from(n.value.values())}function d(e){return n.value.get(e)}function m(){r.value.forEach(e=>e()),r.value.clear(),n.value.clear(),c()}function h(e,t){r.value.set(e,t)}return{devtoolsApi:t,register:s,unregister:l,getAll:u,get:d,clear:m,addWatcher:h,setApi:o,notifyDevtools:c,loggedWarning:e}}const $=ge();function _e(e,t){if(typeof window>`u`||!(typeof __VUE_PROD_DEVTOOLS__<`u`&&__VUE_PROD_DEVTOOLS__)||he())return()=>{};if(!i(fe,void 0)&&!$.loggedWarning.value&&$.devtoolsApi)return $.loggedWarning.value=!0,console.warn(`📏 Regle Devtools are not available. Install Regle plugin in your app to enable them. https://reglejs.dev/introduction/devtools`),()=>{};let r=n(),a=r?.type?.name||r?.type?.__name,o;r&&r.type&&typeof r.type==`object`&&`__file`in r.type&&(o=r.type.__file);let s=$.register(e,{name:t?.name,componentName:a,uid:r?.uid,filePath:o});function c(){$.unregister(s)}return ie(c),c}function ve(e,t){return!Ce(e.value)&&(q(e)||C(t.value)&&!A(t.value)&&!Object.entries(t.value).some(([e,t])=>xe(t)||typeof t==`function`))}function ye(e,t){return!!e.value&&C(e.value)&&`$each`in e.value||Array.isArray(t.value)}function be(e){return!!e.value&&(C(e.value)||q(e.value))}function xe(e){return(C(e)||typeof e==`function`)&&`_validator`in e}function Se(e){return typeof e.value==`function`?`_validator`in e.value:!0}function Ce(e){return C(e)&&D(e,me.REGLE_STATIC)&&e[me.REGLE_STATIC]===!0}function we(e){return C(e)&&`$fields`in e}function Te(e){return!!e&&`$each`in e}function Ee(e){return!!e&&`$rules`in e}function De(e){return typeof e==`function`}function Oe(e,t){return t.filter(t=>t in e&&!De(e[t])).map(t=>{let n=!1;return t===`$value`&&(n=!0),{key:t,value:e[t],editable:n}})}function ke(e,t){return Object.entries(e).filter(([n])=>!t.includes(n)&&n.startsWith(`$`)&&!De(e[n])).map(([e,t])=>({key:e,value:t,editable:!1})).sort((e,t)=>e.key.localeCompare(t.key))}function Ae(e){if(!e.includes(`:field:`))return null;let[t,,n]=e.split(`:`);return{instanceId:t,fieldName:n}}function je(e,t){return`${e}:field:${t}`}function Me(e){if(!e.includes(`:rule:`))return null;let t=e.split(`:rule:`);if(t.length!==2)return null;let n=t[0],r=t[1],i=Ae(n);return i?{...i,ruleName:r}:null}function Ne(e,t,n){return`${je(e,t)}:rule:${n}`}function Pe(e){let t={},n=Oe(e,ue.FIELD);n.length>0&&(t.State=n);let r=ke(e,[...ue.FIELD,`$rules`,`$fields`,`$modifiers`,`$deepCompare`,`$clearExternalErrorsOnValidate`,`$silent`,`$isArrayOrRegleStatic`,`$schemaMode`,`$immediateDirty`]);return r.length>0&&(t[`Other Properties`]=r),e[`~modifiers`]&&(t.Modifiers=Object.entries(e[`~modifiers`]).map(([e,t])=>({key:e,value:t,editable:!1}))),t}function Fe(e){let t={},n=[`$type`,`$valid`,`$active`,`$pending`,`$message`,`$tooltip`],r=Oe(e,n);r.length>0&&(t[`Rule State`]=r),e.$params&&Array.isArray(e.$params)&&e.$params.length>0&&(t.Parameters=[{key:`$params`,value:e.$params,editable:!1}]),e.$metadata!==void 0&&e.$metadata!==!0&&e.$metadata!==!1&&(t.Metadata=[{key:`$metadata`,value:e.$metadata,objectType:`reactive`,editable:!1}]);let i=ke(e,[...n,`$params`,`$metadata`,`$haveAsync`,`$validating`,`$fieldDirty`,`$fieldInvalid`,`$fieldPending`,`$fieldCorrect`,`$fieldError`,`$maybePending`]);return i.length>0&&(t[`Other Properties`]=i),t}function Ie(e){let t={},n=Oe(e,ue.ROOT);n.length>0&&(t.State=n);let r=ke(e,[...ue.ROOT,`$fields`,`$modifiers`,`$path`,`$clearExternalErrorsOnValidate`,`$silent`]);return r.length>0&&(t[`Other Properties`]=r),e[`~modifiers`]&&(t.Modifiers=Object.entries(e[`~modifiers`]).map(([e,t])=>({key:e,value:t,editable:!1}))),t}function Le(e,t){if(!e||!t)return null;let n=t.match(/[^.[\]]+/g);if(!n)return null;let r=e;for(let e of n){if(!r)return null;let t=parseInt(e);if(!isNaN(t))if(Te(r)&&Array.isArray(r.$each))r=r.$each[t];else return null;else if(Te(r)&&r.$self&&r.$self)r=r.$self;else if(we(r)&&r.$fields&&r.$fields[e])r=r.$fields[e];else if(r[e])r=r[e];else return null}return r}function Re(e,t){let n=Me(e);if(n){let{instanceId:e,fieldName:r,ruleName:i}=n,a=t(e);if(!a||!a.r$.$fields)return null;let o=Le(a.r$.$fields,r);if(!o||!(`$rules`in o))return null;let s=o.$rules[i];return s?Fe(s):null}let r=Ae(e);if(r){let{instanceId:e,fieldName:n}=r,i=t(e);if(!i||!i.r$.$fields)return null;let a=Le(i.r$.$fields,n);return a?Pe(a):null}let i=t(e);return i?Ie(i.r$):null}function ze(e){if(e.includes(`:rule:`))return;let t=Ae(e);if(t){let{instanceId:e,fieldName:n}=t,r=$.get(e);if(r&&r.r$.$fields){let e=Le(r.r$.$fields,n);e&&typeof e.$validate==`function`&&e.$validate()}}else{let t=$.get(e);t&&typeof t.r$.$validate==`function`&&t.r$.$validate()}$.notifyDevtools()}function Be(e,t=!1){let n=Ae(e);if(n){let{instanceId:e,fieldName:r}=n,i=$.get(e);if(i&&i.r$.$fields){let e=Le(i.r$.$fields,r);e&&typeof e.$reset==`function`&&e.$reset({toOriginalState:t})}}else{let n=$.get(e);n&&typeof n.r$.$reset==`function`&&n.r$.$reset({toOriginalState:t})}$.notifyDevtools()}function Ve(e){if(e.includes(`:rule:`))return;let t=Ae(e);if(t){let{instanceId:e,fieldName:n}=t,r=$.get(e);if(r&&r.r$.$fields){let e=Le(r.r$.$fields,n);e&&typeof e.$touch==`function`&&e.$touch()}}else{let t=$.get(e);t&&typeof t.r$.$touch==`function`&&t.r$.$touch()}$.notifyDevtools()}function He(e){let{nodeId:t,path:n,state:r}=e;if(!n.includes(`$value`)||!Ae(t))return;let[i,a,o]=t?.split(`:`)??[],s=$.get(i);if(s&&s.r$.$fields){let e=Le(s.r$.$fields,o);e&&`$value`in e&&(e.$value=r.value)}}async function Ue(e){e.sendInspectorTree(de.INSPECTOR),e.sendInspectorState(de.INSPECTOR)}function We(e,t){let n=[],r=!1;Ee(e)?r=e[`~modifiers`]?.$disabled??!1:we(e)?r=e[`~modifiers`]?.disabled??!1:Te(e)&&(r=e[`~modifiers`]?.$disabled??!1);let i=Ee(e)?(`required`in e.$rules&&!e.$rules.required.$active||A(e.$rules))&&!e.$schemaMode:!1,a=we(e)||Te(e);return e.$error?n.push({label:`error`,textColor:Z.ERROR.text,backgroundColor:Z.ERROR.bg,tooltip:a?ce.ERROR:Q.ERROR}):e.$correct&&n.push({label:`correct`,textColor:Z.CORRECT.text,backgroundColor:Z.CORRECT.bg,tooltip:a?ce.CORRECT:Q.CORRECT}),e.$pending&&n.push({label:`pending`,textColor:Z.PENDING.text,backgroundColor:Z.PENDING.bg,tooltip:a?ce.PENDING:Q.PENDING}),r&&n.push({label:`disabled`,textColor:Z.DISABLED.text,backgroundColor:Z.DISABLED.bg,tooltip:Q.DISABLED}),i&&(n.push({label:`optional`,textColor:Z.OPTIONAL.text,backgroundColor:Z.OPTIONAL.bg,tooltip:Q.OPTIONAL}),!e.$invalid&&e.$dirty&&n.push({label:`valid`,textColor:Z.VALID.text,backgroundColor:Z.VALID.bg,tooltip:Q.VALID})),e.$dirty?n.push({label:`dirty`,textColor:Z.DIRTY.text,backgroundColor:Z.DIRTY.bg,tooltip:a?ce.DIRTY:Q.DIRTY}):i||n.push({label:`pristine`,textColor:Z.PRISTINE.text,backgroundColor:Z.PRISTINE.bg,tooltip:Q.PRISTINE}),t&&n.push({label:`<${t}.vue>`,textColor:Z.COMPONENT.text,backgroundColor:Z.COMPONENT.bg}),n}function Ge(e){let t=[];return e.$active?e.$valid?e.$valid&&t.push({label:`valid`,textColor:Z.VALID.text,backgroundColor:Z.VALID.bg,tooltip:le.VALID}):t.push({label:`invalid`,textColor:Z.INVALID.text,backgroundColor:Z.INVALID.bg,tooltip:le.INVALID}):t.push({label:`inactive`,textColor:Z.INACTIVE.text,backgroundColor:Z.INACTIVE.bg,tooltip:le.INACTIVE}),e.$pending&&t.push({label:`pending`,textColor:Z.PENDING.text,backgroundColor:Z.PENDING.bg,tooltip:le.PENDING}),t}function Ke(e,t,n){let r=[];return!e.$rules||typeof e.$rules!=`object`||Object.entries(e.$rules).forEach(([e,i])=>{if(i&&typeof i==`object`){let a=Ge(i);r.push({id:Ne(t,n,e),label:`⚙️ ${e}`,tags:a,children:[]})}}),r}function qe(e,t,n){let r=[];if(!e.$each||!Array.isArray(e.$each))return r;if(e.$each.forEach((e,i)=>{if(e&&typeof e==`object`){let a=We(e),o=`${n}[${i}]`,s=[];we(e)?s=Je(e.$fields,t,o):Ee(e)&&(s=Ke(e,t,o)),r.push({id:je(t,o),label:`[${i}]`,tags:a,children:s})}}),e.$self&&typeof e.$self==`object`){let i=We(e.$self),a=`${n}[$self]`;r.unshift({id:je(t,a),label:`$self`,tags:i,children:Ke(e.$self,t,a)})}return r}function Je(e,t,n){let r=[];return Object.entries(e).forEach(([e,i])=>{if(i&&typeof i==`object`){let a=n?`${n}.${e}`:e,o=We(i),s=!1,c=!1,l=[];Te(i)?(l=qe(i,t,a),s=!0,l.length===0&&(c=!0)):we(i)?l=Je({...i.$fields,...i.$self&&{$self:i.$self}},t,a):Ee(i)&&(l=Ke(i,t,a));let u=l.filter(e=>e.label!==`$self`);r.push({id:je(t,a),label:`${s?`${e}[${u.length}]`:e}${c?` (empty)`:``}`,tags:o,children:l})}}),r}function Ye(e,t){let n=[];return Ee(e)?Ke(e,t,`root`):(!(`$fields`in e)||typeof e.$fields!=`object`||Object.entries(e.$fields).forEach(([e,r])=>{if(r&&typeof r==`object`){let i=We(r),a=[],o=!1;Te(r)?(a=qe(r,t,e),o=!0):we(r)?a=Je({...r.$fields,...r.$self&&{$self:r.$self}},t,e):Ee(r)&&(a=Ke(r,t,e));let s=a.filter(e=>e.label!==`$self`);n.push({id:je(t,e),label:`${o?`${e}[${s.length}]`:e}`,tags:i,children:a})}}),n)}function Xe(e,t){let n=e.map(e=>{let{r$:t,id:n,name:r,componentName:i}=e;return{id:n,label:r,tags:We(t,i),children:Ye(t,n)}});return!t||t.trim()===``?n:Ze(n,t)}function Ze(e,t){let n=t.toLowerCase(),r=[];for(let i of e){let e=i.label.toLowerCase().includes(n),a=i.tags?.some(e=>e.label.toLowerCase().includes(n))??!1,o=i.children?Ze(i.children,t):[];(e||a||o.length>0)&&r.push({...i,children:o.length>0?o:i.children})}return r}var Qe=`1.26.0-beta.7`;function $e(e){x({id:`regle-devtools`,label:`Regle`,logo:`https://reglejs.dev/logo_main.png`,packageName:`@regle/core`,homepage:`https://reglejs.dev`,componentStateTypes:[`Regles`],app:e},e=>{$.setApi(e),e.addInspector({id:de.INSPECTOR,label:`Regle`,noSelectionText:`No instance selected`,icon:`rule`,treeFilterPlaceholder:`Filter state`,stateFilterPlaceholder:`Filter validation status`,actions:[{icon:`confirmation_number`,tooltip:`Log Regle version`,action:()=>{console.info(`Regle version`,Qe)}}],nodeActions:[{icon:`check`,tooltip:`Validate`,action:e=>{ze(e)}},{icon:`touch_app`,action:e=>{Ve(e)},tooltip:`Touch the instance with $touch`},{icon:`refresh`,tooltip:`Reset validation state`,action:e=>{Be(e)}},{icon:`restore`,tooltip:`Restore to original state`,action:e=>{Be(e,!0)}}]}),$.notifyDevtools(),e.on.getInspectorTree(async e=>{if(e.inspectorId===de.INSPECTOR){let t=Xe($.getAll(),e.filter);t.length>0?e.rootNodes=t:e.rootNodes=[{id:`empty-regles`,label:`No Regles instances found`,children:[]}]}}),e.on.getInspectorState(t=>{if(t.inspectorId===de.INSPECTOR){let n=Re(t.nodeId,e=>$.get(e));n||e.sendInspectorTree(de.INSPECTOR),n?t.state=n:t.state={}}}),e.on.editInspectorState(e=>{e.inspectorId===de.INSPECTOR&&He(e)})})}function et(){let e=p(new Map),t=p(new Map),n=p(new Map),i=p(new Map),a=p(new Map),o=p(new Map),s=p(new Map);function c(e){let n=t.value.get(e);if(n)return n;{let n=f({});return t.value.set(e,n),n}}function u(e){let t=n.value.get(e);if(t)return t;{let t=f([]);return n.value.set(e,t),t}}function d(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=V(`_params`in i&&Array.isArray(i._params)?i._params:[]),n=V(r._params);return e?.[t]===n?.[t]}})}})}function C(e){let t=a.value.get(e);if(t)return t;{let t=f(!1),n=f(!0),r=f({}),i=f(!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:d,getAdditionalRulesEntry:m}}function tt({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 nt({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 rt(e){return C(e)&&`$each`in e}function it(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!C(e)))return e;if(rt(e)){let t=n?e.$self?.map(e=>({message:e,path:[]}))??[]:e.$self??[],r=e.$each?.map(e=>at(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>at(t,n,[e])).flat()}function at(e,t=!1,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(e=>!C(e)))return t?e.map(e=>({message:e,path:r??[]})):e;if(rt(e)){let n=r?.length?e.$self?.map(e=>({message:e,path:r??[]}))??[]:e.$self??[],i=e.$each?.map((e,n)=>at(e,t,r?.concat(n)))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>at(n,t,r?.concat(e))).flat()}function ot({customMessages:n,rule:r,ruleKey:i,state:a,path:o,cachePath:s,storage:c,modifiers:l}){let d=t(),p={},m,h=e(()=>xe(r.value)&&r.value._async),g=f(!1),{$pending:_,$valid:v,$metadata:b,$validating:x}=c.trySetRuleStatusRef(`${s}.${i}`);function S(){d=t(),p=d.run(()=>{let t=f(!1),s=f(!1),c=f(!0),l=f(!1),u=f(!1),d=e(()=>({$value:a.value,$error:s.value,$dirty:t.value,$pending:l.value,$correct:u.value,$invalid:c.value,$rule:{$valid:v.value,$invalid:!v.value,$pending:_.value},$params:S.value,...b.value})),p=e(()=>{try{return Se(r)?typeof r.value.active==`function`?r.value.active(d.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(d.value):a),Se(r)){let n=`_${e}_patched`;a&&!r.value[n]||(t=typeof r.value[e]==`function`?r.value[e](d.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 A(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),y=e(()=>Se(r)&&r.value.type?r.value.type:i),x=e(()=>Se(r)?r.value.validator:r.value),S=e(()=>typeof r.value==`function`?[]:V(r.value._params??[]));return{$active:p,$message:h,$type:y,$validator:x,$params:S,$path:e(()=>`${o}.${i}`),$tooltip:g,$fieldCorrect:u,$fieldError:s,$fieldDirty:t,$fieldPending:l,$fieldInvalid:c}}),m=y(p?.$params,()=>{(!l.$silent.value||l.$rewardEarly.value&&p.$fieldError.value)&&E()},{deep:te?1:!0})}S();function C(){v.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(xe(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,xe(r.value)&&r.value._async)e=await w();else{let t=p.$validator.value;e=T(t)}return v.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 O(){v.value=!0,b.value={},_.value=!1,x.value=!1,S()}function k(){m(),d.stop(),d=t()}return u({...p,$pending:_,$valid:v,$metadata:b,$haveAsync:h,$maybePending:g,$validating:x,$parse:E,$parseSync:D,$unwatch:k,$watch:S,$reset:O})}function st(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:it(i,{includePath:!0})}}}}}function ct(e){return e===!0?`eager`:e===!1||e==null?!1:e}function lt(e){return C(e)&&!Ce(e)?Object.values(e).some(e=>lt(e)):Array.isArray(e)?e.some(e=>lt(e)):!A(e)}function ut(e,t,n){return e===`eager`?!0:e===`non-empty`?lt(n):e===`lazy-non-empty`?lt(t):!1}function dt(e,t,n,r=!1){return e===`eager`?!0:e===`non-empty`?r&&!A(n):e===`lazy-non-empty`?!A(t):!1}function ft({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,fieldName:c,storage:l,options:d,externalErrors:p,schemaErrors:g,schemaMode:_,onUnwatch:v,$isArray:x,initialState:S,rootInitialState:w,originalState:T,shortcuts:E,overrides:D,onValidate:O}){let k=t(),j,M=[],L,z,B,V,H=()=>{},U,W=()=>{},G=f(!1),K=f(l.getAdditionalRulesEntry(o)??{});function ee(e){K.value=e??{},l.addAdditionalRulesEntry(o,e??{}),J(),H()}function q(e){ee(e)}function J(){let e={...r.value,...K.value},t=[];for(let r in e){if(r.startsWith(`$`)||r.startsWith(`~`))continue;let s=e[r];if(!s)continue;let c=m(()=>s);t.push([r,ot({modifiers:{$silent:j.$silent,$rewardEarly:j.$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 Y(){let e={...r.value,...K.value},t=l.checkRuleDeclEntry(o,e),n={};for(let t in e)t.startsWith(`$`)&&(n[t]=e[t]);return Q.value=n,t}function X(){let e=Y();ae(),J(),j.processShortcuts(),ne(),re(),e?.valid!=null&&(j.$dirty.value=l.getDirtyState(o),(j.$dirty.value&&!j.$silent.value||j.$rewardEarly.value&&j.$error.value)&&H()),l.addRuleDeclEntry(o,r.value)}function ne(){H=j.$debounce.value>0?F(se,j.$debounce.value,{trackDebounceRef:G}):se}function re(){W=j.$debounce.value>0?F(()=>{j.$dirty.value=!0},j.$debounce.value):()=>{j.$dirty.value=!0}}function ie(){if(Z.value)for(let e of Object.values(Z.value))e.$unwatch();z(),V?.(),j.$dirty.value&&l.setDirtyEntry(o,j.$dirty.value),L?.(),k.stop(),k=t();for(let e of M)e.stop();M=[],v?.(),B?.()}function ae(){if(Z.value)for(let e of Object.values(Z.value))e.$watch();j=k.run(()=>{let r=f(!1),i=f(!1),a=e(()=>r.value),o=e(()=>x||Ce(n.value)),s=e(()=>Q.value.$debounce==null?j.$haveAnyAsyncRule.value?200:0:Q.value.$debounce),l=e(()=>Q.value.$deepCompare==null?!1:Q.value.$deepCompare),m=e(()=>Q.value.$lazy==null?h(d.lazy)==null?!1:h(d.lazy)===!0:Q.value.$lazy),v=e(()=>Q.value.$immediateDirty==null?h(d.immediateDirty)==null?!1:ct(h(d.immediateDirty)):ct(Q.value.$immediateDirty)),y=e(()=>Q.value.$rewardEarly==null?h(d.rewardEarly)==null?!1:h(d.rewardEarly)===!0:!!Q.value.$rewardEarly),C=e(()=>Q.value.$clearExternalErrorsOnChange==null?h(d.clearExternalErrorsOnChange)==null?!T.value:h(d.clearExternalErrorsOnChange)===!0:!!Q.value.$clearExternalErrorsOnChange),w=e(()=>Q.value.$clearExternalErrorsOnValidate==null?h(d.clearExternalErrorsOnValidate)==null?!1:h(d.clearExternalErrorsOnValidate)===!0:!!Q.value.$clearExternalErrorsOnValidate),T=e(()=>y.value?!0:Q.value.$silent==null?h(d.silent)==null?!1:h(d.silent)===!0:Q.value.$silent),O=e(()=>Q.value.$autoDirty==null?h(d.autoDirty)==null?!0:h(d.autoDirty)===!0:Q.value.$autoDirty),k=e(()=>{if(Q.value.$isEdited!=null)return Q.value.$isEdited;if(D?.isEdited!=null)return D.isEdited}),N=e(()=>{for(let e of Object.values(Z.value))if(e.$validating)return!0;return!1}),F=e({get:()=>n.value,set(e){L(),n.value=e,oe()}}),R=e(()=>G.value?Y.value&&r.value:Y.value&&!J.value&&r.value),z=e(()=>tt({field:{$rules:Z.value,$error:R.value,$externalErrors:p?.value,$schemaErrors:g?.value,fieldName:X.value}})),B=e(()=>tt({field:{$rules:Z.value,$error:R.value,$externalErrors:p?.value,$schemaErrors:g?.value,fieldName:X.value},silent:!0})),V=e(()=>z.value.map(e=>e.$message)),H=e(()=>B.value.map(e=>e.$message)),U=f(!1);function W(e,t){return t instanceof Date&&e instanceof Date?P(t).getTime()!==P(e).getTime():t==null?e!=null&&e!==``:Array.isArray(e)&&Array.isArray(t)?!I(e,t,Q.value.$deepCompare):t!==e}b(()=>{r.value?k.value?U.value=k.value(n.value,S.value,W):U.value=W(n.value,S.value):U.value=!1});let K=e(()=>U.value),ee=e(()=>nt({field:{$rules:Z.value}})),q=e(()=>!(Y.value||J.value)),J=e(()=>i.value||!y.value?Object.entries(Z.value).some(([e,t])=>t.$pending):!1),Y=e(()=>p?.value?.length||g?.value?.length?!0:te.value?!1:Object.values(Z.value).some(e=>!e.$valid||e.$maybePending)),X=e(()=>c??d.id??`root`),te=e(()=>!_&&!Object.keys(Z.value).some(e=>!e.startsWith(`$`))),ne=e(()=>{if(p?.value?.length||te.value||G.value)return!1;if(r.value&&!A(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}),re=e(()=>Object.values(Z.value).some(e=>e.$haveAsync)),ie=e(()=>({$debounce:s.value,$lazy:m.value,$rewardEarly:y.value,$autoDirty:O.value,$silent:T.value,$clearExternalErrorsOnChange:C.value,$clearExternalErrorsOnValidate:w.value,$immediateDirty:v.value,$isEdited:k.value,$disabled:h(d.disabled)??!1}));function ae(){E?.fields&&Object.entries(E.fields).forEach(([e,i])=>{let o=t();se[e]=o.run(()=>{let e=f();return b(()=>{e.value=i(u({$dirty:r,$externalErrors:p?.value??[],$value:n,$silentValue:F,$rules:Z,$error:R,$pending:J,$invalid:Y,$correct:ne,$errors:V,$ready:q,$silentErrors:H,$anyDirty:a,$tooltips:ee,$name:X,$inactive:te,$edited:U,$anyEdited:K}))}),e}),M.push(o)})}let se={};return{$error:R,$pending:J,$invalid:Y,$correct:ne,$debounce:s,$deepCompare:l,$lazy:m,$immediateDirty:v,$ready:q,$issues:z,$silentIssues:B,$errors:V,$silentErrors:H,$rewardEarly:y,$autoDirty:O,$silent:T,$clearExternalErrorsOnChange:C,$clearExternalErrorsOnValidate:w,$anyDirty:a,$edited:U,$anyEdited:K,$name:X,$haveAnyAsyncRule:re,$shortcuts:se,$validating:N,$tooltips:ee,$dirty:r,processShortcuts:ae,$silentValue:F,$inactive:te,$modifiers:ie,$isArrayOrRegleStatic:o}}),oe(),z=y(j.$dirty,e=>{l.setDirtyEntry(o,e),Object.values(Z.value).forEach(t=>{t.$fieldDirty=e})}),V=y([j.$error,j.$correct,j.$invalid,j.$pending],()=>{Object.values(Z.value).forEach(e=>{e.$fieldError=j.$error.value,e.$fieldInvalid=j.$invalid.value,e.$fieldPending=j.$pending.value,e.$fieldCorrect=j.$correct.value})}),B=y(j.$haveAnyAsyncRule,ne)}function oe(){L=y(n,()=>{j.$autoDirty.value&&!j.$silent.value&&(j.$dirty.value||W()),r.value instanceof Function&&X(),(!j.$silent.value||j.$rewardEarly.value&&j.$error.value)&&H(),j.$clearExternalErrorsOnChange.value&&ve()},{deep:j.$isArrayOrRegleStatic.value?!0:te?1:!0})}async function se(){try{let{promise:e}=de(Promise.allSettled(Object.values(Z.value).map(e=>e.$parse())));await e}catch{}}let Z=f({}),Q=f({});X();function ce(){dt(j.$immediateDirty.value,S.value,w?.value??S.value,a===``)&&(j.$dirty.value=!0)}function le(e,t){if(ue(),ve(),j.$dirty.value=!1,l.setDirtyEntry(o,!1),!t)if(e?.toOriginalState)n.value=N(T),S.value=N(T);else if(e?.toInitialState)n.value=N(S.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,S.value=N(t),n.value=N(t)}else S.value=C(n.value)&&!Ce(n.value)?N(n.value):Array.isArray(n.value)?[...n.value]:n.value;if(e?.clearExternalErrors&&ve(),!t&&!e?.keepValidationState)for(let e of Object.values(Z.value))e.$reset();if(!j.$lazy.value&&!j.$silent.value&&!t)for(let e of Object.values(Z.value))e.$parse();ce()}function ue(){`cancel`in H&&H.cancel()}function de(e){return U&&U.abort(),U=R(e),U}function fe(){ue(),U&&U.abort()}function pe(e=!0,t=!1){j.$dirty.value||W(),t&&e?(!j.$silent.value||j.$rewardEarly.value&&j.$error.value)&&(ue(),H()):e&&(ue(),H())}async function me(e){return e&&(n.value=e),await s(),he()}async function he(e){try{if(e&&(n.value=e),_)return O?(pe(!1),O()):{valid:!1,data:n.value,errors:j.$errors.value,issues:j.$issues.value};let t=n.value;if(j.$autoDirty.value&&!j.$silent.value&&j.$dirty.value&&!j.$validating.value&&!j.$pending.value&&!G.value&&!A(Z.value))return{valid:!j.$invalid.value,data:t,errors:j.$errors.value,issues:j.$issues.value};if(j.$dirty.value||(j.$dirty.value=!0),A(Z.value))return{valid:!0,data:t,errors:j.$errors.value,issues:j.$issues.value};fe();let{promise:r}=de(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:j.$errors.value,issues:j.$issues.value}}catch{return{valid:!1,data:n.value,errors:j.$errors.value,issues:j.$issues.value}}}function ge(e){try{return e&&(n.value=e),j.$dirty.value||(j.$dirty.value=!0),_?!1:Object.values(Z.value).map(e=>e.$parseSync()).every(e=>!!e)}catch{return!1}}function $(e=!0){return j.$dirty.value?n.value:e?{_null:!0}:null}function _e(e){p&&(p.value=e)}function ve(){p?.value?.length&&(p.value=[])}!j.$lazy.value&&!j.$dirty.value&&!j.$silent.value&&se(),ce();let{$shortcuts:ye,$validating:be,$autoDirty:xe,$rewardEarly:Se,$clearExternalErrorsOnChange:we,$clearExternalErrorsOnValidate:Te,$haveAnyAsyncRule:Ee,$debounce:De,$lazy:Oe,...ke}=j,Ae=u({...ke,$externalErrors:p,$value:n,$output:n,$initialValue:S,$originalValue:T,$rules:Z,...ye,$path:a,$isDebouncing:G,$reset:le,$touch:pe,$validate:me,$validateSync:ge,$validateWithoutRaceconditions:he,$unwatch:ie,$watch:ae,$extractDirtyFields:$,$clearExternalErrors:ve,$abort:fe,$addRules:ee,addRules:q,$schemaMode:_,"~modifiers":j.$modifiers,$setExternalErrors:_e,...st(me)});return Object.defineProperty(Ae,Symbol.for(`regle:instance`),{value:!0}),Ae}function pt({$id:t,path:n,cachePath:r,index:i,options:a,storage:o,stateValue:s,customMessages:c,rules:l,externalErrors:u,schemaErrors:d,initialState:p,originalState:g,shortcuts:_,fieldName:v,schemaMode:y,overrides:b,currentIndexes:x}){let S=e(()=>h(l)),w=s.value?.$id??S.value.$key??re(),T=`${r}.${String(w)}`,E=f(i),D=`${n}.${i}`;typeof s.value==`object`&&s.value!=null&&(s.value.$id||Object.defineProperties(s.value,{$id:{value:w,enumerable:!1,configurable:!1,writable:!1}}));let O=gt({index:i,state:s,rulesDef:S,nestedReactiveRules:!0,customMessages:c,path:D,cachePath:T,storage:o,options:a,externalErrors:m(u?.value??[],i),schemaErrors:e(()=>d?.value?.[E.value]),initialState:p,originalState:g,shortcuts:_,fieldName:v,schemaMode:y,overrides:b});return O&&(O.$id=s.value?.$id??String(w),x?.set(O.$id,E),o.addArrayStatus(t,O.$id,O)),s.value&&(!C(s.value)||Ce(s.value))&&y&&O?.$touch(),O}function mt({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,storage:s,options:c,externalErrors:l,schemaErrors:d,schemaMode:p,initialState:g,originalState:_,shortcuts:v,fieldName:x,overrides:S}){let C=t(),w,T=t(),E,D=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let O=f(),k=f(n.value),j=f({}),M,P,F=f({}),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=>xe(e)||typeof e==`function`):!1:!1)})),R(),H();function R(){j.value=Object.fromEntries(Object.entries(r.value).filter(([e])=>e.startsWith(`$`))),typeof n.value==`object`&&(n.value!=null&&!n.value?.$id&&n.value!==null?(O.value=re(),Object.defineProperties(n.value,{$id:{value:O.value,enumerable:!1,configurable:!1,writable:!1}})):n.value?.$id&&(O.value=n.value.$id)),k.value=F.value.$value,Array.isArray(n.value)&&(!E.isPrimitiveArray.value||p)?I.value=n.value.map((t,n)=>{let{scope:u,unwrapped:f}=J(r.value.$each,m(()=>t),n);u&&D.push(u);let h=m(g.value??[],n),y=m(l?.value??{},`$each`),b=e(()=>d?.value?.$each);return pt({$id:O.value,path:a,cachePath:o,customMessages:i,rules:f??{},stateValue:m(()=>t),index:n,options:c,storage:s,externalErrors:y,schemaErrors:b,initialState:h,originalState:_,shortcuts:v,fieldName:x,schemaMode:p,overrides:S,currentIndexes:L})||null}).filter(e=>!!e):(I.value=[],L.clear()),F.value=ft({state:n,rulesDef:r,customMessages:i,path:a,cachePath:a,storage:s,options:c,externalErrors:m(l?.value??{},`$self`),schemaErrors:e(()=>d?.value?.$self),$isArray:!0,initialState:g,originalState:_,shortcuts:v,fieldName:x,schemaMode:p,overrides:S})}function z(){if(Array.isArray(n.value)&&(!E.isPrimitiveArray.value||p)){let t=N(I.value),o=new Set;I.value=n.value.map((t,n)=>{let u=m(()=>t);if(t.$id&&I.value.find(e=>e.$id===t.$id)){let e=s.getArrayStatus(O.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:f}=J(r.value.$each,u,n);t&&D.push(t);let h=m(l?.value??{},`$each`),y=e(()=>d?.value?.$each??[]),b=pt({$id:O.value,path:a,cachePath:a,customMessages:i,rules:f??{},stateValue:u,index:n,options:c,storage:s,externalErrors:h,schemaErrors:y,initialState:m(g.value??[],n),originalState:_,shortcuts:v,fieldName:x,schemaMode:p,overrides:S,currentIndexes:L});return b?(b.$id&&o.add(b.$id),b):null}}).filter(e=>!!e),t.filter(e=>!n.value?.find(t=>e.$id===t.$id)).forEach((e,t)=>{s.deleteArrayStatus(O.value,t.toString())});for(let e of L.keys())o.has(e)||L.delete(e)}else I.value=[],L.clear()}function B(){M=y(n,()=>{P?.(),n.value!=null&&!Object.hasOwn(n.value,`$id`)&&!O.value?R():z(),V()},{deep:te?1:!0,flush:`pre`}),V()}function V(){P=y(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){M?.(),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(()=>(p?F.value.$correct:A(F.value.$rules)?!0:F.value.$correct)&&(!I.value.length||I.value.every(e=>e.$correct||e.$anyDirty&&!e.$invalid))),d=e(()=>F.value.$error||I.value.some(e=>e.$error)),m=e(()=>!(s.value||y.value)),y=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)})),O=e(()=>({$self:F.value.$silentErrors,$each:I.value.map(e=>e.$silentErrors)})),k=e(()=>j.value.$rewardEarly==null?h(c.rewardEarly)==null?!1:h(c.rewardEarly)===!0:j.value.$rewardEarly),N=e(()=>k.value?!0:j.value.$silent==null?h(c.silent)==null?!1:h(c.silent)===!0:j.value.$silent),L=e(()=>j.value.$autoDirty==null?h(c.autoDirty)==null?!0:h(c.autoDirty)===!0:j.value.$autoDirty),R=e(()=>j.value.$immediateDirty==null?h(c.immediateDirty)==null?!1:ct(h(c.immediateDirty)):ct(j.value.$immediateDirty)),z=e(()=>j.value.$clearExternalErrorsOnChange==null?h(c.clearExternalErrorsOnChange)==null?!0:h(c.clearExternalErrorsOnChange)===!0:j.value.$clearExternalErrorsOnChange),V=e(()=>j.value.$clearExternalErrorsOnValidate==null?h(c.clearExternalErrorsOnValidate)==null?!1:h(c.clearExternalErrorsOnValidate)===!0:j.value.$clearExternalErrorsOnValidate),H=e(()=>{if(j.value.$isEdited!=null)return j.value.$isEdited;if(S?.isEdited!=null)return S.isEdited}),U=e(()=>x??c.id??`root`),W=e(()=>({$deepCompare:j.value.$deepCompare??!1,$debounce:j.value.$debounce??0,$lazy:j.value.$lazy??!1,$rewardEarly:k.value,$autoDirty:L.value,$silent:N.value,$clearExternalErrorsOnChange:z.value,$clearExternalErrorsOnValidate:V.value,$immediateDirty:R.value,$isEdited:H.value,$disabled:h(c.disabled)??!1}));function G(){v?.collections&&Object.entries(v?.collections).forEach(([e,c])=>{let p=t();K[e]=p.run(()=>{let e=f();return b(()=>{e.value=c(u({$dirty:i,$error:d,$path:a,$silentValue:r,$pending:y,$invalid:s,$correct:l,$errors:E,$silentErrors:O,$initialValue:g,$originalValue:_,$ready:m,$anyDirty:o,$name:U,$each:I,$self:F,$value:n,$output:n,$edited:C,$anyEdited:w,$issues:T}))}),e}),D.push(p)})}let K={};return G(),{$dirty:i,$anyDirty:o,$invalid:s,$correct:l,$error:d,$pending:y,$errors:E,$silentErrors:O,$ready:m,$name:U,$shortcuts:K,$silentValue:r,$edited:C,$anyEdited:w,$rewardEarly:k,$silent:N,$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(){M?.(),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=N(_),g.value=N(_);else if(e?.toInitialState)n.value=N(g.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,g.value=N(t),n.value=N(t)}else g.value=N(n.value);e?.clearExternalErrors&&ne(),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 ee(e){return e&&(n.value=e),q()}async function q(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 Y(e){e&&(n.value=e);try{return[F.value.$validateSync(e),...I.value.map(e=>e.$validateSync())].every(e=>!!e)}catch{return!1}}function X(e){l?.value&&(l.value=e)}function ne(){F.value.$clearExternalErrors(),I.value.forEach(e=>{e.$clearExternalErrors()})}function ie(e=!0){let t=I.value.map(t=>{if(we(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>A(e))&&(t=[]),t}let{$shortcuts:ae,...oe}=w;return u({$self:F,...oe,...ae,$path:a,$each:I,$value:n,$output:n,$initialValue:g,$originalValue:_,$validate:ee,$validateSync:Y,$validateWithoutRaceconditions:q,$unwatch:U,$watch:H,$touch:W,$reset:G,$abort:K,$extractDirtyFields:ie,$clearExternalErrors:ne,$setExternalErrors:X,"~modifiers":w.$modifiers,...st(ee)})}function ht({rulesDef:n,state:r,path:i=``,cachePath:a,rootRules:o,externalErrors:c,schemaErrors:l,rootInitialState:p,rootSchemaErrors:g,validationGroups:v,initialState:x,originalState:S,fieldName:w,nestedReactiveRules:T,...E}){let D=t(),O,k=[],j=null,M=null,P=null,F=null,I=f(void 0);async function L(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=m(r.value??{},n),u=m(()=>o),d=m(c?.value??{},n),f=e(()=>l?.value?.[n]),p=m(x?.value??{},n);return t.push([n,gt({state:s,rulesDef:u,path:i?`${i}.${n}`:n,cachePath:a?`${a}.${n}`:n,externalErrors:d,schemaErrors:f,initialState:p,originalState:S?.[n],fieldName:n,...E})]),t},[])),u=Object.fromEntries(Object.entries(h(c)??{}).filter(([e,t])=>!(e in n.value)&&!!t).map(([t])=>{let n=m(r.value??{},t),o=m(c?.value??{},t),s=e(()=>l?.value?.[t]),u=m(x?.value??{},t),d=i?`${i}.${t}`:t,f=a?`${a}.${t}`:t;return[t,gt({state:n,rulesDef:e(()=>({})),path:d,cachePath:f,externalErrors:o,schemaErrors:s,initialState:u,originalState:S?.[t],fieldName:t,...E})]})),d=Object.fromEntries(Object.entries(h(l)??{}).map(([t])=>{let n=i?`${i}.${t}`:t,o=a?`${a}.${t}`:t,s=m(r.value??{},t),u=m(c?.value??{},t),d=e(()=>l?.value?.[t]),f=m(x?.value??{},t);return[t,gt({state:s,rulesDef:e(()=>({})),path:n,cachePath:o,externalErrors:u,schemaErrors:d,initialState:f,originalState:S?.[t],fieldName:t,...E})]})),f=Object.fromEntries(Object.entries(r.value??{}).filter(([e])=>!(e in n.value)&&!(e in(u??{}))&&!(e in(d??{}))).map(([t])=>{let n=m(r.value??{},t),o=m(c?.value??{},t),s=e(()=>l?.value?.[t]),u=m(x?.value??{},t);return[t,gt({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,...E})]}));z.value={...s,...u,...d,...f},t&&H()}function R(){n.value.$self&&(I.value=ft({state:r,rulesDef:e(()=>n.value.$self??{}),path:i,cachePath:a,externalErrors:f(void 0),schemaErrors:f(void 0),initialState:m(x?.value??{},`$self`),originalState:S?.$self,fieldName:`$self`,...E}))}let z=E.storage.getFieldsEntry(a);L(),R();function B(){c&&(P=y(c,()=>{U(),L()},{deep:!0}))}function V(){F=y(r,()=>{U(),L(),O.$autoDirty.value&&!O.$silent.value&&q(!1,!0)},{flush:`post`})}function H(){(o||T)&&(j?.(),j=y(n,()=>{U(),L()},{deep:!0,flush:`pre`}),B()),g&&(M?.(),M=y(()=>g.value?Object.keys(g.value).sort().join(`\0`):``,()=>{U(),L()},{flush:`post`})),V(),O=D.run(()=>{let a=e({get:()=>r.value,set(e){U(),r.value=e,L(),O.$autoDirty.value&&!O.$silent.value&&q(!1,!0)}}),o=d(a),s=e({get:()=>r.value,set(e){U(),r.value=e,L()}}),c=e(()=>{let e=z.value,t=Object.keys(e);if(!t.length)return!1;for(let n of t)if(!e[n]?.$dirty)return!1;return!0}),l=e(()=>{let e=z.value;for(let t in e)if(e[t]?.$anyDirty)return!0;return!1}),p=e(()=>{if(I.value?.$invalid)return!0;let e=z.value,t=Object.entries(e);if(!t.length)return!1;for(let[e,n]of t)if(n?.$invalid)return!0;return!1}),m=e(()=>{let e=Object.entries(z.value).reduce((e,[t,n])=>((!Ee(n)||!n.$inactive)&&e.push([t,n]),e),[]),t=n.value.$self&&!A(n.value.$self);if(e.length||t){let t=I.value?.$correct??!0,n=!1;return n=E.schemaMode?e.every(([e,t])=>t.$correct):e.every(([e,t])=>Ee(t)?`required`in t.$rules&&t.$rules.required.$active?t.$correct:!t.$invalid&&!t.$pending&&!t.$isDebouncing:t?.$correct),t&&n}return!1}),g=e(()=>{if(I.value?.$error)return!0;let e=z.value;if(!Object.keys(e).length)return!1;for(let t in e)if(e[t]?.$error)return!0;return!1}),y=e(()=>h(E.options.rewardEarly)==null?!1:h(E.options.rewardEarly)),C=e(()=>h(E.options.silent)==null?!!y.value:h(E.options.silent)===!0),T=e(()=>h(E.options.autoDirty)==null?!0:h(E.options.autoDirty)===!0),D=e(()=>h(E.options.immediateDirty)==null?!1:ct(h(E.options.immediateDirty))),j=e(()=>h(E.options.lazy)==null?!1:h(E.options.lazy)===!0),M=e(()=>h(E.options.clearExternalErrorsOnChange)==null?!1:h(E.options.clearExternalErrorsOnChange)===!0),N=e(()=>h(E.options.clearExternalErrorsOnValidate)==null?!1:h(E.options.clearExternalErrorsOnValidate)===!0),P=e(()=>!(p.value||R.value)),F=f(!1),R=e(()=>{if(I.value?.$pending||F.value)return!0;let e=z.value;for(let t in e)if(e[t]?.$pending)return!0;return!1}),B=e(()=>{let e={...I.value&&{$self:I.value?.$issues??[]}};for(let t in z.value)e[t]=z.value[t]?.$issues;return e}),V=e(()=>{let e={...I.value&&{$self:I.value?.$errors??[]}};for(let t in z.value)e[t]=z.value[t]?.$errors;return e}),H=e(()=>{let e={...I.value&&{$self:I.value?.$silentErrors??[]}};for(let t in z.value)e[t]=z.value[t]?.$silentErrors;return e}),W=e(()=>{if(I.value?.$edited)return!0;if(!Object.keys(z.value).length)return!1;for(let e in z.value)if(!z.value[e]?.$edited)return!1;return!0}),G=e(()=>{if(I.value?.$anyEdited)return!0;for(let e in z.value)if(z.value[e]?.$anyEdited)return!0;return!1}),K=e(()=>w??E.options.id??`root`),ee=e(()=>({autoDirty:T.value,lazy:j.value,rewardEarly:y.value,silent:C.value,clearExternalErrorsOnChange:M.value,clearExternalErrorsOnValidate:N.value,immediateDirty:D.value,id:h(E.options.id),disabled:h(E.options.disabled)}));function J(){E.shortcuts?.nested&&Object.entries(E.shortcuts.nested).forEach(([e,n])=>{let a=t();X[e]=a.run(()=>{let e=f();return b(()=>{e.value=n(u({$dirty:c,$path:i,$value:r,$output:r,$silentValue:s,$error:g,$originalValue:S,$pending:R,$invalid:p,$correct:m,$ready:P,$anyDirty:l,$name:K,$silentErrors:H,$initialValue:x,$errors:V,$fields:z,$edited:W,$anyEdited:G,$issues:B,$self:I,"~modifiers":_(E.options)}))}),e}),k.push(a)})}let Y=e({get:()=>v?Object.fromEntries(Object.entries(v?.(z.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,oe(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,se(t,e)]))}]:[])):{},set(){}}),X={};return J(),{$dirty:c,$anyDirty:l,$invalid:p,$correct:m,$error:g,$pending:R,$issues:B,$errors:V,$silentErrors:H,$clearExternalErrorsOnValidate:N,$ready:P,$name:K,$shortcuts:X,$groups:Y,$silentValue:s,$immediateDirty:D,$edited:W,$anyEdited:G,$localPending:F,$autoDirty:T,$silent:C,$value:a,$output:o,$modifiers:ee}})}function U(){if(j?.(),P?.(),F?.(),M?.(),k=[],O={},z.value)for(let e of Object.values(z.value))e?.$unwatch()}function W(e){c&&(c.value=e)}function G(){c&&!A(c.value)&&(c.value={})}function K(){O&&O.$immediateDirty.value!==`lazy-non-empty`&&ut(O.$immediateDirty.value,x.value,p?.value??x.value)&&q(!0,!1)}function ee(e,t){if(P?.(),U(),!t)if(e?.toOriginalState)r.value=N({...S}),x.value=N({...S});else if(e?.toInitialState)r.value=N({...x.value});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,x.value=N(t),r.value=N(t)}else x.value=N(r.value);if(!e?.keepValidationState){for(let t of Object.values(z.value))t?.$reset(e,!0);I.value?.$reset(e,!0)}e?.clearExternalErrors===!1&&G(),B(),t||(L(),K())}function q(e=!0,t=!1){for(let n of Object.values(z.value))n?.$touch(e,t);I.value?.$touch(e,t)}function J(e){return e.filter(([e,t])=>C(t)&&!Ce(t)?!(t&&typeof t==`object`&&`_null`in t)&&!A(t):Array.isArray(t)?t.length:!0)}function Y(e=!0){let t=Object.entries(z.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=J(t)),Object.fromEntries(t)}function X(){for(let e of Object.values(z.value))e.$abort();I.value?.$abort()}async function te(e){return e&&(r.value=e),await s(),ne()}async function ne(e){try{if(e&&(r.value=e),E.schemaMode)return E.onValidate?(q(!1),O.$localPending.value=!0,E.onValidate()):{valid:!1,data:r.value,errors:O.$errors.value,issues:O.$issues.value};{let e=r.value;X(),O.$clearExternalErrorsOnValidate.value&&G();let t=[...Object.values(z.value).map(e=>e.$validateWithoutRaceconditions()),...I.value?[I.value?.$validateWithoutRaceconditions()]:[]];return{valid:(await Promise.allSettled(t)).every(e=>e.status===`fulfilled`&&e?.value?.valid===!0),data:e,errors:O.$errors.value,issues:O.$issues.value}}}catch{return{valid:!1,data:r.value,errors:O.$errors.value,issues:O.$issues.value}}finally{O.$localPending.value=!1}}function re(e){try{return e&&(r.value=e),O.$clearExternalErrorsOnValidate.value&&G(),[...Object.values(z.value).map(e=>e.$validateSync()),...I.value?[I.value?.$validateSync()]:[]].every(e=>!!e)}catch{return!1}}K();let{$shortcuts:ie,$localPending:ae,...Z}=O,Q=u({...Z,...ie,$path:i,$initialValue:x,$originalValue:S,$self:I,$externalErrors:c,$fields:z,$reset:ee,$touch:q,$validate:te,$unwatch:U,$watch:H,$setExternalErrors:W,$clearExternalErrors:G,$extractDirtyFields:Y,$abort:X,$validateSync:re,$validateWithoutRaceconditions:ne,...o?{"~modifiers":O.$modifiers}:{},...st(te)});return Object.defineProperty(Q,Symbol.for(`regle:instance`),{value:!0}),b(()=>{for(let e of Object.keys(Q).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete Q[e];for(let e of Object.values(z.value))e?.$name&&Object.assign(Q,{[e.$name]:e})}),Q}function gt({rulesDef:e,...n}){if(ye(e,n.state))return mt({rulesDef:e,...n});if(ve(n.state,e)){if(q(n.state))return ht({rulesDef:e,...n});{let r=t().run(()=>{let e=m(n.state.value?n.state:f({}));return y(()=>n.state.value,t=>{e.value=t},{deep:!0}),y(e,e=>{n.state.value=e},{deep:!0}),{fakeState:e}}),{state:i,...a}=n;return ht({rulesDef:e,...a,state:r.fakeState})}}else if(be(e))return ft({rulesDef:a(e.value)?e.value:e,...n})}function _t({initialState:e,originalState:n,options:i,scopeRules:a,state:o,customRules:c,shortcuts:u,schemaErrors:d,schemaMode:p=!1,onValidate:m,overrides:g}){let _=et(),v=f(!1),b=new Set,x,S=f(),w=f(),T,D,O;function k(){O=y(()=>h(i.disabled),async e=>{e?F():(N(),j())})}function A(e){D?.(),e&&(C(e)&&Object.keys(e).some(e=>e.includes(`.`))?w.value=E(e):Array.isArray(e)?w.value=e:w.value=e??{}),M()}function j(){T=y(()=>i.externalErrors?.value,A,{deep:!0})}function M(){D=y(()=>w.value,e=>{T?.(),i.externalErrors?.value&&(i.externalErrors.value=e),A(e),j()},{deep:!0})}function N(){ve(o,a)?S.value=ht({rootRules:a,rulesDef:a,state:o,customMessages:c?.(),storage:_,options:i,rootInitialState:e,externalErrors:w,validationGroups:i.validationGroups,initialState:e,originalState:n,shortcuts:u,fieldName:void 0,path:``,cachePath:``,schemaErrors:d,rootSchemaErrors:d,schemaMode:p,onValidate:m,overrides:g}):be(a)&&(S.value=ft({rulesDef:a,state:o,customMessages:c?.(),storage:_,options:i,rootInitialState:e,externalErrors:w,initialState:e,originalState:n,shortcuts:u,fieldName:void 0,path:``,cachePath:``,schemaMode:p,schemaErrors:d,onValidate:m,overrides:g}))}function P(){D=void 0,T=void 0,O=void 0}function F(){S.value?.$unwatch(),D?.(),T?.()}function I(){v.value||(v.value=!0,x=t(!0),x.run(()=>{A(i.externalErrors?.value),N(),h(i.disabled)?s().then(()=>{S.value?.$unwatch()}):j(),k()}))}function L(){v.value&&(v.value=!1,F(),O?.(),P(),x?.stop(),x=void 0)}function R(){let e=r();!e||b.has(e)||(v.value||I(),b.add(e),l(()=>{b.delete(e),b.size||L()}))}I(),R();function z(){typeof window<`u`&&typeof __VUE_PROD_DEVTOOLS__<`u`&&__VUE_PROD_DEVTOOLS__&&!he()&&S.value&&_e(S.value,{name:h(i.id)})}return z(),{regle:S,bindToCurrentScope:R}}function vt({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),d=i(pe,void 0)??{},m={...d.modifiers,...o},h=()=>({...d.rules?.(),...s?.()}),_={...d.shortcuts,...c},v={...d.overrides,...l},y={...m,...r},x,S=p(u??{});typeof n==`function`&&(x=b(()=>{S.value=n(t),g(S)}));let w=f(C(t.value)?{...N(t.value)}:N(t.value)),T=C(t.value)?{...N(t.value)}:N(t.value);ie(()=>{x?.()});let{regle:E,bindToCurrentScope:D}=_t({scopeRules:S,state:t,options:y,initialState:w,originalState:T,customRules:h,shortcuts:_,overrides:v});return{regle:E,bindToCurrentScope:D}}function yt(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s,c){let l=a(t)?t:f(t),u=e(()=>h(c?.disabled)??!1),{regle:d,bindToCurrentScope:p}=vt({state:l,rulesFactory:s,options:c,globalOptions:r,customRules:n,shortcuts:i,overrides:o});return{r$:z(d,u,p)}}return s}const bt=yt();function xt(){function e(e,t){return t}return e}const St=xt();function Ct(e,t){return w(h(e).$errors,String(t))}function wt(e,t){return w(h(e).$issues,String(t))}function Tt(e){let t={};if(Object.entries(e).some(([e,t])=>xe(t)||typeof t==`function`))return null;for(let n in e){let r=e[n];r&&C(r)&&`$each`in r&&r.$each&&C(r.$each)?t[n]=[Tt(r.$each)]:C(r)&&!A(r)&&!Object.entries(r).some(([e,t])=>xe(t)||typeof t==`function`)?t[n]=Tt(r):t[n]=null}return t}function Et(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=f(Tt(c?.value)),u=e(()=>h(s?.disabled)??!1),{regle:d,bindToCurrentScope:p}=vt({state:l,rulesFactory:c,options:s,globalOptions:r,customRules:n,shortcuts:i,overrides:o});return z(d,u,p)}return s}const Dt=Et();function Ot(e){if(k(e)){let t=e,n=class extends t{constructor(...e){return super(...e),kt(this)}};return Object.defineProperty(n,`name`,{value:t.name}),kt(n)}return kt(e)}function kt(e){return!D(e,me.REGLE_STATIC)&&Object.isExtensible(e)&&O(e,me.REGLE_STATIC,!0),e}function At({rules:e,modifiers:t,shortcuts:n,overrides:r}){let i=yt({rules:e,modifiers:t,shortcuts:n,overrides:r}),a=Et({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:xt(),useRules:a}}function jt(e,{rules:t,modifiers:n,shortcuts:r,overrides:i}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?T(a.modifiers,n):a.modifiers??n,c=a.shortcuts&&r?T(a.shortcuts,r):a.shortcuts??r,l=a.overrides&&i?T(a.overrides,i):a.overrides??i,u=yt({rules:o,modifiers:s,shortcuts:c,overrides:l});return u.__config={rules:o,modifiers:s,shortcuts:c,overrides:l},{useRegle:u,inferRules:xt()}}function Mt(e){return e}function Nt(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)}),y=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,$output:i,$dirty:o,$anyDirty:s,$invalid:c,$correct:l,$error:d,$pending:p,$ready:f,$edited:v,$anyEdited:y,$reset:S,$touch:C,$validate:O,$validateSync:D,$extractDirtyFields:w,$clearExternalErrors:E,$setExternalErrors:T});return b(()=>{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 Pt(t,n){function r(r){let i=e(()=>h(r)),a=u({});c();let o=f(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]={})}))}y(i,c),y(t,e=>{o.value=l(e)},{deep:!0});function l(e){return i.value?typeof i.value==`string`?Nt(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})})}),Nt(a,!n.asRecord)):Nt(e[`~~global`]??{},!n.asRecord)}return{r$:s.r$}}return{useCollectScope:r}}function Ft(t,r){let i=r??bt;return{useScopedRegle:((r,a,o)=>{let{namespace:s,scopeKey:l,id:u,...d}=o??{};i.__config??={};let p=e(()=>u??l),m=e(()=>h(s)),g=f(`${Object.keys(t.value).length+1}-${re()}`),_=e(()=>p.value??`instance-${g.value}`),{r$:v}=i(r,a,{...d,id:p.value});x(),ie(b),y(m,(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??m.value;n?t.value[n]&&delete t.value[n][_.value]:t.value[`~~global`][_.value]&&delete t.value[`~~global`][_.value]}function x(){m.value?(t.value[m.value]||(t.value[m.value]={}),t.value[m.value][_.value]=v):(t.value[`~~global`]||(t.value[`~~global`]={}),t.value[`~~global`][_.value]=v)}return{r$:v,dispose:b,register:x}})}}function It(e){let t=(e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):ae(()=>f({"~~global":{}})))(),{useScopedRegle:n}=Ft(t,e?.customUseRegle),{useCollectScope:r}=Pt(t,{asRecord:e?.asRecord});return{useScopedRegle:n,useCollectScope:r}}const{useCollectScope:Lt,useScopedRegle:Rt}=It(),zt=Lt,Bt=Rt;function Vt(t,n,r){let i=e(()=>h(t)[n]);return e(()=>r.find(e=>{if(e[n]&&`literal`in e[n]){let t=e[n].literal;if(xe(t))return h(t._params?.[0])===i.value}})||r.find(e=>C(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`))||{})}function Ht(e,t,n){return!!e&&t in e&&C(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function Ut(e,t,n,r){let i=a(e)?m(e.value,`$fields`):m(e,`$fields`),o=f();return y(i,async()=>{await s(),Ht(i.value,t,n)?o.value=m(e).value:o.value=void 0},{immediate:!0,flush:`pre`}),o}function Wt(e){return e}function Gt(e,t){return n=>T({...e},t(n))}const Kt={install(e,t){e.provide(fe,Qe),t&&e.provide(pe,t),typeof window<`u`&&typeof __VUE_PROD_DEVTOOLS__<`u`&&__VUE_PROD_DEVTOOLS__&&!he()&&$e(e)}};export{B as InternalRuleType,Kt as RegleVuePlugin,G as createRule,It as createScopedUseRegle,Vt as createVariant,At as defineRegleConfig,Mt as defineRegleOptions,Wt as defineRules,jt as extendRegleConfig,it as flatErrors,Ct as getErrors,wt as getIssues,St as inferRules,ee as isRegleInstance,Ot as markStatic,Nt as mergeRegles,Ht as narrowVariant,Gt as refineRules,V as unwrapRuleParameters,zt as useCollectScope,bt as useRegle,_t as useRootStorage,Dt as useRules,Bt as useScopedRegle,Ut as variantToRef};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@regle/core",
3
- "version": "1.26.0-beta.6",
3
+ "version": "1.26.0-beta.7",
4
4
  "description": "Headless form validation library for Vue",
5
5
  "keywords": [
6
6
  "regle",