@regle/core 1.2.0-beta.4 → 1.2.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- import {effectScope,computed,toValue,ref,watch,getCurrentInstance,onMounted,reactive,getCurrentScope,onScopeDispose,isRef,shallowRef,watchEffect,triggerRef,toRef,unref,version,nextTick}from'vue';function te(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var Ct=Symbol("regle-rule");function or(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 U(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>U(n)))),r=="Map"&&(t=new Map([...e].map(n=>[U(n[0]),U(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,or(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=U(e[n]);}return t}function F(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Pe(e,...t){for(var r=[].slice.call(arguments),n,a=r.length;n=r[a-1],a--;)if(!n||typeof n!="object"&&typeof n!="function")throw new Error("expected object, got "+n);for(var o=r[0],s=r.slice(1),i=s.length,a=0;a<i;a++){var $=s[a];for(var d in $)o[d]=$[d];}return o}function Xe(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 ke(e,t,r){let n,a=(...o)=>new Promise(s=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(s);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a}var Ze={Inline:"__inline",Async:"__async"};function Dt(e,t){return e.some(r=>r[t])}function It(e,t){return e.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[])}function re(e){try{return e.map(t=>toValue(t))}catch{return []}}function Ot(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function wt(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(s=>s.trim()).filter(s=>s.length>0).length:0}function et(e,...t){let{validator:r,type:n}=e,a=n===Ze.Async||r.constructor.name==="AsyncFunction";return {...{validator(i,...$){return e.validator(i,...re($.length?$:t))},message(i){return typeof e.message=="function"?e.message({...i,$params:re(i?.$params?.length?i.$params:t)}):e.message},active(i){return typeof e.active=="function"?e.active({...i,$params:re(i?.$params?.length?i.$params:t)}):e.active??true},tooltip(i){return typeof e.tooltip=="function"?e.tooltip({...i,$params:re(i?.$params?.length?i.$params:t)}):e.tooltip??[]},exec(i){let $=e.validator(i,...re(t)),d;return $ instanceof Promise?$.then(y=>(d=y,typeof d=="object"&&"$valid"in d?d.$valid:typeof d=="boolean"?d:false)):(d=$,typeof d=="object"&&"$valid"in d?d.$valid:typeof d=="boolean"?d:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:a,_params:Ot(t),_brand:Ct}}function tt(e){if(typeof e.validator=="function"){let r=et(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(wt(e.validator)>1){let a=function(...o){return et(e,...o)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.tooltip=r.tooltip,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._tooltip=r.tooltip,a._type=e.type,a._message_pacthed=false,a._tooltip_pacthed=false,a._async=n,a}else return r}throw new Error("[createRule] validator must be a function")}function rt(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),a=shallowRef(new Map),o=shallowRef(new Map);function s(v){let x=t.value.get(v);if(x)return x;{let C=ref({});return t.value.set(v,C),C}}function i(v){let x=r.value.get(v);if(x)return x;{let C=ref([]);return r.value.set(v,C),C}}function $(v,x,C){o.value.set(`${v}-${x}`,C);}function d(v,x){return o.value.get(`${v}-${x}`)}function y(v,x){v&&x!=null&&o.value.delete(`${v}-${x}`);}function G(v,x){n.value.set(v,x);}function E(v){return n.value.get(v)??false}function j(v,x){e.value.set(v,x);}function O(v,x){let C=e.value.get(v);return C?P(x,C)?{valid:true}:{valid:false}:void 0}function P(v,x){let C=Object.keys(x),R=Object.keys(v);return R.length!==C.length||!R.every(c=>C.includes(c))?false:R.every(c=>{let g=v[c],T=x[c];return !T||!g||typeof g=="function"||typeof T=="function"||typeof g=="number"||typeof g=="boolean"?false:g._params?g._params?.every((N,W)=>{if(typeof T=="number"||typeof T=="boolean")return true;{let J=re(T._params),z=re(g._params);return J?.[W]===z?.[W]}}):true})}function l(v){let x=a.value.get(v);if(x)return x;{let C=ref(false),R=ref(true),b=ref({}),c=ref(false);return a.value.set(v,{$pending:C,$valid:R,$metadata:b,$validating:c}),{$pending:C,$valid:R,$metadata:b,$validating:c}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:j,setDirtyEntry:G,checkRuleDeclEntry:O,getDirtyState:E,trySetRuleStatusRef:l,getFieldsEntry:s,getCollectionsEntry:i,getArrayStatus:d,addArrayStatus:$,deleteArrayStatus:y,arrayStatusStorage:o}}function Ue(e){return F(e.value)}function nt(e,t,r){let n=effectScope(),a;return e instanceof Function?a=n.run(()=>e(t,r??0)):a=e,{scope:n,unwrapped:a}}var Me={LessThan:-1,EqualTo:0,GreaterThan:1};function mr(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let o=Number(r[a]),s=Number(n[a]);if(o>s)return Me.GreaterThan;if(s>o)return Me.LessThan;if(!isNaN(o)&&isNaN(s))return Me.GreaterThan;if(isNaN(o)&&!isNaN(s))return Me.LessThan}return Me.EqualTo}var Ge=mr(version,"3.5.0")!==-1;function yr(){return Math.floor(Math.random()*Date.now()).toString()}function be(){return typeof window>"u"?yr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Pt(e){return getCurrentScope()?(onScopeDispose(e),true):false}function Mt(e){let t=false,r,n=effectScope(true);return (...a)=>(t||(r=n.run(()=>e(...a)),t=true),r)}function We(e,t){return Ue(e)||F(t.value)&&!te(t.value)&&!Object.entries(t.value).some(([r,n])=>ye(n)||typeof n=="function")}function At(e,t,r=false){return !!e.value&&F(e.value)&&"$each"in e.value||r&&Array.isArray(t.value)&&t.value.some(F)||Array.isArray(t.value)&&t.value.some(F)}function Be(e){return !!e.value&&F(e.value)}function ye(e){return F(e)&&"_validator"in e}function Ae(e){return typeof e.value=="function"?"_validator"in e.value:true}function jt(e){return F(e)&&"$fields"in e}function at(e){return !!e&&"$rules"in e}function lt({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 Vt({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 Ft(e){return F(e)&&"$each"in e}function ot(e,t){let{includePath:r=false}=t??{};if(Array.isArray(e)&&e.every(n=>!F(n)))return e;if(Ft(e)){let n=r?e.$self?.map(o=>({error:o,path:""}))??[]:e.$self??[],a=e.$each?.map(o=>Le(o,r))??[];return n?.concat(a.flat())}else return Object.entries(e).map(([n,a])=>Le(a,r,[n])).flat()}function Le(e,t=false,r){let n=t&&!r?[]:r;if(Array.isArray(e)&&e.every(a=>!F(a)))return t?e.map(a=>({error:a,path:n?.join(".")??""})):e;if(Ft(e)){let a=n?.length?e.$self?.map(s=>({error:s,path:n.join(".")}))??[]:e.$self??[],o=e.$each?.map((s,i)=>Le(s,t,n?.concat(i.toString())))??[];return a?.concat(o.flat())}else return Object.entries(e).map(([a,o])=>Le(o,t,n?.concat(a))).flat()}function _t({customMessages:e,rule:t,ruleKey:r,state:n,path:a,storage:o,$debounce:s,modifiers:i}){let $=effectScope(),d={},y,G=ref(false),E=ref(false),{$pending:j,$valid:O,$metadata:P,$validating:l}=o.trySetRuleStatusRef(`${a}.${r}`);function v(){$=effectScope(),d=$.run(()=>{let T=ref(false),N=ref(false),W=ref(true),J=ref(false),z=ref(false),le=computed(()=>({$value:n.value,$error:N.value,$dirty:T.value,$pending:J.value,$correct:z.value,$invalid:W.value,$rule:{$valid:O.value,$invalid:!O.value,$pending:j.value},$params:f.value,...P.value})),D=computed(()=>Ae(t)?typeof t.value.active=="function"?t.value.active(le.value):!!t.value.active:true);function H(w){let K="",m=e?e[r]?.[w]:void 0;if(m&&(typeof m=="function"?K=m(le.value):K=m),Ae(t)){let M=`_${w}_patched`;m&&!t.value[M]||(typeof t.value[w]=="function"?K=t.value[w](le.value):K=t.value[w]??"");}return K}let ve=computed(()=>{let w=H("message");return te(w)&&(w="This field is not valid"),w}),Re=computed(()=>H("tooltip")),u=computed(()=>Ae(t)&&t.value.type?t.value.type:r),p=computed(()=>Ae(t)?t.value.validator:t.value),f=computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),I=computed(()=>`${a}.${u.value}`);return {$active:D,$message:ve,$type:u,$validator:p,$params:f,$path:I,$tooltip:Re,$fieldCorrect:z,$fieldError:N,$fieldDirty:T,$fieldPending:J,$fieldInvalid:W}}),y=watch(d?.$params,()=>{(!i.$silent.value||i.$rewardEarly.value&&d.$fieldError.value)&&b();});}v();function x(){O.value=true,d.$fieldDirty.value&&(j.value=true);}async function C(){let T=false;try{let N=d.$validator.value;if(typeof N!="function")return console.error(`${a}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let W=N(n.value,...d.$params.value),J=n.value;x();let z;if(W instanceof Promise?z=await W:z=W,n.value!==J)return !0;if(typeof z=="boolean")T=z;else {let{$valid:le,...D}=z;T=le,P.value=D;}}catch{T=false;}finally{j.value=false;}return T}let R=ke(C,s??200);async function b(){try{l.value=!0;let T=!1;if(E.value=!0,ye(t.value)&&t.value._async)T=await R();else {let N=d.$validator.value,W=N(n.value,...d.$params.value);if(W 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(W!=null)if(typeof W=="boolean")T=W;else {let{$valid:J,...z}=W;T=J,P.value=z;}}return O.value=T,T}catch{return false}finally{l.value=false,E.value=false;}}function c(){O.value=true,P.value={},j.value=false,l.value=false,v();}function g(){y(),$.stop(),$=effectScope();}return reactive({...d,$pending:j,$valid:O,$metadata:P,$haveAsync:G,$maybePending:E,$validating:l,$parse:b,$unwatch:g,$watch:v,$reset:c})}function Ee({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:o,options:s,externalErrors:i,schemaErrors:$,schemaMode:d,onUnwatch:y,$isArray:G,initialState:E,shortcuts:j,onValidate:O}){let P=effectScope(),l,v=[],x,C,R,b,c,g=()=>{};function T(){let h=t.value,V=o.checkRuleDeclEntry(n,h);H.value=Object.fromEntries(Object.entries(h).filter(([S])=>S.startsWith("$"))),J(),D.value=Object.fromEntries(Object.entries(t.value).filter(([S])=>!S.startsWith("$")).map(([S,X])=>{if(X){let se=toRef(()=>X);return [S,_t({modifiers:{$silent:l.$silent,$rewardEarly:l.$rewardEarly},customMessages:r,rule:se,ruleKey:S,state:e,path:n,storage:o,$debounce:H.value.$debounce})]}return []}).filter(S=>!!S.length)),l.processShortcuts(),N(),V?.valid!=null&&(l.$dirty.value=o.getDirtyState(n),(l.$dirty.value&&!l.$silent.value||l.$rewardEarly.value&&l.$error.value)&&g()),o.addRuleDeclEntry(n,h);}function N(){g=l.$debounce.value?ke(le,l.$debounce.value??l.$haveAnyAsyncRule?100:0):le;}function W(){D.value&&Object.entries(D.value).forEach(([h,V])=>{V.$unwatch();}),R(),c?.(),l.$dirty.value&&o.setDirtyEntry(n,l.$dirty.value),x?.(),C?.(),P.stop(),P=effectScope(),v.forEach(h=>h.stop()),v=[],y?.(),b?.();}function J(){D.value&&Object.entries(D.value).forEach(([h,V])=>{V.$watch();}),l=P.run(()=>{let h=ref(false),V=ref(false),S=computed(()=>h.value),X=computed(()=>H.value.$debounce),se=computed(()=>H.value.$lazy!=null?H.value.$lazy:unref(s.lazy)!=null?unref(s.lazy):false),ie=computed(()=>H.value.$rewardEarly!=null?H.value.$rewardEarly:unref(s.rewardEarly)!=null?unref(s.rewardEarly):false),Fe=computed(()=>H.value.$clearExternalErrorsOnChange!=null?H.value.$clearExternalErrorsOnChange:unref(s.clearExternalErrorsOnChange)!=null?unref(s.clearExternalErrorsOnChange):true),B=computed(()=>ie.value?true:H.value.$silent!=null?H.value.$silent:unref(s.silent)!=null?unref(s.silent):false),A=computed(()=>H.value.$autoDirty!=null?H.value.$autoDirty:unref(s.autoDirty)!=null?unref(s.autoDirty):true),k=computed(()=>Object.entries(D.value).some(([ue,Q])=>Q.$validating)),we=computed({get:()=>e.value,set(ue){x(),e.value=ue,z();}}),_e=computed(()=>Se.value&&!$e.value&&h.value),yt=computed(()=>lt({field:{$rules:D.value,$error:_e.value,$externalErrors:i?.value,$schemaErrors:$?.value}})),gt=computed(()=>lt({field:{$rules:D.value,$error:_e.value,$externalErrors:i?.value,$schemaErrors:$?.value},silent:true})),Qe=computed(()=>h.value?E.value instanceof Date&&e.value instanceof Date?Xe(E.value).getDate()!==Xe(e.value).getDate():E.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(E.value)?e.value.length!==E.value.length:E.value!==e.value:false),vt=computed(()=>Qe.value),$t=computed(()=>Vt({field:{$rules:D.value}})),St=computed(()=>(B.value||S.value)&&!(Se.value||$e.value)),$e=computed(()=>V.value||!ie.value?Object.entries(D.value).some(([ue,Q])=>Q.$pending):false),Se=computed(()=>i?.value?.length||$?.value?.length?true:Ne.value?false:!ie.value||ie.value&&V.value?Object.entries(D.value).some(([ue,Q])=>!(Q.$valid&&!Q.$maybePending)):false),Tt=computed(()=>a),Ne=computed(()=>!!(te(D.value)&&!d)),ht=computed(()=>i?.value?.length||Ne.value?false:h.value&&!te(e.value)&&!k.value&&!$e.value?d?!$?.value?.length:Object.values(D.value).some(Q=>Q.$active)?Object.values(D.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),ar=computed(()=>Object.entries(D.value).some(([ue,Q])=>Q.$haveAsync));function lr(){j?.fields&&Object.entries(j.fields).forEach(([ue,Q])=>{let xt=effectScope();bt[ue]=xt.run(()=>{let Et=ref();return watchEffect(()=>{Et.value=Q(reactive({$dirty:h,$externalErrors:i?.value??[],$value:e,$silentValue:we,$rules:D,$error:_e,$pending:$e,$invalid:Se,$correct:ht,$errors:yt,$ready:St,$silentErrors:gt,$anyDirty:S,$tooltips:$t,$name:Tt,$inactive:Ne,$edited:Qe,$anyEdited:vt}));}),Et}),v.push(xt);});}let bt={};return watch(Se,ue=>{ue||(V.value=false);}),{$error:_e,$pending:$e,$invalid:Se,$correct:ht,$debounce:X,$lazy:se,$errors:yt,$ready:St,$silentErrors:gt,$rewardEarly:ie,$autoDirty:A,$silent:B,$clearExternalErrorsOnChange:Fe,$anyDirty:S,$edited:Qe,$anyEdited:vt,$name:Tt,$haveAnyAsyncRule:ar,$shortcuts:bt,$validating:k,$tooltips:$t,$dirty:h,triggerPunishment:V,processShortcuts:lr,$silentValue:we,$inactive:Ne}}),z(),R=watch(l.$dirty,h=>{o.setDirtyEntry(n,h),Object.values(D.value).forEach(V=>{V.$fieldDirty=h;});}),c=watch([l.$error,l.$correct,l.$invalid,l.$pending],()=>{Object.values(D.value).forEach(h=>{h.$fieldError=l.$error.value,h.$fieldInvalid=l.$invalid.value,h.$fieldPending=l.$pending.value,h.$fieldCorrect=l.$correct.value;});}),C=watch(l.$invalid,h=>{l.$rewardEarly.value&&!h&&(l.triggerPunishment.value=false);}),b=watch(l.$haveAnyAsyncRule,N);}function z(){x=watch(e,()=>{l.$autoDirty.value&&!l.$silent.value&&(l.$dirty.value||(l.$dirty.value=true)),t.value instanceof Function&&T(),(!l.$silent.value||l.$rewardEarly.value&&l.$error.value)&&g(),l.$rewardEarly.value!==true&&l.$clearExternalErrorsOnChange.value&&f();},{deep:G?true:Ge?1:true});}function le(){Object.values(D.value).forEach(h=>{h.$parse();});}let D=ref({}),H=ref({});T();function ve(h,V){if(f(),l.$dirty.value=false,l.triggerPunishment.value=false,o.setDirtyEntry(n,false),!V)if(h?.toInitialState)e.value=U(E);else if(h?.toState){let S;typeof h?.toState=="function"?S=h?.toState():S=h?.toState,E.value=U(S),e.value=U(S);}else E.value=F(e.value)?U(e.value):Array.isArray(e.value)?[...e.value]:e.value;h?.clearExternalErrors&&f(),V||Object.entries(D.value).forEach(([S,X])=>{X.$reset();}),!l.$lazy.value&&!l.$silent.value&&Object.values(D.value).forEach(S=>S.$parse());}function Re(h=true,V=false){l.$dirty.value||(l.$dirty.value=true),V&&h?(!l.$silent.value||l.$rewardEarly.value&&l.$error.value)&&g():h&&g();}async function u(){try{if(d)return O?(Re(!1),O()):{valid:!1,data:e.value};let h=e.value;if(l.triggerPunishment.value=!0,!l.$dirty.value)l.$dirty.value=!0;else if(!l.$silent.value&&l.$dirty.value&&!l.$pending.value)return {valid:!l.$error.value,data:h};return d?{valid:!$?.value?.length,data:h}:te(D.value)?{valid:!0,data:h}:{valid:(await Promise.allSettled(Object.entries(D.value).map(([X,se])=>se.$parse()))).every(X=>X.status==="fulfilled"?X.value===!0:!1),data:h}}catch{return {valid:false,data:e.value}}}function p(h=true){return l.$dirty.value?e.value:h?{_null:true}:null}function f(){i?.value?.length&&(i.value=[]);}!l.$lazy.value&&!l.$dirty.value&&!l.$silent.value&&g();let{$shortcuts:I,$validating:w,$autoDirty:K,$rewardEarly:m,$clearExternalErrorsOnChange:M,$haveAnyAsyncRule:Y,$debounce:Z,$lazy:ee,triggerPunishment:oe,...fe}=l;return reactive({...fe,$externalErrors:i,$value:e,$rules:D,...I,$reset:ve,$touch:Re,$validate:u,$unwatch:W,$watch:J,$extractDirtyFields:p,$clearExternalErrors:f})}function ut({$id:e,path:t,index:r,options:n,storage:a,stateValue:o,customMessages:s,rules:i,externalErrors:$,schemaErrors:d,initialState:y,shortcuts:G,fieldName:E,schemaMode:j}){let O=i.$key?i.$key:be(),P=`${t}.${String(O)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?P=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:O,enumerable:false,configurable:false,writable:false}}));let l=toRef($?.value??[],r),v=computed(()=>d?.value?.[r]),x=Ce({state:o,rulesDef:toRef(()=>i),customMessages:s,path:P,storage:a,options:n,externalErrors:l,schemaErrors:v,initialState:y,shortcuts:G,fieldName:E,schemaMode:j});if(x){let C=o.value?.$id;x.$id=C??String(O),a.addArrayStatus(e,x.$id,x);}return x}function Gt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:s,schemaErrors:i,schemaMode:$,initialState:d,shortcuts:y,fieldName:G}){let E=effectScope(),j,O=effectScope(),P,l=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let v=ref(),x=ref(e.value),C,R=ref({}),b=a.getCollectionsEntry(n);P=O.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(p=>typeof p!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(p=>ye(p)||typeof p=="function"):false)})),c(),N();function c(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(v.value=be(),Object.defineProperties(e.value,{$id:{value:v.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(v.value=e.value.$id)),x.value=R.value.$value,Array.isArray(e.value)&&!P.isPrimitiveArray.value?b.value=e.value.filter(u=>typeof u=="object").map((u,p)=>{let{scope:f,unwrapped:I}=nt(t.value.$each,toRef(()=>u),p);f&&l.push(f);let w=toRef(d.value??[],p),K=toRef(s?.value??{},"$each"),m=computed(()=>i?.value?.$each),M=ut({$id:v.value,path:n,customMessages:r,rules:I??{},stateValue:toRef(()=>u),index:p,options:o,storage:a,externalErrors:K,schemaErrors:m,initialState:w,shortcuts:y,fieldName:G,schemaMode:$});return M||null}).filter(u=>!!u):b.value=[],R.value=Ee({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:toRef(s?.value??{},"$self"),schemaErrors:computed(()=>i?.value?.$self),$isArray:true,initialState:d,shortcuts:y,fieldName:G,schemaMode:$});}function g(){if(Array.isArray(e.value)&&!P.isPrimitiveArray.value){let u=U(b.value);b.value=e.value.filter(p=>typeof p=="object").map((p,f)=>{let I=toRef(()=>p);if(p.$id&&b.value.find(w=>w.$id===p.$id)){let w=a.getArrayStatus(v.value,p.$id);return w?(w.$value=I,w):null}else {let{scope:w,unwrapped:K}=nt(t.value.$each,I,f);w&&l.push(w);let m=toRef(s?.value??{},"$each"),M=computed(()=>i?.value?.$each??[]),Y=ut({$id:v.value,path:n,customMessages:r,rules:K??{},stateValue:I,index:f,options:o,storage:a,externalErrors:m,schemaErrors:M,initialState:toRef(d.value??[],f),shortcuts:y,fieldName:G,schemaMode:$});return Y||null}}).filter(p=>!!p),u.filter(p=>!e.value?.find(f=>p.$id===f.$id)).forEach((p,f)=>{a.deleteArrayStatus(v.value,f.toString());});}else b.value=[];}function T(){C=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?c():g();},{deep:Ge?1:true,flush:"pre"});}function N(){T(),E=effectScope(),j=E.run(()=>{let u=computed({get:()=>e.value,set(S){C(),e.value=S,T();}}),p=computed(()=>R.value.$dirty&&(!b.value.length||b.value.every(S=>S.$dirty))),f=computed(()=>R.value.$anyDirty||b.value.some(S=>S.$anyDirty)),I=computed(()=>R.value.$invalid||b.value.some(S=>S.$invalid)),w=computed(()=>(te(R.value.$rules)?true:R.value.$correct)&&(!b.value.length||b.value.every(S=>S.$correct||S.$anyDirty&&!S.$invalid))),K=computed(()=>R.value.$error||b.value.some(S=>S.$error)),m=computed(()=>!(I.value||M.value)),M=computed(()=>R.value.$pending||b.value.some(S=>S.$pending)),Y=computed(()=>!!b.value.length&&b.value.every(S=>S.$edited)),Z=computed(()=>R.value.$anyEdited||b.value.some(S=>S.$anyEdited)),ee=computed(()=>({$self:R.value.$errors,$each:b.value.map(S=>S.$errors)})),oe=computed(()=>({$self:R.value.$silentErrors,$each:b.value.map(S=>S.$silentErrors)})),fe=computed(()=>G);function h(){y?.collections&&Object.entries(y?.collections).forEach(([S,X])=>{let se=effectScope();V[S]=se.run(()=>{let ie=ref();return watchEffect(()=>{ie.value=X(reactive({$dirty:p,$error:K,$silentValue:u,$pending:M,$invalid:I,$correct:w,$errors:ee,$ready:m,$silentErrors:oe,$anyDirty:f,$name:fe,$each:b,$self:R,$value:e,$edited:Y,$anyEdited:Z}));}),ie}),l.push(se);});}let V={};return h(),{$dirty:p,$anyDirty:f,$invalid:I,$correct:w,$error:K,$pending:M,$errors:ee,$silentErrors:oe,$ready:m,$name:fe,$shortcuts:V,$silentValue:u,$edited:Y,$anyEdited:Z}}),P.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 W(){C&&C(),R.value&&R.value.$unwatch(),b.value&&b.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),E.stop(),E=effectScope(),O.stop(),O=effectScope(true),l.forEach(u=>u.stop()),l=[];}function J(u=true,p=false){R.value.$touch(u,p),b.value.forEach(f=>{f.$touch(u,p);});}function z(u,p){if(W(),!p)if(u?.toInitialState)e.value=U(d.value);else if(u?.toState){let f;typeof u?.toState=="function"?f=u?.toState():f=u?.toState,d.value=U(f),e.value=U(f);}else d.value=U(e.value);u?.clearExternalErrors&&D(),R.value.$reset(),b.value.forEach(f=>{f.$reset(u,true);}),p||c();}async function le(){let u=e.value;try{return {valid:(await Promise.allSettled([R.value.$validate(),...b.value.map(I=>I.$validate())])).every(I=>I.status==="fulfilled"?I.value.valid===!0:!1),data:u}}catch{return {valid:false,data:u}}}function D(){R.value.$clearExternalErrors(),b.value.forEach(u=>{u.$clearExternalErrors();});}function H(u=true){let p=b.value.map(f=>{if(jt(f))return f.$extractDirtyFields(u)});return u&&p.every(f=>te(f))&&(p=[]),p}let{$shortcuts:ve,...Re}=j;return reactive({$self:R,...Re,...ve,$each:b,$value:e,$validate:le,$unwatch:W,$watch:N,$touch:J,$reset:z,$extractDirtyFields:H,$clearExternalErrors:D})}function ze({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:a,schemaErrors:o,rootSchemaErrors:s,validationGroups:i,initialState:$,fieldName:d,...y}){let G=effectScope(),E,j=[],O=null,P=null,l=null,v=null;async function C(u=true){let p=Object.entries(e.value),f=Object.fromEntries(p.filter(([m,M])=>!!M).map(([m,M])=>{if(M){let Y=toRef(t.value??{},m),Z=toRef(()=>M),ee=toRef(a?.value??{},m),oe=computed(()=>o?.value?.[m]),fe=toRef($?.value??{},m);return [m,Ce({state:Y,rulesDef:Z,path:r?`${r}.${m}`:m,externalErrors:ee,schemaErrors:oe,initialState:fe,fieldName:m,...y})]}return []})),I=Object.fromEntries(Object.entries(unref(a)??{}).filter(([m,M])=>!(m in e.value)&&!!M).map(([m])=>{let M=toRef(t.value??{},m),Y=toRef(a?.value??{},m),Z=computed(()=>o?.value?.[m]),ee=toRef($?.value??{},m);return [m,Ce({state:M,rulesDef:computed(()=>({})),path:r?`${r}.${m}`:m,externalErrors:Y,schemaErrors:Z,initialState:ee,fieldName:m,...y})]})),w=Object.fromEntries(Object.entries(unref(o)??{}).map(([m])=>{let M=toRef(t.value??{},m),Y=toRef(a?.value??{},m),Z=computed(()=>o?.value?.[m]),ee=toRef($?.value??{},m);return [m,Ce({state:M,rulesDef:computed(()=>({})),path:r?`${r}.${m}`:m,externalErrors:Y,schemaErrors:Z,initialState:ee,fieldName:m,...y})]})),K=Object.fromEntries(Object.entries(t.value??{}).filter(([m])=>!(m in e.value)&&!(m in(I??{}))&&!(m in(w??{}))).map(([m])=>{let M=toRef(t.value??{},m),Y=toRef(a?.value??{},m),Z=computed(()=>o?.value?.[m]),ee=toRef($?.value??{},m);return [m,Ce({state:M,rulesDef:computed(()=>({})),path:r?`${r}.${m}`:m,externalErrors:Y,schemaErrors:Z,initialState:ee,fieldName:m,...y})]}));R.value={...f,...I,...w,...K},u&&g();}let R=y.storage.getFieldsEntry(r);C();function b(){a&&(l=watch(a,()=>{T(),C();},{deep:true}));}function c(){v=watch(t,()=>{E.$autoDirty.value&&!E.$silent.value&&(T(),C(),J(true,true));},{flush:"sync"});}function g(){n&&(O?.(),O=watch(n,()=>{T(),C();},{deep:true,flush:"pre"}),b()),s&&(P?.(),P=watch(s,()=>{T(),C();},{deep:true,flush:"post"})),c(),E=G.run(()=>{let u=computed({get:()=>t.value,set(B){T(),t.value=B,C();}}),p=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).every(([B,A])=>A?.$dirty)),f=computed(()=>Object.entries(R.value).some(([B,A])=>A?.$anyDirty)),I=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).some(([B,A])=>A?.$invalid)),w=computed(()=>{let B=Object.entries(R.value).filter(([A,k])=>at(k)?!k.$inactive:true);return B.length?B.every(([A,k])=>y.schemaMode?k.$correct:at(k)?"required"in k.$rules&&k.$rules.required.$active?k?.$correct:!k.$invalid&&!k.$pending:k?.$correct):false}),K=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).some(([B,A])=>A?.$error)),m=computed(()=>unref(y.options.rewardEarly)!=null?unref(y.options.rewardEarly):false),M=computed(()=>unref(y.options.silent)!=null?unref(y.options.silent):!!m.value),Y=computed(()=>unref(y.options.autoDirty)!=null?unref(y.options.autoDirty):true),Z=computed(()=>(M.value||f.value)&&!(I.value||oe.value)),ee=ref(false),oe=computed(()=>ee.value||Object.entries(R.value).some(([B,A])=>A?.$pending)),fe=computed(()=>Object.fromEntries(Object.entries(R.value).map(([B,A])=>[B,A?.$errors]))),h=computed(()=>Object.fromEntries(Object.entries(R.value).map(([B,A])=>[B,A?.$silentErrors]))),V=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).every(([B,A])=>A?.$edited)),S=computed(()=>Object.entries(R.value).some(([B,A])=>A?.$anyEdited)),X=computed(()=>d);function se(){y.shortcuts?.nested&&Object.entries(y.shortcuts.nested).forEach(([B,A])=>{let k=effectScope();Fe[B]=k.run(()=>{let we=ref();return watchEffect(()=>{we.value=A(reactive({$dirty:p,$value:t,$silentValue:u,$error:K,$pending:oe,$invalid:I,$correct:w,$ready:Z,$anyDirty:f,$name:X,$silentErrors:h,$errors:fe,$fields:R,$edited:V,$anyEdited:S}));}),we}),j.push(k);});}let ie=computed({get:()=>i?Object.fromEntries(Object.entries(i?.(R.value)??{}).map(([B,A])=>A.length?[B,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(k=>[k,Dt(A,k)])),...Object.fromEntries(["$errors","$silentErrors"].map(k=>[k,It(A,k)]))}]:[])):{},set(){}}),Fe={};return se(),{$dirty:p,$anyDirty:f,$invalid:I,$correct:w,$error:K,$pending:oe,$errors:fe,$silentErrors:h,$ready:Z,$name:X,$shortcuts:Fe,$groups:ie,$silentValue:u,$edited:V,$anyEdited:S,$localPending:ee,$autoDirty:Y,$silent:M}});}function T(){O?.(),l?.(),v?.(),P?.(),j=[],E={},R.value&&Object.entries(R.value).forEach(([u,p])=>{p.$unwatch();});}function N(){Object.entries(R.value).forEach(([u,p])=>{p.$clearExternalErrors();});}function W(u,p){if(l?.(),T(),!p)if(u?.toInitialState)t.value=U({...$.value??{}});else if(u?.toState){let f;typeof u?.toState=="function"?f=u?.toState():f=u?.toState,$.value=U(f),t.value=U(f);}else $.value=U(t.value);Object.values(R.value).forEach(f=>{f.$reset(u,true);}),u?.clearExternalErrors&&N(),b(),p||C();}function J(u=true,p=false){Object.values(R.value).forEach(f=>{f.$touch(u,p);});}function z(u){return u.filter(([p,f])=>F(f)?!(f&&typeof f=="object"&&"_null"in f)&&!te(f):Array.isArray(f)?f.length:true)}function le(u=true){let p=Object.entries(R.value).map(([f,I])=>[f,I.$extractDirtyFields(u)]);return u&&(p=z(p)),Object.fromEntries(p)}async function D(){try{if(y.schemaMode)return y.onValidate?(J(!1),E.$localPending.value=!0,y.onValidate()):{valid:!1,data:t.value};{let u=t.value;return {valid:(await Promise.allSettled(Object.values(R.value).map(I=>I.$validate()))).every(I=>I.status==="fulfilled"?I.value.valid===!0:!1),data:u}}}catch{return {valid:false,data:t.value}}finally{E.$localPending.value=false;}}let{$shortcuts:H,$localPending:ve,...Re}=E;return reactive({...Re,...H,$fields:R,$value:t,$reset:W,$touch:J,$validate:D,$unwatch:T,$watch:g,$clearExternalErrors:N,$extractDirtyFields:le})}function Ce({rulesDef:e,...t}){if(At(e,t.state,t.schemaMode))return Gt({rulesDef:e,...t});if(We(t.state,e)){if(Ue(t.state))return ze({rulesDef:e,...t});{let n=effectScope().run(()=>{let s=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,i=>{s.value=i;},{deep:true}),watch(s,i=>{t.state.value=i;},{deep:true}),{fakeState:s}}),{state:a,...o}=t;return ze({rulesDef:e,...o,state:n.fakeState})}}else if(Be(e))return Ee({rulesDef:e,...t})}function Oe({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:o,schemaErrors:s,schemaMode:i=false,onValidate:$}){let d=rt(),y=ref();return We(n,r)?y.value=ze({rootRules:r,rulesDef:r,state:n,customMessages:a?.(),storage:d,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaErrors:s,rootSchemaErrors:s,schemaMode:i,onValidate:$}):Be(r)&&(y.value=Ee({rulesDef:r,state:n,customMessages:a?.(),storage:d,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaMode:i,schemaErrors:s,onValidate:$})),getCurrentScope()&&onScopeDispose(()=>{y.value?.$unwatch();}),reactive({regle:y})}function Ke(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,silent:t?.silent,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function a(o,s,i){let $=isRef(s)?s:typeof s=="function"?void 0:computed(()=>s),d={...n,...i},y=isRef(o)?o:ref(o),G=shallowRef($??{});typeof s=="function"&&watchEffect(()=>{G.value=s(y),triggerRef(G);});let E=ref(F(y.value)?{...U(y.value)}:U(y.value));return {r$:Oe({scopeRules:G,state:y,options:d,initialState:E,customRules:e,shortcuts:r}).regle}}return a}var Je=Ke();function qe(){function e(t,r){return r}return e}var Rt=qe();function Ht({rules:e,modifiers:t,shortcuts:r}){let n=Ke(e,t,r);n.__config={rules:e,modifiers:t,shortcuts:r};let a=qe();return {useRegle:n,inferRules:a}}function zt(e,{rules:t,modifiers:r,shortcuts:n}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&r?Pe(a.modifiers,r):r,i=a.shortcuts&&n?Pe(a.shortcuts,n):n,$=Ke(o,s,i);$.__config={rules:o,modifiers:s,shortcuts:i};let d=qe();return {useRegle:$,inferRules:d}}function Ve(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(c=>c.$value):Object.fromEntries(Object.entries(e).map(([c,g])=>[c,g.$value])),set:c=>{r||typeof c=="object"&&Object.entries(c).forEach(([g,T])=>e[g].$value=T);}}),a=computed({get:()=>Object.fromEntries(Object.entries(e).map(([c,g])=>[c,g.$silentValue])),set:c=>{typeof c=="object"&&Object.entries(c).forEach(([g,T])=>e[g].$silentValue=T);}}),o=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([g,T])=>T?.$dirty)}),s=computed(()=>Object.entries(e).some(([c,g])=>g?.$anyDirty)),i=computed(()=>Object.entries(e).some(([c,g])=>g?.$invalid)),$=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([g,T])=>T?.$correct||T.$anyDirty&&!T.$invalid)}),d=computed(()=>Object.entries(e).some(([c,g])=>g?.$error)),y=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([g,T])=>T?.$ready)}),G=computed(()=>Object.entries(e).some(([c,g])=>g?.$pending)),E=computed(()=>r?Object.entries(e).map(([c,g])=>g.$errors):Object.fromEntries(Object.entries(e).map(([c,g])=>[c,g.$errors]))),j=computed(()=>r?Object.entries(e).map(([c,g])=>g.$silentErrors):Object.fromEntries(Object.entries(e).map(([c,g])=>[c,g.$silentErrors]))),O=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([g,T])=>T?.$edited)}),P=computed(()=>Object.entries(e).some(([c,g])=>g?.$anyEdited)),l=computed(()=>r?Object.values(e):e);function v(c){Object.values(e).forEach(g=>{g.$reset(c);});}function x(){Object.values(e).forEach(c=>{c.$touch();});}function C(c=true){return Object.values(e).map(g=>g.$extractDirtyFields(c))}function R(){Object.values(e).forEach(c=>{c.$clearExternalErrors();});}async function b(){try{let c=n.value;return {valid:(await Promise.allSettled(Object.values(e).map(N=>N.$validate()))).every(N=>N.status==="fulfilled"?N.value.valid===!0:!1),data:c}}catch{return {valid:false,data:n.value}}}return reactive({...!r&&{$silentValue:a},$errors:E,$silentErrors:j,$instances:l,$value:n,$dirty:o,$anyDirty:s,$invalid:i,$correct:$,$error:d,$pending:G,$ready:y,$edited:O,$anyEdited:P,$reset:v,$touch:x,$validate:b,$extractDirtyFields:C,$clearExternalErrors:R})}function Jt(e,t){function r(n){let a=computed(()=>toValue(n));i();let o=ref($(e.value)),s=reactive({r$:o});function i(){a.value&&!e.value[a.value]&&(e.value[a.value]={});}watch(a,i),watch(e,d=>{o.value=$(d);},{deep:true});function $(d){if(a.value){let y=d[a.value]??{};return Ve(y,!t.asRecord)}else return Ve(d["~~global"]??{},!t.asRecord)}return {r$:s.r$}}return {useCollectScope:r}}function Qt(e,t){let r=t??Je;return {useScopedRegle:(a,o,s)=>{let{namespace:i,scopeKey:$,...d}=s??{};r.__config??={};let y=computed(()=>toValue(i)),G=ref(`${Object.keys(e.value).length+1}-${be()}`),E=computed(()=>s?.scopeKey??`instance-${G.value}`),{r$:j}=r(a,o,d);P(),Pt(O),watch(y,(l,v)=>{O(v),P();}),getCurrentInstance()&&onMounted(()=>{let l=getCurrentInstance();typeof window<"u"&&l?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(l?.proxy?.$el?.parentElement)&&O();});function O(l){let v=l??y.value;v?e.value[v]&&delete e.value[v][E.value]:e.value["~~global"][E.value]&&delete e.value["~~global"][E.value];}function P(){y.value?(e.value[y.value]||(e.value[y.value]={}),e.value[y.value][E.value]=j):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][E.value]=j);}return {r$:j,dispose:O,register:P}}}}function Ye(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):Mt(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=Qt(r,e?.customUseRegle),{useCollectScope:a}=Jt(r,{asRecord:e?.asRecord});return {useScopedRegle:n,useCollectScope:a}}var {useCollectScope:dt,useScopedRegle:pt}=Ye();function er(e,t,r){let n=computed(()=>toValue(e)[t]);return computed(()=>{let o=r.find(s=>{if(s[t]&&"literal"in s[t]){let i=s[t].literal;if(ye(i))return unref(i._params?.[0])===n.value}});if(o)return o;{let s=r.find(i=>F(i[t])&&!Object.keys(i[t]).some($=>$==="literal"));return s||{}}})}function mt(e,t,r){return F(e[t])&&"$value"in e[t]&&e[t]?.$value===r}function tr(e,t,r){let n=isRef(e)?toRef(e.value,"$fields"):toRef(e,"$fields"),a=ref();return watch(n,async()=>{await nextTick(),mt(n.value,t,r)?a.value=n.value:a.value=void 0;},{immediate:true,flush:"pre"}),a}function rr(e){return e}function nr(e,t){return r=>Pe({...e},t(r))}
1
+ import {effectScope,computed,toValue,ref,watch,getCurrentInstance,onMounted,reactive,getCurrentScope,onScopeDispose,isRef,shallowRef,watchEffect,triggerRef,toRef,unref,version,nextTick}from'vue';function te(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var Ct=Symbol("regle-rule");function or(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 U(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>U(n)))),r=="Map"&&(t=new Map([...e].map(n=>[U(n[0]),U(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,or(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=U(e[n]);}return t}function F(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Pe(e,...t){for(var r=[].slice.call(arguments),n,a=r.length;n=r[a-1],a--;)if(!n||typeof n!="object"&&typeof n!="function")throw new Error("expected object, got "+n);for(var o=r[0],s=r.slice(1),i=s.length,a=0;a<i;a++){var $=s[a];for(var d in $)o[d]=$[d];}return o}function Xe(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 ke(e,t,r){let n,a=(...o)=>new Promise(s=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(s);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a}var Ze={Inline:"__inline",Async:"__async"};function Dt(e,t){return e.some(r=>r[t])}function It(e,t){return e.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[])}function re(e){try{return e.map(t=>toValue(t))}catch{return []}}function Ot(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function wt(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(s=>s.trim()).filter(s=>s.length>0).length:0}function et(e,...t){let{validator:r,type:n}=e,a=n===Ze.Async||r.constructor.name==="AsyncFunction";return {...{validator(i,...$){return e.validator(i,...re($.length?$:t))},message(i){return typeof e.message=="function"?e.message({...i,$params:re(i?.$params?.length?i.$params:t)}):e.message},active(i){return typeof e.active=="function"?e.active({...i,$params:re(i?.$params?.length?i.$params:t)}):e.active??true},tooltip(i){return typeof e.tooltip=="function"?e.tooltip({...i,$params:re(i?.$params?.length?i.$params:t)}):e.tooltip??[]},exec(i){let $=e.validator(i,...re(t)),d;return $ instanceof Promise?$.then(y=>(d=y,typeof d=="object"&&"$valid"in d?d.$valid:typeof d=="boolean"?d:false)):(d=$,typeof d=="object"&&"$valid"in d?d.$valid:typeof d=="boolean"?d:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:a,_params:Ot(t),_brand:Ct}}function tt(e){if(typeof e.validator=="function"){let r=et(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(wt(e.validator)>1){let a=function(...o){return et(e,...o)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.tooltip=r.tooltip,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._tooltip=r.tooltip,a._type=e.type,a._message_pacthed=false,a._tooltip_pacthed=false,a._async=n,a}else return r}throw new Error("[createRule] validator must be a function")}function rt(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),a=shallowRef(new Map),o=shallowRef(new Map);function s(v){let x=t.value.get(v);if(x)return x;{let C=ref({});return t.value.set(v,C),C}}function i(v){let x=r.value.get(v);if(x)return x;{let C=ref([]);return r.value.set(v,C),C}}function $(v,x,C){o.value.set(`${v}-${x}`,C);}function d(v,x){return o.value.get(`${v}-${x}`)}function y(v,x){v&&x!=null&&o.value.delete(`${v}-${x}`);}function G(v,x){n.value.set(v,x);}function E(v){return n.value.get(v)??false}function j(v,x){e.value.set(v,x);}function O(v,x){let C=e.value.get(v);return C?P(x,C)?{valid:true}:{valid:false}:void 0}function P(v,x){let C=Object.keys(x),R=Object.keys(v);return R.length!==C.length||!R.every(c=>C.includes(c))?false:R.every(c=>{let g=v[c],T=x[c];return !T||!g||typeof g=="function"||typeof T=="function"||typeof g=="number"||typeof g=="boolean"?false:g._params?g._params?.every((N,W)=>{if(typeof T=="number"||typeof T=="boolean")return true;{let J=re(T._params),z=re(g._params);return J?.[W]===z?.[W]}}):true})}function l(v){let x=a.value.get(v);if(x)return x;{let C=ref(false),R=ref(true),b=ref({}),c=ref(false);return a.value.set(v,{$pending:C,$valid:R,$metadata:b,$validating:c}),{$pending:C,$valid:R,$metadata:b,$validating:c}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:j,setDirtyEntry:G,checkRuleDeclEntry:O,getDirtyState:E,trySetRuleStatusRef:l,getFieldsEntry:s,getCollectionsEntry:i,getArrayStatus:d,addArrayStatus:$,deleteArrayStatus:y,arrayStatusStorage:o}}function Ue(e){return F(e.value)}function nt(e,t,r){let n=effectScope(),a;return e instanceof Function?a=n.run(()=>e(t,r??0)):a=e,{scope:n,unwrapped:a}}var Me={LessThan:-1,EqualTo:0,GreaterThan:1};function mr(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let o=Number(r[a]),s=Number(n[a]);if(o>s)return Me.GreaterThan;if(s>o)return Me.LessThan;if(!isNaN(o)&&isNaN(s))return Me.GreaterThan;if(isNaN(o)&&!isNaN(s))return Me.LessThan}return Me.EqualTo}var Ge=mr(version,"3.5.0")!==-1;function yr(){return Math.floor(Math.random()*Date.now()).toString()}function be(){return typeof window>"u"?yr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Pt(e){return getCurrentScope()?(onScopeDispose(e),true):false}function Mt(e){let t=false,r,n=effectScope(true);return (...a)=>(t||(r=n.run(()=>e(...a)),t=true),r)}function We(e,t){return Ue(e)||F(t.value)&&!te(t.value)&&!Object.entries(t.value).some(([r,n])=>ye(n)||typeof n=="function")}function At(e,t,r=false){return !!e.value&&F(e.value)&&"$each"in e.value||r&&Array.isArray(t.value)&&t.value.some(F)||Array.isArray(t.value)&&t.value.some(F)}function Be(e){return !!e.value&&F(e.value)}function ye(e){return F(e)&&"_validator"in e}function Ae(e){return typeof e.value=="function"?"_validator"in e.value:true}function jt(e){return F(e)&&"$fields"in e}function at(e){return !!e&&"$rules"in e}function lt({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 Vt({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 Ft(e){return F(e)&&"$each"in e}function ot(e,t){let{includePath:r=false}=t??{};if(Array.isArray(e)&&e.every(n=>!F(n)))return e;if(Ft(e)){let n=r?e.$self?.map(o=>({error:o,path:""}))??[]:e.$self??[],a=e.$each?.map(o=>Le(o,r))??[];return n?.concat(a.flat())}else return Object.entries(e).map(([n,a])=>Le(a,r,[n])).flat()}function Le(e,t=false,r){let n=t&&!r?[]:r;if(Array.isArray(e)&&e.every(a=>!F(a)))return t?e.map(a=>({error:a,path:n?.join(".")??""})):e;if(Ft(e)){let a=n?.length?e.$self?.map(s=>({error:s,path:n.join(".")}))??[]:e.$self??[],o=e.$each?.map((s,i)=>Le(s,t,n?.concat(i.toString())))??[];return a?.concat(o.flat())}else return Object.entries(e).map(([a,o])=>Le(o,t,n?.concat(a))).flat()}function _t({customMessages:e,rule:t,ruleKey:r,state:n,path:a,storage:o,$debounce:s,modifiers:i}){let $=effectScope(),d={},y,G=ref(false),E=ref(false),{$pending:j,$valid:O,$metadata:P,$validating:l}=o.trySetRuleStatusRef(`${a}.${r}`);function v(){$=effectScope(),d=$.run(()=>{let T=ref(false),N=ref(false),W=ref(true),J=ref(false),z=ref(false),le=computed(()=>({$value:n.value,$error:N.value,$dirty:T.value,$pending:J.value,$correct:z.value,$invalid:W.value,$rule:{$valid:O.value,$invalid:!O.value,$pending:j.value},$params:f.value,...P.value})),D=computed(()=>Ae(t)?typeof t.value.active=="function"?t.value.active(le.value):!!t.value.active:true);function H(w){let K="",m=e?e[r]?.[w]:void 0;if(m&&(typeof m=="function"?K=m(le.value):K=m),Ae(t)){let M=`_${w}_patched`;m&&!t.value[M]||(typeof t.value[w]=="function"?K=t.value[w](le.value):K=t.value[w]??"");}return K}let ve=computed(()=>{let w=H("message");return te(w)&&(w="This field is not valid"),w}),Re=computed(()=>H("tooltip")),u=computed(()=>Ae(t)&&t.value.type?t.value.type:r),p=computed(()=>Ae(t)?t.value.validator:t.value),f=computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),I=computed(()=>`${a}.${u.value}`);return {$active:D,$message:ve,$type:u,$validator:p,$params:f,$path:I,$tooltip:Re,$fieldCorrect:z,$fieldError:N,$fieldDirty:T,$fieldPending:J,$fieldInvalid:W}}),y=watch(d?.$params,()=>{(!i.$silent.value||i.$rewardEarly.value&&d.$fieldError.value)&&b();});}v();function x(){O.value=true,d.$fieldDirty.value&&(j.value=true);}async function C(){let T=false;try{let N=d.$validator.value;if(typeof N!="function")return console.error(`${a}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let W=N(n.value,...d.$params.value),J=n.value;x();let z;if(W instanceof Promise?z=await W:z=W,n.value!==J)return !0;if(typeof z=="boolean")T=z;else {let{$valid:le,...D}=z;T=le,P.value=D;}}catch{T=false;}finally{j.value=false;}return T}let R=ke(C,s??200);async function b(){try{l.value=!0;let T=!1;if(E.value=!0,ye(t.value)&&t.value._async)T=await R();else {let N=d.$validator.value,W=N(n.value,...d.$params.value);if(W 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(W!=null)if(typeof W=="boolean")T=W;else {let{$valid:J,...z}=W;T=J,P.value=z;}}return O.value=T,T}catch{return false}finally{l.value=false,E.value=false;}}function c(){O.value=true,P.value={},j.value=false,l.value=false,v();}function g(){y(),$.stop(),$=effectScope();}return reactive({...d,$pending:j,$valid:O,$metadata:P,$haveAsync:G,$maybePending:E,$validating:l,$parse:b,$unwatch:g,$watch:v,$reset:c})}function Ee({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:o,options:s,externalErrors:i,schemaErrors:$,schemaMode:d,onUnwatch:y,$isArray:G,initialState:E,shortcuts:j,onValidate:O}){let P=effectScope(),l,v=[],x,C,R,b,c,g=()=>{};function T(){let h=t.value,V=o.checkRuleDeclEntry(n,h);H.value=Object.fromEntries(Object.entries(h).filter(([S])=>S.startsWith("$"))),J(),D.value=Object.fromEntries(Object.entries(t.value).filter(([S])=>!S.startsWith("$")).map(([S,X])=>{if(X){let se=toRef(()=>X);return [S,_t({modifiers:{$silent:l.$silent,$rewardEarly:l.$rewardEarly},customMessages:r,rule:se,ruleKey:S,state:e,path:n,storage:o,$debounce:H.value.$debounce})]}return []}).filter(S=>!!S.length)),l.processShortcuts(),N(),V?.valid!=null&&(l.$dirty.value=o.getDirtyState(n),(l.$dirty.value&&!l.$silent.value||l.$rewardEarly.value&&l.$error.value)&&g()),o.addRuleDeclEntry(n,h);}function N(){g=l.$debounce.value?ke(le,l.$debounce.value??l.$haveAnyAsyncRule?100:0):le;}function W(){D.value&&Object.entries(D.value).forEach(([h,V])=>{V.$unwatch();}),R(),c?.(),l.$dirty.value&&o.setDirtyEntry(n,l.$dirty.value),x?.(),C?.(),P.stop(),P=effectScope(),v.forEach(h=>h.stop()),v=[],y?.(),b?.();}function J(){D.value&&Object.entries(D.value).forEach(([h,V])=>{V.$watch();}),l=P.run(()=>{let h=ref(false),V=ref(false),S=computed(()=>h.value),X=computed(()=>H.value.$debounce),se=computed(()=>H.value.$lazy!=null?H.value.$lazy:unref(s.lazy)!=null?unref(s.lazy):false),ie=computed(()=>H.value.$rewardEarly!=null?H.value.$rewardEarly:unref(s.rewardEarly)!=null?unref(s.rewardEarly):false),Fe=computed(()=>H.value.$clearExternalErrorsOnChange!=null?H.value.$clearExternalErrorsOnChange:unref(s.clearExternalErrorsOnChange)!=null?unref(s.clearExternalErrorsOnChange):true),B=computed(()=>ie.value?true:H.value.$silent!=null?H.value.$silent:unref(s.silent)!=null?unref(s.silent):false),A=computed(()=>H.value.$autoDirty!=null?H.value.$autoDirty:unref(s.autoDirty)!=null?unref(s.autoDirty):true),k=computed(()=>Object.entries(D.value).some(([ue,Q])=>Q.$validating)),we=computed({get:()=>e.value,set(ue){x(),e.value=ue,z();}}),_e=computed(()=>Se.value&&!$e.value&&h.value),yt=computed(()=>lt({field:{$rules:D.value,$error:_e.value,$externalErrors:i?.value,$schemaErrors:$?.value}})),gt=computed(()=>lt({field:{$rules:D.value,$error:_e.value,$externalErrors:i?.value,$schemaErrors:$?.value},silent:true})),Qe=computed(()=>h.value?E.value instanceof Date&&e.value instanceof Date?Xe(E.value).getDate()!==Xe(e.value).getDate():E.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(E.value)?e.value.length!==E.value.length:E.value!==e.value:false),vt=computed(()=>Qe.value),$t=computed(()=>Vt({field:{$rules:D.value}})),St=computed(()=>(B.value||S.value)&&!(Se.value||$e.value)),$e=computed(()=>V.value||!ie.value?Object.entries(D.value).some(([ue,Q])=>Q.$pending):false),Se=computed(()=>i?.value?.length||$?.value?.length?true:Ne.value?false:!ie.value||ie.value&&V.value?Object.entries(D.value).some(([ue,Q])=>!(Q.$valid&&!Q.$maybePending)):false),Tt=computed(()=>a),Ne=computed(()=>!!(te(D.value)&&!d)),ht=computed(()=>i?.value?.length||Ne.value?false:h.value&&!te(e.value)&&!k.value&&!$e.value?d?!$?.value?.length:Object.values(D.value).some(Q=>Q.$active)?Object.values(D.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),ar=computed(()=>Object.entries(D.value).some(([ue,Q])=>Q.$haveAsync));function lr(){j?.fields&&Object.entries(j.fields).forEach(([ue,Q])=>{let xt=effectScope();bt[ue]=xt.run(()=>{let Et=ref();return watchEffect(()=>{Et.value=Q(reactive({$dirty:h,$externalErrors:i?.value??[],$value:e,$silentValue:we,$rules:D,$error:_e,$pending:$e,$invalid:Se,$correct:ht,$errors:yt,$ready:St,$silentErrors:gt,$anyDirty:S,$tooltips:$t,$name:Tt,$inactive:Ne,$edited:Qe,$anyEdited:vt}));}),Et}),v.push(xt);});}let bt={};return watch(Se,ue=>{ue||(V.value=false);}),{$error:_e,$pending:$e,$invalid:Se,$correct:ht,$debounce:X,$lazy:se,$errors:yt,$ready:St,$silentErrors:gt,$rewardEarly:ie,$autoDirty:A,$silent:B,$clearExternalErrorsOnChange:Fe,$anyDirty:S,$edited:Qe,$anyEdited:vt,$name:Tt,$haveAnyAsyncRule:ar,$shortcuts:bt,$validating:k,$tooltips:$t,$dirty:h,triggerPunishment:V,processShortcuts:lr,$silentValue:we,$inactive:Ne}}),z(),R=watch(l.$dirty,h=>{o.setDirtyEntry(n,h),Object.values(D.value).forEach(V=>{V.$fieldDirty=h;});}),c=watch([l.$error,l.$correct,l.$invalid,l.$pending],()=>{Object.values(D.value).forEach(h=>{h.$fieldError=l.$error.value,h.$fieldInvalid=l.$invalid.value,h.$fieldPending=l.$pending.value,h.$fieldCorrect=l.$correct.value;});}),C=watch(l.$invalid,h=>{l.$rewardEarly.value&&!h&&(l.triggerPunishment.value=false);}),b=watch(l.$haveAnyAsyncRule,N);}function z(){x=watch(e,()=>{l.$autoDirty.value&&!l.$silent.value&&(l.$dirty.value||(l.$dirty.value=true)),t.value instanceof Function&&T(),(!l.$silent.value||l.$rewardEarly.value&&l.$error.value)&&g(),l.$rewardEarly.value!==true&&l.$clearExternalErrorsOnChange.value&&f();},{deep:G?true:Ge?1:true});}function le(){Object.values(D.value).forEach(h=>{h.$parse();});}let D=ref({}),H=ref({});T();function ve(h,V){if(f(),l.$dirty.value=false,l.triggerPunishment.value=false,o.setDirtyEntry(n,false),!V)if(h?.toInitialState)e.value=U(E);else if(h?.toState){let S;typeof h?.toState=="function"?S=h?.toState():S=h?.toState,E.value=U(S),e.value=U(S);}else E.value=F(e.value)?U(e.value):Array.isArray(e.value)?[...e.value]:e.value;h?.clearExternalErrors&&f(),V||Object.entries(D.value).forEach(([S,X])=>{X.$reset();}),!l.$lazy.value&&!l.$silent.value&&Object.values(D.value).forEach(S=>S.$parse());}function Re(h=true,V=false){l.$dirty.value||(l.$dirty.value=true),V&&h?(!l.$silent.value||l.$rewardEarly.value&&l.$error.value)&&g():h&&g();}async function u(){try{if(d)return O?(Re(!1),O()):{valid:!1,data:e.value};let h=e.value;if(l.triggerPunishment.value=!0,!l.$dirty.value)l.$dirty.value=!0;else if(!l.$silent.value&&l.$dirty.value&&!l.$pending.value)return {valid:!l.$error.value,data:h};return d?{valid:!$?.value?.length,data:h}:te(D.value)?{valid:!0,data:h}:{valid:(await Promise.allSettled(Object.entries(D.value).map(([X,se])=>se.$parse()))).every(X=>X.status==="fulfilled"?X.value===!0:!1),data:h}}catch{return {valid:false,data:e.value}}}function p(h=true){return l.$dirty.value?e.value:h?{_null:true}:null}function f(){i?.value?.length&&(i.value=[]);}!l.$lazy.value&&!l.$dirty.value&&!l.$silent.value&&g();let{$shortcuts:I,$validating:w,$autoDirty:K,$rewardEarly:m,$clearExternalErrorsOnChange:M,$haveAnyAsyncRule:Y,$debounce:Z,$lazy:ee,triggerPunishment:oe,...fe}=l;return reactive({...fe,$externalErrors:i,$value:e,$rules:D,...I,$reset:ve,$touch:Re,$validate:u,$unwatch:W,$watch:J,$extractDirtyFields:p,$clearExternalErrors:f})}function ut({$id:e,path:t,index:r,options:n,storage:a,stateValue:o,customMessages:s,rules:i,externalErrors:$,schemaErrors:d,initialState:y,shortcuts:G,fieldName:E,schemaMode:j}){let O=i.$key?i.$key:be(),P=`${t}.${String(O)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?P=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:O,enumerable:false,configurable:false,writable:false}}));let l=toRef($?.value??[],r),v=computed(()=>d?.value?.[r]),x=Ce({state:o,rulesDef:toRef(()=>i),customMessages:s,path:P,storage:a,options:n,externalErrors:l,schemaErrors:v,initialState:y,shortcuts:G,fieldName:E,schemaMode:j});if(x){let C=o.value?.$id;x.$id=C??String(O),a.addArrayStatus(e,x.$id,x);}return x}function Gt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:s,schemaErrors:i,schemaMode:$,initialState:d,shortcuts:y,fieldName:G}){let E=effectScope(),j,O=effectScope(),P,l=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let v=ref(),x=ref(e.value),C,R=ref({}),b=a.getCollectionsEntry(n);P=O.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(p=>typeof p!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(p=>ye(p)||typeof p=="function"):false)})),c(),N();function c(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(v.value=be(),Object.defineProperties(e.value,{$id:{value:v.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(v.value=e.value.$id)),x.value=R.value.$value,Array.isArray(e.value)&&!P.isPrimitiveArray.value?b.value=e.value.filter(u=>typeof u=="object").map((u,p)=>{let{scope:f,unwrapped:I}=nt(t.value.$each,toRef(()=>u),p);f&&l.push(f);let w=toRef(d.value??[],p),K=toRef(s?.value??{},"$each"),m=computed(()=>i?.value?.$each),M=ut({$id:v.value,path:n,customMessages:r,rules:I??{},stateValue:toRef(()=>u),index:p,options:o,storage:a,externalErrors:K,schemaErrors:m,initialState:w,shortcuts:y,fieldName:G,schemaMode:$});return M||null}).filter(u=>!!u):b.value=[],R.value=Ee({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:toRef(s?.value??{},"$self"),schemaErrors:computed(()=>i?.value?.$self),$isArray:true,initialState:d,shortcuts:y,fieldName:G,schemaMode:$});}function g(){if(Array.isArray(e.value)&&!P.isPrimitiveArray.value){let u=U(b.value);b.value=e.value.filter(p=>typeof p=="object").map((p,f)=>{let I=toRef(()=>p);if(p.$id&&b.value.find(w=>w.$id===p.$id)){let w=a.getArrayStatus(v.value,p.$id);return w?(w.$value=I,w):null}else {let{scope:w,unwrapped:K}=nt(t.value.$each,I,f);w&&l.push(w);let m=toRef(s?.value??{},"$each"),M=computed(()=>i?.value?.$each??[]),Y=ut({$id:v.value,path:n,customMessages:r,rules:K??{},stateValue:I,index:f,options:o,storage:a,externalErrors:m,schemaErrors:M,initialState:toRef(d.value??[],f),shortcuts:y,fieldName:G,schemaMode:$});return Y||null}}).filter(p=>!!p),u.filter(p=>!e.value?.find(f=>p.$id===f.$id)).forEach((p,f)=>{a.deleteArrayStatus(v.value,f.toString());});}else b.value=[];}function T(){C=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?c():g();},{deep:Ge?1:true,flush:"pre"});}function N(){T(),E=effectScope(),j=E.run(()=>{let u=computed({get:()=>e.value,set(S){C(),e.value=S,T();}}),p=computed(()=>R.value.$dirty&&(!b.value.length||b.value.every(S=>S.$dirty))),f=computed(()=>R.value.$anyDirty||b.value.some(S=>S.$anyDirty)),I=computed(()=>R.value.$invalid||b.value.some(S=>S.$invalid)),w=computed(()=>(te(R.value.$rules)?true:R.value.$correct)&&(!b.value.length||b.value.every(S=>S.$correct||S.$anyDirty&&!S.$invalid))),K=computed(()=>R.value.$error||b.value.some(S=>S.$error)),m=computed(()=>!(I.value||M.value)),M=computed(()=>R.value.$pending||b.value.some(S=>S.$pending)),Y=computed(()=>!!b.value.length&&b.value.every(S=>S.$edited)),Z=computed(()=>R.value.$anyEdited||b.value.some(S=>S.$anyEdited)),ee=computed(()=>({$self:R.value.$errors,$each:b.value.map(S=>S.$errors)})),oe=computed(()=>({$self:R.value.$silentErrors,$each:b.value.map(S=>S.$silentErrors)})),fe=computed(()=>G);function h(){y?.collections&&Object.entries(y?.collections).forEach(([S,X])=>{let se=effectScope();V[S]=se.run(()=>{let ie=ref();return watchEffect(()=>{ie.value=X(reactive({$dirty:p,$error:K,$silentValue:u,$pending:M,$invalid:I,$correct:w,$errors:ee,$ready:m,$silentErrors:oe,$anyDirty:f,$name:fe,$each:b,$self:R,$value:e,$edited:Y,$anyEdited:Z}));}),ie}),l.push(se);});}let V={};return h(),{$dirty:p,$anyDirty:f,$invalid:I,$correct:w,$error:K,$pending:M,$errors:ee,$silentErrors:oe,$ready:m,$name:fe,$shortcuts:V,$silentValue:u,$edited:Y,$anyEdited:Z}}),P.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 W(){C&&C(),R.value&&R.value.$unwatch(),b.value&&b.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),E.stop(),E=effectScope(),O.stop(),O=effectScope(true),l.forEach(u=>u.stop()),l=[];}function J(u=true,p=false){R.value.$touch(u,p),b.value.forEach(f=>{f.$touch(u,p);});}function z(u,p){if(W(),!p)if(u?.toInitialState)e.value=U(d.value);else if(u?.toState){let f;typeof u?.toState=="function"?f=u?.toState():f=u?.toState,d.value=U(f),e.value=U(f);}else d.value=U(e.value);u?.clearExternalErrors&&D(),R.value.$reset(),b.value.forEach(f=>{f.$reset(u,true);}),p||c();}async function le(){let u=e.value;try{return {valid:(await Promise.allSettled([R.value.$validate(),...b.value.map(I=>I.$validate())])).every(I=>I.status==="fulfilled"?I.value.valid===!0:!1),data:u}}catch{return {valid:false,data:u}}}function D(){R.value.$clearExternalErrors(),b.value.forEach(u=>{u.$clearExternalErrors();});}function H(u=true){let p=b.value.map(f=>{if(jt(f))return f.$extractDirtyFields(u)});return u&&p.every(f=>te(f))&&(p=[]),p}let{$shortcuts:ve,...Re}=j;return reactive({$self:R,...Re,...ve,$each:b,$value:e,$validate:le,$unwatch:W,$watch:N,$touch:J,$reset:z,$extractDirtyFields:H,$clearExternalErrors:D})}function ze({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:a,schemaErrors:o,rootSchemaErrors:s,validationGroups:i,initialState:$,fieldName:d,...y}){let G=effectScope(),E,j=[],O=null,P=null,l=null,v=null;async function C(u=true){let p=Object.entries(e.value),f=Object.fromEntries(p.filter(([m,M])=>!!M).map(([m,M])=>{if(M){let Y=toRef(t.value??{},m),Z=toRef(()=>M),ee=toRef(a?.value??{},m),oe=computed(()=>o?.value?.[m]),fe=toRef($?.value??{},m);return [m,Ce({state:Y,rulesDef:Z,path:r?`${r}.${m}`:m,externalErrors:ee,schemaErrors:oe,initialState:fe,fieldName:m,...y})]}return []})),I=Object.fromEntries(Object.entries(unref(a)??{}).filter(([m,M])=>!(m in e.value)&&!!M).map(([m])=>{let M=toRef(t.value??{},m),Y=toRef(a?.value??{},m),Z=computed(()=>o?.value?.[m]),ee=toRef($?.value??{},m);return [m,Ce({state:M,rulesDef:computed(()=>({})),path:r?`${r}.${m}`:m,externalErrors:Y,schemaErrors:Z,initialState:ee,fieldName:m,...y})]})),w=Object.fromEntries(Object.entries(unref(o)??{}).map(([m])=>{let M=toRef(t.value??{},m),Y=toRef(a?.value??{},m),Z=computed(()=>o?.value?.[m]),ee=toRef($?.value??{},m);return [m,Ce({state:M,rulesDef:computed(()=>({})),path:r?`${r}.${m}`:m,externalErrors:Y,schemaErrors:Z,initialState:ee,fieldName:m,...y})]})),K=Object.fromEntries(Object.entries(t.value??{}).filter(([m])=>!(m in e.value)&&!(m in(I??{}))&&!(m in(w??{}))).map(([m])=>{let M=toRef(t.value??{},m),Y=toRef(a?.value??{},m),Z=computed(()=>o?.value?.[m]),ee=toRef($?.value??{},m);return [m,Ce({state:M,rulesDef:computed(()=>({})),path:r?`${r}.${m}`:m,externalErrors:Y,schemaErrors:Z,initialState:ee,fieldName:m,...y})]}));R.value={...f,...I,...w,...K},u&&g();}let R=y.storage.getFieldsEntry(r);C();function b(){a&&(l=watch(a,()=>{T(),C();},{deep:true}));}function c(){v=watch(t,()=>{T(),C(),E.$autoDirty.value&&!E.$silent.value&&J(true,true);},{flush:"sync"});}function g(){n&&(O?.(),O=watch(n,()=>{T(),C();},{deep:true,flush:"pre"}),b()),s&&(P?.(),P=watch(s,()=>{T(),C();},{deep:true,flush:"post"})),c(),E=G.run(()=>{let u=computed({get:()=>t.value,set(B){T(),t.value=B,C();}}),p=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).every(([B,A])=>A?.$dirty)),f=computed(()=>Object.entries(R.value).some(([B,A])=>A?.$anyDirty)),I=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).some(([B,A])=>A?.$invalid)),w=computed(()=>{let B=Object.entries(R.value).filter(([A,k])=>at(k)?!k.$inactive:true);return B.length?B.every(([A,k])=>y.schemaMode?k.$correct:at(k)?"required"in k.$rules&&k.$rules.required.$active?k?.$correct:!k.$invalid&&!k.$pending:k?.$correct):false}),K=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).some(([B,A])=>A?.$error)),m=computed(()=>unref(y.options.rewardEarly)!=null?unref(y.options.rewardEarly):false),M=computed(()=>unref(y.options.silent)!=null?unref(y.options.silent):!!m.value),Y=computed(()=>unref(y.options.autoDirty)!=null?unref(y.options.autoDirty):true),Z=computed(()=>(M.value||f.value)&&!(I.value||oe.value)),ee=ref(false),oe=computed(()=>ee.value||Object.entries(R.value).some(([B,A])=>A?.$pending)),fe=computed(()=>Object.fromEntries(Object.entries(R.value).map(([B,A])=>[B,A?.$errors]))),h=computed(()=>Object.fromEntries(Object.entries(R.value).map(([B,A])=>[B,A?.$silentErrors]))),V=computed(()=>!!Object.entries(R.value).length&&Object.entries(R.value).every(([B,A])=>A?.$edited)),S=computed(()=>Object.entries(R.value).some(([B,A])=>A?.$anyEdited)),X=computed(()=>d);function se(){y.shortcuts?.nested&&Object.entries(y.shortcuts.nested).forEach(([B,A])=>{let k=effectScope();Fe[B]=k.run(()=>{let we=ref();return watchEffect(()=>{we.value=A(reactive({$dirty:p,$value:t,$silentValue:u,$error:K,$pending:oe,$invalid:I,$correct:w,$ready:Z,$anyDirty:f,$name:X,$silentErrors:h,$errors:fe,$fields:R,$edited:V,$anyEdited:S}));}),we}),j.push(k);});}let ie=computed({get:()=>i?Object.fromEntries(Object.entries(i?.(R.value)??{}).map(([B,A])=>A.length?[B,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(k=>[k,Dt(A,k)])),...Object.fromEntries(["$errors","$silentErrors"].map(k=>[k,It(A,k)]))}]:[])):{},set(){}}),Fe={};return se(),{$dirty:p,$anyDirty:f,$invalid:I,$correct:w,$error:K,$pending:oe,$errors:fe,$silentErrors:h,$ready:Z,$name:X,$shortcuts:Fe,$groups:ie,$silentValue:u,$edited:V,$anyEdited:S,$localPending:ee,$autoDirty:Y,$silent:M}});}function T(){O?.(),l?.(),v?.(),P?.(),j=[],E={},R.value&&Object.entries(R.value).forEach(([u,p])=>{p.$unwatch();});}function N(){Object.entries(R.value).forEach(([u,p])=>{p.$clearExternalErrors();});}function W(u,p){if(l?.(),T(),!p)if(u?.toInitialState)t.value=U({...$.value??{}});else if(u?.toState){let f;typeof u?.toState=="function"?f=u?.toState():f=u?.toState,$.value=U(f),t.value=U(f);}else $.value=U(t.value);Object.values(R.value).forEach(f=>{f.$reset(u,true);}),u?.clearExternalErrors&&N(),b(),p||C();}function J(u=true,p=false){Object.values(R.value).forEach(f=>{f.$touch(u,p);});}function z(u){return u.filter(([p,f])=>F(f)?!(f&&typeof f=="object"&&"_null"in f)&&!te(f):Array.isArray(f)?f.length:true)}function le(u=true){let p=Object.entries(R.value).map(([f,I])=>[f,I.$extractDirtyFields(u)]);return u&&(p=z(p)),Object.fromEntries(p)}async function D(){try{if(y.schemaMode)return y.onValidate?(J(!1),E.$localPending.value=!0,y.onValidate()):{valid:!1,data:t.value};{let u=t.value;return {valid:(await Promise.allSettled(Object.values(R.value).map(I=>I.$validate()))).every(I=>I.status==="fulfilled"?I.value.valid===!0:!1),data:u}}}catch{return {valid:false,data:t.value}}finally{E.$localPending.value=false;}}let{$shortcuts:H,$localPending:ve,...Re}=E;return reactive({...Re,...H,$fields:R,$value:t,$reset:W,$touch:J,$validate:D,$unwatch:T,$watch:g,$clearExternalErrors:N,$extractDirtyFields:le})}function Ce({rulesDef:e,...t}){if(At(e,t.state,t.schemaMode))return Gt({rulesDef:e,...t});if(We(t.state,e)){if(Ue(t.state))return ze({rulesDef:e,...t});{let n=effectScope().run(()=>{let s=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,i=>{s.value=i;},{deep:true}),watch(s,i=>{t.state.value=i;},{deep:true}),{fakeState:s}}),{state:a,...o}=t;return ze({rulesDef:e,...o,state:n.fakeState})}}else if(Be(e))return Ee({rulesDef:e,...t})}function Oe({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:o,schemaErrors:s,schemaMode:i=false,onValidate:$}){let d=rt(),y=ref();return We(n,r)?y.value=ze({rootRules:r,rulesDef:r,state:n,customMessages:a?.(),storage:d,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaErrors:s,rootSchemaErrors:s,schemaMode:i,onValidate:$}):Be(r)&&(y.value=Ee({rulesDef:r,state:n,customMessages:a?.(),storage:d,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaMode:i,schemaErrors:s,onValidate:$})),getCurrentScope()&&onScopeDispose(()=>{y.value?.$unwatch();}),reactive({regle:y})}function Ke(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,silent:t?.silent,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function a(o,s,i){let $=isRef(s)?s:typeof s=="function"?void 0:computed(()=>s),d={...n,...i},y=isRef(o)?o:ref(o),G=shallowRef($??{});typeof s=="function"&&watchEffect(()=>{G.value=s(y),triggerRef(G);});let E=ref(F(y.value)?{...U(y.value)}:U(y.value));return {r$:Oe({scopeRules:G,state:y,options:d,initialState:E,customRules:e,shortcuts:r}).regle}}return a}var Je=Ke();function qe(){function e(t,r){return r}return e}var Rt=qe();function Ht({rules:e,modifiers:t,shortcuts:r}){let n=Ke(e,t,r);n.__config={rules:e,modifiers:t,shortcuts:r};let a=qe();return {useRegle:n,inferRules:a}}function zt(e,{rules:t,modifiers:r,shortcuts:n}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&r?Pe(a.modifiers,r):r,i=a.shortcuts&&n?Pe(a.shortcuts,n):n,$=Ke(o,s,i);$.__config={rules:o,modifiers:s,shortcuts:i};let d=qe();return {useRegle:$,inferRules:d}}function Ve(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(c=>c.$value):Object.fromEntries(Object.entries(e).map(([c,g])=>[c,g.$value])),set:c=>{r||typeof c=="object"&&Object.entries(c).forEach(([g,T])=>e[g].$value=T);}}),a=computed({get:()=>Object.fromEntries(Object.entries(e).map(([c,g])=>[c,g.$silentValue])),set:c=>{typeof c=="object"&&Object.entries(c).forEach(([g,T])=>e[g].$silentValue=T);}}),o=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([g,T])=>T?.$dirty)}),s=computed(()=>Object.entries(e).some(([c,g])=>g?.$anyDirty)),i=computed(()=>Object.entries(e).some(([c,g])=>g?.$invalid)),$=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([g,T])=>T?.$correct||T.$anyDirty&&!T.$invalid)}),d=computed(()=>Object.entries(e).some(([c,g])=>g?.$error)),y=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([g,T])=>T?.$ready)}),G=computed(()=>Object.entries(e).some(([c,g])=>g?.$pending)),E=computed(()=>r?Object.entries(e).map(([c,g])=>g.$errors):Object.fromEntries(Object.entries(e).map(([c,g])=>[c,g.$errors]))),j=computed(()=>r?Object.entries(e).map(([c,g])=>g.$silentErrors):Object.fromEntries(Object.entries(e).map(([c,g])=>[c,g.$silentErrors]))),O=computed(()=>{let c=Object.entries(e);return !!c.length&&c.every(([g,T])=>T?.$edited)}),P=computed(()=>Object.entries(e).some(([c,g])=>g?.$anyEdited)),l=computed(()=>r?Object.values(e):e);function v(c){Object.values(e).forEach(g=>{g.$reset(c);});}function x(){Object.values(e).forEach(c=>{c.$touch();});}function C(c=true){return Object.values(e).map(g=>g.$extractDirtyFields(c))}function R(){Object.values(e).forEach(c=>{c.$clearExternalErrors();});}async function b(){try{let c=n.value;return {valid:(await Promise.allSettled(Object.values(e).map(N=>N.$validate()))).every(N=>N.status==="fulfilled"?N.value.valid===!0:!1),data:c}}catch{return {valid:false,data:n.value}}}return reactive({...!r&&{$silentValue:a},$errors:E,$silentErrors:j,$instances:l,$value:n,$dirty:o,$anyDirty:s,$invalid:i,$correct:$,$error:d,$pending:G,$ready:y,$edited:O,$anyEdited:P,$reset:v,$touch:x,$validate:b,$extractDirtyFields:C,$clearExternalErrors:R})}function Jt(e,t){function r(n){let a=computed(()=>toValue(n));i();let o=ref($(e.value)),s=reactive({r$:o});function i(){a.value&&!e.value[a.value]&&(e.value[a.value]={});}watch(a,i),watch(e,d=>{o.value=$(d);},{deep:true});function $(d){if(a.value){let y=d[a.value]??{};return Ve(y,!t.asRecord)}else return Ve(d["~~global"]??{},!t.asRecord)}return {r$:s.r$}}return {useCollectScope:r}}function Qt(e,t){let r=t??Je;return {useScopedRegle:(a,o,s)=>{let{namespace:i,scopeKey:$,...d}=s??{};r.__config??={};let y=computed(()=>toValue(i)),G=ref(`${Object.keys(e.value).length+1}-${be()}`),E=computed(()=>s?.scopeKey??`instance-${G.value}`),{r$:j}=r(a,o,d);P(),Pt(O),watch(y,(l,v)=>{O(v),P();}),getCurrentInstance()&&onMounted(()=>{let l=getCurrentInstance();typeof window<"u"&&l?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(l?.proxy?.$el?.parentElement)&&O();});function O(l){let v=l??y.value;v?e.value[v]&&delete e.value[v][E.value]:e.value["~~global"][E.value]&&delete e.value["~~global"][E.value];}function P(){y.value?(e.value[y.value]||(e.value[y.value]={}),e.value[y.value][E.value]=j):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][E.value]=j);}return {r$:j,dispose:O,register:P}}}}function Ye(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):Mt(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=Qt(r,e?.customUseRegle),{useCollectScope:a}=Jt(r,{asRecord:e?.asRecord});return {useScopedRegle:n,useCollectScope:a}}var {useCollectScope:dt,useScopedRegle:pt}=Ye();function er(e,t,r){let n=computed(()=>toValue(e)[t]);return computed(()=>{let o=r.find(s=>{if(s[t]&&"literal"in s[t]){let i=s[t].literal;if(ye(i))return unref(i._params?.[0])===n.value}});if(o)return o;{let s=r.find(i=>F(i[t])&&!Object.keys(i[t]).some($=>$==="literal"));return s||{}}})}function mt(e,t,r){return F(e[t])&&"$value"in e[t]&&e[t]?.$value===r}function tr(e,t,r){let n=isRef(e)?toRef(e.value,"$fields"):toRef(e,"$fields"),a=ref();return watch(n,async()=>{await nextTick(),mt(n.value,t,r)?a.value=n.value:a.value=void 0;},{immediate:true,flush:"pre"}),a}function rr(e){return e}function nr(e,t){return r=>Pe({...e},t(r))}
2
2
  export{Ze as InternalRuleType,tt as createRule,Ye as createScopedUseRegle,er as createVariant,Ht as defineRegleConfig,rr as defineRules,zt as extendRegleConfig,ot as flatErrors,Rt as inferRules,Ve as mergeRegles,mt as narrowVariant,nr as refineRules,re as unwrapRuleParameters,dt as useCollectScope,Je as useRegle,Oe as useRootStorage,pt as useScopedRegle,tr as variantToRef};
@@ -1914,9 +1914,9 @@ function createReactiveNestedStatus({
1914
1914
  $unwatchState = watch(
1915
1915
  state,
1916
1916
  () => {
1917
+ $unwatch();
1918
+ createReactiveFieldsStatus();
1917
1919
  if (scopeState.$autoDirty.value && !scopeState.$silent.value) {
1918
- $unwatch();
1919
- createReactiveFieldsStatus();
1920
1920
  $touch(true, true);
1921
1921
  }
1922
1922
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@regle/core",
3
- "version": "1.2.0-beta.4",
3
+ "version": "1.2.0-beta.5",
4
4
  "description": "Headless form validation library for Vue 3",
5
5
  "peerDependencies": {
6
6
  "pinia": ">=2.2.5",