@regle/core 0.4.1 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2 -2
- package/dist/index.d.cts +12 -5
- package/dist/index.d.ts +12 -5
- package/dist/index.js +2 -2
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var vue=require('vue');var xe=(t=>(t.Inline="__inline",t.Async="__async",t))(xe||{});function Le(e,r){return e.some(t=>t[r])}function qe(e,r){return e.reduce((t,n)=>{let a=n[r]||[];return t.concat(a)},[])}function k(e){return e.map(r=>r instanceof Function?r():vue.unref(r))}function ze(e){return e.map(r=>r instanceof Function||vue.isRef(r)?r:vue.toRef(()=>r))}function Je(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(m=>m.trim()).filter(m=>m.length>0).length:0}function De(e,...r){let{validator:t,type:n}=e,a=n==="__async"||t.constructor.name==="AsyncFunction";return {...{validator(R,...g){return e.validator(R,...k(g.length?g:r))},message(R){return typeof e.message=="function"?e.message({...R,$params:k(R?.$params?.length?R.$params:r)}):e.message},active(R){return typeof e.active=="function"?e.active({...R,$params:k(R.$params?.length?R.$params:r)}):e.active??!0},tooltip(R){return typeof e.tooltip=="function"?e.tooltip({...R,$params:k(R.$params?.length?R.$params:r)}):e.tooltip??[]},exec(R){let g=e.validator(R,...k(r)),h;return g instanceof Promise?g.then(w=>(h=w,typeof h=="object"&&"$valid"in h?h.$valid:typeof h=="boolean"?h:!1)):(h=g,typeof h=="object"&&"$valid"in h?h.$valid:typeof h=="boolean"?h:!1)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:a,_params:ze(r)}}function Ce(e){if(typeof e.validator=="function"){let t=De(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(Je(e.validator)>1){let a=function(...o){return De(e,...o)};return a.validator=t.validator,a.message=t.message,a.active=t.active,a.tooltip=t.tooltip,a.type=t.type,a.exec=t.exec,a._validator=t.validator,a._message=t.message,a._active=t.active,a._tooltip=t.tooltip,a._type=e.type,a._message_pacthed=!1,a._tooltip_pacthed=!1,a._async=n,a}else return t}throw new Error("Validator must be a function")}function J(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ye(e){return J(e.value)}function te(e){let r=e,t={}.toString.call(e).slice(8,-1);if(t=="Set"&&(r=new Set([...e].map(n=>te(n)))),t=="Map"&&(r=new Map([...e].map(n=>[te(n[0]),te(n[1])]))),t=="Date"&&(r=new Date(e.getTime())),t=="RegExp"&&(r=RegExp(e.source,ht(e))),t=="Array"||t=="Object"){r=Array.isArray(e)?[]:{};for(let n in e)r[n]=te(e[n]);}return r}function ht(e){if(typeof e.source.flags=="string")return e.source.flags;{let r=[];return e.global&&r.push("g"),e.ignoreCase&&r.push("i"),e.multiline&&r.push("m"),e.sticky&&r.push("y"),e.unicode&&r.push("u"),r.join("")}}function Ie(e,r,t){return e instanceof Function?e(r,t??0):e}function Qe(e,r){vue.isRef(e)?e.value=r:e=r;}function Xe(e,r){vue.isRef(e)?e.value=[]:e=[],r.forEach((t,n)=>{let a=vue.isRef(e)?e.value[n]:e[n];a={},ie(a,r[n]);});}function ie(e,r){Object.entries({...vue.unref(e),...r}).forEach(([t,n])=>{let a=vue.isRef(e)?e.value:e,o=vue.isRef(r[t])?r[t]._value:r[t],m=vue.isRef(a[t])?a[t].value:a[t];Array.isArray(a[t])?(a[t]=[],Array.isArray(o)&&o.forEach((R,g)=>{a[t][g]={},ie(a[t][g],o[g]);})):J(o)?ie(m,o):vue.isRef(a[t])?a[t].value=o:a[t]=o;});}function ge(e,r,t){let n,a=(...o)=>new Promise(m=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(m);},r);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a}function Tt(e,r){let t=String(e).split("."),n=String(r).split(".");for(let a=0;a<Math.min(t.length,n.length);a++){let o=Number(t[a]),m=Number(n[a]);if(o>m)return 1;if(m>o)return -1;if(!isNaN(o)&&isNaN(m))return 1;if(isNaN(o)&&!isNaN(m))return -1}return 0}var $e=Tt(vue.version,"3.5.0")!==-1;function Et(){return Math.floor(Math.random()*Date.now()).toString()}function Se(){return typeof window>"u"?Et():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Pe(){let e=vue.shallowRef(new Map),r=vue.shallowRef(new Map),t=vue.shallowRef(new Map),n=vue.shallowRef(new Map),a=vue.shallowRef(new Map),o=vue.shallowRef(new Map);function m(s){let u=r.value.get(s);if(u)return u;{let f=vue.ref({});return r.value.set(s,f),f}}function R(s){let u=t.value.get(s);if(u)return u;{let f=vue.ref([]);return t.value.set(s,f),f}}function g(s,u,f){o.value.set(`${s}-${u}`,f);}function h(s,u){return o.value.get(`${s}-${u}`)}function w(s,u){s&&u!=null&&o.value.delete(`${s}-${u}`);}function G(s,u){n.value.set(s,u);}function C(s){return n.value.get(s)??!1}function p(s,u){e.value.set(s,u);}function x(s,u){let f=e.value.get(s);return f?d(u,f)?{valid:!0}:{valid:!1}:void 0}function d(s,u){let f=Object.keys(u),j=Object.keys(s);return j.length!==f.length||!j.every(O=>f.includes(O))?!1:j.every(O=>{let T=s[O],A=u[O];return !A||!T||typeof T=="function"||typeof A=="function"||typeof T=="number"||typeof T=="boolean"?!1:T._params?T._params?.every((I,B)=>{if(typeof A=="number"||typeof A=="boolean")return !0;{let v=k(A._params),P=k(T._params);return v?.[B]===P?.[B]}}):!0})}function M(s){let u=a.value.get(s);if(u)return u;{let f=vue.ref(!1),j=vue.ref(!0),_=vue.ref({}),O=vue.ref(!1);return a.value.set(s,{$pending:f,$valid:j,$metadata:_,$validating:O}),{$pending:f,$valid:j,$metadata:_,$validating:O}}}return vue.onScopeDispose(()=>{e.value.clear(),r.value.clear(),t.value.clear(),n.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:p,setDirtyEntry:G,checkRuleDeclEntry:x,getDirtyState:C,trySetRuleStatusRef:M,getFieldsEntry:m,getCollectionsEntry:R,getArrayStatus:h,addArrayStatus:g,deleteArrayStatus:w,arrayStatusStorage:o}}function z(e){return e==null?!0:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function Ze(e,r){return J(e.value)&&J(r.value)&&!Object.entries(r.value).some(t=>ce(t))}function Ke(e,r){return !!e.value&&"$each"in e.value||Array.isArray(r.value)}function et(e){return !!e.value&&J(e.value)}function ce(e){return J(e)&&"_validator"in e}function fe(e){return typeof e.value!="function"}function tt(e){return J(e)&&"$fields"in e}function Oe({field:e,silent:r=!1}){return Object.entries(e.$rules??{}).map(([t,n])=>r||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(t=>!!t).reduce((t,n)=>typeof n=="string"?t?.concat([n]):t?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function rt({field:e}){return Object.entries(e.$rules??{}).map(([r,t])=>t.$tooltip).filter(r=>!!r).reduce((r,t)=>typeof t=="string"?r?.concat([t]):r?.concat(t),[])}function at({$dirty:e,customMessages:r,rule:t,ruleKey:n,state:a,path:o,storage:m,$debounce:R}){let g=vue.effectScope(),h,w,G=vue.ref(!1),{$pending:C,$valid:p,$metadata:x,$validating:d}=m.trySetRuleStatusRef(`${o}.${n}`);function M(){h=g.run(()=>{let T=vue.computed(()=>({$value:a.value,$invalid:!p.value,$pending:C.value,$dirty:e.value,$params:E.value,...x.value})),A=vue.computed(()=>fe(t)?typeof t.value.active=="function"?t.value.active(T.value):!!t.value.active:!0);function I(l){let c="",$=r?r[n]?.[l]:void 0;if($&&(typeof $=="function"?c=$(T.value):c=$),fe(t)){let i=`_${l}_patched`;$&&!t.value[i]||(typeof t.value[l]=="function"?c=t.value[l](T.value):c=t.value[l]??"");}return c}let B=vue.computed(()=>{let l=I("message");return z(l)&&(l="This field is not valid"),l}),v=vue.computed(()=>I("tooltip")),P=vue.computed(()=>fe(t)&&t.value.type?t.value.type:n),Q=vue.computed(()=>fe(t)?t.value.validator:t.value),E=vue.computed(()=>typeof t.value=="function"?[]:k(t.value._params??[])),D=vue.computed(()=>`${o}.${P.value}`);return {$active:A,$message:B,$type:P,$validator:Q,$params:E,$path:D,$tooltip:v}}),w=vue.watch(h.$params,j);}M();function s(){p.value=!0,e.value&&(C.value=!0);}async function u(){let T=h.$validator.value,A=T(a.value,...h.$params.value),I=!1,B=a.value;try{s();let v;if(A instanceof Promise?v=await A:v=A,a.value!==B)return !0;if(typeof v=="boolean")I=v;else {let{$valid:P,...Q}=v;I=P,x.value=Q;}}catch{I=!1;}finally{C.value=!1;}return I}let f=ge(u,R??200);async function j(){try{d.value=!0;let T=!1;if(ce(t.value)&&t.value._async)T=await f();else {let A=h.$validator.value,I=A(a.value,...h.$params.value);if(I 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(I!=null)if(typeof I=="boolean")T=I;else {let{$valid:B,...v}=I;T=B,x.value=v;}}return p.value=T,T}catch{return !1}finally{d.value=!1;}}function _(){p.value=!0,x.value={},C.value=!1,d.value=!1,M();}function O(){w(),g.stop(),g=vue.effectScope();}return vue.reactive({...h,$pending:C,$valid:p,$metadata:x,$haveAsync:G,$validating:d,$validate:j,$unwatch:O,$watch:M,$reset:_})}function be({state:e,rulesDef:r,customMessages:t,path:n,fieldName:a,storage:o,options:m,externalErrors:R,onUnwatch:g,$isArray:h,initialState:w,shortcuts:G}){let C=vue.effectScope(),p,x=[],d=vue.ref(!1),M=vue.ref(!1),s,u,f,j,_=()=>{};function O(){let S=r.value,F=o.checkRuleDeclEntry(n,S);P.value=Object.fromEntries(Object.entries(S).filter(([W])=>W.startsWith("$"))),v.value=Object.fromEntries(Object.entries(r.value).filter(([W])=>!W.startsWith("$")).map(([W,U])=>{if(U){let X=vue.toRef(()=>U);return [W,at({$dirty:d,customMessages:t,rule:X,ruleKey:W,state:e,path:n,storage:o,$debounce:P.value.$debounce})]}return []}).filter(W=>!!W.length)),I(),T(),F?.valid!=null&&(d.value=o.getDirtyState(n),d.value&&_()),o.addRuleDeclEntry(n,S);}function T(){_=p.$debounce.value?ge(B,p.$debounce.value??p.$haveAnyAsyncRule?100:0):B;}function A(){v.value&&Object.entries(v.value).forEach(([S,F])=>{F.$unwatch();}),f(),d.value&&o.setDirtyEntry(n,d.value),s?.(),u?.(),C.stop(),C=vue.effectScope(),x.forEach(S=>S.stop()),x=[],g?.(),j?.();}function I(){v.value&&Object.entries(v.value).forEach(([S,F])=>{F.$watch();}),p=C.run(()=>{let S=vue.computed(()=>d.value),F=vue.computed(()=>P.value.$debounce),W=vue.computed(()=>P.value.$lazy!=null?P.value.$lazy:vue.unref(m.lazy)),U=vue.computed(()=>V.value===!0?!1:P.value.$rewardEarly!=null?P.value.$rewardEarly:vue.unref(m.rewardEarly)),X=vue.computed(()=>P.value.$clearExternalErrorsOnChange!=null?P.value.$clearExternalErrorsOnChange:vue.unref(m.clearExternalErrorsOnChange)),V=vue.computed(()=>P.value.$autoDirty!=null?P.value.$autoDirty:vue.unref(m.autoDirty)),y=vue.computed(()=>Object.entries(v.value).some(([Z,K])=>K.$validating)),H=vue.computed(()=>ve.value&&!ye.value&&d.value),ee=vue.computed(()=>H.value?Oe({field:{$dirty:d.value,$externalErrors:R?.value,$rules:v.value}}):[]),ue=vue.computed(()=>rt({field:{$rules:v.value}})),Ne=vue.computed(()=>Oe({field:{$dirty:d.value,$externalErrors:R?.value,$rules:v.value},silent:!0})),We=vue.computed(()=>!(ve.value||ye.value)),ye=vue.computed(()=>M.value||!U.value?Object.entries(v.value).some(([Z,K])=>K.$pending):!1),ve=vue.computed(()=>R?.value?.length?!0:z(v.value)?!1:!U.value||U.value&&M.value?Object.entries(v.value).some(([Z,K])=>!K.$valid):!1),Ue=vue.computed(()=>a),Ee=vue.computed(()=>R?.value?.length||z(v.value)?!1:d.value&&!z(e.value)&&!y.value?Object.values(v.value).every(Z=>Z.$valid&&Z.$active):!1),mt=vue.computed(()=>Object.entries(v.value).some(([Z,K])=>K.$haveAsync));function yt(){G?.fields&&Object.entries(G.fields).forEach(([Z,K])=>{let He=vue.effectScope();Be[Z]=He.run(()=>{let ke=vue.ref();return vue.watchEffect(()=>{ke.value=K(vue.reactive({$dirty:d,$externalErrors:R?.value??[],$value:e,$rules:v,$error:H,$pending:ye,$invalid:ve,$valid:Ee,$errors:ee,$ready:We,$silentErrors:Ne,$anyDirty:S,$tooltips:ue,$name:Ue}));}),ke}),x.push(He);});}let Be={};return yt(),vue.watch(Ee,Z=>{Z&&(M.value=!1);}),{$error:H,$pending:ye,$invalid:ve,$valid:Ee,$debounce:F,$lazy:W,$errors:ee,$ready:We,$silentErrors:Ne,$rewardEarly:U,$autoDirty:V,$clearExternalErrorsOnChange:X,$anyDirty:S,$name:Ue,$haveAnyAsyncRule:mt,$shortcuts:Be,$validating:y,$tooltips:ue}}),s=vue.watch(e,()=>{p.$autoDirty.value&&(d.value||(d.value=!0)),r.value instanceof Function&&O(),(p.$autoDirty.value||p.$rewardEarly.value&&p.$error.value)&&_(),p.$rewardEarly.value!==!0&&p.$clearExternalErrorsOnChange.value&&$();},{deep:h?!0:$e?1:!0}),f=vue.watch(d,()=>{o.setDirtyEntry(n,d.value);}),u=vue.watch(p.$valid,S=>{p.$rewardEarly.value&&S&&(M.value=!1);}),j=vue.watch(p.$haveAnyAsyncRule,T);}function B(){Object.values(v.value).forEach(S=>{S.$validate();});}let v=vue.ref(),P=vue.ref();O();function Q(){$(),d.value=!1,o.setDirtyEntry(n,!1),Object.entries(v.value).forEach(([S,F])=>{F.$reset();}),!p.$lazy.value&&p.$autoDirty.value&&Object.values(v.value).forEach(S=>S.$validate());}function E(S=!0,F=!1){d.value||(d.value=!0),F&&S?(p.$autoDirty.value||p.$rewardEarly.value&&p.$error.value)&&_():S&&_();}async function D(){try{let S=e.value;if(M.value=!0,!d.value)d.value=!0;else if(p.$autoDirty.value&&d.value&&!p.$pending.value)return {result:!p.$error.value,data:S};return z(v.value)?{result:!0,data:S}:{result:(await Promise.allSettled(Object.entries(v.value).map(([U,X])=>X.$validate()))).every(U=>U.status==="fulfilled"?U.value===!0:!1),data:S}}catch{return {result:!1,data:e.value}}}function l(){A(),e.value=Qe(e,w),Q();}function c(S=!0){return d.value?e.value:S?{_null:!0}:null}function $(){R?.value?.length&&(R.value=[]);}!p.$lazy.value&&!d.value&&p.$autoDirty.value&&_();let{$shortcuts:i,$validating:b,...q}=p;return vue.reactive({$dirty:d,...q,$externalErrors:R,$value:e,$rules:v,...i,$reset:Q,$touch:E,$validate:D,$unwatch:A,$watch:I,$resetAll:l,$extractDirtyFields:c,$clearExternalErrors:$})}function Ae({$id:e,path:r,index:t,options:n,storage:a,stateValue:o,customMessages:m,rules:R,externalErrors:g,initialState:h,shortcuts:w,fieldName:G}){let C=R.$key?R.$key:Se(),p=`${r}.${String(C)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?p=`${r}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:C,enumerable:!1,configurable:!1,writable:!1}}));let x=de({state:o,rulesDef:vue.toRef(()=>R),customMessages:m,path:p,storage:a,options:n,externalErrors:vue.toRef(g?.value??[],t),initialState:h?.[t],shortcuts:w,fieldName:G});if(x){let d=o.value?.$id;x.$id=d??String(C),a.addArrayStatus(e,x.$id,x);}return x}function ut({state:e,rulesDef:r,customMessages:t,path:n,storage:a,options:o,externalErrors:m,initialState:R,shortcuts:g,fieldName:h}){let w=vue.effectScope(),G,C=vue.effectScope(),p,x=[];if(!Array.isArray(e.value)&&!r.value.$each)return null;let d=vue.ref(),M=vue.ref(e.value),s,u=vue.ref({}),f=a.getCollectionsEntry(n);p=C.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(c=>typeof c!="object"):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(c=>ce(c)):!1)})),j(),O();function j(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(d.value=Se(),Object.defineProperties(e.value,{$id:{value:d.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(d.value=e.value.$id)),!p.isPrimitiveArray.value&&(M.value=u.value.$value,Array.isArray(e.value)?f.value=e.value.map((l,c)=>{let $=Ie(r.value.$each,vue.toRef(()=>l),c),i=Ae({$id:d.value,path:n,customMessages:t,rules:$??{},stateValue:vue.toRef(()=>l),index:c,options:o,storage:a,externalErrors:vue.toRef(m?.value??{},"$each"),initialState:R?.[c],shortcuts:g,fieldName:h});return i||null}).filter(l=>!!l):f.value=[],u.value=be({state:e,rulesDef:r,customMessages:t,path:n,storage:a,options:o,externalErrors:vue.toRef(m?.value??{},"$self"),$isArray:!0,initialState:R,shortcuts:g,fieldName:h}));}function _(){if(Array.isArray(e.value)){let l=te(f.value);f.value=e.value.map((c,$)=>{let i=vue.toRef(()=>c);if(c.$id&&f.value.find(b=>b.$id===c.$id)){let b=a.getArrayStatus(d.value,c.$id);return b?(b.$value=i,b):null}else {let b=Ie(r.value.$each,i,$);if(b){let q=Ae({$id:d.value,path:n,customMessages:t,rules:b,stateValue:i,index:$,options:o,storage:a,externalErrors:vue.toRef(m?.value??{},"$each"),initialState:R?.[$],shortcuts:g,fieldName:h});return q||null}}}).filter(c=>!!c),l.filter(c=>!e.value.find($=>c.$id===$.$id)).forEach((c,$)=>{a.deleteArrayStatus(d.value,$.toString());});}else f.value=[];}function O(){s=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?j():_();},{deep:$e?1:!0,flush:"pre"}),G=w.run(()=>{let l=vue.computed(()=>u.value.$dirty&&f.value.every(y=>y.$dirty)),c=vue.computed(()=>u.value.$anyDirty||f.value.some(y=>y.$dirty)),$=vue.computed(()=>u.value.$invalid||f.value.some(y=>y.$invalid)),i=vue.computed(()=>(z(u.value.$rules)?!0:u.value.$valid)&&f.value.every(y=>y.$valid)),b=vue.computed(()=>u.value.$error||f.value.some(y=>y.$error)),q=vue.computed(()=>!($.value||S.value)),S=vue.computed(()=>u.value.$pending||f.value.some(y=>y.$pending)),F=vue.computed(()=>({$self:u.value.$errors,$each:f.value.map(y=>y.$errors)})),W=vue.computed(()=>({$self:u.value.$silentErrors,$each:f.value.map(y=>y.$silentErrors)})),U=vue.computed(()=>h);function X(){g?.collections&&Object.entries(g?.collections).forEach(([y,H])=>{let ee=vue.effectScope();V[y]=ee.run(()=>{let ue=vue.ref();return vue.watchEffect(()=>{ue.value=H(vue.reactive({$dirty:l,$error:b,$pending:S,$invalid:$,$valid:i,$errors:F,$ready:q,$silentErrors:W,$anyDirty:c,$name:U,$each:f,$field:u,$value:e}));}),ue}),x.push(ee);});}let V={};return X(),{$dirty:l,$anyDirty:c,$invalid:$,$valid:i,$error:b,$pending:S,$errors:F,$silentErrors:W,$ready:q,$name:U,$shortcuts:V}}),p.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`),s());}function T(){s&&s(),u.value&&u.value.$unwatch(),f.value&&f.value.forEach(l=>{"$dirty"in l&&l.$unwatch();}),w.stop(),w=vue.effectScope(),C.stop(),C=vue.effectScope(!0),x.forEach(l=>l.stop()),x=[];}function A(l=!0,c=!1){u.value.$touch(l,c),f.value.forEach($=>{$.$touch(l,c);});}function I(){u.value.$reset(),f.value.forEach(l=>{l.$reset();});}async function B(){let l=e.value;try{return {result:(await Promise.allSettled([u.value.$validate(),...f.value.map(i=>i.$validate())])).every(i=>i.status==="fulfilled"?i.value.result===!0:!1),data:l}}catch{return {result:!1,data:l}}}function v(){u.value.$clearExternalErrors(),f.value.forEach(l=>{l.$clearExternalErrors();});}function P(l=!0){let c=f.value.map($=>{if(tt($))return $.$extractDirtyFields(l)});return l&&c.every($=>z($))&&(c=[]),c}function Q(){T(),Xe(e,R),I();}let{$shortcuts:E,...D}=G;return vue.reactive({$field:u,...D,...E,$each:f,$value:e,$validate:B,$unwatch:T,$watch:O,$touch:A,$reset:I,$resetAll:Q,$extractDirtyFields:P,$clearExternalErrors:v})}function Me({rulesDef:e,state:r,path:t="",rootRules:n,externalErrors:a,validationGroups:o,initialState:m,fieldName:R,...g}){let h=vue.effectScope(),w,G=[],C=null,p=null,x=null;async function M(E=!0){let D=Object.entries(e.value),l=Object.fromEntries(D.filter(([i,b])=>!!b).map(([i,b])=>{if(b){let q=vue.toRef(r.value,i),S=vue.toRef(()=>b),F=vue.toRef(a?.value??{},i);return [i,de({state:q,rulesDef:S,path:t?`${t}.${i}`:i,externalErrors:F,initialState:m?.[i],fieldName:i,...g})]}return []})),c=Object.fromEntries(Object.entries(vue.unref(a)??{}).filter(([i,b])=>!(i in e.value)&&!!b).map(([i])=>{let b=vue.toRef(r.value,i);return [i,de({state:b,rulesDef:vue.computed(()=>({})),path:t?`${t}.${i}`:i,externalErrors:vue.toRef(a?.value??{},i),initialState:m?.[i],fieldName:i,...g})]})),$=Object.fromEntries(Object.entries(r.value).filter(([i])=>!(i in e.value)&&!(i in(c.value??{}))).map(([i])=>{let b=vue.toRef(r.value,i);return [i,de({state:b,rulesDef:vue.computed(()=>({})),path:t?`${t}.${i}`:i,externalErrors:vue.toRef(a?.value??{},i),initialState:m?.[i],fieldName:i,...g})]}));s.value={...l,...c,...$},E&&_();}let s=g.storage.getFieldsEntry(t);M();function u(){p?.(),Object.values(s.value).forEach(E=>{E.$reset();}),j();}function f(E=!0,D=!1){Object.values(s.value).forEach(l=>{l.$touch(E,D);});}function j(){a?.value&&(p=vue.watch(a,()=>{O(),M();},{deep:!0}));}function _(){n&&(C=vue.watch(n,()=>{O(),M();},{deep:!0,flush:"post"}),j()),x=vue.watch(r,()=>{O(),M(),f(!0,!0);},{flush:"sync"}),w=h.run(()=>{let E=vue.computed(()=>!!Object.entries(s.value).length&&Object.entries(s.value).every(([V,y])=>y?.$dirty)),D=vue.computed(()=>Object.entries(s.value).some(([V,y])=>y?.$dirty)),l=vue.computed(()=>Object.entries(s.value).some(([V,y])=>y?.$invalid)),c=vue.computed(()=>Object.entries(s.value).every(([V,y])=>y?.$valid)),$=vue.computed(()=>D.value&&!b.value&&l.value),i=vue.computed(()=>vue.unref(g.options.autoDirty)?D.value&&!(l.value||b.value):!(l.value||b.value)),b=vue.computed(()=>Object.entries(s.value).some(([V,y])=>y?.$pending)),q=vue.computed(()=>Object.fromEntries(Object.entries(s.value).map(([V,y])=>[V,y?.$errors]))),S=vue.computed(()=>Object.fromEntries(Object.entries(s.value).map(([V,y])=>[V,y?.$silentErrors]))),F=vue.computed(()=>R);function W(){g.shortcuts?.nested&&Object.entries(g.shortcuts.nested).forEach(([V,y])=>{let H=vue.effectScope();X[V]=H.run(()=>{let ee=vue.ref();return vue.watchEffect(()=>{ee.value=y(vue.reactive({$dirty:E,$value:r,$error:$,$pending:b,$invalid:l,$valid:c,$ready:i,$anyDirty:D,$name:F,$silentErrors:S,$errors:q,$fields:s}));}),ee}),G.push(H);});}let U=vue.computed(()=>o?Object.fromEntries(Object.entries(o?.(s.value)??{}).map(([V,y])=>y.length?[V,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(H=>[H,Le(y,H)])),...Object.fromEntries(["$errors","$silentErrors"].map(H=>[H,qe(y,H)]))}]:[])):{}),X={};return W(),{$dirty:E,$anyDirty:D,$invalid:l,$valid:c,$error:$,$pending:b,$errors:q,$silentErrors:S,$ready:i,$name:F,$shortcuts:X,$groups:U}});}function O(){C?.(),p?.(),x?.(),G.forEach(E=>E.stop()),G=[],s.value&&Object.entries(s.value).forEach(([E,D])=>{D.$unwatch();});}function T(){Object.entries(s.value).forEach(([E,D])=>{D.$clearExternalErrors();});}async function A(){O(),ie(r,m??{}),u(),M();}function I(E){return E.filter(([D,l])=>J(l)?!(l&&typeof l=="object"&&"_null"in l)&&!z(l):Array.isArray(l)?l.length:!0)}function B(E=!0){let D=Object.entries(s.value).map(([l,c])=>[l,c.$extractDirtyFields(E)]);return E&&(D=I(D)),Object.fromEntries(D)}async function v(){try{let E=r.value;return {result:(await Promise.allSettled(Object.values(s.value).map(c=>c.$validate()))).every(c=>c.status==="fulfilled"?c.value.result===!0:!1),data:E}}catch{return {result:!1,data:r.value}}}let{$shortcuts:P,...Q}=w;return vue.reactive({...Q,...P,$fields:s,$value:r,$resetAll:A,$reset:u,$touch:f,$validate:v,$unwatch:O,$watch:_,$clearExternalErrors:T,$extractDirtyFields:B})}function de({rulesDef:e,externalErrors:r,...t}){return Ke(e,t.state)?ut({rulesDef:e,externalErrors:r,...t}):Ze(t.state,e)&&Ye(t.state)?Me({rulesDef:e,externalErrors:r,...t}):et(e)?be({rulesDef:e,externalErrors:r,...t}):null}function je({initialState:e,options:r,scopeRules:t,state:n,customRules:a,shortcuts:o}){let m=Pe();return vue.reactive(Me({rootRules:t,rulesDef:t,state:n,customMessages:a?.(),storage:m,options:r,externalErrors:r.externalErrors,validationGroups:r.validationGroups,initialState:e,shortcuts:o,fieldName:"root",path:""}))}function _e(e,r,t){let n={autoDirty:r?.autoDirty??!0,lazy:r?.lazy??!1,rewardEarly:r?.rewardEarly??!1,clearExternalErrorsOnChange:r?.clearExternalErrorsOnChange??!0};function a(o,m,R){let g=vue.isRef(m)?m:vue.computed(typeof m=="function"?m:()=>m),h={...n,...R},w=vue.isRef(o)?o:vue.ref(o),G=te(vue.toRaw(w.value));return {r$:je({scopeRules:g,state:w,options:h,initialState:G,customRules:e,shortcuts:t})}}return a}var pt=_e();function Ve(){function e(r,t){return t}return e}var Ge=Ve();function dt({rules:e,modifiers:r,shortcuts:t}){let n=_e(e,r,t),a=Ve();return {useRegle:n,inferRules:a}}
|
|
2
|
-
exports.InternalRuleType=
|
|
1
|
+
'use strict';var vue=require('vue');var Ce=(t=>(t.Inline="__inline",t.Async="__async",t))(Ce||{});function Xe(e,r){return e.some(t=>t[r])}function Ze(e,r){return e.reduce((t,n)=>{let a=n[r]||[];return t.concat(a)},[])}function B(e){return e.map(r=>r instanceof Function?r():vue.unref(r))}function Ke(e){return e.map(r=>r instanceof Function||vue.isRef(r)?r:vue.toRef(()=>r))}function et(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(y=>y.trim()).filter(y=>y.length>0).length:0}function Ie(e,...r){let{validator:t,type:n}=e,a=n==="__async"||t.constructor.name==="AsyncFunction";return {...{validator(d,...g){return e.validator(d,...B(g.length?g:r))},message(d){return typeof e.message=="function"?e.message({...d,$params:B(d?.$params?.length?d.$params:r)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:B(d.$params?.length?d.$params:r)}):e.active??!0},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:B(d.$params?.length?d.$params:r)}):e.tooltip??[]},exec(d){let g=e.validator(d,...B(r)),S;return g instanceof Promise?g.then(w=>(S=w,typeof S=="object"&&"$valid"in S?S.$valid:typeof S=="boolean"?S:!1)):(S=g,typeof S=="object"&&"$valid"in S?S.$valid:typeof S=="boolean"?S:!1)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:a,_params:Ke(r)}}function Pe(e){if(typeof e.validator=="function"){let t=Ie(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(et(e.validator)>1){let a=function(...s){return Ie(e,...s)};return a.validator=t.validator,a.message=t.message,a.active=t.active,a.tooltip=t.tooltip,a.type=t.type,a.exec=t.exec,a._validator=t.validator,a._message=t.message,a._active=t.active,a._tooltip=t.tooltip,a._type=e.type,a._message_pacthed=!1,a._tooltip_pacthed=!1,a._async=n,a}else return t}throw new Error("Validator must be a function")}function q(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function tt(e){return q(e.value)}function K(e){let r=e,t={}.toString.call(e).slice(8,-1);if(t=="Set"&&(r=new Set([...e].map(n=>K(n)))),t=="Map"&&(r=new Map([...e].map(n=>[K(n[0]),K(n[1])]))),t=="Date"&&(r=new Date(e.getTime())),t=="RegExp"&&(r=RegExp(e.source,Ct(e))),t=="Array"||t=="Object"){r=Array.isArray(e)?[]:{};for(let n in e)r[n]=K(e[n]);}return r}function Ct(e){if(typeof e.source.flags=="string")return e.source.flags;{let r=[];return e.global&&r.push("g"),e.ignoreCase&&r.push("i"),e.multiline&&r.push("m"),e.sticky&&r.push("y"),e.unicode&&r.push("u"),r.join("")}}function Oe(e,r,t){return e instanceof Function?e(r,t??0):e}function rt(e,r){vue.isRef(e)?e.value=r:e=r;}function nt(e,r){vue.isRef(e)?e.value=[]:e=[],r.forEach((t,n)=>{let a=vue.isRef(e)?e.value[n]:e[n];a={},ce(a,r[n]);});}function ce(e,r){Object.entries({...vue.unref(e),...r}).forEach(([t,n])=>{let a=vue.isRef(e)?e.value:e,s=vue.isRef(r[t])?r[t]._value:r[t],y=vue.isRef(a[t])?a[t].value:a[t];Array.isArray(a[t])?(a[t]=[],Array.isArray(s)&&s.forEach((d,g)=>{a[t][g]={},ce(a[t][g],s[g]);})):q(s)?ce(y,s):vue.isRef(a[t])?a[t].value=s:a[t]=s;});}function $e(e,r,t){let n,a=(...s)=>new Promise(y=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...s])).then(y);},r);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a}function Pt(e,r){let t=String(e).split("."),n=String(r).split(".");for(let a=0;a<Math.min(t.length,n.length);a++){let s=Number(t[a]),y=Number(n[a]);if(s>y)return 1;if(y>s)return -1;if(!isNaN(s)&&isNaN(y))return 1;if(isNaN(s)&&!isNaN(y))return -1}return 0}var Se=Pt(vue.version,"3.5.0")!==-1;function Ot(){return Math.floor(Math.random()*Date.now()).toString()}function he(){return typeof window>"u"?Ot():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function we(){let e=vue.shallowRef(new Map),r=vue.shallowRef(new Map),t=vue.shallowRef(new Map),n=vue.shallowRef(new Map),a=vue.shallowRef(new Map),s=vue.shallowRef(new Map);function y(u){let i=r.value.get(u);if(i)return i;{let p=vue.ref({});return r.value.set(u,p),p}}function d(u){let i=t.value.get(u);if(i)return i;{let p=vue.ref([]);return t.value.set(u,p),p}}function g(u,i,p){s.value.set(`${u}-${i}`,p);}function S(u,i){return s.value.get(`${u}-${i}`)}function w(u,i){u&&i!=null&&s.value.delete(`${u}-${i}`);}function _(u,i){n.value.set(u,i);}function D(u){return n.value.get(u)??!1}function R(u,i){e.value.set(u,i);}function E(u,i){let p=e.value.get(u);return p?m(i,p)?{valid:!0}:{valid:!1}:void 0}function m(u,i){let p=Object.keys(i),M=Object.keys(u);return M.length!==p.length||!M.every(O=>p.includes(O))?!1:M.every(O=>{let b=u[O],A=i[O];return !A||!b||typeof b=="function"||typeof A=="function"||typeof b=="number"||typeof b=="boolean"?!1:b._params?b._params?.every((I,W)=>{if(typeof A=="number"||typeof A=="boolean")return !0;{let v=B(A._params),P=B(b._params);return v?.[W]===P?.[W]}}):!0})}function F(u){let i=a.value.get(u);if(i)return i;{let p=vue.ref(!1),M=vue.ref(!0),j=vue.ref({}),O=vue.ref(!1);return a.value.set(u,{$pending:p,$valid:M,$metadata:j,$validating:O}),{$pending:p,$valid:M,$metadata:j,$validating:O}}}return vue.onScopeDispose(()=>{e.value.clear(),r.value.clear(),t.value.clear(),n.value.clear(),a.value.clear(),s.value.clear();}),{addRuleDeclEntry:R,setDirtyEntry:_,checkRuleDeclEntry:E,getDirtyState:D,trySetRuleStatusRef:F,getFieldsEntry:y,getCollectionsEntry:d,getArrayStatus:S,addArrayStatus:g,deleteArrayStatus:w,arrayStatusStorage:s}}function k(e){return e==null?!0:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function at(e,r){return q(e.value)&&q(r.value)&&!Object.entries(r.value).some(t=>fe(t))}function lt(e,r){return !!e.value&&"$each"in e.value||Array.isArray(r.value)}function ot(e){return !!e.value&&q(e.value)}function fe(e){return q(e)&&"_validator"in e}function Re(e){return typeof e.value!="function"}function st(e){return q(e)&&"$fields"in e}function Ae({field:e,silent:r=!1}){return Object.entries(e.$rules??{}).map(([t,n])=>r||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(t=>!!t).reduce((t,n)=>typeof n=="string"?t?.concat([n]):t?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function ut({field:e}){return Object.entries(e.$rules??{}).map(([r,t])=>t.$tooltip).filter(r=>!!r).reduce((r,t)=>typeof t=="string"?r?.concat([t]):r?.concat(t),[])}function ct({fieldProperties:e,customMessages:r,rule:t,ruleKey:n,state:a,path:s,storage:y,$debounce:d}){let g=vue.effectScope(),S,w,_=vue.ref(!1),{$pending:D,$valid:R,$metadata:E,$validating:m}=y.trySetRuleStatusRef(`${s}.${n}`);function F(){S=g.run(()=>{let b=vue.computed(()=>({$value:a.value,$error:e.$error.value,$dirty:e.$dirty.value,$pending:e.$pending.value,$valid:e.$valid.value,$invalid:e.$invalid.value,$rule:{$valid:R.value,$invalid:!R.value,$pending:D.value},$params:T.value,...E.value})),A=vue.computed(()=>Re(t)?typeof t.value.active=="function"?t.value.active(b.value):!!t.value.active:!0);function I(o){let f="",$=r?r[n]?.[o]:void 0;if($&&(typeof $=="function"?f=$(b.value):f=$),Re(t)){let c=`_${o}_patched`;$&&!t.value[c]||(typeof t.value[o]=="function"?f=t.value[o](b.value):f=t.value[o]??"");}return f}let W=vue.computed(()=>{let o=I("message");return k(o)&&(o="This field is not valid"),o}),v=vue.computed(()=>I("tooltip")),P=vue.computed(()=>Re(t)&&t.value.type?t.value.type:n),J=vue.computed(()=>Re(t)?t.value.validator:t.value),T=vue.computed(()=>typeof t.value=="function"?[]:B(t.value._params??[])),x=vue.computed(()=>`${s}.${P.value}`);return {$active:A,$message:W,$type:P,$validator:J,$params:T,$path:x,$tooltip:v}}),w=vue.watch(S.$params,M);}F();function u(){R.value=!0,e.$dirty.value&&(D.value=!0);}async function i(){let b=S.$validator.value,A=b(a.value,...S.$params.value),I=!1,W=a.value;try{u();let v;if(A instanceof Promise?v=await A:v=A,a.value!==W)return !0;if(typeof v=="boolean")I=v;else {let{$valid:P,...J}=v;I=P,E.value=J;}}catch{I=!1;}finally{D.value=!1;}return I}let p=$e(i,d??200);async function M(){try{m.value=!0;let b=!1;if(fe(t.value)&&t.value._async)b=await p();else {let A=S.$validator.value,I=A(a.value,...S.$params.value);if(I 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(I!=null)if(typeof I=="boolean")b=I;else {let{$valid:W,...v}=I;b=W,E.value=v;}}return R.value=b,b}catch{return !1}finally{m.value=!1;}}function j(){R.value=!0,E.value={},D.value=!1,m.value=!1,F();}function O(){w(),g.stop(),g=vue.effectScope();}return vue.reactive({...S,$pending:D,$valid:R,$metadata:E,$haveAsync:_,$validating:m,$validate:M,$unwatch:O,$watch:F,$reset:j})}function Te({state:e,rulesDef:r,customMessages:t,path:n,fieldName:a,storage:s,options:y,externalErrors:d,onUnwatch:g,$isArray:S,initialState:w,shortcuts:_}){let D=vue.effectScope(),R,E=[],m=vue.ref(!1),F=vue.ref(!1),u,i,p,M,j=()=>{};function O(){let l=r.value,C=s.checkRuleDeclEntry(n,l);P.value=Object.fromEntries(Object.entries(l).filter(([G])=>G.startsWith("$"))),I(),v.value=Object.fromEntries(Object.entries(r.value).filter(([G])=>!G.startsWith("$")).map(([G,U])=>{if(U){let ie=vue.toRef(()=>U);return [G,ct({fieldProperties:{$dirty:m,$error:R.$error,$invalid:R.$invalid,$pending:R.$pending,$valid:R.$valid},customMessages:t,rule:ie,ruleKey:G,state:e,path:n,storage:s,$debounce:P.value.$debounce})]}return []}).filter(G=>!!G.length)),R.processShortcuts(),b(),C?.valid!=null&&(m.value=s.getDirtyState(n),m.value&&j()),s.addRuleDeclEntry(n,l);}function b(){j=R.$debounce.value?$e(W,R.$debounce.value??R.$haveAnyAsyncRule?100:0):W;}function A(){v.value&&Object.entries(v.value).forEach(([l,C])=>{C.$unwatch();}),p(),m.value&&s.setDirtyEntry(n,m.value),u?.(),i?.(),D.stop(),D=vue.effectScope(),E.forEach(l=>l.stop()),E=[],g?.(),M?.();}function I(){v.value&&Object.entries(v.value).forEach(([l,C])=>{C.$watch();}),R=D.run(()=>{let l=vue.computed(()=>m.value),C=vue.computed(()=>P.value.$debounce),G=vue.computed(()=>P.value.$lazy!=null?P.value.$lazy:vue.unref(y.lazy)),U=vue.computed(()=>Ue.value===!0?!1:P.value.$rewardEarly!=null?P.value.$rewardEarly:vue.unref(y.rewardEarly)),ie=vue.computed(()=>P.value.$clearExternalErrorsOnChange!=null?P.value.$clearExternalErrorsOnChange:vue.unref(y.clearExternalErrorsOnChange)),Ue=vue.computed(()=>P.value.$autoDirty!=null?P.value.$autoDirty:vue.unref(y.autoDirty)),Be=vue.computed(()=>Object.entries(v.value).some(([Y,X])=>X.$validating)),xe=vue.computed(()=>ge.value&&!ve.value&&m.value),He=vue.computed(()=>xe.value?Ae({field:{$dirty:m.value,$externalErrors:d?.value,$rules:v.value}}):[]),ke=vue.computed(()=>ut({field:{$rules:v.value}})),Le=vue.computed(()=>Ae({field:{$dirty:m.value,$externalErrors:d?.value,$rules:v.value},silent:!0})),qe=vue.computed(()=>!(ge.value||ve.value)),ve=vue.computed(()=>F.value||!U.value?Object.entries(v.value).some(([Y,X])=>X.$pending):!1),ge=vue.computed(()=>d?.value?.length?!0:k(v.value)?!1:!U.value||U.value&&F.value?Object.entries(v.value).some(([Y,X])=>!X.$valid):!1),ze=vue.computed(()=>a),De=vue.computed(()=>d?.value?.length||k(v.value)?!1:m.value&&!k(e.value)&&!Be.value?Object.values(v.value).every(Y=>Y.$valid&&Y.$active):!1),ht=vue.computed(()=>Object.entries(v.value).some(([Y,X])=>X.$haveAsync));function bt(){_?.fields&&Object.entries(_.fields).forEach(([Y,X])=>{let Ye=vue.effectScope();Je[Y]=Ye.run(()=>{let Qe=vue.ref();return vue.watchEffect(()=>{Qe.value=X(vue.reactive({$dirty:m,$externalErrors:d?.value??[],$value:e,$rules:v,$error:xe,$pending:ve,$invalid:ge,$valid:De,$errors:He,$ready:qe,$silentErrors:Le,$anyDirty:l,$tooltips:ke,$name:ze}));}),Qe}),E.push(Ye);});}let Je={};return vue.watch(De,Y=>{Y&&(F.value=!1);}),{$error:xe,$pending:ve,$invalid:ge,$valid:De,$debounce:C,$lazy:G,$errors:He,$ready:qe,$silentErrors:Le,$rewardEarly:U,$autoDirty:Ue,$clearExternalErrorsOnChange:ie,$anyDirty:l,$name:ze,$haveAnyAsyncRule:ht,$shortcuts:Je,$validating:Be,$tooltips:ke,processShortcuts:bt}}),u=vue.watch(e,()=>{R.$autoDirty.value&&(m.value||(m.value=!0)),r.value instanceof Function&&O(),(R.$autoDirty.value||R.$rewardEarly.value&&R.$error.value)&&j(),R.$rewardEarly.value!==!0&&R.$clearExternalErrorsOnChange.value&&$();},{deep:S?!0:Se?1:!0}),p=vue.watch(m,()=>{s.setDirtyEntry(n,m.value);}),i=vue.watch(R.$valid,l=>{R.$rewardEarly.value&&l&&(F.value=!1);}),M=vue.watch(R.$haveAnyAsyncRule,b);}function W(){Object.values(v.value).forEach(l=>{l.$validate();});}let v=vue.ref({}),P=vue.ref({});O();function J(){$(),m.value=!1,s.setDirtyEntry(n,!1),Object.entries(v.value).forEach(([l,C])=>{C.$reset();}),!R.$lazy.value&&R.$autoDirty.value&&Object.values(v.value).forEach(l=>l.$validate());}function T(l=!0,C=!1){m.value||(m.value=!0),C&&l?(R.$autoDirty.value||R.$rewardEarly.value&&R.$error.value)&&j():l&&j();}async function x(){try{let l=e.value;if(F.value=!0,!m.value)m.value=!0;else if(R.$autoDirty.value&&m.value&&!R.$pending.value)return {result:!R.$error.value,data:l};return k(v.value)?{result:!0,data:l}:{result:(await Promise.allSettled(Object.entries(v.value).map(([U,ie])=>ie.$validate()))).every(U=>U.status==="fulfilled"?U.value===!0:!1),data:l}}catch{return {result:!1,data:e.value}}}function o(){A(),e.value=rt(e,w),J();}function f(l=!0){return m.value?e.value:l?{_null:!0}:null}function $(){d?.value?.length&&(d.value=[]);}!R.$lazy.value&&!m.value&&R.$autoDirty.value&&j();let{$shortcuts:c,$validating:h,$autoDirty:L,$rewardEarly:Q,$clearExternalErrorsOnChange:Z,$haveAnyAsyncRule:oe,$debounce:se,$lazy:ue,...V}=R;return vue.reactive({$dirty:m,...V,$externalErrors:d,$value:e,$rules:v,...c,$reset:J,$touch:T,$validate:x,$unwatch:A,$watch:I,$resetAll:o,$extractDirtyFields:f,$clearExternalErrors:$})}function Me({$id:e,path:r,index:t,options:n,storage:a,stateValue:s,customMessages:y,rules:d,externalErrors:g,initialState:S,shortcuts:w,fieldName:_}){let D=d.$key?d.$key:he(),R=`${r}.${String(D)}`;typeof s.value=="object"&&s.value!=null&&(s.value.$id?R=`${r}.${s.value.$id}`:Object.defineProperties(s.value,{$id:{value:D,enumerable:!1,configurable:!1,writable:!1}}));let E=me({state:s,rulesDef:vue.toRef(()=>d),customMessages:y,path:R,storage:a,options:n,externalErrors:vue.toRef(g?.value??[],t),initialState:S?.[t],shortcuts:w,fieldName:_});if(E){let m=s.value?.$id;E.$id=m??String(D),a.addArrayStatus(e,E.$id,E);}return E}function dt({state:e,rulesDef:r,customMessages:t,path:n,storage:a,options:s,externalErrors:y,initialState:d,shortcuts:g,fieldName:S}){let w=vue.effectScope(),_,D=vue.effectScope(),R,E=[];if(!Array.isArray(e.value)&&!r.value.$each)return null;let m=vue.ref(),F=vue.ref(e.value),u,i=vue.ref({}),p=a.getCollectionsEntry(n);R=D.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(f=>typeof f!="object"):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(f=>fe(f)):!1)})),M(),O();function M(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(m.value=he(),Object.defineProperties(e.value,{$id:{value:m.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(m.value=e.value.$id)),!R.isPrimitiveArray.value&&(F.value=i.value.$value,Array.isArray(e.value)?p.value=e.value.map((o,f)=>{let $=Oe(r.value.$each,vue.toRef(()=>o),f),c=Me({$id:m.value,path:n,customMessages:t,rules:$??{},stateValue:vue.toRef(()=>o),index:f,options:s,storage:a,externalErrors:vue.toRef(y?.value??{},"$each"),initialState:d?.[f],shortcuts:g,fieldName:S});return c||null}).filter(o=>!!o):p.value=[],i.value=Te({state:e,rulesDef:r,customMessages:t,path:n,storage:a,options:s,externalErrors:vue.toRef(y?.value??{},"$self"),$isArray:!0,initialState:d,shortcuts:g,fieldName:S}));}function j(){if(Array.isArray(e.value)){let o=K(p.value);p.value=e.value.map((f,$)=>{let c=vue.toRef(()=>f);if(f.$id&&p.value.find(h=>h.$id===f.$id)){let h=a.getArrayStatus(m.value,f.$id);return h?(h.$value=c,h):null}else {let h=Oe(r.value.$each,c,$);if(h){let L=Me({$id:m.value,path:n,customMessages:t,rules:h,stateValue:c,index:$,options:s,storage:a,externalErrors:vue.toRef(y?.value??{},"$each"),initialState:d?.[$],shortcuts:g,fieldName:S});return L||null}}}).filter(f=>!!f),o.filter(f=>!e.value.find($=>f.$id===$.$id)).forEach((f,$)=>{a.deleteArrayStatus(m.value,$.toString());});}else p.value=[];}function O(){u=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?M():j();},{deep:Se?1:!0,flush:"pre"}),_=w.run(()=>{let o=vue.computed(()=>i.value.$dirty&&p.value.every(l=>l.$dirty)),f=vue.computed(()=>i.value.$anyDirty||p.value.some(l=>l.$dirty)),$=vue.computed(()=>i.value.$invalid||p.value.some(l=>l.$invalid)),c=vue.computed(()=>(k(i.value.$rules)?!0:i.value.$valid)&&p.value.every(l=>l.$valid)),h=vue.computed(()=>i.value.$error||p.value.some(l=>l.$error)),L=vue.computed(()=>!($.value||Q.value)),Q=vue.computed(()=>i.value.$pending||p.value.some(l=>l.$pending)),Z=vue.computed(()=>({$self:i.value.$errors,$each:p.value.map(l=>l.$errors)})),oe=vue.computed(()=>({$self:i.value.$silentErrors,$each:p.value.map(l=>l.$silentErrors)})),se=vue.computed(()=>S);function ue(){g?.collections&&Object.entries(g?.collections).forEach(([l,C])=>{let G=vue.effectScope();V[l]=G.run(()=>{let U=vue.ref();return vue.watchEffect(()=>{U.value=C(vue.reactive({$dirty:o,$error:h,$pending:Q,$invalid:$,$valid:c,$errors:Z,$ready:L,$silentErrors:oe,$anyDirty:f,$name:se,$each:p,$field:i,$value:e}));}),U}),E.push(G);});}let V={};return ue(),{$dirty:o,$anyDirty:f,$invalid:$,$valid:c,$error:h,$pending:Q,$errors:Z,$silentErrors:oe,$ready:L,$name:se,$shortcuts:V}}),R.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`),u());}function b(){u&&u(),i.value&&i.value.$unwatch(),p.value&&p.value.forEach(o=>{"$dirty"in o&&o.$unwatch();}),w.stop(),w=vue.effectScope(),D.stop(),D=vue.effectScope(!0),E.forEach(o=>o.stop()),E=[];}function A(o=!0,f=!1){i.value.$touch(o,f),p.value.forEach($=>{$.$touch(o,f);});}function I(){i.value.$reset(),p.value.forEach(o=>{o.$reset();});}async function W(){let o=e.value;try{return {result:(await Promise.allSettled([i.value.$validate(),...p.value.map(c=>c.$validate())])).every(c=>c.status==="fulfilled"?c.value.result===!0:!1),data:o}}catch{return {result:!1,data:o}}}function v(){i.value.$clearExternalErrors(),p.value.forEach(o=>{o.$clearExternalErrors();});}function P(o=!0){let f=p.value.map($=>{if(st($))return $.$extractDirtyFields(o)});return o&&f.every($=>k($))&&(f=[]),f}function J(){b(),nt(e,d),I();}let{$shortcuts:T,...x}=_;return vue.reactive({$field:i,...x,...T,$each:p,$value:e,$validate:W,$unwatch:b,$watch:O,$touch:A,$reset:I,$resetAll:J,$extractDirtyFields:P,$clearExternalErrors:v})}function _e({rulesDef:e,state:r,path:t="",rootRules:n,externalErrors:a,validationGroups:s,initialState:y,fieldName:d,...g}){let S=vue.effectScope(),w,_=[],D=null,R=null,E=null;async function F(T=!0){let x=Object.entries(e.value),o=Object.fromEntries(x.filter(([c,h])=>!!h).map(([c,h])=>{if(h){let L=vue.toRef(r.value,c),Q=vue.toRef(()=>h),Z=vue.toRef(a?.value??{},c);return [c,me({state:L,rulesDef:Q,path:t?`${t}.${c}`:c,externalErrors:Z,initialState:y?.[c],fieldName:c,...g})]}return []})),f=Object.fromEntries(Object.entries(vue.unref(a)??{}).filter(([c,h])=>!(c in e.value)&&!!h).map(([c])=>{let h=vue.toRef(r.value,c);return [c,me({state:h,rulesDef:vue.computed(()=>({})),path:t?`${t}.${c}`:c,externalErrors:vue.toRef(a?.value??{},c),initialState:y?.[c],fieldName:c,...g})]})),$=Object.fromEntries(Object.entries(r.value).filter(([c])=>!(c in e.value)&&!(c in(f.value??{}))).map(([c])=>{let h=vue.toRef(r.value,c);return [c,me({state:h,rulesDef:vue.computed(()=>({})),path:t?`${t}.${c}`:c,externalErrors:vue.toRef(a?.value??{},c),initialState:y?.[c],fieldName:c,...g})]}));u.value={...o,...f,...$},T&&j();}let u=g.storage.getFieldsEntry(t);F();function i(){R?.(),Object.values(u.value).forEach(T=>{T.$reset();}),M();}function p(T=!0,x=!1){Object.values(u.value).forEach(o=>{o.$touch(T,x);});}function M(){a?.value&&(R=vue.watch(a,()=>{O(),F();},{deep:!0}));}function j(){n&&(D=vue.watch(n,()=>{O(),F();},{deep:!0,flush:"post"}),M()),E=vue.watch(r,()=>{O(),F(),p(!0,!0);},{flush:"sync"}),w=S.run(()=>{let T=vue.computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([V,l])=>l?.$dirty)),x=vue.computed(()=>Object.entries(u.value).some(([V,l])=>l?.$dirty)),o=vue.computed(()=>Object.entries(u.value).some(([V,l])=>l?.$invalid)),f=vue.computed(()=>Object.entries(u.value).every(([V,l])=>l?.$valid)),$=vue.computed(()=>x.value&&!h.value&&o.value),c=vue.computed(()=>vue.unref(g.options.autoDirty)?x.value&&!(o.value||h.value):!(o.value||h.value)),h=vue.computed(()=>Object.entries(u.value).some(([V,l])=>l?.$pending)),L=vue.computed(()=>Object.fromEntries(Object.entries(u.value).map(([V,l])=>[V,l?.$errors]))),Q=vue.computed(()=>Object.fromEntries(Object.entries(u.value).map(([V,l])=>[V,l?.$silentErrors]))),Z=vue.computed(()=>d);function oe(){g.shortcuts?.nested&&Object.entries(g.shortcuts.nested).forEach(([V,l])=>{let C=vue.effectScope();ue[V]=C.run(()=>{let G=vue.ref();return vue.watchEffect(()=>{G.value=l(vue.reactive({$dirty:T,$value:r,$error:$,$pending:h,$invalid:o,$valid:f,$ready:c,$anyDirty:x,$name:Z,$silentErrors:Q,$errors:L,$fields:u}));}),G}),_.push(C);});}let se=vue.computed(()=>s?Object.fromEntries(Object.entries(s?.(u.value)??{}).map(([V,l])=>l.length?[V,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(C=>[C,Xe(l,C)])),...Object.fromEntries(["$errors","$silentErrors"].map(C=>[C,Ze(l,C)]))}]:[])):{}),ue={};return oe(),{$dirty:T,$anyDirty:x,$invalid:o,$valid:f,$error:$,$pending:h,$errors:L,$silentErrors:Q,$ready:c,$name:Z,$shortcuts:ue,$groups:se}});}function O(){D?.(),R?.(),E?.(),_.forEach(T=>T.stop()),_=[],u.value&&Object.entries(u.value).forEach(([T,x])=>{x.$unwatch();});}function b(){Object.entries(u.value).forEach(([T,x])=>{x.$clearExternalErrors();});}async function A(){O(),ce(r,y??{}),i(),F();}function I(T){return T.filter(([x,o])=>q(o)?!(o&&typeof o=="object"&&"_null"in o)&&!k(o):Array.isArray(o)?o.length:!0)}function W(T=!0){let x=Object.entries(u.value).map(([o,f])=>[o,f.$extractDirtyFields(T)]);return T&&(x=I(x)),Object.fromEntries(x)}async function v(){try{let T=r.value;return {result:(await Promise.allSettled(Object.values(u.value).map(f=>f.$validate()))).every(f=>f.status==="fulfilled"?f.value.result===!0:!1),data:T}}catch{return {result:!1,data:r.value}}}let{$shortcuts:P,...J}=w;return vue.reactive({...J,...P,$fields:u,$value:r,$resetAll:A,$reset:i,$touch:p,$validate:v,$unwatch:O,$watch:j,$clearExternalErrors:b,$extractDirtyFields:W})}function me({rulesDef:e,externalErrors:r,...t}){return lt(e,t.state)?dt({rulesDef:e,externalErrors:r,...t}):at(t.state,e)&&tt(t.state)?_e({rulesDef:e,externalErrors:r,...t}):ot(e)?Te({rulesDef:e,externalErrors:r,...t}):null}function Ve({initialState:e,options:r,scopeRules:t,state:n,customRules:a,shortcuts:s}){let y=we();return vue.reactive(_e({rootRules:t,rulesDef:t,state:n,customMessages:a?.(),storage:y,options:r,externalErrors:r.externalErrors,validationGroups:r.validationGroups,initialState:e,shortcuts:s,fieldName:"root",path:""}))}function Ge(e,r,t){let n={autoDirty:r?.autoDirty??!0,lazy:r?.lazy??!1,rewardEarly:r?.rewardEarly??!1,clearExternalErrorsOnChange:r?.clearExternalErrorsOnChange??!0};function a(s,y,d){let g=vue.isRef(y)?y:vue.computed(typeof y=="function"?y:()=>y),S={...n,...d},w=vue.isRef(s)?s:vue.ref(s),_=K(vue.toRaw(w.value));return {r$:Ve({scopeRules:g,state:w,options:S,initialState:_,customRules:e,shortcuts:t})}}return a}var $t=Ge();function Ne(){function e(r,t){return t}return e}var We=Ne();function St({rules:e,modifiers:r,shortcuts:t}){let n=Ge(e,r,t),a=Ne();return {useRegle:n,inferRules:a}}
|
|
2
|
+
exports.InternalRuleType=Ce;exports.createRule=Pe;exports.defineRegleConfig=St;exports.inferRules=We;exports.unwrapRuleParameters=B;exports.useRegle=$t;
|
package/dist/index.d.cts
CHANGED
|
@@ -410,7 +410,10 @@ type UnwrapRuleWithParams<T extends RegleRuleRaw<any> | undefined> = T extends R
|
|
|
410
410
|
* Define a rule Metadata definition
|
|
411
411
|
*/
|
|
412
412
|
type RegleRuleMetadataDefinition = RegleRuleMetadataExtended | boolean;
|
|
413
|
-
type
|
|
413
|
+
type DefaultMetadataPropertiesCommon = Pick<ExcludeByType<RegleCommonStatus, Function>, '$invalid' | '$dirty' | '$pending' | '$valid' | '$error'>;
|
|
414
|
+
type DefaultMetadataProperties = DefaultMetadataPropertiesCommon & {
|
|
415
|
+
$rule: Omit<DefaultMetadataPropertiesCommon, '$dirty' | '$error'>;
|
|
416
|
+
};
|
|
414
417
|
/**
|
|
415
418
|
* Will be used to consumme metadata on related helpers and rule status
|
|
416
419
|
*/
|
|
@@ -581,14 +584,18 @@ type FormRuleDeclaration<TValue extends any, TParams extends any[], TReturn exte
|
|
|
581
584
|
type RegleErrorTree<TState = MaybeRef<Record<string, any> | any[]>> = {
|
|
582
585
|
readonly [K in keyof UnwrapNestedRefs<TState>]: RegleValidationErrors<UnwrapNestedRefs<TState>[K]>;
|
|
583
586
|
};
|
|
584
|
-
type RegleExternalErrorTree<TState = Record<string, any> | any[]
|
|
585
|
-
|
|
586
|
-
}
|
|
587
|
-
type RegleValidationErrors<TState extends Record<string, any> | any[] | unknown = never> = NonNullable<TState> extends Array<infer U extends Record<string, any>> ? RegleCollectionErrors<U> : NonNullable<TState> extends Date | File ? string[] : NonNullable<TState> extends Record<string, any> ? RegleErrorTree<TState> : string[];
|
|
587
|
+
type RegleExternalErrorTree<TState = MaybeRef<Record<string, any> | any[]>> = {
|
|
588
|
+
readonly [K in keyof UnwrapNestedRefs<TState>]?: RegleValidationErrors<UnwrapNestedRefs<TState>[K], true>;
|
|
589
|
+
};
|
|
590
|
+
type RegleValidationErrors<TState extends Record<string, any> | any[] | unknown = never, TExternal extends boolean = false> = NonNullable<TState> extends Array<infer U extends Record<string, any>> ? TExternal extends false ? RegleCollectionErrors<U> : RegleExternalCollectionErrors<U> : NonNullable<TState> extends Date | File ? string[] : NonNullable<TState> extends Record<string, any> ? TExternal extends false ? RegleErrorTree<TState> : RegleExternalErrorTree<TState> : string[];
|
|
588
591
|
type RegleCollectionErrors<TState extends Record<string, any>> = {
|
|
589
592
|
readonly $self: string[];
|
|
590
593
|
readonly $each: RegleValidationErrors<TState>[];
|
|
591
594
|
};
|
|
595
|
+
type RegleExternalCollectionErrors<TState extends Record<string, any>> = {
|
|
596
|
+
readonly $self?: string[];
|
|
597
|
+
readonly $each?: RegleValidationErrors<TState, true>[];
|
|
598
|
+
};
|
|
592
599
|
type PartialFormState<TState extends Record<string, any>> = [unknown] extends [TState] ? {} : Prettify<{
|
|
593
600
|
[K in keyof TState as ExtendOnlyRealRecord<TState[K]> extends true ? never : TState[K] extends Array<any> ? never : K]?: Maybe<TState[K]>;
|
|
594
601
|
} & {
|
package/dist/index.d.ts
CHANGED
|
@@ -410,7 +410,10 @@ type UnwrapRuleWithParams<T extends RegleRuleRaw<any> | undefined> = T extends R
|
|
|
410
410
|
* Define a rule Metadata definition
|
|
411
411
|
*/
|
|
412
412
|
type RegleRuleMetadataDefinition = RegleRuleMetadataExtended | boolean;
|
|
413
|
-
type
|
|
413
|
+
type DefaultMetadataPropertiesCommon = Pick<ExcludeByType<RegleCommonStatus, Function>, '$invalid' | '$dirty' | '$pending' | '$valid' | '$error'>;
|
|
414
|
+
type DefaultMetadataProperties = DefaultMetadataPropertiesCommon & {
|
|
415
|
+
$rule: Omit<DefaultMetadataPropertiesCommon, '$dirty' | '$error'>;
|
|
416
|
+
};
|
|
414
417
|
/**
|
|
415
418
|
* Will be used to consumme metadata on related helpers and rule status
|
|
416
419
|
*/
|
|
@@ -581,14 +584,18 @@ type FormRuleDeclaration<TValue extends any, TParams extends any[], TReturn exte
|
|
|
581
584
|
type RegleErrorTree<TState = MaybeRef<Record<string, any> | any[]>> = {
|
|
582
585
|
readonly [K in keyof UnwrapNestedRefs<TState>]: RegleValidationErrors<UnwrapNestedRefs<TState>[K]>;
|
|
583
586
|
};
|
|
584
|
-
type RegleExternalErrorTree<TState = Record<string, any> | any[]
|
|
585
|
-
|
|
586
|
-
}
|
|
587
|
-
type RegleValidationErrors<TState extends Record<string, any> | any[] | unknown = never> = NonNullable<TState> extends Array<infer U extends Record<string, any>> ? RegleCollectionErrors<U> : NonNullable<TState> extends Date | File ? string[] : NonNullable<TState> extends Record<string, any> ? RegleErrorTree<TState> : string[];
|
|
587
|
+
type RegleExternalErrorTree<TState = MaybeRef<Record<string, any> | any[]>> = {
|
|
588
|
+
readonly [K in keyof UnwrapNestedRefs<TState>]?: RegleValidationErrors<UnwrapNestedRefs<TState>[K], true>;
|
|
589
|
+
};
|
|
590
|
+
type RegleValidationErrors<TState extends Record<string, any> | any[] | unknown = never, TExternal extends boolean = false> = NonNullable<TState> extends Array<infer U extends Record<string, any>> ? TExternal extends false ? RegleCollectionErrors<U> : RegleExternalCollectionErrors<U> : NonNullable<TState> extends Date | File ? string[] : NonNullable<TState> extends Record<string, any> ? TExternal extends false ? RegleErrorTree<TState> : RegleExternalErrorTree<TState> : string[];
|
|
588
591
|
type RegleCollectionErrors<TState extends Record<string, any>> = {
|
|
589
592
|
readonly $self: string[];
|
|
590
593
|
readonly $each: RegleValidationErrors<TState>[];
|
|
591
594
|
};
|
|
595
|
+
type RegleExternalCollectionErrors<TState extends Record<string, any>> = {
|
|
596
|
+
readonly $self?: string[];
|
|
597
|
+
readonly $each?: RegleValidationErrors<TState, true>[];
|
|
598
|
+
};
|
|
592
599
|
type PartialFormState<TState extends Record<string, any>> = [unknown] extends [TState] ? {} : Prettify<{
|
|
593
600
|
[K in keyof TState as ExtendOnlyRealRecord<TState[K]> extends true ? never : TState[K] extends Array<any> ? never : K]?: Maybe<TState[K]>;
|
|
594
601
|
} & {
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {unref,version,isRef,toRef,computed,ref,toRaw,reactive,shallowRef,onScopeDispose,effectScope,watch,watchEffect}from'vue';var xe=(t=>(t.Inline="__inline",t.Async="__async",t))(xe||{});function Le(e,r){return e.some(t=>t[r])}function qe(e,r){return e.reduce((t,n)=>{let a=n[r]||[];return t.concat(a)},[])}function k(e){return e.map(r=>r instanceof Function?r():unref(r))}function ze(e){return e.map(r=>r instanceof Function||isRef(r)?r:toRef(()=>r))}function Je(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(m=>m.trim()).filter(m=>m.length>0).length:0}function De(e,...r){let{validator:t,type:n}=e,a=n==="__async"||t.constructor.name==="AsyncFunction";return {...{validator(R,...g){return e.validator(R,...k(g.length?g:r))},message(R){return typeof e.message=="function"?e.message({...R,$params:k(R?.$params?.length?R.$params:r)}):e.message},active(R){return typeof e.active=="function"?e.active({...R,$params:k(R.$params?.length?R.$params:r)}):e.active??!0},tooltip(R){return typeof e.tooltip=="function"?e.tooltip({...R,$params:k(R.$params?.length?R.$params:r)}):e.tooltip??[]},exec(R){let g=e.validator(R,...k(r)),h;return g instanceof Promise?g.then(w=>(h=w,typeof h=="object"&&"$valid"in h?h.$valid:typeof h=="boolean"?h:!1)):(h=g,typeof h=="object"&&"$valid"in h?h.$valid:typeof h=="boolean"?h:!1)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:a,_params:ze(r)}}function Ce(e){if(typeof e.validator=="function"){let t=De(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(Je(e.validator)>1){let a=function(...o){return De(e,...o)};return a.validator=t.validator,a.message=t.message,a.active=t.active,a.tooltip=t.tooltip,a.type=t.type,a.exec=t.exec,a._validator=t.validator,a._message=t.message,a._active=t.active,a._tooltip=t.tooltip,a._type=e.type,a._message_pacthed=!1,a._tooltip_pacthed=!1,a._async=n,a}else return t}throw new Error("Validator must be a function")}function J(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ye(e){return J(e.value)}function te(e){let r=e,t={}.toString.call(e).slice(8,-1);if(t=="Set"&&(r=new Set([...e].map(n=>te(n)))),t=="Map"&&(r=new Map([...e].map(n=>[te(n[0]),te(n[1])]))),t=="Date"&&(r=new Date(e.getTime())),t=="RegExp"&&(r=RegExp(e.source,ht(e))),t=="Array"||t=="Object"){r=Array.isArray(e)?[]:{};for(let n in e)r[n]=te(e[n]);}return r}function ht(e){if(typeof e.source.flags=="string")return e.source.flags;{let r=[];return e.global&&r.push("g"),e.ignoreCase&&r.push("i"),e.multiline&&r.push("m"),e.sticky&&r.push("y"),e.unicode&&r.push("u"),r.join("")}}function Ie(e,r,t){return e instanceof Function?e(r,t??0):e}function Qe(e,r){isRef(e)?e.value=r:e=r;}function Xe(e,r){isRef(e)?e.value=[]:e=[],r.forEach((t,n)=>{let a=isRef(e)?e.value[n]:e[n];a={},ie(a,r[n]);});}function ie(e,r){Object.entries({...unref(e),...r}).forEach(([t,n])=>{let a=isRef(e)?e.value:e,o=isRef(r[t])?r[t]._value:r[t],m=isRef(a[t])?a[t].value:a[t];Array.isArray(a[t])?(a[t]=[],Array.isArray(o)&&o.forEach((R,g)=>{a[t][g]={},ie(a[t][g],o[g]);})):J(o)?ie(m,o):isRef(a[t])?a[t].value=o:a[t]=o;});}function ge(e,r,t){let n,a=(...o)=>new Promise(m=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(m);},r);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a}function Tt(e,r){let t=String(e).split("."),n=String(r).split(".");for(let a=0;a<Math.min(t.length,n.length);a++){let o=Number(t[a]),m=Number(n[a]);if(o>m)return 1;if(m>o)return -1;if(!isNaN(o)&&isNaN(m))return 1;if(isNaN(o)&&!isNaN(m))return -1}return 0}var $e=Tt(version,"3.5.0")!==-1;function Et(){return Math.floor(Math.random()*Date.now()).toString()}function Se(){return typeof window>"u"?Et():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Pe(){let e=shallowRef(new Map),r=shallowRef(new Map),t=shallowRef(new Map),n=shallowRef(new Map),a=shallowRef(new Map),o=shallowRef(new Map);function m(s){let u=r.value.get(s);if(u)return u;{let f=ref({});return r.value.set(s,f),f}}function R(s){let u=t.value.get(s);if(u)return u;{let f=ref([]);return t.value.set(s,f),f}}function g(s,u,f){o.value.set(`${s}-${u}`,f);}function h(s,u){return o.value.get(`${s}-${u}`)}function w(s,u){s&&u!=null&&o.value.delete(`${s}-${u}`);}function G(s,u){n.value.set(s,u);}function C(s){return n.value.get(s)??!1}function p(s,u){e.value.set(s,u);}function x(s,u){let f=e.value.get(s);return f?d(u,f)?{valid:!0}:{valid:!1}:void 0}function d(s,u){let f=Object.keys(u),j=Object.keys(s);return j.length!==f.length||!j.every(O=>f.includes(O))?!1:j.every(O=>{let T=s[O],A=u[O];return !A||!T||typeof T=="function"||typeof A=="function"||typeof T=="number"||typeof T=="boolean"?!1:T._params?T._params?.every((I,B)=>{if(typeof A=="number"||typeof A=="boolean")return !0;{let v=k(A._params),P=k(T._params);return v?.[B]===P?.[B]}}):!0})}function M(s){let u=a.value.get(s);if(u)return u;{let f=ref(!1),j=ref(!0),_=ref({}),O=ref(!1);return a.value.set(s,{$pending:f,$valid:j,$metadata:_,$validating:O}),{$pending:f,$valid:j,$metadata:_,$validating:O}}}return onScopeDispose(()=>{e.value.clear(),r.value.clear(),t.value.clear(),n.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:p,setDirtyEntry:G,checkRuleDeclEntry:x,getDirtyState:C,trySetRuleStatusRef:M,getFieldsEntry:m,getCollectionsEntry:R,getArrayStatus:h,addArrayStatus:g,deleteArrayStatus:w,arrayStatusStorage:o}}function z(e){return e==null?!0:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function Ze(e,r){return J(e.value)&&J(r.value)&&!Object.entries(r.value).some(t=>ce(t))}function Ke(e,r){return !!e.value&&"$each"in e.value||Array.isArray(r.value)}function et(e){return !!e.value&&J(e.value)}function ce(e){return J(e)&&"_validator"in e}function fe(e){return typeof e.value!="function"}function tt(e){return J(e)&&"$fields"in e}function Oe({field:e,silent:r=!1}){return Object.entries(e.$rules??{}).map(([t,n])=>r||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(t=>!!t).reduce((t,n)=>typeof n=="string"?t?.concat([n]):t?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function rt({field:e}){return Object.entries(e.$rules??{}).map(([r,t])=>t.$tooltip).filter(r=>!!r).reduce((r,t)=>typeof t=="string"?r?.concat([t]):r?.concat(t),[])}function at({$dirty:e,customMessages:r,rule:t,ruleKey:n,state:a,path:o,storage:m,$debounce:R}){let g=effectScope(),h,w,G=ref(!1),{$pending:C,$valid:p,$metadata:x,$validating:d}=m.trySetRuleStatusRef(`${o}.${n}`);function M(){h=g.run(()=>{let T=computed(()=>({$value:a.value,$invalid:!p.value,$pending:C.value,$dirty:e.value,$params:E.value,...x.value})),A=computed(()=>fe(t)?typeof t.value.active=="function"?t.value.active(T.value):!!t.value.active:!0);function I(l){let c="",$=r?r[n]?.[l]:void 0;if($&&(typeof $=="function"?c=$(T.value):c=$),fe(t)){let i=`_${l}_patched`;$&&!t.value[i]||(typeof t.value[l]=="function"?c=t.value[l](T.value):c=t.value[l]??"");}return c}let B=computed(()=>{let l=I("message");return z(l)&&(l="This field is not valid"),l}),v=computed(()=>I("tooltip")),P=computed(()=>fe(t)&&t.value.type?t.value.type:n),Q=computed(()=>fe(t)?t.value.validator:t.value),E=computed(()=>typeof t.value=="function"?[]:k(t.value._params??[])),D=computed(()=>`${o}.${P.value}`);return {$active:A,$message:B,$type:P,$validator:Q,$params:E,$path:D,$tooltip:v}}),w=watch(h.$params,j);}M();function s(){p.value=!0,e.value&&(C.value=!0);}async function u(){let T=h.$validator.value,A=T(a.value,...h.$params.value),I=!1,B=a.value;try{s();let v;if(A instanceof Promise?v=await A:v=A,a.value!==B)return !0;if(typeof v=="boolean")I=v;else {let{$valid:P,...Q}=v;I=P,x.value=Q;}}catch{I=!1;}finally{C.value=!1;}return I}let f=ge(u,R??200);async function j(){try{d.value=!0;let T=!1;if(ce(t.value)&&t.value._async)T=await f();else {let A=h.$validator.value,I=A(a.value,...h.$params.value);if(I 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(I!=null)if(typeof I=="boolean")T=I;else {let{$valid:B,...v}=I;T=B,x.value=v;}}return p.value=T,T}catch{return !1}finally{d.value=!1;}}function _(){p.value=!0,x.value={},C.value=!1,d.value=!1,M();}function O(){w(),g.stop(),g=effectScope();}return reactive({...h,$pending:C,$valid:p,$metadata:x,$haveAsync:G,$validating:d,$validate:j,$unwatch:O,$watch:M,$reset:_})}function be({state:e,rulesDef:r,customMessages:t,path:n,fieldName:a,storage:o,options:m,externalErrors:R,onUnwatch:g,$isArray:h,initialState:w,shortcuts:G}){let C=effectScope(),p,x=[],d=ref(!1),M=ref(!1),s,u,f,j,_=()=>{};function O(){let S=r.value,F=o.checkRuleDeclEntry(n,S);P.value=Object.fromEntries(Object.entries(S).filter(([W])=>W.startsWith("$"))),v.value=Object.fromEntries(Object.entries(r.value).filter(([W])=>!W.startsWith("$")).map(([W,U])=>{if(U){let X=toRef(()=>U);return [W,at({$dirty:d,customMessages:t,rule:X,ruleKey:W,state:e,path:n,storage:o,$debounce:P.value.$debounce})]}return []}).filter(W=>!!W.length)),I(),T(),F?.valid!=null&&(d.value=o.getDirtyState(n),d.value&&_()),o.addRuleDeclEntry(n,S);}function T(){_=p.$debounce.value?ge(B,p.$debounce.value??p.$haveAnyAsyncRule?100:0):B;}function A(){v.value&&Object.entries(v.value).forEach(([S,F])=>{F.$unwatch();}),f(),d.value&&o.setDirtyEntry(n,d.value),s?.(),u?.(),C.stop(),C=effectScope(),x.forEach(S=>S.stop()),x=[],g?.(),j?.();}function I(){v.value&&Object.entries(v.value).forEach(([S,F])=>{F.$watch();}),p=C.run(()=>{let S=computed(()=>d.value),F=computed(()=>P.value.$debounce),W=computed(()=>P.value.$lazy!=null?P.value.$lazy:unref(m.lazy)),U=computed(()=>V.value===!0?!1:P.value.$rewardEarly!=null?P.value.$rewardEarly:unref(m.rewardEarly)),X=computed(()=>P.value.$clearExternalErrorsOnChange!=null?P.value.$clearExternalErrorsOnChange:unref(m.clearExternalErrorsOnChange)),V=computed(()=>P.value.$autoDirty!=null?P.value.$autoDirty:unref(m.autoDirty)),y=computed(()=>Object.entries(v.value).some(([Z,K])=>K.$validating)),H=computed(()=>ve.value&&!ye.value&&d.value),ee=computed(()=>H.value?Oe({field:{$dirty:d.value,$externalErrors:R?.value,$rules:v.value}}):[]),ue=computed(()=>rt({field:{$rules:v.value}})),Ne=computed(()=>Oe({field:{$dirty:d.value,$externalErrors:R?.value,$rules:v.value},silent:!0})),We=computed(()=>!(ve.value||ye.value)),ye=computed(()=>M.value||!U.value?Object.entries(v.value).some(([Z,K])=>K.$pending):!1),ve=computed(()=>R?.value?.length?!0:z(v.value)?!1:!U.value||U.value&&M.value?Object.entries(v.value).some(([Z,K])=>!K.$valid):!1),Ue=computed(()=>a),Ee=computed(()=>R?.value?.length||z(v.value)?!1:d.value&&!z(e.value)&&!y.value?Object.values(v.value).every(Z=>Z.$valid&&Z.$active):!1),mt=computed(()=>Object.entries(v.value).some(([Z,K])=>K.$haveAsync));function yt(){G?.fields&&Object.entries(G.fields).forEach(([Z,K])=>{let He=effectScope();Be[Z]=He.run(()=>{let ke=ref();return watchEffect(()=>{ke.value=K(reactive({$dirty:d,$externalErrors:R?.value??[],$value:e,$rules:v,$error:H,$pending:ye,$invalid:ve,$valid:Ee,$errors:ee,$ready:We,$silentErrors:Ne,$anyDirty:S,$tooltips:ue,$name:Ue}));}),ke}),x.push(He);});}let Be={};return yt(),watch(Ee,Z=>{Z&&(M.value=!1);}),{$error:H,$pending:ye,$invalid:ve,$valid:Ee,$debounce:F,$lazy:W,$errors:ee,$ready:We,$silentErrors:Ne,$rewardEarly:U,$autoDirty:V,$clearExternalErrorsOnChange:X,$anyDirty:S,$name:Ue,$haveAnyAsyncRule:mt,$shortcuts:Be,$validating:y,$tooltips:ue}}),s=watch(e,()=>{p.$autoDirty.value&&(d.value||(d.value=!0)),r.value instanceof Function&&O(),(p.$autoDirty.value||p.$rewardEarly.value&&p.$error.value)&&_(),p.$rewardEarly.value!==!0&&p.$clearExternalErrorsOnChange.value&&$();},{deep:h?!0:$e?1:!0}),f=watch(d,()=>{o.setDirtyEntry(n,d.value);}),u=watch(p.$valid,S=>{p.$rewardEarly.value&&S&&(M.value=!1);}),j=watch(p.$haveAnyAsyncRule,T);}function B(){Object.values(v.value).forEach(S=>{S.$validate();});}let v=ref(),P=ref();O();function Q(){$(),d.value=!1,o.setDirtyEntry(n,!1),Object.entries(v.value).forEach(([S,F])=>{F.$reset();}),!p.$lazy.value&&p.$autoDirty.value&&Object.values(v.value).forEach(S=>S.$validate());}function E(S=!0,F=!1){d.value||(d.value=!0),F&&S?(p.$autoDirty.value||p.$rewardEarly.value&&p.$error.value)&&_():S&&_();}async function D(){try{let S=e.value;if(M.value=!0,!d.value)d.value=!0;else if(p.$autoDirty.value&&d.value&&!p.$pending.value)return {result:!p.$error.value,data:S};return z(v.value)?{result:!0,data:S}:{result:(await Promise.allSettled(Object.entries(v.value).map(([U,X])=>X.$validate()))).every(U=>U.status==="fulfilled"?U.value===!0:!1),data:S}}catch{return {result:!1,data:e.value}}}function l(){A(),e.value=Qe(e,w),Q();}function c(S=!0){return d.value?e.value:S?{_null:!0}:null}function $(){R?.value?.length&&(R.value=[]);}!p.$lazy.value&&!d.value&&p.$autoDirty.value&&_();let{$shortcuts:i,$validating:b,...q}=p;return reactive({$dirty:d,...q,$externalErrors:R,$value:e,$rules:v,...i,$reset:Q,$touch:E,$validate:D,$unwatch:A,$watch:I,$resetAll:l,$extractDirtyFields:c,$clearExternalErrors:$})}function Ae({$id:e,path:r,index:t,options:n,storage:a,stateValue:o,customMessages:m,rules:R,externalErrors:g,initialState:h,shortcuts:w,fieldName:G}){let C=R.$key?R.$key:Se(),p=`${r}.${String(C)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?p=`${r}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:C,enumerable:!1,configurable:!1,writable:!1}}));let x=de({state:o,rulesDef:toRef(()=>R),customMessages:m,path:p,storage:a,options:n,externalErrors:toRef(g?.value??[],t),initialState:h?.[t],shortcuts:w,fieldName:G});if(x){let d=o.value?.$id;x.$id=d??String(C),a.addArrayStatus(e,x.$id,x);}return x}function ut({state:e,rulesDef:r,customMessages:t,path:n,storage:a,options:o,externalErrors:m,initialState:R,shortcuts:g,fieldName:h}){let w=effectScope(),G,C=effectScope(),p,x=[];if(!Array.isArray(e.value)&&!r.value.$each)return null;let d=ref(),M=ref(e.value),s,u=ref({}),f=a.getCollectionsEntry(n);p=C.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(c=>typeof c!="object"):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(c=>ce(c)):!1)})),j(),O();function j(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(d.value=Se(),Object.defineProperties(e.value,{$id:{value:d.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(d.value=e.value.$id)),!p.isPrimitiveArray.value&&(M.value=u.value.$value,Array.isArray(e.value)?f.value=e.value.map((l,c)=>{let $=Ie(r.value.$each,toRef(()=>l),c),i=Ae({$id:d.value,path:n,customMessages:t,rules:$??{},stateValue:toRef(()=>l),index:c,options:o,storage:a,externalErrors:toRef(m?.value??{},"$each"),initialState:R?.[c],shortcuts:g,fieldName:h});return i||null}).filter(l=>!!l):f.value=[],u.value=be({state:e,rulesDef:r,customMessages:t,path:n,storage:a,options:o,externalErrors:toRef(m?.value??{},"$self"),$isArray:!0,initialState:R,shortcuts:g,fieldName:h}));}function _(){if(Array.isArray(e.value)){let l=te(f.value);f.value=e.value.map((c,$)=>{let i=toRef(()=>c);if(c.$id&&f.value.find(b=>b.$id===c.$id)){let b=a.getArrayStatus(d.value,c.$id);return b?(b.$value=i,b):null}else {let b=Ie(r.value.$each,i,$);if(b){let q=Ae({$id:d.value,path:n,customMessages:t,rules:b,stateValue:i,index:$,options:o,storage:a,externalErrors:toRef(m?.value??{},"$each"),initialState:R?.[$],shortcuts:g,fieldName:h});return q||null}}}).filter(c=>!!c),l.filter(c=>!e.value.find($=>c.$id===$.$id)).forEach((c,$)=>{a.deleteArrayStatus(d.value,$.toString());});}else f.value=[];}function O(){s=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?j():_();},{deep:$e?1:!0,flush:"pre"}),G=w.run(()=>{let l=computed(()=>u.value.$dirty&&f.value.every(y=>y.$dirty)),c=computed(()=>u.value.$anyDirty||f.value.some(y=>y.$dirty)),$=computed(()=>u.value.$invalid||f.value.some(y=>y.$invalid)),i=computed(()=>(z(u.value.$rules)?!0:u.value.$valid)&&f.value.every(y=>y.$valid)),b=computed(()=>u.value.$error||f.value.some(y=>y.$error)),q=computed(()=>!($.value||S.value)),S=computed(()=>u.value.$pending||f.value.some(y=>y.$pending)),F=computed(()=>({$self:u.value.$errors,$each:f.value.map(y=>y.$errors)})),W=computed(()=>({$self:u.value.$silentErrors,$each:f.value.map(y=>y.$silentErrors)})),U=computed(()=>h);function X(){g?.collections&&Object.entries(g?.collections).forEach(([y,H])=>{let ee=effectScope();V[y]=ee.run(()=>{let ue=ref();return watchEffect(()=>{ue.value=H(reactive({$dirty:l,$error:b,$pending:S,$invalid:$,$valid:i,$errors:F,$ready:q,$silentErrors:W,$anyDirty:c,$name:U,$each:f,$field:u,$value:e}));}),ue}),x.push(ee);});}let V={};return X(),{$dirty:l,$anyDirty:c,$invalid:$,$valid:i,$error:b,$pending:S,$errors:F,$silentErrors:W,$ready:q,$name:U,$shortcuts:V}}),p.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`),s());}function T(){s&&s(),u.value&&u.value.$unwatch(),f.value&&f.value.forEach(l=>{"$dirty"in l&&l.$unwatch();}),w.stop(),w=effectScope(),C.stop(),C=effectScope(!0),x.forEach(l=>l.stop()),x=[];}function A(l=!0,c=!1){u.value.$touch(l,c),f.value.forEach($=>{$.$touch(l,c);});}function I(){u.value.$reset(),f.value.forEach(l=>{l.$reset();});}async function B(){let l=e.value;try{return {result:(await Promise.allSettled([u.value.$validate(),...f.value.map(i=>i.$validate())])).every(i=>i.status==="fulfilled"?i.value.result===!0:!1),data:l}}catch{return {result:!1,data:l}}}function v(){u.value.$clearExternalErrors(),f.value.forEach(l=>{l.$clearExternalErrors();});}function P(l=!0){let c=f.value.map($=>{if(tt($))return $.$extractDirtyFields(l)});return l&&c.every($=>z($))&&(c=[]),c}function Q(){T(),Xe(e,R),I();}let{$shortcuts:E,...D}=G;return reactive({$field:u,...D,...E,$each:f,$value:e,$validate:B,$unwatch:T,$watch:O,$touch:A,$reset:I,$resetAll:Q,$extractDirtyFields:P,$clearExternalErrors:v})}function Me({rulesDef:e,state:r,path:t="",rootRules:n,externalErrors:a,validationGroups:o,initialState:m,fieldName:R,...g}){let h=effectScope(),w,G=[],C=null,p=null,x=null;async function M(E=!0){let D=Object.entries(e.value),l=Object.fromEntries(D.filter(([i,b])=>!!b).map(([i,b])=>{if(b){let q=toRef(r.value,i),S=toRef(()=>b),F=toRef(a?.value??{},i);return [i,de({state:q,rulesDef:S,path:t?`${t}.${i}`:i,externalErrors:F,initialState:m?.[i],fieldName:i,...g})]}return []})),c=Object.fromEntries(Object.entries(unref(a)??{}).filter(([i,b])=>!(i in e.value)&&!!b).map(([i])=>{let b=toRef(r.value,i);return [i,de({state:b,rulesDef:computed(()=>({})),path:t?`${t}.${i}`:i,externalErrors:toRef(a?.value??{},i),initialState:m?.[i],fieldName:i,...g})]})),$=Object.fromEntries(Object.entries(r.value).filter(([i])=>!(i in e.value)&&!(i in(c.value??{}))).map(([i])=>{let b=toRef(r.value,i);return [i,de({state:b,rulesDef:computed(()=>({})),path:t?`${t}.${i}`:i,externalErrors:toRef(a?.value??{},i),initialState:m?.[i],fieldName:i,...g})]}));s.value={...l,...c,...$},E&&_();}let s=g.storage.getFieldsEntry(t);M();function u(){p?.(),Object.values(s.value).forEach(E=>{E.$reset();}),j();}function f(E=!0,D=!1){Object.values(s.value).forEach(l=>{l.$touch(E,D);});}function j(){a?.value&&(p=watch(a,()=>{O(),M();},{deep:!0}));}function _(){n&&(C=watch(n,()=>{O(),M();},{deep:!0,flush:"post"}),j()),x=watch(r,()=>{O(),M(),f(!0,!0);},{flush:"sync"}),w=h.run(()=>{let E=computed(()=>!!Object.entries(s.value).length&&Object.entries(s.value).every(([V,y])=>y?.$dirty)),D=computed(()=>Object.entries(s.value).some(([V,y])=>y?.$dirty)),l=computed(()=>Object.entries(s.value).some(([V,y])=>y?.$invalid)),c=computed(()=>Object.entries(s.value).every(([V,y])=>y?.$valid)),$=computed(()=>D.value&&!b.value&&l.value),i=computed(()=>unref(g.options.autoDirty)?D.value&&!(l.value||b.value):!(l.value||b.value)),b=computed(()=>Object.entries(s.value).some(([V,y])=>y?.$pending)),q=computed(()=>Object.fromEntries(Object.entries(s.value).map(([V,y])=>[V,y?.$errors]))),S=computed(()=>Object.fromEntries(Object.entries(s.value).map(([V,y])=>[V,y?.$silentErrors]))),F=computed(()=>R);function W(){g.shortcuts?.nested&&Object.entries(g.shortcuts.nested).forEach(([V,y])=>{let H=effectScope();X[V]=H.run(()=>{let ee=ref();return watchEffect(()=>{ee.value=y(reactive({$dirty:E,$value:r,$error:$,$pending:b,$invalid:l,$valid:c,$ready:i,$anyDirty:D,$name:F,$silentErrors:S,$errors:q,$fields:s}));}),ee}),G.push(H);});}let U=computed(()=>o?Object.fromEntries(Object.entries(o?.(s.value)??{}).map(([V,y])=>y.length?[V,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(H=>[H,Le(y,H)])),...Object.fromEntries(["$errors","$silentErrors"].map(H=>[H,qe(y,H)]))}]:[])):{}),X={};return W(),{$dirty:E,$anyDirty:D,$invalid:l,$valid:c,$error:$,$pending:b,$errors:q,$silentErrors:S,$ready:i,$name:F,$shortcuts:X,$groups:U}});}function O(){C?.(),p?.(),x?.(),G.forEach(E=>E.stop()),G=[],s.value&&Object.entries(s.value).forEach(([E,D])=>{D.$unwatch();});}function T(){Object.entries(s.value).forEach(([E,D])=>{D.$clearExternalErrors();});}async function A(){O(),ie(r,m??{}),u(),M();}function I(E){return E.filter(([D,l])=>J(l)?!(l&&typeof l=="object"&&"_null"in l)&&!z(l):Array.isArray(l)?l.length:!0)}function B(E=!0){let D=Object.entries(s.value).map(([l,c])=>[l,c.$extractDirtyFields(E)]);return E&&(D=I(D)),Object.fromEntries(D)}async function v(){try{let E=r.value;return {result:(await Promise.allSettled(Object.values(s.value).map(c=>c.$validate()))).every(c=>c.status==="fulfilled"?c.value.result===!0:!1),data:E}}catch{return {result:!1,data:r.value}}}let{$shortcuts:P,...Q}=w;return reactive({...Q,...P,$fields:s,$value:r,$resetAll:A,$reset:u,$touch:f,$validate:v,$unwatch:O,$watch:_,$clearExternalErrors:T,$extractDirtyFields:B})}function de({rulesDef:e,externalErrors:r,...t}){return Ke(e,t.state)?ut({rulesDef:e,externalErrors:r,...t}):Ze(t.state,e)&&Ye(t.state)?Me({rulesDef:e,externalErrors:r,...t}):et(e)?be({rulesDef:e,externalErrors:r,...t}):null}function je({initialState:e,options:r,scopeRules:t,state:n,customRules:a,shortcuts:o}){let m=Pe();return reactive(Me({rootRules:t,rulesDef:t,state:n,customMessages:a?.(),storage:m,options:r,externalErrors:r.externalErrors,validationGroups:r.validationGroups,initialState:e,shortcuts:o,fieldName:"root",path:""}))}function _e(e,r,t){let n={autoDirty:r?.autoDirty??!0,lazy:r?.lazy??!1,rewardEarly:r?.rewardEarly??!1,clearExternalErrorsOnChange:r?.clearExternalErrorsOnChange??!0};function a(o,m,R){let g=isRef(m)?m:computed(typeof m=="function"?m:()=>m),h={...n,...R},w=isRef(o)?o:ref(o),G=te(toRaw(w.value));return {r$:je({scopeRules:g,state:w,options:h,initialState:G,customRules:e,shortcuts:t})}}return a}var pt=_e();function Ve(){function e(r,t){return t}return e}var Ge=Ve();function dt({rules:e,modifiers:r,shortcuts:t}){let n=_e(e,r,t),a=Ve();return {useRegle:n,inferRules:a}}
|
|
2
|
-
export{
|
|
1
|
+
import {unref,version,isRef,toRef,computed,ref,toRaw,reactive,shallowRef,onScopeDispose,effectScope,watch,watchEffect}from'vue';var Ce=(t=>(t.Inline="__inline",t.Async="__async",t))(Ce||{});function Xe(e,r){return e.some(t=>t[r])}function Ze(e,r){return e.reduce((t,n)=>{let a=n[r]||[];return t.concat(a)},[])}function B(e){return e.map(r=>r instanceof Function?r():unref(r))}function Ke(e){return e.map(r=>r instanceof Function||isRef(r)?r:toRef(()=>r))}function et(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(y=>y.trim()).filter(y=>y.length>0).length:0}function Ie(e,...r){let{validator:t,type:n}=e,a=n==="__async"||t.constructor.name==="AsyncFunction";return {...{validator(d,...g){return e.validator(d,...B(g.length?g:r))},message(d){return typeof e.message=="function"?e.message({...d,$params:B(d?.$params?.length?d.$params:r)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:B(d.$params?.length?d.$params:r)}):e.active??!0},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:B(d.$params?.length?d.$params:r)}):e.tooltip??[]},exec(d){let g=e.validator(d,...B(r)),S;return g instanceof Promise?g.then(w=>(S=w,typeof S=="object"&&"$valid"in S?S.$valid:typeof S=="boolean"?S:!1)):(S=g,typeof S=="object"&&"$valid"in S?S.$valid:typeof S=="boolean"?S:!1)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:a,_params:Ke(r)}}function Pe(e){if(typeof e.validator=="function"){let t=Ie(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(et(e.validator)>1){let a=function(...s){return Ie(e,...s)};return a.validator=t.validator,a.message=t.message,a.active=t.active,a.tooltip=t.tooltip,a.type=t.type,a.exec=t.exec,a._validator=t.validator,a._message=t.message,a._active=t.active,a._tooltip=t.tooltip,a._type=e.type,a._message_pacthed=!1,a._tooltip_pacthed=!1,a._async=n,a}else return t}throw new Error("Validator must be a function")}function q(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function tt(e){return q(e.value)}function K(e){let r=e,t={}.toString.call(e).slice(8,-1);if(t=="Set"&&(r=new Set([...e].map(n=>K(n)))),t=="Map"&&(r=new Map([...e].map(n=>[K(n[0]),K(n[1])]))),t=="Date"&&(r=new Date(e.getTime())),t=="RegExp"&&(r=RegExp(e.source,Ct(e))),t=="Array"||t=="Object"){r=Array.isArray(e)?[]:{};for(let n in e)r[n]=K(e[n]);}return r}function Ct(e){if(typeof e.source.flags=="string")return e.source.flags;{let r=[];return e.global&&r.push("g"),e.ignoreCase&&r.push("i"),e.multiline&&r.push("m"),e.sticky&&r.push("y"),e.unicode&&r.push("u"),r.join("")}}function Oe(e,r,t){return e instanceof Function?e(r,t??0):e}function rt(e,r){isRef(e)?e.value=r:e=r;}function nt(e,r){isRef(e)?e.value=[]:e=[],r.forEach((t,n)=>{let a=isRef(e)?e.value[n]:e[n];a={},ce(a,r[n]);});}function ce(e,r){Object.entries({...unref(e),...r}).forEach(([t,n])=>{let a=isRef(e)?e.value:e,s=isRef(r[t])?r[t]._value:r[t],y=isRef(a[t])?a[t].value:a[t];Array.isArray(a[t])?(a[t]=[],Array.isArray(s)&&s.forEach((d,g)=>{a[t][g]={},ce(a[t][g],s[g]);})):q(s)?ce(y,s):isRef(a[t])?a[t].value=s:a[t]=s;});}function $e(e,r,t){let n,a=(...s)=>new Promise(y=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...s])).then(y);},r);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a}function Pt(e,r){let t=String(e).split("."),n=String(r).split(".");for(let a=0;a<Math.min(t.length,n.length);a++){let s=Number(t[a]),y=Number(n[a]);if(s>y)return 1;if(y>s)return -1;if(!isNaN(s)&&isNaN(y))return 1;if(isNaN(s)&&!isNaN(y))return -1}return 0}var Se=Pt(version,"3.5.0")!==-1;function Ot(){return Math.floor(Math.random()*Date.now()).toString()}function he(){return typeof window>"u"?Ot():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function we(){let e=shallowRef(new Map),r=shallowRef(new Map),t=shallowRef(new Map),n=shallowRef(new Map),a=shallowRef(new Map),s=shallowRef(new Map);function y(u){let i=r.value.get(u);if(i)return i;{let p=ref({});return r.value.set(u,p),p}}function d(u){let i=t.value.get(u);if(i)return i;{let p=ref([]);return t.value.set(u,p),p}}function g(u,i,p){s.value.set(`${u}-${i}`,p);}function S(u,i){return s.value.get(`${u}-${i}`)}function w(u,i){u&&i!=null&&s.value.delete(`${u}-${i}`);}function _(u,i){n.value.set(u,i);}function D(u){return n.value.get(u)??!1}function R(u,i){e.value.set(u,i);}function E(u,i){let p=e.value.get(u);return p?m(i,p)?{valid:!0}:{valid:!1}:void 0}function m(u,i){let p=Object.keys(i),M=Object.keys(u);return M.length!==p.length||!M.every(O=>p.includes(O))?!1:M.every(O=>{let b=u[O],A=i[O];return !A||!b||typeof b=="function"||typeof A=="function"||typeof b=="number"||typeof b=="boolean"?!1:b._params?b._params?.every((I,W)=>{if(typeof A=="number"||typeof A=="boolean")return !0;{let v=B(A._params),P=B(b._params);return v?.[W]===P?.[W]}}):!0})}function F(u){let i=a.value.get(u);if(i)return i;{let p=ref(!1),M=ref(!0),j=ref({}),O=ref(!1);return a.value.set(u,{$pending:p,$valid:M,$metadata:j,$validating:O}),{$pending:p,$valid:M,$metadata:j,$validating:O}}}return onScopeDispose(()=>{e.value.clear(),r.value.clear(),t.value.clear(),n.value.clear(),a.value.clear(),s.value.clear();}),{addRuleDeclEntry:R,setDirtyEntry:_,checkRuleDeclEntry:E,getDirtyState:D,trySetRuleStatusRef:F,getFieldsEntry:y,getCollectionsEntry:d,getArrayStatus:S,addArrayStatus:g,deleteArrayStatus:w,arrayStatusStorage:s}}function k(e){return e==null?!0:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}function at(e,r){return q(e.value)&&q(r.value)&&!Object.entries(r.value).some(t=>fe(t))}function lt(e,r){return !!e.value&&"$each"in e.value||Array.isArray(r.value)}function ot(e){return !!e.value&&q(e.value)}function fe(e){return q(e)&&"_validator"in e}function Re(e){return typeof e.value!="function"}function st(e){return q(e)&&"$fields"in e}function Ae({field:e,silent:r=!1}){return Object.entries(e.$rules??{}).map(([t,n])=>r||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(t=>!!t).reduce((t,n)=>typeof n=="string"?t?.concat([n]):t?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function ut({field:e}){return Object.entries(e.$rules??{}).map(([r,t])=>t.$tooltip).filter(r=>!!r).reduce((r,t)=>typeof t=="string"?r?.concat([t]):r?.concat(t),[])}function ct({fieldProperties:e,customMessages:r,rule:t,ruleKey:n,state:a,path:s,storage:y,$debounce:d}){let g=effectScope(),S,w,_=ref(!1),{$pending:D,$valid:R,$metadata:E,$validating:m}=y.trySetRuleStatusRef(`${s}.${n}`);function F(){S=g.run(()=>{let b=computed(()=>({$value:a.value,$error:e.$error.value,$dirty:e.$dirty.value,$pending:e.$pending.value,$valid:e.$valid.value,$invalid:e.$invalid.value,$rule:{$valid:R.value,$invalid:!R.value,$pending:D.value},$params:T.value,...E.value})),A=computed(()=>Re(t)?typeof t.value.active=="function"?t.value.active(b.value):!!t.value.active:!0);function I(o){let f="",$=r?r[n]?.[o]:void 0;if($&&(typeof $=="function"?f=$(b.value):f=$),Re(t)){let c=`_${o}_patched`;$&&!t.value[c]||(typeof t.value[o]=="function"?f=t.value[o](b.value):f=t.value[o]??"");}return f}let W=computed(()=>{let o=I("message");return k(o)&&(o="This field is not valid"),o}),v=computed(()=>I("tooltip")),P=computed(()=>Re(t)&&t.value.type?t.value.type:n),J=computed(()=>Re(t)?t.value.validator:t.value),T=computed(()=>typeof t.value=="function"?[]:B(t.value._params??[])),x=computed(()=>`${s}.${P.value}`);return {$active:A,$message:W,$type:P,$validator:J,$params:T,$path:x,$tooltip:v}}),w=watch(S.$params,M);}F();function u(){R.value=!0,e.$dirty.value&&(D.value=!0);}async function i(){let b=S.$validator.value,A=b(a.value,...S.$params.value),I=!1,W=a.value;try{u();let v;if(A instanceof Promise?v=await A:v=A,a.value!==W)return !0;if(typeof v=="boolean")I=v;else {let{$valid:P,...J}=v;I=P,E.value=J;}}catch{I=!1;}finally{D.value=!1;}return I}let p=$e(i,d??200);async function M(){try{m.value=!0;let b=!1;if(fe(t.value)&&t.value._async)b=await p();else {let A=S.$validator.value,I=A(a.value,...S.$params.value);if(I 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(I!=null)if(typeof I=="boolean")b=I;else {let{$valid:W,...v}=I;b=W,E.value=v;}}return R.value=b,b}catch{return !1}finally{m.value=!1;}}function j(){R.value=!0,E.value={},D.value=!1,m.value=!1,F();}function O(){w(),g.stop(),g=effectScope();}return reactive({...S,$pending:D,$valid:R,$metadata:E,$haveAsync:_,$validating:m,$validate:M,$unwatch:O,$watch:F,$reset:j})}function Te({state:e,rulesDef:r,customMessages:t,path:n,fieldName:a,storage:s,options:y,externalErrors:d,onUnwatch:g,$isArray:S,initialState:w,shortcuts:_}){let D=effectScope(),R,E=[],m=ref(!1),F=ref(!1),u,i,p,M,j=()=>{};function O(){let l=r.value,C=s.checkRuleDeclEntry(n,l);P.value=Object.fromEntries(Object.entries(l).filter(([G])=>G.startsWith("$"))),I(),v.value=Object.fromEntries(Object.entries(r.value).filter(([G])=>!G.startsWith("$")).map(([G,U])=>{if(U){let ie=toRef(()=>U);return [G,ct({fieldProperties:{$dirty:m,$error:R.$error,$invalid:R.$invalid,$pending:R.$pending,$valid:R.$valid},customMessages:t,rule:ie,ruleKey:G,state:e,path:n,storage:s,$debounce:P.value.$debounce})]}return []}).filter(G=>!!G.length)),R.processShortcuts(),b(),C?.valid!=null&&(m.value=s.getDirtyState(n),m.value&&j()),s.addRuleDeclEntry(n,l);}function b(){j=R.$debounce.value?$e(W,R.$debounce.value??R.$haveAnyAsyncRule?100:0):W;}function A(){v.value&&Object.entries(v.value).forEach(([l,C])=>{C.$unwatch();}),p(),m.value&&s.setDirtyEntry(n,m.value),u?.(),i?.(),D.stop(),D=effectScope(),E.forEach(l=>l.stop()),E=[],g?.(),M?.();}function I(){v.value&&Object.entries(v.value).forEach(([l,C])=>{C.$watch();}),R=D.run(()=>{let l=computed(()=>m.value),C=computed(()=>P.value.$debounce),G=computed(()=>P.value.$lazy!=null?P.value.$lazy:unref(y.lazy)),U=computed(()=>Ue.value===!0?!1:P.value.$rewardEarly!=null?P.value.$rewardEarly:unref(y.rewardEarly)),ie=computed(()=>P.value.$clearExternalErrorsOnChange!=null?P.value.$clearExternalErrorsOnChange:unref(y.clearExternalErrorsOnChange)),Ue=computed(()=>P.value.$autoDirty!=null?P.value.$autoDirty:unref(y.autoDirty)),Be=computed(()=>Object.entries(v.value).some(([Y,X])=>X.$validating)),xe=computed(()=>ge.value&&!ve.value&&m.value),He=computed(()=>xe.value?Ae({field:{$dirty:m.value,$externalErrors:d?.value,$rules:v.value}}):[]),ke=computed(()=>ut({field:{$rules:v.value}})),Le=computed(()=>Ae({field:{$dirty:m.value,$externalErrors:d?.value,$rules:v.value},silent:!0})),qe=computed(()=>!(ge.value||ve.value)),ve=computed(()=>F.value||!U.value?Object.entries(v.value).some(([Y,X])=>X.$pending):!1),ge=computed(()=>d?.value?.length?!0:k(v.value)?!1:!U.value||U.value&&F.value?Object.entries(v.value).some(([Y,X])=>!X.$valid):!1),ze=computed(()=>a),De=computed(()=>d?.value?.length||k(v.value)?!1:m.value&&!k(e.value)&&!Be.value?Object.values(v.value).every(Y=>Y.$valid&&Y.$active):!1),ht=computed(()=>Object.entries(v.value).some(([Y,X])=>X.$haveAsync));function bt(){_?.fields&&Object.entries(_.fields).forEach(([Y,X])=>{let Ye=effectScope();Je[Y]=Ye.run(()=>{let Qe=ref();return watchEffect(()=>{Qe.value=X(reactive({$dirty:m,$externalErrors:d?.value??[],$value:e,$rules:v,$error:xe,$pending:ve,$invalid:ge,$valid:De,$errors:He,$ready:qe,$silentErrors:Le,$anyDirty:l,$tooltips:ke,$name:ze}));}),Qe}),E.push(Ye);});}let Je={};return watch(De,Y=>{Y&&(F.value=!1);}),{$error:xe,$pending:ve,$invalid:ge,$valid:De,$debounce:C,$lazy:G,$errors:He,$ready:qe,$silentErrors:Le,$rewardEarly:U,$autoDirty:Ue,$clearExternalErrorsOnChange:ie,$anyDirty:l,$name:ze,$haveAnyAsyncRule:ht,$shortcuts:Je,$validating:Be,$tooltips:ke,processShortcuts:bt}}),u=watch(e,()=>{R.$autoDirty.value&&(m.value||(m.value=!0)),r.value instanceof Function&&O(),(R.$autoDirty.value||R.$rewardEarly.value&&R.$error.value)&&j(),R.$rewardEarly.value!==!0&&R.$clearExternalErrorsOnChange.value&&$();},{deep:S?!0:Se?1:!0}),p=watch(m,()=>{s.setDirtyEntry(n,m.value);}),i=watch(R.$valid,l=>{R.$rewardEarly.value&&l&&(F.value=!1);}),M=watch(R.$haveAnyAsyncRule,b);}function W(){Object.values(v.value).forEach(l=>{l.$validate();});}let v=ref({}),P=ref({});O();function J(){$(),m.value=!1,s.setDirtyEntry(n,!1),Object.entries(v.value).forEach(([l,C])=>{C.$reset();}),!R.$lazy.value&&R.$autoDirty.value&&Object.values(v.value).forEach(l=>l.$validate());}function T(l=!0,C=!1){m.value||(m.value=!0),C&&l?(R.$autoDirty.value||R.$rewardEarly.value&&R.$error.value)&&j():l&&j();}async function x(){try{let l=e.value;if(F.value=!0,!m.value)m.value=!0;else if(R.$autoDirty.value&&m.value&&!R.$pending.value)return {result:!R.$error.value,data:l};return k(v.value)?{result:!0,data:l}:{result:(await Promise.allSettled(Object.entries(v.value).map(([U,ie])=>ie.$validate()))).every(U=>U.status==="fulfilled"?U.value===!0:!1),data:l}}catch{return {result:!1,data:e.value}}}function o(){A(),e.value=rt(e,w),J();}function f(l=!0){return m.value?e.value:l?{_null:!0}:null}function $(){d?.value?.length&&(d.value=[]);}!R.$lazy.value&&!m.value&&R.$autoDirty.value&&j();let{$shortcuts:c,$validating:h,$autoDirty:L,$rewardEarly:Q,$clearExternalErrorsOnChange:Z,$haveAnyAsyncRule:oe,$debounce:se,$lazy:ue,...V}=R;return reactive({$dirty:m,...V,$externalErrors:d,$value:e,$rules:v,...c,$reset:J,$touch:T,$validate:x,$unwatch:A,$watch:I,$resetAll:o,$extractDirtyFields:f,$clearExternalErrors:$})}function Me({$id:e,path:r,index:t,options:n,storage:a,stateValue:s,customMessages:y,rules:d,externalErrors:g,initialState:S,shortcuts:w,fieldName:_}){let D=d.$key?d.$key:he(),R=`${r}.${String(D)}`;typeof s.value=="object"&&s.value!=null&&(s.value.$id?R=`${r}.${s.value.$id}`:Object.defineProperties(s.value,{$id:{value:D,enumerable:!1,configurable:!1,writable:!1}}));let E=me({state:s,rulesDef:toRef(()=>d),customMessages:y,path:R,storage:a,options:n,externalErrors:toRef(g?.value??[],t),initialState:S?.[t],shortcuts:w,fieldName:_});if(E){let m=s.value?.$id;E.$id=m??String(D),a.addArrayStatus(e,E.$id,E);}return E}function dt({state:e,rulesDef:r,customMessages:t,path:n,storage:a,options:s,externalErrors:y,initialState:d,shortcuts:g,fieldName:S}){let w=effectScope(),_,D=effectScope(),R,E=[];if(!Array.isArray(e.value)&&!r.value.$each)return null;let m=ref(),F=ref(e.value),u,i=ref({}),p=a.getCollectionsEntry(n);R=D.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(f=>typeof f!="object"):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(f=>fe(f)):!1)})),M(),O();function M(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(m.value=he(),Object.defineProperties(e.value,{$id:{value:m.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(m.value=e.value.$id)),!R.isPrimitiveArray.value&&(F.value=i.value.$value,Array.isArray(e.value)?p.value=e.value.map((o,f)=>{let $=Oe(r.value.$each,toRef(()=>o),f),c=Me({$id:m.value,path:n,customMessages:t,rules:$??{},stateValue:toRef(()=>o),index:f,options:s,storage:a,externalErrors:toRef(y?.value??{},"$each"),initialState:d?.[f],shortcuts:g,fieldName:S});return c||null}).filter(o=>!!o):p.value=[],i.value=Te({state:e,rulesDef:r,customMessages:t,path:n,storage:a,options:s,externalErrors:toRef(y?.value??{},"$self"),$isArray:!0,initialState:d,shortcuts:g,fieldName:S}));}function j(){if(Array.isArray(e.value)){let o=K(p.value);p.value=e.value.map((f,$)=>{let c=toRef(()=>f);if(f.$id&&p.value.find(h=>h.$id===f.$id)){let h=a.getArrayStatus(m.value,f.$id);return h?(h.$value=c,h):null}else {let h=Oe(r.value.$each,c,$);if(h){let L=Me({$id:m.value,path:n,customMessages:t,rules:h,stateValue:c,index:$,options:s,storage:a,externalErrors:toRef(y?.value??{},"$each"),initialState:d?.[$],shortcuts:g,fieldName:S});return L||null}}}).filter(f=>!!f),o.filter(f=>!e.value.find($=>f.$id===$.$id)).forEach((f,$)=>{a.deleteArrayStatus(m.value,$.toString());});}else p.value=[];}function O(){u=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?M():j();},{deep:Se?1:!0,flush:"pre"}),_=w.run(()=>{let o=computed(()=>i.value.$dirty&&p.value.every(l=>l.$dirty)),f=computed(()=>i.value.$anyDirty||p.value.some(l=>l.$dirty)),$=computed(()=>i.value.$invalid||p.value.some(l=>l.$invalid)),c=computed(()=>(k(i.value.$rules)?!0:i.value.$valid)&&p.value.every(l=>l.$valid)),h=computed(()=>i.value.$error||p.value.some(l=>l.$error)),L=computed(()=>!($.value||Q.value)),Q=computed(()=>i.value.$pending||p.value.some(l=>l.$pending)),Z=computed(()=>({$self:i.value.$errors,$each:p.value.map(l=>l.$errors)})),oe=computed(()=>({$self:i.value.$silentErrors,$each:p.value.map(l=>l.$silentErrors)})),se=computed(()=>S);function ue(){g?.collections&&Object.entries(g?.collections).forEach(([l,C])=>{let G=effectScope();V[l]=G.run(()=>{let U=ref();return watchEffect(()=>{U.value=C(reactive({$dirty:o,$error:h,$pending:Q,$invalid:$,$valid:c,$errors:Z,$ready:L,$silentErrors:oe,$anyDirty:f,$name:se,$each:p,$field:i,$value:e}));}),U}),E.push(G);});}let V={};return ue(),{$dirty:o,$anyDirty:f,$invalid:$,$valid:c,$error:h,$pending:Q,$errors:Z,$silentErrors:oe,$ready:L,$name:se,$shortcuts:V}}),R.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`),u());}function b(){u&&u(),i.value&&i.value.$unwatch(),p.value&&p.value.forEach(o=>{"$dirty"in o&&o.$unwatch();}),w.stop(),w=effectScope(),D.stop(),D=effectScope(!0),E.forEach(o=>o.stop()),E=[];}function A(o=!0,f=!1){i.value.$touch(o,f),p.value.forEach($=>{$.$touch(o,f);});}function I(){i.value.$reset(),p.value.forEach(o=>{o.$reset();});}async function W(){let o=e.value;try{return {result:(await Promise.allSettled([i.value.$validate(),...p.value.map(c=>c.$validate())])).every(c=>c.status==="fulfilled"?c.value.result===!0:!1),data:o}}catch{return {result:!1,data:o}}}function v(){i.value.$clearExternalErrors(),p.value.forEach(o=>{o.$clearExternalErrors();});}function P(o=!0){let f=p.value.map($=>{if(st($))return $.$extractDirtyFields(o)});return o&&f.every($=>k($))&&(f=[]),f}function J(){b(),nt(e,d),I();}let{$shortcuts:T,...x}=_;return reactive({$field:i,...x,...T,$each:p,$value:e,$validate:W,$unwatch:b,$watch:O,$touch:A,$reset:I,$resetAll:J,$extractDirtyFields:P,$clearExternalErrors:v})}function _e({rulesDef:e,state:r,path:t="",rootRules:n,externalErrors:a,validationGroups:s,initialState:y,fieldName:d,...g}){let S=effectScope(),w,_=[],D=null,R=null,E=null;async function F(T=!0){let x=Object.entries(e.value),o=Object.fromEntries(x.filter(([c,h])=>!!h).map(([c,h])=>{if(h){let L=toRef(r.value,c),Q=toRef(()=>h),Z=toRef(a?.value??{},c);return [c,me({state:L,rulesDef:Q,path:t?`${t}.${c}`:c,externalErrors:Z,initialState:y?.[c],fieldName:c,...g})]}return []})),f=Object.fromEntries(Object.entries(unref(a)??{}).filter(([c,h])=>!(c in e.value)&&!!h).map(([c])=>{let h=toRef(r.value,c);return [c,me({state:h,rulesDef:computed(()=>({})),path:t?`${t}.${c}`:c,externalErrors:toRef(a?.value??{},c),initialState:y?.[c],fieldName:c,...g})]})),$=Object.fromEntries(Object.entries(r.value).filter(([c])=>!(c in e.value)&&!(c in(f.value??{}))).map(([c])=>{let h=toRef(r.value,c);return [c,me({state:h,rulesDef:computed(()=>({})),path:t?`${t}.${c}`:c,externalErrors:toRef(a?.value??{},c),initialState:y?.[c],fieldName:c,...g})]}));u.value={...o,...f,...$},T&&j();}let u=g.storage.getFieldsEntry(t);F();function i(){R?.(),Object.values(u.value).forEach(T=>{T.$reset();}),M();}function p(T=!0,x=!1){Object.values(u.value).forEach(o=>{o.$touch(T,x);});}function M(){a?.value&&(R=watch(a,()=>{O(),F();},{deep:!0}));}function j(){n&&(D=watch(n,()=>{O(),F();},{deep:!0,flush:"post"}),M()),E=watch(r,()=>{O(),F(),p(!0,!0);},{flush:"sync"}),w=S.run(()=>{let T=computed(()=>!!Object.entries(u.value).length&&Object.entries(u.value).every(([V,l])=>l?.$dirty)),x=computed(()=>Object.entries(u.value).some(([V,l])=>l?.$dirty)),o=computed(()=>Object.entries(u.value).some(([V,l])=>l?.$invalid)),f=computed(()=>Object.entries(u.value).every(([V,l])=>l?.$valid)),$=computed(()=>x.value&&!h.value&&o.value),c=computed(()=>unref(g.options.autoDirty)?x.value&&!(o.value||h.value):!(o.value||h.value)),h=computed(()=>Object.entries(u.value).some(([V,l])=>l?.$pending)),L=computed(()=>Object.fromEntries(Object.entries(u.value).map(([V,l])=>[V,l?.$errors]))),Q=computed(()=>Object.fromEntries(Object.entries(u.value).map(([V,l])=>[V,l?.$silentErrors]))),Z=computed(()=>d);function oe(){g.shortcuts?.nested&&Object.entries(g.shortcuts.nested).forEach(([V,l])=>{let C=effectScope();ue[V]=C.run(()=>{let G=ref();return watchEffect(()=>{G.value=l(reactive({$dirty:T,$value:r,$error:$,$pending:h,$invalid:o,$valid:f,$ready:c,$anyDirty:x,$name:Z,$silentErrors:Q,$errors:L,$fields:u}));}),G}),_.push(C);});}let se=computed(()=>s?Object.fromEntries(Object.entries(s?.(u.value)??{}).map(([V,l])=>l.length?[V,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(C=>[C,Xe(l,C)])),...Object.fromEntries(["$errors","$silentErrors"].map(C=>[C,Ze(l,C)]))}]:[])):{}),ue={};return oe(),{$dirty:T,$anyDirty:x,$invalid:o,$valid:f,$error:$,$pending:h,$errors:L,$silentErrors:Q,$ready:c,$name:Z,$shortcuts:ue,$groups:se}});}function O(){D?.(),R?.(),E?.(),_.forEach(T=>T.stop()),_=[],u.value&&Object.entries(u.value).forEach(([T,x])=>{x.$unwatch();});}function b(){Object.entries(u.value).forEach(([T,x])=>{x.$clearExternalErrors();});}async function A(){O(),ce(r,y??{}),i(),F();}function I(T){return T.filter(([x,o])=>q(o)?!(o&&typeof o=="object"&&"_null"in o)&&!k(o):Array.isArray(o)?o.length:!0)}function W(T=!0){let x=Object.entries(u.value).map(([o,f])=>[o,f.$extractDirtyFields(T)]);return T&&(x=I(x)),Object.fromEntries(x)}async function v(){try{let T=r.value;return {result:(await Promise.allSettled(Object.values(u.value).map(f=>f.$validate()))).every(f=>f.status==="fulfilled"?f.value.result===!0:!1),data:T}}catch{return {result:!1,data:r.value}}}let{$shortcuts:P,...J}=w;return reactive({...J,...P,$fields:u,$value:r,$resetAll:A,$reset:i,$touch:p,$validate:v,$unwatch:O,$watch:j,$clearExternalErrors:b,$extractDirtyFields:W})}function me({rulesDef:e,externalErrors:r,...t}){return lt(e,t.state)?dt({rulesDef:e,externalErrors:r,...t}):at(t.state,e)&&tt(t.state)?_e({rulesDef:e,externalErrors:r,...t}):ot(e)?Te({rulesDef:e,externalErrors:r,...t}):null}function Ve({initialState:e,options:r,scopeRules:t,state:n,customRules:a,shortcuts:s}){let y=we();return reactive(_e({rootRules:t,rulesDef:t,state:n,customMessages:a?.(),storage:y,options:r,externalErrors:r.externalErrors,validationGroups:r.validationGroups,initialState:e,shortcuts:s,fieldName:"root",path:""}))}function Ge(e,r,t){let n={autoDirty:r?.autoDirty??!0,lazy:r?.lazy??!1,rewardEarly:r?.rewardEarly??!1,clearExternalErrorsOnChange:r?.clearExternalErrorsOnChange??!0};function a(s,y,d){let g=isRef(y)?y:computed(typeof y=="function"?y:()=>y),S={...n,...d},w=isRef(s)?s:ref(s),_=K(toRaw(w.value));return {r$:Ve({scopeRules:g,state:w,options:S,initialState:_,customRules:e,shortcuts:t})}}return a}var $t=Ge();function Ne(){function e(r,t){return t}return e}var We=Ne();function St({rules:e,modifiers:r,shortcuts:t}){let n=Ge(e,r,t),a=Ne();return {useRegle:n,inferRules:a}}
|
|
2
|
+
export{Ce as InternalRuleType,Pe as createRule,St as defineRegleConfig,We as inferRules,B as unwrapRuleParameters,$t as useRegle};
|