@regle/core 0.2.7 → 0.2.9
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 +1 -1
- package/dist/index.d.cts +5 -4
- package/dist/index.d.ts +5 -4
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var vue=require('vue');var Pe=(r=>(r.Inline="__inline",r.Async="__async",r))(Pe||{});function Ke(e,t){return vue.computed(()=>e.value.some(r=>r[t]))}function et(e,t){return vue.computed(()=>e.value.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[]))}function q(e){return e.map(t=>t instanceof Function?t():vue.unref(t))}function tt(e){return e.map(t=>t instanceof Function||vue.isRef(t)?t:vue.toRef(()=>t))}function rt(e){let t=e.toString();return (t.includes("=>")?t.split("=>")[0]:t).slice(t.indexOf("(")+1,t.indexOf(")")).split(",").map(o=>o.trim()).filter(o=>o.includes("=")).length+e.length}function we(e,...t){let{message:r,validator:n,active:a,type:o,...c}=e,S=o==="__async"||n.constructor.name==="AsyncFunction";return {...{validator($,...g){return e.validator($,...q(g.length?g:t))},message($,g){return typeof e.message=="function"?e.message($,{...g,$params:q(g.$params?.length?g.$params:t)}):e.message},active($,g){return typeof e.active=="function"?e.active($,{...g,$params:q(g.$params?.length?g.$params:t)}):e.active??!0},exec($){let g=e.validator($,...q(t)),y;return g instanceof Promise?g.then(v=>(y=v,typeof y=="object"&&"$valid"in y?y.$valid:typeof y=="boolean"?y:!1)):(y=g,typeof y=="object"&&"$valid"in y?y.$valid:typeof y=="boolean"?y:!1)}},...c,_validator:e.validator,_message:e.message,_active:e.active,_type:e.type,_patched:!1,_async:S,_params:tt(t)}}function Oe(e){if(typeof e.validator=="function"){let r=we(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(rt(e.validator)>1){let a=function(...o){return we(e,...o)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._type=e.type,a._patched=!1,a._async=n,a}else return r}throw new Error("Validator must be a function")}function L(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function nt(e){return L(e.value)}function te(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>te(n)))),r=="Map"&&(t=new Map([...e].map(n=>[te(n[0]),te(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Tt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=te(e[n]);}return t}function Tt(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function Ae(e,t,r){return e instanceof Function?e(t,r??0):e}function at(e,t){vue.isRef(e)?e.value=t:e=t;}function lt(e,t){vue.isRef(e)?e.value=[]:e=[],t.forEach((r,n)=>{let a=vue.isRef(e)?e.value[n]:e[n];a={},pe(a,t[n]);});}function pe(e,t){Object.entries({...vue.unref(e),...t}).forEach(([r,n])=>{let a=vue.isRef(e)?e.value:e,o=vue.isRef(t[r])?t[r]._value:t[r],c=vue.isRef(a[r])?a[r].value:a[r];Array.isArray(a[r])?(a[r]=[],Array.isArray(o)&&o.forEach((S,b)=>{a[r][b]={},pe(a[r][b],o[b]);})):L(o)?pe(c,o):vue.isRef(a[r])?a[r].value=o:a[r]=o;});}function Q(e){return e==null?!0:e===!1?!1:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?e.length===0:typeof e=="object"&&e!=null?Object.keys(e).length===0:typeof e=="string"?!String(e.trim()).length:!1}function he(e,t,r){let n,a=(...o)=>new Promise(c=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(c);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a.doImmediately=(...o)=>new Promise(c=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(c);},0);}),a}function Dt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let o=Number(r[a]),c=Number(n[a]);if(o>c)return 1;if(c>o)return -1;if(!isNaN(o)&&isNaN(c))return 1;if(isNaN(o)&&!isNaN(c))return -1}return 0}var se=Dt(vue.version,"3.5.0")!==-1;function Ct(){return Math.floor(Math.random()*Date.now()).toString()}function Fe(){return typeof window>"u"?Ct():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Me(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),a=vue.shallowRef(new Map),o=vue.shallowRef(new Map);function c(s){let l=t.value.get(s);if(l)return l;{let x=vue.ref({});return t.value.set(s,x),x}}function S(s){let l=r.value.get(s);if(l)return l;{let x=vue.ref([]);return r.value.set(s,x),x}}function b(s,l,x){o.value.set(`${s}-${l}`,x);}function h(s,l){return o.value.get(`${s}-${l}`)}function $(s,l){s&&l!=null&&o.value.delete(`${s}-${l}`);}function g(s,l){n.value.set(s,l);}function y(s){return n.value.get(s)??!1}function v(s,l){e.value.set(s,l);}function f(s,l){let x=e.value.get(s);return x?I(l,x)?{valid:!0}:{valid:!1}:void 0}function I(s,l){let x=Object.keys(l),V=Object.keys(s);return V.length!==x.length||!V.every(P=>x.includes(P))?!1:V.every(P=>{let E=s[P],w=l[P];return !w||!E||typeof E=="function"||typeof w=="function"||typeof E=="number"||typeof E=="boolean"?!1:E._params?E._params?.every((A,_)=>{if(typeof w=="number"||typeof w=="boolean")return !0;{let M=q(w._params),U=q(E._params);return M?.[_]===U?.[_]}}):!0})}function D(s){let l=a.value.get(s);if(l)return l;{let x=vue.ref(!1),V=vue.ref(!0),G=vue.ref({}),P=vue.ref(!1);return a.value.set(s,{$pending:x,$valid:V,$metadata:G,$validating:P}),{$pending:x,$valid:V,$metadata:G,$validating:P}}}return vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:v,setDirtyEntry:g,checkRuleDeclEntry:f,getDirtyState:y,trySetRuleStatusRef:D,getFieldsEntry:c,getCollectionsEntry:S,getArrayStatus:h,addArrayStatus:b,deleteArrayStatus:$,arrayStatusStorage:o}}function ot(e,t){return L(e.value)&&L(t.value)&&!Object.entries(t.value).some(r=>de(r))}function st(e,t){return !!e.value&&"$each"in e.value||Array.isArray(t.value)}function ut(e){return !!e.value&&L(e.value)}function de(e){return L(e)&&"_validator"in e}function ve(e){return typeof e.value!="function"}function je(e){return L(e)&&"$fields"in e}function Ve(e){return "$each"in e||"$errors"in e}function _e({field:e,silent:t=!1}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function ct({$dirty:e,customMessages:t,rule:r,ruleKey:n,state:a,path:o,storage:c,$debounce:S}){let b=vue.effectScope(),h,$,g=vue.ref(!1),{$pending:y,$valid:v,$metadata:f,$validating:I}=c.trySetRuleStatusRef(`${o}.${n}`);function D(){h=b.run(()=>{let E=vue.computed(()=>({$invalid:!v.value,$params:U.value,...f.value})),w=vue.computed(()=>ve(r)?typeof r.value.active=="function"?r.value.active(a.value,E.value):!!r.value.active:!0),A=vue.computed(()=>{let p="",u=t?t[n]?.message:void 0;return u&&(typeof u=="function"?p=u(a.value,E.value):p=u),ve(r)&&(u&&!r.value._patched||(typeof r.value.message=="function"?p=r.value.message(a.value,E.value):p=r.value.message)),Q(p)&&(p="Error",console.warn(`No error message defined for ${o}.${n}`)),p}),_=vue.computed(()=>ve(r)&&r.value.type?r.value.type:n),M=vue.computed(()=>ve(r)?r.value.validator:r.value),U=vue.computed(()=>typeof r.value=="function"?[]:q(r.value._params??[])),R=vue.computed(()=>`${o}.${_.value}`);return {$active:w,$message:A,$type:_,$validator:M,$params:U,$path:R}}),$=vue.watch(h.$params,V,{deep:!0});}D();function s(){v.value=!0,e.value&&(y.value=!0);}async function l(){let E=h.$validator.value,w=E(a.value,...h.$params.value),A=!1,_=a.value;try{s();let M;if(w instanceof Promise?M=await w:M=w,a.value!==_)return !0;if(typeof M=="boolean")A=M;else {let{$valid:U,...R}=M;A=U,f.value=R;}}catch{A=!1;}finally{y.value=!1;}return A}let x=he(l,S??200);async function V(){try{I.value=!0;let E=!1;if(de(r.value)&&r.value._async)E=await x();else {let w=h.$validator.value,A=w(a.value,...h.$params.value);if(A 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(A!=null)if(typeof A=="boolean")E=A;else {let{$valid:_,...M}=A;E=_,f.value=M;}}return v.value=E,E}catch{return !1}finally{I.value=!1;}}function G(){v.value=!0,f.value={},y.value=!1,I.value=!1,D();}function P(){$(),b.stop(),b=vue.effectScope();}return vue.reactive({...h,$pending:y,$valid:v,$metadata:f,_haveAsync:g,$validating:I,$validate:V,$unwatch:P,$watch:D,$reset:G})}function Ee({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:o,options:c,externalErrors:S,onUnwatch:b,$isArray:h,initialState:$,shortcuts:g}){let y=vue.effectScope(),v,f=vue.ref(!1),I=vue.ref(!1),D=vue.ref([]),s,l,x,V,G,P=()=>{};function E(){D.value=S.value??[];}E();function w(){let j=t.value,J=o.checkRuleDeclEntry(n,j);p.value=Object.fromEntries(Object.entries(j).filter(([W])=>W.startsWith("$"))),R.value=Object.fromEntries(Object.entries(t.value).filter(([W])=>!W.startsWith("$")).map(([W,Z])=>{if(Z){let De=vue.toRef(()=>Z);return [W,ct({$dirty:f,customMessages:r,rule:De,ruleKey:W,state:e,path:n,storage:o,$debounce:p.value.$debounce})]}return []}).filter(W=>!!W.length)),M(),A(),J?.valid!=null&&(f.value=o.getDirtyState(n),f.value&&P()),o.addRuleDeclEntry(n,j);}function A(){P=v.$debounce.value?he(U,v.$debounce.value??v.haveAnyAsyncRule?100:0):U;}function _(){R.value&&Object.entries(R.value).forEach(([j,J])=>{J.$unwatch();}),V(),f.value&&o.setDirtyEntry(n,f.value),s(),l(),x(),y.stop(),y=vue.effectScope(),b?.(),G?.();}function M(){R.value&&Object.entries(R.value).forEach(([j,J])=>{J.$watch();}),v=y.run(()=>{let j=vue.computed(()=>f.value),J=vue.computed(()=>p.value.$debounce),W=vue.computed(()=>p.value.$lazy!=null?p.value.$lazy:vue.unref(c.lazy)),Z=vue.computed(()=>p.value.$rewardEarly!=null?p.value.$rewardEarly:vue.unref(c.rewardEarly)),De=vue.computed(()=>p.value.$clearExternalErrorsOnChange!=null?p.value.$clearExternalErrorsOnChange:vue.unref(c.clearExternalErrorsOnChange)),yt=vue.computed(()=>p.value.$autoDirty!=null?p.value.$autoDirty:vue.unref(c.autoDirty)),qe=vue.computed(()=>Object.entries(R.value).some(([ee,Y])=>Y.$validating)),Ce=vue.computed(()=>Re.value&&!Se.value&&f.value),Le=vue.computed(()=>Ce.value?_e({field:{$dirty:f.value,$externalErrors:D.value,$rules:R.value}}):[]),ze=vue.computed(()=>_e({field:{$dirty:f.value,$externalErrors:D.value,$rules:R.value},silent:!0})),Je=vue.computed(()=>!(Re.value||Se.value)),Se=vue.computed(()=>I.value||!Z.value?Object.entries(R.value).some(([ee,Y])=>Y.$pending):!1),Re=vue.computed(()=>D.value?.length?!0:Q(R.value)?!1:!Z.value||Z.value&&I.value?Object.entries(R.value).some(([ee,Y])=>!Y.$valid):!1),Ye=vue.computed(()=>a),Ie=vue.computed(()=>Q(R.value)?!1:f.value&&!Q(e.value)&&!qe.value?D.value?.length?!1:Z.value?Object.entries(R.value).every(([ee,Y])=>Y.$valid):!Re.value:!1),gt=vue.computed(()=>Object.entries(R.value).some(([ee,Y])=>Y._haveAsync));function mt(){g?.fields&&Object.entries(g.fields).forEach(([ee,Y])=>{let $t=vue.effectScope();Qe[ee]=$t.run(()=>{let Xe=vue.ref();return vue.watchEffect(()=>{Xe.value=Y({$dirty:f.value,$externalErrors:D.value,$value:e,$rules:R.value,$error:Ce.value,$pending:Se.value,$invalid:Re.value,$valid:Ie.value,$errors:Le.value,$ready:Je.value,$silentErrors:ze.value,$anyDirty:j.value,$name:Ye.value});}),Xe});});}let Qe={};return mt(),vue.watch(Ie,ee=>{ee&&(I.value=!1);}),{$error:Ce,$pending:Se,$invalid:Re,$valid:Ie,$debounce:J,$lazy:W,$errors:Le,$ready:Je,$silentErrors:ze,$rewardEarly:Z,$autoDirty:yt,$clearExternalErrorsOnChange:De,$anyDirty:j,$name:Ye,haveAnyAsyncRule:gt,$shortcuts:Qe,$validating:qe}}),x=vue.watch(S,E),s=vue.watch(e,()=>{v.$autoDirty.value&&(f.value||(f.value=!0)),t.value instanceof Function&&w(),P(),v.$rewardEarly.value!==!0&&v.$clearExternalErrorsOnChange.value&&C();},{deep:h?!0:se?1:!0}),V=vue.watch(f,()=>{o.setDirtyEntry(n,f.value);}),l=vue.watch(v.$valid,j=>{v.$rewardEarly.value&&j&&(I.value=!1);}),G=vue.watch(v.haveAnyAsyncRule,A);}function U(){Object.values(R.value).forEach(j=>{j.$validate();});}let R=vue.ref(),p=vue.ref();w();function u(){f.value=!1,D.value=[],Object.entries(R.value).forEach(([j,J])=>{J.$reset();}),v.$lazy.value||Object.entries(R.value).map(([j,J])=>J.$validate());}function d(j=!0){f.value||(f.value=!0,j&&P());}async function m(){try{if(I.value=!0,!f.value)f.value=!0;else if(v.$autoDirty.value&&f.value&&!v.$pending.value)return !v.$error.value;return (await Promise.allSettled(Object.entries(R.value).map(([W,Z])=>Z.$validate()))).every(W=>W.status==="fulfilled"?!!W.value:!1)?e.value:!1}catch{return !1}}function i(){_(),e.value=at(e,$),u();}function T(j=!0){return f.value?e.value:null}function C(){D.value=[];}v.$lazy.value||P();let{$anyDirty:B,$error:H,$errors:le,$invalid:re,$name:k,$pending:F,$ready:O,$silentErrors:oe,$valid:xe,$shortcuts:$e,$validating:Qt}=v;return vue.reactive({$dirty:f,$error:H,$errors:le,$valid:xe,$invalid:re,$pending:F,$silentErrors:oe,$anyDirty:B,$ready:O,$name:k,$externalErrors:D,$value:e,$rules:R,...$e,$reset:u,$touch:d,$validate:m,$unwatch:_,$watch:M,$resetAll:i,$extractDirtyFields:T,$clearExternalErrors:C})}function ft({$id:e,path:t,index:r,options:n,storage:a,stateValue:o,customMessages:c,rules:S,externalErrors:b,initialState:h,shortcuts:$,fieldName:g}){let y=S.$key?S.$key:Fe(),v=`${t}.${String(y)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?v=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:y,enumerable:!1,configurable:!1,writable:!1}}));let f=vue.toRef(()=>b.value?.[r]),I=me({state:o,rulesDef:vue.toRef(()=>S),customMessages:c,path:v,storage:a,options:n,externalErrors:f,initialState:h?.[r],shortcuts:$,fieldName:g});if(I){let D=o.value?.$id;I.$id=D??String(y),a.addArrayStatus(e,I.$id,I);}return I}function Rt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:c,initialState:S,shortcuts:b,fieldName:h}){let $=vue.effectScope(),g,y=vue.effectScope(),v;if(!Array.isArray(e.value)&&!t.value.$each)return null;let f=vue.ref(),I=vue.ref(e.value),D,s=vue.ref({}),l=a.getCollectionsEntry(n);v=y.run(()=>{let u=vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(i=>typeof i!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(i=>de(i)):!1),d=vue.computed(()=>c.value?Ve(c.value)?c.value.$errors??[]:[]:[]),m=vue.computed(()=>c.value?Ve(c.value)?c.value.$each??[]:[]:[]);return {isPrimitiveArray:u,$externalErrorsField:d,$externalErrorsEach:m}}),x(),G();function x(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(f.value=Fe(),Object.defineProperties(e.value,{$id:{value:f.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(f.value=e.value.$id)),!v.isPrimitiveArray.value&&(I.value=s.value.$value,Array.isArray(e.value)?l.value=e.value.map((u,d)=>{let m=Ae(t.value.$each,vue.toRef(()=>u),d),i=ft({$id:f.value,path:n,rules:m??{},stateValue:vue.toRef(()=>u),index:d,options:o,storage:a,externalErrors:v.$externalErrorsEach,initialState:S[d],shortcuts:b,fieldName:h});return i||null}).filter(u=>!!u):l.value=[],s.value=Ee({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:v.$externalErrorsField,$isArray:!0,initialState:S,shortcuts:b,fieldName:h}));}function V(){if(Array.isArray(e.value)){let u=te(l.value);l.value=e.value.map((d,m)=>{let i=vue.toRef(()=>d);if(d.$id&&l.value.find(T=>T.$id===d.$id)){let T=a.getArrayStatus(f.value,d.$id);return T?(T.$value=i,T):null}else {let T=Ae(t.value.$each,i,m);if(T){let C=ft({$id:f.value,path:n,rules:T,stateValue:i,index:m,options:o,storage:a,externalErrors:v.$externalErrorsEach,initialState:S[m],shortcuts:b,fieldName:h});return C||null}}}).filter(d=>!!d),u.filter(d=>!e.value.find(m=>d.$id===m.$id)).forEach((d,m)=>{a.deleteArrayStatus(f.value,m.toString());});}else l.value=[];}function G(){D=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?x():V();},{deep:se?1:!0,flush:"pre"}),g=$.run(()=>{let u=vue.computed(()=>s.value.$dirty&&l.value.every(O=>O.$dirty)),d=vue.computed(()=>s.value.$anyDirty||l.value.some(O=>O.$dirty)),m=vue.computed(()=>s.value.$invalid||l.value.some(O=>O.$invalid)),i=vue.computed(()=>(Q(s.value.$rules)?!0:s.value.$valid)&&l.value.every(O=>O.$valid)),T=vue.computed(()=>s.value.$error||l.value.some(O=>O.$error)),C=vue.computed(()=>!(m.value||B.value)),B=vue.computed(()=>s.value.$pending||l.value.some(O=>O.$pending)),H=vue.computed(()=>({$errors:s.value.$errors,$each:l.value.map(O=>O.$errors)})),le=vue.computed(()=>({$errors:s.value.$silentErrors,$each:l.value.map(O=>O.$silentErrors)})),re=vue.computed(()=>h);function k(){b?.collections&&Object.entries(b?.collections).forEach(([O,oe])=>{let xe=vue.effectScope();F[O]=xe.run(()=>{let $e=vue.ref();return vue.watchEffect(()=>{$e.value=oe({$dirty:u.value,$error:T.value,$pending:B.value,$invalid:m.value,$valid:i.value,$errors:H.value,$ready:C.value,$silentErrors:le.value,$anyDirty:d.value,$name:re.value,$each:l.value,$field:s.value,$value:e});}),$e});});}let F={};return k(),{$dirty:u,$anyDirty:d,$invalid:m,$valid:i,$error:T,$pending:B,$errors:H,$silentErrors:le,$ready:C,$name:re,$shortcuts:F}}),v.isPrimitiveArray.value&&(console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`),D());}function P(){D&&D(),s.value&&s.value.$unwatch(),l.value&&l.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),$.stop(),$=vue.effectScope(),y.stop(),y=vue.effectScope(!0);}function E(u=!0){s.value.$touch(u),l.value.forEach(d=>{d.$touch(u);});}function w(){s.value.$reset(),l.value.forEach(u=>{u.$reset();});}async function A(){try{return (await Promise.all([s.value.$validate(),...l.value.map(m=>m.$validate())])).every(m=>m.value!==!1)?e.value:!1}catch{return !1}}function _(){s.value.$clearExternalErrors(),l.value.forEach(u=>{u.$clearExternalErrors();});}function M(u=!0){let d=l.value.map(m=>{if(je(m))return m.$extractDirtyFields(u)});return u&&(d=d.filter(m=>L(m)?!Q(m):!!m)),d}function U(){P(),lt(e,S),w();}let{$shortcuts:R,...p}=g;return vue.reactive({$field:s,...p,...R,$each:l,$value:e,$validate:A,$unwatch:P,$watch:G,$touch:E,$reset:w,$resetAll:U,$extractDirtyFields:M,$clearExternalErrors:_})}function Be({scopeRules:e,state:t,customMessages:r,path:n="",rootRules:a,storage:o,options:c,externalErrors:S,validationGroups:b,initialState:h,shortcuts:$,fieldName:g}){let y,v,f=null;function s(R=!0){l.value=null,vue.triggerRef(l);let p=Object.fromEntries(Object.entries(e.value).map(([i,T])=>{if(T){let C=vue.toRef(t.value,i),B=vue.toRef(()=>T),H=vue.toRef(()=>S.value?.[i]);return [i,me({state:C,rulesDef:B,customMessages:r,path:n?`${n}.${i}`:i,storage:o,options:c,externalErrors:H,initialState:h?.[i],shortcuts:$,fieldName:i})]}return []}).filter(i=>!!i.length&&i[1]!=null)),u=Object.fromEntries(Object.entries(vue.unref(S)??{}).filter(([i])=>!(i in e.value)).map(([i,T])=>{if(T){let C=vue.toRef(t.value,i),B=vue.toRef(()=>({})),H=vue.toRef(()=>T);return [i,me({state:C,rulesDef:B,customMessages:r,path:n?`${n}.${i}`:i,storage:o,options:c,externalErrors:H,initialState:h?.[i],shortcuts:$,fieldName:i})]}return []})),d=Object.fromEntries(Object.entries(t.value).filter(([i])=>!(i in e.value)&&!(i in(u.value??{}))).map(([i,T])=>{let C=vue.toRef(t.value,i),B=vue.toRef(()=>({})),H=vue.toRef(()=>S.value?.[i]);return [i,me({state:C,rulesDef:B,customMessages:r,path:n?`${n}.${i}`:i,storage:o,options:c,externalErrors:H,initialState:h?.[i],shortcuts:$,fieldName:i})]})),m=Object.fromEntries(Object.entries(b?.(p)??{}).map(([i,T])=>T.length?[i,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(C=>[C,Ke(vue.toRef(()=>T),C)])),...Object.fromEntries(["$errors","$silentErrors"].map(C=>[C,et(vue.toRef(()=>T),C)]))}]:[]));l.value={...p,...u,...d,...m},R&&P();}let l=o.getFieldsEntry(n);s();function x(){s(!1),Object.entries(l.value).forEach(([R,p])=>{p.$reset();}),P();}function V(R=!0){Object.values(l.value).forEach(p=>{p.$touch(R);});}async function G(){try{return (await Promise.allSettled(Object.values(l.value).map(u=>u.$validate()))).every(u=>u.status==="fulfilled"?u.value!==!1:!1)?t.value:!1}catch{return !1}}function P(){a&&(f=vue.watch(a,()=>{E(),s();},{deep:se?1:!0,flush:"post"})),y=vue.effectScope(),v=y.run(()=>{let R=vue.computed(()=>!!Object.entries(l.value).length&&Object.entries(l.value).every(([k,F])=>F?.$dirty)),p=vue.computed(()=>Object.entries(l.value).some(([k,F])=>F?.$dirty)),u=vue.computed(()=>Object.entries(l.value).some(([k,F])=>F?.$invalid)),d=vue.computed(()=>Object.entries(l.value).every(([k,F])=>F?.$valid)),m=vue.computed(()=>R.value&&!T.value&&u.value),i=vue.computed(()=>!(u.value||T.value)),T=vue.computed(()=>Object.entries(l.value).some(([k,F])=>F?.$pending)),C=vue.computed(()=>Object.fromEntries(Object.entries(l.value).map(([k,F])=>[k,F?.$errors]))),B=vue.computed(()=>Object.fromEntries(Object.entries(l.value).map(([k,F])=>[k,F?.$silentErrors]))),H=vue.computed(()=>g);function le(){$?.nested&&Object.entries($.nested).forEach(([k,F])=>{let O=vue.effectScope();re[k]=O.run(()=>{let oe=vue.ref();return vue.watchEffect(()=>{oe.value=F({$dirty:R.value,$value:t,$error:m.value,$pending:T.value,$invalid:u.value,$valid:d.value,$ready:i.value,$anyDirty:p.value,$name:H.value,$silentErrors:B.value,$errors:C.value,$fields:l.value});}),oe});});}let re={};return le(),{$dirty:R,$anyDirty:p,$invalid:u,$valid:d,$error:m,$pending:T,$errors:C,$silentErrors:B,$ready:i,$name:H,$shortcuts:re}});}function E(){l.value&&Object.entries(l.value).forEach(([R,p])=>{p.$unwatch();}),f?.(),y.stop(),y=vue.effectScope();}function w(){Object.entries(l.value).forEach(([R,p])=>{p.$clearExternalErrors();});}function A(){E(),pe(t,h??{}),x();}function _(R=!0){let p=Object.entries(l.value).map(([u,d])=>[u,d.$extractDirtyFields(R)]);return R&&(p=p.filter(([u,d])=>L(d)?!Q(d):Array.isArray(d)?d.length:!!d)),Object.fromEntries(p)}let{$shortcuts:M,...U}=v;return vue.reactive({...U,...M,$fields:l,$value:t,$resetAll:A,$reset:x,$touch:V,$validate:G,$unwatch:E,$watch:P,$clearExternalErrors:w,$extractDirtyFields:_})}function me({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:c,index:S,initialState:b,shortcuts:h,onUnwatch:$,fieldName:g}){return st(t,e)?Rt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,index:S,externalErrors:c,initialState:b,fieldName:g,shortcuts:h}):ot(e,t)&&nt(e)?Be({scopeRules:t,state:e,customMessages:r,path:n,storage:a,options:o,index:S,initialState:b,shortcuts:h,fieldName:g,externalErrors:c}):ut(t)?Ee({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,index:S,externalErrors:c,onUnwatch:$,shortcuts:h,initialState:b,fieldName:g}):null}function ke({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:o}){let c=Me(),S=vue.computed(()=>vue.unref(t.externalErrors));return vue.reactive(Be({rootRules:r,scopeRules:r,state:n,customMessages:a?.(),storage:c,options:t,externalErrors:S,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:"root"}))}function We(e,t,r){let n={autoDirty:t?.autoDirty??!0,lazy:t?.lazy??!1,rewardEarly:t?.rewardEarly??!1,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange??!0};function a(o,c,S){let b=vue.isRef(c)?c:vue.computed(typeof c=="function"?c:()=>c),h={...n,...S},$=vue.isRef(o)?o:vue.ref(o),g=te(vue.toRaw($.value));return {r$:ke({scopeRules:b,state:$,options:h,initialState:g,customRules:e,shortcuts:r})}}return a}var dt=We();function Ue(){function e(t,r){return r}return e}var He=Ue();function vt({rules:e,modifiers:t,shortcuts:r}){let n=We(e,t,r),a=Ue();return {useRegle:n,inferRules:a}}exports.InternalRuleType=Pe;exports.createRule=Oe;exports.defineRegleConfig=vt;exports.inferRules=He;exports.unwrapRuleParameters=q;exports.useRegle=dt;
|
|
1
|
+
'use strict';var vue=require('vue');var Ce=(r=>(r.Inline="__inline",r.Async="__async",r))(Ce||{});function Qe(e,t){return vue.computed(()=>e.value.some(r=>r[t]))}function Xe(e,t){return vue.computed(()=>e.value.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[]))}function q(e){return e.map(t=>t instanceof Function?t():vue.unref(t))}function Ze(e){return e.map(t=>t instanceof Function||vue.isRef(t)?t:vue.toRef(()=>t))}function Ke(e){let t=e.toString();return (t.includes("=>")?t.split("=>")[0]:t).slice(t.indexOf("(")+1,t.indexOf(")")).split(",").map(o=>o.trim()).filter(o=>o.includes("=")).length+e.length}function Ie(e,...t){let{message:r,validator:n,active:a,type:o,...f}=e,p=o==="__async"||n.constructor.name==="AsyncFunction";return {...{validator($,...y){return e.validator($,...q(y.length?y:t))},message($,y){return typeof e.message=="function"?e.message($,{...y,$params:q(y.$params?.length?y.$params:t)}):e.message},active($,y){return typeof e.active=="function"?e.active($,{...y,$params:q(y.$params?.length?y.$params:t)}):e.active??!0},exec($){let y=e.validator($,...q(t)),d;return y instanceof Promise?y.then(v=>(d=v,typeof d=="object"&&"$valid"in d?d.$valid:typeof d=="boolean"?d:!1)):(d=y,typeof d=="object"&&"$valid"in d?d.$valid:typeof d=="boolean"?d:!1)}},...f,_validator:e.validator,_message:e.message,_active:e.active,_type:e.type,_patched:!1,_async:p,_params:Ze(t)}}function Pe(e){if(typeof e.validator=="function"){let r=Ie(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(Ke(e.validator)>1){let a=function(...o){return Ie(e,...o)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._type=e.type,a._patched=!1,a._async=n,a}else return r}throw new Error("Validator must be a function")}function L(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function et(e){return L(e.value)}function te(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>te(n)))),r=="Map"&&(t=new Map([...e].map(n=>[te(n[0]),te(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,bt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=te(e[n]);}return t}function bt(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function we(e,t,r){return e instanceof Function?e(t,r??0):e}function tt(e,t){vue.isRef(e)?e.value=t:e=t;}function rt(e,t){vue.isRef(e)?e.value=[]:e=[],t.forEach((r,n)=>{let a=vue.isRef(e)?e.value[n]:e[n];a={},fe(a,t[n]);});}function fe(e,t){Object.entries({...vue.unref(e),...t}).forEach(([r,n])=>{let a=vue.isRef(e)?e.value:e,o=vue.isRef(t[r])?t[r]._value:t[r],f=vue.isRef(a[r])?a[r].value:a[r];Array.isArray(a[r])?(a[r]=[],Array.isArray(o)&&o.forEach((p,E)=>{a[r][E]={},fe(a[r][E],o[E]);})):L(o)?fe(f,o):vue.isRef(a[r])?a[r].value=o:a[r]=o;});}function J(e){return e==null?!0:e===!1?!1:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?e.length===0:typeof e=="object"&&e!=null?Object.keys(e).length===0:typeof e=="string"?!String(e.trim()).length:!1}function $e(e,t,r){let n,a=(...o)=>new Promise(f=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(f);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a.doImmediately=(...o)=>new Promise(f=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(f);},0);}),a}function Et(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let o=Number(r[a]),f=Number(n[a]);if(o>f)return 1;if(f>o)return -1;if(!isNaN(o)&&isNaN(f))return 1;if(isNaN(o)&&!isNaN(f))return -1}return 0}var Se=Et(vue.version,"3.5.0")!==-1;function Dt(){return Math.floor(Math.random()*Date.now()).toString()}function Oe(){return typeof window>"u"?Dt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Ae(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),a=vue.shallowRef(new Map),o=vue.shallowRef(new Map);function f(u){let l=t.value.get(u);if(l)return l;{let x=vue.ref({});return t.value.set(u,x),x}}function p(u){let l=r.value.get(u);if(l)return l;{let x=vue.ref([]);return r.value.set(u,x),x}}function E(u,l,x){o.value.set(`${u}-${l}`,x);}function h(u,l){return o.value.get(`${u}-${l}`)}function $(u,l){u&&l!=null&&o.value.delete(`${u}-${l}`);}function y(u,l){n.value.set(u,l);}function d(u){return n.value.get(u)??!1}function v(u,l){e.value.set(u,l);}function s(u,l){let x=e.value.get(u);return x?V(l,x)?{valid:!0}:{valid:!1}:void 0}function V(u,l){let x=Object.keys(l),A=Object.keys(u);return A.length!==x.length||!A.every(j=>x.includes(j))?!1:A.every(j=>{let b=u[j],P=l[j];return !P||!b||typeof b=="function"||typeof P=="function"||typeof b=="number"||typeof b=="boolean"?!1:b._params?b._params?.every((M,m)=>{if(typeof P=="number"||typeof P=="boolean")return !0;{let D=q(P._params),H=q(b._params);return D?.[m]===H?.[m]}}):!0})}function N(u){let l=a.value.get(u);if(l)return l;{let x=vue.ref(!1),A=vue.ref(!0),B=vue.ref({}),j=vue.ref(!1);return a.value.set(u,{$pending:x,$valid:A,$metadata:B,$validating:j}),{$pending:x,$valid:A,$metadata:B,$validating:j}}}return vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:v,setDirtyEntry:y,checkRuleDeclEntry:s,getDirtyState:d,trySetRuleStatusRef:N,getFieldsEntry:f,getCollectionsEntry:p,getArrayStatus:h,addArrayStatus:E,deleteArrayStatus:$,arrayStatusStorage:o}}function nt(e,t){return L(e.value)&&L(t.value)&&!Object.entries(t.value).some(r=>Re(r))}function at(e,t){return !!e.value&&"$each"in e.value||Array.isArray(t.value)}function lt(e){return !!e.value&&L(e.value)}function Re(e){return L(e)&&"_validator"in e}function pe(e){return typeof e.value!="function"}function Me(e){return L(e)&&"$fields"in e}function Fe({field:e,silent:t=!1}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function ut({$dirty:e,customMessages:t,rule:r,ruleKey:n,state:a,path:o,storage:f,$debounce:p}){let E=vue.effectScope(),h,$,y=vue.ref(!1),{$pending:d,$valid:v,$metadata:s,$validating:V}=f.trySetRuleStatusRef(`${o}.${n}`);function N(){h=E.run(()=>{let b=vue.computed(()=>({$invalid:!v.value,$params:H.value,...s.value})),P=vue.computed(()=>pe(r)?typeof r.value.active=="function"?r.value.active(a.value,b.value):!!r.value.active:!0),M=vue.computed(()=>{let S="",i=t?t[n]?.message:void 0;return i&&(typeof i=="function"?S=i(a.value,b.value):S=i),pe(r)&&(i&&!r.value._patched||(typeof r.value.message=="function"?S=r.value.message(a.value,b.value):S=r.value.message)),J(S)&&(S="Error",console.warn(`No error message defined for ${o}.${n}`)),S}),m=vue.computed(()=>pe(r)&&r.value.type?r.value.type:n),D=vue.computed(()=>pe(r)?r.value.validator:r.value),H=vue.computed(()=>typeof r.value=="function"?[]:q(r.value._params??[])),C=vue.computed(()=>`${o}.${m.value}`);return {$active:P,$message:M,$type:m,$validator:D,$params:H,$path:C}}),$=vue.watch(h.$params,A,{deep:!0});}N();function u(){v.value=!0,e.value&&(d.value=!0);}async function l(){let b=h.$validator.value,P=b(a.value,...h.$params.value),M=!1,m=a.value;try{u();let D;if(P instanceof Promise?D=await P:D=P,a.value!==m)return !0;if(typeof D=="boolean")M=D;else {let{$valid:H,...C}=D;M=H,s.value=C;}}catch{M=!1;}finally{d.value=!1;}return M}let x=$e(l,p??200);async function A(){try{V.value=!0;let b=!1;if(Re(r.value)&&r.value._async)b=await x();else {let P=h.$validator.value,M=P(a.value,...h.$params.value);if(M 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(M!=null)if(typeof M=="boolean")b=M;else {let{$valid:m,...D}=M;b=m,s.value=D;}}return v.value=b,b}catch{return !1}finally{V.value=!1;}}function B(){v.value=!0,s.value={},d.value=!1,V.value=!1,N();}function j(){$(),E.stop(),E=vue.effectScope();}return vue.reactive({...h,$pending:d,$valid:v,$metadata:s,_haveAsync:y,$validating:V,$validate:A,$unwatch:j,$watch:N,$reset:B})}function be({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:o,options:f,externalErrors:p,onUnwatch:E,$isArray:h,initialState:$,shortcuts:y}){let d=vue.effectScope(),v,s=vue.ref(!1),V=vue.ref(!1),N,u,l,x,A=()=>{};function B(){let O=t.value,G=o.checkRuleDeclEntry(n,O);D.value=Object.fromEntries(Object.entries(O).filter(([k])=>k.startsWith("$"))),m.value=Object.fromEntries(Object.entries(t.value).filter(([k])=>!k.startsWith("$")).map(([k,X])=>{if(X){let Ee=vue.toRef(()=>X);return [k,ut({$dirty:s,customMessages:r,rule:Ee,ruleKey:k,state:e,path:n,storage:o,$debounce:D.value.$debounce})]}return []}).filter(k=>!!k.length)),P(),j(),G?.valid!=null&&(s.value=o.getDirtyState(n),s.value&&A()),o.addRuleDeclEntry(n,O);}function j(){A=v.$debounce.value?$e(M,v.$debounce.value??v.haveAnyAsyncRule?100:0):M;}function b(){m.value&&Object.entries(m.value).forEach(([O,G])=>{G.$unwatch();}),l(),s.value&&o.setDirtyEntry(n,s.value),N?.(),u?.(),d.stop(),d=vue.effectScope(),E?.(),x?.();}function P(){m.value&&Object.entries(m.value).forEach(([O,G])=>{G.$watch();}),v=d.run(()=>{let O=vue.computed(()=>s.value),G=vue.computed(()=>D.value.$debounce),k=vue.computed(()=>D.value.$lazy!=null?D.value.$lazy:vue.unref(f.lazy)),X=vue.computed(()=>D.value.$rewardEarly!=null?D.value.$rewardEarly:vue.unref(f.rewardEarly)),Ee=vue.computed(()=>D.value.$clearExternalErrorsOnChange!=null?D.value.$clearExternalErrorsOnChange:vue.unref(f.clearExternalErrorsOnChange)),dt=vue.computed(()=>D.value.$autoDirty!=null?D.value.$autoDirty:vue.unref(f.autoDirty)),We=vue.computed(()=>Object.entries(m.value).some(([ee,z])=>z.$validating)),De=vue.computed(()=>ce.value&&!ge.value&&s.value),ke=vue.computed(()=>De.value?Fe({field:{$dirty:s.value,$externalErrors:p?.value,$rules:m.value}}):[]),He=vue.computed(()=>Fe({field:{$dirty:s.value,$externalErrors:p?.value,$rules:m.value},silent:!0})),qe=vue.computed(()=>!(ce.value||ge.value)),ge=vue.computed(()=>V.value||!X.value?Object.entries(m.value).some(([ee,z])=>z.$pending):!1),ce=vue.computed(()=>p?.value?.length?!0:J(m.value)?!1:!X.value||X.value&&V.value?Object.entries(m.value).some(([ee,z])=>!z.$valid):!1),Le=vue.computed(()=>a),xe=vue.computed(()=>J(m.value)?!1:s.value&&!J(e.value)&&!We.value?p?.value?.length?!1:X.value?Object.entries(m.value).every(([ee,z])=>z.$valid):!ce.value:!1),vt=vue.computed(()=>Object.entries(m.value).some(([ee,z])=>z._haveAsync));function yt(){y?.fields&&Object.entries(y.fields).forEach(([ee,z])=>{let mt=vue.effectScope();ze[ee]=mt.run(()=>{let Je=vue.ref();return vue.watchEffect(()=>{Je.value=z({$dirty:s.value,$externalErrors:p?.value??[],$value:e,$rules:m.value,$error:De.value,$pending:ge.value,$invalid:ce.value,$valid:xe.value,$errors:ke.value,$ready:qe.value,$silentErrors:He.value,$anyDirty:O.value,$name:Le.value});}),Je});});}let ze={};return yt(),vue.watch(xe,ee=>{ee&&(V.value=!1);}),{$error:De,$pending:ge,$invalid:ce,$valid:xe,$debounce:G,$lazy:k,$errors:ke,$ready:qe,$silentErrors:He,$rewardEarly:X,$autoDirty:dt,$clearExternalErrorsOnChange:Ee,$anyDirty:O,$name:Le,haveAnyAsyncRule:vt,$shortcuts:ze,$validating:We}}),N=vue.watch(e,()=>{v.$autoDirty.value&&(s.value||(s.value=!0)),t.value instanceof Function&&B(),A(),v.$rewardEarly.value!==!0&&v.$clearExternalErrorsOnChange.value&&g();},{deep:h?!0:Se?1:!0}),l=vue.watch(s,()=>{o.setDirtyEntry(n,s.value);}),u=vue.watch(v.$valid,O=>{v.$rewardEarly.value&&O&&(V.value=!1);}),x=vue.watch(v.haveAnyAsyncRule,j);}function M(){Object.values(m.value).forEach(O=>{O.$validate();});}let m=vue.ref(),D=vue.ref();B();function H(){s.value=!1,g(),Object.entries(m.value).forEach(([O,G])=>{G.$reset();}),v.$lazy.value||Object.entries(m.value).map(([O,G])=>G.$validate());}function C(O=!0){s.value||(s.value=!0,O&&A());}async function S(){try{if(V.value=!0,!s.value)s.value=!0;else if(v.$autoDirty.value&&s.value&&!v.$pending.value)return !v.$error.value;return (await Promise.allSettled(Object.entries(m.value).map(([k,X])=>X.$validate()))).every(k=>k.status==="fulfilled"?k.value!=!1:!1)?e.value:!1}catch{return !1}}function i(){b(),e.value=tt(e,$),H();}function R(O=!0){return s.value?e.value:null}function g(){p?.value?.length&&(p.value=[]);}!v.$lazy.value&&!s.value&&v.$autoDirty.value&&A();let{$anyDirty:c,$error:T,$errors:I,$invalid:U,$name:K,$pending:oe,$ready:ne,$silentErrors:W,$valid:F,$shortcuts:w,$validating:se}=v;return vue.reactive({$dirty:s,$error:T,$errors:I,$valid:F,$invalid:U,$pending:oe,$silentErrors:W,$anyDirty:c,$ready:ne,$name:K,$externalErrors:p,$value:e,$rules:m,...w,$reset:H,$touch:C,$validate:S,$unwatch:b,$watch:P,$resetAll:i,$extractDirtyFields:R,$clearExternalErrors:g})}function it({$id:e,path:t,index:r,options:n,storage:a,stateValue:o,customMessages:f,rules:p,externalErrors:E,initialState:h,shortcuts:$,fieldName:y}){let d=p.$key?p.$key:Oe(),v=`${t}.${String(d)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?v=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:d,enumerable:!1,configurable:!1,writable:!1}}));let s=me({state:o,rulesDef:vue.toRef(()=>p),customMessages:f,path:v,storage:a,options:n,externalErrors:vue.toRef(E?.value??[],r),initialState:h?.[r],shortcuts:$,fieldName:y});if(s){let V=o.value?.$id;s.$id=V??String(d),a.addArrayStatus(e,s.$id,s);}return s}function st({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:f,initialState:p,shortcuts:E,fieldName:h}){let $=vue.effectScope(),y,d=vue.effectScope(),v;if(!Array.isArray(e.value)&&!t.value.$each)return null;let s=vue.ref(),V=vue.ref(e.value),N,u=vue.ref({}),l=a.getCollectionsEntry(n);v=d.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(R=>typeof R!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(R=>Re(R)):!1)})),x(),B();function x(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(s.value=Oe(),Object.defineProperties(e.value,{$id:{value:s.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(s.value=e.value.$id)),!v.isPrimitiveArray.value&&(V.value=u.value.$value,Array.isArray(e.value)?l.value=e.value.map((i,R)=>{let g=we(t.value.$each,vue.toRef(()=>i),R),c=it({$id:s.value,path:n,rules:g??{},stateValue:vue.toRef(()=>i),index:R,options:o,storage:a,externalErrors:vue.toRef(f?.value??{},"$each"),initialState:p[R],shortcuts:E,fieldName:h});return c||null}).filter(i=>!!i):l.value=[],u.value=be({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:vue.toRef(f?.value??{},"$errors"),$isArray:!0,initialState:p,shortcuts:E,fieldName:h}));}function A(){if(Array.isArray(e.value)){let i=te(l.value);l.value=e.value.map((R,g)=>{let c=vue.toRef(()=>R);if(R.$id&&l.value.find(T=>T.$id===R.$id)){let T=a.getArrayStatus(s.value,R.$id);return T?(T.$value=c,T):null}else {let T=we(t.value.$each,c,g);if(T){let I=it({$id:s.value,path:n,rules:T,stateValue:c,index:g,options:o,storage:a,externalErrors:vue.toRef(f?.value??{},"$each"),initialState:p[g],shortcuts:E,fieldName:h});return I||null}}}).filter(R=>!!R),i.filter(R=>!e.value.find(g=>R.$id===g.$id)).forEach((R,g)=>{a.deleteArrayStatus(s.value,g.toString());});}else l.value=[];}function B(){N=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?x():A();},{deep:Se?1:!0,flush:"pre"}),y=$.run(()=>{let i=vue.computed(()=>u.value.$dirty&&l.value.every(w=>w.$dirty)),R=vue.computed(()=>u.value.$anyDirty||l.value.some(w=>w.$dirty)),g=vue.computed(()=>u.value.$invalid||l.value.some(w=>w.$invalid)),c=vue.computed(()=>(J(u.value.$rules)?!0:u.value.$valid)&&l.value.every(w=>w.$valid)),T=vue.computed(()=>u.value.$error||l.value.some(w=>w.$error)),I=vue.computed(()=>!(g.value||U.value)),U=vue.computed(()=>u.value.$pending||l.value.some(w=>w.$pending)),K=vue.computed(()=>({$errors:u.value.$errors,$each:l.value.map(w=>w.$errors)})),oe=vue.computed(()=>({$errors:u.value.$silentErrors,$each:l.value.map(w=>w.$silentErrors)})),ne=vue.computed(()=>h);function W(){E?.collections&&Object.entries(E?.collections).forEach(([w,se])=>{let O=vue.effectScope();F[w]=O.run(()=>{let G=vue.ref();return vue.watchEffect(()=>{G.value=se({$dirty:i.value,$error:T.value,$pending:U.value,$invalid:g.value,$valid:c.value,$errors:K.value,$ready:I.value,$silentErrors:oe.value,$anyDirty:R.value,$name:ne.value,$each:l.value,$field:u.value,$value:e});}),G});});}let F={};return W(),{$dirty:i,$anyDirty:R,$invalid:g,$valid:c,$error:T,$pending:U,$errors:K,$silentErrors:oe,$ready:I,$name:ne,$shortcuts:F}}),v.isPrimitiveArray.value&&(console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`),N());}function j(){N&&N(),u.value&&u.value.$unwatch(),l.value&&l.value.forEach(i=>{"$dirty"in i&&i.$unwatch();}),$.stop(),$=vue.effectScope(),d.stop(),d=vue.effectScope(!0);}function b(i=!0){u.value.$touch(i),l.value.forEach(R=>{R.$touch(i);});}function P(){u.value.$reset(),l.value.forEach(i=>{i.$reset();});}async function M(){try{return (await Promise.all([u.value.$validate(),...l.value.map(g=>g.$validate())])).every(g=>g.value!==!1)?e.value:!1}catch{return !1}}function m(){u.value.$clearExternalErrors(),l.value.forEach(i=>{i.$clearExternalErrors();});}function D(i=!0){let R=l.value.map(g=>{if(Me(g))return g.$extractDirtyFields(i)});return i&&(R=R.filter(g=>L(g)?!J(g):!!g)),R}function H(){j(),rt(e,p),P();}let{$shortcuts:C,...S}=y;return vue.reactive({$field:u,...S,...C,$each:l,$value:e,$validate:M,$unwatch:j,$watch:B,$touch:b,$reset:P,$resetAll:H,$extractDirtyFields:D,$clearExternalErrors:m})}function _e({scopeRules:e,state:t,customMessages:r,path:n="",rootRules:a,storage:o,options:f,externalErrors:p,validationGroups:E,initialState:h,shortcuts:$,fieldName:y}){let d,v,s=null;function u(C=!0){l.value=null,vue.triggerRef(l);let S=Object.fromEntries(Object.entries(e.value).map(([c,T])=>{if(T){let I=vue.toRef(t.value,c),U=vue.toRef(()=>T),K=vue.toRef(p?.value,c);return [c,me({state:I,rulesDef:U,customMessages:r,path:n?`${n}.${c}`:c,storage:o,options:f,externalErrors:K,initialState:h?.[c],shortcuts:$,fieldName:c})]}return []}).filter(c=>!!c.length&&c[1]!=null)),i=Object.fromEntries(Object.entries(vue.unref(p)??{}).filter(([c])=>!(c in e.value)).map(([c,T])=>{if(T){let I=vue.toRef(t.value,c),U=vue.toRef(()=>({}));return [c,me({state:I,rulesDef:U,customMessages:r,path:n?`${n}.${c}`:c,storage:o,options:f,externalErrors:vue.toRef(p?.value??{},c),initialState:h?.[c],shortcuts:$,fieldName:c})]}return []})),R=Object.fromEntries(Object.entries(t.value).filter(([c])=>!(c in e.value)&&!(c in(i.value??{}))).map(([c,T])=>{let I=vue.toRef(t.value,c),U=vue.toRef(()=>({}));return [c,me({state:I,rulesDef:U,customMessages:r,path:n?`${n}.${c}`:c,storage:o,options:f,externalErrors:vue.toRef(p?.value??{},c),initialState:h?.[c],shortcuts:$,fieldName:c})]})),g=Object.fromEntries(Object.entries(E?.(S)??{}).map(([c,T])=>T.length?[c,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(I=>[I,Qe(vue.toRef(()=>T),I)])),...Object.fromEntries(["$errors","$silentErrors"].map(I=>[I,Xe(vue.toRef(()=>T),I)]))}]:[]));l.value={...S,...i,...R,...g},C&&j();}let l=o.getFieldsEntry(n);u();function x(){Object.entries(l.value).forEach(([C,S])=>{S.$reset();});}function A(C=!0){Object.values(l.value).forEach(S=>{S.$touch(C);});}async function B(){try{return (await Promise.allSettled(Object.values(l.value).map(i=>i.$validate()))).every(i=>i.status==="fulfilled"?i.value!==!1:!1)?t.value:!1}catch{return !1}}function j(){a&&(s=vue.watch([a,p],()=>{b(),u();},{deep:!0,flush:"post"})),d=vue.effectScope(),v=d.run(()=>{let C=vue.computed(()=>!!Object.entries(l.value).length&&Object.entries(l.value).every(([W,F])=>F?.$dirty)),S=vue.computed(()=>Object.entries(l.value).some(([W,F])=>F?.$dirty)),i=vue.computed(()=>Object.entries(l.value).some(([W,F])=>F?.$invalid)),R=vue.computed(()=>Object.entries(l.value).every(([W,F])=>F?.$valid)),g=vue.computed(()=>C.value&&!T.value&&i.value),c=vue.computed(()=>vue.unref(f.autoDirty)?S.value&&!(i.value||T.value):!(i.value||T.value)),T=vue.computed(()=>Object.entries(l.value).some(([W,F])=>F?.$pending)),I=vue.computed(()=>Object.fromEntries(Object.entries(l.value).map(([W,F])=>[W,F?.$errors]))),U=vue.computed(()=>Object.fromEntries(Object.entries(l.value).map(([W,F])=>[W,F?.$silentErrors]))),K=vue.computed(()=>y);function oe(){$?.nested&&Object.entries($.nested).forEach(([W,F])=>{let w=vue.effectScope();ne[W]=w.run(()=>{let se=vue.ref();return vue.watchEffect(()=>{se.value=F({$dirty:C.value,$value:t,$error:g.value,$pending:T.value,$invalid:i.value,$valid:R.value,$ready:c.value,$anyDirty:S.value,$name:K.value,$silentErrors:U.value,$errors:I.value,$fields:l.value});}),se});});}let ne={};return oe(),{$dirty:C,$anyDirty:S,$invalid:i,$valid:R,$error:g,$pending:T,$errors:I,$silentErrors:U,$ready:c,$name:K,$shortcuts:ne}});}function b(){l.value&&Object.entries(l.value).forEach(([C,S])=>{S.$unwatch();}),s?.(),d.stop(),d=vue.effectScope();}function P(){Object.entries(l.value).forEach(([C,S])=>{S.$clearExternalErrors();});}function M(){b(),fe(t,h??{}),u(!1),x(),j();}function m(C=!0){let S=Object.entries(l.value).map(([i,R])=>[i,R.$extractDirtyFields(C)]);return C&&(S=S.filter(([i,R])=>L(R)?!J(R):Array.isArray(R)?R.length:!!R)),Object.fromEntries(S)}let{$shortcuts:D,...H}=v;return vue.reactive({...H,...D,$fields:l,$value:t,$resetAll:M,$reset:x,$touch:A,$validate:B,$unwatch:b,$watch:j,$clearExternalErrors:P,$extractDirtyFields:m})}function me({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:f,index:p,initialState:E,shortcuts:h,onUnwatch:$,fieldName:y}){return at(t,e)?st({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,index:p,externalErrors:f,initialState:E,fieldName:y,shortcuts:h}):nt(e,t)&&et(e)?_e({scopeRules:t,state:e,customMessages:r,path:n,storage:a,options:o,index:p,initialState:E,shortcuts:h,fieldName:y,externalErrors:f}):lt(t)?be({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,index:p,externalErrors:f,onUnwatch:$,shortcuts:h,initialState:E,fieldName:y}):null}function Ne({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:o}){let f=Ae();return vue.reactive(_e({rootRules:r,scopeRules:r,state:n,customMessages:a?.(),storage:f,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:"root"}))}function Ge(e,t,r){let n={autoDirty:t?.autoDirty??!0,lazy:t?.lazy??!1,rewardEarly:t?.rewardEarly??!1,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange??!0};function a(o,f,p){let E=vue.isRef(f)?f:vue.computed(typeof f=="function"?f:()=>f),h={...n,...p},$=vue.isRef(o)?o:vue.ref(o),y=te(vue.toRaw($.value));return {r$:Ne({scopeRules:E,state:$,options:h,initialState:y,customRules:e,shortcuts:r})}}return a}var Rt=Ge();function Be(){function e(t,r){return r}return e}var Ue=Be();function pt({rules:e,modifiers:t,shortcuts:r}){let n=Ge(e,t,r),a=Be();return {useRegle:n,inferRules:a}}exports.InternalRuleType=Ce;exports.createRule=Pe;exports.defineRegleConfig=pt;exports.inferRules=Ue;exports.unwrapRuleParameters=q;exports.useRegle=Rt;
|
package/dist/index.d.cts
CHANGED
|
@@ -16,6 +16,7 @@ type DeepMaybeRef<T extends Record<string, any>> = {
|
|
|
16
16
|
type ExcludeByType<T, U> = {
|
|
17
17
|
[K in keyof T as T[K] extends U ? never : K]: T[K] extends U ? never : T[K];
|
|
18
18
|
};
|
|
19
|
+
type PrimitiveTypes = string | number | boolean | bigint | Date | File;
|
|
19
20
|
type NoInferLegacy<A extends any> = [A][A extends any ? 0 : never];
|
|
20
21
|
|
|
21
22
|
type ArrayElement<T> = T extends Array<infer U> ? U : never;
|
|
@@ -271,7 +272,7 @@ interface RegleBehaviourOptions {
|
|
|
271
272
|
clearExternalErrorsOnChange?: boolean;
|
|
272
273
|
}
|
|
273
274
|
interface LocalRegleBehaviourOptions<TState extends Record<string, any>, TRules extends ReglePartialRuleTree<TState, CustomRulesDeclarationTree>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]> = {}> {
|
|
274
|
-
externalErrors?:
|
|
275
|
+
externalErrors?: Ref<RegleExternalErrorTree<Unwrap<TState>>>;
|
|
275
276
|
validationGroups?: (fields: RegleStatus<TState, TRules>['$fields']) => TValidationGroups;
|
|
276
277
|
}
|
|
277
278
|
type RegleValidationGroupEntry = RegleFieldStatus<any, any>;
|
|
@@ -324,7 +325,7 @@ declare const useRegle: useRegleFn<Partial<AllRulesDeclarations>, RegleShortcutD
|
|
|
324
325
|
|
|
325
326
|
interface inferRulesFn<TCustomRules extends Partial<AllRulesDeclarations>> {
|
|
326
327
|
<TState extends Record<string, any>, TRules extends ReglePartialRuleTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules> & TValid, TValid = isDeepExact<NoInferLegacy<TRules>, ReglePartialRuleTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules>> extends true ? {} : never>(state: MaybeRef<TState> | DeepReactiveState<TState>, rulesFactory: TRules): TRules;
|
|
327
|
-
<TState extends
|
|
328
|
+
<TState extends PrimitiveTypes, TRules extends RegleRuleDecl>(state: MaybeRef<TState>, rulesFactory: TRules): TRules;
|
|
328
329
|
}
|
|
329
330
|
declare const inferRules: inferRulesFn<Partial<AllRulesDeclarations>>;
|
|
330
331
|
|
|
@@ -572,8 +573,8 @@ type InlineRuleDeclaration<TValue extends any = any, TParams extends any[] = any
|
|
|
572
573
|
* */
|
|
573
574
|
type FormRuleDeclaration<TValue extends any, TParams extends any[], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition> = RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TMetadata extends RegleRuleMetadataDefinition = TReturn extends Promise<infer M> ? M : TReturn, TAsync extends boolean = boolean> = InlineRuleDeclaration<TValue, TParams, TReturn> | RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>;
|
|
574
575
|
|
|
575
|
-
type RegleErrorTree<TState = Record<string, any> | any[]
|
|
576
|
-
readonly [K in keyof TState]: RegleValidationErrors<TState[K]>;
|
|
576
|
+
type RegleErrorTree<TState = MaybeRef<Record<string, any> | any[]>> = {
|
|
577
|
+
readonly [K in keyof UnwrapNestedRefs<TState>]: RegleValidationErrors<UnwrapNestedRefs<TState>[K]>;
|
|
577
578
|
};
|
|
578
579
|
type RegleExternalErrorTree<TState = Record<string, any> | any[]> = PartialDeep<RegleErrorTree<TState>, {
|
|
579
580
|
recurseIntoArrays: true;
|
package/dist/index.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ type DeepMaybeRef<T extends Record<string, any>> = {
|
|
|
16
16
|
type ExcludeByType<T, U> = {
|
|
17
17
|
[K in keyof T as T[K] extends U ? never : K]: T[K] extends U ? never : T[K];
|
|
18
18
|
};
|
|
19
|
+
type PrimitiveTypes = string | number | boolean | bigint | Date | File;
|
|
19
20
|
type NoInferLegacy<A extends any> = [A][A extends any ? 0 : never];
|
|
20
21
|
|
|
21
22
|
type ArrayElement<T> = T extends Array<infer U> ? U : never;
|
|
@@ -271,7 +272,7 @@ interface RegleBehaviourOptions {
|
|
|
271
272
|
clearExternalErrorsOnChange?: boolean;
|
|
272
273
|
}
|
|
273
274
|
interface LocalRegleBehaviourOptions<TState extends Record<string, any>, TRules extends ReglePartialRuleTree<TState, CustomRulesDeclarationTree>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]> = {}> {
|
|
274
|
-
externalErrors?:
|
|
275
|
+
externalErrors?: Ref<RegleExternalErrorTree<Unwrap<TState>>>;
|
|
275
276
|
validationGroups?: (fields: RegleStatus<TState, TRules>['$fields']) => TValidationGroups;
|
|
276
277
|
}
|
|
277
278
|
type RegleValidationGroupEntry = RegleFieldStatus<any, any>;
|
|
@@ -324,7 +325,7 @@ declare const useRegle: useRegleFn<Partial<AllRulesDeclarations>, RegleShortcutD
|
|
|
324
325
|
|
|
325
326
|
interface inferRulesFn<TCustomRules extends Partial<AllRulesDeclarations>> {
|
|
326
327
|
<TState extends Record<string, any>, TRules extends ReglePartialRuleTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules> & TValid, TValid = isDeepExact<NoInferLegacy<TRules>, ReglePartialRuleTree<Unwrap<TState>, Partial<AllRulesDeclarations> & TCustomRules>> extends true ? {} : never>(state: MaybeRef<TState> | DeepReactiveState<TState>, rulesFactory: TRules): TRules;
|
|
327
|
-
<TState extends
|
|
328
|
+
<TState extends PrimitiveTypes, TRules extends RegleRuleDecl>(state: MaybeRef<TState>, rulesFactory: TRules): TRules;
|
|
328
329
|
}
|
|
329
330
|
declare const inferRules: inferRulesFn<Partial<AllRulesDeclarations>>;
|
|
330
331
|
|
|
@@ -572,8 +573,8 @@ type InlineRuleDeclaration<TValue extends any = any, TParams extends any[] = any
|
|
|
572
573
|
* */
|
|
573
574
|
type FormRuleDeclaration<TValue extends any, TParams extends any[], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition> = RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TMetadata extends RegleRuleMetadataDefinition = TReturn extends Promise<infer M> ? M : TReturn, TAsync extends boolean = boolean> = InlineRuleDeclaration<TValue, TParams, TReturn> | RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>;
|
|
574
575
|
|
|
575
|
-
type RegleErrorTree<TState = Record<string, any> | any[]
|
|
576
|
-
readonly [K in keyof TState]: RegleValidationErrors<TState[K]>;
|
|
576
|
+
type RegleErrorTree<TState = MaybeRef<Record<string, any> | any[]>> = {
|
|
577
|
+
readonly [K in keyof UnwrapNestedRefs<TState>]: RegleValidationErrors<UnwrapNestedRefs<TState>[K]>;
|
|
577
578
|
};
|
|
578
579
|
type RegleExternalErrorTree<TState = Record<string, any> | any[]> = PartialDeep<RegleErrorTree<TState>, {
|
|
579
580
|
recurseIntoArrays: true;
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {unref,version,isRef,toRef,computed,ref,toRaw,reactive,shallowRef,onScopeDispose,triggerRef,watch,effectScope,watchEffect}from'vue';var Pe=(r=>(r.Inline="__inline",r.Async="__async",r))(Pe||{});function Ke(e,t){return computed(()=>e.value.some(r=>r[t]))}function et(e,t){return computed(()=>e.value.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[]))}function q(e){return e.map(t=>t instanceof Function?t():unref(t))}function tt(e){return e.map(t=>t instanceof Function||isRef(t)?t:toRef(()=>t))}function rt(e){let t=e.toString();return (t.includes("=>")?t.split("=>")[0]:t).slice(t.indexOf("(")+1,t.indexOf(")")).split(",").map(o=>o.trim()).filter(o=>o.includes("=")).length+e.length}function we(e,...t){let{message:r,validator:n,active:a,type:o,...c}=e,S=o==="__async"||n.constructor.name==="AsyncFunction";return {...{validator($,...g){return e.validator($,...q(g.length?g:t))},message($,g){return typeof e.message=="function"?e.message($,{...g,$params:q(g.$params?.length?g.$params:t)}):e.message},active($,g){return typeof e.active=="function"?e.active($,{...g,$params:q(g.$params?.length?g.$params:t)}):e.active??!0},exec($){let g=e.validator($,...q(t)),y;return g instanceof Promise?g.then(v=>(y=v,typeof y=="object"&&"$valid"in y?y.$valid:typeof y=="boolean"?y:!1)):(y=g,typeof y=="object"&&"$valid"in y?y.$valid:typeof y=="boolean"?y:!1)}},...c,_validator:e.validator,_message:e.message,_active:e.active,_type:e.type,_patched:!1,_async:S,_params:tt(t)}}function Oe(e){if(typeof e.validator=="function"){let r=we(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(rt(e.validator)>1){let a=function(...o){return we(e,...o)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._type=e.type,a._patched=!1,a._async=n,a}else return r}throw new Error("Validator must be a function")}function L(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function nt(e){return L(e.value)}function te(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>te(n)))),r=="Map"&&(t=new Map([...e].map(n=>[te(n[0]),te(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Tt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=te(e[n]);}return t}function Tt(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function Ae(e,t,r){return e instanceof Function?e(t,r??0):e}function at(e,t){isRef(e)?e.value=t:e=t;}function lt(e,t){isRef(e)?e.value=[]:e=[],t.forEach((r,n)=>{let a=isRef(e)?e.value[n]:e[n];a={},pe(a,t[n]);});}function pe(e,t){Object.entries({...unref(e),...t}).forEach(([r,n])=>{let a=isRef(e)?e.value:e,o=isRef(t[r])?t[r]._value:t[r],c=isRef(a[r])?a[r].value:a[r];Array.isArray(a[r])?(a[r]=[],Array.isArray(o)&&o.forEach((S,b)=>{a[r][b]={},pe(a[r][b],o[b]);})):L(o)?pe(c,o):isRef(a[r])?a[r].value=o:a[r]=o;});}function Q(e){return e==null?!0:e===!1?!1:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?e.length===0:typeof e=="object"&&e!=null?Object.keys(e).length===0:typeof e=="string"?!String(e.trim()).length:!1}function he(e,t,r){let n,a=(...o)=>new Promise(c=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(c);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a.doImmediately=(...o)=>new Promise(c=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(c);},0);}),a}function Dt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let o=Number(r[a]),c=Number(n[a]);if(o>c)return 1;if(c>o)return -1;if(!isNaN(o)&&isNaN(c))return 1;if(isNaN(o)&&!isNaN(c))return -1}return 0}var se=Dt(version,"3.5.0")!==-1;function Ct(){return Math.floor(Math.random()*Date.now()).toString()}function Fe(){return typeof window>"u"?Ct():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Me(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),a=shallowRef(new Map),o=shallowRef(new Map);function c(s){let l=t.value.get(s);if(l)return l;{let x=ref({});return t.value.set(s,x),x}}function S(s){let l=r.value.get(s);if(l)return l;{let x=ref([]);return r.value.set(s,x),x}}function b(s,l,x){o.value.set(`${s}-${l}`,x);}function h(s,l){return o.value.get(`${s}-${l}`)}function $(s,l){s&&l!=null&&o.value.delete(`${s}-${l}`);}function g(s,l){n.value.set(s,l);}function y(s){return n.value.get(s)??!1}function v(s,l){e.value.set(s,l);}function f(s,l){let x=e.value.get(s);return x?I(l,x)?{valid:!0}:{valid:!1}:void 0}function I(s,l){let x=Object.keys(l),V=Object.keys(s);return V.length!==x.length||!V.every(P=>x.includes(P))?!1:V.every(P=>{let E=s[P],w=l[P];return !w||!E||typeof E=="function"||typeof w=="function"||typeof E=="number"||typeof E=="boolean"?!1:E._params?E._params?.every((A,_)=>{if(typeof w=="number"||typeof w=="boolean")return !0;{let M=q(w._params),U=q(E._params);return M?.[_]===U?.[_]}}):!0})}function D(s){let l=a.value.get(s);if(l)return l;{let x=ref(!1),V=ref(!0),G=ref({}),P=ref(!1);return a.value.set(s,{$pending:x,$valid:V,$metadata:G,$validating:P}),{$pending:x,$valid:V,$metadata:G,$validating:P}}}return onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:v,setDirtyEntry:g,checkRuleDeclEntry:f,getDirtyState:y,trySetRuleStatusRef:D,getFieldsEntry:c,getCollectionsEntry:S,getArrayStatus:h,addArrayStatus:b,deleteArrayStatus:$,arrayStatusStorage:o}}function ot(e,t){return L(e.value)&&L(t.value)&&!Object.entries(t.value).some(r=>de(r))}function st(e,t){return !!e.value&&"$each"in e.value||Array.isArray(t.value)}function ut(e){return !!e.value&&L(e.value)}function de(e){return L(e)&&"_validator"in e}function ve(e){return typeof e.value!="function"}function je(e){return L(e)&&"$fields"in e}function Ve(e){return "$each"in e||"$errors"in e}function _e({field:e,silent:t=!1}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function ct({$dirty:e,customMessages:t,rule:r,ruleKey:n,state:a,path:o,storage:c,$debounce:S}){let b=effectScope(),h,$,g=ref(!1),{$pending:y,$valid:v,$metadata:f,$validating:I}=c.trySetRuleStatusRef(`${o}.${n}`);function D(){h=b.run(()=>{let E=computed(()=>({$invalid:!v.value,$params:U.value,...f.value})),w=computed(()=>ve(r)?typeof r.value.active=="function"?r.value.active(a.value,E.value):!!r.value.active:!0),A=computed(()=>{let p="",u=t?t[n]?.message:void 0;return u&&(typeof u=="function"?p=u(a.value,E.value):p=u),ve(r)&&(u&&!r.value._patched||(typeof r.value.message=="function"?p=r.value.message(a.value,E.value):p=r.value.message)),Q(p)&&(p="Error",console.warn(`No error message defined for ${o}.${n}`)),p}),_=computed(()=>ve(r)&&r.value.type?r.value.type:n),M=computed(()=>ve(r)?r.value.validator:r.value),U=computed(()=>typeof r.value=="function"?[]:q(r.value._params??[])),R=computed(()=>`${o}.${_.value}`);return {$active:w,$message:A,$type:_,$validator:M,$params:U,$path:R}}),$=watch(h.$params,V,{deep:!0});}D();function s(){v.value=!0,e.value&&(y.value=!0);}async function l(){let E=h.$validator.value,w=E(a.value,...h.$params.value),A=!1,_=a.value;try{s();let M;if(w instanceof Promise?M=await w:M=w,a.value!==_)return !0;if(typeof M=="boolean")A=M;else {let{$valid:U,...R}=M;A=U,f.value=R;}}catch{A=!1;}finally{y.value=!1;}return A}let x=he(l,S??200);async function V(){try{I.value=!0;let E=!1;if(de(r.value)&&r.value._async)E=await x();else {let w=h.$validator.value,A=w(a.value,...h.$params.value);if(A 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(A!=null)if(typeof A=="boolean")E=A;else {let{$valid:_,...M}=A;E=_,f.value=M;}}return v.value=E,E}catch{return !1}finally{I.value=!1;}}function G(){v.value=!0,f.value={},y.value=!1,I.value=!1,D();}function P(){$(),b.stop(),b=effectScope();}return reactive({...h,$pending:y,$valid:v,$metadata:f,_haveAsync:g,$validating:I,$validate:V,$unwatch:P,$watch:D,$reset:G})}function Ee({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:o,options:c,externalErrors:S,onUnwatch:b,$isArray:h,initialState:$,shortcuts:g}){let y=effectScope(),v,f=ref(!1),I=ref(!1),D=ref([]),s,l,x,V,G,P=()=>{};function E(){D.value=S.value??[];}E();function w(){let j=t.value,J=o.checkRuleDeclEntry(n,j);p.value=Object.fromEntries(Object.entries(j).filter(([W])=>W.startsWith("$"))),R.value=Object.fromEntries(Object.entries(t.value).filter(([W])=>!W.startsWith("$")).map(([W,Z])=>{if(Z){let De=toRef(()=>Z);return [W,ct({$dirty:f,customMessages:r,rule:De,ruleKey:W,state:e,path:n,storage:o,$debounce:p.value.$debounce})]}return []}).filter(W=>!!W.length)),M(),A(),J?.valid!=null&&(f.value=o.getDirtyState(n),f.value&&P()),o.addRuleDeclEntry(n,j);}function A(){P=v.$debounce.value?he(U,v.$debounce.value??v.haveAnyAsyncRule?100:0):U;}function _(){R.value&&Object.entries(R.value).forEach(([j,J])=>{J.$unwatch();}),V(),f.value&&o.setDirtyEntry(n,f.value),s(),l(),x(),y.stop(),y=effectScope(),b?.(),G?.();}function M(){R.value&&Object.entries(R.value).forEach(([j,J])=>{J.$watch();}),v=y.run(()=>{let j=computed(()=>f.value),J=computed(()=>p.value.$debounce),W=computed(()=>p.value.$lazy!=null?p.value.$lazy:unref(c.lazy)),Z=computed(()=>p.value.$rewardEarly!=null?p.value.$rewardEarly:unref(c.rewardEarly)),De=computed(()=>p.value.$clearExternalErrorsOnChange!=null?p.value.$clearExternalErrorsOnChange:unref(c.clearExternalErrorsOnChange)),yt=computed(()=>p.value.$autoDirty!=null?p.value.$autoDirty:unref(c.autoDirty)),qe=computed(()=>Object.entries(R.value).some(([ee,Y])=>Y.$validating)),Ce=computed(()=>Re.value&&!Se.value&&f.value),Le=computed(()=>Ce.value?_e({field:{$dirty:f.value,$externalErrors:D.value,$rules:R.value}}):[]),ze=computed(()=>_e({field:{$dirty:f.value,$externalErrors:D.value,$rules:R.value},silent:!0})),Je=computed(()=>!(Re.value||Se.value)),Se=computed(()=>I.value||!Z.value?Object.entries(R.value).some(([ee,Y])=>Y.$pending):!1),Re=computed(()=>D.value?.length?!0:Q(R.value)?!1:!Z.value||Z.value&&I.value?Object.entries(R.value).some(([ee,Y])=>!Y.$valid):!1),Ye=computed(()=>a),Ie=computed(()=>Q(R.value)?!1:f.value&&!Q(e.value)&&!qe.value?D.value?.length?!1:Z.value?Object.entries(R.value).every(([ee,Y])=>Y.$valid):!Re.value:!1),gt=computed(()=>Object.entries(R.value).some(([ee,Y])=>Y._haveAsync));function mt(){g?.fields&&Object.entries(g.fields).forEach(([ee,Y])=>{let $t=effectScope();Qe[ee]=$t.run(()=>{let Xe=ref();return watchEffect(()=>{Xe.value=Y({$dirty:f.value,$externalErrors:D.value,$value:e,$rules:R.value,$error:Ce.value,$pending:Se.value,$invalid:Re.value,$valid:Ie.value,$errors:Le.value,$ready:Je.value,$silentErrors:ze.value,$anyDirty:j.value,$name:Ye.value});}),Xe});});}let Qe={};return mt(),watch(Ie,ee=>{ee&&(I.value=!1);}),{$error:Ce,$pending:Se,$invalid:Re,$valid:Ie,$debounce:J,$lazy:W,$errors:Le,$ready:Je,$silentErrors:ze,$rewardEarly:Z,$autoDirty:yt,$clearExternalErrorsOnChange:De,$anyDirty:j,$name:Ye,haveAnyAsyncRule:gt,$shortcuts:Qe,$validating:qe}}),x=watch(S,E),s=watch(e,()=>{v.$autoDirty.value&&(f.value||(f.value=!0)),t.value instanceof Function&&w(),P(),v.$rewardEarly.value!==!0&&v.$clearExternalErrorsOnChange.value&&C();},{deep:h?!0:se?1:!0}),V=watch(f,()=>{o.setDirtyEntry(n,f.value);}),l=watch(v.$valid,j=>{v.$rewardEarly.value&&j&&(I.value=!1);}),G=watch(v.haveAnyAsyncRule,A);}function U(){Object.values(R.value).forEach(j=>{j.$validate();});}let R=ref(),p=ref();w();function u(){f.value=!1,D.value=[],Object.entries(R.value).forEach(([j,J])=>{J.$reset();}),v.$lazy.value||Object.entries(R.value).map(([j,J])=>J.$validate());}function d(j=!0){f.value||(f.value=!0,j&&P());}async function m(){try{if(I.value=!0,!f.value)f.value=!0;else if(v.$autoDirty.value&&f.value&&!v.$pending.value)return !v.$error.value;return (await Promise.allSettled(Object.entries(R.value).map(([W,Z])=>Z.$validate()))).every(W=>W.status==="fulfilled"?!!W.value:!1)?e.value:!1}catch{return !1}}function i(){_(),e.value=at(e,$),u();}function T(j=!0){return f.value?e.value:null}function C(){D.value=[];}v.$lazy.value||P();let{$anyDirty:B,$error:H,$errors:le,$invalid:re,$name:k,$pending:F,$ready:O,$silentErrors:oe,$valid:xe,$shortcuts:$e,$validating:Qt}=v;return reactive({$dirty:f,$error:H,$errors:le,$valid:xe,$invalid:re,$pending:F,$silentErrors:oe,$anyDirty:B,$ready:O,$name:k,$externalErrors:D,$value:e,$rules:R,...$e,$reset:u,$touch:d,$validate:m,$unwatch:_,$watch:M,$resetAll:i,$extractDirtyFields:T,$clearExternalErrors:C})}function ft({$id:e,path:t,index:r,options:n,storage:a,stateValue:o,customMessages:c,rules:S,externalErrors:b,initialState:h,shortcuts:$,fieldName:g}){let y=S.$key?S.$key:Fe(),v=`${t}.${String(y)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?v=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:y,enumerable:!1,configurable:!1,writable:!1}}));let f=toRef(()=>b.value?.[r]),I=me({state:o,rulesDef:toRef(()=>S),customMessages:c,path:v,storage:a,options:n,externalErrors:f,initialState:h?.[r],shortcuts:$,fieldName:g});if(I){let D=o.value?.$id;I.$id=D??String(y),a.addArrayStatus(e,I.$id,I);}return I}function Rt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:c,initialState:S,shortcuts:b,fieldName:h}){let $=effectScope(),g,y=effectScope(),v;if(!Array.isArray(e.value)&&!t.value.$each)return null;let f=ref(),I=ref(e.value),D,s=ref({}),l=a.getCollectionsEntry(n);v=y.run(()=>{let u=computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(i=>typeof i!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(i=>de(i)):!1),d=computed(()=>c.value?Ve(c.value)?c.value.$errors??[]:[]:[]),m=computed(()=>c.value?Ve(c.value)?c.value.$each??[]:[]:[]);return {isPrimitiveArray:u,$externalErrorsField:d,$externalErrorsEach:m}}),x(),G();function x(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(f.value=Fe(),Object.defineProperties(e.value,{$id:{value:f.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(f.value=e.value.$id)),!v.isPrimitiveArray.value&&(I.value=s.value.$value,Array.isArray(e.value)?l.value=e.value.map((u,d)=>{let m=Ae(t.value.$each,toRef(()=>u),d),i=ft({$id:f.value,path:n,rules:m??{},stateValue:toRef(()=>u),index:d,options:o,storage:a,externalErrors:v.$externalErrorsEach,initialState:S[d],shortcuts:b,fieldName:h});return i||null}).filter(u=>!!u):l.value=[],s.value=Ee({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:v.$externalErrorsField,$isArray:!0,initialState:S,shortcuts:b,fieldName:h}));}function V(){if(Array.isArray(e.value)){let u=te(l.value);l.value=e.value.map((d,m)=>{let i=toRef(()=>d);if(d.$id&&l.value.find(T=>T.$id===d.$id)){let T=a.getArrayStatus(f.value,d.$id);return T?(T.$value=i,T):null}else {let T=Ae(t.value.$each,i,m);if(T){let C=ft({$id:f.value,path:n,rules:T,stateValue:i,index:m,options:o,storage:a,externalErrors:v.$externalErrorsEach,initialState:S[m],shortcuts:b,fieldName:h});return C||null}}}).filter(d=>!!d),u.filter(d=>!e.value.find(m=>d.$id===m.$id)).forEach((d,m)=>{a.deleteArrayStatus(f.value,m.toString());});}else l.value=[];}function G(){D=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?x():V();},{deep:se?1:!0,flush:"pre"}),g=$.run(()=>{let u=computed(()=>s.value.$dirty&&l.value.every(O=>O.$dirty)),d=computed(()=>s.value.$anyDirty||l.value.some(O=>O.$dirty)),m=computed(()=>s.value.$invalid||l.value.some(O=>O.$invalid)),i=computed(()=>(Q(s.value.$rules)?!0:s.value.$valid)&&l.value.every(O=>O.$valid)),T=computed(()=>s.value.$error||l.value.some(O=>O.$error)),C=computed(()=>!(m.value||B.value)),B=computed(()=>s.value.$pending||l.value.some(O=>O.$pending)),H=computed(()=>({$errors:s.value.$errors,$each:l.value.map(O=>O.$errors)})),le=computed(()=>({$errors:s.value.$silentErrors,$each:l.value.map(O=>O.$silentErrors)})),re=computed(()=>h);function k(){b?.collections&&Object.entries(b?.collections).forEach(([O,oe])=>{let xe=effectScope();F[O]=xe.run(()=>{let $e=ref();return watchEffect(()=>{$e.value=oe({$dirty:u.value,$error:T.value,$pending:B.value,$invalid:m.value,$valid:i.value,$errors:H.value,$ready:C.value,$silentErrors:le.value,$anyDirty:d.value,$name:re.value,$each:l.value,$field:s.value,$value:e});}),$e});});}let F={};return k(),{$dirty:u,$anyDirty:d,$invalid:m,$valid:i,$error:T,$pending:B,$errors:H,$silentErrors:le,$ready:C,$name:re,$shortcuts:F}}),v.isPrimitiveArray.value&&(console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`),D());}function P(){D&&D(),s.value&&s.value.$unwatch(),l.value&&l.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),$.stop(),$=effectScope(),y.stop(),y=effectScope(!0);}function E(u=!0){s.value.$touch(u),l.value.forEach(d=>{d.$touch(u);});}function w(){s.value.$reset(),l.value.forEach(u=>{u.$reset();});}async function A(){try{return (await Promise.all([s.value.$validate(),...l.value.map(m=>m.$validate())])).every(m=>m.value!==!1)?e.value:!1}catch{return !1}}function _(){s.value.$clearExternalErrors(),l.value.forEach(u=>{u.$clearExternalErrors();});}function M(u=!0){let d=l.value.map(m=>{if(je(m))return m.$extractDirtyFields(u)});return u&&(d=d.filter(m=>L(m)?!Q(m):!!m)),d}function U(){P(),lt(e,S),w();}let{$shortcuts:R,...p}=g;return reactive({$field:s,...p,...R,$each:l,$value:e,$validate:A,$unwatch:P,$watch:G,$touch:E,$reset:w,$resetAll:U,$extractDirtyFields:M,$clearExternalErrors:_})}function Be({scopeRules:e,state:t,customMessages:r,path:n="",rootRules:a,storage:o,options:c,externalErrors:S,validationGroups:b,initialState:h,shortcuts:$,fieldName:g}){let y,v,f=null;function s(R=!0){l.value=null,triggerRef(l);let p=Object.fromEntries(Object.entries(e.value).map(([i,T])=>{if(T){let C=toRef(t.value,i),B=toRef(()=>T),H=toRef(()=>S.value?.[i]);return [i,me({state:C,rulesDef:B,customMessages:r,path:n?`${n}.${i}`:i,storage:o,options:c,externalErrors:H,initialState:h?.[i],shortcuts:$,fieldName:i})]}return []}).filter(i=>!!i.length&&i[1]!=null)),u=Object.fromEntries(Object.entries(unref(S)??{}).filter(([i])=>!(i in e.value)).map(([i,T])=>{if(T){let C=toRef(t.value,i),B=toRef(()=>({})),H=toRef(()=>T);return [i,me({state:C,rulesDef:B,customMessages:r,path:n?`${n}.${i}`:i,storage:o,options:c,externalErrors:H,initialState:h?.[i],shortcuts:$,fieldName:i})]}return []})),d=Object.fromEntries(Object.entries(t.value).filter(([i])=>!(i in e.value)&&!(i in(u.value??{}))).map(([i,T])=>{let C=toRef(t.value,i),B=toRef(()=>({})),H=toRef(()=>S.value?.[i]);return [i,me({state:C,rulesDef:B,customMessages:r,path:n?`${n}.${i}`:i,storage:o,options:c,externalErrors:H,initialState:h?.[i],shortcuts:$,fieldName:i})]})),m=Object.fromEntries(Object.entries(b?.(p)??{}).map(([i,T])=>T.length?[i,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(C=>[C,Ke(toRef(()=>T),C)])),...Object.fromEntries(["$errors","$silentErrors"].map(C=>[C,et(toRef(()=>T),C)]))}]:[]));l.value={...p,...u,...d,...m},R&&P();}let l=o.getFieldsEntry(n);s();function x(){s(!1),Object.entries(l.value).forEach(([R,p])=>{p.$reset();}),P();}function V(R=!0){Object.values(l.value).forEach(p=>{p.$touch(R);});}async function G(){try{return (await Promise.allSettled(Object.values(l.value).map(u=>u.$validate()))).every(u=>u.status==="fulfilled"?u.value!==!1:!1)?t.value:!1}catch{return !1}}function P(){a&&(f=watch(a,()=>{E(),s();},{deep:se?1:!0,flush:"post"})),y=effectScope(),v=y.run(()=>{let R=computed(()=>!!Object.entries(l.value).length&&Object.entries(l.value).every(([k,F])=>F?.$dirty)),p=computed(()=>Object.entries(l.value).some(([k,F])=>F?.$dirty)),u=computed(()=>Object.entries(l.value).some(([k,F])=>F?.$invalid)),d=computed(()=>Object.entries(l.value).every(([k,F])=>F?.$valid)),m=computed(()=>R.value&&!T.value&&u.value),i=computed(()=>!(u.value||T.value)),T=computed(()=>Object.entries(l.value).some(([k,F])=>F?.$pending)),C=computed(()=>Object.fromEntries(Object.entries(l.value).map(([k,F])=>[k,F?.$errors]))),B=computed(()=>Object.fromEntries(Object.entries(l.value).map(([k,F])=>[k,F?.$silentErrors]))),H=computed(()=>g);function le(){$?.nested&&Object.entries($.nested).forEach(([k,F])=>{let O=effectScope();re[k]=O.run(()=>{let oe=ref();return watchEffect(()=>{oe.value=F({$dirty:R.value,$value:t,$error:m.value,$pending:T.value,$invalid:u.value,$valid:d.value,$ready:i.value,$anyDirty:p.value,$name:H.value,$silentErrors:B.value,$errors:C.value,$fields:l.value});}),oe});});}let re={};return le(),{$dirty:R,$anyDirty:p,$invalid:u,$valid:d,$error:m,$pending:T,$errors:C,$silentErrors:B,$ready:i,$name:H,$shortcuts:re}});}function E(){l.value&&Object.entries(l.value).forEach(([R,p])=>{p.$unwatch();}),f?.(),y.stop(),y=effectScope();}function w(){Object.entries(l.value).forEach(([R,p])=>{p.$clearExternalErrors();});}function A(){E(),pe(t,h??{}),x();}function _(R=!0){let p=Object.entries(l.value).map(([u,d])=>[u,d.$extractDirtyFields(R)]);return R&&(p=p.filter(([u,d])=>L(d)?!Q(d):Array.isArray(d)?d.length:!!d)),Object.fromEntries(p)}let{$shortcuts:M,...U}=v;return reactive({...U,...M,$fields:l,$value:t,$resetAll:A,$reset:x,$touch:V,$validate:G,$unwatch:E,$watch:P,$clearExternalErrors:w,$extractDirtyFields:_})}function me({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:c,index:S,initialState:b,shortcuts:h,onUnwatch:$,fieldName:g}){return st(t,e)?Rt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,index:S,externalErrors:c,initialState:b,fieldName:g,shortcuts:h}):ot(e,t)&&nt(e)?Be({scopeRules:t,state:e,customMessages:r,path:n,storage:a,options:o,index:S,initialState:b,shortcuts:h,fieldName:g,externalErrors:c}):ut(t)?Ee({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,index:S,externalErrors:c,onUnwatch:$,shortcuts:h,initialState:b,fieldName:g}):null}function ke({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:o}){let c=Me(),S=computed(()=>unref(t.externalErrors));return reactive(Be({rootRules:r,scopeRules:r,state:n,customMessages:a?.(),storage:c,options:t,externalErrors:S,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:"root"}))}function We(e,t,r){let n={autoDirty:t?.autoDirty??!0,lazy:t?.lazy??!1,rewardEarly:t?.rewardEarly??!1,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange??!0};function a(o,c,S){let b=isRef(c)?c:computed(typeof c=="function"?c:()=>c),h={...n,...S},$=isRef(o)?o:ref(o),g=te(toRaw($.value));return {r$:ke({scopeRules:b,state:$,options:h,initialState:g,customRules:e,shortcuts:r})}}return a}var dt=We();function Ue(){function e(t,r){return r}return e}var He=Ue();function vt({rules:e,modifiers:t,shortcuts:r}){let n=We(e,t,r),a=Ue();return {useRegle:n,inferRules:a}}export{Pe as InternalRuleType,Oe as createRule,vt as defineRegleConfig,He as inferRules,q as unwrapRuleParameters,dt as useRegle};
|
|
1
|
+
import {unref,version,isRef,toRef,computed,ref,toRaw,reactive,shallowRef,onScopeDispose,triggerRef,watch,effectScope,watchEffect}from'vue';var Ce=(r=>(r.Inline="__inline",r.Async="__async",r))(Ce||{});function Qe(e,t){return computed(()=>e.value.some(r=>r[t]))}function Xe(e,t){return computed(()=>e.value.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[]))}function q(e){return e.map(t=>t instanceof Function?t():unref(t))}function Ze(e){return e.map(t=>t instanceof Function||isRef(t)?t:toRef(()=>t))}function Ke(e){let t=e.toString();return (t.includes("=>")?t.split("=>")[0]:t).slice(t.indexOf("(")+1,t.indexOf(")")).split(",").map(o=>o.trim()).filter(o=>o.includes("=")).length+e.length}function Ie(e,...t){let{message:r,validator:n,active:a,type:o,...f}=e,p=o==="__async"||n.constructor.name==="AsyncFunction";return {...{validator($,...y){return e.validator($,...q(y.length?y:t))},message($,y){return typeof e.message=="function"?e.message($,{...y,$params:q(y.$params?.length?y.$params:t)}):e.message},active($,y){return typeof e.active=="function"?e.active($,{...y,$params:q(y.$params?.length?y.$params:t)}):e.active??!0},exec($){let y=e.validator($,...q(t)),d;return y instanceof Promise?y.then(v=>(d=v,typeof d=="object"&&"$valid"in d?d.$valid:typeof d=="boolean"?d:!1)):(d=y,typeof d=="object"&&"$valid"in d?d.$valid:typeof d=="boolean"?d:!1)}},...f,_validator:e.validator,_message:e.message,_active:e.active,_type:e.type,_patched:!1,_async:p,_params:Ze(t)}}function Pe(e){if(typeof e.validator=="function"){let r=Ie(e,...[]),n=e.validator.constructor.name==="AsyncFunction";if(Ke(e.validator)>1){let a=function(...o){return Ie(e,...o)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._type=e.type,a._patched=!1,a._async=n,a}else return r}throw new Error("Validator must be a function")}function L(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function et(e){return L(e.value)}function te(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>te(n)))),r=="Map"&&(t=new Map([...e].map(n=>[te(n[0]),te(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,bt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=te(e[n]);}return t}function bt(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function we(e,t,r){return e instanceof Function?e(t,r??0):e}function tt(e,t){isRef(e)?e.value=t:e=t;}function rt(e,t){isRef(e)?e.value=[]:e=[],t.forEach((r,n)=>{let a=isRef(e)?e.value[n]:e[n];a={},fe(a,t[n]);});}function fe(e,t){Object.entries({...unref(e),...t}).forEach(([r,n])=>{let a=isRef(e)?e.value:e,o=isRef(t[r])?t[r]._value:t[r],f=isRef(a[r])?a[r].value:a[r];Array.isArray(a[r])?(a[r]=[],Array.isArray(o)&&o.forEach((p,E)=>{a[r][E]={},fe(a[r][E],o[E]);})):L(o)?fe(f,o):isRef(a[r])?a[r].value=o:a[r]=o;});}function J(e){return e==null?!0:e===!1?!1:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?e.length===0:typeof e=="object"&&e!=null?Object.keys(e).length===0:typeof e=="string"?!String(e.trim()).length:!1}function $e(e,t,r){let n,a=(...o)=>new Promise(f=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(f);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a.doImmediately=(...o)=>new Promise(f=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...o])).then(f);},0);}),a}function Et(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let o=Number(r[a]),f=Number(n[a]);if(o>f)return 1;if(f>o)return -1;if(!isNaN(o)&&isNaN(f))return 1;if(isNaN(o)&&!isNaN(f))return -1}return 0}var Se=Et(version,"3.5.0")!==-1;function Dt(){return Math.floor(Math.random()*Date.now()).toString()}function Oe(){return typeof window>"u"?Dt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Ae(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),a=shallowRef(new Map),o=shallowRef(new Map);function f(u){let l=t.value.get(u);if(l)return l;{let x=ref({});return t.value.set(u,x),x}}function p(u){let l=r.value.get(u);if(l)return l;{let x=ref([]);return r.value.set(u,x),x}}function E(u,l,x){o.value.set(`${u}-${l}`,x);}function h(u,l){return o.value.get(`${u}-${l}`)}function $(u,l){u&&l!=null&&o.value.delete(`${u}-${l}`);}function y(u,l){n.value.set(u,l);}function d(u){return n.value.get(u)??!1}function v(u,l){e.value.set(u,l);}function s(u,l){let x=e.value.get(u);return x?V(l,x)?{valid:!0}:{valid:!1}:void 0}function V(u,l){let x=Object.keys(l),A=Object.keys(u);return A.length!==x.length||!A.every(j=>x.includes(j))?!1:A.every(j=>{let b=u[j],P=l[j];return !P||!b||typeof b=="function"||typeof P=="function"||typeof b=="number"||typeof b=="boolean"?!1:b._params?b._params?.every((M,m)=>{if(typeof P=="number"||typeof P=="boolean")return !0;{let D=q(P._params),H=q(b._params);return D?.[m]===H?.[m]}}):!0})}function N(u){let l=a.value.get(u);if(l)return l;{let x=ref(!1),A=ref(!0),B=ref({}),j=ref(!1);return a.value.set(u,{$pending:x,$valid:A,$metadata:B,$validating:j}),{$pending:x,$valid:A,$metadata:B,$validating:j}}}return onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:v,setDirtyEntry:y,checkRuleDeclEntry:s,getDirtyState:d,trySetRuleStatusRef:N,getFieldsEntry:f,getCollectionsEntry:p,getArrayStatus:h,addArrayStatus:E,deleteArrayStatus:$,arrayStatusStorage:o}}function nt(e,t){return L(e.value)&&L(t.value)&&!Object.entries(t.value).some(r=>Re(r))}function at(e,t){return !!e.value&&"$each"in e.value||Array.isArray(t.value)}function lt(e){return !!e.value&&L(e.value)}function Re(e){return L(e)&&"_validator"in e}function pe(e){return typeof e.value!="function"}function Me(e){return L(e)&&"$fields"in e}function Fe({field:e,silent:t=!1}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function ut({$dirty:e,customMessages:t,rule:r,ruleKey:n,state:a,path:o,storage:f,$debounce:p}){let E=effectScope(),h,$,y=ref(!1),{$pending:d,$valid:v,$metadata:s,$validating:V}=f.trySetRuleStatusRef(`${o}.${n}`);function N(){h=E.run(()=>{let b=computed(()=>({$invalid:!v.value,$params:H.value,...s.value})),P=computed(()=>pe(r)?typeof r.value.active=="function"?r.value.active(a.value,b.value):!!r.value.active:!0),M=computed(()=>{let S="",i=t?t[n]?.message:void 0;return i&&(typeof i=="function"?S=i(a.value,b.value):S=i),pe(r)&&(i&&!r.value._patched||(typeof r.value.message=="function"?S=r.value.message(a.value,b.value):S=r.value.message)),J(S)&&(S="Error",console.warn(`No error message defined for ${o}.${n}`)),S}),m=computed(()=>pe(r)&&r.value.type?r.value.type:n),D=computed(()=>pe(r)?r.value.validator:r.value),H=computed(()=>typeof r.value=="function"?[]:q(r.value._params??[])),C=computed(()=>`${o}.${m.value}`);return {$active:P,$message:M,$type:m,$validator:D,$params:H,$path:C}}),$=watch(h.$params,A,{deep:!0});}N();function u(){v.value=!0,e.value&&(d.value=!0);}async function l(){let b=h.$validator.value,P=b(a.value,...h.$params.value),M=!1,m=a.value;try{u();let D;if(P instanceof Promise?D=await P:D=P,a.value!==m)return !0;if(typeof D=="boolean")M=D;else {let{$valid:H,...C}=D;M=H,s.value=C;}}catch{M=!1;}finally{d.value=!1;}return M}let x=$e(l,p??200);async function A(){try{V.value=!0;let b=!1;if(Re(r.value)&&r.value._async)b=await x();else {let P=h.$validator.value,M=P(a.value,...h.$params.value);if(M 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(M!=null)if(typeof M=="boolean")b=M;else {let{$valid:m,...D}=M;b=m,s.value=D;}}return v.value=b,b}catch{return !1}finally{V.value=!1;}}function B(){v.value=!0,s.value={},d.value=!1,V.value=!1,N();}function j(){$(),E.stop(),E=effectScope();}return reactive({...h,$pending:d,$valid:v,$metadata:s,_haveAsync:y,$validating:V,$validate:A,$unwatch:j,$watch:N,$reset:B})}function be({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:o,options:f,externalErrors:p,onUnwatch:E,$isArray:h,initialState:$,shortcuts:y}){let d=effectScope(),v,s=ref(!1),V=ref(!1),N,u,l,x,A=()=>{};function B(){let O=t.value,G=o.checkRuleDeclEntry(n,O);D.value=Object.fromEntries(Object.entries(O).filter(([k])=>k.startsWith("$"))),m.value=Object.fromEntries(Object.entries(t.value).filter(([k])=>!k.startsWith("$")).map(([k,X])=>{if(X){let Ee=toRef(()=>X);return [k,ut({$dirty:s,customMessages:r,rule:Ee,ruleKey:k,state:e,path:n,storage:o,$debounce:D.value.$debounce})]}return []}).filter(k=>!!k.length)),P(),j(),G?.valid!=null&&(s.value=o.getDirtyState(n),s.value&&A()),o.addRuleDeclEntry(n,O);}function j(){A=v.$debounce.value?$e(M,v.$debounce.value??v.haveAnyAsyncRule?100:0):M;}function b(){m.value&&Object.entries(m.value).forEach(([O,G])=>{G.$unwatch();}),l(),s.value&&o.setDirtyEntry(n,s.value),N?.(),u?.(),d.stop(),d=effectScope(),E?.(),x?.();}function P(){m.value&&Object.entries(m.value).forEach(([O,G])=>{G.$watch();}),v=d.run(()=>{let O=computed(()=>s.value),G=computed(()=>D.value.$debounce),k=computed(()=>D.value.$lazy!=null?D.value.$lazy:unref(f.lazy)),X=computed(()=>D.value.$rewardEarly!=null?D.value.$rewardEarly:unref(f.rewardEarly)),Ee=computed(()=>D.value.$clearExternalErrorsOnChange!=null?D.value.$clearExternalErrorsOnChange:unref(f.clearExternalErrorsOnChange)),dt=computed(()=>D.value.$autoDirty!=null?D.value.$autoDirty:unref(f.autoDirty)),We=computed(()=>Object.entries(m.value).some(([ee,z])=>z.$validating)),De=computed(()=>ce.value&&!ge.value&&s.value),ke=computed(()=>De.value?Fe({field:{$dirty:s.value,$externalErrors:p?.value,$rules:m.value}}):[]),He=computed(()=>Fe({field:{$dirty:s.value,$externalErrors:p?.value,$rules:m.value},silent:!0})),qe=computed(()=>!(ce.value||ge.value)),ge=computed(()=>V.value||!X.value?Object.entries(m.value).some(([ee,z])=>z.$pending):!1),ce=computed(()=>p?.value?.length?!0:J(m.value)?!1:!X.value||X.value&&V.value?Object.entries(m.value).some(([ee,z])=>!z.$valid):!1),Le=computed(()=>a),xe=computed(()=>J(m.value)?!1:s.value&&!J(e.value)&&!We.value?p?.value?.length?!1:X.value?Object.entries(m.value).every(([ee,z])=>z.$valid):!ce.value:!1),vt=computed(()=>Object.entries(m.value).some(([ee,z])=>z._haveAsync));function yt(){y?.fields&&Object.entries(y.fields).forEach(([ee,z])=>{let mt=effectScope();ze[ee]=mt.run(()=>{let Je=ref();return watchEffect(()=>{Je.value=z({$dirty:s.value,$externalErrors:p?.value??[],$value:e,$rules:m.value,$error:De.value,$pending:ge.value,$invalid:ce.value,$valid:xe.value,$errors:ke.value,$ready:qe.value,$silentErrors:He.value,$anyDirty:O.value,$name:Le.value});}),Je});});}let ze={};return yt(),watch(xe,ee=>{ee&&(V.value=!1);}),{$error:De,$pending:ge,$invalid:ce,$valid:xe,$debounce:G,$lazy:k,$errors:ke,$ready:qe,$silentErrors:He,$rewardEarly:X,$autoDirty:dt,$clearExternalErrorsOnChange:Ee,$anyDirty:O,$name:Le,haveAnyAsyncRule:vt,$shortcuts:ze,$validating:We}}),N=watch(e,()=>{v.$autoDirty.value&&(s.value||(s.value=!0)),t.value instanceof Function&&B(),A(),v.$rewardEarly.value!==!0&&v.$clearExternalErrorsOnChange.value&&g();},{deep:h?!0:Se?1:!0}),l=watch(s,()=>{o.setDirtyEntry(n,s.value);}),u=watch(v.$valid,O=>{v.$rewardEarly.value&&O&&(V.value=!1);}),x=watch(v.haveAnyAsyncRule,j);}function M(){Object.values(m.value).forEach(O=>{O.$validate();});}let m=ref(),D=ref();B();function H(){s.value=!1,g(),Object.entries(m.value).forEach(([O,G])=>{G.$reset();}),v.$lazy.value||Object.entries(m.value).map(([O,G])=>G.$validate());}function C(O=!0){s.value||(s.value=!0,O&&A());}async function S(){try{if(V.value=!0,!s.value)s.value=!0;else if(v.$autoDirty.value&&s.value&&!v.$pending.value)return !v.$error.value;return (await Promise.allSettled(Object.entries(m.value).map(([k,X])=>X.$validate()))).every(k=>k.status==="fulfilled"?k.value!=!1:!1)?e.value:!1}catch{return !1}}function i(){b(),e.value=tt(e,$),H();}function R(O=!0){return s.value?e.value:null}function g(){p?.value?.length&&(p.value=[]);}!v.$lazy.value&&!s.value&&v.$autoDirty.value&&A();let{$anyDirty:c,$error:T,$errors:I,$invalid:U,$name:K,$pending:oe,$ready:ne,$silentErrors:W,$valid:F,$shortcuts:w,$validating:se}=v;return reactive({$dirty:s,$error:T,$errors:I,$valid:F,$invalid:U,$pending:oe,$silentErrors:W,$anyDirty:c,$ready:ne,$name:K,$externalErrors:p,$value:e,$rules:m,...w,$reset:H,$touch:C,$validate:S,$unwatch:b,$watch:P,$resetAll:i,$extractDirtyFields:R,$clearExternalErrors:g})}function it({$id:e,path:t,index:r,options:n,storage:a,stateValue:o,customMessages:f,rules:p,externalErrors:E,initialState:h,shortcuts:$,fieldName:y}){let d=p.$key?p.$key:Oe(),v=`${t}.${String(d)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?v=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:d,enumerable:!1,configurable:!1,writable:!1}}));let s=me({state:o,rulesDef:toRef(()=>p),customMessages:f,path:v,storage:a,options:n,externalErrors:toRef(E?.value??[],r),initialState:h?.[r],shortcuts:$,fieldName:y});if(s){let V=o.value?.$id;s.$id=V??String(d),a.addArrayStatus(e,s.$id,s);}return s}function st({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:f,initialState:p,shortcuts:E,fieldName:h}){let $=effectScope(),y,d=effectScope(),v;if(!Array.isArray(e.value)&&!t.value.$each)return null;let s=ref(),V=ref(e.value),N,u=ref({}),l=a.getCollectionsEntry(n);v=d.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(R=>typeof R!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(R=>Re(R)):!1)})),x(),B();function x(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(s.value=Oe(),Object.defineProperties(e.value,{$id:{value:s.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(s.value=e.value.$id)),!v.isPrimitiveArray.value&&(V.value=u.value.$value,Array.isArray(e.value)?l.value=e.value.map((i,R)=>{let g=we(t.value.$each,toRef(()=>i),R),c=it({$id:s.value,path:n,rules:g??{},stateValue:toRef(()=>i),index:R,options:o,storage:a,externalErrors:toRef(f?.value??{},"$each"),initialState:p[R],shortcuts:E,fieldName:h});return c||null}).filter(i=>!!i):l.value=[],u.value=be({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:toRef(f?.value??{},"$errors"),$isArray:!0,initialState:p,shortcuts:E,fieldName:h}));}function A(){if(Array.isArray(e.value)){let i=te(l.value);l.value=e.value.map((R,g)=>{let c=toRef(()=>R);if(R.$id&&l.value.find(T=>T.$id===R.$id)){let T=a.getArrayStatus(s.value,R.$id);return T?(T.$value=c,T):null}else {let T=we(t.value.$each,c,g);if(T){let I=it({$id:s.value,path:n,rules:T,stateValue:c,index:g,options:o,storage:a,externalErrors:toRef(f?.value??{},"$each"),initialState:p[g],shortcuts:E,fieldName:h});return I||null}}}).filter(R=>!!R),i.filter(R=>!e.value.find(g=>R.$id===g.$id)).forEach((R,g)=>{a.deleteArrayStatus(s.value,g.toString());});}else l.value=[];}function B(){N=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?x():A();},{deep:Se?1:!0,flush:"pre"}),y=$.run(()=>{let i=computed(()=>u.value.$dirty&&l.value.every(w=>w.$dirty)),R=computed(()=>u.value.$anyDirty||l.value.some(w=>w.$dirty)),g=computed(()=>u.value.$invalid||l.value.some(w=>w.$invalid)),c=computed(()=>(J(u.value.$rules)?!0:u.value.$valid)&&l.value.every(w=>w.$valid)),T=computed(()=>u.value.$error||l.value.some(w=>w.$error)),I=computed(()=>!(g.value||U.value)),U=computed(()=>u.value.$pending||l.value.some(w=>w.$pending)),K=computed(()=>({$errors:u.value.$errors,$each:l.value.map(w=>w.$errors)})),oe=computed(()=>({$errors:u.value.$silentErrors,$each:l.value.map(w=>w.$silentErrors)})),ne=computed(()=>h);function W(){E?.collections&&Object.entries(E?.collections).forEach(([w,se])=>{let O=effectScope();F[w]=O.run(()=>{let G=ref();return watchEffect(()=>{G.value=se({$dirty:i.value,$error:T.value,$pending:U.value,$invalid:g.value,$valid:c.value,$errors:K.value,$ready:I.value,$silentErrors:oe.value,$anyDirty:R.value,$name:ne.value,$each:l.value,$field:u.value,$value:e});}),G});});}let F={};return W(),{$dirty:i,$anyDirty:R,$invalid:g,$valid:c,$error:T,$pending:U,$errors:K,$silentErrors:oe,$ready:I,$name:ne,$shortcuts:F}}),v.isPrimitiveArray.value&&(console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`),N());}function j(){N&&N(),u.value&&u.value.$unwatch(),l.value&&l.value.forEach(i=>{"$dirty"in i&&i.$unwatch();}),$.stop(),$=effectScope(),d.stop(),d=effectScope(!0);}function b(i=!0){u.value.$touch(i),l.value.forEach(R=>{R.$touch(i);});}function P(){u.value.$reset(),l.value.forEach(i=>{i.$reset();});}async function M(){try{return (await Promise.all([u.value.$validate(),...l.value.map(g=>g.$validate())])).every(g=>g.value!==!1)?e.value:!1}catch{return !1}}function m(){u.value.$clearExternalErrors(),l.value.forEach(i=>{i.$clearExternalErrors();});}function D(i=!0){let R=l.value.map(g=>{if(Me(g))return g.$extractDirtyFields(i)});return i&&(R=R.filter(g=>L(g)?!J(g):!!g)),R}function H(){j(),rt(e,p),P();}let{$shortcuts:C,...S}=y;return reactive({$field:u,...S,...C,$each:l,$value:e,$validate:M,$unwatch:j,$watch:B,$touch:b,$reset:P,$resetAll:H,$extractDirtyFields:D,$clearExternalErrors:m})}function _e({scopeRules:e,state:t,customMessages:r,path:n="",rootRules:a,storage:o,options:f,externalErrors:p,validationGroups:E,initialState:h,shortcuts:$,fieldName:y}){let d,v,s=null;function u(C=!0){l.value=null,triggerRef(l);let S=Object.fromEntries(Object.entries(e.value).map(([c,T])=>{if(T){let I=toRef(t.value,c),U=toRef(()=>T),K=toRef(p?.value,c);return [c,me({state:I,rulesDef:U,customMessages:r,path:n?`${n}.${c}`:c,storage:o,options:f,externalErrors:K,initialState:h?.[c],shortcuts:$,fieldName:c})]}return []}).filter(c=>!!c.length&&c[1]!=null)),i=Object.fromEntries(Object.entries(unref(p)??{}).filter(([c])=>!(c in e.value)).map(([c,T])=>{if(T){let I=toRef(t.value,c),U=toRef(()=>({}));return [c,me({state:I,rulesDef:U,customMessages:r,path:n?`${n}.${c}`:c,storage:o,options:f,externalErrors:toRef(p?.value??{},c),initialState:h?.[c],shortcuts:$,fieldName:c})]}return []})),R=Object.fromEntries(Object.entries(t.value).filter(([c])=>!(c in e.value)&&!(c in(i.value??{}))).map(([c,T])=>{let I=toRef(t.value,c),U=toRef(()=>({}));return [c,me({state:I,rulesDef:U,customMessages:r,path:n?`${n}.${c}`:c,storage:o,options:f,externalErrors:toRef(p?.value??{},c),initialState:h?.[c],shortcuts:$,fieldName:c})]})),g=Object.fromEntries(Object.entries(E?.(S)??{}).map(([c,T])=>T.length?[c,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(I=>[I,Qe(toRef(()=>T),I)])),...Object.fromEntries(["$errors","$silentErrors"].map(I=>[I,Xe(toRef(()=>T),I)]))}]:[]));l.value={...S,...i,...R,...g},C&&j();}let l=o.getFieldsEntry(n);u();function x(){Object.entries(l.value).forEach(([C,S])=>{S.$reset();});}function A(C=!0){Object.values(l.value).forEach(S=>{S.$touch(C);});}async function B(){try{return (await Promise.allSettled(Object.values(l.value).map(i=>i.$validate()))).every(i=>i.status==="fulfilled"?i.value!==!1:!1)?t.value:!1}catch{return !1}}function j(){a&&(s=watch([a,p],()=>{b(),u();},{deep:!0,flush:"post"})),d=effectScope(),v=d.run(()=>{let C=computed(()=>!!Object.entries(l.value).length&&Object.entries(l.value).every(([W,F])=>F?.$dirty)),S=computed(()=>Object.entries(l.value).some(([W,F])=>F?.$dirty)),i=computed(()=>Object.entries(l.value).some(([W,F])=>F?.$invalid)),R=computed(()=>Object.entries(l.value).every(([W,F])=>F?.$valid)),g=computed(()=>C.value&&!T.value&&i.value),c=computed(()=>unref(f.autoDirty)?S.value&&!(i.value||T.value):!(i.value||T.value)),T=computed(()=>Object.entries(l.value).some(([W,F])=>F?.$pending)),I=computed(()=>Object.fromEntries(Object.entries(l.value).map(([W,F])=>[W,F?.$errors]))),U=computed(()=>Object.fromEntries(Object.entries(l.value).map(([W,F])=>[W,F?.$silentErrors]))),K=computed(()=>y);function oe(){$?.nested&&Object.entries($.nested).forEach(([W,F])=>{let w=effectScope();ne[W]=w.run(()=>{let se=ref();return watchEffect(()=>{se.value=F({$dirty:C.value,$value:t,$error:g.value,$pending:T.value,$invalid:i.value,$valid:R.value,$ready:c.value,$anyDirty:S.value,$name:K.value,$silentErrors:U.value,$errors:I.value,$fields:l.value});}),se});});}let ne={};return oe(),{$dirty:C,$anyDirty:S,$invalid:i,$valid:R,$error:g,$pending:T,$errors:I,$silentErrors:U,$ready:c,$name:K,$shortcuts:ne}});}function b(){l.value&&Object.entries(l.value).forEach(([C,S])=>{S.$unwatch();}),s?.(),d.stop(),d=effectScope();}function P(){Object.entries(l.value).forEach(([C,S])=>{S.$clearExternalErrors();});}function M(){b(),fe(t,h??{}),u(!1),x(),j();}function m(C=!0){let S=Object.entries(l.value).map(([i,R])=>[i,R.$extractDirtyFields(C)]);return C&&(S=S.filter(([i,R])=>L(R)?!J(R):Array.isArray(R)?R.length:!!R)),Object.fromEntries(S)}let{$shortcuts:D,...H}=v;return reactive({...H,...D,$fields:l,$value:t,$resetAll:M,$reset:x,$touch:A,$validate:B,$unwatch:b,$watch:j,$clearExternalErrors:P,$extractDirtyFields:m})}function me({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,externalErrors:f,index:p,initialState:E,shortcuts:h,onUnwatch:$,fieldName:y}){return at(t,e)?st({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,index:p,externalErrors:f,initialState:E,fieldName:y,shortcuts:h}):nt(e,t)&&et(e)?_e({scopeRules:t,state:e,customMessages:r,path:n,storage:a,options:o,index:p,initialState:E,shortcuts:h,fieldName:y,externalErrors:f}):lt(t)?be({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:o,index:p,externalErrors:f,onUnwatch:$,shortcuts:h,initialState:E,fieldName:y}):null}function Ne({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:o}){let f=Ae();return reactive(_e({rootRules:r,scopeRules:r,state:n,customMessages:a?.(),storage:f,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:"root"}))}function Ge(e,t,r){let n={autoDirty:t?.autoDirty??!0,lazy:t?.lazy??!1,rewardEarly:t?.rewardEarly??!1,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange??!0};function a(o,f,p){let E=isRef(f)?f:computed(typeof f=="function"?f:()=>f),h={...n,...p},$=isRef(o)?o:ref(o),y=te(toRaw($.value));return {r$:Ne({scopeRules:E,state:$,options:h,initialState:y,customRules:e,shortcuts:r})}}return a}var Rt=Ge();function Be(){function e(t,r){return r}return e}var Ue=Be();function pt({rules:e,modifiers:t,shortcuts:r}){let n=Ge(e,t,r),a=Be();return {useRegle:n,inferRules:a}}export{Ce as InternalRuleType,Pe as createRule,pt as defineRegleConfig,Ue as inferRules,q as unwrapRuleParameters,Rt as useRegle};
|