@regle/core 0.2.11 → 0.2.12
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.
- package/dist/index.cjs +2 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +2 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
'use strict';var vue=require('vue');var Ie=(r=>(r.Inline="__inline",r.Async="__async",r))(Ie||{});function Ke(e,t){return vue.computed(()=>e.value.some(r=>r[t]))}function et(e,t){return vue.computed(()=>e.value.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[]))}function H(e){return e.map(t=>t instanceof Function?t():vue.unref(t))}function tt(e){return e.map(t=>t instanceof Function||vue.isRef(t)?t:vue.toRef(()=>t))}function rt(e){let t=e.toString();return (t.includes("=>")?t.split("=>")[0]:t).slice(t.indexOf("(")+1,t.indexOf(")")).split(",").map(l=>l.trim()).filter(l=>l.includes("=")).length+e.length}function Pe(e,...t){let{message:r,validator:n,active:a,type:l,...c}=e,d=l==="__async"||n.constructor.name==="AsyncFunction";return {...{validator(b,...S){return e.validator(b,...H(S.length?S:t))},message(b,S){return typeof e.message=="function"?e.message(b,{...S,$params:H(S.$params?.length?S.$params:t)}):e.message},active(b,S){return typeof e.active=="function"?e.active(b,{...S,$params:H(S.$params?.length?S.$params:t)}):e.active??!0},exec(b){let S=e.validator(b,...H(t)),m;return S instanceof Promise?S.then(v=>(m=v,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:!1)):(m=S,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:!1)}},...c,_validator:e.validator,_message:e.message,_active:e.active,_type:e.type,_patched:!1,_async:d,_params:tt(t)}}function we(e){if(typeof e.validator=="function"){let r=Pe(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(rt(e.validator)>1){let a=function(...l){return Pe(e,...l)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._type=e.type,a._patched=!1,a._async=n,a}else return r}throw new Error("Validator must be a function")}function q(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function nt(e){return q(e.value)}function ne(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>ne(n)))),r=="Map"&&(t=new Map([...e].map(n=>[ne(n[0]),ne(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Et(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=ne(e[n]);}return t}function Et(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 Oe(e,t,r){return e instanceof Function?e(t,r??0):e}function at(e,t){vue.isRef(e)?e.value=t:e=t;}function lt(e,t){vue.isRef(e)?e.value=[]:e=[],t.forEach((r,n)=>{let a=vue.isRef(e)?e.value[n]:e[n];a={},pe(a,t[n]);});}function pe(e,t){Object.entries({...vue.unref(e),...t}).forEach(([r,n])=>{let a=vue.isRef(e)?e.value:e,l=vue.isRef(t[r])?t[r]._value:t[r],c=vue.isRef(a[r])?a[r].value:a[r];Array.isArray(a[r])?(a[r]=[],Array.isArray(l)&&l.forEach((d,x)=>{a[r][x]={},pe(a[r][x],l[x]);})):q(l)?pe(c,l):vue.isRef(a[r])?a[r].value=l:a[r]=l;});}function z(e){return e==null?!0:e===!1?!1:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:typeof e=="string"?!String(e.trim()).length:!1}function he(e,t,r){let n,a=(...l)=>new Promise(c=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...l])).then(c);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a.doImmediately=(...l)=>new Promise(c=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...l])).then(c);},0);}),a}function xt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let l=Number(r[a]),c=Number(n[a]);if(l>c)return 1;if(c>l)return -1;if(!isNaN(l)&&isNaN(c))return 1;if(isNaN(l)&&!isNaN(c))return -1}return 0}var be=xt(vue.version,"3.5.0")!==-1;function Ct(){return Math.floor(Math.random()*Date.now()).toString()}function Ae(){return typeof window>"u"?Ct():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Me(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),a=vue.shallowRef(new Map),l=vue.shallowRef(new Map);function c(p){let o=t.value.get(p);if(o)return o;{let u=vue.ref({});return t.value.set(p,u),u}}function d(p){let o=r.value.get(p);if(o)return o;{let u=vue.ref([]);return r.value.set(p,u),u}}function x(p,o,u){l.value.set(`${p}-${o}`,u);}function E(p,o){return l.value.get(`${p}-${o}`)}function b(p,o){p&&o!=null&&l.value.delete(`${p}-${o}`);}function S(p,o){n.value.set(p,o);}function m(p){return n.value.get(p)??!1}function v(p,o){e.value.set(p,o);}function I(p,o){let u=e.value.get(p);return u?f(o,u)?{valid:!0}:{valid:!1}:void 0}function f(p,o){let u=Object.keys(o),$=Object.keys(p);return $.length!==u.length||!$.every(j=>u.includes(j))?!1:$.every(j=>{let C=p[j],O=o[j];return !O||!C||typeof C=="function"||typeof O=="function"||typeof C=="number"||typeof C=="boolean"?!1:C._params?C._params?.every((P,M)=>{if(typeof O=="number"||typeof O=="boolean")return !0;{let y=H(O._params),w=H(C._params);return y?.[M]===w?.[M]}}):!0})}function N(p){let o=a.value.get(p);if(o)return o;{let u=vue.ref(!1),$=vue.ref(!0),G=vue.ref({}),j=vue.ref(!1);return a.value.set(p,{$pending:u,$valid:$,$metadata:G,$validating:j}),{$pending:u,$valid:$,$metadata:G,$validating:j}}}return vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),l.value.clear();}),{addRuleDeclEntry:v,setDirtyEntry:S,checkRuleDeclEntry:I,getDirtyState:m,trySetRuleStatusRef:N,getFieldsEntry:c,getCollectionsEntry:d,getArrayStatus:E,addArrayStatus:x,deleteArrayStatus:b,arrayStatusStorage:l}}function ot(e,t){return q(e.value)&&q(t.value)&&!Object.entries(t.value).some(r=>de(r))}function ut(e,t){return !!e.value&&"$each"in e.value||Array.isArray(t.value)}function st(e){return !!e.value&&q(e.value)}function de(e){return q(e)&&"_validator"in e}function ve(e){return typeof e.value!="function"}function Fe(e){return q(e)&&"$fields"in e}function je({field:e,silent:t=!1}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function ct({$dirty:e,customMessages:t,rule:r,ruleKey:n,state:a,path:l,storage:c,$debounce:d}){let x=vue.effectScope(),E,b,S=vue.ref(!1),{$pending:m,$valid:v,$metadata:I,$validating:f}=c.trySetRuleStatusRef(`${l}.${n}`);function N(){E=x.run(()=>{let C=vue.computed(()=>({$invalid:!v.value,$params:w.value,...I.value})),O=vue.computed(()=>ve(r)?typeof r.value.active=="function"?r.value.active(a.value,C.value):!!r.value.active:!0),P=vue.computed(()=>{let U="",J=t?t[n]?.message:void 0;return J&&(typeof J=="function"?U=J(a.value,C.value):U=J),ve(r)&&(J&&!r.value._patched||(typeof r.value.message=="function"?U=r.value.message(a.value,C.value):U=r.value.message)),z(U)&&(U="Error",console.warn(`No error message defined for ${l}.${n}`)),U}),M=vue.computed(()=>ve(r)&&r.value.type?r.value.type:n),y=vue.computed(()=>ve(r)?r.value.validator:r.value),w=vue.computed(()=>typeof r.value=="function"?[]:H(r.value._params??[])),K=vue.computed(()=>`${l}.${M.value}`);return {$active:O,$message:P,$type:M,$validator:y,$params:w,$path:K}}),b=vue.watch(E.$params,$,{deep:!0});}N();function p(){v.value=!0,e.value&&(m.value=!0);}async function o(){let C=E.$validator.value,O=C(a.value,...E.$params.value),P=!1,M=a.value;try{p();let y;if(O instanceof Promise?y=await O:y=O,a.value!==M)return !0;if(typeof y=="boolean")P=y;else {let{$valid:w,...K}=y;P=w,I.value=K;}}catch{P=!1;}finally{m.value=!1;}return P}let u=he(o,d??200);async function $(){try{f.value=!0;let C=!1;if(de(r.value)&&r.value._async)C=await u();else {let O=E.$validator.value,P=O(a.value,...E.$params.value);if(P 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(P!=null)if(typeof P=="boolean")C=P;else {let{$valid:M,...y}=P;C=M,I.value=y;}}return v.value=C,C}catch{return !1}finally{f.value=!1;}}function G(){v.value=!0,I.value={},m.value=!1,f.value=!1,N();}function j(){b(),x.stop(),x=vue.effectScope();}return vue.reactive({...E,$pending:m,$valid:v,$metadata:I,_haveAsync:S,$validating:f,$validate:$,$unwatch:j,$watch:N,$reset:G})}function Ee({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:l,options:c,externalErrors:d,onUnwatch:x,$isArray:E,initialState:b,shortcuts:S}){let m=vue.effectScope(),v,I=[],f=vue.ref(!1),N=vue.ref(!1),p,o,u,$,G=()=>{};function j(){let T=t.value,B=l.checkRuleDeclEntry(n,T);w.value=Object.fromEntries(Object.entries(T).filter(([Y])=>Y.startsWith("$"))),y.value=Object.fromEntries(Object.entries(t.value).filter(([Y])=>!Y.startsWith("$")).map(([Y,L])=>{if(L){let fe=vue.toRef(()=>L);return [Y,ct({$dirty:f,customMessages:r,rule:fe,ruleKey:Y,state:e,path:n,storage:l,$debounce:w.value.$debounce})]}return []}).filter(Y=>!!Y.length)),P(),C(),B?.valid!=null&&(f.value=l.getDirtyState(n),f.value&&G()),l.addRuleDeclEntry(n,T);}function C(){G=v.$debounce.value?he(M,v.$debounce.value??v.haveAnyAsyncRule?100:0):M;}function O(){y.value&&Object.entries(y.value).forEach(([T,B])=>{B.$unwatch();}),u(),f.value&&l.setDirtyEntry(n,f.value),p?.(),o?.(),m.stop(),m=vue.effectScope(),I.forEach(T=>T.stop()),I=[],x?.(),$?.();}function P(){y.value&&Object.entries(y.value).forEach(([T,B])=>{B.$watch();}),v=m.run(()=>{let T=vue.computed(()=>f.value),B=vue.computed(()=>w.value.$debounce),Y=vue.computed(()=>w.value.$lazy!=null?w.value.$lazy:vue.unref(c.lazy)),L=vue.computed(()=>w.value.$rewardEarly!=null?w.value.$rewardEarly:vue.unref(c.rewardEarly)),fe=vue.computed(()=>w.value.$clearExternalErrorsOnChange!=null?w.value.$clearExternalErrorsOnChange:vue.unref(c.clearExternalErrorsOnChange)),gt=vue.computed(()=>w.value.$autoDirty!=null?w.value.$autoDirty:vue.unref(c.autoDirty)),He=vue.computed(()=>Object.entries(y.value).some(([re,Q])=>Q.$validating)),xe=vue.computed(()=>Re.value&&!Se.value&&f.value),qe=vue.computed(()=>xe.value?je({field:{$dirty:f.value,$externalErrors:d?.value,$rules:y.value}}):[]),Le=vue.computed(()=>je({field:{$dirty:f.value,$externalErrors:d?.value,$rules:y.value},silent:!0})),ze=vue.computed(()=>!(Re.value||Se.value)),Se=vue.computed(()=>N.value||!L.value?Object.entries(y.value).some(([re,Q])=>Q.$pending):!1),Re=vue.computed(()=>d?.value?.length?!0:z(y.value)?!1:!L.value||L.value&&N.value?Object.entries(y.value).some(([re,Q])=>!Q.$valid):!1),Je=vue.computed(()=>a),Ce=vue.computed(()=>z(y.value)?!1:f.value&&!z(e.value)&&!He.value?d?.value?.length?!1:L.value?Object.entries(y.value).every(([re,Q])=>Q.$valid):!Re.value:!1),mt=vue.computed(()=>Object.entries(y.value).some(([re,Q])=>Q._haveAsync));function $t(){S?.fields&&Object.entries(S.fields).forEach(([re,Q])=>{let Qe=vue.effectScope();Ye[re]=Qe.run(()=>{let Xe=vue.ref();return vue.watchEffect(()=>{Xe.value=Q({$dirty:f.value,$externalErrors:d?.value??[],$value:e,$rules:y.value,$error:xe.value,$pending:Se.value,$invalid:Re.value,$valid:Ce.value,$errors:qe.value,$ready:ze.value,$silentErrors:Le.value,$anyDirty:T.value,$name:Je.value});}),Xe}),I.push(Qe);});}let Ye={};return $t(),vue.watch(Ce,re=>{re&&(N.value=!1);}),{$error:xe,$pending:Se,$invalid:Re,$valid:Ce,$debounce:B,$lazy:Y,$errors:qe,$ready:ze,$silentErrors:Le,$rewardEarly:L,$autoDirty:gt,$clearExternalErrorsOnChange:fe,$anyDirty:T,$name:Je,haveAnyAsyncRule:mt,$shortcuts:Ye,$validating:He}}),p=vue.watch(e,()=>{v.$autoDirty.value&&(f.value||(f.value=!0)),t.value instanceof Function&&j(),G(),v.$rewardEarly.value!==!0&&v.$clearExternalErrorsOnChange.value&&g();},{deep:E?!0:be?1:!0}),u=vue.watch(f,()=>{l.setDirtyEntry(n,f.value);}),o=vue.watch(v.$valid,T=>{v.$rewardEarly.value&&T&&(N.value=!1);}),$=vue.watch(v.haveAnyAsyncRule,C);}function M(){Object.values(y.value).forEach(T=>{T.$validate();});}let y=vue.ref(),w=vue.ref();j();function K(){g(),f.value=!1,Object.entries(y.value).forEach(([T,B])=>{B.$reset();}),!v.$lazy.value&&v.$autoDirty.value&&Object.values(y.value).forEach(T=>T.$validate());}function U(T=!0){f.value||(f.value=!0,T&&G());}async function J(){try{let T=e.value;if(N.value=!0,!f.value)f.value=!0;else if(v.$autoDirty.value&&f.value&&!v.$pending.value)return {result:!v.$error.value,data:T};return z(y.value)?{result:!0,data:T}:{result:(await Promise.allSettled(Object.entries(y.value).map(([L,fe])=>fe.$validate()))).every(L=>L.status==="fulfilled"?L.value===!0:!1),data:T}}catch{return {result:!1,data:e.value}}}function s(){O(),e.value=at(e,b),K();}function i(T=!0){return f.value?e.value:null}function g(){d?.value?.length&&(d.value=[]);}!v.$lazy.value&&!f.value&&v.$autoDirty.value&&G();let{$anyDirty:h,$error:V,$errors:R,$invalid:A,$name:F,$pending:k,$ready:te,$silentErrors:ce,$valid:le,$shortcuts:D,$validating:_}=v;return vue.reactive({$dirty:f,$error:V,$errors:R,$valid:le,$invalid:A,$pending:k,$silentErrors:ce,$anyDirty:h,$ready:te,$name:F,$externalErrors:d,$value:e,$rules:y,...D,$reset:K,$touch:U,$validate:J,$unwatch:O,$watch:P,$resetAll:s,$extractDirtyFields:i,$clearExternalErrors:g})}function ft({$id:e,path:t,index:r,options:n,storage:a,stateValue:l,customMessages:c,rules:d,externalErrors:x,initialState:E,shortcuts:b,fieldName:S}){let m=d.$key?d.$key:Ae(),v=`${t}.${String(m)}`;typeof l.value=="object"&&l.value!=null&&(l.value.$id?v=`${t}.${l.value.$id}`:Object.defineProperties(l.value,{$id:{value:m,enumerable:!1,configurable:!1,writable:!1}}));let I=$e({state:l,rulesDef:vue.toRef(()=>d),customMessages:c,path:v,storage:a,options:n,externalErrors:vue.toRef(x?.value??[],r),initialState:E?.[r],shortcuts:b,fieldName:S});if(I){let f=l.value?.$id;I.$id=f??String(m),a.addArrayStatus(e,I.$id,I);}return I}function Rt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:c,initialState:d,shortcuts:x,fieldName:E}){let b=vue.effectScope(),S,m=vue.effectScope(),v,I=[];if(!Array.isArray(e.value)&&!t.value.$each)return null;let f=vue.ref(),N=vue.ref(e.value),p,o=vue.ref({}),u=a.getCollectionsEntry(n);v=m.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(i=>typeof i!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(i=>de(i)):!1)})),$(),j();function $(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(f.value=Ae(),Object.defineProperties(e.value,{$id:{value:f.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(f.value=e.value.$id)),!v.isPrimitiveArray.value&&(N.value=o.value.$value,Array.isArray(e.value)?u.value=e.value.map((s,i)=>{let g=Oe(t.value.$each,vue.toRef(()=>s),i),h=ft({$id:f.value,path:n,rules:g??{},stateValue:vue.toRef(()=>s),index:i,options:l,storage:a,externalErrors:vue.toRef(c?.value??{},"$each"),initialState:d?.[i],shortcuts:x,fieldName:E});return h||null}).filter(s=>!!s):u.value=[],o.value=Ee({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:vue.toRef(c?.value??{},"$errors"),$isArray:!0,initialState:d,shortcuts:x,fieldName:E}));}function G(){if(Array.isArray(e.value)){let s=ne(u.value);u.value=e.value.map((i,g)=>{let h=vue.toRef(()=>i);if(i.$id&&u.value.find(V=>V.$id===i.$id)){let V=a.getArrayStatus(f.value,i.$id);return V?(V.$value=h,V):null}else {let V=Oe(t.value.$each,h,g);if(V){let R=ft({$id:f.value,path:n,rules:V,stateValue:h,index:g,options:l,storage:a,externalErrors:vue.toRef(c?.value??{},"$each"),initialState:d?.[g],shortcuts:x,fieldName:E});return R||null}}}).filter(i=>!!i),s.filter(i=>!e.value.find(g=>i.$id===g.$id)).forEach((i,g)=>{a.deleteArrayStatus(f.value,g.toString());});}else u.value=[];}function j(){p=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?$():G();},{deep:be?1:!0,flush:"pre"}),S=b.run(()=>{let s=vue.computed(()=>o.value.$dirty&&u.value.every(D=>D.$dirty)),i=vue.computed(()=>o.value.$anyDirty||u.value.some(D=>D.$dirty)),g=vue.computed(()=>o.value.$invalid||u.value.some(D=>D.$invalid)),h=vue.computed(()=>(z(o.value.$rules)?!0:o.value.$valid)&&u.value.every(D=>D.$valid)),V=vue.computed(()=>o.value.$error||u.value.some(D=>D.$error)),R=vue.computed(()=>!(g.value||A.value)),A=vue.computed(()=>o.value.$pending||u.value.some(D=>D.$pending)),F=vue.computed(()=>({$errors:o.value.$errors,$each:u.value.map(D=>D.$errors)})),k=vue.computed(()=>({$errors:o.value.$silentErrors,$each:u.value.map(D=>D.$silentErrors)})),te=vue.computed(()=>E);function ce(){x?.collections&&Object.entries(x?.collections).forEach(([D,_])=>{let T=vue.effectScope();le[D]=T.run(()=>{let B=vue.ref();return vue.watchEffect(()=>{B.value=_({$dirty:s.value,$error:V.value,$pending:A.value,$invalid:g.value,$valid:h.value,$errors:F.value,$ready:R.value,$silentErrors:k.value,$anyDirty:i.value,$name:te.value,$each:u.value,$field:o.value,$value:e});}),B}),I.push(T);});}let le={};return ce(),{$dirty:s,$anyDirty:i,$invalid:g,$valid:h,$error:V,$pending:A,$errors:F,$silentErrors:k,$ready:R,$name:te,$shortcuts:le}}),v.isPrimitiveArray.value&&(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`),p());}function C(){p&&p(),o.value&&o.value.$unwatch(),u.value&&u.value.forEach(s=>{"$dirty"in s&&s.$unwatch();}),b.stop(),b=vue.effectScope(),m.stop(),m=vue.effectScope(!0),I.forEach(s=>s.stop()),I=[];}function O(s=!0){o.value.$touch(s),u.value.forEach(i=>{i.$touch(s);});}function P(){o.value.$reset(),u.value.forEach(s=>{s.$reset();});}async function M(){let s=e.value;try{return {result:(await Promise.allSettled([o.value.$validate(),...u.value.map(h=>h.$validate())])).every(h=>h.status==="fulfilled"?h.value.result===!0:!1),data:s}}catch{return {result:!1,data:s}}}function y(){o.value.$clearExternalErrors(),u.value.forEach(s=>{s.$clearExternalErrors();});}function w(s=!0){let i=u.value.map(g=>{if(Fe(g))return g.$extractDirtyFields(s)});return s&&(i=i.filter(g=>q(g)?!z(g):!!g)),i}function K(){C(),lt(e,d),P();}let{$shortcuts:U,...J}=S;return vue.reactive({$field:o,...J,...U,$each:u,$value:e,$validate:M,$unwatch:C,$watch:j,$touch:O,$reset:P,$resetAll:K,$extractDirtyFields:w,$clearExternalErrors:y})}function Ge({scopeRules:e,state:t,customMessages:r,path:n="",rootRules:a,storage:l,options:c,externalErrors:d,validationGroups:x,initialState:E,shortcuts:b,fieldName:S}){let m,v,I=[],f=null,N=null,p=null;function u(s=!0){$.value=null,vue.triggerRef($);let i=Object.fromEntries(Object.entries(e.value).map(([R,A])=>{if(A){let F=vue.toRef(t.value,R),k=vue.toRef(()=>A),te=vue.toRef(d?.value,R);return [R,$e({state:F,rulesDef:k,customMessages:r,path:n?`${n}.${R}`:R,storage:l,options:c,externalErrors:te,initialState:E?.[R],shortcuts:b,fieldName:R})]}return []}).filter(R=>!!R.length&&R[1]!=null)),g=Object.fromEntries(Object.entries(vue.unref(d)??{}).filter(([R])=>!(R in e.value)).map(([R,A])=>{if(A){let F=vue.toRef(t.value,R),k=vue.toRef(()=>({}));return [R,$e({state:F,rulesDef:k,customMessages:r,path:n?`${n}.${R}`:R,storage:l,options:c,externalErrors:vue.toRef(d?.value??{},R),initialState:E?.[R],shortcuts:b,fieldName:R})]}return []})),h=Object.fromEntries(Object.entries(t.value).filter(([R])=>!(R in e.value)&&!(R in(g.value??{}))).map(([R,A])=>{let F=vue.toRef(t.value,R),k=vue.toRef(()=>({}));return [R,$e({state:F,rulesDef:k,customMessages:r,path:n?`${n}.${R}`:R,storage:l,options:c,externalErrors:vue.toRef(d?.value??{},R),initialState:E?.[R],shortcuts:b,fieldName:R})]})),V=Object.fromEntries(Object.entries(x?.(i)??{}).map(([R,A])=>A.length?[R,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(F=>[F,Ke(vue.toRef(()=>A),F)])),...Object.fromEntries(["$errors","$silentErrors"].map(F=>[F,et(vue.toRef(()=>A),F)]))}]:[]));$.value={...i,...g,...h,...V},s&&P();}let $=l.getFieldsEntry(n);u();function G(){N?.(),Object.values($.value).forEach(s=>{s.$reset();}),O();}function j(s=!0){Object.values($.value).forEach(i=>{i.$touch(s);});}async function C(){try{let s=t.value;return {result:(await Promise.allSettled(Object.values($.value).map(h=>h.$validate()))).every(h=>h.status==="fulfilled"?h.value.result===!0:!1),data:s}}catch{return {result:!1,data:t.value}}}function O(){d?.value&&(N=vue.watch(d,()=>{M(),u();},{deep:!0}));}function P(){a&&(f=vue.watch(a,()=>{M(),u();},{deep:!0,flush:"post"}),O()),p=vue.watch(t,()=>{M(),u(),j();}),m=vue.effectScope(),v=m.run(()=>{let s=vue.computed(()=>!!Object.entries($.value).length&&Object.entries($.value).every(([D,_])=>_?.$dirty)),i=vue.computed(()=>Object.entries($.value).some(([D,_])=>_?.$dirty)),g=vue.computed(()=>Object.entries($.value).some(([D,_])=>_?.$invalid)),h=vue.computed(()=>Object.entries($.value).every(([D,_])=>_?.$valid)),V=vue.computed(()=>s.value&&!A.value&&g.value),R=vue.computed(()=>vue.unref(c.autoDirty)?i.value&&!(g.value||A.value):!(g.value||A.value)),A=vue.computed(()=>Object.entries($.value).some(([D,_])=>_?.$pending)),F=vue.computed(()=>Object.fromEntries(Object.entries($.value).map(([D,_])=>[D,_?.$errors]))),k=vue.computed(()=>Object.fromEntries(Object.entries($.value).map(([D,_])=>[D,_?.$silentErrors]))),te=vue.computed(()=>S);function ce(){b?.nested&&Object.entries(b.nested).forEach(([D,_])=>{let T=vue.effectScope();le[D]=T.run(()=>{let B=vue.ref();return vue.watchEffect(()=>{B.value=_({$dirty:s.value,$value:t,$error:V.value,$pending:A.value,$invalid:g.value,$valid:h.value,$ready:R.value,$anyDirty:i.value,$name:te.value,$silentErrors:k.value,$errors:F.value,$fields:$.value});}),B}),I.push(T);});}let le={};return ce(),{$dirty:s,$anyDirty:i,$invalid:g,$valid:h,$error:V,$pending:A,$errors:F,$silentErrors:k,$ready:R,$name:te,$shortcuts:le}});}function M(){$.value&&Object.entries($.value).forEach(([s,i])=>{i.$unwatch();}),f?.(),N?.(),p?.(),m.stop(),m=vue.effectScope(),I.forEach(s=>s.stop()),I=[];}function y(){Object.entries($.value).forEach(([s,i])=>{i.$clearExternalErrors();});}function w(){M(),pe(t,E??{}),u(!1),G(),P();}function K(s=!0){let i=Object.entries($.value).map(([g,h])=>[g,h.$extractDirtyFields(s)]);return s&&(i=i.filter(([g,h])=>q(h)?!z(h):Array.isArray(h)?h.length:!!h)),Object.fromEntries(i)}let{$shortcuts:U,...J}=v;return vue.reactive({...J,...U,$fields:$,$value:t,$resetAll:w,$reset:G,$touch:j,$validate:C,$unwatch:M,$watch:P,$clearExternalErrors:y,$extractDirtyFields:K})}function $e({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:c,index:d,initialState:x,shortcuts:E,onUnwatch:b,fieldName:S}){return ut(t,e)?Rt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,index:d,externalErrors:c,initialState:x,fieldName:S,shortcuts:E}):ot(e,t)&&nt(e)?Ge({scopeRules:t,state:e,customMessages:r,path:n,storage:a,options:l,index:d,initialState:x,shortcuts:E,fieldName:S,externalErrors:c}):st(t)?Ee({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,index:d,externalErrors:c,onUnwatch:b,shortcuts:E,initialState:x,fieldName:S}):null}function Be({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:l}){let c=Me();return vue.reactive(Ge({rootRules:r,scopeRules:r,state:n,customMessages:a?.(),storage:c,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:l,fieldName:"root"}))}function We(e,t,r){let n={autoDirty:t?.autoDirty??!0,lazy:t?.lazy??!1,rewardEarly:t?.rewardEarly??!1,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange??!0};function a(l,c,d){let x=vue.isRef(c)?c:vue.computed(typeof c=="function"?c:()=>c),E={...n,...d},b=vue.isRef(l)?l:vue.ref(l),S=ne(vue.toRaw(b.value));return {r$:Be({scopeRules:x,state:b,options:E,initialState:S,customRules:e,shortcuts:r})}}return a}var vt=We();function Ue(){function e(t,r){return r}return e}var ke=Ue();function yt({rules:e,modifiers:t,shortcuts:r}){let n=We(e,t,r),a=Ue();return {useRegle:n,inferRules:a}}exports.InternalRuleType=Ie;exports.createRule=we;exports.defineRegleConfig=yt;exports.inferRules=ke;exports.unwrapRuleParameters=H;exports.useRegle=vt;
|
|
1
|
+
'use strict';var vue=require('vue');var Ie=(r=>(r.Inline="__inline",r.Async="__async",r))(Ie||{});function Ze(e,t){return vue.computed(()=>e.value.some(r=>r[t]))}function Ke(e,t){return vue.computed(()=>e.value.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[]))}function H(e){return e.map(t=>t instanceof Function?t():vue.unref(t))}function et(e){return e.map(t=>t instanceof Function||vue.isRef(t)?t:vue.toRef(()=>t))}function tt(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(i=>i.trim()).filter(i=>i.length>0).length:0}function Pe(e,...t){let{message:r,validator:n,active:a,type:l,...i}=e,d=l==="__async"||n.constructor.name==="AsyncFunction";return {...{validator(b,...S){return e.validator(b,...H(S.length?S:t))},message(b,S){return typeof e.message=="function"?e.message(b,{...S,$params:H(S.$params?.length?S.$params:t)}):e.message},active(b,S){return typeof e.active=="function"?e.active(b,{...S,$params:H(S.$params?.length?S.$params:t)}):e.active??!0},exec(b){let S=e.validator(b,...H(t)),g;return S instanceof Promise?S.then(v=>(g=v,typeof g=="object"&&"$valid"in g?g.$valid:typeof g=="boolean"?g:!1)):(g=S,typeof g=="object"&&"$valid"in g?g.$valid:typeof g=="boolean"?g:!1)}},...i,_validator:e.validator,_message:e.message,_active:e.active,_type:e.type,_patched:!1,_async:d,_params:et(t)}}function we(e){if(typeof e.validator=="function"){let r=Pe(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(tt(e.validator)>1){let a=function(...l){return Pe(e,...l)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._type=e.type,a._patched=!1,a._async=n,a}else return r}throw new Error("Validator must be a function")}function L(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function rt(e){return L(e.value)}function ne(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>ne(n)))),r=="Map"&&(t=new Map([...e].map(n=>[ne(n[0]),ne(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Et(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=ne(e[n]);}return t}function Et(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 Oe(e,t,r){return e instanceof Function?e(t,r??0):e}function nt(e,t){vue.isRef(e)?e.value=t:e=t;}function at(e,t){vue.isRef(e)?e.value=[]:e=[],t.forEach((r,n)=>{let a=vue.isRef(e)?e.value[n]:e[n];a={},Re(a,t[n]);});}function Re(e,t){Object.entries({...vue.unref(e),...t}).forEach(([r,n])=>{let a=vue.isRef(e)?e.value:e,l=vue.isRef(t[r])?t[r]._value:t[r],i=vue.isRef(a[r])?a[r].value:a[r];Array.isArray(a[r])?(a[r]=[],Array.isArray(l)&&l.forEach((d,x)=>{a[r][x]={},Re(a[r][x],l[x]);})):L(l)?Re(i,l):vue.isRef(a[r])?a[r].value=l:a[r]=l;});}function q(e){return e==null?!0:e===!1?!1:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:typeof e=="string"?!String(e.trim()).length:!1}function he(e,t,r){let n,a=(...l)=>new Promise(i=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...l])).then(i);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a.doImmediately=(...l)=>new Promise(i=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...l])).then(i);},0);}),a}function xt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let l=Number(r[a]),i=Number(n[a]);if(l>i)return 1;if(i>l)return -1;if(!isNaN(l)&&isNaN(i))return 1;if(isNaN(l)&&!isNaN(i))return -1}return 0}var be=xt(vue.version,"3.5.0")!==-1;function Ct(){return Math.floor(Math.random()*Date.now()).toString()}function Ae(){return typeof window>"u"?Ct():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Me(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),a=vue.shallowRef(new Map),l=vue.shallowRef(new Map);function i(p){let o=t.value.get(p);if(o)return o;{let u=vue.ref({});return t.value.set(p,u),u}}function d(p){let o=r.value.get(p);if(o)return o;{let u=vue.ref([]);return r.value.set(p,u),u}}function x(p,o,u){l.value.set(`${p}-${o}`,u);}function E(p,o){return l.value.get(`${p}-${o}`)}function b(p,o){p&&o!=null&&l.value.delete(`${p}-${o}`);}function S(p,o){n.value.set(p,o);}function g(p){return n.value.get(p)??!1}function v(p,o){e.value.set(p,o);}function I(p,o){let u=e.value.get(p);return u?f(o,u)?{valid:!0}:{valid:!1}:void 0}function f(p,o){let u=Object.keys(o),$=Object.keys(p);return $.length!==u.length||!$.every(j=>u.includes(j))?!1:$.every(j=>{let C=p[j],O=o[j];return !O||!C||typeof C=="function"||typeof O=="function"||typeof C=="number"||typeof C=="boolean"?!1:C._params?C._params?.every((P,M)=>{if(typeof O=="number"||typeof O=="boolean")return !0;{let y=H(O._params),w=H(C._params);return y?.[M]===w?.[M]}}):!0})}function G(p){let o=a.value.get(p);if(o)return o;{let u=vue.ref(!1),$=vue.ref(!0),N=vue.ref({}),j=vue.ref(!1);return a.value.set(p,{$pending:u,$valid:$,$metadata:N,$validating:j}),{$pending:u,$valid:$,$metadata:N,$validating:j}}}return vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),l.value.clear();}),{addRuleDeclEntry:v,setDirtyEntry:S,checkRuleDeclEntry:I,getDirtyState:g,trySetRuleStatusRef:G,getFieldsEntry:i,getCollectionsEntry:d,getArrayStatus:E,addArrayStatus:x,deleteArrayStatus:b,arrayStatusStorage:l}}function lt(e,t){return L(e.value)&&L(t.value)&&!Object.entries(t.value).some(r=>pe(r))}function ot(e,t){return !!e.value&&"$each"in e.value||Array.isArray(t.value)}function ut(e){return !!e.value&&L(e.value)}function pe(e){return L(e)&&"_validator"in e}function de(e){return typeof e.value!="function"}function st(e){return L(e)&&"$fields"in e}function Fe({field:e,silent:t=!1}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function ct({$dirty:e,customMessages:t,rule:r,ruleKey:n,state:a,path:l,storage:i,$debounce:d}){let x=vue.effectScope(),E,b,S=vue.ref(!1),{$pending:g,$valid:v,$metadata:I,$validating:f}=i.trySetRuleStatusRef(`${l}.${n}`);function G(){E=x.run(()=>{let C=vue.computed(()=>({$invalid:!v.value,$params:w.value,...I.value})),O=vue.computed(()=>de(r)?typeof r.value.active=="function"?r.value.active(a.value,C.value):!!r.value.active:!0),P=vue.computed(()=>{let U="",z=t?t[n]?.message:void 0;return z&&(typeof z=="function"?U=z(a.value,C.value):U=z),de(r)&&(z&&!r.value._patched||(typeof r.value.message=="function"?U=r.value.message(a.value,C.value):U=r.value.message)),q(U)&&(U="Error",console.warn(`No error message defined for ${l}.${n}`)),U}),M=vue.computed(()=>de(r)&&r.value.type?r.value.type:n),y=vue.computed(()=>de(r)?r.value.validator:r.value),w=vue.computed(()=>typeof r.value=="function"?[]:H(r.value._params??[])),Z=vue.computed(()=>`${l}.${M.value}`);return {$active:O,$message:P,$type:M,$validator:y,$params:w,$path:Z}}),b=vue.watch(E.$params,$,{deep:!0});}G();function p(){v.value=!0,e.value&&(g.value=!0);}async function o(){let C=E.$validator.value,O=C(a.value,...E.$params.value),P=!1,M=a.value;try{p();let y;if(O instanceof Promise?y=await O:y=O,a.value!==M)return !0;if(typeof y=="boolean")P=y;else {let{$valid:w,...Z}=y;P=w,I.value=Z;}}catch{P=!1;}finally{g.value=!1;}return P}let u=he(o,d??200);async function $(){try{f.value=!0;let C=!1;if(pe(r.value)&&r.value._async)C=await u();else {let O=E.$validator.value,P=O(a.value,...E.$params.value);if(P 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(P!=null)if(typeof P=="boolean")C=P;else {let{$valid:M,...y}=P;C=M,I.value=y;}}return v.value=C,C}catch{return !1}finally{f.value=!1;}}function N(){v.value=!0,I.value={},g.value=!1,f.value=!1,G();}function j(){b(),x.stop(),x=vue.effectScope();}return vue.reactive({...E,$pending:g,$valid:v,$metadata:I,_haveAsync:S,$validating:f,$validate:$,$unwatch:j,$watch:G,$reset:N})}function Ee({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:l,options:i,externalErrors:d,onUnwatch:x,$isArray:E,initialState:b,shortcuts:S}){let g=vue.effectScope(),v,I=[],f=vue.ref(!1),G=vue.ref(!1),p,o,u,$,N=()=>{};function j(){let T=t.value,B=l.checkRuleDeclEntry(n,T);w.value=Object.fromEntries(Object.entries(T).filter(([J])=>J.startsWith("$"))),y.value=Object.fromEntries(Object.entries(t.value).filter(([J])=>!J.startsWith("$")).map(([J,Y])=>{if(Y){let fe=vue.toRef(()=>Y);return [J,ct({$dirty:f,customMessages:r,rule:fe,ruleKey:J,state:e,path:n,storage:l,$debounce:w.value.$debounce})]}return []}).filter(J=>!!J.length)),P(),C(),B?.valid!=null&&(f.value=l.getDirtyState(n),f.value&&N()),l.addRuleDeclEntry(n,T);}function C(){N=v.$debounce.value?he(M,v.$debounce.value??v.haveAnyAsyncRule?100:0):M;}function O(){y.value&&Object.entries(y.value).forEach(([T,B])=>{B.$unwatch();}),u(),f.value&&l.setDirtyEntry(n,f.value),p?.(),o?.(),g.stop(),g=vue.effectScope(),I.forEach(T=>T.stop()),I=[],x?.(),$?.();}function P(){y.value&&Object.entries(y.value).forEach(([T,B])=>{B.$watch();}),v=g.run(()=>{let T=vue.computed(()=>f.value),B=vue.computed(()=>w.value.$debounce),J=vue.computed(()=>w.value.$lazy!=null?w.value.$lazy:vue.unref(i.lazy)),Y=vue.computed(()=>w.value.$rewardEarly!=null?w.value.$rewardEarly:vue.unref(i.rewardEarly)),fe=vue.computed(()=>w.value.$clearExternalErrorsOnChange!=null?w.value.$clearExternalErrorsOnChange:vue.unref(i.clearExternalErrorsOnChange)),mt=vue.computed(()=>w.value.$autoDirty!=null?w.value.$autoDirty:vue.unref(i.autoDirty)),ke=vue.computed(()=>Object.entries(y.value).some(([K,re])=>re.$validating)),xe=vue.computed(()=>Se.value&&!$e.value&&f.value),He=vue.computed(()=>xe.value?Fe({field:{$dirty:f.value,$externalErrors:d?.value,$rules:y.value}}):[]),Le=vue.computed(()=>Fe({field:{$dirty:f.value,$externalErrors:d?.value,$rules:y.value},silent:!0})),qe=vue.computed(()=>!(Se.value||$e.value)),$e=vue.computed(()=>G.value||!Y.value?Object.entries(y.value).some(([K,re])=>re.$pending):!1),Se=vue.computed(()=>d?.value?.length?!0:q(y.value)?!1:!Y.value||Y.value&&G.value?Object.entries(y.value).some(([K,re])=>!re.$valid):!1),ze=vue.computed(()=>a),Ce=vue.computed(()=>q(y.value)?!1:f.value&&!q(e.value)&&!ke.value?d?.value?.length?!1:Object.values(y.value).every(K=>K.$valid&&K.$active):!1),gt=vue.computed(()=>Object.entries(y.value).some(([K,re])=>re._haveAsync));function $t(){S?.fields&&Object.entries(S.fields).forEach(([K,re])=>{let Ye=vue.effectScope();Je[K]=Ye.run(()=>{let Qe=vue.ref();return vue.watchEffect(()=>{Qe.value=re({$dirty:f.value,$externalErrors:d?.value??[],$value:e,$rules:y.value,$error:xe.value,$pending:$e.value,$invalid:Se.value,$valid:Ce.value,$errors:He.value,$ready:qe.value,$silentErrors:Le.value,$anyDirty:T.value,$name:ze.value});}),Qe}),I.push(Ye);});}let Je={};return $t(),vue.watch(Ce,K=>{K&&(G.value=!1);}),{$error:xe,$pending:$e,$invalid:Se,$valid:Ce,$debounce:B,$lazy:J,$errors:He,$ready:qe,$silentErrors:Le,$rewardEarly:Y,$autoDirty:mt,$clearExternalErrorsOnChange:fe,$anyDirty:T,$name:ze,haveAnyAsyncRule:gt,$shortcuts:Je,$validating:ke}}),p=vue.watch(e,()=>{v.$autoDirty.value&&(f.value||(f.value=!0)),t.value instanceof Function&&j(),N(),v.$rewardEarly.value!==!0&&v.$clearExternalErrorsOnChange.value&&m();},{deep:E?!0:be?1:!0}),u=vue.watch(f,()=>{l.setDirtyEntry(n,f.value);}),o=vue.watch(v.$valid,T=>{v.$rewardEarly.value&&T&&(G.value=!1);}),$=vue.watch(v.haveAnyAsyncRule,C);}function M(){Object.values(y.value).forEach(T=>{T.$validate();});}let y=vue.ref(),w=vue.ref();j();function Z(){m(),f.value=!1,Object.entries(y.value).forEach(([T,B])=>{B.$reset();}),!v.$lazy.value&&v.$autoDirty.value&&Object.values(y.value).forEach(T=>T.$validate());}function U(T=!0){f.value||(f.value=!0,T&&N());}async function z(){try{let T=e.value;if(G.value=!0,!f.value)f.value=!0;else if(v.$autoDirty.value&&f.value&&!v.$pending.value)return {result:!v.$error.value,data:T};return q(y.value)?{result:!0,data:T}:{result:(await Promise.allSettled(Object.entries(y.value).map(([Y,fe])=>fe.$validate()))).every(Y=>Y.status==="fulfilled"?Y.value===!0:!1),data:T}}catch{return {result:!1,data:e.value}}}function s(){O(),e.value=nt(e,b),Z();}function c(T=!0){return f.value?e.value:null}function m(){d?.value?.length&&(d.value=[]);}!v.$lazy.value&&!f.value&&v.$autoDirty.value&&N();let{$anyDirty:h,$error:V,$errors:R,$invalid:A,$name:F,$pending:k,$ready:te,$silentErrors:ce,$valid:le,$shortcuts:D,$validating:_}=v;return vue.reactive({$dirty:f,$error:V,$errors:R,$valid:le,$invalid:A,$pending:k,$silentErrors:ce,$anyDirty:h,$ready:te,$name:F,$externalErrors:d,$value:e,$rules:y,...D,$reset:Z,$touch:U,$validate:z,$unwatch:O,$watch:P,$resetAll:s,$extractDirtyFields:c,$clearExternalErrors:m})}function ft({$id:e,path:t,index:r,options:n,storage:a,stateValue:l,customMessages:i,rules:d,externalErrors:x,initialState:E,shortcuts:b,fieldName:S}){let g=d.$key?d.$key:Ae(),v=`${t}.${String(g)}`;typeof l.value=="object"&&l.value!=null&&(l.value.$id?v=`${t}.${l.value.$id}`:Object.defineProperties(l.value,{$id:{value:g,enumerable:!1,configurable:!1,writable:!1}}));let I=ge({state:l,rulesDef:vue.toRef(()=>d),customMessages:i,path:v,storage:a,options:n,externalErrors:vue.toRef(x?.value??[],r),initialState:E?.[r],shortcuts:b,fieldName:S});if(I){let f=l.value?.$id;I.$id=f??String(g),a.addArrayStatus(e,I.$id,I);}return I}function Rt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:i,initialState:d,shortcuts:x,fieldName:E}){let b=vue.effectScope(),S,g=vue.effectScope(),v,I=[];if(!Array.isArray(e.value)&&!t.value.$each)return null;let f=vue.ref(),G=vue.ref(e.value),p,o=vue.ref({}),u=a.getCollectionsEntry(n);v=g.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(c=>typeof c!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(c=>pe(c)):!1)})),$(),j();function $(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(f.value=Ae(),Object.defineProperties(e.value,{$id:{value:f.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(f.value=e.value.$id)),!v.isPrimitiveArray.value&&(G.value=o.value.$value,Array.isArray(e.value)?u.value=e.value.map((s,c)=>{let m=Oe(t.value.$each,vue.toRef(()=>s),c),h=ft({$id:f.value,path:n,rules:m??{},stateValue:vue.toRef(()=>s),index:c,options:l,storage:a,externalErrors:vue.toRef(i?.value??{},"$each"),initialState:d?.[c],shortcuts:x,fieldName:E});return h||null}).filter(s=>!!s):u.value=[],o.value=Ee({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:vue.toRef(i?.value??{},"$errors"),$isArray:!0,initialState:d,shortcuts:x,fieldName:E}));}function N(){if(Array.isArray(e.value)){let s=ne(u.value);u.value=e.value.map((c,m)=>{let h=vue.toRef(()=>c);if(c.$id&&u.value.find(V=>V.$id===c.$id)){let V=a.getArrayStatus(f.value,c.$id);return V?(V.$value=h,V):null}else {let V=Oe(t.value.$each,h,m);if(V){let R=ft({$id:f.value,path:n,rules:V,stateValue:h,index:m,options:l,storage:a,externalErrors:vue.toRef(i?.value??{},"$each"),initialState:d?.[m],shortcuts:x,fieldName:E});return R||null}}}).filter(c=>!!c),s.filter(c=>!e.value.find(m=>c.$id===m.$id)).forEach((c,m)=>{a.deleteArrayStatus(f.value,m.toString());});}else u.value=[];}function j(){p=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?$():N();},{deep:be?1:!0,flush:"pre"}),S=b.run(()=>{let s=vue.computed(()=>o.value.$dirty&&u.value.every(D=>D.$dirty)),c=vue.computed(()=>o.value.$anyDirty||u.value.some(D=>D.$dirty)),m=vue.computed(()=>o.value.$invalid||u.value.some(D=>D.$invalid)),h=vue.computed(()=>(q(o.value.$rules)?!0:o.value.$valid)&&u.value.every(D=>D.$valid)),V=vue.computed(()=>o.value.$error||u.value.some(D=>D.$error)),R=vue.computed(()=>!(m.value||A.value)),A=vue.computed(()=>o.value.$pending||u.value.some(D=>D.$pending)),F=vue.computed(()=>({$errors:o.value.$errors,$each:u.value.map(D=>D.$errors)})),k=vue.computed(()=>({$errors:o.value.$silentErrors,$each:u.value.map(D=>D.$silentErrors)})),te=vue.computed(()=>E);function ce(){x?.collections&&Object.entries(x?.collections).forEach(([D,_])=>{let T=vue.effectScope();le[D]=T.run(()=>{let B=vue.ref();return vue.watchEffect(()=>{B.value=_({$dirty:s.value,$error:V.value,$pending:A.value,$invalid:m.value,$valid:h.value,$errors:F.value,$ready:R.value,$silentErrors:k.value,$anyDirty:c.value,$name:te.value,$each:u.value,$field:o.value,$value:e});}),B}),I.push(T);});}let le={};return ce(),{$dirty:s,$anyDirty:c,$invalid:m,$valid:h,$error:V,$pending:A,$errors:F,$silentErrors:k,$ready:R,$name:te,$shortcuts:le}}),v.isPrimitiveArray.value&&(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`),p());}function C(){p&&p(),o.value&&o.value.$unwatch(),u.value&&u.value.forEach(s=>{"$dirty"in s&&s.$unwatch();}),b.stop(),b=vue.effectScope(),g.stop(),g=vue.effectScope(!0),I.forEach(s=>s.stop()),I=[];}function O(s=!0){o.value.$touch(s),u.value.forEach(c=>{c.$touch(s);});}function P(){o.value.$reset(),u.value.forEach(s=>{s.$reset();});}async function M(){let s=e.value;try{return {result:(await Promise.allSettled([o.value.$validate(),...u.value.map(h=>h.$validate())])).every(h=>h.status==="fulfilled"?h.value.result===!0:!1),data:s}}catch{return {result:!1,data:s}}}function y(){o.value.$clearExternalErrors(),u.value.forEach(s=>{s.$clearExternalErrors();});}function w(s=!0){let c=u.value.map(m=>{if(st(m))return m.$extractDirtyFields(s)});return s&&(c=c.filter(m=>L(m)?!q(m):!!m)),c}function Z(){C(),at(e,d),P();}let{$shortcuts:U,...z}=S;return vue.reactive({$field:o,...z,...U,$each:u,$value:e,$validate:M,$unwatch:C,$watch:j,$touch:O,$reset:P,$resetAll:Z,$extractDirtyFields:w,$clearExternalErrors:y})}function Ge({scopeRules:e,state:t,customMessages:r,path:n="",rootRules:a,storage:l,options:i,externalErrors:d,validationGroups:x,initialState:E,shortcuts:b,fieldName:S}){let g,v,I=[],f=null,G=null,p=null;function u(s=!0){$.value=null,vue.triggerRef($);let c=Object.fromEntries(Object.entries(e.value).map(([R,A])=>{if(A){let F=vue.toRef(t.value,R),k=vue.toRef(()=>A),te=vue.toRef(d?.value,R);return [R,ge({state:F,rulesDef:k,customMessages:r,path:n?`${n}.${R}`:R,storage:l,options:i,externalErrors:te,initialState:E?.[R],shortcuts:b,fieldName:R})]}return []}).filter(R=>!!R.length&&R[1]!=null)),m=Object.fromEntries(Object.entries(vue.unref(d)??{}).filter(([R])=>!(R in e.value)).map(([R,A])=>{if(A){let F=vue.toRef(t.value,R),k=vue.toRef(()=>({}));return [R,ge({state:F,rulesDef:k,customMessages:r,path:n?`${n}.${R}`:R,storage:l,options:i,externalErrors:vue.toRef(d?.value??{},R),initialState:E?.[R],shortcuts:b,fieldName:R})]}return []})),h=Object.fromEntries(Object.entries(t.value).filter(([R])=>!(R in e.value)&&!(R in(m.value??{}))).map(([R,A])=>{let F=vue.toRef(t.value,R),k=vue.toRef(()=>({}));return [R,ge({state:F,rulesDef:k,customMessages:r,path:n?`${n}.${R}`:R,storage:l,options:i,externalErrors:vue.toRef(d?.value??{},R),initialState:E?.[R],shortcuts:b,fieldName:R})]})),V=Object.fromEntries(Object.entries(x?.(c)??{}).map(([R,A])=>A.length?[R,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(F=>[F,Ze(vue.toRef(()=>A),F)])),...Object.fromEntries(["$errors","$silentErrors"].map(F=>[F,Ke(vue.toRef(()=>A),F)]))}]:[]));$.value={...c,...m,...h,...V},s&&P();}let $=l.getFieldsEntry(n);u();function N(){G?.(),Object.values($.value).forEach(s=>{s.$reset();}),O();}function j(s=!0){Object.values($.value).forEach(c=>{c.$touch(s);});}async function C(){try{let s=t.value;return {result:(await Promise.allSettled(Object.values($.value).map(h=>h.$validate()))).every(h=>h.status==="fulfilled"?h.value.result===!0:!1),data:s}}catch{return {result:!1,data:t.value}}}function O(){d?.value&&(G=vue.watch(d,()=>{M(),u();},{deep:!0}));}function P(){a&&(f=vue.watch(a,()=>{M(),u();},{deep:!0,flush:"post"}),O()),p=vue.watch(t,()=>{M(),u(),j();}),g=vue.effectScope(),v=g.run(()=>{let s=vue.computed(()=>!!Object.entries($.value).length&&Object.entries($.value).every(([D,_])=>_?.$dirty)),c=vue.computed(()=>Object.entries($.value).some(([D,_])=>_?.$dirty)),m=vue.computed(()=>Object.entries($.value).some(([D,_])=>_?.$invalid)),h=vue.computed(()=>Object.entries($.value).every(([D,_])=>_?.$valid)),V=vue.computed(()=>s.value&&!A.value&&m.value),R=vue.computed(()=>vue.unref(i.autoDirty)?c.value&&!(m.value||A.value):!(m.value||A.value)),A=vue.computed(()=>Object.entries($.value).some(([D,_])=>_?.$pending)),F=vue.computed(()=>Object.fromEntries(Object.entries($.value).map(([D,_])=>[D,_?.$errors]))),k=vue.computed(()=>Object.fromEntries(Object.entries($.value).map(([D,_])=>[D,_?.$silentErrors]))),te=vue.computed(()=>S);function ce(){b?.nested&&Object.entries(b.nested).forEach(([D,_])=>{let T=vue.effectScope();le[D]=T.run(()=>{let B=vue.ref();return vue.watchEffect(()=>{B.value=_({$dirty:s.value,$value:t,$error:V.value,$pending:A.value,$invalid:m.value,$valid:h.value,$ready:R.value,$anyDirty:c.value,$name:te.value,$silentErrors:k.value,$errors:F.value,$fields:$.value});}),B}),I.push(T);});}let le={};return ce(),{$dirty:s,$anyDirty:c,$invalid:m,$valid:h,$error:V,$pending:A,$errors:F,$silentErrors:k,$ready:R,$name:te,$shortcuts:le}});}function M(){$.value&&Object.entries($.value).forEach(([s,c])=>{c.$unwatch();}),f?.(),G?.(),p?.(),g.stop(),g=vue.effectScope(),I.forEach(s=>s.stop()),I=[];}function y(){Object.entries($.value).forEach(([s,c])=>{c.$clearExternalErrors();});}function w(){M(),Re(t,E??{}),u(!1),N(),P();}function Z(s=!0){let c=Object.entries($.value).map(([m,h])=>[m,h.$extractDirtyFields(s)]);return s&&(c=c.filter(([m,h])=>L(h)?!q(h):Array.isArray(h)?h.length:!!h)),Object.fromEntries(c)}let{$shortcuts:U,...z}=v;return vue.reactive({...z,...U,$fields:$,$value:t,$resetAll:w,$reset:N,$touch:j,$validate:C,$unwatch:M,$watch:P,$clearExternalErrors:y,$extractDirtyFields:Z})}function ge({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:i,index:d,initialState:x,shortcuts:E,onUnwatch:b,fieldName:S}){return ot(t,e)?Rt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,index:d,externalErrors:i,initialState:x,fieldName:S,shortcuts:E}):lt(e,t)&&rt(e)?Ge({scopeRules:t,state:e,customMessages:r,path:n,storage:a,options:l,index:d,initialState:x,shortcuts:E,fieldName:S,externalErrors:i}):ut(t)?Ee({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,index:d,externalErrors:i,onUnwatch:b,shortcuts:E,initialState:x,fieldName:S}):null}function Ne({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:l}){let i=Me();return vue.reactive(Ge({rootRules:r,scopeRules:r,state:n,customMessages:a?.(),storage:i,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:l,fieldName:"root"}))}function Be(e,t,r){let n={autoDirty:t?.autoDirty??!0,lazy:t?.lazy??!1,rewardEarly:t?.rewardEarly??!1,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange??!0};function a(l,i,d){let x=vue.isRef(i)?i:vue.computed(typeof i=="function"?i:()=>i),E={...n,...d},b=vue.isRef(l)?l:vue.ref(l),S=ne(vue.toRaw(b.value));return {r$:Ne({scopeRules:x,state:b,options:E,initialState:S,customRules:e,shortcuts:r})}}return a}var vt=Be();function We(){function e(t,r){return r}return e}var Ue=We();function yt({rules:e,modifiers:t,shortcuts:r}){let n=Be(e,t,r),a=We();return {useRegle:n,inferRules:a}}
|
|
2
|
+
exports.InternalRuleType=Ie;exports.createRule=we;exports.defineRegleConfig=yt;exports.inferRules=Ue;exports.unwrapRuleParameters=H;exports.useRegle=vt;
|
package/dist/index.d.cts
CHANGED
|
@@ -291,10 +291,10 @@ type FieldRegleBehaviourOptions = AddDollarToOptions<RegleBehaviourOptions> & {
|
|
|
291
291
|
type ShortcutCommonFn<T extends Record<string, any>> = {
|
|
292
292
|
[x: string]: (element: OmitByType<T, Function>) => unknown;
|
|
293
293
|
};
|
|
294
|
-
type RegleShortcutDefinition<TCustomRules extends Record<string, any> =
|
|
294
|
+
type RegleShortcutDefinition<TCustomRules extends Record<string, any> = {}> = {
|
|
295
295
|
fields?: ShortcutCommonFn<RegleFieldStatus<any, Partial<TCustomRules> & Partial<DefaultValidators>>>;
|
|
296
296
|
nested?: ShortcutCommonFn<RegleStatus<Record<string, any>, ReglePartialRuleTree<any, Partial<TCustomRules> & Partial<DefaultValidators>>>>;
|
|
297
|
-
collections?: ShortcutCommonFn<RegleCollectionStatus
|
|
297
|
+
collections?: ShortcutCommonFn<RegleCollectionStatus<any[], Partial<TCustomRules> & Partial<DefaultValidators>>>;
|
|
298
298
|
};
|
|
299
299
|
type AddDollarToOptions<T extends Record<string, any>> = {
|
|
300
300
|
[K in keyof T as `$${string & K}`]: T[K];
|
|
@@ -730,7 +730,7 @@ declare function createRule<TValue extends any, TParams extends any[], TReturn e
|
|
|
730
730
|
*/
|
|
731
731
|
declare function unwrapRuleParameters<TParams extends any[]>(params: ParamDecl[]): TParams;
|
|
732
732
|
|
|
733
|
-
declare function defineRegleConfig<
|
|
733
|
+
declare function defineRegleConfig<TShortcuts extends RegleShortcutDefinition<TCustomRules>, TCustomRules extends Partial<AllRulesDeclarations> = EmptyObject>({ rules, modifiers, shortcuts, }: {
|
|
734
734
|
rules?: () => TCustomRules;
|
|
735
735
|
modifiers?: RegleBehaviourOptions;
|
|
736
736
|
shortcuts?: TShortcuts;
|
package/dist/index.d.ts
CHANGED
|
@@ -291,10 +291,10 @@ type FieldRegleBehaviourOptions = AddDollarToOptions<RegleBehaviourOptions> & {
|
|
|
291
291
|
type ShortcutCommonFn<T extends Record<string, any>> = {
|
|
292
292
|
[x: string]: (element: OmitByType<T, Function>) => unknown;
|
|
293
293
|
};
|
|
294
|
-
type RegleShortcutDefinition<TCustomRules extends Record<string, any> =
|
|
294
|
+
type RegleShortcutDefinition<TCustomRules extends Record<string, any> = {}> = {
|
|
295
295
|
fields?: ShortcutCommonFn<RegleFieldStatus<any, Partial<TCustomRules> & Partial<DefaultValidators>>>;
|
|
296
296
|
nested?: ShortcutCommonFn<RegleStatus<Record<string, any>, ReglePartialRuleTree<any, Partial<TCustomRules> & Partial<DefaultValidators>>>>;
|
|
297
|
-
collections?: ShortcutCommonFn<RegleCollectionStatus
|
|
297
|
+
collections?: ShortcutCommonFn<RegleCollectionStatus<any[], Partial<TCustomRules> & Partial<DefaultValidators>>>;
|
|
298
298
|
};
|
|
299
299
|
type AddDollarToOptions<T extends Record<string, any>> = {
|
|
300
300
|
[K in keyof T as `$${string & K}`]: T[K];
|
|
@@ -730,7 +730,7 @@ declare function createRule<TValue extends any, TParams extends any[], TReturn e
|
|
|
730
730
|
*/
|
|
731
731
|
declare function unwrapRuleParameters<TParams extends any[]>(params: ParamDecl[]): TParams;
|
|
732
732
|
|
|
733
|
-
declare function defineRegleConfig<
|
|
733
|
+
declare function defineRegleConfig<TShortcuts extends RegleShortcutDefinition<TCustomRules>, TCustomRules extends Partial<AllRulesDeclarations> = EmptyObject>({ rules, modifiers, shortcuts, }: {
|
|
734
734
|
rules?: () => TCustomRules;
|
|
735
735
|
modifiers?: RegleBehaviourOptions;
|
|
736
736
|
shortcuts?: TShortcuts;
|
package/dist/index.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
import {unref,version,isRef,toRef,computed,ref,toRaw,reactive,shallowRef,onScopeDispose,triggerRef,watch,effectScope,watchEffect}from'vue';var Ie=(r=>(r.Inline="__inline",r.Async="__async",r))(Ie||{});function Ke(e,t){return computed(()=>e.value.some(r=>r[t]))}function et(e,t){return computed(()=>e.value.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[]))}function H(e){return e.map(t=>t instanceof Function?t():unref(t))}function tt(e){return e.map(t=>t instanceof Function||isRef(t)?t:toRef(()=>t))}function rt(e){let t=e.toString();return (t.includes("=>")?t.split("=>")[0]:t).slice(t.indexOf("(")+1,t.indexOf(")")).split(",").map(l=>l.trim()).filter(l=>l.includes("=")).length+e.length}function Pe(e,...t){let{message:r,validator:n,active:a,type:l,...c}=e,d=l==="__async"||n.constructor.name==="AsyncFunction";return {...{validator(b,...S){return e.validator(b,...H(S.length?S:t))},message(b,S){return typeof e.message=="function"?e.message(b,{...S,$params:H(S.$params?.length?S.$params:t)}):e.message},active(b,S){return typeof e.active=="function"?e.active(b,{...S,$params:H(S.$params?.length?S.$params:t)}):e.active??!0},exec(b){let S=e.validator(b,...H(t)),m;return S instanceof Promise?S.then(v=>(m=v,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:!1)):(m=S,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:!1)}},...c,_validator:e.validator,_message:e.message,_active:e.active,_type:e.type,_patched:!1,_async:d,_params:tt(t)}}function we(e){if(typeof e.validator=="function"){let r=Pe(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(rt(e.validator)>1){let a=function(...l){return Pe(e,...l)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._type=e.type,a._patched=!1,a._async=n,a}else return r}throw new Error("Validator must be a function")}function q(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function nt(e){return q(e.value)}function ne(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>ne(n)))),r=="Map"&&(t=new Map([...e].map(n=>[ne(n[0]),ne(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Et(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=ne(e[n]);}return t}function Et(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 Oe(e,t,r){return e instanceof Function?e(t,r??0):e}function at(e,t){isRef(e)?e.value=t:e=t;}function lt(e,t){isRef(e)?e.value=[]:e=[],t.forEach((r,n)=>{let a=isRef(e)?e.value[n]:e[n];a={},pe(a,t[n]);});}function pe(e,t){Object.entries({...unref(e),...t}).forEach(([r,n])=>{let a=isRef(e)?e.value:e,l=isRef(t[r])?t[r]._value:t[r],c=isRef(a[r])?a[r].value:a[r];Array.isArray(a[r])?(a[r]=[],Array.isArray(l)&&l.forEach((d,x)=>{a[r][x]={},pe(a[r][x],l[x]);})):q(l)?pe(c,l):isRef(a[r])?a[r].value=l:a[r]=l;});}function z(e){return e==null?!0:e===!1?!1:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:typeof e=="string"?!String(e.trim()).length:!1}function he(e,t,r){let n,a=(...l)=>new Promise(c=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...l])).then(c);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a.doImmediately=(...l)=>new Promise(c=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...l])).then(c);},0);}),a}function xt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let l=Number(r[a]),c=Number(n[a]);if(l>c)return 1;if(c>l)return -1;if(!isNaN(l)&&isNaN(c))return 1;if(isNaN(l)&&!isNaN(c))return -1}return 0}var be=xt(version,"3.5.0")!==-1;function Ct(){return Math.floor(Math.random()*Date.now()).toString()}function Ae(){return typeof window>"u"?Ct():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Me(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),a=shallowRef(new Map),l=shallowRef(new Map);function c(p){let o=t.value.get(p);if(o)return o;{let u=ref({});return t.value.set(p,u),u}}function d(p){let o=r.value.get(p);if(o)return o;{let u=ref([]);return r.value.set(p,u),u}}function x(p,o,u){l.value.set(`${p}-${o}`,u);}function E(p,o){return l.value.get(`${p}-${o}`)}function b(p,o){p&&o!=null&&l.value.delete(`${p}-${o}`);}function S(p,o){n.value.set(p,o);}function m(p){return n.value.get(p)??!1}function v(p,o){e.value.set(p,o);}function I(p,o){let u=e.value.get(p);return u?f(o,u)?{valid:!0}:{valid:!1}:void 0}function f(p,o){let u=Object.keys(o),$=Object.keys(p);return $.length!==u.length||!$.every(j=>u.includes(j))?!1:$.every(j=>{let C=p[j],O=o[j];return !O||!C||typeof C=="function"||typeof O=="function"||typeof C=="number"||typeof C=="boolean"?!1:C._params?C._params?.every((P,M)=>{if(typeof O=="number"||typeof O=="boolean")return !0;{let y=H(O._params),w=H(C._params);return y?.[M]===w?.[M]}}):!0})}function N(p){let o=a.value.get(p);if(o)return o;{let u=ref(!1),$=ref(!0),G=ref({}),j=ref(!1);return a.value.set(p,{$pending:u,$valid:$,$metadata:G,$validating:j}),{$pending:u,$valid:$,$metadata:G,$validating:j}}}return onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),l.value.clear();}),{addRuleDeclEntry:v,setDirtyEntry:S,checkRuleDeclEntry:I,getDirtyState:m,trySetRuleStatusRef:N,getFieldsEntry:c,getCollectionsEntry:d,getArrayStatus:E,addArrayStatus:x,deleteArrayStatus:b,arrayStatusStorage:l}}function ot(e,t){return q(e.value)&&q(t.value)&&!Object.entries(t.value).some(r=>de(r))}function ut(e,t){return !!e.value&&"$each"in e.value||Array.isArray(t.value)}function st(e){return !!e.value&&q(e.value)}function de(e){return q(e)&&"_validator"in e}function ve(e){return typeof e.value!="function"}function Fe(e){return q(e)&&"$fields"in e}function je({field:e,silent:t=!1}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function ct({$dirty:e,customMessages:t,rule:r,ruleKey:n,state:a,path:l,storage:c,$debounce:d}){let x=effectScope(),E,b,S=ref(!1),{$pending:m,$valid:v,$metadata:I,$validating:f}=c.trySetRuleStatusRef(`${l}.${n}`);function N(){E=x.run(()=>{let C=computed(()=>({$invalid:!v.value,$params:w.value,...I.value})),O=computed(()=>ve(r)?typeof r.value.active=="function"?r.value.active(a.value,C.value):!!r.value.active:!0),P=computed(()=>{let U="",J=t?t[n]?.message:void 0;return J&&(typeof J=="function"?U=J(a.value,C.value):U=J),ve(r)&&(J&&!r.value._patched||(typeof r.value.message=="function"?U=r.value.message(a.value,C.value):U=r.value.message)),z(U)&&(U="Error",console.warn(`No error message defined for ${l}.${n}`)),U}),M=computed(()=>ve(r)&&r.value.type?r.value.type:n),y=computed(()=>ve(r)?r.value.validator:r.value),w=computed(()=>typeof r.value=="function"?[]:H(r.value._params??[])),K=computed(()=>`${l}.${M.value}`);return {$active:O,$message:P,$type:M,$validator:y,$params:w,$path:K}}),b=watch(E.$params,$,{deep:!0});}N();function p(){v.value=!0,e.value&&(m.value=!0);}async function o(){let C=E.$validator.value,O=C(a.value,...E.$params.value),P=!1,M=a.value;try{p();let y;if(O instanceof Promise?y=await O:y=O,a.value!==M)return !0;if(typeof y=="boolean")P=y;else {let{$valid:w,...K}=y;P=w,I.value=K;}}catch{P=!1;}finally{m.value=!1;}return P}let u=he(o,d??200);async function $(){try{f.value=!0;let C=!1;if(de(r.value)&&r.value._async)C=await u();else {let O=E.$validator.value,P=O(a.value,...E.$params.value);if(P 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(P!=null)if(typeof P=="boolean")C=P;else {let{$valid:M,...y}=P;C=M,I.value=y;}}return v.value=C,C}catch{return !1}finally{f.value=!1;}}function G(){v.value=!0,I.value={},m.value=!1,f.value=!1,N();}function j(){b(),x.stop(),x=effectScope();}return reactive({...E,$pending:m,$valid:v,$metadata:I,_haveAsync:S,$validating:f,$validate:$,$unwatch:j,$watch:N,$reset:G})}function Ee({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:l,options:c,externalErrors:d,onUnwatch:x,$isArray:E,initialState:b,shortcuts:S}){let m=effectScope(),v,I=[],f=ref(!1),N=ref(!1),p,o,u,$,G=()=>{};function j(){let T=t.value,B=l.checkRuleDeclEntry(n,T);w.value=Object.fromEntries(Object.entries(T).filter(([Y])=>Y.startsWith("$"))),y.value=Object.fromEntries(Object.entries(t.value).filter(([Y])=>!Y.startsWith("$")).map(([Y,L])=>{if(L){let fe=toRef(()=>L);return [Y,ct({$dirty:f,customMessages:r,rule:fe,ruleKey:Y,state:e,path:n,storage:l,$debounce:w.value.$debounce})]}return []}).filter(Y=>!!Y.length)),P(),C(),B?.valid!=null&&(f.value=l.getDirtyState(n),f.value&&G()),l.addRuleDeclEntry(n,T);}function C(){G=v.$debounce.value?he(M,v.$debounce.value??v.haveAnyAsyncRule?100:0):M;}function O(){y.value&&Object.entries(y.value).forEach(([T,B])=>{B.$unwatch();}),u(),f.value&&l.setDirtyEntry(n,f.value),p?.(),o?.(),m.stop(),m=effectScope(),I.forEach(T=>T.stop()),I=[],x?.(),$?.();}function P(){y.value&&Object.entries(y.value).forEach(([T,B])=>{B.$watch();}),v=m.run(()=>{let T=computed(()=>f.value),B=computed(()=>w.value.$debounce),Y=computed(()=>w.value.$lazy!=null?w.value.$lazy:unref(c.lazy)),L=computed(()=>w.value.$rewardEarly!=null?w.value.$rewardEarly:unref(c.rewardEarly)),fe=computed(()=>w.value.$clearExternalErrorsOnChange!=null?w.value.$clearExternalErrorsOnChange:unref(c.clearExternalErrorsOnChange)),gt=computed(()=>w.value.$autoDirty!=null?w.value.$autoDirty:unref(c.autoDirty)),He=computed(()=>Object.entries(y.value).some(([re,Q])=>Q.$validating)),xe=computed(()=>Re.value&&!Se.value&&f.value),qe=computed(()=>xe.value?je({field:{$dirty:f.value,$externalErrors:d?.value,$rules:y.value}}):[]),Le=computed(()=>je({field:{$dirty:f.value,$externalErrors:d?.value,$rules:y.value},silent:!0})),ze=computed(()=>!(Re.value||Se.value)),Se=computed(()=>N.value||!L.value?Object.entries(y.value).some(([re,Q])=>Q.$pending):!1),Re=computed(()=>d?.value?.length?!0:z(y.value)?!1:!L.value||L.value&&N.value?Object.entries(y.value).some(([re,Q])=>!Q.$valid):!1),Je=computed(()=>a),Ce=computed(()=>z(y.value)?!1:f.value&&!z(e.value)&&!He.value?d?.value?.length?!1:L.value?Object.entries(y.value).every(([re,Q])=>Q.$valid):!Re.value:!1),mt=computed(()=>Object.entries(y.value).some(([re,Q])=>Q._haveAsync));function $t(){S?.fields&&Object.entries(S.fields).forEach(([re,Q])=>{let Qe=effectScope();Ye[re]=Qe.run(()=>{let Xe=ref();return watchEffect(()=>{Xe.value=Q({$dirty:f.value,$externalErrors:d?.value??[],$value:e,$rules:y.value,$error:xe.value,$pending:Se.value,$invalid:Re.value,$valid:Ce.value,$errors:qe.value,$ready:ze.value,$silentErrors:Le.value,$anyDirty:T.value,$name:Je.value});}),Xe}),I.push(Qe);});}let Ye={};return $t(),watch(Ce,re=>{re&&(N.value=!1);}),{$error:xe,$pending:Se,$invalid:Re,$valid:Ce,$debounce:B,$lazy:Y,$errors:qe,$ready:ze,$silentErrors:Le,$rewardEarly:L,$autoDirty:gt,$clearExternalErrorsOnChange:fe,$anyDirty:T,$name:Je,haveAnyAsyncRule:mt,$shortcuts:Ye,$validating:He}}),p=watch(e,()=>{v.$autoDirty.value&&(f.value||(f.value=!0)),t.value instanceof Function&&j(),G(),v.$rewardEarly.value!==!0&&v.$clearExternalErrorsOnChange.value&&g();},{deep:E?!0:be?1:!0}),u=watch(f,()=>{l.setDirtyEntry(n,f.value);}),o=watch(v.$valid,T=>{v.$rewardEarly.value&&T&&(N.value=!1);}),$=watch(v.haveAnyAsyncRule,C);}function M(){Object.values(y.value).forEach(T=>{T.$validate();});}let y=ref(),w=ref();j();function K(){g(),f.value=!1,Object.entries(y.value).forEach(([T,B])=>{B.$reset();}),!v.$lazy.value&&v.$autoDirty.value&&Object.values(y.value).forEach(T=>T.$validate());}function U(T=!0){f.value||(f.value=!0,T&&G());}async function J(){try{let T=e.value;if(N.value=!0,!f.value)f.value=!0;else if(v.$autoDirty.value&&f.value&&!v.$pending.value)return {result:!v.$error.value,data:T};return z(y.value)?{result:!0,data:T}:{result:(await Promise.allSettled(Object.entries(y.value).map(([L,fe])=>fe.$validate()))).every(L=>L.status==="fulfilled"?L.value===!0:!1),data:T}}catch{return {result:!1,data:e.value}}}function s(){O(),e.value=at(e,b),K();}function i(T=!0){return f.value?e.value:null}function g(){d?.value?.length&&(d.value=[]);}!v.$lazy.value&&!f.value&&v.$autoDirty.value&&G();let{$anyDirty:h,$error:V,$errors:R,$invalid:A,$name:F,$pending:k,$ready:te,$silentErrors:ce,$valid:le,$shortcuts:D,$validating:_}=v;return reactive({$dirty:f,$error:V,$errors:R,$valid:le,$invalid:A,$pending:k,$silentErrors:ce,$anyDirty:h,$ready:te,$name:F,$externalErrors:d,$value:e,$rules:y,...D,$reset:K,$touch:U,$validate:J,$unwatch:O,$watch:P,$resetAll:s,$extractDirtyFields:i,$clearExternalErrors:g})}function ft({$id:e,path:t,index:r,options:n,storage:a,stateValue:l,customMessages:c,rules:d,externalErrors:x,initialState:E,shortcuts:b,fieldName:S}){let m=d.$key?d.$key:Ae(),v=`${t}.${String(m)}`;typeof l.value=="object"&&l.value!=null&&(l.value.$id?v=`${t}.${l.value.$id}`:Object.defineProperties(l.value,{$id:{value:m,enumerable:!1,configurable:!1,writable:!1}}));let I=$e({state:l,rulesDef:toRef(()=>d),customMessages:c,path:v,storage:a,options:n,externalErrors:toRef(x?.value??[],r),initialState:E?.[r],shortcuts:b,fieldName:S});if(I){let f=l.value?.$id;I.$id=f??String(m),a.addArrayStatus(e,I.$id,I);}return I}function Rt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:c,initialState:d,shortcuts:x,fieldName:E}){let b=effectScope(),S,m=effectScope(),v,I=[];if(!Array.isArray(e.value)&&!t.value.$each)return null;let f=ref(),N=ref(e.value),p,o=ref({}),u=a.getCollectionsEntry(n);v=m.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(i=>typeof i!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(i=>de(i)):!1)})),$(),j();function $(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(f.value=Ae(),Object.defineProperties(e.value,{$id:{value:f.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(f.value=e.value.$id)),!v.isPrimitiveArray.value&&(N.value=o.value.$value,Array.isArray(e.value)?u.value=e.value.map((s,i)=>{let g=Oe(t.value.$each,toRef(()=>s),i),h=ft({$id:f.value,path:n,rules:g??{},stateValue:toRef(()=>s),index:i,options:l,storage:a,externalErrors:toRef(c?.value??{},"$each"),initialState:d?.[i],shortcuts:x,fieldName:E});return h||null}).filter(s=>!!s):u.value=[],o.value=Ee({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:toRef(c?.value??{},"$errors"),$isArray:!0,initialState:d,shortcuts:x,fieldName:E}));}function G(){if(Array.isArray(e.value)){let s=ne(u.value);u.value=e.value.map((i,g)=>{let h=toRef(()=>i);if(i.$id&&u.value.find(V=>V.$id===i.$id)){let V=a.getArrayStatus(f.value,i.$id);return V?(V.$value=h,V):null}else {let V=Oe(t.value.$each,h,g);if(V){let R=ft({$id:f.value,path:n,rules:V,stateValue:h,index:g,options:l,storage:a,externalErrors:toRef(c?.value??{},"$each"),initialState:d?.[g],shortcuts:x,fieldName:E});return R||null}}}).filter(i=>!!i),s.filter(i=>!e.value.find(g=>i.$id===g.$id)).forEach((i,g)=>{a.deleteArrayStatus(f.value,g.toString());});}else u.value=[];}function j(){p=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?$():G();},{deep:be?1:!0,flush:"pre"}),S=b.run(()=>{let s=computed(()=>o.value.$dirty&&u.value.every(D=>D.$dirty)),i=computed(()=>o.value.$anyDirty||u.value.some(D=>D.$dirty)),g=computed(()=>o.value.$invalid||u.value.some(D=>D.$invalid)),h=computed(()=>(z(o.value.$rules)?!0:o.value.$valid)&&u.value.every(D=>D.$valid)),V=computed(()=>o.value.$error||u.value.some(D=>D.$error)),R=computed(()=>!(g.value||A.value)),A=computed(()=>o.value.$pending||u.value.some(D=>D.$pending)),F=computed(()=>({$errors:o.value.$errors,$each:u.value.map(D=>D.$errors)})),k=computed(()=>({$errors:o.value.$silentErrors,$each:u.value.map(D=>D.$silentErrors)})),te=computed(()=>E);function ce(){x?.collections&&Object.entries(x?.collections).forEach(([D,_])=>{let T=effectScope();le[D]=T.run(()=>{let B=ref();return watchEffect(()=>{B.value=_({$dirty:s.value,$error:V.value,$pending:A.value,$invalid:g.value,$valid:h.value,$errors:F.value,$ready:R.value,$silentErrors:k.value,$anyDirty:i.value,$name:te.value,$each:u.value,$field:o.value,$value:e});}),B}),I.push(T);});}let le={};return ce(),{$dirty:s,$anyDirty:i,$invalid:g,$valid:h,$error:V,$pending:A,$errors:F,$silentErrors:k,$ready:R,$name:te,$shortcuts:le}}),v.isPrimitiveArray.value&&(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`),p());}function C(){p&&p(),o.value&&o.value.$unwatch(),u.value&&u.value.forEach(s=>{"$dirty"in s&&s.$unwatch();}),b.stop(),b=effectScope(),m.stop(),m=effectScope(!0),I.forEach(s=>s.stop()),I=[];}function O(s=!0){o.value.$touch(s),u.value.forEach(i=>{i.$touch(s);});}function P(){o.value.$reset(),u.value.forEach(s=>{s.$reset();});}async function M(){let s=e.value;try{return {result:(await Promise.allSettled([o.value.$validate(),...u.value.map(h=>h.$validate())])).every(h=>h.status==="fulfilled"?h.value.result===!0:!1),data:s}}catch{return {result:!1,data:s}}}function y(){o.value.$clearExternalErrors(),u.value.forEach(s=>{s.$clearExternalErrors();});}function w(s=!0){let i=u.value.map(g=>{if(Fe(g))return g.$extractDirtyFields(s)});return s&&(i=i.filter(g=>q(g)?!z(g):!!g)),i}function K(){C(),lt(e,d),P();}let{$shortcuts:U,...J}=S;return reactive({$field:o,...J,...U,$each:u,$value:e,$validate:M,$unwatch:C,$watch:j,$touch:O,$reset:P,$resetAll:K,$extractDirtyFields:w,$clearExternalErrors:y})}function Ge({scopeRules:e,state:t,customMessages:r,path:n="",rootRules:a,storage:l,options:c,externalErrors:d,validationGroups:x,initialState:E,shortcuts:b,fieldName:S}){let m,v,I=[],f=null,N=null,p=null;function u(s=!0){$.value=null,triggerRef($);let i=Object.fromEntries(Object.entries(e.value).map(([R,A])=>{if(A){let F=toRef(t.value,R),k=toRef(()=>A),te=toRef(d?.value,R);return [R,$e({state:F,rulesDef:k,customMessages:r,path:n?`${n}.${R}`:R,storage:l,options:c,externalErrors:te,initialState:E?.[R],shortcuts:b,fieldName:R})]}return []}).filter(R=>!!R.length&&R[1]!=null)),g=Object.fromEntries(Object.entries(unref(d)??{}).filter(([R])=>!(R in e.value)).map(([R,A])=>{if(A){let F=toRef(t.value,R),k=toRef(()=>({}));return [R,$e({state:F,rulesDef:k,customMessages:r,path:n?`${n}.${R}`:R,storage:l,options:c,externalErrors:toRef(d?.value??{},R),initialState:E?.[R],shortcuts:b,fieldName:R})]}return []})),h=Object.fromEntries(Object.entries(t.value).filter(([R])=>!(R in e.value)&&!(R in(g.value??{}))).map(([R,A])=>{let F=toRef(t.value,R),k=toRef(()=>({}));return [R,$e({state:F,rulesDef:k,customMessages:r,path:n?`${n}.${R}`:R,storage:l,options:c,externalErrors:toRef(d?.value??{},R),initialState:E?.[R],shortcuts:b,fieldName:R})]})),V=Object.fromEntries(Object.entries(x?.(i)??{}).map(([R,A])=>A.length?[R,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(F=>[F,Ke(toRef(()=>A),F)])),...Object.fromEntries(["$errors","$silentErrors"].map(F=>[F,et(toRef(()=>A),F)]))}]:[]));$.value={...i,...g,...h,...V},s&&P();}let $=l.getFieldsEntry(n);u();function G(){N?.(),Object.values($.value).forEach(s=>{s.$reset();}),O();}function j(s=!0){Object.values($.value).forEach(i=>{i.$touch(s);});}async function C(){try{let s=t.value;return {result:(await Promise.allSettled(Object.values($.value).map(h=>h.$validate()))).every(h=>h.status==="fulfilled"?h.value.result===!0:!1),data:s}}catch{return {result:!1,data:t.value}}}function O(){d?.value&&(N=watch(d,()=>{M(),u();},{deep:!0}));}function P(){a&&(f=watch(a,()=>{M(),u();},{deep:!0,flush:"post"}),O()),p=watch(t,()=>{M(),u(),j();}),m=effectScope(),v=m.run(()=>{let s=computed(()=>!!Object.entries($.value).length&&Object.entries($.value).every(([D,_])=>_?.$dirty)),i=computed(()=>Object.entries($.value).some(([D,_])=>_?.$dirty)),g=computed(()=>Object.entries($.value).some(([D,_])=>_?.$invalid)),h=computed(()=>Object.entries($.value).every(([D,_])=>_?.$valid)),V=computed(()=>s.value&&!A.value&&g.value),R=computed(()=>unref(c.autoDirty)?i.value&&!(g.value||A.value):!(g.value||A.value)),A=computed(()=>Object.entries($.value).some(([D,_])=>_?.$pending)),F=computed(()=>Object.fromEntries(Object.entries($.value).map(([D,_])=>[D,_?.$errors]))),k=computed(()=>Object.fromEntries(Object.entries($.value).map(([D,_])=>[D,_?.$silentErrors]))),te=computed(()=>S);function ce(){b?.nested&&Object.entries(b.nested).forEach(([D,_])=>{let T=effectScope();le[D]=T.run(()=>{let B=ref();return watchEffect(()=>{B.value=_({$dirty:s.value,$value:t,$error:V.value,$pending:A.value,$invalid:g.value,$valid:h.value,$ready:R.value,$anyDirty:i.value,$name:te.value,$silentErrors:k.value,$errors:F.value,$fields:$.value});}),B}),I.push(T);});}let le={};return ce(),{$dirty:s,$anyDirty:i,$invalid:g,$valid:h,$error:V,$pending:A,$errors:F,$silentErrors:k,$ready:R,$name:te,$shortcuts:le}});}function M(){$.value&&Object.entries($.value).forEach(([s,i])=>{i.$unwatch();}),f?.(),N?.(),p?.(),m.stop(),m=effectScope(),I.forEach(s=>s.stop()),I=[];}function y(){Object.entries($.value).forEach(([s,i])=>{i.$clearExternalErrors();});}function w(){M(),pe(t,E??{}),u(!1),G(),P();}function K(s=!0){let i=Object.entries($.value).map(([g,h])=>[g,h.$extractDirtyFields(s)]);return s&&(i=i.filter(([g,h])=>q(h)?!z(h):Array.isArray(h)?h.length:!!h)),Object.fromEntries(i)}let{$shortcuts:U,...J}=v;return reactive({...J,...U,$fields:$,$value:t,$resetAll:w,$reset:G,$touch:j,$validate:C,$unwatch:M,$watch:P,$clearExternalErrors:y,$extractDirtyFields:K})}function $e({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:c,index:d,initialState:x,shortcuts:E,onUnwatch:b,fieldName:S}){return ut(t,e)?Rt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,index:d,externalErrors:c,initialState:x,fieldName:S,shortcuts:E}):ot(e,t)&&nt(e)?Ge({scopeRules:t,state:e,customMessages:r,path:n,storage:a,options:l,index:d,initialState:x,shortcuts:E,fieldName:S,externalErrors:c}):st(t)?Ee({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,index:d,externalErrors:c,onUnwatch:b,shortcuts:E,initialState:x,fieldName:S}):null}function Be({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:l}){let c=Me();return reactive(Ge({rootRules:r,scopeRules:r,state:n,customMessages:a?.(),storage:c,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:l,fieldName:"root"}))}function We(e,t,r){let n={autoDirty:t?.autoDirty??!0,lazy:t?.lazy??!1,rewardEarly:t?.rewardEarly??!1,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange??!0};function a(l,c,d){let x=isRef(c)?c:computed(typeof c=="function"?c:()=>c),E={...n,...d},b=isRef(l)?l:ref(l),S=ne(toRaw(b.value));return {r$:Be({scopeRules:x,state:b,options:E,initialState:S,customRules:e,shortcuts:r})}}return a}var vt=We();function Ue(){function e(t,r){return r}return e}var ke=Ue();function yt({rules:e,modifiers:t,shortcuts:r}){let n=We(e,t,r),a=Ue();return {useRegle:n,inferRules:a}}export{Ie as InternalRuleType,we as createRule,yt as defineRegleConfig,ke as inferRules,H as unwrapRuleParameters,vt as useRegle};
|
|
1
|
+
import {unref,version,isRef,toRef,computed,ref,toRaw,reactive,shallowRef,onScopeDispose,triggerRef,watch,effectScope,watchEffect}from'vue';var Ie=(r=>(r.Inline="__inline",r.Async="__async",r))(Ie||{});function Ze(e,t){return computed(()=>e.value.some(r=>r[t]))}function Ke(e,t){return computed(()=>e.value.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[]))}function H(e){return e.map(t=>t instanceof Function?t():unref(t))}function et(e){return e.map(t=>t instanceof Function||isRef(t)?t:toRef(()=>t))}function tt(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(i=>i.trim()).filter(i=>i.length>0).length:0}function Pe(e,...t){let{message:r,validator:n,active:a,type:l,...i}=e,d=l==="__async"||n.constructor.name==="AsyncFunction";return {...{validator(b,...S){return e.validator(b,...H(S.length?S:t))},message(b,S){return typeof e.message=="function"?e.message(b,{...S,$params:H(S.$params?.length?S.$params:t)}):e.message},active(b,S){return typeof e.active=="function"?e.active(b,{...S,$params:H(S.$params?.length?S.$params:t)}):e.active??!0},exec(b){let S=e.validator(b,...H(t)),g;return S instanceof Promise?S.then(v=>(g=v,typeof g=="object"&&"$valid"in g?g.$valid:typeof g=="boolean"?g:!1)):(g=S,typeof g=="object"&&"$valid"in g?g.$valid:typeof g=="boolean"?g:!1)}},...i,_validator:e.validator,_message:e.message,_active:e.active,_type:e.type,_patched:!1,_async:d,_params:et(t)}}function we(e){if(typeof e.validator=="function"){let r=Pe(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(tt(e.validator)>1){let a=function(...l){return Pe(e,...l)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._type=e.type,a._patched=!1,a._async=n,a}else return r}throw new Error("Validator must be a function")}function L(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function rt(e){return L(e.value)}function ne(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>ne(n)))),r=="Map"&&(t=new Map([...e].map(n=>[ne(n[0]),ne(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Et(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=ne(e[n]);}return t}function Et(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 Oe(e,t,r){return e instanceof Function?e(t,r??0):e}function nt(e,t){isRef(e)?e.value=t:e=t;}function at(e,t){isRef(e)?e.value=[]:e=[],t.forEach((r,n)=>{let a=isRef(e)?e.value[n]:e[n];a={},Re(a,t[n]);});}function Re(e,t){Object.entries({...unref(e),...t}).forEach(([r,n])=>{let a=isRef(e)?e.value:e,l=isRef(t[r])?t[r]._value:t[r],i=isRef(a[r])?a[r].value:a[r];Array.isArray(a[r])?(a[r]=[],Array.isArray(l)&&l.forEach((d,x)=>{a[r][x]={},Re(a[r][x],l[x]);})):L(l)?Re(i,l):isRef(a[r])?a[r].value=l:a[r]=l;});}function q(e){return e==null?!0:e===!1?!1:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:typeof e=="string"?!String(e.trim()).length:!1}function he(e,t,r){let n,a=(...l)=>new Promise(i=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...l])).then(i);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a.doImmediately=(...l)=>new Promise(i=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...l])).then(i);},0);}),a}function xt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let l=Number(r[a]),i=Number(n[a]);if(l>i)return 1;if(i>l)return -1;if(!isNaN(l)&&isNaN(i))return 1;if(isNaN(l)&&!isNaN(i))return -1}return 0}var be=xt(version,"3.5.0")!==-1;function Ct(){return Math.floor(Math.random()*Date.now()).toString()}function Ae(){return typeof window>"u"?Ct():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Me(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),a=shallowRef(new Map),l=shallowRef(new Map);function i(p){let o=t.value.get(p);if(o)return o;{let u=ref({});return t.value.set(p,u),u}}function d(p){let o=r.value.get(p);if(o)return o;{let u=ref([]);return r.value.set(p,u),u}}function x(p,o,u){l.value.set(`${p}-${o}`,u);}function E(p,o){return l.value.get(`${p}-${o}`)}function b(p,o){p&&o!=null&&l.value.delete(`${p}-${o}`);}function S(p,o){n.value.set(p,o);}function g(p){return n.value.get(p)??!1}function v(p,o){e.value.set(p,o);}function I(p,o){let u=e.value.get(p);return u?f(o,u)?{valid:!0}:{valid:!1}:void 0}function f(p,o){let u=Object.keys(o),$=Object.keys(p);return $.length!==u.length||!$.every(j=>u.includes(j))?!1:$.every(j=>{let C=p[j],O=o[j];return !O||!C||typeof C=="function"||typeof O=="function"||typeof C=="number"||typeof C=="boolean"?!1:C._params?C._params?.every((P,M)=>{if(typeof O=="number"||typeof O=="boolean")return !0;{let y=H(O._params),w=H(C._params);return y?.[M]===w?.[M]}}):!0})}function G(p){let o=a.value.get(p);if(o)return o;{let u=ref(!1),$=ref(!0),N=ref({}),j=ref(!1);return a.value.set(p,{$pending:u,$valid:$,$metadata:N,$validating:j}),{$pending:u,$valid:$,$metadata:N,$validating:j}}}return onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),l.value.clear();}),{addRuleDeclEntry:v,setDirtyEntry:S,checkRuleDeclEntry:I,getDirtyState:g,trySetRuleStatusRef:G,getFieldsEntry:i,getCollectionsEntry:d,getArrayStatus:E,addArrayStatus:x,deleteArrayStatus:b,arrayStatusStorage:l}}function lt(e,t){return L(e.value)&&L(t.value)&&!Object.entries(t.value).some(r=>pe(r))}function ot(e,t){return !!e.value&&"$each"in e.value||Array.isArray(t.value)}function ut(e){return !!e.value&&L(e.value)}function pe(e){return L(e)&&"_validator"in e}function de(e){return typeof e.value!="function"}function st(e){return L(e)&&"$fields"in e}function Fe({field:e,silent:t=!1}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function ct({$dirty:e,customMessages:t,rule:r,ruleKey:n,state:a,path:l,storage:i,$debounce:d}){let x=effectScope(),E,b,S=ref(!1),{$pending:g,$valid:v,$metadata:I,$validating:f}=i.trySetRuleStatusRef(`${l}.${n}`);function G(){E=x.run(()=>{let C=computed(()=>({$invalid:!v.value,$params:w.value,...I.value})),O=computed(()=>de(r)?typeof r.value.active=="function"?r.value.active(a.value,C.value):!!r.value.active:!0),P=computed(()=>{let U="",z=t?t[n]?.message:void 0;return z&&(typeof z=="function"?U=z(a.value,C.value):U=z),de(r)&&(z&&!r.value._patched||(typeof r.value.message=="function"?U=r.value.message(a.value,C.value):U=r.value.message)),q(U)&&(U="Error",console.warn(`No error message defined for ${l}.${n}`)),U}),M=computed(()=>de(r)&&r.value.type?r.value.type:n),y=computed(()=>de(r)?r.value.validator:r.value),w=computed(()=>typeof r.value=="function"?[]:H(r.value._params??[])),Z=computed(()=>`${l}.${M.value}`);return {$active:O,$message:P,$type:M,$validator:y,$params:w,$path:Z}}),b=watch(E.$params,$,{deep:!0});}G();function p(){v.value=!0,e.value&&(g.value=!0);}async function o(){let C=E.$validator.value,O=C(a.value,...E.$params.value),P=!1,M=a.value;try{p();let y;if(O instanceof Promise?y=await O:y=O,a.value!==M)return !0;if(typeof y=="boolean")P=y;else {let{$valid:w,...Z}=y;P=w,I.value=Z;}}catch{P=!1;}finally{g.value=!1;}return P}let u=he(o,d??200);async function $(){try{f.value=!0;let C=!1;if(pe(r.value)&&r.value._async)C=await u();else {let O=E.$validator.value,P=O(a.value,...E.$params.value);if(P 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(P!=null)if(typeof P=="boolean")C=P;else {let{$valid:M,...y}=P;C=M,I.value=y;}}return v.value=C,C}catch{return !1}finally{f.value=!1;}}function N(){v.value=!0,I.value={},g.value=!1,f.value=!1,G();}function j(){b(),x.stop(),x=effectScope();}return reactive({...E,$pending:g,$valid:v,$metadata:I,_haveAsync:S,$validating:f,$validate:$,$unwatch:j,$watch:G,$reset:N})}function Ee({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:l,options:i,externalErrors:d,onUnwatch:x,$isArray:E,initialState:b,shortcuts:S}){let g=effectScope(),v,I=[],f=ref(!1),G=ref(!1),p,o,u,$,N=()=>{};function j(){let T=t.value,B=l.checkRuleDeclEntry(n,T);w.value=Object.fromEntries(Object.entries(T).filter(([J])=>J.startsWith("$"))),y.value=Object.fromEntries(Object.entries(t.value).filter(([J])=>!J.startsWith("$")).map(([J,Y])=>{if(Y){let fe=toRef(()=>Y);return [J,ct({$dirty:f,customMessages:r,rule:fe,ruleKey:J,state:e,path:n,storage:l,$debounce:w.value.$debounce})]}return []}).filter(J=>!!J.length)),P(),C(),B?.valid!=null&&(f.value=l.getDirtyState(n),f.value&&N()),l.addRuleDeclEntry(n,T);}function C(){N=v.$debounce.value?he(M,v.$debounce.value??v.haveAnyAsyncRule?100:0):M;}function O(){y.value&&Object.entries(y.value).forEach(([T,B])=>{B.$unwatch();}),u(),f.value&&l.setDirtyEntry(n,f.value),p?.(),o?.(),g.stop(),g=effectScope(),I.forEach(T=>T.stop()),I=[],x?.(),$?.();}function P(){y.value&&Object.entries(y.value).forEach(([T,B])=>{B.$watch();}),v=g.run(()=>{let T=computed(()=>f.value),B=computed(()=>w.value.$debounce),J=computed(()=>w.value.$lazy!=null?w.value.$lazy:unref(i.lazy)),Y=computed(()=>w.value.$rewardEarly!=null?w.value.$rewardEarly:unref(i.rewardEarly)),fe=computed(()=>w.value.$clearExternalErrorsOnChange!=null?w.value.$clearExternalErrorsOnChange:unref(i.clearExternalErrorsOnChange)),mt=computed(()=>w.value.$autoDirty!=null?w.value.$autoDirty:unref(i.autoDirty)),ke=computed(()=>Object.entries(y.value).some(([K,re])=>re.$validating)),xe=computed(()=>Se.value&&!$e.value&&f.value),He=computed(()=>xe.value?Fe({field:{$dirty:f.value,$externalErrors:d?.value,$rules:y.value}}):[]),Le=computed(()=>Fe({field:{$dirty:f.value,$externalErrors:d?.value,$rules:y.value},silent:!0})),qe=computed(()=>!(Se.value||$e.value)),$e=computed(()=>G.value||!Y.value?Object.entries(y.value).some(([K,re])=>re.$pending):!1),Se=computed(()=>d?.value?.length?!0:q(y.value)?!1:!Y.value||Y.value&&G.value?Object.entries(y.value).some(([K,re])=>!re.$valid):!1),ze=computed(()=>a),Ce=computed(()=>q(y.value)?!1:f.value&&!q(e.value)&&!ke.value?d?.value?.length?!1:Object.values(y.value).every(K=>K.$valid&&K.$active):!1),gt=computed(()=>Object.entries(y.value).some(([K,re])=>re._haveAsync));function $t(){S?.fields&&Object.entries(S.fields).forEach(([K,re])=>{let Ye=effectScope();Je[K]=Ye.run(()=>{let Qe=ref();return watchEffect(()=>{Qe.value=re({$dirty:f.value,$externalErrors:d?.value??[],$value:e,$rules:y.value,$error:xe.value,$pending:$e.value,$invalid:Se.value,$valid:Ce.value,$errors:He.value,$ready:qe.value,$silentErrors:Le.value,$anyDirty:T.value,$name:ze.value});}),Qe}),I.push(Ye);});}let Je={};return $t(),watch(Ce,K=>{K&&(G.value=!1);}),{$error:xe,$pending:$e,$invalid:Se,$valid:Ce,$debounce:B,$lazy:J,$errors:He,$ready:qe,$silentErrors:Le,$rewardEarly:Y,$autoDirty:mt,$clearExternalErrorsOnChange:fe,$anyDirty:T,$name:ze,haveAnyAsyncRule:gt,$shortcuts:Je,$validating:ke}}),p=watch(e,()=>{v.$autoDirty.value&&(f.value||(f.value=!0)),t.value instanceof Function&&j(),N(),v.$rewardEarly.value!==!0&&v.$clearExternalErrorsOnChange.value&&m();},{deep:E?!0:be?1:!0}),u=watch(f,()=>{l.setDirtyEntry(n,f.value);}),o=watch(v.$valid,T=>{v.$rewardEarly.value&&T&&(G.value=!1);}),$=watch(v.haveAnyAsyncRule,C);}function M(){Object.values(y.value).forEach(T=>{T.$validate();});}let y=ref(),w=ref();j();function Z(){m(),f.value=!1,Object.entries(y.value).forEach(([T,B])=>{B.$reset();}),!v.$lazy.value&&v.$autoDirty.value&&Object.values(y.value).forEach(T=>T.$validate());}function U(T=!0){f.value||(f.value=!0,T&&N());}async function z(){try{let T=e.value;if(G.value=!0,!f.value)f.value=!0;else if(v.$autoDirty.value&&f.value&&!v.$pending.value)return {result:!v.$error.value,data:T};return q(y.value)?{result:!0,data:T}:{result:(await Promise.allSettled(Object.entries(y.value).map(([Y,fe])=>fe.$validate()))).every(Y=>Y.status==="fulfilled"?Y.value===!0:!1),data:T}}catch{return {result:!1,data:e.value}}}function s(){O(),e.value=nt(e,b),Z();}function c(T=!0){return f.value?e.value:null}function m(){d?.value?.length&&(d.value=[]);}!v.$lazy.value&&!f.value&&v.$autoDirty.value&&N();let{$anyDirty:h,$error:V,$errors:R,$invalid:A,$name:F,$pending:k,$ready:te,$silentErrors:ce,$valid:le,$shortcuts:D,$validating:_}=v;return reactive({$dirty:f,$error:V,$errors:R,$valid:le,$invalid:A,$pending:k,$silentErrors:ce,$anyDirty:h,$ready:te,$name:F,$externalErrors:d,$value:e,$rules:y,...D,$reset:Z,$touch:U,$validate:z,$unwatch:O,$watch:P,$resetAll:s,$extractDirtyFields:c,$clearExternalErrors:m})}function ft({$id:e,path:t,index:r,options:n,storage:a,stateValue:l,customMessages:i,rules:d,externalErrors:x,initialState:E,shortcuts:b,fieldName:S}){let g=d.$key?d.$key:Ae(),v=`${t}.${String(g)}`;typeof l.value=="object"&&l.value!=null&&(l.value.$id?v=`${t}.${l.value.$id}`:Object.defineProperties(l.value,{$id:{value:g,enumerable:!1,configurable:!1,writable:!1}}));let I=ge({state:l,rulesDef:toRef(()=>d),customMessages:i,path:v,storage:a,options:n,externalErrors:toRef(x?.value??[],r),initialState:E?.[r],shortcuts:b,fieldName:S});if(I){let f=l.value?.$id;I.$id=f??String(g),a.addArrayStatus(e,I.$id,I);}return I}function Rt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:i,initialState:d,shortcuts:x,fieldName:E}){let b=effectScope(),S,g=effectScope(),v,I=[];if(!Array.isArray(e.value)&&!t.value.$each)return null;let f=ref(),G=ref(e.value),p,o=ref({}),u=a.getCollectionsEntry(n);v=g.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(c=>typeof c!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(c=>pe(c)):!1)})),$(),j();function $(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(f.value=Ae(),Object.defineProperties(e.value,{$id:{value:f.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(f.value=e.value.$id)),!v.isPrimitiveArray.value&&(G.value=o.value.$value,Array.isArray(e.value)?u.value=e.value.map((s,c)=>{let m=Oe(t.value.$each,toRef(()=>s),c),h=ft({$id:f.value,path:n,rules:m??{},stateValue:toRef(()=>s),index:c,options:l,storage:a,externalErrors:toRef(i?.value??{},"$each"),initialState:d?.[c],shortcuts:x,fieldName:E});return h||null}).filter(s=>!!s):u.value=[],o.value=Ee({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:toRef(i?.value??{},"$errors"),$isArray:!0,initialState:d,shortcuts:x,fieldName:E}));}function N(){if(Array.isArray(e.value)){let s=ne(u.value);u.value=e.value.map((c,m)=>{let h=toRef(()=>c);if(c.$id&&u.value.find(V=>V.$id===c.$id)){let V=a.getArrayStatus(f.value,c.$id);return V?(V.$value=h,V):null}else {let V=Oe(t.value.$each,h,m);if(V){let R=ft({$id:f.value,path:n,rules:V,stateValue:h,index:m,options:l,storage:a,externalErrors:toRef(i?.value??{},"$each"),initialState:d?.[m],shortcuts:x,fieldName:E});return R||null}}}).filter(c=>!!c),s.filter(c=>!e.value.find(m=>c.$id===m.$id)).forEach((c,m)=>{a.deleteArrayStatus(f.value,m.toString());});}else u.value=[];}function j(){p=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?$():N();},{deep:be?1:!0,flush:"pre"}),S=b.run(()=>{let s=computed(()=>o.value.$dirty&&u.value.every(D=>D.$dirty)),c=computed(()=>o.value.$anyDirty||u.value.some(D=>D.$dirty)),m=computed(()=>o.value.$invalid||u.value.some(D=>D.$invalid)),h=computed(()=>(q(o.value.$rules)?!0:o.value.$valid)&&u.value.every(D=>D.$valid)),V=computed(()=>o.value.$error||u.value.some(D=>D.$error)),R=computed(()=>!(m.value||A.value)),A=computed(()=>o.value.$pending||u.value.some(D=>D.$pending)),F=computed(()=>({$errors:o.value.$errors,$each:u.value.map(D=>D.$errors)})),k=computed(()=>({$errors:o.value.$silentErrors,$each:u.value.map(D=>D.$silentErrors)})),te=computed(()=>E);function ce(){x?.collections&&Object.entries(x?.collections).forEach(([D,_])=>{let T=effectScope();le[D]=T.run(()=>{let B=ref();return watchEffect(()=>{B.value=_({$dirty:s.value,$error:V.value,$pending:A.value,$invalid:m.value,$valid:h.value,$errors:F.value,$ready:R.value,$silentErrors:k.value,$anyDirty:c.value,$name:te.value,$each:u.value,$field:o.value,$value:e});}),B}),I.push(T);});}let le={};return ce(),{$dirty:s,$anyDirty:c,$invalid:m,$valid:h,$error:V,$pending:A,$errors:F,$silentErrors:k,$ready:R,$name:te,$shortcuts:le}}),v.isPrimitiveArray.value&&(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`),p());}function C(){p&&p(),o.value&&o.value.$unwatch(),u.value&&u.value.forEach(s=>{"$dirty"in s&&s.$unwatch();}),b.stop(),b=effectScope(),g.stop(),g=effectScope(!0),I.forEach(s=>s.stop()),I=[];}function O(s=!0){o.value.$touch(s),u.value.forEach(c=>{c.$touch(s);});}function P(){o.value.$reset(),u.value.forEach(s=>{s.$reset();});}async function M(){let s=e.value;try{return {result:(await Promise.allSettled([o.value.$validate(),...u.value.map(h=>h.$validate())])).every(h=>h.status==="fulfilled"?h.value.result===!0:!1),data:s}}catch{return {result:!1,data:s}}}function y(){o.value.$clearExternalErrors(),u.value.forEach(s=>{s.$clearExternalErrors();});}function w(s=!0){let c=u.value.map(m=>{if(st(m))return m.$extractDirtyFields(s)});return s&&(c=c.filter(m=>L(m)?!q(m):!!m)),c}function Z(){C(),at(e,d),P();}let{$shortcuts:U,...z}=S;return reactive({$field:o,...z,...U,$each:u,$value:e,$validate:M,$unwatch:C,$watch:j,$touch:O,$reset:P,$resetAll:Z,$extractDirtyFields:w,$clearExternalErrors:y})}function Ge({scopeRules:e,state:t,customMessages:r,path:n="",rootRules:a,storage:l,options:i,externalErrors:d,validationGroups:x,initialState:E,shortcuts:b,fieldName:S}){let g,v,I=[],f=null,G=null,p=null;function u(s=!0){$.value=null,triggerRef($);let c=Object.fromEntries(Object.entries(e.value).map(([R,A])=>{if(A){let F=toRef(t.value,R),k=toRef(()=>A),te=toRef(d?.value,R);return [R,ge({state:F,rulesDef:k,customMessages:r,path:n?`${n}.${R}`:R,storage:l,options:i,externalErrors:te,initialState:E?.[R],shortcuts:b,fieldName:R})]}return []}).filter(R=>!!R.length&&R[1]!=null)),m=Object.fromEntries(Object.entries(unref(d)??{}).filter(([R])=>!(R in e.value)).map(([R,A])=>{if(A){let F=toRef(t.value,R),k=toRef(()=>({}));return [R,ge({state:F,rulesDef:k,customMessages:r,path:n?`${n}.${R}`:R,storage:l,options:i,externalErrors:toRef(d?.value??{},R),initialState:E?.[R],shortcuts:b,fieldName:R})]}return []})),h=Object.fromEntries(Object.entries(t.value).filter(([R])=>!(R in e.value)&&!(R in(m.value??{}))).map(([R,A])=>{let F=toRef(t.value,R),k=toRef(()=>({}));return [R,ge({state:F,rulesDef:k,customMessages:r,path:n?`${n}.${R}`:R,storage:l,options:i,externalErrors:toRef(d?.value??{},R),initialState:E?.[R],shortcuts:b,fieldName:R})]})),V=Object.fromEntries(Object.entries(x?.(c)??{}).map(([R,A])=>A.length?[R,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(F=>[F,Ze(toRef(()=>A),F)])),...Object.fromEntries(["$errors","$silentErrors"].map(F=>[F,Ke(toRef(()=>A),F)]))}]:[]));$.value={...c,...m,...h,...V},s&&P();}let $=l.getFieldsEntry(n);u();function N(){G?.(),Object.values($.value).forEach(s=>{s.$reset();}),O();}function j(s=!0){Object.values($.value).forEach(c=>{c.$touch(s);});}async function C(){try{let s=t.value;return {result:(await Promise.allSettled(Object.values($.value).map(h=>h.$validate()))).every(h=>h.status==="fulfilled"?h.value.result===!0:!1),data:s}}catch{return {result:!1,data:t.value}}}function O(){d?.value&&(G=watch(d,()=>{M(),u();},{deep:!0}));}function P(){a&&(f=watch(a,()=>{M(),u();},{deep:!0,flush:"post"}),O()),p=watch(t,()=>{M(),u(),j();}),g=effectScope(),v=g.run(()=>{let s=computed(()=>!!Object.entries($.value).length&&Object.entries($.value).every(([D,_])=>_?.$dirty)),c=computed(()=>Object.entries($.value).some(([D,_])=>_?.$dirty)),m=computed(()=>Object.entries($.value).some(([D,_])=>_?.$invalid)),h=computed(()=>Object.entries($.value).every(([D,_])=>_?.$valid)),V=computed(()=>s.value&&!A.value&&m.value),R=computed(()=>unref(i.autoDirty)?c.value&&!(m.value||A.value):!(m.value||A.value)),A=computed(()=>Object.entries($.value).some(([D,_])=>_?.$pending)),F=computed(()=>Object.fromEntries(Object.entries($.value).map(([D,_])=>[D,_?.$errors]))),k=computed(()=>Object.fromEntries(Object.entries($.value).map(([D,_])=>[D,_?.$silentErrors]))),te=computed(()=>S);function ce(){b?.nested&&Object.entries(b.nested).forEach(([D,_])=>{let T=effectScope();le[D]=T.run(()=>{let B=ref();return watchEffect(()=>{B.value=_({$dirty:s.value,$value:t,$error:V.value,$pending:A.value,$invalid:m.value,$valid:h.value,$ready:R.value,$anyDirty:c.value,$name:te.value,$silentErrors:k.value,$errors:F.value,$fields:$.value});}),B}),I.push(T);});}let le={};return ce(),{$dirty:s,$anyDirty:c,$invalid:m,$valid:h,$error:V,$pending:A,$errors:F,$silentErrors:k,$ready:R,$name:te,$shortcuts:le}});}function M(){$.value&&Object.entries($.value).forEach(([s,c])=>{c.$unwatch();}),f?.(),G?.(),p?.(),g.stop(),g=effectScope(),I.forEach(s=>s.stop()),I=[];}function y(){Object.entries($.value).forEach(([s,c])=>{c.$clearExternalErrors();});}function w(){M(),Re(t,E??{}),u(!1),N(),P();}function Z(s=!0){let c=Object.entries($.value).map(([m,h])=>[m,h.$extractDirtyFields(s)]);return s&&(c=c.filter(([m,h])=>L(h)?!q(h):Array.isArray(h)?h.length:!!h)),Object.fromEntries(c)}let{$shortcuts:U,...z}=v;return reactive({...z,...U,$fields:$,$value:t,$resetAll:w,$reset:N,$touch:j,$validate:C,$unwatch:M,$watch:P,$clearExternalErrors:y,$extractDirtyFields:Z})}function ge({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:i,index:d,initialState:x,shortcuts:E,onUnwatch:b,fieldName:S}){return ot(t,e)?Rt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,index:d,externalErrors:i,initialState:x,fieldName:S,shortcuts:E}):lt(e,t)&&rt(e)?Ge({scopeRules:t,state:e,customMessages:r,path:n,storage:a,options:l,index:d,initialState:x,shortcuts:E,fieldName:S,externalErrors:i}):ut(t)?Ee({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,index:d,externalErrors:i,onUnwatch:b,shortcuts:E,initialState:x,fieldName:S}):null}function Ne({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:l}){let i=Me();return reactive(Ge({rootRules:r,scopeRules:r,state:n,customMessages:a?.(),storage:i,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:l,fieldName:"root"}))}function Be(e,t,r){let n={autoDirty:t?.autoDirty??!0,lazy:t?.lazy??!1,rewardEarly:t?.rewardEarly??!1,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange??!0};function a(l,i,d){let x=isRef(i)?i:computed(typeof i=="function"?i:()=>i),E={...n,...d},b=isRef(l)?l:ref(l),S=ne(toRaw(b.value));return {r$:Ne({scopeRules:x,state:b,options:E,initialState:S,customRules:e,shortcuts:r})}}return a}var vt=Be();function We(){function e(t,r){return r}return e}var Ue=We();function yt({rules:e,modifiers:t,shortcuts:r}){let n=Be(e,t,r),a=We();return {useRegle:n,inferRules:a}}
|
|
2
|
+
export{Ie as InternalRuleType,we as createRule,yt as defineRegleConfig,Ue as inferRules,H as unwrapRuleParameters,vt as useRegle};
|