@regle/core 0.7.6 → 0.8.0

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.
@@ -87,6 +87,25 @@ function toDate(argument) {
87
87
  }
88
88
  }
89
89
 
90
+ // ../shared/utils/debounce.ts
91
+ function debounce(func, wait, immediate) {
92
+ let timeout;
93
+ const debouncedFn = (...args) => new Promise((resolve) => {
94
+ clearTimeout(timeout);
95
+ timeout = setTimeout(() => {
96
+ timeout = undefined;
97
+ {
98
+ Promise.resolve(func.apply(this, [...args])).then(resolve);
99
+ }
100
+ }, wait);
101
+ });
102
+ debouncedFn.cancel = () => {
103
+ clearTimeout(timeout);
104
+ timeout = undefined;
105
+ };
106
+ return debouncedFn;
107
+ }
108
+
90
109
  // src/types/rules/rule.internal.types.ts
91
110
  var InternalRuleType = /* @__PURE__ */ ((InternalRuleType2) => {
92
111
  InternalRuleType2["Inline"] = "__inline";
@@ -376,25 +395,6 @@ function unwrapGetter(getter, value, index) {
376
395
  }
377
396
  return { scope, unwrapped };
378
397
  }
379
-
380
- // src/utils/debounce.ts
381
- function debounce(func, wait, immediate) {
382
- let timeout;
383
- const debouncedFn = (...args) => new Promise((resolve) => {
384
- clearTimeout(timeout);
385
- timeout = setTimeout(() => {
386
- timeout = undefined;
387
- {
388
- Promise.resolve(func.apply(this, [...args])).then(resolve);
389
- }
390
- }, wait);
391
- });
392
- debouncedFn.cancel = () => {
393
- clearTimeout(timeout);
394
- timeout = undefined;
395
- };
396
- return debouncedFn;
397
- }
398
398
  function versionCompare(current, other) {
399
399
  const cp = String(current).split(".");
400
400
  const op = String(other).split(".");
@@ -630,6 +630,10 @@ function createReactiveRuleStatus({
630
630
  let ruleResult = false;
631
631
  try {
632
632
  const validator = scopeState.$validator.value;
633
+ if (typeof validator !== "function") {
634
+ console.error(`${path}: Incorrect rule format, it needs to be either a function or created with "createRule".`);
635
+ return false;
636
+ }
633
637
  const resultOrPromise = validator(state.value, ...scopeState.$params.value);
634
638
  let cachedValue = state.value;
635
639
  updatePendingState();
@@ -1,2 +1,2 @@
1
- 'use strict';var vue=require('vue');function Z(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var mt=Symbol("regle-rule");function Lt(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function Y(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>Y(n)))),r=="Map"&&(t=new Map([...e].map(n=>[Y(n[0]),Y(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Lt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=Y(e[n]);}return t}function ne(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Be(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}var Le=(r=>(r.Inline="__inline",r.Async="__async",r))(Le||{});function gt(e,t){return e.some(r=>r[t])}function yt(e,t){return e.reduce((r,n)=>{let o=n[t]||[];return r.concat(o)},[])}function ee(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function vt(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function $t(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(R=>R.trim()).filter(R=>R.length>0).length:0}function He(e,...t){let{validator:r,type:n}=e,o=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(c,...$){return e.validator(c,...ee($.length?$:t))},message(c){return typeof e.message=="function"?e.message({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.message},active(c){return typeof e.active=="function"?e.active({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.active??true},tooltip(c){return typeof e.tooltip=="function"?e.tooltip({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.tooltip??[]},exec(c){let $=e.validator(c,...ee(t)),m;return $ instanceof Promise?$.then(h=>(m=h,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)):(m=$,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:o,_params:vt(t),_brand:mt}}function ze(e){if(typeof e.validator=="function"){let r=He(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if($t(e.validator)>1){let o=function(...s){return He(e,...s)};return o.validator=r.validator,o.message=r.message,o.active=r.active,o.tooltip=r.tooltip,o.type=r.type,o.exec=r.exec,o._validator=r.validator,o._message=r.message,o._active=r.active,o._tooltip=r.tooltip,o._type=e.type,o._message_pacthed=false,o._tooltip_pacthed=false,o._async=n,o}else return r}throw new Error("Validator must be a function")}function qe(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),o=vue.shallowRef(new Map),s=vue.shallowRef(new Map);function R(v){let b=t.value.get(v);if(b)return b;{let E=vue.ref({});return t.value.set(v,E),E}}function c(v){let b=r.value.get(v);if(b)return b;{let E=vue.ref([]);return r.value.set(v,E),E}}function $(v,b,E){s.value.set(`${v}-${b}`,E);}function m(v,b){return s.value.get(`${v}-${b}`)}function h(v,b){v&&b!=null&&s.value.delete(`${v}-${b}`);}function M(v,b){n.value.set(v,b);}function x(v){return n.value.get(v)??false}function P(v,b){e.value.set(v,b);}function O(v,b){let E=e.value.get(v);return E?a(b,E)?{valid:true}:{valid:false}:undefined}function a(v,b){let E=Object.keys(b),i=Object.keys(v);return i.length!==E.length||!i.every(V=>E.includes(V))?false:i.every(V=>{let l=v[V],u=b[V];return !u||!l||typeof l=="function"||typeof u=="function"||typeof l=="number"||typeof l=="boolean"?false:l._params?l._params?.every((C,_)=>{if(typeof u=="number"||typeof u=="boolean")return true;{let k=ee(u._params),J=ee(l._params);return k?.[_]===J?.[_]}}):true})}function w(v){let b=o.value.get(v);if(b)return b;{let E=vue.ref(false),i=vue.ref(true),S=vue.ref({}),V=vue.ref(false);return o.value.set(v,{$pending:E,$valid:i,$metadata:S,$validating:V}),{$pending:E,$valid:i,$metadata:S,$validating:V}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),o.value.clear(),s.value.clear();}),{addRuleDeclEntry:P,setDirtyEntry:M,checkRuleDeclEntry:O,getDirtyState:x,trySetRuleStatusRef:w,getFieldsEntry:R,getCollectionsEntry:c,getArrayStatus:m,addArrayStatus:$,deleteArrayStatus:h,arrayStatusStorage:s}}function Fe(e){return ne(e.value)}function Ke(e,t,r){let n=vue.effectScope(),o;return e instanceof Function?o=n.run(()=>e(t,r??0)):o=e,{scope:n,unwrapped:o}}function Ve(e,t,r){let n,o=(...s)=>new Promise(R=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...s])).then(R);},t);});return o.cancel=()=>{clearTimeout(n),n=undefined;},o}function Zt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let o=0;o<Math.min(r.length,n.length);o++){let s=Number(r[o]),R=Number(n[o]);if(s>R)return 1;if(R>s)return -1;if(!isNaN(s)&&isNaN(R))return 1;if(isNaN(s)&&!isNaN(R))return -1}return 0}var _e=Zt(vue.version,"3.5.0")!==-1;function er(){return Math.floor(Math.random()*Date.now()).toString()}function he(){return typeof window>"u"?er():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function St(e){return vue.getCurrentScope()?(vue.onScopeDispose(e),true):false}function ht(e){let t=false,r,n=vue.effectScope(true);return (...o)=>(t||(r=n.run(()=>e(...o)),t=true),r)}function bt(e,t){return Fe(e)||ne(t.value)&&!Z(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function Et(e,t){return !!e.value&&ne(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Tt(e){return !!e.value&&ne(e.value)}function we(e){return ne(e)&&"_validator"in e}function Pe(e){return typeof e.value!="function"}function xt(e){return ne(e)&&"$fields"in e}function Dt(e){return !!e&&"$rules"in e}function Je({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Ct({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function It({customMessages:e,rule:t,ruleKey:r,state:n,path:o,storage:s,$debounce:R,modifiers:c}){let $=vue.effectScope(),m={},h,M=vue.ref(false),{$pending:x,$valid:P,$metadata:O,$validating:a}=s.trySetRuleStatusRef(`${o}.${r}`);function w(){$=vue.effectScope(),m=$.run(()=>{let l=vue.ref(false),u=vue.ref(false),C=vue.ref(true),_=vue.ref(false),k=vue.ref(false),J=vue.computed(()=>({$value:n.value,$error:u.value,$dirty:l.value,$pending:_.value,$valid:k.value,$invalid:C.value,$rule:{$valid:P.value,$invalid:!P.value,$pending:x.value},$params:d.value,...O.value})),I=vue.computed(()=>Pe(t)?typeof t.value.active=="function"?t.value.active(J.value):!!t.value.active:true);function L(p){let T="",A=e?e[r]?.[p]:undefined;if(A&&(typeof A=="function"?T=A(J.value):T=A),Pe(t)){let Q=`_${p}_patched`;A&&!t.value[Q]||(typeof t.value[p]=="function"?T=t.value[p](J.value):T=t.value[p]??"");}return T}let ie=vue.computed(()=>{let p=L("message");return Z(p)&&(p="This field is not valid"),p}),de=vue.computed(()=>L("tooltip")),pe=vue.computed(()=>Pe(t)&&t.value.type?t.value.type:r),me=vue.computed(()=>Pe(t)?t.value.validator:t.value),d=vue.computed(()=>typeof t.value=="function"?[]:ee(t.value._params??[])),f=vue.computed(()=>`${o}.${pe.value}`);return {$active:I,$message:ie,$type:pe,$validator:me,$params:d,$path:f,$tooltip:de,$fieldValid:k,$fieldError:u,$fieldDirty:l,$fieldPending:_,$fieldInvalid:C}}),h=vue.watch(m?.$params,()=>{(c.$autoDirty.value||c.$rewardEarly.value&&m.$fieldError.value)&&i();});}w();function v(){P.value=true,m.$fieldDirty.value&&(x.value=true);}async function b(){let l=false;try{let u=m.$validator.value,C=u(n.value,...m.$params.value),_=n.value;v();let k;if(C instanceof Promise?k=await C:k=C,n.value!==_)return !0;if(typeof k=="boolean")l=k;else {let{$valid:J,...I}=k;l=J,O.value=I;}}catch{l=false;}finally{x.value=false;}return l}let E=Ve(b,R??200);async function i(){try{a.value=!0;let l=!1;if(we(t.value)&&t.value._async)l=await E();else {let u=m.$validator.value,C=u(n.value,...m.$params.value);if(C instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(C!=null)if(typeof C=="boolean")l=C;else {let{$valid:_,...k}=C;l=_,O.value=k;}}return P.value=l,l}catch{return false}finally{a.value=false;}}function S(){P.value=true,O.value={},x.value=false,a.value=false,w();}function V(){h(),$.stop(),$=vue.effectScope();}return vue.reactive({...m,$pending:x,$valid:P,$metadata:O,$haveAsync:M,$validating:a,$validate:i,$unwatch:V,$watch:w,$reset:S})}function Ne({state:e,rulesDef:t,customMessages:r,path:n,fieldName:o,storage:s,options:R,externalErrors:c,schemaErrors:$,schemaMode:m,onUnwatch:h,$isArray:M,initialState:x,shortcuts:P}){let O=vue.effectScope(),a,w=[],v,b,E,i,S,V=()=>{};function l(){let y=t.value,G=s.checkRuleDeclEntry(n,y);L.value=Object.fromEntries(Object.entries(y).filter(([B])=>B.startsWith("$"))),_(),I.value=Object.fromEntries(Object.entries(t.value).filter(([B])=>!B.startsWith("$")).map(([B,D])=>{if(D){let se=vue.toRef(()=>D);return [B,It({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:se,ruleKey:B,state:e,path:n,storage:s,$debounce:L.value.$debounce})]}return []}).filter(B=>!!B.length)),a.processShortcuts(),u(),G?.valid!=null&&(a.$dirty.value=s.getDirtyState(n),(a.$dirty.value&&a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V()),s.addRuleDeclEntry(n,y);}function u(){V=a.$debounce.value?Ve(J,a.$debounce.value??a.$haveAnyAsyncRule?100:0):J;}function C(){I.value&&Object.entries(I.value).forEach(([y,G])=>{G.$unwatch();}),E(),S?.(),a.$dirty.value&&s.setDirtyEntry(n,a.$dirty.value),v?.(),b?.(),O.stop(),O=vue.effectScope(),w.forEach(y=>y.stop()),w=[],h?.(),i?.();}function _(){I.value&&Object.entries(I.value).forEach(([y,G])=>{G.$watch();}),a=O.run(()=>{let y=vue.ref(false),G=vue.ref(false),B=vue.computed(()=>y.value),D=vue.computed(()=>L.value.$debounce),se=vue.computed(()=>L.value.$lazy!=null?L.value.$lazy:vue.unref(R.lazy)!=null?vue.unref(R.lazy):false),le=vue.computed(()=>L.value.$rewardEarly!=null?L.value.$rewardEarly:vue.unref(R.rewardEarly)!=null?vue.unref(R.rewardEarly):false),ge=vue.computed(()=>L.value.$clearExternalErrorsOnChange!=null?L.value.$clearExternalErrorsOnChange:vue.unref(R.clearExternalErrorsOnChange)!=null?vue.unref(R.clearExternalErrorsOnChange):true),U=vue.computed(()=>L.value.$autoDirty!=null?L.value.$autoDirty:vue.unref(R.autoDirty)!=null?vue.unref(R.autoDirty):!le.value),j=vue.computed(()=>Object.entries(I.value).some(([ae,ue])=>ue.$validating)),K=vue.computed({get:()=>e.value,set(ae){v(),e.value=ae,k();}}),ye=vue.computed(()=>ve.value&&!Oe.value&&y.value),lt=vue.computed(()=>Je({field:{$rules:I.value,$error:ye.value,$externalErrors:c?.value,$schemaErrors:$?.value}})),ot=vue.computed(()=>Je({field:{$rules:I.value,$error:ye.value,$externalErrors:c?.value,$schemaErrors:$?.value},silent:true})),We=vue.computed(()=>y.value?x.value instanceof Date&&e.value instanceof Date?Be(x.value).getDate()!==Be(e.value).getDate():x.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(x.value)?e.value.length!==x.value.length:x.value!==e.value:false),st=vue.computed(()=>We.value),ut=vue.computed(()=>Ct({field:{$rules:I.value}})),it=vue.computed(()=>U.value?B.value&&!(ve.value||Oe.value):!(ve.value||Oe.value)),Oe=vue.computed(()=>G.value||!le.value?Object.entries(I.value).some(([ae,ue])=>ue.$pending):false),ve=vue.computed(()=>c?.value?.length||$?.value?.length?true:Me.value?false:!le.value||le.value&&G.value?Object.entries(I.value).some(([ae,ue])=>!ue.$valid):false),ct=vue.computed(()=>o),Me=vue.computed(()=>!!(Z(I.value)&&!m)),ft=vue.computed(()=>c?.value?.length||Me.value?false:y.value&&!Z(e.value)&&!j.value?m?!$?.value?.length:Object.values(I.value).every(ae=>ae.$valid&&ae.$active):false),Wt=vue.computed(()=>Object.entries(I.value).some(([ae,ue])=>ue.$haveAsync));function Bt(){P?.fields&&Object.entries(P.fields).forEach(([ae,ue])=>{let dt=vue.effectScope();Rt[ae]=dt.run(()=>{let pt=vue.ref();return vue.watchEffect(()=>{pt.value=ue(vue.reactive({$dirty:y,$externalErrors:c?.value??[],$value:e,$silentValue:K,$rules:I,$error:ye,$pending:Oe,$invalid:ve,$valid:ft,$errors:lt,$ready:it,$silentErrors:ot,$anyDirty:B,$tooltips:ut,$name:ct,$inactive:Me,$edited:We,$anyEdited:st}));}),pt}),w.push(dt);});}let Rt={};return vue.watch(ve,ae=>{ae||(G.value=false);}),{$error:ye,$pending:Oe,$invalid:ve,$valid:ft,$debounce:D,$lazy:se,$errors:lt,$ready:it,$silentErrors:ot,$rewardEarly:le,$autoDirty:U,$clearExternalErrorsOnChange:ge,$anyDirty:B,$edited:We,$anyEdited:st,$name:ct,$haveAnyAsyncRule:Wt,$shortcuts:Rt,$validating:j,$tooltips:ut,$dirty:y,triggerPunishment:G,processShortcuts:Bt,$silentValue:K,$inactive:Me}}),k(),E=vue.watch(a.$dirty,y=>{s.setDirtyEntry(n,y),Object.values(I.value).forEach(G=>{G.$fieldDirty=y;});}),S=vue.watch([a.$error,a.$valid,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(y=>{y.$fieldError=a.$error.value,y.$fieldInvalid=a.$invalid.value,y.$fieldPending=a.$pending.value,y.$fieldValid=a.$valid.value;});}),b=vue.watch(a.$valid,y=>{a.$rewardEarly.value&&y&&(a.triggerPunishment.value=false);}),i=vue.watch(a.$haveAnyAsyncRule,u);}function k(){v=vue.watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&l(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&f();},{deep:M?true:_e?1:true,flush:"post"});}function J(){Object.values(I.value).forEach(y=>{y.$validate();});}let I=vue.ref({}),L=vue.ref({});l();function ie(){f(),a.$dirty.value=false,a.triggerPunishment.value=false,s.setDirtyEntry(n,false),x.value=ne(e.value)?Y(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(I.value).forEach(([y,G])=>{G.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(y=>y.$validate());}function de(y=true,G=false){a.$dirty.value||(a.$dirty.value=true),G&&y?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V():y&&V();}async function pe(){try{let y=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:y};return m?{result:!$?.value?.length,data:y}:Z(I.value)?{result:!0,data:y}:{result:(await Promise.allSettled(Object.entries(I.value).map(([D,se])=>se.$validate()))).every(D=>D.status==="fulfilled"?D.value===!0:!1),data:y}}catch{return {result:false,data:e.value}}}function me(){C(),e.value=Y(x),ie();}function d(y=true){return a.$dirty.value?e.value:y?{_null:true}:null}function f(){c?.value?.length&&(c.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&V();let{$shortcuts:p,$validating:T,$autoDirty:A,$rewardEarly:Q,$clearExternalErrorsOnChange:g,$haveAnyAsyncRule:F,$debounce:H,$lazy:X,triggerPunishment:z,...oe}=a;return vue.reactive({...oe,$externalErrors:c,$value:e,$rules:I,...p,$reset:ie,$touch:de,$validate:pe,$unwatch:C,$watch:_,$resetAll:me,$extractDirtyFields:d,$clearExternalErrors:f})}function Xe({$id:e,path:t,index:r,options:n,storage:o,stateValue:s,customMessages:R,rules:c,externalErrors:$,schemaErrors:m,initialState:h,shortcuts:M,fieldName:x,schemaMode:P}){let O=c.$key?c.$key:he(),a=`${t}.${String(O)}`;typeof s.value=="object"&&s.value!=null&&(s.value.$id?a=`${t}.${s.value.$id}`:Object.defineProperties(s.value,{$id:{value:O,enumerable:false,configurable:false,writable:false}}));let w=vue.toRef($?.value??[],r),v=vue.computed(()=>m?.value?.[r]),b=Te({state:s,rulesDef:vue.toRef(()=>c),customMessages:R,path:a,storage:o,options:n,externalErrors:w,schemaErrors:v,initialState:h,shortcuts:M,fieldName:x,schemaMode:P});if(b){let E=s.value?.$id;b.$id=E??String(O),o.addArrayStatus(e,b.$id,b);}return b}function At({state:e,rulesDef:t,customMessages:r,path:n,storage:o,options:s,externalErrors:R,schemaErrors:c,schemaMode:$,initialState:m,shortcuts:h,fieldName:M}){let x=vue.effectScope(),P,O=vue.effectScope(),a,w=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let v=vue.ref(),b=vue.ref(e.value),E,i=vue.ref({}),S=o.getCollectionsEntry(n);a=O.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(f=>typeof f!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(f=>we(f)||typeof f=="function"):false)})),V(),C();function V(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(v.value=he(),Object.defineProperties(e.value,{$id:{value:v.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(v.value=e.value.$id)),b.value=i.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?S.value=e.value.filter(d=>typeof d=="object").map((d,f)=>{let{scope:p,unwrapped:T}=Ke(t.value.$each,vue.toRef(()=>d),f);p&&w.push(p);let A=vue.toRef(m.value??[],f),Q=vue.toRef(R?.value??{},"$each"),g=vue.computed(()=>c?.value?.$each),F=Xe({$id:v.value,path:n,customMessages:r,rules:T??{},stateValue:vue.toRef(()=>d),index:f,options:s,storage:o,externalErrors:Q,schemaErrors:g,initialState:A,shortcuts:h,fieldName:M,schemaMode:$});return F||null}).filter(d=>!!d):S.value=[],i.value=Ne({state:e,rulesDef:t,customMessages:r,path:n,storage:o,options:s,externalErrors:vue.toRef(R?.value??{},"$self"),schemaErrors:vue.computed(()=>c?.value?.$self),$isArray:true,initialState:m,shortcuts:h,fieldName:M,schemaMode:$});}function l(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let d=Y(S.value);S.value=e.value.filter(f=>typeof f=="object").map((f,p)=>{let T=vue.toRef(()=>f);if(f.$id&&S.value.find(A=>A.$id===f.$id)){let A=o.getArrayStatus(v.value,f.$id);return A?(A.$value=T,A):null}else {let{scope:A,unwrapped:Q}=Ke(t.value.$each,T,p);A&&w.push(A);let g=vue.toRef(R?.value??{},"$each"),F=vue.computed(()=>c?.value?.$each??[]),H=Xe({$id:v.value,path:n,customMessages:r,rules:Q??{},stateValue:T,index:p,options:s,storage:o,externalErrors:g,schemaErrors:F,initialState:vue.toRef(m.value??[],p),shortcuts:h,fieldName:M,schemaMode:$});return H||null}}).filter(f=>!!f),d.filter(f=>!e.value?.find(p=>f.$id===p.$id)).forEach((f,p)=>{o.deleteArrayStatus(v.value,p.toString());});}else S.value=[];}function u(){E=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?V():l();},{deep:_e?1:true,flush:"pre"});}function C(){u(),x=vue.effectScope(),P=x.run(()=>{let d=vue.computed({get:()=>e.value,set(D){E(),e.value=D,u();}}),f=vue.computed(()=>i.value.$dirty&&(!S.value.length||S.value.every(D=>D.$dirty))),p=vue.computed(()=>i.value.$anyDirty||S.value.some(D=>D.$anyDirty)),T=vue.computed(()=>i.value.$invalid||S.value.some(D=>D.$invalid)),A=vue.computed(()=>(Z(i.value.$rules)?true:i.value.$valid)&&(!S.value.length||S.value.every(D=>D.$valid))),Q=vue.computed(()=>i.value.$error||S.value.some(D=>D.$error)),g=vue.computed(()=>!(T.value||F.value)),F=vue.computed(()=>i.value.$pending||S.value.some(D=>D.$pending)),H=vue.computed(()=>!!S.value.length&&S.value.every(D=>D.$edited)),X=vue.computed(()=>i.value.$anyEdited||S.value.some(D=>D.$anyEdited)),z=vue.computed(()=>({$self:i.value.$errors,$each:S.value.map(D=>D.$errors)})),oe=vue.computed(()=>({$self:i.value.$silentErrors,$each:S.value.map(D=>D.$silentErrors)})),y=vue.computed(()=>M);function G(){h?.collections&&Object.entries(h?.collections).forEach(([D,se])=>{let le=vue.effectScope();B[D]=le.run(()=>{let ge=vue.ref();return vue.watchEffect(()=>{ge.value=se(vue.reactive({$dirty:f,$error:Q,$silentValue:d,$pending:F,$invalid:T,$valid:A,$errors:z,$ready:g,$silentErrors:oe,$anyDirty:p,$name:y,$each:S,$self:i,$value:e,$edited:H,$anyEdited:X}));}),ge}),w.push(le);});}let B={};return G(),{$dirty:f,$anyDirty:p,$invalid:T,$valid:A,$error:Q,$pending:F,$errors:z,$silentErrors:oe,$ready:g,$name:y,$shortcuts:B,$silentValue:d,$edited:H,$anyEdited:X}}),a.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function _(){E&&E(),i.value&&i.value.$unwatch(),S.value&&S.value.forEach(d=>{"$dirty"in d&&d.$unwatch();}),x.stop(),x=vue.effectScope(),O.stop(),O=vue.effectScope(true),w.forEach(d=>d.stop()),w=[];}function k(d=true,f=false){i.value.$touch(d,f),S.value.forEach(p=>{p.$touch(d,f);});}function J(){i.value.$reset(),S.value.forEach(d=>{d.$reset();});}async function I(){let d=e.value;try{return {result:(await Promise.allSettled([i.value.$validate(),...S.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}catch{return {result:false,data:d}}}function L(){i.value.$clearExternalErrors(),S.value.forEach(d=>{d.$clearExternalErrors();});}function ie(d=true){let f=S.value.map(p=>{if(xt(p))return p.$extractDirtyFields(d)});return d&&f.every(p=>Z(p))&&(f=[]),f}function de(){_(),e.value=Y(m.value),J();}let{$shortcuts:pe,...me}=P;return vue.reactive({$self:i,...me,...pe,$each:S,$value:e,$validate:I,$unwatch:_,$watch:C,$touch:k,$reset:J,$resetAll:de,$extractDirtyFields:ie,$clearExternalErrors:L})}function ke({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:o,schemaErrors:s,rootSchemaErrors:R,validationGroups:c,initialState:$,fieldName:m,...h}){let M=vue.effectScope(),x,P=[],O=null,a=null,w=null,v=null;async function E(d=true){let f=Object.entries(e.value),p=Object.fromEntries(f.filter(([g,F])=>!!F).map(([g,F])=>{if(F){let H=vue.toRef(t.value??{},g),X=vue.toRef(()=>F),z=vue.toRef(o?.value??{},g),oe=vue.computed(()=>s?.value?.[g]),y=vue.toRef($?.value??{},g);return [g,Te({state:H,rulesDef:X,path:r?`${r}.${g}`:g,externalErrors:z,schemaErrors:oe,initialState:y,fieldName:g,...h})]}return []})),T=Object.fromEntries(Object.entries(vue.unref(o)??{}).filter(([g,F])=>!(g in e.value)&&!!F).map(([g])=>{let F=vue.toRef(t.value??{},g),H=vue.toRef(o?.value??{},g),X=vue.computed(()=>s?.value?.[g]),z=vue.toRef($?.value??{},g);return [g,Te({state:F,rulesDef:vue.computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:X,initialState:z,fieldName:g,...h})]})),A=Object.fromEntries(Object.entries(vue.unref(s)??{}).map(([g])=>{let F=vue.toRef(t.value??{},g),H=vue.toRef(o?.value??{},g),X=vue.computed(()=>s?.value?.[g]),z=vue.toRef($?.value??{},g);return [g,Te({state:F,rulesDef:vue.computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:X,initialState:z,fieldName:g,...h})]})),Q=Object.fromEntries(Object.entries(t.value??{}).filter(([g])=>!(g in e.value)&&!(g in(T??{}))&&!(g in(A??{}))).map(([g])=>{let F=vue.toRef(t.value??{},g),H=vue.toRef(o?.value??{},g),X=vue.computed(()=>s?.value?.[g]),z=vue.toRef($?.value??{},g);return [g,Te({state:F,rulesDef:vue.computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:X,initialState:z,fieldName:g,...h})]}));i.value={...p,...T,...A,...Q},d&&l();}let i=h.storage.getFieldsEntry(r);E();function S(){o&&(w=vue.watch(o,()=>{u(),E();},{deep:true}));}function V(){v=vue.watch(t,()=>{u(),E(),k(true,true);},{flush:"sync"});}function l(){n&&(O?.(),O=vue.watch(n,()=>{u(),E();},{deep:true,flush:"post"}),S()),R&&(a?.(),a=vue.watch(R,()=>{u(),E();},{deep:true,flush:"post"})),V(),x=M.run(()=>{let d=vue.computed({get:()=>t.value,set(U){u(),t.value=U,E();}}),f=vue.computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,j])=>j?.$dirty)),p=vue.computed(()=>Object.entries(i.value).some(([U,j])=>j?.$anyDirty)),T=vue.computed(()=>Object.entries(i.value).some(([U,j])=>j?.$invalid)),A=vue.computed(()=>{let U=Object.entries(i.value).filter(([j,K])=>Dt(K)?!K.$inactive:true);return U.length?U.every(([j,K])=>K?.$valid):false}),Q=vue.computed(()=>p.value&&!z.value&&T.value),g=vue.computed(()=>vue.unref(h.options.rewardEarly)!=null?vue.unref(h.options.rewardEarly):false),F=vue.computed(()=>vue.unref(h.options.autoDirty)!=null?vue.unref(h.options.autoDirty):!g.value),H=vue.computed(()=>F.value?p.value&&!(T.value||z.value):!(T.value||z.value)),X=vue.ref(false),z=vue.computed(()=>X.value||Object.entries(i.value).some(([U,j])=>j?.$pending)),oe=vue.computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,j])=>[U,j?.$errors]))),y=vue.computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,j])=>[U,j?.$silentErrors]))),G=vue.computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,j])=>j?.$edited)),B=vue.computed(()=>Object.entries(i.value).some(([U,j])=>j?.$anyEdited)),D=vue.computed(()=>m);function se(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,j])=>{let K=vue.effectScope();ge[U]=K.run(()=>{let ye=vue.ref();return vue.watchEffect(()=>{ye.value=j(vue.reactive({$dirty:f,$value:t,$silentValue:d,$error:Q,$pending:z,$invalid:T,$valid:A,$ready:H,$anyDirty:p,$name:D,$silentErrors:y,$errors:oe,$fields:i,$edited:G,$anyEdited:B}));}),ye}),P.push(K);});}let le=vue.computed({get:()=>c?Object.fromEntries(Object.entries(c?.(i.value)??{}).map(([U,j])=>j.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(K=>[K,gt(j,K)])),...Object.fromEntries(["$errors","$silentErrors"].map(K=>[K,yt(j,K)]))}]:[])):{},set(){}}),ge={};return se(),{$dirty:f,$anyDirty:p,$invalid:T,$valid:A,$error:Q,$pending:z,$errors:oe,$silentErrors:y,$ready:H,$name:D,$shortcuts:ge,$groups:le,$silentValue:d,$edited:G,$anyEdited:B,$localPending:X}});}function u(){O?.(),w?.(),v?.(),a?.(),P=[],x={},i.value&&Object.entries(i.value).forEach(([d,f])=>{f.$unwatch();});}function C(){Object.entries(i.value).forEach(([d,f])=>{f.$clearExternalErrors();});}function _(){w?.(),Object.values(i.value).forEach(d=>{d.$reset();}),$.value={...Y(t.value)},S();}function k(d=true,f=false){Object.values(i.value).forEach(p=>{p.$touch(d,f);});}async function J(){u(),t.value=Y({...$.value??{}}),_(),E();}function I(d){return d.filter(([f,p])=>ne(p)?!(p&&typeof p=="object"&&"_null"in p)&&!Z(p):Array.isArray(p)?p.length:true)}function L(d=true){let f=Object.entries(i.value).map(([p,T])=>[p,T.$extractDirtyFields(d)]);return d&&(f=I(f)),Object.fromEntries(f)}async function ie(){try{if(h.schemaMode)return h.onValidate?(k(!1),x.$localPending.value=!0,h.onValidate()):{result:!1,data:t.value};{let d=t.value;return {result:(await Promise.allSettled(Object.values(i.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}}catch{return {result:false,data:t.value}}finally{x.$localPending.value=false;}}let{$shortcuts:de,$localPending:pe,...me}=x;return vue.reactive({...me,...de,$fields:i,$value:t,$resetAll:J,$reset:_,$touch:k,$validate:ie,$unwatch:u,$watch:l,$clearExternalErrors:C,$extractDirtyFields:L})}function Te({rulesDef:e,...t}){if(Et(e,t.state))return At({rulesDef:e,...t});if(bt(t.state,e)){if(Fe(t.state))return ke({rulesDef:e,...t});{let n=vue.effectScope().run(()=>{let R=vue.toRef(t.state.value?t.state:vue.ref({}));return vue.watch(()=>t.state.value,c=>{R.value=c;},{deep:true}),vue.watch(R,c=>{t.state.value=c;},{deep:true}),{fakeState:R}}),{state:o,...s}=t;return ke({rulesDef:e,...s,state:n.fakeState})}}else if(Tt(e))return Ne({rulesDef:e,...t})}function Ie({initialState:e,options:t,scopeRules:r,state:n,customRules:o,shortcuts:s,schemaErrors:R,schemaMode:c=false,onValidate:$}){let m=qe(),h=vue.ref();return h.value=ke({rootRules:r,rulesDef:r,state:n,customMessages:o?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:s,fieldName:"root",path:"",schemaErrors:R,rootSchemaErrors:R,schemaMode:c,onValidate:$}),vue.getCurrentScope()&&vue.onScopeDispose(()=>{h.value?.$unwatch();}),vue.reactive({regle:h})}function tt(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function o(s,R,c){let $=vue.isRef(R)?R:vue.computed(typeof R=="function"?R:()=>R),m={...n,...c},h=vue.isRef(s)?s:vue.ref(s),M=vue.ref({...Y(h.value)});return {r$:Ie({scopeRules:$,state:h,options:m,initialState:M,customRules:e,shortcuts:r}).regle}}return o}var Ue=tt();function rt(){function e(t,r){return r}return e}var nt=rt();function Vt({rules:e,modifiers:t,shortcuts:r}){let n=tt(e,t,r),o=rt();return {useRegle:n,inferRules:o}}function je(e,t){let r=t??false,n=vue.computed({get:()=>r?Object.values(e).map(l=>l.$value):Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$value])),set:l=>{r||typeof l=="object"&&Object.entries(l).forEach(([u,C])=>e[u].$value=C);}}),o=vue.computed({get:()=>Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$silentValue])),set:l=>{typeof l=="object"&&Object.entries(l).forEach(([u,C])=>e[u].$silentValue=C);}}),s=vue.computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$dirty)}),R=vue.computed(()=>Object.entries(e).some(([l,u])=>u?.$anyDirty)),c=vue.computed(()=>Object.entries(e).some(([l,u])=>u?.$invalid)),$=vue.computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$valid)}),m=vue.computed(()=>Object.entries(e).some(([l,u])=>u?.$error)),h=vue.computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$ready)}),M=vue.computed(()=>Object.entries(e).some(([l,u])=>u?.$pending)),x=vue.computed(()=>r?Object.entries(e).map(([l,u])=>u.$errors):Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$errors]))),P=vue.computed(()=>r?Object.entries(e).map(([l,u])=>u.$silentErrors):Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$silentErrors]))),O=vue.computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$edited)}),a=vue.computed(()=>Object.entries(e).some(([l,u])=>u?.$anyEdited)),w=vue.computed(()=>r?Object.values(e):e);function v(){Object.values(e).forEach(l=>{l.$reset();});}function b(){Object.values(e).forEach(l=>{l.$touch();});}function E(){Object.values(e).forEach(l=>{l.$resetAll();});}function i(l=true){return Object.values(e).map(u=>u.$extractDirtyFields(l))}function S(){Object.values(e).forEach(l=>{l.$clearExternalErrors();});}async function V(){try{let l=n.value;return {result:(await Promise.allSettled(Object.values(e).map(_=>_.$validate()))).every(_=>_.status==="fulfilled"?_.value.result===!0:!1),data:l}}catch{return {result:false,data:n.value}}}return vue.reactive({...!r&&{$silentValue:o},$errors:x,$silentErrors:P,$instances:w,$value:n,$dirty:s,$anyDirty:R,$invalid:c,$valid:$,$error:m,$pending:M,$ready:h,$edited:O,$anyEdited:a,$resetAll:E,$reset:v,$touch:b,$validate:V,$extractDirtyFields:i,$clearExternalErrors:S})}function Nt(e){function t(r){let n=vue.computed(()=>vue.toValue(r));R();let o=vue.ref(c(e.value)),s=vue.reactive({r$:o});function R(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}vue.watch(n,R),vue.watch(e,$=>{o.value=c($);},{deep:true});function c($){if(n.value){let m=$[n.value]??{};return je(m,true)}else return je($["~~global"]??{},true)}return {r$:s.r$}}return {useCollectScope:t}}function Ut(e,t){let r=t??Ue;return {useScopedRegle:(o,s,R)=>{let{namespace:c,...$}=R??{},m=vue.computed(()=>vue.toValue(c)),h=vue.ref(`${Object.keys(e.value).length+1}-${he()}`),M=vue.computed(()=>`instance-${h.value}`),{r$:x}=r(o,s,$);O(),St(P),vue.watch(m,(a,w)=>{P(w),O();}),vue.getCurrentInstance()&&vue.onMounted(()=>{let a=vue.getCurrentInstance();typeof window<"u"&&a?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(a?.proxy?.$el?.parentElement)&&P();});function P(a){let w=a??m.value;w?e.value[w]&&delete e.value[w][M.value]:e.value["~~global"][M.value]&&delete e.value["~~global"][M.value];}function O(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][M.value]=x):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][M.value]=x);}return {r$:x,dispose:P,register:O}}}}function at(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):ht(()=>vue.ref({"~~global":{}})))(),{useScopedRegle:n}=Ut(r,e?.customUseRegle),{useCollectScope:o}=Nt(r);return {useScopedRegle:n,useCollectScope:o}}
2
- exports.InternalRuleType=Le;exports.createRule=ze;exports.createScopedUseRegle=at;exports.defineRegleConfig=Vt;exports.inferRules=nt;exports.mergeRegles=je;exports.unwrapRuleParameters=ee;exports.useRegle=Ue;exports.useRootStorage=Ie;
1
+ 'use strict';var vue=require('vue');function Z(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var mt=Symbol("regle-rule");function Lt(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function Y(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>Y(n)))),r=="Map"&&(t=new Map([...e].map(n=>[Y(n[0]),Y(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Lt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=Y(e[n]);}return t}function ne(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Be(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function je(e,t,r){let n,l=(...u)=>new Promise(R=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...u])).then(R);},t);});return l.cancel=()=>{clearTimeout(n),n=undefined;},l}var Le=(r=>(r.Inline="__inline",r.Async="__async",r))(Le||{});function gt(e,t){return e.some(r=>r[t])}function yt(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function ee(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function vt(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function $t(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(R=>R.trim()).filter(R=>R.length>0).length:0}function He(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(c,...$){return e.validator(c,...ee($.length?$:t))},message(c){return typeof e.message=="function"?e.message({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.message},active(c){return typeof e.active=="function"?e.active({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.active??true},tooltip(c){return typeof e.tooltip=="function"?e.tooltip({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.tooltip??[]},exec(c){let $=e.validator(c,...ee(t)),m;return $ instanceof Promise?$.then(h=>(m=h,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)):(m=$,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:l,_params:vt(t),_brand:mt}}function ze(e){if(typeof e.validator=="function"){let r=He(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if($t(e.validator)>1){let l=function(...u){return He(e,...u)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=false,l._tooltip_pacthed=false,l._async=n,l}else return r}throw new Error("Validator must be a function")}function qe(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),l=vue.shallowRef(new Map),u=vue.shallowRef(new Map);function R(v){let b=t.value.get(v);if(b)return b;{let E=vue.ref({});return t.value.set(v,E),E}}function c(v){let b=r.value.get(v);if(b)return b;{let E=vue.ref([]);return r.value.set(v,E),E}}function $(v,b,E){u.value.set(`${v}-${b}`,E);}function m(v,b){return u.value.get(`${v}-${b}`)}function h(v,b){v&&b!=null&&u.value.delete(`${v}-${b}`);}function F(v,b){n.value.set(v,b);}function x(v){return n.value.get(v)??false}function P(v,b){e.value.set(v,b);}function O(v,b){let E=e.value.get(v);return E?a(b,E)?{valid:true}:{valid:false}:undefined}function a(v,b){let E=Object.keys(b),i=Object.keys(v);return i.length!==E.length||!i.every(V=>E.includes(V))?false:i.every(V=>{let o=v[V],s=b[V];return !s||!o||typeof o=="function"||typeof s=="function"||typeof o=="number"||typeof o=="boolean"?false:o._params?o._params?.every((C,_)=>{if(typeof s=="number"||typeof s=="boolean")return true;{let k=ee(s._params),J=ee(o._params);return k?.[_]===J?.[_]}}):true})}function w(v){let b=l.value.get(v);if(b)return b;{let E=vue.ref(false),i=vue.ref(true),S=vue.ref({}),V=vue.ref(false);return l.value.set(v,{$pending:E,$valid:i,$metadata:S,$validating:V}),{$pending:E,$valid:i,$metadata:S,$validating:V}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),u.value.clear();}),{addRuleDeclEntry:P,setDirtyEntry:F,checkRuleDeclEntry:O,getDirtyState:x,trySetRuleStatusRef:w,getFieldsEntry:R,getCollectionsEntry:c,getArrayStatus:m,addArrayStatus:$,deleteArrayStatus:h,arrayStatusStorage:u}}function Ve(e){return ne(e.value)}function Ke(e,t,r){let n=vue.effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function Zt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let u=Number(r[l]),R=Number(n[l]);if(u>R)return 1;if(R>u)return -1;if(!isNaN(u)&&isNaN(R))return 1;if(isNaN(u)&&!isNaN(R))return -1}return 0}var _e=Zt(vue.version,"3.5.0")!==-1;function er(){return Math.floor(Math.random()*Date.now()).toString()}function he(){return typeof window>"u"?er():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function St(e){return vue.getCurrentScope()?(vue.onScopeDispose(e),true):false}function ht(e){let t=false,r,n=vue.effectScope(true);return (...l)=>(t||(r=n.run(()=>e(...l)),t=true),r)}function bt(e,t){return Ve(e)||ne(t.value)&&!Z(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function Et(e,t){return !!e.value&&ne(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Tt(e){return !!e.value&&ne(e.value)}function we(e){return ne(e)&&"_validator"in e}function Pe(e){return typeof e.value!="function"}function xt(e){return ne(e)&&"$fields"in e}function Dt(e){return !!e&&"$rules"in e}function Je({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Ct({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function It({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:u,$debounce:R,modifiers:c}){let $=vue.effectScope(),m={},h,F=vue.ref(false),{$pending:x,$valid:P,$metadata:O,$validating:a}=u.trySetRuleStatusRef(`${l}.${r}`);function w(){$=vue.effectScope(),m=$.run(()=>{let o=vue.ref(false),s=vue.ref(false),C=vue.ref(true),_=vue.ref(false),k=vue.ref(false),J=vue.computed(()=>({$value:n.value,$error:s.value,$dirty:o.value,$pending:_.value,$valid:k.value,$invalid:C.value,$rule:{$valid:P.value,$invalid:!P.value,$pending:x.value},$params:d.value,...O.value})),I=vue.computed(()=>Pe(t)?typeof t.value.active=="function"?t.value.active(J.value):!!t.value.active:true);function L(p){let T="",A=e?e[r]?.[p]:undefined;if(A&&(typeof A=="function"?T=A(J.value):T=A),Pe(t)){let Q=`_${p}_patched`;A&&!t.value[Q]||(typeof t.value[p]=="function"?T=t.value[p](J.value):T=t.value[p]??"");}return T}let ie=vue.computed(()=>{let p=L("message");return Z(p)&&(p="This field is not valid"),p}),de=vue.computed(()=>L("tooltip")),pe=vue.computed(()=>Pe(t)&&t.value.type?t.value.type:r),me=vue.computed(()=>Pe(t)?t.value.validator:t.value),d=vue.computed(()=>typeof t.value=="function"?[]:ee(t.value._params??[])),f=vue.computed(()=>`${l}.${pe.value}`);return {$active:I,$message:ie,$type:pe,$validator:me,$params:d,$path:f,$tooltip:de,$fieldValid:k,$fieldError:s,$fieldDirty:o,$fieldPending:_,$fieldInvalid:C}}),h=vue.watch(m?.$params,()=>{(c.$autoDirty.value||c.$rewardEarly.value&&m.$fieldError.value)&&i();});}w();function v(){P.value=true,m.$fieldDirty.value&&(x.value=true);}async function b(){let o=false;try{let s=m.$validator.value;if(typeof s!="function")return console.error(`${l}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let C=s(n.value,...m.$params.value),_=n.value;v();let k;if(C instanceof Promise?k=await C:k=C,n.value!==_)return !0;if(typeof k=="boolean")o=k;else {let{$valid:J,...I}=k;o=J,O.value=I;}}catch{o=false;}finally{x.value=false;}return o}let E=je(b,R??200);async function i(){try{a.value=!0;let o=!1;if(we(t.value)&&t.value._async)o=await E();else {let s=m.$validator.value,C=s(n.value,...m.$params.value);if(C instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(C!=null)if(typeof C=="boolean")o=C;else {let{$valid:_,...k}=C;o=_,O.value=k;}}return P.value=o,o}catch{return false}finally{a.value=false;}}function S(){P.value=true,O.value={},x.value=false,a.value=false,w();}function V(){h(),$.stop(),$=vue.effectScope();}return vue.reactive({...m,$pending:x,$valid:P,$metadata:O,$haveAsync:F,$validating:a,$validate:i,$unwatch:V,$watch:w,$reset:S})}function Ne({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:u,options:R,externalErrors:c,schemaErrors:$,schemaMode:m,onUnwatch:h,$isArray:F,initialState:x,shortcuts:P}){let O=vue.effectScope(),a,w=[],v,b,E,i,S,V=()=>{};function o(){let y=t.value,G=u.checkRuleDeclEntry(n,y);L.value=Object.fromEntries(Object.entries(y).filter(([B])=>B.startsWith("$"))),_(),I.value=Object.fromEntries(Object.entries(t.value).filter(([B])=>!B.startsWith("$")).map(([B,D])=>{if(D){let se=vue.toRef(()=>D);return [B,It({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:se,ruleKey:B,state:e,path:n,storage:u,$debounce:L.value.$debounce})]}return []}).filter(B=>!!B.length)),a.processShortcuts(),s(),G?.valid!=null&&(a.$dirty.value=u.getDirtyState(n),(a.$dirty.value&&a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V()),u.addRuleDeclEntry(n,y);}function s(){V=a.$debounce.value?je(J,a.$debounce.value??a.$haveAnyAsyncRule?100:0):J;}function C(){I.value&&Object.entries(I.value).forEach(([y,G])=>{G.$unwatch();}),E(),S?.(),a.$dirty.value&&u.setDirtyEntry(n,a.$dirty.value),v?.(),b?.(),O.stop(),O=vue.effectScope(),w.forEach(y=>y.stop()),w=[],h?.(),i?.();}function _(){I.value&&Object.entries(I.value).forEach(([y,G])=>{G.$watch();}),a=O.run(()=>{let y=vue.ref(false),G=vue.ref(false),B=vue.computed(()=>y.value),D=vue.computed(()=>L.value.$debounce),se=vue.computed(()=>L.value.$lazy!=null?L.value.$lazy:vue.unref(R.lazy)!=null?vue.unref(R.lazy):false),le=vue.computed(()=>L.value.$rewardEarly!=null?L.value.$rewardEarly:vue.unref(R.rewardEarly)!=null?vue.unref(R.rewardEarly):false),ge=vue.computed(()=>L.value.$clearExternalErrorsOnChange!=null?L.value.$clearExternalErrorsOnChange:vue.unref(R.clearExternalErrorsOnChange)!=null?vue.unref(R.clearExternalErrorsOnChange):true),U=vue.computed(()=>L.value.$autoDirty!=null?L.value.$autoDirty:vue.unref(R.autoDirty)!=null?vue.unref(R.autoDirty):!le.value),M=vue.computed(()=>Object.entries(I.value).some(([ae,ue])=>ue.$validating)),K=vue.computed({get:()=>e.value,set(ae){v(),e.value=ae,k();}}),ye=vue.computed(()=>ve.value&&!Oe.value&&y.value),lt=vue.computed(()=>Je({field:{$rules:I.value,$error:ye.value,$externalErrors:c?.value,$schemaErrors:$?.value}})),ot=vue.computed(()=>Je({field:{$rules:I.value,$error:ye.value,$externalErrors:c?.value,$schemaErrors:$?.value},silent:true})),We=vue.computed(()=>y.value?x.value instanceof Date&&e.value instanceof Date?Be(x.value).getDate()!==Be(e.value).getDate():x.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(x.value)?e.value.length!==x.value.length:x.value!==e.value:false),st=vue.computed(()=>We.value),ut=vue.computed(()=>Ct({field:{$rules:I.value}})),it=vue.computed(()=>U.value?B.value&&!(ve.value||Oe.value):!(ve.value||Oe.value)),Oe=vue.computed(()=>G.value||!le.value?Object.entries(I.value).some(([ae,ue])=>ue.$pending):false),ve=vue.computed(()=>c?.value?.length||$?.value?.length?true:Fe.value?false:!le.value||le.value&&G.value?Object.entries(I.value).some(([ae,ue])=>!ue.$valid):false),ct=vue.computed(()=>l),Fe=vue.computed(()=>!!(Z(I.value)&&!m)),ft=vue.computed(()=>c?.value?.length||Fe.value?false:y.value&&!Z(e.value)&&!M.value?m?!$?.value?.length:Object.values(I.value).every(ae=>ae.$valid&&ae.$active):false),Wt=vue.computed(()=>Object.entries(I.value).some(([ae,ue])=>ue.$haveAsync));function Bt(){P?.fields&&Object.entries(P.fields).forEach(([ae,ue])=>{let dt=vue.effectScope();Rt[ae]=dt.run(()=>{let pt=vue.ref();return vue.watchEffect(()=>{pt.value=ue(vue.reactive({$dirty:y,$externalErrors:c?.value??[],$value:e,$silentValue:K,$rules:I,$error:ye,$pending:Oe,$invalid:ve,$valid:ft,$errors:lt,$ready:it,$silentErrors:ot,$anyDirty:B,$tooltips:ut,$name:ct,$inactive:Fe,$edited:We,$anyEdited:st}));}),pt}),w.push(dt);});}let Rt={};return vue.watch(ve,ae=>{ae||(G.value=false);}),{$error:ye,$pending:Oe,$invalid:ve,$valid:ft,$debounce:D,$lazy:se,$errors:lt,$ready:it,$silentErrors:ot,$rewardEarly:le,$autoDirty:U,$clearExternalErrorsOnChange:ge,$anyDirty:B,$edited:We,$anyEdited:st,$name:ct,$haveAnyAsyncRule:Wt,$shortcuts:Rt,$validating:M,$tooltips:ut,$dirty:y,triggerPunishment:G,processShortcuts:Bt,$silentValue:K,$inactive:Fe}}),k(),E=vue.watch(a.$dirty,y=>{u.setDirtyEntry(n,y),Object.values(I.value).forEach(G=>{G.$fieldDirty=y;});}),S=vue.watch([a.$error,a.$valid,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(y=>{y.$fieldError=a.$error.value,y.$fieldInvalid=a.$invalid.value,y.$fieldPending=a.$pending.value,y.$fieldValid=a.$valid.value;});}),b=vue.watch(a.$valid,y=>{a.$rewardEarly.value&&y&&(a.triggerPunishment.value=false);}),i=vue.watch(a.$haveAnyAsyncRule,s);}function k(){v=vue.watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&o(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&f();},{deep:F?true:_e?1:true,flush:"post"});}function J(){Object.values(I.value).forEach(y=>{y.$validate();});}let I=vue.ref({}),L=vue.ref({});o();function ie(){f(),a.$dirty.value=false,a.triggerPunishment.value=false,u.setDirtyEntry(n,false),x.value=ne(e.value)?Y(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(I.value).forEach(([y,G])=>{G.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(y=>y.$validate());}function de(y=true,G=false){a.$dirty.value||(a.$dirty.value=true),G&&y?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V():y&&V();}async function pe(){try{let y=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:y};return m?{result:!$?.value?.length,data:y}:Z(I.value)?{result:!0,data:y}:{result:(await Promise.allSettled(Object.entries(I.value).map(([D,se])=>se.$validate()))).every(D=>D.status==="fulfilled"?D.value===!0:!1),data:y}}catch{return {result:false,data:e.value}}}function me(){C(),e.value=Y(x),ie();}function d(y=true){return a.$dirty.value?e.value:y?{_null:true}:null}function f(){c?.value?.length&&(c.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&V();let{$shortcuts:p,$validating:T,$autoDirty:A,$rewardEarly:Q,$clearExternalErrorsOnChange:g,$haveAnyAsyncRule:j,$debounce:H,$lazy:X,triggerPunishment:z,...oe}=a;return vue.reactive({...oe,$externalErrors:c,$value:e,$rules:I,...p,$reset:ie,$touch:de,$validate:pe,$unwatch:C,$watch:_,$resetAll:me,$extractDirtyFields:d,$clearExternalErrors:f})}function Xe({$id:e,path:t,index:r,options:n,storage:l,stateValue:u,customMessages:R,rules:c,externalErrors:$,schemaErrors:m,initialState:h,shortcuts:F,fieldName:x,schemaMode:P}){let O=c.$key?c.$key:he(),a=`${t}.${String(O)}`;typeof u.value=="object"&&u.value!=null&&(u.value.$id?a=`${t}.${u.value.$id}`:Object.defineProperties(u.value,{$id:{value:O,enumerable:false,configurable:false,writable:false}}));let w=vue.toRef($?.value??[],r),v=vue.computed(()=>m?.value?.[r]),b=Te({state:u,rulesDef:vue.toRef(()=>c),customMessages:R,path:a,storage:l,options:n,externalErrors:w,schemaErrors:v,initialState:h,shortcuts:F,fieldName:x,schemaMode:P});if(b){let E=u.value?.$id;b.$id=E??String(O),l.addArrayStatus(e,b.$id,b);}return b}function At({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:u,externalErrors:R,schemaErrors:c,schemaMode:$,initialState:m,shortcuts:h,fieldName:F}){let x=vue.effectScope(),P,O=vue.effectScope(),a,w=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let v=vue.ref(),b=vue.ref(e.value),E,i=vue.ref({}),S=l.getCollectionsEntry(n);a=O.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(f=>typeof f!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(f=>we(f)||typeof f=="function"):false)})),V(),C();function V(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(v.value=he(),Object.defineProperties(e.value,{$id:{value:v.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(v.value=e.value.$id)),b.value=i.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?S.value=e.value.filter(d=>typeof d=="object").map((d,f)=>{let{scope:p,unwrapped:T}=Ke(t.value.$each,vue.toRef(()=>d),f);p&&w.push(p);let A=vue.toRef(m.value??[],f),Q=vue.toRef(R?.value??{},"$each"),g=vue.computed(()=>c?.value?.$each),j=Xe({$id:v.value,path:n,customMessages:r,rules:T??{},stateValue:vue.toRef(()=>d),index:f,options:u,storage:l,externalErrors:Q,schemaErrors:g,initialState:A,shortcuts:h,fieldName:F,schemaMode:$});return j||null}).filter(d=>!!d):S.value=[],i.value=Ne({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:u,externalErrors:vue.toRef(R?.value??{},"$self"),schemaErrors:vue.computed(()=>c?.value?.$self),$isArray:true,initialState:m,shortcuts:h,fieldName:F,schemaMode:$});}function o(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let d=Y(S.value);S.value=e.value.filter(f=>typeof f=="object").map((f,p)=>{let T=vue.toRef(()=>f);if(f.$id&&S.value.find(A=>A.$id===f.$id)){let A=l.getArrayStatus(v.value,f.$id);return A?(A.$value=T,A):null}else {let{scope:A,unwrapped:Q}=Ke(t.value.$each,T,p);A&&w.push(A);let g=vue.toRef(R?.value??{},"$each"),j=vue.computed(()=>c?.value?.$each??[]),H=Xe({$id:v.value,path:n,customMessages:r,rules:Q??{},stateValue:T,index:p,options:u,storage:l,externalErrors:g,schemaErrors:j,initialState:vue.toRef(m.value??[],p),shortcuts:h,fieldName:F,schemaMode:$});return H||null}}).filter(f=>!!f),d.filter(f=>!e.value?.find(p=>f.$id===p.$id)).forEach((f,p)=>{l.deleteArrayStatus(v.value,p.toString());});}else S.value=[];}function s(){E=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?V():o();},{deep:_e?1:true,flush:"pre"});}function C(){s(),x=vue.effectScope(),P=x.run(()=>{let d=vue.computed({get:()=>e.value,set(D){E(),e.value=D,s();}}),f=vue.computed(()=>i.value.$dirty&&(!S.value.length||S.value.every(D=>D.$dirty))),p=vue.computed(()=>i.value.$anyDirty||S.value.some(D=>D.$anyDirty)),T=vue.computed(()=>i.value.$invalid||S.value.some(D=>D.$invalid)),A=vue.computed(()=>(Z(i.value.$rules)?true:i.value.$valid)&&(!S.value.length||S.value.every(D=>D.$valid))),Q=vue.computed(()=>i.value.$error||S.value.some(D=>D.$error)),g=vue.computed(()=>!(T.value||j.value)),j=vue.computed(()=>i.value.$pending||S.value.some(D=>D.$pending)),H=vue.computed(()=>!!S.value.length&&S.value.every(D=>D.$edited)),X=vue.computed(()=>i.value.$anyEdited||S.value.some(D=>D.$anyEdited)),z=vue.computed(()=>({$self:i.value.$errors,$each:S.value.map(D=>D.$errors)})),oe=vue.computed(()=>({$self:i.value.$silentErrors,$each:S.value.map(D=>D.$silentErrors)})),y=vue.computed(()=>F);function G(){h?.collections&&Object.entries(h?.collections).forEach(([D,se])=>{let le=vue.effectScope();B[D]=le.run(()=>{let ge=vue.ref();return vue.watchEffect(()=>{ge.value=se(vue.reactive({$dirty:f,$error:Q,$silentValue:d,$pending:j,$invalid:T,$valid:A,$errors:z,$ready:g,$silentErrors:oe,$anyDirty:p,$name:y,$each:S,$self:i,$value:e,$edited:H,$anyEdited:X}));}),ge}),w.push(le);});}let B={};return G(),{$dirty:f,$anyDirty:p,$invalid:T,$valid:A,$error:Q,$pending:j,$errors:z,$silentErrors:oe,$ready:g,$name:y,$shortcuts:B,$silentValue:d,$edited:H,$anyEdited:X}}),a.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function _(){E&&E(),i.value&&i.value.$unwatch(),S.value&&S.value.forEach(d=>{"$dirty"in d&&d.$unwatch();}),x.stop(),x=vue.effectScope(),O.stop(),O=vue.effectScope(true),w.forEach(d=>d.stop()),w=[];}function k(d=true,f=false){i.value.$touch(d,f),S.value.forEach(p=>{p.$touch(d,f);});}function J(){i.value.$reset(),S.value.forEach(d=>{d.$reset();});}async function I(){let d=e.value;try{return {result:(await Promise.allSettled([i.value.$validate(),...S.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}catch{return {result:false,data:d}}}function L(){i.value.$clearExternalErrors(),S.value.forEach(d=>{d.$clearExternalErrors();});}function ie(d=true){let f=S.value.map(p=>{if(xt(p))return p.$extractDirtyFields(d)});return d&&f.every(p=>Z(p))&&(f=[]),f}function de(){_(),e.value=Y(m.value),J();}let{$shortcuts:pe,...me}=P;return vue.reactive({$self:i,...me,...pe,$each:S,$value:e,$validate:I,$unwatch:_,$watch:C,$touch:k,$reset:J,$resetAll:de,$extractDirtyFields:ie,$clearExternalErrors:L})}function ke({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:u,rootSchemaErrors:R,validationGroups:c,initialState:$,fieldName:m,...h}){let F=vue.effectScope(),x,P=[],O=null,a=null,w=null,v=null;async function E(d=true){let f=Object.entries(e.value),p=Object.fromEntries(f.filter(([g,j])=>!!j).map(([g,j])=>{if(j){let H=vue.toRef(t.value??{},g),X=vue.toRef(()=>j),z=vue.toRef(l?.value??{},g),oe=vue.computed(()=>u?.value?.[g]),y=vue.toRef($?.value??{},g);return [g,Te({state:H,rulesDef:X,path:r?`${r}.${g}`:g,externalErrors:z,schemaErrors:oe,initialState:y,fieldName:g,...h})]}return []})),T=Object.fromEntries(Object.entries(vue.unref(l)??{}).filter(([g,j])=>!(g in e.value)&&!!j).map(([g])=>{let j=vue.toRef(t.value??{},g),H=vue.toRef(l?.value??{},g),X=vue.computed(()=>u?.value?.[g]),z=vue.toRef($?.value??{},g);return [g,Te({state:j,rulesDef:vue.computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:X,initialState:z,fieldName:g,...h})]})),A=Object.fromEntries(Object.entries(vue.unref(u)??{}).map(([g])=>{let j=vue.toRef(t.value??{},g),H=vue.toRef(l?.value??{},g),X=vue.computed(()=>u?.value?.[g]),z=vue.toRef($?.value??{},g);return [g,Te({state:j,rulesDef:vue.computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:X,initialState:z,fieldName:g,...h})]})),Q=Object.fromEntries(Object.entries(t.value??{}).filter(([g])=>!(g in e.value)&&!(g in(T??{}))&&!(g in(A??{}))).map(([g])=>{let j=vue.toRef(t.value??{},g),H=vue.toRef(l?.value??{},g),X=vue.computed(()=>u?.value?.[g]),z=vue.toRef($?.value??{},g);return [g,Te({state:j,rulesDef:vue.computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:X,initialState:z,fieldName:g,...h})]}));i.value={...p,...T,...A,...Q},d&&o();}let i=h.storage.getFieldsEntry(r);E();function S(){l&&(w=vue.watch(l,()=>{s(),E();},{deep:true}));}function V(){v=vue.watch(t,()=>{s(),E(),k(true,true);},{flush:"sync"});}function o(){n&&(O?.(),O=vue.watch(n,()=>{s(),E();},{deep:true,flush:"post"}),S()),R&&(a?.(),a=vue.watch(R,()=>{s(),E();},{deep:true,flush:"post"})),V(),x=F.run(()=>{let d=vue.computed({get:()=>t.value,set(U){s(),t.value=U,E();}}),f=vue.computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,M])=>M?.$dirty)),p=vue.computed(()=>Object.entries(i.value).some(([U,M])=>M?.$anyDirty)),T=vue.computed(()=>Object.entries(i.value).some(([U,M])=>M?.$invalid)),A=vue.computed(()=>{let U=Object.entries(i.value).filter(([M,K])=>Dt(K)?!K.$inactive:true);return U.length?U.every(([M,K])=>K?.$valid):false}),Q=vue.computed(()=>p.value&&!z.value&&T.value),g=vue.computed(()=>vue.unref(h.options.rewardEarly)!=null?vue.unref(h.options.rewardEarly):false),j=vue.computed(()=>vue.unref(h.options.autoDirty)!=null?vue.unref(h.options.autoDirty):!g.value),H=vue.computed(()=>j.value?p.value&&!(T.value||z.value):!(T.value||z.value)),X=vue.ref(false),z=vue.computed(()=>X.value||Object.entries(i.value).some(([U,M])=>M?.$pending)),oe=vue.computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,M])=>[U,M?.$errors]))),y=vue.computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,M])=>[U,M?.$silentErrors]))),G=vue.computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,M])=>M?.$edited)),B=vue.computed(()=>Object.entries(i.value).some(([U,M])=>M?.$anyEdited)),D=vue.computed(()=>m);function se(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,M])=>{let K=vue.effectScope();ge[U]=K.run(()=>{let ye=vue.ref();return vue.watchEffect(()=>{ye.value=M(vue.reactive({$dirty:f,$value:t,$silentValue:d,$error:Q,$pending:z,$invalid:T,$valid:A,$ready:H,$anyDirty:p,$name:D,$silentErrors:y,$errors:oe,$fields:i,$edited:G,$anyEdited:B}));}),ye}),P.push(K);});}let le=vue.computed({get:()=>c?Object.fromEntries(Object.entries(c?.(i.value)??{}).map(([U,M])=>M.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(K=>[K,gt(M,K)])),...Object.fromEntries(["$errors","$silentErrors"].map(K=>[K,yt(M,K)]))}]:[])):{},set(){}}),ge={};return se(),{$dirty:f,$anyDirty:p,$invalid:T,$valid:A,$error:Q,$pending:z,$errors:oe,$silentErrors:y,$ready:H,$name:D,$shortcuts:ge,$groups:le,$silentValue:d,$edited:G,$anyEdited:B,$localPending:X}});}function s(){O?.(),w?.(),v?.(),a?.(),P=[],x={},i.value&&Object.entries(i.value).forEach(([d,f])=>{f.$unwatch();});}function C(){Object.entries(i.value).forEach(([d,f])=>{f.$clearExternalErrors();});}function _(){w?.(),Object.values(i.value).forEach(d=>{d.$reset();}),$.value={...Y(t.value)},S();}function k(d=true,f=false){Object.values(i.value).forEach(p=>{p.$touch(d,f);});}async function J(){s(),t.value=Y({...$.value??{}}),_(),E();}function I(d){return d.filter(([f,p])=>ne(p)?!(p&&typeof p=="object"&&"_null"in p)&&!Z(p):Array.isArray(p)?p.length:true)}function L(d=true){let f=Object.entries(i.value).map(([p,T])=>[p,T.$extractDirtyFields(d)]);return d&&(f=I(f)),Object.fromEntries(f)}async function ie(){try{if(h.schemaMode)return h.onValidate?(k(!1),x.$localPending.value=!0,h.onValidate()):{result:!1,data:t.value};{let d=t.value;return {result:(await Promise.allSettled(Object.values(i.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}}catch{return {result:false,data:t.value}}finally{x.$localPending.value=false;}}let{$shortcuts:de,$localPending:pe,...me}=x;return vue.reactive({...me,...de,$fields:i,$value:t,$resetAll:J,$reset:_,$touch:k,$validate:ie,$unwatch:s,$watch:o,$clearExternalErrors:C,$extractDirtyFields:L})}function Te({rulesDef:e,...t}){if(Et(e,t.state))return At({rulesDef:e,...t});if(bt(t.state,e)){if(Ve(t.state))return ke({rulesDef:e,...t});{let n=vue.effectScope().run(()=>{let R=vue.toRef(t.state.value?t.state:vue.ref({}));return vue.watch(()=>t.state.value,c=>{R.value=c;},{deep:true}),vue.watch(R,c=>{t.state.value=c;},{deep:true}),{fakeState:R}}),{state:l,...u}=t;return ke({rulesDef:e,...u,state:n.fakeState})}}else if(Tt(e))return Ne({rulesDef:e,...t})}function Ie({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:u,schemaErrors:R,schemaMode:c=false,onValidate:$}){let m=qe(),h=vue.ref();return h.value=ke({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:u,fieldName:"root",path:"",schemaErrors:R,rootSchemaErrors:R,schemaMode:c,onValidate:$}),vue.getCurrentScope()&&vue.onScopeDispose(()=>{h.value?.$unwatch();}),vue.reactive({regle:h})}function tt(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(u,R,c){let $=vue.isRef(R)?R:vue.computed(typeof R=="function"?R:()=>R),m={...n,...c},h=vue.isRef(u)?u:vue.ref(u),F=vue.ref({...Y(h.value)});return {r$:Ie({scopeRules:$,state:h,options:m,initialState:F,customRules:e,shortcuts:r}).regle}}return l}var Ue=tt();function rt(){function e(t,r){return r}return e}var nt=rt();function Vt({rules:e,modifiers:t,shortcuts:r}){let n=tt(e,t,r),l=rt();return {useRegle:n,inferRules:l}}function Me(e,t){let r=t??false,n=vue.computed({get:()=>r?Object.values(e).map(o=>o.$value):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$value])),set:o=>{r||typeof o=="object"&&Object.entries(o).forEach(([s,C])=>e[s].$value=C);}}),l=vue.computed({get:()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentValue])),set:o=>{typeof o=="object"&&Object.entries(o).forEach(([s,C])=>e[s].$silentValue=C);}}),u=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$dirty)}),R=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$anyDirty)),c=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$invalid)),$=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$valid)}),m=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$error)),h=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$ready)}),F=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$pending)),x=vue.computed(()=>r?Object.entries(e).map(([o,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$errors]))),P=vue.computed(()=>r?Object.entries(e).map(([o,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentErrors]))),O=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$edited)}),a=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$anyEdited)),w=vue.computed(()=>r?Object.values(e):e);function v(){Object.values(e).forEach(o=>{o.$reset();});}function b(){Object.values(e).forEach(o=>{o.$touch();});}function E(){Object.values(e).forEach(o=>{o.$resetAll();});}function i(o=true){return Object.values(e).map(s=>s.$extractDirtyFields(o))}function S(){Object.values(e).forEach(o=>{o.$clearExternalErrors();});}async function V(){try{let o=n.value;return {result:(await Promise.allSettled(Object.values(e).map(_=>_.$validate()))).every(_=>_.status==="fulfilled"?_.value.result===!0:!1),data:o}}catch{return {result:false,data:n.value}}}return vue.reactive({...!r&&{$silentValue:l},$errors:x,$silentErrors:P,$instances:w,$value:n,$dirty:u,$anyDirty:R,$invalid:c,$valid:$,$error:m,$pending:F,$ready:h,$edited:O,$anyEdited:a,$resetAll:E,$reset:v,$touch:b,$validate:V,$extractDirtyFields:i,$clearExternalErrors:S})}function Nt(e){function t(r){let n=vue.computed(()=>vue.toValue(r));R();let l=vue.ref(c(e.value)),u=vue.reactive({r$:l});function R(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}vue.watch(n,R),vue.watch(e,$=>{l.value=c($);},{deep:true});function c($){if(n.value){let m=$[n.value]??{};return Me(m,true)}else return Me($["~~global"]??{},true)}return {r$:u.r$}}return {useCollectScope:t}}function Ut(e,t){let r=t??Ue;return {useScopedRegle:(l,u,R)=>{let{namespace:c,...$}=R??{},m=vue.computed(()=>vue.toValue(c)),h=vue.ref(`${Object.keys(e.value).length+1}-${he()}`),F=vue.computed(()=>`instance-${h.value}`),{r$:x}=r(l,u,$);O(),St(P),vue.watch(m,(a,w)=>{P(w),O();}),vue.getCurrentInstance()&&vue.onMounted(()=>{let a=vue.getCurrentInstance();typeof window<"u"&&a?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(a?.proxy?.$el?.parentElement)&&P();});function P(a){let w=a??m.value;w?e.value[w]&&delete e.value[w][F.value]:e.value["~~global"][F.value]&&delete e.value["~~global"][F.value];}function O(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][F.value]=x):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][F.value]=x);}return {r$:x,dispose:P,register:O}}}}function at(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):ht(()=>vue.ref({"~~global":{}})))(),{useScopedRegle:n}=Ut(r,e?.customUseRegle),{useCollectScope:l}=Nt(r);return {useScopedRegle:n,useCollectScope:l}}
2
+ exports.InternalRuleType=Le;exports.createRule=ze;exports.createScopedUseRegle=at;exports.defineRegleConfig=Vt;exports.inferRules=nt;exports.mergeRegles=Me;exports.unwrapRuleParameters=ee;exports.useRegle=Ue;exports.useRootStorage=Ie;
@@ -1,2 +1,2 @@
1
- import {toValue,version,ref,getCurrentScope,onScopeDispose,reactive,computed,shallowRef,effectScope,watch,getCurrentInstance,onMounted,isRef,toRef,unref,watchEffect}from'vue';function Z(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var mt=Symbol("regle-rule");function Lt(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function Y(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>Y(n)))),r=="Map"&&(t=new Map([...e].map(n=>[Y(n[0]),Y(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Lt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=Y(e[n]);}return t}function ne(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Be(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}var Le=(r=>(r.Inline="__inline",r.Async="__async",r))(Le||{});function gt(e,t){return e.some(r=>r[t])}function yt(e,t){return e.reduce((r,n)=>{let o=n[t]||[];return r.concat(o)},[])}function ee(e){try{return e.map(t=>toValue(t))}catch{return []}}function vt(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function $t(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(R=>R.trim()).filter(R=>R.length>0).length:0}function He(e,...t){let{validator:r,type:n}=e,o=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(c,...$){return e.validator(c,...ee($.length?$:t))},message(c){return typeof e.message=="function"?e.message({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.message},active(c){return typeof e.active=="function"?e.active({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.active??true},tooltip(c){return typeof e.tooltip=="function"?e.tooltip({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.tooltip??[]},exec(c){let $=e.validator(c,...ee(t)),m;return $ instanceof Promise?$.then(h=>(m=h,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)):(m=$,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:o,_params:vt(t),_brand:mt}}function ze(e){if(typeof e.validator=="function"){let r=He(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if($t(e.validator)>1){let o=function(...s){return He(e,...s)};return o.validator=r.validator,o.message=r.message,o.active=r.active,o.tooltip=r.tooltip,o.type=r.type,o.exec=r.exec,o._validator=r.validator,o._message=r.message,o._active=r.active,o._tooltip=r.tooltip,o._type=e.type,o._message_pacthed=false,o._tooltip_pacthed=false,o._async=n,o}else return r}throw new Error("Validator must be a function")}function qe(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),o=shallowRef(new Map),s=shallowRef(new Map);function R(v){let b=t.value.get(v);if(b)return b;{let E=ref({});return t.value.set(v,E),E}}function c(v){let b=r.value.get(v);if(b)return b;{let E=ref([]);return r.value.set(v,E),E}}function $(v,b,E){s.value.set(`${v}-${b}`,E);}function m(v,b){return s.value.get(`${v}-${b}`)}function h(v,b){v&&b!=null&&s.value.delete(`${v}-${b}`);}function M(v,b){n.value.set(v,b);}function x(v){return n.value.get(v)??false}function P(v,b){e.value.set(v,b);}function O(v,b){let E=e.value.get(v);return E?a(b,E)?{valid:true}:{valid:false}:undefined}function a(v,b){let E=Object.keys(b),i=Object.keys(v);return i.length!==E.length||!i.every(V=>E.includes(V))?false:i.every(V=>{let l=v[V],u=b[V];return !u||!l||typeof l=="function"||typeof u=="function"||typeof l=="number"||typeof l=="boolean"?false:l._params?l._params?.every((C,_)=>{if(typeof u=="number"||typeof u=="boolean")return true;{let k=ee(u._params),J=ee(l._params);return k?.[_]===J?.[_]}}):true})}function w(v){let b=o.value.get(v);if(b)return b;{let E=ref(false),i=ref(true),S=ref({}),V=ref(false);return o.value.set(v,{$pending:E,$valid:i,$metadata:S,$validating:V}),{$pending:E,$valid:i,$metadata:S,$validating:V}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),o.value.clear(),s.value.clear();}),{addRuleDeclEntry:P,setDirtyEntry:M,checkRuleDeclEntry:O,getDirtyState:x,trySetRuleStatusRef:w,getFieldsEntry:R,getCollectionsEntry:c,getArrayStatus:m,addArrayStatus:$,deleteArrayStatus:h,arrayStatusStorage:s}}function Fe(e){return ne(e.value)}function Ke(e,t,r){let n=effectScope(),o;return e instanceof Function?o=n.run(()=>e(t,r??0)):o=e,{scope:n,unwrapped:o}}function Ve(e,t,r){let n,o=(...s)=>new Promise(R=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...s])).then(R);},t);});return o.cancel=()=>{clearTimeout(n),n=undefined;},o}function Zt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let o=0;o<Math.min(r.length,n.length);o++){let s=Number(r[o]),R=Number(n[o]);if(s>R)return 1;if(R>s)return -1;if(!isNaN(s)&&isNaN(R))return 1;if(isNaN(s)&&!isNaN(R))return -1}return 0}var _e=Zt(version,"3.5.0")!==-1;function er(){return Math.floor(Math.random()*Date.now()).toString()}function he(){return typeof window>"u"?er():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function St(e){return getCurrentScope()?(onScopeDispose(e),true):false}function ht(e){let t=false,r,n=effectScope(true);return (...o)=>(t||(r=n.run(()=>e(...o)),t=true),r)}function bt(e,t){return Fe(e)||ne(t.value)&&!Z(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function Et(e,t){return !!e.value&&ne(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Tt(e){return !!e.value&&ne(e.value)}function we(e){return ne(e)&&"_validator"in e}function Pe(e){return typeof e.value!="function"}function xt(e){return ne(e)&&"$fields"in e}function Dt(e){return !!e&&"$rules"in e}function Je({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Ct({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function It({customMessages:e,rule:t,ruleKey:r,state:n,path:o,storage:s,$debounce:R,modifiers:c}){let $=effectScope(),m={},h,M=ref(false),{$pending:x,$valid:P,$metadata:O,$validating:a}=s.trySetRuleStatusRef(`${o}.${r}`);function w(){$=effectScope(),m=$.run(()=>{let l=ref(false),u=ref(false),C=ref(true),_=ref(false),k=ref(false),J=computed(()=>({$value:n.value,$error:u.value,$dirty:l.value,$pending:_.value,$valid:k.value,$invalid:C.value,$rule:{$valid:P.value,$invalid:!P.value,$pending:x.value},$params:d.value,...O.value})),I=computed(()=>Pe(t)?typeof t.value.active=="function"?t.value.active(J.value):!!t.value.active:true);function L(p){let T="",A=e?e[r]?.[p]:undefined;if(A&&(typeof A=="function"?T=A(J.value):T=A),Pe(t)){let Q=`_${p}_patched`;A&&!t.value[Q]||(typeof t.value[p]=="function"?T=t.value[p](J.value):T=t.value[p]??"");}return T}let ie=computed(()=>{let p=L("message");return Z(p)&&(p="This field is not valid"),p}),de=computed(()=>L("tooltip")),pe=computed(()=>Pe(t)&&t.value.type?t.value.type:r),me=computed(()=>Pe(t)?t.value.validator:t.value),d=computed(()=>typeof t.value=="function"?[]:ee(t.value._params??[])),f=computed(()=>`${o}.${pe.value}`);return {$active:I,$message:ie,$type:pe,$validator:me,$params:d,$path:f,$tooltip:de,$fieldValid:k,$fieldError:u,$fieldDirty:l,$fieldPending:_,$fieldInvalid:C}}),h=watch(m?.$params,()=>{(c.$autoDirty.value||c.$rewardEarly.value&&m.$fieldError.value)&&i();});}w();function v(){P.value=true,m.$fieldDirty.value&&(x.value=true);}async function b(){let l=false;try{let u=m.$validator.value,C=u(n.value,...m.$params.value),_=n.value;v();let k;if(C instanceof Promise?k=await C:k=C,n.value!==_)return !0;if(typeof k=="boolean")l=k;else {let{$valid:J,...I}=k;l=J,O.value=I;}}catch{l=false;}finally{x.value=false;}return l}let E=Ve(b,R??200);async function i(){try{a.value=!0;let l=!1;if(we(t.value)&&t.value._async)l=await E();else {let u=m.$validator.value,C=u(n.value,...m.$params.value);if(C instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(C!=null)if(typeof C=="boolean")l=C;else {let{$valid:_,...k}=C;l=_,O.value=k;}}return P.value=l,l}catch{return false}finally{a.value=false;}}function S(){P.value=true,O.value={},x.value=false,a.value=false,w();}function V(){h(),$.stop(),$=effectScope();}return reactive({...m,$pending:x,$valid:P,$metadata:O,$haveAsync:M,$validating:a,$validate:i,$unwatch:V,$watch:w,$reset:S})}function Ne({state:e,rulesDef:t,customMessages:r,path:n,fieldName:o,storage:s,options:R,externalErrors:c,schemaErrors:$,schemaMode:m,onUnwatch:h,$isArray:M,initialState:x,shortcuts:P}){let O=effectScope(),a,w=[],v,b,E,i,S,V=()=>{};function l(){let y=t.value,G=s.checkRuleDeclEntry(n,y);L.value=Object.fromEntries(Object.entries(y).filter(([B])=>B.startsWith("$"))),_(),I.value=Object.fromEntries(Object.entries(t.value).filter(([B])=>!B.startsWith("$")).map(([B,D])=>{if(D){let se=toRef(()=>D);return [B,It({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:se,ruleKey:B,state:e,path:n,storage:s,$debounce:L.value.$debounce})]}return []}).filter(B=>!!B.length)),a.processShortcuts(),u(),G?.valid!=null&&(a.$dirty.value=s.getDirtyState(n),(a.$dirty.value&&a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V()),s.addRuleDeclEntry(n,y);}function u(){V=a.$debounce.value?Ve(J,a.$debounce.value??a.$haveAnyAsyncRule?100:0):J;}function C(){I.value&&Object.entries(I.value).forEach(([y,G])=>{G.$unwatch();}),E(),S?.(),a.$dirty.value&&s.setDirtyEntry(n,a.$dirty.value),v?.(),b?.(),O.stop(),O=effectScope(),w.forEach(y=>y.stop()),w=[],h?.(),i?.();}function _(){I.value&&Object.entries(I.value).forEach(([y,G])=>{G.$watch();}),a=O.run(()=>{let y=ref(false),G=ref(false),B=computed(()=>y.value),D=computed(()=>L.value.$debounce),se=computed(()=>L.value.$lazy!=null?L.value.$lazy:unref(R.lazy)!=null?unref(R.lazy):false),le=computed(()=>L.value.$rewardEarly!=null?L.value.$rewardEarly:unref(R.rewardEarly)!=null?unref(R.rewardEarly):false),ge=computed(()=>L.value.$clearExternalErrorsOnChange!=null?L.value.$clearExternalErrorsOnChange:unref(R.clearExternalErrorsOnChange)!=null?unref(R.clearExternalErrorsOnChange):true),U=computed(()=>L.value.$autoDirty!=null?L.value.$autoDirty:unref(R.autoDirty)!=null?unref(R.autoDirty):!le.value),j=computed(()=>Object.entries(I.value).some(([ae,ue])=>ue.$validating)),K=computed({get:()=>e.value,set(ae){v(),e.value=ae,k();}}),ye=computed(()=>ve.value&&!Oe.value&&y.value),lt=computed(()=>Je({field:{$rules:I.value,$error:ye.value,$externalErrors:c?.value,$schemaErrors:$?.value}})),ot=computed(()=>Je({field:{$rules:I.value,$error:ye.value,$externalErrors:c?.value,$schemaErrors:$?.value},silent:true})),We=computed(()=>y.value?x.value instanceof Date&&e.value instanceof Date?Be(x.value).getDate()!==Be(e.value).getDate():x.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(x.value)?e.value.length!==x.value.length:x.value!==e.value:false),st=computed(()=>We.value),ut=computed(()=>Ct({field:{$rules:I.value}})),it=computed(()=>U.value?B.value&&!(ve.value||Oe.value):!(ve.value||Oe.value)),Oe=computed(()=>G.value||!le.value?Object.entries(I.value).some(([ae,ue])=>ue.$pending):false),ve=computed(()=>c?.value?.length||$?.value?.length?true:Me.value?false:!le.value||le.value&&G.value?Object.entries(I.value).some(([ae,ue])=>!ue.$valid):false),ct=computed(()=>o),Me=computed(()=>!!(Z(I.value)&&!m)),ft=computed(()=>c?.value?.length||Me.value?false:y.value&&!Z(e.value)&&!j.value?m?!$?.value?.length:Object.values(I.value).every(ae=>ae.$valid&&ae.$active):false),Wt=computed(()=>Object.entries(I.value).some(([ae,ue])=>ue.$haveAsync));function Bt(){P?.fields&&Object.entries(P.fields).forEach(([ae,ue])=>{let dt=effectScope();Rt[ae]=dt.run(()=>{let pt=ref();return watchEffect(()=>{pt.value=ue(reactive({$dirty:y,$externalErrors:c?.value??[],$value:e,$silentValue:K,$rules:I,$error:ye,$pending:Oe,$invalid:ve,$valid:ft,$errors:lt,$ready:it,$silentErrors:ot,$anyDirty:B,$tooltips:ut,$name:ct,$inactive:Me,$edited:We,$anyEdited:st}));}),pt}),w.push(dt);});}let Rt={};return watch(ve,ae=>{ae||(G.value=false);}),{$error:ye,$pending:Oe,$invalid:ve,$valid:ft,$debounce:D,$lazy:se,$errors:lt,$ready:it,$silentErrors:ot,$rewardEarly:le,$autoDirty:U,$clearExternalErrorsOnChange:ge,$anyDirty:B,$edited:We,$anyEdited:st,$name:ct,$haveAnyAsyncRule:Wt,$shortcuts:Rt,$validating:j,$tooltips:ut,$dirty:y,triggerPunishment:G,processShortcuts:Bt,$silentValue:K,$inactive:Me}}),k(),E=watch(a.$dirty,y=>{s.setDirtyEntry(n,y),Object.values(I.value).forEach(G=>{G.$fieldDirty=y;});}),S=watch([a.$error,a.$valid,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(y=>{y.$fieldError=a.$error.value,y.$fieldInvalid=a.$invalid.value,y.$fieldPending=a.$pending.value,y.$fieldValid=a.$valid.value;});}),b=watch(a.$valid,y=>{a.$rewardEarly.value&&y&&(a.triggerPunishment.value=false);}),i=watch(a.$haveAnyAsyncRule,u);}function k(){v=watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&l(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&f();},{deep:M?true:_e?1:true,flush:"post"});}function J(){Object.values(I.value).forEach(y=>{y.$validate();});}let I=ref({}),L=ref({});l();function ie(){f(),a.$dirty.value=false,a.triggerPunishment.value=false,s.setDirtyEntry(n,false),x.value=ne(e.value)?Y(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(I.value).forEach(([y,G])=>{G.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(y=>y.$validate());}function de(y=true,G=false){a.$dirty.value||(a.$dirty.value=true),G&&y?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V():y&&V();}async function pe(){try{let y=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:y};return m?{result:!$?.value?.length,data:y}:Z(I.value)?{result:!0,data:y}:{result:(await Promise.allSettled(Object.entries(I.value).map(([D,se])=>se.$validate()))).every(D=>D.status==="fulfilled"?D.value===!0:!1),data:y}}catch{return {result:false,data:e.value}}}function me(){C(),e.value=Y(x),ie();}function d(y=true){return a.$dirty.value?e.value:y?{_null:true}:null}function f(){c?.value?.length&&(c.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&V();let{$shortcuts:p,$validating:T,$autoDirty:A,$rewardEarly:Q,$clearExternalErrorsOnChange:g,$haveAnyAsyncRule:F,$debounce:H,$lazy:X,triggerPunishment:z,...oe}=a;return reactive({...oe,$externalErrors:c,$value:e,$rules:I,...p,$reset:ie,$touch:de,$validate:pe,$unwatch:C,$watch:_,$resetAll:me,$extractDirtyFields:d,$clearExternalErrors:f})}function Xe({$id:e,path:t,index:r,options:n,storage:o,stateValue:s,customMessages:R,rules:c,externalErrors:$,schemaErrors:m,initialState:h,shortcuts:M,fieldName:x,schemaMode:P}){let O=c.$key?c.$key:he(),a=`${t}.${String(O)}`;typeof s.value=="object"&&s.value!=null&&(s.value.$id?a=`${t}.${s.value.$id}`:Object.defineProperties(s.value,{$id:{value:O,enumerable:false,configurable:false,writable:false}}));let w=toRef($?.value??[],r),v=computed(()=>m?.value?.[r]),b=Te({state:s,rulesDef:toRef(()=>c),customMessages:R,path:a,storage:o,options:n,externalErrors:w,schemaErrors:v,initialState:h,shortcuts:M,fieldName:x,schemaMode:P});if(b){let E=s.value?.$id;b.$id=E??String(O),o.addArrayStatus(e,b.$id,b);}return b}function At({state:e,rulesDef:t,customMessages:r,path:n,storage:o,options:s,externalErrors:R,schemaErrors:c,schemaMode:$,initialState:m,shortcuts:h,fieldName:M}){let x=effectScope(),P,O=effectScope(),a,w=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let v=ref(),b=ref(e.value),E,i=ref({}),S=o.getCollectionsEntry(n);a=O.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(f=>typeof f!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(f=>we(f)||typeof f=="function"):false)})),V(),C();function V(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(v.value=he(),Object.defineProperties(e.value,{$id:{value:v.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(v.value=e.value.$id)),b.value=i.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?S.value=e.value.filter(d=>typeof d=="object").map((d,f)=>{let{scope:p,unwrapped:T}=Ke(t.value.$each,toRef(()=>d),f);p&&w.push(p);let A=toRef(m.value??[],f),Q=toRef(R?.value??{},"$each"),g=computed(()=>c?.value?.$each),F=Xe({$id:v.value,path:n,customMessages:r,rules:T??{},stateValue:toRef(()=>d),index:f,options:s,storage:o,externalErrors:Q,schemaErrors:g,initialState:A,shortcuts:h,fieldName:M,schemaMode:$});return F||null}).filter(d=>!!d):S.value=[],i.value=Ne({state:e,rulesDef:t,customMessages:r,path:n,storage:o,options:s,externalErrors:toRef(R?.value??{},"$self"),schemaErrors:computed(()=>c?.value?.$self),$isArray:true,initialState:m,shortcuts:h,fieldName:M,schemaMode:$});}function l(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let d=Y(S.value);S.value=e.value.filter(f=>typeof f=="object").map((f,p)=>{let T=toRef(()=>f);if(f.$id&&S.value.find(A=>A.$id===f.$id)){let A=o.getArrayStatus(v.value,f.$id);return A?(A.$value=T,A):null}else {let{scope:A,unwrapped:Q}=Ke(t.value.$each,T,p);A&&w.push(A);let g=toRef(R?.value??{},"$each"),F=computed(()=>c?.value?.$each??[]),H=Xe({$id:v.value,path:n,customMessages:r,rules:Q??{},stateValue:T,index:p,options:s,storage:o,externalErrors:g,schemaErrors:F,initialState:toRef(m.value??[],p),shortcuts:h,fieldName:M,schemaMode:$});return H||null}}).filter(f=>!!f),d.filter(f=>!e.value?.find(p=>f.$id===p.$id)).forEach((f,p)=>{o.deleteArrayStatus(v.value,p.toString());});}else S.value=[];}function u(){E=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?V():l();},{deep:_e?1:true,flush:"pre"});}function C(){u(),x=effectScope(),P=x.run(()=>{let d=computed({get:()=>e.value,set(D){E(),e.value=D,u();}}),f=computed(()=>i.value.$dirty&&(!S.value.length||S.value.every(D=>D.$dirty))),p=computed(()=>i.value.$anyDirty||S.value.some(D=>D.$anyDirty)),T=computed(()=>i.value.$invalid||S.value.some(D=>D.$invalid)),A=computed(()=>(Z(i.value.$rules)?true:i.value.$valid)&&(!S.value.length||S.value.every(D=>D.$valid))),Q=computed(()=>i.value.$error||S.value.some(D=>D.$error)),g=computed(()=>!(T.value||F.value)),F=computed(()=>i.value.$pending||S.value.some(D=>D.$pending)),H=computed(()=>!!S.value.length&&S.value.every(D=>D.$edited)),X=computed(()=>i.value.$anyEdited||S.value.some(D=>D.$anyEdited)),z=computed(()=>({$self:i.value.$errors,$each:S.value.map(D=>D.$errors)})),oe=computed(()=>({$self:i.value.$silentErrors,$each:S.value.map(D=>D.$silentErrors)})),y=computed(()=>M);function G(){h?.collections&&Object.entries(h?.collections).forEach(([D,se])=>{let le=effectScope();B[D]=le.run(()=>{let ge=ref();return watchEffect(()=>{ge.value=se(reactive({$dirty:f,$error:Q,$silentValue:d,$pending:F,$invalid:T,$valid:A,$errors:z,$ready:g,$silentErrors:oe,$anyDirty:p,$name:y,$each:S,$self:i,$value:e,$edited:H,$anyEdited:X}));}),ge}),w.push(le);});}let B={};return G(),{$dirty:f,$anyDirty:p,$invalid:T,$valid:A,$error:Q,$pending:F,$errors:z,$silentErrors:oe,$ready:g,$name:y,$shortcuts:B,$silentValue:d,$edited:H,$anyEdited:X}}),a.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function _(){E&&E(),i.value&&i.value.$unwatch(),S.value&&S.value.forEach(d=>{"$dirty"in d&&d.$unwatch();}),x.stop(),x=effectScope(),O.stop(),O=effectScope(true),w.forEach(d=>d.stop()),w=[];}function k(d=true,f=false){i.value.$touch(d,f),S.value.forEach(p=>{p.$touch(d,f);});}function J(){i.value.$reset(),S.value.forEach(d=>{d.$reset();});}async function I(){let d=e.value;try{return {result:(await Promise.allSettled([i.value.$validate(),...S.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}catch{return {result:false,data:d}}}function L(){i.value.$clearExternalErrors(),S.value.forEach(d=>{d.$clearExternalErrors();});}function ie(d=true){let f=S.value.map(p=>{if(xt(p))return p.$extractDirtyFields(d)});return d&&f.every(p=>Z(p))&&(f=[]),f}function de(){_(),e.value=Y(m.value),J();}let{$shortcuts:pe,...me}=P;return reactive({$self:i,...me,...pe,$each:S,$value:e,$validate:I,$unwatch:_,$watch:C,$touch:k,$reset:J,$resetAll:de,$extractDirtyFields:ie,$clearExternalErrors:L})}function ke({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:o,schemaErrors:s,rootSchemaErrors:R,validationGroups:c,initialState:$,fieldName:m,...h}){let M=effectScope(),x,P=[],O=null,a=null,w=null,v=null;async function E(d=true){let f=Object.entries(e.value),p=Object.fromEntries(f.filter(([g,F])=>!!F).map(([g,F])=>{if(F){let H=toRef(t.value??{},g),X=toRef(()=>F),z=toRef(o?.value??{},g),oe=computed(()=>s?.value?.[g]),y=toRef($?.value??{},g);return [g,Te({state:H,rulesDef:X,path:r?`${r}.${g}`:g,externalErrors:z,schemaErrors:oe,initialState:y,fieldName:g,...h})]}return []})),T=Object.fromEntries(Object.entries(unref(o)??{}).filter(([g,F])=>!(g in e.value)&&!!F).map(([g])=>{let F=toRef(t.value??{},g),H=toRef(o?.value??{},g),X=computed(()=>s?.value?.[g]),z=toRef($?.value??{},g);return [g,Te({state:F,rulesDef:computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:X,initialState:z,fieldName:g,...h})]})),A=Object.fromEntries(Object.entries(unref(s)??{}).map(([g])=>{let F=toRef(t.value??{},g),H=toRef(o?.value??{},g),X=computed(()=>s?.value?.[g]),z=toRef($?.value??{},g);return [g,Te({state:F,rulesDef:computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:X,initialState:z,fieldName:g,...h})]})),Q=Object.fromEntries(Object.entries(t.value??{}).filter(([g])=>!(g in e.value)&&!(g in(T??{}))&&!(g in(A??{}))).map(([g])=>{let F=toRef(t.value??{},g),H=toRef(o?.value??{},g),X=computed(()=>s?.value?.[g]),z=toRef($?.value??{},g);return [g,Te({state:F,rulesDef:computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:X,initialState:z,fieldName:g,...h})]}));i.value={...p,...T,...A,...Q},d&&l();}let i=h.storage.getFieldsEntry(r);E();function S(){o&&(w=watch(o,()=>{u(),E();},{deep:true}));}function V(){v=watch(t,()=>{u(),E(),k(true,true);},{flush:"sync"});}function l(){n&&(O?.(),O=watch(n,()=>{u(),E();},{deep:true,flush:"post"}),S()),R&&(a?.(),a=watch(R,()=>{u(),E();},{deep:true,flush:"post"})),V(),x=M.run(()=>{let d=computed({get:()=>t.value,set(U){u(),t.value=U,E();}}),f=computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,j])=>j?.$dirty)),p=computed(()=>Object.entries(i.value).some(([U,j])=>j?.$anyDirty)),T=computed(()=>Object.entries(i.value).some(([U,j])=>j?.$invalid)),A=computed(()=>{let U=Object.entries(i.value).filter(([j,K])=>Dt(K)?!K.$inactive:true);return U.length?U.every(([j,K])=>K?.$valid):false}),Q=computed(()=>p.value&&!z.value&&T.value),g=computed(()=>unref(h.options.rewardEarly)!=null?unref(h.options.rewardEarly):false),F=computed(()=>unref(h.options.autoDirty)!=null?unref(h.options.autoDirty):!g.value),H=computed(()=>F.value?p.value&&!(T.value||z.value):!(T.value||z.value)),X=ref(false),z=computed(()=>X.value||Object.entries(i.value).some(([U,j])=>j?.$pending)),oe=computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,j])=>[U,j?.$errors]))),y=computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,j])=>[U,j?.$silentErrors]))),G=computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,j])=>j?.$edited)),B=computed(()=>Object.entries(i.value).some(([U,j])=>j?.$anyEdited)),D=computed(()=>m);function se(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,j])=>{let K=effectScope();ge[U]=K.run(()=>{let ye=ref();return watchEffect(()=>{ye.value=j(reactive({$dirty:f,$value:t,$silentValue:d,$error:Q,$pending:z,$invalid:T,$valid:A,$ready:H,$anyDirty:p,$name:D,$silentErrors:y,$errors:oe,$fields:i,$edited:G,$anyEdited:B}));}),ye}),P.push(K);});}let le=computed({get:()=>c?Object.fromEntries(Object.entries(c?.(i.value)??{}).map(([U,j])=>j.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(K=>[K,gt(j,K)])),...Object.fromEntries(["$errors","$silentErrors"].map(K=>[K,yt(j,K)]))}]:[])):{},set(){}}),ge={};return se(),{$dirty:f,$anyDirty:p,$invalid:T,$valid:A,$error:Q,$pending:z,$errors:oe,$silentErrors:y,$ready:H,$name:D,$shortcuts:ge,$groups:le,$silentValue:d,$edited:G,$anyEdited:B,$localPending:X}});}function u(){O?.(),w?.(),v?.(),a?.(),P=[],x={},i.value&&Object.entries(i.value).forEach(([d,f])=>{f.$unwatch();});}function C(){Object.entries(i.value).forEach(([d,f])=>{f.$clearExternalErrors();});}function _(){w?.(),Object.values(i.value).forEach(d=>{d.$reset();}),$.value={...Y(t.value)},S();}function k(d=true,f=false){Object.values(i.value).forEach(p=>{p.$touch(d,f);});}async function J(){u(),t.value=Y({...$.value??{}}),_(),E();}function I(d){return d.filter(([f,p])=>ne(p)?!(p&&typeof p=="object"&&"_null"in p)&&!Z(p):Array.isArray(p)?p.length:true)}function L(d=true){let f=Object.entries(i.value).map(([p,T])=>[p,T.$extractDirtyFields(d)]);return d&&(f=I(f)),Object.fromEntries(f)}async function ie(){try{if(h.schemaMode)return h.onValidate?(k(!1),x.$localPending.value=!0,h.onValidate()):{result:!1,data:t.value};{let d=t.value;return {result:(await Promise.allSettled(Object.values(i.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}}catch{return {result:false,data:t.value}}finally{x.$localPending.value=false;}}let{$shortcuts:de,$localPending:pe,...me}=x;return reactive({...me,...de,$fields:i,$value:t,$resetAll:J,$reset:_,$touch:k,$validate:ie,$unwatch:u,$watch:l,$clearExternalErrors:C,$extractDirtyFields:L})}function Te({rulesDef:e,...t}){if(Et(e,t.state))return At({rulesDef:e,...t});if(bt(t.state,e)){if(Fe(t.state))return ke({rulesDef:e,...t});{let n=effectScope().run(()=>{let R=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,c=>{R.value=c;},{deep:true}),watch(R,c=>{t.state.value=c;},{deep:true}),{fakeState:R}}),{state:o,...s}=t;return ke({rulesDef:e,...s,state:n.fakeState})}}else if(Tt(e))return Ne({rulesDef:e,...t})}function Ie({initialState:e,options:t,scopeRules:r,state:n,customRules:o,shortcuts:s,schemaErrors:R,schemaMode:c=false,onValidate:$}){let m=qe(),h=ref();return h.value=ke({rootRules:r,rulesDef:r,state:n,customMessages:o?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:s,fieldName:"root",path:"",schemaErrors:R,rootSchemaErrors:R,schemaMode:c,onValidate:$}),getCurrentScope()&&onScopeDispose(()=>{h.value?.$unwatch();}),reactive({regle:h})}function tt(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function o(s,R,c){let $=isRef(R)?R:computed(typeof R=="function"?R:()=>R),m={...n,...c},h=isRef(s)?s:ref(s),M=ref({...Y(h.value)});return {r$:Ie({scopeRules:$,state:h,options:m,initialState:M,customRules:e,shortcuts:r}).regle}}return o}var Ue=tt();function rt(){function e(t,r){return r}return e}var nt=rt();function Vt({rules:e,modifiers:t,shortcuts:r}){let n=tt(e,t,r),o=rt();return {useRegle:n,inferRules:o}}function je(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(l=>l.$value):Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$value])),set:l=>{r||typeof l=="object"&&Object.entries(l).forEach(([u,C])=>e[u].$value=C);}}),o=computed({get:()=>Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$silentValue])),set:l=>{typeof l=="object"&&Object.entries(l).forEach(([u,C])=>e[u].$silentValue=C);}}),s=computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$dirty)}),R=computed(()=>Object.entries(e).some(([l,u])=>u?.$anyDirty)),c=computed(()=>Object.entries(e).some(([l,u])=>u?.$invalid)),$=computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$valid)}),m=computed(()=>Object.entries(e).some(([l,u])=>u?.$error)),h=computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$ready)}),M=computed(()=>Object.entries(e).some(([l,u])=>u?.$pending)),x=computed(()=>r?Object.entries(e).map(([l,u])=>u.$errors):Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$errors]))),P=computed(()=>r?Object.entries(e).map(([l,u])=>u.$silentErrors):Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$silentErrors]))),O=computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$edited)}),a=computed(()=>Object.entries(e).some(([l,u])=>u?.$anyEdited)),w=computed(()=>r?Object.values(e):e);function v(){Object.values(e).forEach(l=>{l.$reset();});}function b(){Object.values(e).forEach(l=>{l.$touch();});}function E(){Object.values(e).forEach(l=>{l.$resetAll();});}function i(l=true){return Object.values(e).map(u=>u.$extractDirtyFields(l))}function S(){Object.values(e).forEach(l=>{l.$clearExternalErrors();});}async function V(){try{let l=n.value;return {result:(await Promise.allSettled(Object.values(e).map(_=>_.$validate()))).every(_=>_.status==="fulfilled"?_.value.result===!0:!1),data:l}}catch{return {result:false,data:n.value}}}return reactive({...!r&&{$silentValue:o},$errors:x,$silentErrors:P,$instances:w,$value:n,$dirty:s,$anyDirty:R,$invalid:c,$valid:$,$error:m,$pending:M,$ready:h,$edited:O,$anyEdited:a,$resetAll:E,$reset:v,$touch:b,$validate:V,$extractDirtyFields:i,$clearExternalErrors:S})}function Nt(e){function t(r){let n=computed(()=>toValue(r));R();let o=ref(c(e.value)),s=reactive({r$:o});function R(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}watch(n,R),watch(e,$=>{o.value=c($);},{deep:true});function c($){if(n.value){let m=$[n.value]??{};return je(m,true)}else return je($["~~global"]??{},true)}return {r$:s.r$}}return {useCollectScope:t}}function Ut(e,t){let r=t??Ue;return {useScopedRegle:(o,s,R)=>{let{namespace:c,...$}=R??{},m=computed(()=>toValue(c)),h=ref(`${Object.keys(e.value).length+1}-${he()}`),M=computed(()=>`instance-${h.value}`),{r$:x}=r(o,s,$);O(),St(P),watch(m,(a,w)=>{P(w),O();}),getCurrentInstance()&&onMounted(()=>{let a=getCurrentInstance();typeof window<"u"&&a?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(a?.proxy?.$el?.parentElement)&&P();});function P(a){let w=a??m.value;w?e.value[w]&&delete e.value[w][M.value]:e.value["~~global"][M.value]&&delete e.value["~~global"][M.value];}function O(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][M.value]=x):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][M.value]=x);}return {r$:x,dispose:P,register:O}}}}function at(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):ht(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=Ut(r,e?.customUseRegle),{useCollectScope:o}=Nt(r);return {useScopedRegle:n,useCollectScope:o}}
2
- export{Le as InternalRuleType,ze as createRule,at as createScopedUseRegle,Vt as defineRegleConfig,nt as inferRules,je as mergeRegles,ee as unwrapRuleParameters,Ue as useRegle,Ie as useRootStorage};
1
+ import {toValue,version,ref,getCurrentScope,onScopeDispose,reactive,computed,shallowRef,effectScope,watch,getCurrentInstance,onMounted,isRef,toRef,unref,watchEffect}from'vue';function Z(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var mt=Symbol("regle-rule");function Lt(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function Y(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>Y(n)))),r=="Map"&&(t=new Map([...e].map(n=>[Y(n[0]),Y(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Lt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=Y(e[n]);}return t}function ne(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Be(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function je(e,t,r){let n,l=(...u)=>new Promise(R=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...u])).then(R);},t);});return l.cancel=()=>{clearTimeout(n),n=undefined;},l}var Le=(r=>(r.Inline="__inline",r.Async="__async",r))(Le||{});function gt(e,t){return e.some(r=>r[t])}function yt(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function ee(e){try{return e.map(t=>toValue(t))}catch{return []}}function vt(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function $t(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(R=>R.trim()).filter(R=>R.length>0).length:0}function He(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(c,...$){return e.validator(c,...ee($.length?$:t))},message(c){return typeof e.message=="function"?e.message({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.message},active(c){return typeof e.active=="function"?e.active({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.active??true},tooltip(c){return typeof e.tooltip=="function"?e.tooltip({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.tooltip??[]},exec(c){let $=e.validator(c,...ee(t)),m;return $ instanceof Promise?$.then(h=>(m=h,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)):(m=$,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:l,_params:vt(t),_brand:mt}}function ze(e){if(typeof e.validator=="function"){let r=He(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if($t(e.validator)>1){let l=function(...u){return He(e,...u)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=false,l._tooltip_pacthed=false,l._async=n,l}else return r}throw new Error("Validator must be a function")}function qe(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),l=shallowRef(new Map),u=shallowRef(new Map);function R(v){let b=t.value.get(v);if(b)return b;{let E=ref({});return t.value.set(v,E),E}}function c(v){let b=r.value.get(v);if(b)return b;{let E=ref([]);return r.value.set(v,E),E}}function $(v,b,E){u.value.set(`${v}-${b}`,E);}function m(v,b){return u.value.get(`${v}-${b}`)}function h(v,b){v&&b!=null&&u.value.delete(`${v}-${b}`);}function F(v,b){n.value.set(v,b);}function x(v){return n.value.get(v)??false}function P(v,b){e.value.set(v,b);}function O(v,b){let E=e.value.get(v);return E?a(b,E)?{valid:true}:{valid:false}:undefined}function a(v,b){let E=Object.keys(b),i=Object.keys(v);return i.length!==E.length||!i.every(V=>E.includes(V))?false:i.every(V=>{let o=v[V],s=b[V];return !s||!o||typeof o=="function"||typeof s=="function"||typeof o=="number"||typeof o=="boolean"?false:o._params?o._params?.every((C,_)=>{if(typeof s=="number"||typeof s=="boolean")return true;{let k=ee(s._params),J=ee(o._params);return k?.[_]===J?.[_]}}):true})}function w(v){let b=l.value.get(v);if(b)return b;{let E=ref(false),i=ref(true),S=ref({}),V=ref(false);return l.value.set(v,{$pending:E,$valid:i,$metadata:S,$validating:V}),{$pending:E,$valid:i,$metadata:S,$validating:V}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),u.value.clear();}),{addRuleDeclEntry:P,setDirtyEntry:F,checkRuleDeclEntry:O,getDirtyState:x,trySetRuleStatusRef:w,getFieldsEntry:R,getCollectionsEntry:c,getArrayStatus:m,addArrayStatus:$,deleteArrayStatus:h,arrayStatusStorage:u}}function Ve(e){return ne(e.value)}function Ke(e,t,r){let n=effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function Zt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let u=Number(r[l]),R=Number(n[l]);if(u>R)return 1;if(R>u)return -1;if(!isNaN(u)&&isNaN(R))return 1;if(isNaN(u)&&!isNaN(R))return -1}return 0}var _e=Zt(version,"3.5.0")!==-1;function er(){return Math.floor(Math.random()*Date.now()).toString()}function he(){return typeof window>"u"?er():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function St(e){return getCurrentScope()?(onScopeDispose(e),true):false}function ht(e){let t=false,r,n=effectScope(true);return (...l)=>(t||(r=n.run(()=>e(...l)),t=true),r)}function bt(e,t){return Ve(e)||ne(t.value)&&!Z(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function Et(e,t){return !!e.value&&ne(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Tt(e){return !!e.value&&ne(e.value)}function we(e){return ne(e)&&"_validator"in e}function Pe(e){return typeof e.value!="function"}function xt(e){return ne(e)&&"$fields"in e}function Dt(e){return !!e&&"$rules"in e}function Je({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Ct({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function It({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:u,$debounce:R,modifiers:c}){let $=effectScope(),m={},h,F=ref(false),{$pending:x,$valid:P,$metadata:O,$validating:a}=u.trySetRuleStatusRef(`${l}.${r}`);function w(){$=effectScope(),m=$.run(()=>{let o=ref(false),s=ref(false),C=ref(true),_=ref(false),k=ref(false),J=computed(()=>({$value:n.value,$error:s.value,$dirty:o.value,$pending:_.value,$valid:k.value,$invalid:C.value,$rule:{$valid:P.value,$invalid:!P.value,$pending:x.value},$params:d.value,...O.value})),I=computed(()=>Pe(t)?typeof t.value.active=="function"?t.value.active(J.value):!!t.value.active:true);function L(p){let T="",A=e?e[r]?.[p]:undefined;if(A&&(typeof A=="function"?T=A(J.value):T=A),Pe(t)){let Q=`_${p}_patched`;A&&!t.value[Q]||(typeof t.value[p]=="function"?T=t.value[p](J.value):T=t.value[p]??"");}return T}let ie=computed(()=>{let p=L("message");return Z(p)&&(p="This field is not valid"),p}),de=computed(()=>L("tooltip")),pe=computed(()=>Pe(t)&&t.value.type?t.value.type:r),me=computed(()=>Pe(t)?t.value.validator:t.value),d=computed(()=>typeof t.value=="function"?[]:ee(t.value._params??[])),f=computed(()=>`${l}.${pe.value}`);return {$active:I,$message:ie,$type:pe,$validator:me,$params:d,$path:f,$tooltip:de,$fieldValid:k,$fieldError:s,$fieldDirty:o,$fieldPending:_,$fieldInvalid:C}}),h=watch(m?.$params,()=>{(c.$autoDirty.value||c.$rewardEarly.value&&m.$fieldError.value)&&i();});}w();function v(){P.value=true,m.$fieldDirty.value&&(x.value=true);}async function b(){let o=false;try{let s=m.$validator.value;if(typeof s!="function")return console.error(`${l}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let C=s(n.value,...m.$params.value),_=n.value;v();let k;if(C instanceof Promise?k=await C:k=C,n.value!==_)return !0;if(typeof k=="boolean")o=k;else {let{$valid:J,...I}=k;o=J,O.value=I;}}catch{o=false;}finally{x.value=false;}return o}let E=je(b,R??200);async function i(){try{a.value=!0;let o=!1;if(we(t.value)&&t.value._async)o=await E();else {let s=m.$validator.value,C=s(n.value,...m.$params.value);if(C instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(C!=null)if(typeof C=="boolean")o=C;else {let{$valid:_,...k}=C;o=_,O.value=k;}}return P.value=o,o}catch{return false}finally{a.value=false;}}function S(){P.value=true,O.value={},x.value=false,a.value=false,w();}function V(){h(),$.stop(),$=effectScope();}return reactive({...m,$pending:x,$valid:P,$metadata:O,$haveAsync:F,$validating:a,$validate:i,$unwatch:V,$watch:w,$reset:S})}function Ne({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:u,options:R,externalErrors:c,schemaErrors:$,schemaMode:m,onUnwatch:h,$isArray:F,initialState:x,shortcuts:P}){let O=effectScope(),a,w=[],v,b,E,i,S,V=()=>{};function o(){let y=t.value,G=u.checkRuleDeclEntry(n,y);L.value=Object.fromEntries(Object.entries(y).filter(([B])=>B.startsWith("$"))),_(),I.value=Object.fromEntries(Object.entries(t.value).filter(([B])=>!B.startsWith("$")).map(([B,D])=>{if(D){let se=toRef(()=>D);return [B,It({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:se,ruleKey:B,state:e,path:n,storage:u,$debounce:L.value.$debounce})]}return []}).filter(B=>!!B.length)),a.processShortcuts(),s(),G?.valid!=null&&(a.$dirty.value=u.getDirtyState(n),(a.$dirty.value&&a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V()),u.addRuleDeclEntry(n,y);}function s(){V=a.$debounce.value?je(J,a.$debounce.value??a.$haveAnyAsyncRule?100:0):J;}function C(){I.value&&Object.entries(I.value).forEach(([y,G])=>{G.$unwatch();}),E(),S?.(),a.$dirty.value&&u.setDirtyEntry(n,a.$dirty.value),v?.(),b?.(),O.stop(),O=effectScope(),w.forEach(y=>y.stop()),w=[],h?.(),i?.();}function _(){I.value&&Object.entries(I.value).forEach(([y,G])=>{G.$watch();}),a=O.run(()=>{let y=ref(false),G=ref(false),B=computed(()=>y.value),D=computed(()=>L.value.$debounce),se=computed(()=>L.value.$lazy!=null?L.value.$lazy:unref(R.lazy)!=null?unref(R.lazy):false),le=computed(()=>L.value.$rewardEarly!=null?L.value.$rewardEarly:unref(R.rewardEarly)!=null?unref(R.rewardEarly):false),ge=computed(()=>L.value.$clearExternalErrorsOnChange!=null?L.value.$clearExternalErrorsOnChange:unref(R.clearExternalErrorsOnChange)!=null?unref(R.clearExternalErrorsOnChange):true),U=computed(()=>L.value.$autoDirty!=null?L.value.$autoDirty:unref(R.autoDirty)!=null?unref(R.autoDirty):!le.value),M=computed(()=>Object.entries(I.value).some(([ae,ue])=>ue.$validating)),K=computed({get:()=>e.value,set(ae){v(),e.value=ae,k();}}),ye=computed(()=>ve.value&&!Oe.value&&y.value),lt=computed(()=>Je({field:{$rules:I.value,$error:ye.value,$externalErrors:c?.value,$schemaErrors:$?.value}})),ot=computed(()=>Je({field:{$rules:I.value,$error:ye.value,$externalErrors:c?.value,$schemaErrors:$?.value},silent:true})),We=computed(()=>y.value?x.value instanceof Date&&e.value instanceof Date?Be(x.value).getDate()!==Be(e.value).getDate():x.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(x.value)?e.value.length!==x.value.length:x.value!==e.value:false),st=computed(()=>We.value),ut=computed(()=>Ct({field:{$rules:I.value}})),it=computed(()=>U.value?B.value&&!(ve.value||Oe.value):!(ve.value||Oe.value)),Oe=computed(()=>G.value||!le.value?Object.entries(I.value).some(([ae,ue])=>ue.$pending):false),ve=computed(()=>c?.value?.length||$?.value?.length?true:Fe.value?false:!le.value||le.value&&G.value?Object.entries(I.value).some(([ae,ue])=>!ue.$valid):false),ct=computed(()=>l),Fe=computed(()=>!!(Z(I.value)&&!m)),ft=computed(()=>c?.value?.length||Fe.value?false:y.value&&!Z(e.value)&&!M.value?m?!$?.value?.length:Object.values(I.value).every(ae=>ae.$valid&&ae.$active):false),Wt=computed(()=>Object.entries(I.value).some(([ae,ue])=>ue.$haveAsync));function Bt(){P?.fields&&Object.entries(P.fields).forEach(([ae,ue])=>{let dt=effectScope();Rt[ae]=dt.run(()=>{let pt=ref();return watchEffect(()=>{pt.value=ue(reactive({$dirty:y,$externalErrors:c?.value??[],$value:e,$silentValue:K,$rules:I,$error:ye,$pending:Oe,$invalid:ve,$valid:ft,$errors:lt,$ready:it,$silentErrors:ot,$anyDirty:B,$tooltips:ut,$name:ct,$inactive:Fe,$edited:We,$anyEdited:st}));}),pt}),w.push(dt);});}let Rt={};return watch(ve,ae=>{ae||(G.value=false);}),{$error:ye,$pending:Oe,$invalid:ve,$valid:ft,$debounce:D,$lazy:se,$errors:lt,$ready:it,$silentErrors:ot,$rewardEarly:le,$autoDirty:U,$clearExternalErrorsOnChange:ge,$anyDirty:B,$edited:We,$anyEdited:st,$name:ct,$haveAnyAsyncRule:Wt,$shortcuts:Rt,$validating:M,$tooltips:ut,$dirty:y,triggerPunishment:G,processShortcuts:Bt,$silentValue:K,$inactive:Fe}}),k(),E=watch(a.$dirty,y=>{u.setDirtyEntry(n,y),Object.values(I.value).forEach(G=>{G.$fieldDirty=y;});}),S=watch([a.$error,a.$valid,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(y=>{y.$fieldError=a.$error.value,y.$fieldInvalid=a.$invalid.value,y.$fieldPending=a.$pending.value,y.$fieldValid=a.$valid.value;});}),b=watch(a.$valid,y=>{a.$rewardEarly.value&&y&&(a.triggerPunishment.value=false);}),i=watch(a.$haveAnyAsyncRule,s);}function k(){v=watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&o(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&f();},{deep:F?true:_e?1:true,flush:"post"});}function J(){Object.values(I.value).forEach(y=>{y.$validate();});}let I=ref({}),L=ref({});o();function ie(){f(),a.$dirty.value=false,a.triggerPunishment.value=false,u.setDirtyEntry(n,false),x.value=ne(e.value)?Y(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(I.value).forEach(([y,G])=>{G.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(y=>y.$validate());}function de(y=true,G=false){a.$dirty.value||(a.$dirty.value=true),G&&y?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V():y&&V();}async function pe(){try{let y=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:y};return m?{result:!$?.value?.length,data:y}:Z(I.value)?{result:!0,data:y}:{result:(await Promise.allSettled(Object.entries(I.value).map(([D,se])=>se.$validate()))).every(D=>D.status==="fulfilled"?D.value===!0:!1),data:y}}catch{return {result:false,data:e.value}}}function me(){C(),e.value=Y(x),ie();}function d(y=true){return a.$dirty.value?e.value:y?{_null:true}:null}function f(){c?.value?.length&&(c.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&V();let{$shortcuts:p,$validating:T,$autoDirty:A,$rewardEarly:Q,$clearExternalErrorsOnChange:g,$haveAnyAsyncRule:j,$debounce:H,$lazy:X,triggerPunishment:z,...oe}=a;return reactive({...oe,$externalErrors:c,$value:e,$rules:I,...p,$reset:ie,$touch:de,$validate:pe,$unwatch:C,$watch:_,$resetAll:me,$extractDirtyFields:d,$clearExternalErrors:f})}function Xe({$id:e,path:t,index:r,options:n,storage:l,stateValue:u,customMessages:R,rules:c,externalErrors:$,schemaErrors:m,initialState:h,shortcuts:F,fieldName:x,schemaMode:P}){let O=c.$key?c.$key:he(),a=`${t}.${String(O)}`;typeof u.value=="object"&&u.value!=null&&(u.value.$id?a=`${t}.${u.value.$id}`:Object.defineProperties(u.value,{$id:{value:O,enumerable:false,configurable:false,writable:false}}));let w=toRef($?.value??[],r),v=computed(()=>m?.value?.[r]),b=Te({state:u,rulesDef:toRef(()=>c),customMessages:R,path:a,storage:l,options:n,externalErrors:w,schemaErrors:v,initialState:h,shortcuts:F,fieldName:x,schemaMode:P});if(b){let E=u.value?.$id;b.$id=E??String(O),l.addArrayStatus(e,b.$id,b);}return b}function At({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:u,externalErrors:R,schemaErrors:c,schemaMode:$,initialState:m,shortcuts:h,fieldName:F}){let x=effectScope(),P,O=effectScope(),a,w=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let v=ref(),b=ref(e.value),E,i=ref({}),S=l.getCollectionsEntry(n);a=O.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(f=>typeof f!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(f=>we(f)||typeof f=="function"):false)})),V(),C();function V(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(v.value=he(),Object.defineProperties(e.value,{$id:{value:v.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(v.value=e.value.$id)),b.value=i.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?S.value=e.value.filter(d=>typeof d=="object").map((d,f)=>{let{scope:p,unwrapped:T}=Ke(t.value.$each,toRef(()=>d),f);p&&w.push(p);let A=toRef(m.value??[],f),Q=toRef(R?.value??{},"$each"),g=computed(()=>c?.value?.$each),j=Xe({$id:v.value,path:n,customMessages:r,rules:T??{},stateValue:toRef(()=>d),index:f,options:u,storage:l,externalErrors:Q,schemaErrors:g,initialState:A,shortcuts:h,fieldName:F,schemaMode:$});return j||null}).filter(d=>!!d):S.value=[],i.value=Ne({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:u,externalErrors:toRef(R?.value??{},"$self"),schemaErrors:computed(()=>c?.value?.$self),$isArray:true,initialState:m,shortcuts:h,fieldName:F,schemaMode:$});}function o(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let d=Y(S.value);S.value=e.value.filter(f=>typeof f=="object").map((f,p)=>{let T=toRef(()=>f);if(f.$id&&S.value.find(A=>A.$id===f.$id)){let A=l.getArrayStatus(v.value,f.$id);return A?(A.$value=T,A):null}else {let{scope:A,unwrapped:Q}=Ke(t.value.$each,T,p);A&&w.push(A);let g=toRef(R?.value??{},"$each"),j=computed(()=>c?.value?.$each??[]),H=Xe({$id:v.value,path:n,customMessages:r,rules:Q??{},stateValue:T,index:p,options:u,storage:l,externalErrors:g,schemaErrors:j,initialState:toRef(m.value??[],p),shortcuts:h,fieldName:F,schemaMode:$});return H||null}}).filter(f=>!!f),d.filter(f=>!e.value?.find(p=>f.$id===p.$id)).forEach((f,p)=>{l.deleteArrayStatus(v.value,p.toString());});}else S.value=[];}function s(){E=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?V():o();},{deep:_e?1:true,flush:"pre"});}function C(){s(),x=effectScope(),P=x.run(()=>{let d=computed({get:()=>e.value,set(D){E(),e.value=D,s();}}),f=computed(()=>i.value.$dirty&&(!S.value.length||S.value.every(D=>D.$dirty))),p=computed(()=>i.value.$anyDirty||S.value.some(D=>D.$anyDirty)),T=computed(()=>i.value.$invalid||S.value.some(D=>D.$invalid)),A=computed(()=>(Z(i.value.$rules)?true:i.value.$valid)&&(!S.value.length||S.value.every(D=>D.$valid))),Q=computed(()=>i.value.$error||S.value.some(D=>D.$error)),g=computed(()=>!(T.value||j.value)),j=computed(()=>i.value.$pending||S.value.some(D=>D.$pending)),H=computed(()=>!!S.value.length&&S.value.every(D=>D.$edited)),X=computed(()=>i.value.$anyEdited||S.value.some(D=>D.$anyEdited)),z=computed(()=>({$self:i.value.$errors,$each:S.value.map(D=>D.$errors)})),oe=computed(()=>({$self:i.value.$silentErrors,$each:S.value.map(D=>D.$silentErrors)})),y=computed(()=>F);function G(){h?.collections&&Object.entries(h?.collections).forEach(([D,se])=>{let le=effectScope();B[D]=le.run(()=>{let ge=ref();return watchEffect(()=>{ge.value=se(reactive({$dirty:f,$error:Q,$silentValue:d,$pending:j,$invalid:T,$valid:A,$errors:z,$ready:g,$silentErrors:oe,$anyDirty:p,$name:y,$each:S,$self:i,$value:e,$edited:H,$anyEdited:X}));}),ge}),w.push(le);});}let B={};return G(),{$dirty:f,$anyDirty:p,$invalid:T,$valid:A,$error:Q,$pending:j,$errors:z,$silentErrors:oe,$ready:g,$name:y,$shortcuts:B,$silentValue:d,$edited:H,$anyEdited:X}}),a.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function _(){E&&E(),i.value&&i.value.$unwatch(),S.value&&S.value.forEach(d=>{"$dirty"in d&&d.$unwatch();}),x.stop(),x=effectScope(),O.stop(),O=effectScope(true),w.forEach(d=>d.stop()),w=[];}function k(d=true,f=false){i.value.$touch(d,f),S.value.forEach(p=>{p.$touch(d,f);});}function J(){i.value.$reset(),S.value.forEach(d=>{d.$reset();});}async function I(){let d=e.value;try{return {result:(await Promise.allSettled([i.value.$validate(),...S.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}catch{return {result:false,data:d}}}function L(){i.value.$clearExternalErrors(),S.value.forEach(d=>{d.$clearExternalErrors();});}function ie(d=true){let f=S.value.map(p=>{if(xt(p))return p.$extractDirtyFields(d)});return d&&f.every(p=>Z(p))&&(f=[]),f}function de(){_(),e.value=Y(m.value),J();}let{$shortcuts:pe,...me}=P;return reactive({$self:i,...me,...pe,$each:S,$value:e,$validate:I,$unwatch:_,$watch:C,$touch:k,$reset:J,$resetAll:de,$extractDirtyFields:ie,$clearExternalErrors:L})}function ke({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:u,rootSchemaErrors:R,validationGroups:c,initialState:$,fieldName:m,...h}){let F=effectScope(),x,P=[],O=null,a=null,w=null,v=null;async function E(d=true){let f=Object.entries(e.value),p=Object.fromEntries(f.filter(([g,j])=>!!j).map(([g,j])=>{if(j){let H=toRef(t.value??{},g),X=toRef(()=>j),z=toRef(l?.value??{},g),oe=computed(()=>u?.value?.[g]),y=toRef($?.value??{},g);return [g,Te({state:H,rulesDef:X,path:r?`${r}.${g}`:g,externalErrors:z,schemaErrors:oe,initialState:y,fieldName:g,...h})]}return []})),T=Object.fromEntries(Object.entries(unref(l)??{}).filter(([g,j])=>!(g in e.value)&&!!j).map(([g])=>{let j=toRef(t.value??{},g),H=toRef(l?.value??{},g),X=computed(()=>u?.value?.[g]),z=toRef($?.value??{},g);return [g,Te({state:j,rulesDef:computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:X,initialState:z,fieldName:g,...h})]})),A=Object.fromEntries(Object.entries(unref(u)??{}).map(([g])=>{let j=toRef(t.value??{},g),H=toRef(l?.value??{},g),X=computed(()=>u?.value?.[g]),z=toRef($?.value??{},g);return [g,Te({state:j,rulesDef:computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:X,initialState:z,fieldName:g,...h})]})),Q=Object.fromEntries(Object.entries(t.value??{}).filter(([g])=>!(g in e.value)&&!(g in(T??{}))&&!(g in(A??{}))).map(([g])=>{let j=toRef(t.value??{},g),H=toRef(l?.value??{},g),X=computed(()=>u?.value?.[g]),z=toRef($?.value??{},g);return [g,Te({state:j,rulesDef:computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:X,initialState:z,fieldName:g,...h})]}));i.value={...p,...T,...A,...Q},d&&o();}let i=h.storage.getFieldsEntry(r);E();function S(){l&&(w=watch(l,()=>{s(),E();},{deep:true}));}function V(){v=watch(t,()=>{s(),E(),k(true,true);},{flush:"sync"});}function o(){n&&(O?.(),O=watch(n,()=>{s(),E();},{deep:true,flush:"post"}),S()),R&&(a?.(),a=watch(R,()=>{s(),E();},{deep:true,flush:"post"})),V(),x=F.run(()=>{let d=computed({get:()=>t.value,set(U){s(),t.value=U,E();}}),f=computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,M])=>M?.$dirty)),p=computed(()=>Object.entries(i.value).some(([U,M])=>M?.$anyDirty)),T=computed(()=>Object.entries(i.value).some(([U,M])=>M?.$invalid)),A=computed(()=>{let U=Object.entries(i.value).filter(([M,K])=>Dt(K)?!K.$inactive:true);return U.length?U.every(([M,K])=>K?.$valid):false}),Q=computed(()=>p.value&&!z.value&&T.value),g=computed(()=>unref(h.options.rewardEarly)!=null?unref(h.options.rewardEarly):false),j=computed(()=>unref(h.options.autoDirty)!=null?unref(h.options.autoDirty):!g.value),H=computed(()=>j.value?p.value&&!(T.value||z.value):!(T.value||z.value)),X=ref(false),z=computed(()=>X.value||Object.entries(i.value).some(([U,M])=>M?.$pending)),oe=computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,M])=>[U,M?.$errors]))),y=computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,M])=>[U,M?.$silentErrors]))),G=computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,M])=>M?.$edited)),B=computed(()=>Object.entries(i.value).some(([U,M])=>M?.$anyEdited)),D=computed(()=>m);function se(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,M])=>{let K=effectScope();ge[U]=K.run(()=>{let ye=ref();return watchEffect(()=>{ye.value=M(reactive({$dirty:f,$value:t,$silentValue:d,$error:Q,$pending:z,$invalid:T,$valid:A,$ready:H,$anyDirty:p,$name:D,$silentErrors:y,$errors:oe,$fields:i,$edited:G,$anyEdited:B}));}),ye}),P.push(K);});}let le=computed({get:()=>c?Object.fromEntries(Object.entries(c?.(i.value)??{}).map(([U,M])=>M.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(K=>[K,gt(M,K)])),...Object.fromEntries(["$errors","$silentErrors"].map(K=>[K,yt(M,K)]))}]:[])):{},set(){}}),ge={};return se(),{$dirty:f,$anyDirty:p,$invalid:T,$valid:A,$error:Q,$pending:z,$errors:oe,$silentErrors:y,$ready:H,$name:D,$shortcuts:ge,$groups:le,$silentValue:d,$edited:G,$anyEdited:B,$localPending:X}});}function s(){O?.(),w?.(),v?.(),a?.(),P=[],x={},i.value&&Object.entries(i.value).forEach(([d,f])=>{f.$unwatch();});}function C(){Object.entries(i.value).forEach(([d,f])=>{f.$clearExternalErrors();});}function _(){w?.(),Object.values(i.value).forEach(d=>{d.$reset();}),$.value={...Y(t.value)},S();}function k(d=true,f=false){Object.values(i.value).forEach(p=>{p.$touch(d,f);});}async function J(){s(),t.value=Y({...$.value??{}}),_(),E();}function I(d){return d.filter(([f,p])=>ne(p)?!(p&&typeof p=="object"&&"_null"in p)&&!Z(p):Array.isArray(p)?p.length:true)}function L(d=true){let f=Object.entries(i.value).map(([p,T])=>[p,T.$extractDirtyFields(d)]);return d&&(f=I(f)),Object.fromEntries(f)}async function ie(){try{if(h.schemaMode)return h.onValidate?(k(!1),x.$localPending.value=!0,h.onValidate()):{result:!1,data:t.value};{let d=t.value;return {result:(await Promise.allSettled(Object.values(i.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}}catch{return {result:false,data:t.value}}finally{x.$localPending.value=false;}}let{$shortcuts:de,$localPending:pe,...me}=x;return reactive({...me,...de,$fields:i,$value:t,$resetAll:J,$reset:_,$touch:k,$validate:ie,$unwatch:s,$watch:o,$clearExternalErrors:C,$extractDirtyFields:L})}function Te({rulesDef:e,...t}){if(Et(e,t.state))return At({rulesDef:e,...t});if(bt(t.state,e)){if(Ve(t.state))return ke({rulesDef:e,...t});{let n=effectScope().run(()=>{let R=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,c=>{R.value=c;},{deep:true}),watch(R,c=>{t.state.value=c;},{deep:true}),{fakeState:R}}),{state:l,...u}=t;return ke({rulesDef:e,...u,state:n.fakeState})}}else if(Tt(e))return Ne({rulesDef:e,...t})}function Ie({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:u,schemaErrors:R,schemaMode:c=false,onValidate:$}){let m=qe(),h=ref();return h.value=ke({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:u,fieldName:"root",path:"",schemaErrors:R,rootSchemaErrors:R,schemaMode:c,onValidate:$}),getCurrentScope()&&onScopeDispose(()=>{h.value?.$unwatch();}),reactive({regle:h})}function tt(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(u,R,c){let $=isRef(R)?R:computed(typeof R=="function"?R:()=>R),m={...n,...c},h=isRef(u)?u:ref(u),F=ref({...Y(h.value)});return {r$:Ie({scopeRules:$,state:h,options:m,initialState:F,customRules:e,shortcuts:r}).regle}}return l}var Ue=tt();function rt(){function e(t,r){return r}return e}var nt=rt();function Vt({rules:e,modifiers:t,shortcuts:r}){let n=tt(e,t,r),l=rt();return {useRegle:n,inferRules:l}}function Me(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(o=>o.$value):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$value])),set:o=>{r||typeof o=="object"&&Object.entries(o).forEach(([s,C])=>e[s].$value=C);}}),l=computed({get:()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentValue])),set:o=>{typeof o=="object"&&Object.entries(o).forEach(([s,C])=>e[s].$silentValue=C);}}),u=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$dirty)}),R=computed(()=>Object.entries(e).some(([o,s])=>s?.$anyDirty)),c=computed(()=>Object.entries(e).some(([o,s])=>s?.$invalid)),$=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$valid)}),m=computed(()=>Object.entries(e).some(([o,s])=>s?.$error)),h=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$ready)}),F=computed(()=>Object.entries(e).some(([o,s])=>s?.$pending)),x=computed(()=>r?Object.entries(e).map(([o,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$errors]))),P=computed(()=>r?Object.entries(e).map(([o,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentErrors]))),O=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$edited)}),a=computed(()=>Object.entries(e).some(([o,s])=>s?.$anyEdited)),w=computed(()=>r?Object.values(e):e);function v(){Object.values(e).forEach(o=>{o.$reset();});}function b(){Object.values(e).forEach(o=>{o.$touch();});}function E(){Object.values(e).forEach(o=>{o.$resetAll();});}function i(o=true){return Object.values(e).map(s=>s.$extractDirtyFields(o))}function S(){Object.values(e).forEach(o=>{o.$clearExternalErrors();});}async function V(){try{let o=n.value;return {result:(await Promise.allSettled(Object.values(e).map(_=>_.$validate()))).every(_=>_.status==="fulfilled"?_.value.result===!0:!1),data:o}}catch{return {result:false,data:n.value}}}return reactive({...!r&&{$silentValue:l},$errors:x,$silentErrors:P,$instances:w,$value:n,$dirty:u,$anyDirty:R,$invalid:c,$valid:$,$error:m,$pending:F,$ready:h,$edited:O,$anyEdited:a,$resetAll:E,$reset:v,$touch:b,$validate:V,$extractDirtyFields:i,$clearExternalErrors:S})}function Nt(e){function t(r){let n=computed(()=>toValue(r));R();let l=ref(c(e.value)),u=reactive({r$:l});function R(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}watch(n,R),watch(e,$=>{l.value=c($);},{deep:true});function c($){if(n.value){let m=$[n.value]??{};return Me(m,true)}else return Me($["~~global"]??{},true)}return {r$:u.r$}}return {useCollectScope:t}}function Ut(e,t){let r=t??Ue;return {useScopedRegle:(l,u,R)=>{let{namespace:c,...$}=R??{},m=computed(()=>toValue(c)),h=ref(`${Object.keys(e.value).length+1}-${he()}`),F=computed(()=>`instance-${h.value}`),{r$:x}=r(l,u,$);O(),St(P),watch(m,(a,w)=>{P(w),O();}),getCurrentInstance()&&onMounted(()=>{let a=getCurrentInstance();typeof window<"u"&&a?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(a?.proxy?.$el?.parentElement)&&P();});function P(a){let w=a??m.value;w?e.value[w]&&delete e.value[w][F.value]:e.value["~~global"][F.value]&&delete e.value["~~global"][F.value];}function O(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][F.value]=x):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][F.value]=x);}return {r$:x,dispose:P,register:O}}}}function at(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):ht(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=Ut(r,e?.customUseRegle),{useCollectScope:l}=Nt(r);return {useScopedRegle:n,useCollectScope:l}}
2
+ export{Le as InternalRuleType,ze as createRule,at as createScopedUseRegle,Vt as defineRegleConfig,nt as inferRules,Me as mergeRegles,ee as unwrapRuleParameters,Ue as useRegle,Ie as useRootStorage};
@@ -85,6 +85,25 @@ function toDate(argument) {
85
85
  }
86
86
  }
87
87
 
88
+ // ../shared/utils/debounce.ts
89
+ function debounce(func, wait, immediate) {
90
+ let timeout;
91
+ const debouncedFn = (...args) => new Promise((resolve) => {
92
+ clearTimeout(timeout);
93
+ timeout = setTimeout(() => {
94
+ timeout = undefined;
95
+ {
96
+ Promise.resolve(func.apply(this, [...args])).then(resolve);
97
+ }
98
+ }, wait);
99
+ });
100
+ debouncedFn.cancel = () => {
101
+ clearTimeout(timeout);
102
+ timeout = undefined;
103
+ };
104
+ return debouncedFn;
105
+ }
106
+
88
107
  // src/types/rules/rule.internal.types.ts
89
108
  var InternalRuleType = /* @__PURE__ */ ((InternalRuleType2) => {
90
109
  InternalRuleType2["Inline"] = "__inline";
@@ -374,25 +393,6 @@ function unwrapGetter(getter, value, index) {
374
393
  }
375
394
  return { scope, unwrapped };
376
395
  }
377
-
378
- // src/utils/debounce.ts
379
- function debounce(func, wait, immediate) {
380
- let timeout;
381
- const debouncedFn = (...args) => new Promise((resolve) => {
382
- clearTimeout(timeout);
383
- timeout = setTimeout(() => {
384
- timeout = undefined;
385
- {
386
- Promise.resolve(func.apply(this, [...args])).then(resolve);
387
- }
388
- }, wait);
389
- });
390
- debouncedFn.cancel = () => {
391
- clearTimeout(timeout);
392
- timeout = undefined;
393
- };
394
- return debouncedFn;
395
- }
396
396
  function versionCompare(current, other) {
397
397
  const cp = String(current).split(".");
398
398
  const op = String(other).split(".");
@@ -628,6 +628,10 @@ function createReactiveRuleStatus({
628
628
  let ruleResult = false;
629
629
  try {
630
630
  const validator = scopeState.$validator.value;
631
+ if (typeof validator !== "function") {
632
+ console.error(`${path}: Incorrect rule format, it needs to be either a function or created with "createRule".`);
633
+ return false;
634
+ }
631
635
  const resultOrPromise = validator(state.value, ...scopeState.$params.value);
632
636
  let cachedValue = state.value;
633
637
  updatePendingState();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@regle/core",
3
- "version": "0.7.6",
3
+ "version": "0.8.0",
4
4
  "description": "Type safe form validation library for Vue 3",
5
5
  "peerDependencies": {
6
6
  "pinia": ">=2.2.5",