@regle/core 0.8.1 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,7 +9,7 @@ function isEmpty(value, considerEmptyArrayInvalid = true) {
9
9
  }
10
10
  if (value instanceof Date) {
11
11
  return isNaN(value.getTime());
12
- } else if (value instanceof File) {
12
+ } else if (value.constructor.name == "File" || value.constructor.name == "FileList") {
13
13
  return value.size > 0;
14
14
  } else if (Array.isArray(value)) {
15
15
  if (considerEmptyArrayInvalid) {
@@ -1,2 +1,2 @@
1
- 'use strict';var vue=require('vue');function ee(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e instanceof File?e.size>0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var mt=Symbol("regle-rule");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 Q(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>Q(n)))),r=="Map"&&(t=new Map([...e].map(n=>[Q(n[0]),Q(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]=Q(e[n]);}return t}function ae(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Le(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function je(e,t,r){let n,l=(...u)=>new Promise(R=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...u])).then(R);},t);});return l.cancel=()=>{clearTimeout(n),n=undefined;},l}var Be=(r=>(r.Inline="__inline",r.Async="__async",r))(Be||{});function yt(e,t){return e.some(r=>r[t])}function gt(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function te(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function $t(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function vt(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(R=>R.trim()).filter(R=>R.length>0).length:0}function He(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(c,...v){return e.validator(c,...te(v.length?v:t))},message(c){return typeof e.message=="function"?e.message({...c,$params:te(c?.$params?.length?c.$params:t)}):e.message},active(c){return typeof e.active=="function"?e.active({...c,$params:te(c?.$params?.length?c.$params:t)}):e.active??true},tooltip(c){return typeof e.tooltip=="function"?e.tooltip({...c,$params:te(c?.$params?.length?c.$params:t)}):e.tooltip??[]},exec(c){let v=e.validator(c,...te(t)),m;return v instanceof Promise?v.then(h=>(m=h,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)):(m=v,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:l,_params:$t(t),_brand:mt}}function ze(e){if(typeof e.validator=="function"){let r=He(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(vt(e.validator)>1){let l=function(...u){return He(e,...u)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=false,l._tooltip_pacthed=false,l._async=n,l}else return r}throw new Error("Validator must be a function")}function qe(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),l=vue.shallowRef(new Map),u=vue.shallowRef(new Map);function R($){let b=t.value.get($);if(b)return b;{let E=vue.ref({});return t.value.set($,E),E}}function c($){let b=r.value.get($);if(b)return b;{let E=vue.ref([]);return r.value.set($,E),E}}function v($,b,E){u.value.set(`${$}-${b}`,E);}function m($,b){return u.value.get(`${$}-${b}`)}function h($,b){$&&b!=null&&u.value.delete(`${$}-${b}`);}function F($,b){n.value.set($,b);}function D($){return n.value.get($)??false}function P($,b){e.value.set($,b);}function O($,b){let E=e.value.get($);return E?a(b,E)?{valid:true}:{valid:false}:undefined}function a($,b){let E=Object.keys(b),i=Object.keys($);return i.length!==E.length||!i.every(V=>E.includes(V))?false:i.every(V=>{let o=$[V],s=b[V];return !s||!o||typeof o=="function"||typeof s=="function"||typeof o=="number"||typeof o=="boolean"?false:o._params?o._params?.every((C,_)=>{if(typeof s=="number"||typeof s=="boolean")return true;{let k=te(s._params),J=te(o._params);return k?.[_]===J?.[_]}}):true})}function w($){let b=l.value.get($);if(b)return b;{let E=vue.ref(false),i=vue.ref(true),S=vue.ref({}),V=vue.ref(false);return l.value.set($,{$pending:E,$valid:i,$metadata:S,$validating:V}),{$pending:E,$valid:i,$metadata:S,$validating:V}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),u.value.clear();}),{addRuleDeclEntry:P,setDirtyEntry:F,checkRuleDeclEntry:O,getDirtyState:D,trySetRuleStatusRef:w,getFieldsEntry:R,getCollectionsEntry:c,getArrayStatus:m,addArrayStatus:v,deleteArrayStatus:h,arrayStatusStorage:u}}function Ve(e){return ae(e.value)}function Ke(e,t,r){let n=vue.effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function Zt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let u=Number(r[l]),R=Number(n[l]);if(u>R)return 1;if(R>u)return -1;if(!isNaN(u)&&isNaN(R))return 1;if(isNaN(u)&&!isNaN(R))return -1}return 0}var _e=Zt(vue.version,"3.5.0")!==-1;function er(){return Math.floor(Math.random()*Date.now()).toString()}function he(){return typeof window>"u"?er():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function St(e){return vue.getCurrentScope()?(vue.onScopeDispose(e),true):false}function ht(e){let t=false,r,n=vue.effectScope(true);return (...l)=>(t||(r=n.run(()=>e(...l)),t=true),r)}function bt(e,t){return Ve(e)||ae(t.value)&&!ee(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function Et(e,t){return !!e.value&&ae(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Tt(e){return !!e.value&&ae(e.value)}function we(e){return ae(e)&&"_validator"in e}function Pe(e){return typeof e.value!="function"}function xt(e){return ae(e)&&"$fields"in e}function Dt(e){return !!e&&"$rules"in e}function Je({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Ct({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function It({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:u,$debounce:R,modifiers:c}){let v=vue.effectScope(),m={},h,F=vue.ref(false),{$pending:D,$valid:P,$metadata:O,$validating:a}=u.trySetRuleStatusRef(`${l}.${r}`);function w(){v=vue.effectScope(),m=v.run(()=>{let o=vue.ref(false),s=vue.ref(false),C=vue.ref(true),_=vue.ref(false),k=vue.ref(false),J=vue.computed(()=>({$value:n.value,$error:s.value,$dirty:o.value,$pending:_.value,$correct:k.value,$invalid:C.value,$rule:{$valid:P.value,$invalid:!P.value,$pending:D.value},$params:d.value,...O.value})),I=vue.computed(()=>Pe(t)?typeof t.value.active=="function"?t.value.active(J.value):!!t.value.active:true);function B(p){let T="",A=e?e[r]?.[p]:undefined;if(A&&(typeof A=="function"?T=A(J.value):T=A),Pe(t)){let X=`_${p}_patched`;A&&!t.value[X]||(typeof t.value[p]=="function"?T=t.value[p](J.value):T=t.value[p]??"");}return T}let ie=vue.computed(()=>{let p=B("message");return ee(p)&&(p="This field is not valid"),p}),de=vue.computed(()=>B("tooltip")),pe=vue.computed(()=>Pe(t)&&t.value.type?t.value.type:r),me=vue.computed(()=>Pe(t)?t.value.validator:t.value),d=vue.computed(()=>typeof t.value=="function"?[]:te(t.value._params??[])),f=vue.computed(()=>`${l}.${pe.value}`);return {$active:I,$message:ie,$type:pe,$validator:me,$params:d,$path:f,$tooltip:de,$fieldCorrect:k,$fieldError:s,$fieldDirty:o,$fieldPending:_,$fieldInvalid:C}}),h=vue.watch(m?.$params,()=>{(c.$autoDirty.value||c.$rewardEarly.value&&m.$fieldError.value)&&i();});}w();function $(){P.value=true,m.$fieldDirty.value&&(D.value=true);}async function b(){let o=false;try{let s=m.$validator.value;if(typeof s!="function")return console.error(`${l}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let C=s(n.value,...m.$params.value),_=n.value;$();let k;if(C instanceof Promise?k=await C:k=C,n.value!==_)return !0;if(typeof k=="boolean")o=k;else {let{$valid:J,...I}=k;o=J,O.value=I;}}catch{o=false;}finally{D.value=false;}return o}let E=je(b,R??200);async function i(){try{a.value=!0;let o=!1;if(we(t.value)&&t.value._async)o=await E();else {let s=m.$validator.value,C=s(n.value,...m.$params.value);if(C instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(C!=null)if(typeof C=="boolean")o=C;else {let{$valid:_,...k}=C;o=_,O.value=k;}}return P.value=o,o}catch{return false}finally{a.value=false;}}function S(){P.value=true,O.value={},D.value=false,a.value=false,w();}function V(){h(),v.stop(),v=vue.effectScope();}return vue.reactive({...m,$pending:D,$valid:P,$metadata:O,$haveAsync:F,$validating:a,$validate:i,$unwatch:V,$watch:w,$reset:S})}function Ne({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:u,options:R,externalErrors:c,schemaErrors:v,schemaMode:m,onUnwatch:h,$isArray:F,initialState:D,shortcuts:P}){let O=vue.effectScope(),a,w=[],$,b,E,i,S,V=()=>{};function o(){let g=t.value,G=u.checkRuleDeclEntry(n,g);B.value=Object.fromEntries(Object.entries(g).filter(([L])=>L.startsWith("$"))),_(),I.value=Object.fromEntries(Object.entries(t.value).filter(([L])=>!L.startsWith("$")).map(([L,x])=>{if(x){let ue=vue.toRef(()=>x);return [L,It({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:ue,ruleKey:L,state:e,path:n,storage:u,$debounce:B.value.$debounce})]}return []}).filter(L=>!!L.length)),a.processShortcuts(),s(),G?.valid!=null&&(a.$dirty.value=u.getDirtyState(n),(a.$dirty.value&&a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V()),u.addRuleDeclEntry(n,g);}function s(){V=a.$debounce.value?je(J,a.$debounce.value??a.$haveAnyAsyncRule?100:0):J;}function C(){I.value&&Object.entries(I.value).forEach(([g,G])=>{G.$unwatch();}),E(),S?.(),a.$dirty.value&&u.setDirtyEntry(n,a.$dirty.value),$?.(),b?.(),O.stop(),O=vue.effectScope(),w.forEach(g=>g.stop()),w=[],h?.(),i?.();}function _(){I.value&&Object.entries(I.value).forEach(([g,G])=>{G.$watch();}),a=O.run(()=>{let g=vue.ref(false),G=vue.ref(false),L=vue.computed(()=>g.value),x=vue.computed(()=>B.value.$debounce),ue=vue.computed(()=>B.value.$lazy!=null?B.value.$lazy:vue.unref(R.lazy)!=null?vue.unref(R.lazy):false),le=vue.computed(()=>B.value.$rewardEarly!=null?B.value.$rewardEarly:vue.unref(R.rewardEarly)!=null?vue.unref(R.rewardEarly):false),ye=vue.computed(()=>B.value.$clearExternalErrorsOnChange!=null?B.value.$clearExternalErrorsOnChange:vue.unref(R.clearExternalErrorsOnChange)!=null?vue.unref(R.clearExternalErrorsOnChange):true),U=vue.computed(()=>B.value.$autoDirty!=null?B.value.$autoDirty:vue.unref(R.autoDirty)!=null?vue.unref(R.autoDirty):!le.value),M=vue.computed(()=>Object.entries(I.value).some(([oe,Y])=>Y.$validating)),H=vue.computed({get:()=>e.value,set(oe){$(),e.value=oe,k();}}),ge=vue.computed(()=>$e.value&&!Oe.value&&g.value),lt=vue.computed(()=>Je({field:{$rules:I.value,$error:ge.value,$externalErrors:c?.value,$schemaErrors:v?.value}})),ot=vue.computed(()=>Je({field:{$rules:I.value,$error:ge.value,$externalErrors:c?.value,$schemaErrors:v?.value},silent:true})),We=vue.computed(()=>g.value?D.value instanceof Date&&e.value instanceof Date?Le(D.value).getDate()!==Le(e.value).getDate():D.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(D.value)?e.value.length!==D.value.length:D.value!==e.value:false),st=vue.computed(()=>We.value),ut=vue.computed(()=>Ct({field:{$rules:I.value}})),it=vue.computed(()=>U.value?L.value&&!($e.value||Oe.value):!($e.value||Oe.value)),Oe=vue.computed(()=>G.value||!le.value?Object.entries(I.value).some(([oe,Y])=>Y.$pending):false),$e=vue.computed(()=>c?.value?.length||v?.value?.length?true:Fe.value?false:!le.value||le.value&&G.value?Object.entries(I.value).some(([oe,Y])=>!Y.$valid):false),ct=vue.computed(()=>l),Fe=vue.computed(()=>!!(ee(I.value)&&!m)),ft=vue.computed(()=>c?.value?.length||Fe.value?false:g.value&&!ee(e.value)&&!M.value?m?!v?.value?.length:Object.values(I.value).some(Y=>Y.$active)?Object.values(I.value).filter(Y=>Y.$active).every(Y=>Y.$valid):false:false),Wt=vue.computed(()=>Object.entries(I.value).some(([oe,Y])=>Y.$haveAsync));function Lt(){P?.fields&&Object.entries(P.fields).forEach(([oe,Y])=>{let dt=vue.effectScope();Rt[oe]=dt.run(()=>{let pt=vue.ref();return vue.watchEffect(()=>{pt.value=Y(vue.reactive({$dirty:g,$externalErrors:c?.value??[],$value:e,$silentValue:H,$rules:I,$error:ge,$pending:Oe,$invalid:$e,$correct:ft,$errors:lt,$ready:it,$silentErrors:ot,$anyDirty:L,$tooltips:ut,$name:ct,$inactive:Fe,$edited:We,$anyEdited:st}));}),pt}),w.push(dt);});}let Rt={};return vue.watch($e,oe=>{oe||(G.value=false);}),{$error:ge,$pending:Oe,$invalid:$e,$correct:ft,$debounce:x,$lazy:ue,$errors:lt,$ready:it,$silentErrors:ot,$rewardEarly:le,$autoDirty:U,$clearExternalErrorsOnChange:ye,$anyDirty:L,$edited:We,$anyEdited:st,$name:ct,$haveAnyAsyncRule:Wt,$shortcuts:Rt,$validating:M,$tooltips:ut,$dirty:g,triggerPunishment:G,processShortcuts:Lt,$silentValue:H,$inactive:Fe}}),k(),E=vue.watch(a.$dirty,g=>{u.setDirtyEntry(n,g),Object.values(I.value).forEach(G=>{G.$fieldDirty=g;});}),S=vue.watch([a.$error,a.$correct,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(g=>{g.$fieldError=a.$error.value,g.$fieldInvalid=a.$invalid.value,g.$fieldPending=a.$pending.value,g.$fieldCorrect=a.$correct.value;});}),b=vue.watch(a.$invalid,g=>{a.$rewardEarly.value&&!g&&(a.triggerPunishment.value=false);}),i=vue.watch(a.$haveAnyAsyncRule,s);}function k(){$=vue.watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&o(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&f();},{deep:F?true:_e?1:true,flush:"post"});}function J(){Object.values(I.value).forEach(g=>{g.$validate();});}let I=vue.ref({}),B=vue.ref({});o();function ie(){f(),a.$dirty.value=false,a.triggerPunishment.value=false,u.setDirtyEntry(n,false),D.value=ae(e.value)?Q(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(I.value).forEach(([g,G])=>{G.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(g=>g.$validate());}function de(g=true,G=false){a.$dirty.value||(a.$dirty.value=true),G&&g?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V():g&&V();}async function pe(){try{let g=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:g};return m?{result:!v?.value?.length,data:g}:ee(I.value)?{result:!0,data:g}:{result:(await Promise.allSettled(Object.entries(I.value).map(([x,ue])=>ue.$validate()))).every(x=>x.status==="fulfilled"?x.value===!0:!1),data:g}}catch{return {result:false,data:e.value}}}function me(){C(),e.value=Q(D),ie();}function d(g=true){return a.$dirty.value?e.value:g?{_null:true}:null}function f(){c?.value?.length&&(c.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&V();let{$shortcuts:p,$validating:T,$autoDirty:A,$rewardEarly:X,$clearExternalErrorsOnChange:y,$haveAnyAsyncRule:j,$debounce:z,$lazy:Z,triggerPunishment:q,...se}=a;return vue.reactive({...se,$externalErrors:c,$value:e,$rules:I,...p,$reset:ie,$touch:de,$validate:pe,$unwatch:C,$watch:_,$resetAll:me,$extractDirtyFields:d,$clearExternalErrors:f})}function Xe({$id:e,path:t,index:r,options:n,storage:l,stateValue:u,customMessages:R,rules:c,externalErrors:v,schemaErrors:m,initialState:h,shortcuts:F,fieldName:D,schemaMode:P}){let O=c.$key?c.$key:he(),a=`${t}.${String(O)}`;typeof u.value=="object"&&u.value!=null&&(u.value.$id?a=`${t}.${u.value.$id}`:Object.defineProperties(u.value,{$id:{value:O,enumerable:false,configurable:false,writable:false}}));let w=vue.toRef(v?.value??[],r),$=vue.computed(()=>m?.value?.[r]),b=Te({state:u,rulesDef:vue.toRef(()=>c),customMessages:R,path:a,storage:l,options:n,externalErrors:w,schemaErrors:$,initialState:h,shortcuts:F,fieldName:D,schemaMode:P});if(b){let E=u.value?.$id;b.$id=E??String(O),l.addArrayStatus(e,b.$id,b);}return b}function At({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:u,externalErrors:R,schemaErrors:c,schemaMode:v,initialState:m,shortcuts:h,fieldName:F}){let D=vue.effectScope(),P,O=vue.effectScope(),a,w=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let $=vue.ref(),b=vue.ref(e.value),E,i=vue.ref({}),S=l.getCollectionsEntry(n);a=O.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(f=>typeof f!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(f=>we(f)||typeof f=="function"):false)})),V(),C();function V(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?($.value=he(),Object.defineProperties(e.value,{$id:{value:$.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&($.value=e.value.$id)),b.value=i.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?S.value=e.value.filter(d=>typeof d=="object").map((d,f)=>{let{scope:p,unwrapped:T}=Ke(t.value.$each,vue.toRef(()=>d),f);p&&w.push(p);let A=vue.toRef(m.value??[],f),X=vue.toRef(R?.value??{},"$each"),y=vue.computed(()=>c?.value?.$each),j=Xe({$id:$.value,path:n,customMessages:r,rules:T??{},stateValue:vue.toRef(()=>d),index:f,options:u,storage:l,externalErrors:X,schemaErrors:y,initialState:A,shortcuts:h,fieldName:F,schemaMode:v});return j||null}).filter(d=>!!d):S.value=[],i.value=Ne({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:u,externalErrors:vue.toRef(R?.value??{},"$self"),schemaErrors:vue.computed(()=>c?.value?.$self),$isArray:true,initialState:m,shortcuts:h,fieldName:F,schemaMode:v});}function o(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let d=Q(S.value);S.value=e.value.filter(f=>typeof f=="object").map((f,p)=>{let T=vue.toRef(()=>f);if(f.$id&&S.value.find(A=>A.$id===f.$id)){let A=l.getArrayStatus($.value,f.$id);return A?(A.$value=T,A):null}else {let{scope:A,unwrapped:X}=Ke(t.value.$each,T,p);A&&w.push(A);let y=vue.toRef(R?.value??{},"$each"),j=vue.computed(()=>c?.value?.$each??[]),z=Xe({$id:$.value,path:n,customMessages:r,rules:X??{},stateValue:T,index:p,options:u,storage:l,externalErrors:y,schemaErrors:j,initialState:vue.toRef(m.value??[],p),shortcuts:h,fieldName:F,schemaMode:v});return z||null}}).filter(f=>!!f),d.filter(f=>!e.value?.find(p=>f.$id===p.$id)).forEach((f,p)=>{l.deleteArrayStatus($.value,p.toString());});}else S.value=[];}function s(){E=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?V():o();},{deep:_e?1:true,flush:"pre"});}function C(){s(),D=vue.effectScope(),P=D.run(()=>{let d=vue.computed({get:()=>e.value,set(x){E(),e.value=x,s();}}),f=vue.computed(()=>i.value.$dirty&&(!S.value.length||S.value.every(x=>x.$dirty))),p=vue.computed(()=>i.value.$anyDirty||S.value.some(x=>x.$anyDirty)),T=vue.computed(()=>i.value.$invalid||S.value.some(x=>x.$invalid)),A=vue.computed(()=>(ee(i.value.$rules)?true:i.value.$correct)&&(!S.value.length||S.value.every(x=>x.$correct||x.$anyDirty&&!x.$invalid))),X=vue.computed(()=>i.value.$error||S.value.some(x=>x.$error)),y=vue.computed(()=>!(T.value||j.value)),j=vue.computed(()=>i.value.$pending||S.value.some(x=>x.$pending)),z=vue.computed(()=>!!S.value.length&&S.value.every(x=>x.$edited)),Z=vue.computed(()=>i.value.$anyEdited||S.value.some(x=>x.$anyEdited)),q=vue.computed(()=>({$self:i.value.$errors,$each:S.value.map(x=>x.$errors)})),se=vue.computed(()=>({$self:i.value.$silentErrors,$each:S.value.map(x=>x.$silentErrors)})),g=vue.computed(()=>F);function G(){h?.collections&&Object.entries(h?.collections).forEach(([x,ue])=>{let le=vue.effectScope();L[x]=le.run(()=>{let ye=vue.ref();return vue.watchEffect(()=>{ye.value=ue(vue.reactive({$dirty:f,$error:X,$silentValue:d,$pending:j,$invalid:T,$correct:A,$errors:q,$ready:y,$silentErrors:se,$anyDirty:p,$name:g,$each:S,$self:i,$value:e,$edited:z,$anyEdited:Z}));}),ye}),w.push(le);});}let L={};return G(),{$dirty:f,$anyDirty:p,$invalid:T,$correct:A,$error:X,$pending:j,$errors:q,$silentErrors:se,$ready:y,$name:g,$shortcuts:L,$silentValue:d,$edited:z,$anyEdited:Z}}),a.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function _(){E&&E(),i.value&&i.value.$unwatch(),S.value&&S.value.forEach(d=>{"$dirty"in d&&d.$unwatch();}),D.stop(),D=vue.effectScope(),O.stop(),O=vue.effectScope(true),w.forEach(d=>d.stop()),w=[];}function k(d=true,f=false){i.value.$touch(d,f),S.value.forEach(p=>{p.$touch(d,f);});}function J(){i.value.$reset(),S.value.forEach(d=>{d.$reset();});}async function I(){let d=e.value;try{return {result:(await Promise.allSettled([i.value.$validate(),...S.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}catch{return {result:false,data:d}}}function B(){i.value.$clearExternalErrors(),S.value.forEach(d=>{d.$clearExternalErrors();});}function ie(d=true){let f=S.value.map(p=>{if(xt(p))return p.$extractDirtyFields(d)});return d&&f.every(p=>ee(p))&&(f=[]),f}function de(){_(),e.value=Q(m.value),J();}let{$shortcuts:pe,...me}=P;return vue.reactive({$self:i,...me,...pe,$each:S,$value:e,$validate:I,$unwatch:_,$watch:C,$touch:k,$reset:J,$resetAll:de,$extractDirtyFields:ie,$clearExternalErrors:B})}function ke({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:u,rootSchemaErrors:R,validationGroups:c,initialState:v,fieldName:m,...h}){let F=vue.effectScope(),D,P=[],O=null,a=null,w=null,$=null;async function E(d=true){let f=Object.entries(e.value),p=Object.fromEntries(f.filter(([y,j])=>!!j).map(([y,j])=>{if(j){let z=vue.toRef(t.value??{},y),Z=vue.toRef(()=>j),q=vue.toRef(l?.value??{},y),se=vue.computed(()=>u?.value?.[y]),g=vue.toRef(v?.value??{},y);return [y,Te({state:z,rulesDef:Z,path:r?`${r}.${y}`:y,externalErrors:q,schemaErrors:se,initialState:g,fieldName:y,...h})]}return []})),T=Object.fromEntries(Object.entries(vue.unref(l)??{}).filter(([y,j])=>!(y in e.value)&&!!j).map(([y])=>{let j=vue.toRef(t.value??{},y),z=vue.toRef(l?.value??{},y),Z=vue.computed(()=>u?.value?.[y]),q=vue.toRef(v?.value??{},y);return [y,Te({state:j,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:z,schemaErrors:Z,initialState:q,fieldName:y,...h})]})),A=Object.fromEntries(Object.entries(vue.unref(u)??{}).map(([y])=>{let j=vue.toRef(t.value??{},y),z=vue.toRef(l?.value??{},y),Z=vue.computed(()=>u?.value?.[y]),q=vue.toRef(v?.value??{},y);return [y,Te({state:j,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:z,schemaErrors:Z,initialState:q,fieldName:y,...h})]})),X=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(T??{}))&&!(y in(A??{}))).map(([y])=>{let j=vue.toRef(t.value??{},y),z=vue.toRef(l?.value??{},y),Z=vue.computed(()=>u?.value?.[y]),q=vue.toRef(v?.value??{},y);return [y,Te({state:j,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:z,schemaErrors:Z,initialState:q,fieldName:y,...h})]}));i.value={...p,...T,...A,...X},d&&o();}let i=h.storage.getFieldsEntry(r);E();function S(){l&&(w=vue.watch(l,()=>{s(),E();},{deep:true}));}function V(){$=vue.watch(t,()=>{s(),E(),k(true,true);},{flush:"sync"});}function o(){n&&(O?.(),O=vue.watch(n,()=>{s(),E();},{deep:true,flush:"post"}),S()),R&&(a?.(),a=vue.watch(R,()=>{s(),E();},{deep:true,flush:"post"})),V(),D=F.run(()=>{let d=vue.computed({get:()=>t.value,set(U){s(),t.value=U,E();}}),f=vue.computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,M])=>M?.$dirty)),p=vue.computed(()=>Object.entries(i.value).some(([U,M])=>M?.$anyDirty)),T=vue.computed(()=>Object.entries(i.value).some(([U,M])=>M?.$invalid)),A=vue.computed(()=>{let U=Object.entries(i.value).filter(([M,H])=>Dt(H)?!H.$inactive:true);return U.length?U.every(([M,H])=>H?.$correct||H.$anyDirty&&!H.$invalid):false}),X=vue.computed(()=>p.value&&!q.value&&T.value),y=vue.computed(()=>vue.unref(h.options.rewardEarly)!=null?vue.unref(h.options.rewardEarly):false),j=vue.computed(()=>vue.unref(h.options.autoDirty)!=null?vue.unref(h.options.autoDirty):!y.value),z=vue.computed(()=>j.value?p.value&&!(T.value||q.value):!(T.value||q.value)),Z=vue.ref(false),q=vue.computed(()=>Z.value||Object.entries(i.value).some(([U,M])=>M?.$pending)),se=vue.computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,M])=>[U,M?.$errors]))),g=vue.computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,M])=>[U,M?.$silentErrors]))),G=vue.computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,M])=>M?.$edited)),L=vue.computed(()=>Object.entries(i.value).some(([U,M])=>M?.$anyEdited)),x=vue.computed(()=>m);function ue(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,M])=>{let H=vue.effectScope();ye[U]=H.run(()=>{let ge=vue.ref();return vue.watchEffect(()=>{ge.value=M(vue.reactive({$dirty:f,$value:t,$silentValue:d,$error:X,$pending:q,$invalid:T,$correct:A,$ready:z,$anyDirty:p,$name:x,$silentErrors:g,$errors:se,$fields:i,$edited:G,$anyEdited:L}));}),ge}),P.push(H);});}let le=vue.computed({get:()=>c?Object.fromEntries(Object.entries(c?.(i.value)??{}).map(([U,M])=>M.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(H=>[H,yt(M,H)])),...Object.fromEntries(["$errors","$silentErrors"].map(H=>[H,gt(M,H)]))}]:[])):{},set(){}}),ye={};return ue(),{$dirty:f,$anyDirty:p,$invalid:T,$correct:A,$error:X,$pending:q,$errors:se,$silentErrors:g,$ready:z,$name:x,$shortcuts:ye,$groups:le,$silentValue:d,$edited:G,$anyEdited:L,$localPending:Z}});}function s(){O?.(),w?.(),$?.(),a?.(),P=[],D={},i.value&&Object.entries(i.value).forEach(([d,f])=>{f.$unwatch();});}function C(){Object.entries(i.value).forEach(([d,f])=>{f.$clearExternalErrors();});}function _(){w?.(),Object.values(i.value).forEach(d=>{d.$reset();}),v.value={...Q(t.value)},S();}function k(d=true,f=false){Object.values(i.value).forEach(p=>{p.$touch(d,f);});}async function J(){s(),t.value=Q({...v.value??{}}),_(),E();}function I(d){return d.filter(([f,p])=>ae(p)?!(p&&typeof p=="object"&&"_null"in p)&&!ee(p):Array.isArray(p)?p.length:true)}function B(d=true){let f=Object.entries(i.value).map(([p,T])=>[p,T.$extractDirtyFields(d)]);return d&&(f=I(f)),Object.fromEntries(f)}async function ie(){try{if(h.schemaMode)return h.onValidate?(k(!1),D.$localPending.value=!0,h.onValidate()):{result:!1,data:t.value};{let d=t.value;return {result:(await Promise.allSettled(Object.values(i.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}}catch{return {result:false,data:t.value}}finally{D.$localPending.value=false;}}let{$shortcuts:de,$localPending:pe,...me}=D;return vue.reactive({...me,...de,$fields:i,$value:t,$resetAll:J,$reset:_,$touch:k,$validate:ie,$unwatch:s,$watch:o,$clearExternalErrors:C,$extractDirtyFields:B})}function Te({rulesDef:e,...t}){if(Et(e,t.state))return At({rulesDef:e,...t});if(bt(t.state,e)){if(Ve(t.state))return ke({rulesDef:e,...t});{let n=vue.effectScope().run(()=>{let R=vue.toRef(t.state.value?t.state:vue.ref({}));return vue.watch(()=>t.state.value,c=>{R.value=c;},{deep:true}),vue.watch(R,c=>{t.state.value=c;},{deep:true}),{fakeState:R}}),{state:l,...u}=t;return ke({rulesDef:e,...u,state:n.fakeState})}}else if(Tt(e))return Ne({rulesDef:e,...t})}function Ie({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:u,schemaErrors:R,schemaMode:c=false,onValidate:v}){let m=qe(),h=vue.ref();return h.value=ke({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:u,fieldName:"root",path:"",schemaErrors:R,rootSchemaErrors:R,schemaMode:c,onValidate:v}),vue.getCurrentScope()&&vue.onScopeDispose(()=>{h.value?.$unwatch();}),vue.reactive({regle:h})}function tt(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(u,R,c){let v=vue.isRef(R)?R:vue.computed(typeof R=="function"?R:()=>R),m={...n,...c},h=vue.isRef(u)?u:vue.ref(u),F=vue.ref({...Q(h.value)});return {r$:Ie({scopeRules:v,state:h,options:m,initialState:F,customRules:e,shortcuts:r}).regle}}return l}var Ue=tt();function rt(){function e(t,r){return r}return e}var nt=rt();function Vt({rules:e,modifiers:t,shortcuts:r}){let n=tt(e,t,r),l=rt();return {useRegle:n,inferRules:l}}function Me(e,t){let r=t??false,n=vue.computed({get:()=>r?Object.values(e).map(o=>o.$value):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$value])),set:o=>{r||typeof o=="object"&&Object.entries(o).forEach(([s,C])=>e[s].$value=C);}}),l=vue.computed({get:()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentValue])),set:o=>{typeof o=="object"&&Object.entries(o).forEach(([s,C])=>e[s].$silentValue=C);}}),u=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$dirty)}),R=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$anyDirty)),c=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$invalid)),v=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$correct||C.$anyDirty&&!C.$invalid)}),m=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$error)),h=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$ready)}),F=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$pending)),D=vue.computed(()=>r?Object.entries(e).map(([o,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$errors]))),P=vue.computed(()=>r?Object.entries(e).map(([o,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentErrors]))),O=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$edited)}),a=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$anyEdited)),w=vue.computed(()=>r?Object.values(e):e);function $(){Object.values(e).forEach(o=>{o.$reset();});}function b(){Object.values(e).forEach(o=>{o.$touch();});}function E(){Object.values(e).forEach(o=>{o.$resetAll();});}function i(o=true){return Object.values(e).map(s=>s.$extractDirtyFields(o))}function S(){Object.values(e).forEach(o=>{o.$clearExternalErrors();});}async function V(){try{let o=n.value;return {result:(await Promise.allSettled(Object.values(e).map(_=>_.$validate()))).every(_=>_.status==="fulfilled"?_.value.result===!0:!1),data:o}}catch{return {result:false,data:n.value}}}return vue.reactive({...!r&&{$silentValue:l},$errors:D,$silentErrors:P,$instances:w,$value:n,$dirty:u,$anyDirty:R,$invalid:c,$correct:v,$error:m,$pending:F,$ready:h,$edited:O,$anyEdited:a,$resetAll:E,$reset:$,$touch:b,$validate:V,$extractDirtyFields:i,$clearExternalErrors:S})}function Nt(e){function t(r){let n=vue.computed(()=>vue.toValue(r));R();let l=vue.ref(c(e.value)),u=vue.reactive({r$:l});function R(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}vue.watch(n,R),vue.watch(e,v=>{l.value=c(v);},{deep:true});function c(v){if(n.value){let m=v[n.value]??{};return Me(m,true)}else return Me(v["~~global"]??{},true)}return {r$:u.r$}}return {useCollectScope:t}}function Ut(e,t){let r=t??Ue;return {useScopedRegle:(l,u,R)=>{let{namespace:c,...v}=R??{},m=vue.computed(()=>vue.toValue(c)),h=vue.ref(`${Object.keys(e.value).length+1}-${he()}`),F=vue.computed(()=>`instance-${h.value}`),{r$:D}=r(l,u,v);O(),St(P),vue.watch(m,(a,w)=>{P(w),O();}),vue.getCurrentInstance()&&vue.onMounted(()=>{let a=vue.getCurrentInstance();typeof window<"u"&&a?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(a?.proxy?.$el?.parentElement)&&P();});function P(a){let w=a??m.value;w?e.value[w]&&delete e.value[w][F.value]:e.value["~~global"][F.value]&&delete e.value["~~global"][F.value];}function O(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][F.value]=D):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][F.value]=D);}return {r$:D,dispose:P,register:O}}}}function at(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):ht(()=>vue.ref({"~~global":{}})))(),{useScopedRegle:n}=Ut(r,e?.customUseRegle),{useCollectScope:l}=Nt(r);return {useScopedRegle:n,useCollectScope:l}}
1
+ 'use strict';var vue=require('vue');function ee(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size>0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var mt=Symbol("regle-rule");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 Q(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>Q(n)))),r=="Map"&&(t=new Map([...e].map(n=>[Q(n[0]),Q(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]=Q(e[n]);}return t}function ae(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Le(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function je(e,t,r){let n,l=(...u)=>new Promise(R=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...u])).then(R);},t);});return l.cancel=()=>{clearTimeout(n),n=undefined;},l}var Be=(r=>(r.Inline="__inline",r.Async="__async",r))(Be||{});function yt(e,t){return e.some(r=>r[t])}function gt(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function te(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function $t(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function vt(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(R=>R.trim()).filter(R=>R.length>0).length:0}function He(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(c,...v){return e.validator(c,...te(v.length?v:t))},message(c){return typeof e.message=="function"?e.message({...c,$params:te(c?.$params?.length?c.$params:t)}):e.message},active(c){return typeof e.active=="function"?e.active({...c,$params:te(c?.$params?.length?c.$params:t)}):e.active??true},tooltip(c){return typeof e.tooltip=="function"?e.tooltip({...c,$params:te(c?.$params?.length?c.$params:t)}):e.tooltip??[]},exec(c){let v=e.validator(c,...te(t)),m;return v instanceof Promise?v.then(h=>(m=h,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)):(m=v,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:l,_params:$t(t),_brand:mt}}function ze(e){if(typeof e.validator=="function"){let r=He(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(vt(e.validator)>1){let l=function(...u){return He(e,...u)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=false,l._tooltip_pacthed=false,l._async=n,l}else return r}throw new Error("Validator must be a function")}function qe(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),l=vue.shallowRef(new Map),u=vue.shallowRef(new Map);function R($){let b=t.value.get($);if(b)return b;{let E=vue.ref({});return t.value.set($,E),E}}function c($){let b=r.value.get($);if(b)return b;{let E=vue.ref([]);return r.value.set($,E),E}}function v($,b,E){u.value.set(`${$}-${b}`,E);}function m($,b){return u.value.get(`${$}-${b}`)}function h($,b){$&&b!=null&&u.value.delete(`${$}-${b}`);}function F($,b){n.value.set($,b);}function D($){return n.value.get($)??false}function P($,b){e.value.set($,b);}function O($,b){let E=e.value.get($);return E?a(b,E)?{valid:true}:{valid:false}:undefined}function a($,b){let E=Object.keys(b),i=Object.keys($);return i.length!==E.length||!i.every(V=>E.includes(V))?false:i.every(V=>{let o=$[V],s=b[V];return !s||!o||typeof o=="function"||typeof s=="function"||typeof o=="number"||typeof o=="boolean"?false:o._params?o._params?.every((C,_)=>{if(typeof s=="number"||typeof s=="boolean")return true;{let k=te(s._params),J=te(o._params);return k?.[_]===J?.[_]}}):true})}function w($){let b=l.value.get($);if(b)return b;{let E=vue.ref(false),i=vue.ref(true),S=vue.ref({}),V=vue.ref(false);return l.value.set($,{$pending:E,$valid:i,$metadata:S,$validating:V}),{$pending:E,$valid:i,$metadata:S,$validating:V}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),u.value.clear();}),{addRuleDeclEntry:P,setDirtyEntry:F,checkRuleDeclEntry:O,getDirtyState:D,trySetRuleStatusRef:w,getFieldsEntry:R,getCollectionsEntry:c,getArrayStatus:m,addArrayStatus:v,deleteArrayStatus:h,arrayStatusStorage:u}}function Ve(e){return ae(e.value)}function Ke(e,t,r){let n=vue.effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function Zt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let u=Number(r[l]),R=Number(n[l]);if(u>R)return 1;if(R>u)return -1;if(!isNaN(u)&&isNaN(R))return 1;if(isNaN(u)&&!isNaN(R))return -1}return 0}var _e=Zt(vue.version,"3.5.0")!==-1;function er(){return Math.floor(Math.random()*Date.now()).toString()}function he(){return typeof window>"u"?er():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function St(e){return vue.getCurrentScope()?(vue.onScopeDispose(e),true):false}function ht(e){let t=false,r,n=vue.effectScope(true);return (...l)=>(t||(r=n.run(()=>e(...l)),t=true),r)}function bt(e,t){return Ve(e)||ae(t.value)&&!ee(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function Et(e,t){return !!e.value&&ae(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Tt(e){return !!e.value&&ae(e.value)}function we(e){return ae(e)&&"_validator"in e}function Pe(e){return typeof e.value!="function"}function xt(e){return ae(e)&&"$fields"in e}function Dt(e){return !!e&&"$rules"in e}function Je({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Ct({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function It({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:u,$debounce:R,modifiers:c}){let v=vue.effectScope(),m={},h,F=vue.ref(false),{$pending:D,$valid:P,$metadata:O,$validating:a}=u.trySetRuleStatusRef(`${l}.${r}`);function w(){v=vue.effectScope(),m=v.run(()=>{let o=vue.ref(false),s=vue.ref(false),C=vue.ref(true),_=vue.ref(false),k=vue.ref(false),J=vue.computed(()=>({$value:n.value,$error:s.value,$dirty:o.value,$pending:_.value,$correct:k.value,$invalid:C.value,$rule:{$valid:P.value,$invalid:!P.value,$pending:D.value},$params:d.value,...O.value})),I=vue.computed(()=>Pe(t)?typeof t.value.active=="function"?t.value.active(J.value):!!t.value.active:true);function B(p){let T="",A=e?e[r]?.[p]:undefined;if(A&&(typeof A=="function"?T=A(J.value):T=A),Pe(t)){let X=`_${p}_patched`;A&&!t.value[X]||(typeof t.value[p]=="function"?T=t.value[p](J.value):T=t.value[p]??"");}return T}let ie=vue.computed(()=>{let p=B("message");return ee(p)&&(p="This field is not valid"),p}),de=vue.computed(()=>B("tooltip")),pe=vue.computed(()=>Pe(t)&&t.value.type?t.value.type:r),me=vue.computed(()=>Pe(t)?t.value.validator:t.value),d=vue.computed(()=>typeof t.value=="function"?[]:te(t.value._params??[])),f=vue.computed(()=>`${l}.${pe.value}`);return {$active:I,$message:ie,$type:pe,$validator:me,$params:d,$path:f,$tooltip:de,$fieldCorrect:k,$fieldError:s,$fieldDirty:o,$fieldPending:_,$fieldInvalid:C}}),h=vue.watch(m?.$params,()=>{(c.$autoDirty.value||c.$rewardEarly.value&&m.$fieldError.value)&&i();});}w();function $(){P.value=true,m.$fieldDirty.value&&(D.value=true);}async function b(){let o=false;try{let s=m.$validator.value;if(typeof s!="function")return console.error(`${l}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let C=s(n.value,...m.$params.value),_=n.value;$();let k;if(C instanceof Promise?k=await C:k=C,n.value!==_)return !0;if(typeof k=="boolean")o=k;else {let{$valid:J,...I}=k;o=J,O.value=I;}}catch{o=false;}finally{D.value=false;}return o}let E=je(b,R??200);async function i(){try{a.value=!0;let o=!1;if(we(t.value)&&t.value._async)o=await E();else {let s=m.$validator.value,C=s(n.value,...m.$params.value);if(C instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(C!=null)if(typeof C=="boolean")o=C;else {let{$valid:_,...k}=C;o=_,O.value=k;}}return P.value=o,o}catch{return false}finally{a.value=false;}}function S(){P.value=true,O.value={},D.value=false,a.value=false,w();}function V(){h(),v.stop(),v=vue.effectScope();}return vue.reactive({...m,$pending:D,$valid:P,$metadata:O,$haveAsync:F,$validating:a,$validate:i,$unwatch:V,$watch:w,$reset:S})}function Ne({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:u,options:R,externalErrors:c,schemaErrors:v,schemaMode:m,onUnwatch:h,$isArray:F,initialState:D,shortcuts:P}){let O=vue.effectScope(),a,w=[],$,b,E,i,S,V=()=>{};function o(){let g=t.value,G=u.checkRuleDeclEntry(n,g);B.value=Object.fromEntries(Object.entries(g).filter(([L])=>L.startsWith("$"))),_(),I.value=Object.fromEntries(Object.entries(t.value).filter(([L])=>!L.startsWith("$")).map(([L,x])=>{if(x){let ue=vue.toRef(()=>x);return [L,It({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:ue,ruleKey:L,state:e,path:n,storage:u,$debounce:B.value.$debounce})]}return []}).filter(L=>!!L.length)),a.processShortcuts(),s(),G?.valid!=null&&(a.$dirty.value=u.getDirtyState(n),(a.$dirty.value&&a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V()),u.addRuleDeclEntry(n,g);}function s(){V=a.$debounce.value?je(J,a.$debounce.value??a.$haveAnyAsyncRule?100:0):J;}function C(){I.value&&Object.entries(I.value).forEach(([g,G])=>{G.$unwatch();}),E(),S?.(),a.$dirty.value&&u.setDirtyEntry(n,a.$dirty.value),$?.(),b?.(),O.stop(),O=vue.effectScope(),w.forEach(g=>g.stop()),w=[],h?.(),i?.();}function _(){I.value&&Object.entries(I.value).forEach(([g,G])=>{G.$watch();}),a=O.run(()=>{let g=vue.ref(false),G=vue.ref(false),L=vue.computed(()=>g.value),x=vue.computed(()=>B.value.$debounce),ue=vue.computed(()=>B.value.$lazy!=null?B.value.$lazy:vue.unref(R.lazy)!=null?vue.unref(R.lazy):false),le=vue.computed(()=>B.value.$rewardEarly!=null?B.value.$rewardEarly:vue.unref(R.rewardEarly)!=null?vue.unref(R.rewardEarly):false),ye=vue.computed(()=>B.value.$clearExternalErrorsOnChange!=null?B.value.$clearExternalErrorsOnChange:vue.unref(R.clearExternalErrorsOnChange)!=null?vue.unref(R.clearExternalErrorsOnChange):true),U=vue.computed(()=>B.value.$autoDirty!=null?B.value.$autoDirty:vue.unref(R.autoDirty)!=null?vue.unref(R.autoDirty):!le.value),M=vue.computed(()=>Object.entries(I.value).some(([oe,Y])=>Y.$validating)),H=vue.computed({get:()=>e.value,set(oe){$(),e.value=oe,k();}}),ge=vue.computed(()=>$e.value&&!Oe.value&&g.value),lt=vue.computed(()=>Je({field:{$rules:I.value,$error:ge.value,$externalErrors:c?.value,$schemaErrors:v?.value}})),ot=vue.computed(()=>Je({field:{$rules:I.value,$error:ge.value,$externalErrors:c?.value,$schemaErrors:v?.value},silent:true})),We=vue.computed(()=>g.value?D.value instanceof Date&&e.value instanceof Date?Le(D.value).getDate()!==Le(e.value).getDate():D.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(D.value)?e.value.length!==D.value.length:D.value!==e.value:false),st=vue.computed(()=>We.value),ut=vue.computed(()=>Ct({field:{$rules:I.value}})),it=vue.computed(()=>U.value?L.value&&!($e.value||Oe.value):!($e.value||Oe.value)),Oe=vue.computed(()=>G.value||!le.value?Object.entries(I.value).some(([oe,Y])=>Y.$pending):false),$e=vue.computed(()=>c?.value?.length||v?.value?.length?true:Fe.value?false:!le.value||le.value&&G.value?Object.entries(I.value).some(([oe,Y])=>!Y.$valid):false),ct=vue.computed(()=>l),Fe=vue.computed(()=>!!(ee(I.value)&&!m)),ft=vue.computed(()=>c?.value?.length||Fe.value?false:g.value&&!ee(e.value)&&!M.value?m?!v?.value?.length:Object.values(I.value).some(Y=>Y.$active)?Object.values(I.value).filter(Y=>Y.$active).every(Y=>Y.$valid):false:false),Wt=vue.computed(()=>Object.entries(I.value).some(([oe,Y])=>Y.$haveAsync));function Lt(){P?.fields&&Object.entries(P.fields).forEach(([oe,Y])=>{let dt=vue.effectScope();Rt[oe]=dt.run(()=>{let pt=vue.ref();return vue.watchEffect(()=>{pt.value=Y(vue.reactive({$dirty:g,$externalErrors:c?.value??[],$value:e,$silentValue:H,$rules:I,$error:ge,$pending:Oe,$invalid:$e,$correct:ft,$errors:lt,$ready:it,$silentErrors:ot,$anyDirty:L,$tooltips:ut,$name:ct,$inactive:Fe,$edited:We,$anyEdited:st}));}),pt}),w.push(dt);});}let Rt={};return vue.watch($e,oe=>{oe||(G.value=false);}),{$error:ge,$pending:Oe,$invalid:$e,$correct:ft,$debounce:x,$lazy:ue,$errors:lt,$ready:it,$silentErrors:ot,$rewardEarly:le,$autoDirty:U,$clearExternalErrorsOnChange:ye,$anyDirty:L,$edited:We,$anyEdited:st,$name:ct,$haveAnyAsyncRule:Wt,$shortcuts:Rt,$validating:M,$tooltips:ut,$dirty:g,triggerPunishment:G,processShortcuts:Lt,$silentValue:H,$inactive:Fe}}),k(),E=vue.watch(a.$dirty,g=>{u.setDirtyEntry(n,g),Object.values(I.value).forEach(G=>{G.$fieldDirty=g;});}),S=vue.watch([a.$error,a.$correct,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(g=>{g.$fieldError=a.$error.value,g.$fieldInvalid=a.$invalid.value,g.$fieldPending=a.$pending.value,g.$fieldCorrect=a.$correct.value;});}),b=vue.watch(a.$invalid,g=>{a.$rewardEarly.value&&!g&&(a.triggerPunishment.value=false);}),i=vue.watch(a.$haveAnyAsyncRule,s);}function k(){$=vue.watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&o(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&f();},{deep:F?true:_e?1:true,flush:"post"});}function J(){Object.values(I.value).forEach(g=>{g.$validate();});}let I=vue.ref({}),B=vue.ref({});o();function ie(){f(),a.$dirty.value=false,a.triggerPunishment.value=false,u.setDirtyEntry(n,false),D.value=ae(e.value)?Q(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(I.value).forEach(([g,G])=>{G.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(g=>g.$validate());}function de(g=true,G=false){a.$dirty.value||(a.$dirty.value=true),G&&g?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V():g&&V();}async function pe(){try{let g=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:g};return m?{result:!v?.value?.length,data:g}:ee(I.value)?{result:!0,data:g}:{result:(await Promise.allSettled(Object.entries(I.value).map(([x,ue])=>ue.$validate()))).every(x=>x.status==="fulfilled"?x.value===!0:!1),data:g}}catch{return {result:false,data:e.value}}}function me(){C(),e.value=Q(D),ie();}function d(g=true){return a.$dirty.value?e.value:g?{_null:true}:null}function f(){c?.value?.length&&(c.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&V();let{$shortcuts:p,$validating:T,$autoDirty:A,$rewardEarly:X,$clearExternalErrorsOnChange:y,$haveAnyAsyncRule:j,$debounce:z,$lazy:Z,triggerPunishment:q,...se}=a;return vue.reactive({...se,$externalErrors:c,$value:e,$rules:I,...p,$reset:ie,$touch:de,$validate:pe,$unwatch:C,$watch:_,$resetAll:me,$extractDirtyFields:d,$clearExternalErrors:f})}function Xe({$id:e,path:t,index:r,options:n,storage:l,stateValue:u,customMessages:R,rules:c,externalErrors:v,schemaErrors:m,initialState:h,shortcuts:F,fieldName:D,schemaMode:P}){let O=c.$key?c.$key:he(),a=`${t}.${String(O)}`;typeof u.value=="object"&&u.value!=null&&(u.value.$id?a=`${t}.${u.value.$id}`:Object.defineProperties(u.value,{$id:{value:O,enumerable:false,configurable:false,writable:false}}));let w=vue.toRef(v?.value??[],r),$=vue.computed(()=>m?.value?.[r]),b=Te({state:u,rulesDef:vue.toRef(()=>c),customMessages:R,path:a,storage:l,options:n,externalErrors:w,schemaErrors:$,initialState:h,shortcuts:F,fieldName:D,schemaMode:P});if(b){let E=u.value?.$id;b.$id=E??String(O),l.addArrayStatus(e,b.$id,b);}return b}function At({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:u,externalErrors:R,schemaErrors:c,schemaMode:v,initialState:m,shortcuts:h,fieldName:F}){let D=vue.effectScope(),P,O=vue.effectScope(),a,w=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let $=vue.ref(),b=vue.ref(e.value),E,i=vue.ref({}),S=l.getCollectionsEntry(n);a=O.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(f=>typeof f!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(f=>we(f)||typeof f=="function"):false)})),V(),C();function V(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?($.value=he(),Object.defineProperties(e.value,{$id:{value:$.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&($.value=e.value.$id)),b.value=i.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?S.value=e.value.filter(d=>typeof d=="object").map((d,f)=>{let{scope:p,unwrapped:T}=Ke(t.value.$each,vue.toRef(()=>d),f);p&&w.push(p);let A=vue.toRef(m.value??[],f),X=vue.toRef(R?.value??{},"$each"),y=vue.computed(()=>c?.value?.$each),j=Xe({$id:$.value,path:n,customMessages:r,rules:T??{},stateValue:vue.toRef(()=>d),index:f,options:u,storage:l,externalErrors:X,schemaErrors:y,initialState:A,shortcuts:h,fieldName:F,schemaMode:v});return j||null}).filter(d=>!!d):S.value=[],i.value=Ne({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:u,externalErrors:vue.toRef(R?.value??{},"$self"),schemaErrors:vue.computed(()=>c?.value?.$self),$isArray:true,initialState:m,shortcuts:h,fieldName:F,schemaMode:v});}function o(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let d=Q(S.value);S.value=e.value.filter(f=>typeof f=="object").map((f,p)=>{let T=vue.toRef(()=>f);if(f.$id&&S.value.find(A=>A.$id===f.$id)){let A=l.getArrayStatus($.value,f.$id);return A?(A.$value=T,A):null}else {let{scope:A,unwrapped:X}=Ke(t.value.$each,T,p);A&&w.push(A);let y=vue.toRef(R?.value??{},"$each"),j=vue.computed(()=>c?.value?.$each??[]),z=Xe({$id:$.value,path:n,customMessages:r,rules:X??{},stateValue:T,index:p,options:u,storage:l,externalErrors:y,schemaErrors:j,initialState:vue.toRef(m.value??[],p),shortcuts:h,fieldName:F,schemaMode:v});return z||null}}).filter(f=>!!f),d.filter(f=>!e.value?.find(p=>f.$id===p.$id)).forEach((f,p)=>{l.deleteArrayStatus($.value,p.toString());});}else S.value=[];}function s(){E=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?V():o();},{deep:_e?1:true,flush:"pre"});}function C(){s(),D=vue.effectScope(),P=D.run(()=>{let d=vue.computed({get:()=>e.value,set(x){E(),e.value=x,s();}}),f=vue.computed(()=>i.value.$dirty&&(!S.value.length||S.value.every(x=>x.$dirty))),p=vue.computed(()=>i.value.$anyDirty||S.value.some(x=>x.$anyDirty)),T=vue.computed(()=>i.value.$invalid||S.value.some(x=>x.$invalid)),A=vue.computed(()=>(ee(i.value.$rules)?true:i.value.$correct)&&(!S.value.length||S.value.every(x=>x.$correct||x.$anyDirty&&!x.$invalid))),X=vue.computed(()=>i.value.$error||S.value.some(x=>x.$error)),y=vue.computed(()=>!(T.value||j.value)),j=vue.computed(()=>i.value.$pending||S.value.some(x=>x.$pending)),z=vue.computed(()=>!!S.value.length&&S.value.every(x=>x.$edited)),Z=vue.computed(()=>i.value.$anyEdited||S.value.some(x=>x.$anyEdited)),q=vue.computed(()=>({$self:i.value.$errors,$each:S.value.map(x=>x.$errors)})),se=vue.computed(()=>({$self:i.value.$silentErrors,$each:S.value.map(x=>x.$silentErrors)})),g=vue.computed(()=>F);function G(){h?.collections&&Object.entries(h?.collections).forEach(([x,ue])=>{let le=vue.effectScope();L[x]=le.run(()=>{let ye=vue.ref();return vue.watchEffect(()=>{ye.value=ue(vue.reactive({$dirty:f,$error:X,$silentValue:d,$pending:j,$invalid:T,$correct:A,$errors:q,$ready:y,$silentErrors:se,$anyDirty:p,$name:g,$each:S,$self:i,$value:e,$edited:z,$anyEdited:Z}));}),ye}),w.push(le);});}let L={};return G(),{$dirty:f,$anyDirty:p,$invalid:T,$correct:A,$error:X,$pending:j,$errors:q,$silentErrors:se,$ready:y,$name:g,$shortcuts:L,$silentValue:d,$edited:z,$anyEdited:Z}}),a.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function _(){E&&E(),i.value&&i.value.$unwatch(),S.value&&S.value.forEach(d=>{"$dirty"in d&&d.$unwatch();}),D.stop(),D=vue.effectScope(),O.stop(),O=vue.effectScope(true),w.forEach(d=>d.stop()),w=[];}function k(d=true,f=false){i.value.$touch(d,f),S.value.forEach(p=>{p.$touch(d,f);});}function J(){i.value.$reset(),S.value.forEach(d=>{d.$reset();});}async function I(){let d=e.value;try{return {result:(await Promise.allSettled([i.value.$validate(),...S.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}catch{return {result:false,data:d}}}function B(){i.value.$clearExternalErrors(),S.value.forEach(d=>{d.$clearExternalErrors();});}function ie(d=true){let f=S.value.map(p=>{if(xt(p))return p.$extractDirtyFields(d)});return d&&f.every(p=>ee(p))&&(f=[]),f}function de(){_(),e.value=Q(m.value),J();}let{$shortcuts:pe,...me}=P;return vue.reactive({$self:i,...me,...pe,$each:S,$value:e,$validate:I,$unwatch:_,$watch:C,$touch:k,$reset:J,$resetAll:de,$extractDirtyFields:ie,$clearExternalErrors:B})}function ke({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:u,rootSchemaErrors:R,validationGroups:c,initialState:v,fieldName:m,...h}){let F=vue.effectScope(),D,P=[],O=null,a=null,w=null,$=null;async function E(d=true){let f=Object.entries(e.value),p=Object.fromEntries(f.filter(([y,j])=>!!j).map(([y,j])=>{if(j){let z=vue.toRef(t.value??{},y),Z=vue.toRef(()=>j),q=vue.toRef(l?.value??{},y),se=vue.computed(()=>u?.value?.[y]),g=vue.toRef(v?.value??{},y);return [y,Te({state:z,rulesDef:Z,path:r?`${r}.${y}`:y,externalErrors:q,schemaErrors:se,initialState:g,fieldName:y,...h})]}return []})),T=Object.fromEntries(Object.entries(vue.unref(l)??{}).filter(([y,j])=>!(y in e.value)&&!!j).map(([y])=>{let j=vue.toRef(t.value??{},y),z=vue.toRef(l?.value??{},y),Z=vue.computed(()=>u?.value?.[y]),q=vue.toRef(v?.value??{},y);return [y,Te({state:j,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:z,schemaErrors:Z,initialState:q,fieldName:y,...h})]})),A=Object.fromEntries(Object.entries(vue.unref(u)??{}).map(([y])=>{let j=vue.toRef(t.value??{},y),z=vue.toRef(l?.value??{},y),Z=vue.computed(()=>u?.value?.[y]),q=vue.toRef(v?.value??{},y);return [y,Te({state:j,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:z,schemaErrors:Z,initialState:q,fieldName:y,...h})]})),X=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(T??{}))&&!(y in(A??{}))).map(([y])=>{let j=vue.toRef(t.value??{},y),z=vue.toRef(l?.value??{},y),Z=vue.computed(()=>u?.value?.[y]),q=vue.toRef(v?.value??{},y);return [y,Te({state:j,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:z,schemaErrors:Z,initialState:q,fieldName:y,...h})]}));i.value={...p,...T,...A,...X},d&&o();}let i=h.storage.getFieldsEntry(r);E();function S(){l&&(w=vue.watch(l,()=>{s(),E();},{deep:true}));}function V(){$=vue.watch(t,()=>{s(),E(),k(true,true);},{flush:"sync"});}function o(){n&&(O?.(),O=vue.watch(n,()=>{s(),E();},{deep:true,flush:"post"}),S()),R&&(a?.(),a=vue.watch(R,()=>{s(),E();},{deep:true,flush:"post"})),V(),D=F.run(()=>{let d=vue.computed({get:()=>t.value,set(U){s(),t.value=U,E();}}),f=vue.computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,M])=>M?.$dirty)),p=vue.computed(()=>Object.entries(i.value).some(([U,M])=>M?.$anyDirty)),T=vue.computed(()=>Object.entries(i.value).some(([U,M])=>M?.$invalid)),A=vue.computed(()=>{let U=Object.entries(i.value).filter(([M,H])=>Dt(H)?!H.$inactive:true);return U.length?U.every(([M,H])=>H?.$correct||H.$anyDirty&&!H.$invalid):false}),X=vue.computed(()=>p.value&&!q.value&&T.value),y=vue.computed(()=>vue.unref(h.options.rewardEarly)!=null?vue.unref(h.options.rewardEarly):false),j=vue.computed(()=>vue.unref(h.options.autoDirty)!=null?vue.unref(h.options.autoDirty):!y.value),z=vue.computed(()=>j.value?p.value&&!(T.value||q.value):!(T.value||q.value)),Z=vue.ref(false),q=vue.computed(()=>Z.value||Object.entries(i.value).some(([U,M])=>M?.$pending)),se=vue.computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,M])=>[U,M?.$errors]))),g=vue.computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,M])=>[U,M?.$silentErrors]))),G=vue.computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,M])=>M?.$edited)),L=vue.computed(()=>Object.entries(i.value).some(([U,M])=>M?.$anyEdited)),x=vue.computed(()=>m);function ue(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,M])=>{let H=vue.effectScope();ye[U]=H.run(()=>{let ge=vue.ref();return vue.watchEffect(()=>{ge.value=M(vue.reactive({$dirty:f,$value:t,$silentValue:d,$error:X,$pending:q,$invalid:T,$correct:A,$ready:z,$anyDirty:p,$name:x,$silentErrors:g,$errors:se,$fields:i,$edited:G,$anyEdited:L}));}),ge}),P.push(H);});}let le=vue.computed({get:()=>c?Object.fromEntries(Object.entries(c?.(i.value)??{}).map(([U,M])=>M.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(H=>[H,yt(M,H)])),...Object.fromEntries(["$errors","$silentErrors"].map(H=>[H,gt(M,H)]))}]:[])):{},set(){}}),ye={};return ue(),{$dirty:f,$anyDirty:p,$invalid:T,$correct:A,$error:X,$pending:q,$errors:se,$silentErrors:g,$ready:z,$name:x,$shortcuts:ye,$groups:le,$silentValue:d,$edited:G,$anyEdited:L,$localPending:Z}});}function s(){O?.(),w?.(),$?.(),a?.(),P=[],D={},i.value&&Object.entries(i.value).forEach(([d,f])=>{f.$unwatch();});}function C(){Object.entries(i.value).forEach(([d,f])=>{f.$clearExternalErrors();});}function _(){w?.(),Object.values(i.value).forEach(d=>{d.$reset();}),v.value={...Q(t.value)},S();}function k(d=true,f=false){Object.values(i.value).forEach(p=>{p.$touch(d,f);});}async function J(){s(),t.value=Q({...v.value??{}}),_(),E();}function I(d){return d.filter(([f,p])=>ae(p)?!(p&&typeof p=="object"&&"_null"in p)&&!ee(p):Array.isArray(p)?p.length:true)}function B(d=true){let f=Object.entries(i.value).map(([p,T])=>[p,T.$extractDirtyFields(d)]);return d&&(f=I(f)),Object.fromEntries(f)}async function ie(){try{if(h.schemaMode)return h.onValidate?(k(!1),D.$localPending.value=!0,h.onValidate()):{result:!1,data:t.value};{let d=t.value;return {result:(await Promise.allSettled(Object.values(i.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}}catch{return {result:false,data:t.value}}finally{D.$localPending.value=false;}}let{$shortcuts:de,$localPending:pe,...me}=D;return vue.reactive({...me,...de,$fields:i,$value:t,$resetAll:J,$reset:_,$touch:k,$validate:ie,$unwatch:s,$watch:o,$clearExternalErrors:C,$extractDirtyFields:B})}function Te({rulesDef:e,...t}){if(Et(e,t.state))return At({rulesDef:e,...t});if(bt(t.state,e)){if(Ve(t.state))return ke({rulesDef:e,...t});{let n=vue.effectScope().run(()=>{let R=vue.toRef(t.state.value?t.state:vue.ref({}));return vue.watch(()=>t.state.value,c=>{R.value=c;},{deep:true}),vue.watch(R,c=>{t.state.value=c;},{deep:true}),{fakeState:R}}),{state:l,...u}=t;return ke({rulesDef:e,...u,state:n.fakeState})}}else if(Tt(e))return Ne({rulesDef:e,...t})}function Ie({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:u,schemaErrors:R,schemaMode:c=false,onValidate:v}){let m=qe(),h=vue.ref();return h.value=ke({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:u,fieldName:"root",path:"",schemaErrors:R,rootSchemaErrors:R,schemaMode:c,onValidate:v}),vue.getCurrentScope()&&vue.onScopeDispose(()=>{h.value?.$unwatch();}),vue.reactive({regle:h})}function tt(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(u,R,c){let v=vue.isRef(R)?R:vue.computed(typeof R=="function"?R:()=>R),m={...n,...c},h=vue.isRef(u)?u:vue.ref(u),F=vue.ref({...Q(h.value)});return {r$:Ie({scopeRules:v,state:h,options:m,initialState:F,customRules:e,shortcuts:r}).regle}}return l}var Ue=tt();function rt(){function e(t,r){return r}return e}var nt=rt();function Vt({rules:e,modifiers:t,shortcuts:r}){let n=tt(e,t,r),l=rt();return {useRegle:n,inferRules:l}}function Me(e,t){let r=t??false,n=vue.computed({get:()=>r?Object.values(e).map(o=>o.$value):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$value])),set:o=>{r||typeof o=="object"&&Object.entries(o).forEach(([s,C])=>e[s].$value=C);}}),l=vue.computed({get:()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentValue])),set:o=>{typeof o=="object"&&Object.entries(o).forEach(([s,C])=>e[s].$silentValue=C);}}),u=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$dirty)}),R=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$anyDirty)),c=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$invalid)),v=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$correct||C.$anyDirty&&!C.$invalid)}),m=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$error)),h=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$ready)}),F=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$pending)),D=vue.computed(()=>r?Object.entries(e).map(([o,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$errors]))),P=vue.computed(()=>r?Object.entries(e).map(([o,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentErrors]))),O=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$edited)}),a=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$anyEdited)),w=vue.computed(()=>r?Object.values(e):e);function $(){Object.values(e).forEach(o=>{o.$reset();});}function b(){Object.values(e).forEach(o=>{o.$touch();});}function E(){Object.values(e).forEach(o=>{o.$resetAll();});}function i(o=true){return Object.values(e).map(s=>s.$extractDirtyFields(o))}function S(){Object.values(e).forEach(o=>{o.$clearExternalErrors();});}async function V(){try{let o=n.value;return {result:(await Promise.allSettled(Object.values(e).map(_=>_.$validate()))).every(_=>_.status==="fulfilled"?_.value.result===!0:!1),data:o}}catch{return {result:false,data:n.value}}}return vue.reactive({...!r&&{$silentValue:l},$errors:D,$silentErrors:P,$instances:w,$value:n,$dirty:u,$anyDirty:R,$invalid:c,$correct:v,$error:m,$pending:F,$ready:h,$edited:O,$anyEdited:a,$resetAll:E,$reset:$,$touch:b,$validate:V,$extractDirtyFields:i,$clearExternalErrors:S})}function Nt(e){function t(r){let n=vue.computed(()=>vue.toValue(r));R();let l=vue.ref(c(e.value)),u=vue.reactive({r$:l});function R(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}vue.watch(n,R),vue.watch(e,v=>{l.value=c(v);},{deep:true});function c(v){if(n.value){let m=v[n.value]??{};return Me(m,true)}else return Me(v["~~global"]??{},true)}return {r$:u.r$}}return {useCollectScope:t}}function Ut(e,t){let r=t??Ue;return {useScopedRegle:(l,u,R)=>{let{namespace:c,...v}=R??{},m=vue.computed(()=>vue.toValue(c)),h=vue.ref(`${Object.keys(e.value).length+1}-${he()}`),F=vue.computed(()=>`instance-${h.value}`),{r$:D}=r(l,u,v);O(),St(P),vue.watch(m,(a,w)=>{P(w),O();}),vue.getCurrentInstance()&&vue.onMounted(()=>{let a=vue.getCurrentInstance();typeof window<"u"&&a?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(a?.proxy?.$el?.parentElement)&&P();});function P(a){let w=a??m.value;w?e.value[w]&&delete e.value[w][F.value]:e.value["~~global"][F.value]&&delete e.value["~~global"][F.value];}function O(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][F.value]=D):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][F.value]=D);}return {r$:D,dispose:P,register:O}}}}function at(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):ht(()=>vue.ref({"~~global":{}})))(),{useScopedRegle:n}=Ut(r,e?.customUseRegle),{useCollectScope:l}=Nt(r);return {useScopedRegle:n,useCollectScope:l}}
2
2
  exports.InternalRuleType=Be;exports.createRule=ze;exports.createScopedUseRegle=at;exports.defineRegleConfig=Vt;exports.inferRules=nt;exports.mergeRegles=Me;exports.unwrapRuleParameters=te;exports.useRegle=Ue;exports.useRootStorage=Ie;
@@ -1,2 +1,2 @@
1
- import {toValue,version,ref,getCurrentScope,onScopeDispose,reactive,computed,shallowRef,effectScope,watch,getCurrentInstance,onMounted,isRef,toRef,unref,watchEffect}from'vue';function ee(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e instanceof File?e.size>0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var mt=Symbol("regle-rule");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 Q(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>Q(n)))),r=="Map"&&(t=new Map([...e].map(n=>[Q(n[0]),Q(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]=Q(e[n]);}return t}function ae(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Le(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function je(e,t,r){let n,l=(...u)=>new Promise(R=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...u])).then(R);},t);});return l.cancel=()=>{clearTimeout(n),n=undefined;},l}var Be=(r=>(r.Inline="__inline",r.Async="__async",r))(Be||{});function yt(e,t){return e.some(r=>r[t])}function gt(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function te(e){try{return e.map(t=>toValue(t))}catch{return []}}function $t(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function vt(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(R=>R.trim()).filter(R=>R.length>0).length:0}function He(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(c,...v){return e.validator(c,...te(v.length?v:t))},message(c){return typeof e.message=="function"?e.message({...c,$params:te(c?.$params?.length?c.$params:t)}):e.message},active(c){return typeof e.active=="function"?e.active({...c,$params:te(c?.$params?.length?c.$params:t)}):e.active??true},tooltip(c){return typeof e.tooltip=="function"?e.tooltip({...c,$params:te(c?.$params?.length?c.$params:t)}):e.tooltip??[]},exec(c){let v=e.validator(c,...te(t)),m;return v instanceof Promise?v.then(h=>(m=h,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)):(m=v,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:l,_params:$t(t),_brand:mt}}function ze(e){if(typeof e.validator=="function"){let r=He(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(vt(e.validator)>1){let l=function(...u){return He(e,...u)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=false,l._tooltip_pacthed=false,l._async=n,l}else return r}throw new Error("Validator must be a function")}function qe(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),l=shallowRef(new Map),u=shallowRef(new Map);function R($){let b=t.value.get($);if(b)return b;{let E=ref({});return t.value.set($,E),E}}function c($){let b=r.value.get($);if(b)return b;{let E=ref([]);return r.value.set($,E),E}}function v($,b,E){u.value.set(`${$}-${b}`,E);}function m($,b){return u.value.get(`${$}-${b}`)}function h($,b){$&&b!=null&&u.value.delete(`${$}-${b}`);}function F($,b){n.value.set($,b);}function D($){return n.value.get($)??false}function P($,b){e.value.set($,b);}function O($,b){let E=e.value.get($);return E?a(b,E)?{valid:true}:{valid:false}:undefined}function a($,b){let E=Object.keys(b),i=Object.keys($);return i.length!==E.length||!i.every(V=>E.includes(V))?false:i.every(V=>{let o=$[V],s=b[V];return !s||!o||typeof o=="function"||typeof s=="function"||typeof o=="number"||typeof o=="boolean"?false:o._params?o._params?.every((C,_)=>{if(typeof s=="number"||typeof s=="boolean")return true;{let k=te(s._params),J=te(o._params);return k?.[_]===J?.[_]}}):true})}function w($){let b=l.value.get($);if(b)return b;{let E=ref(false),i=ref(true),S=ref({}),V=ref(false);return l.value.set($,{$pending:E,$valid:i,$metadata:S,$validating:V}),{$pending:E,$valid:i,$metadata:S,$validating:V}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),u.value.clear();}),{addRuleDeclEntry:P,setDirtyEntry:F,checkRuleDeclEntry:O,getDirtyState:D,trySetRuleStatusRef:w,getFieldsEntry:R,getCollectionsEntry:c,getArrayStatus:m,addArrayStatus:v,deleteArrayStatus:h,arrayStatusStorage:u}}function Ve(e){return ae(e.value)}function Ke(e,t,r){let n=effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function Zt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let u=Number(r[l]),R=Number(n[l]);if(u>R)return 1;if(R>u)return -1;if(!isNaN(u)&&isNaN(R))return 1;if(isNaN(u)&&!isNaN(R))return -1}return 0}var _e=Zt(version,"3.5.0")!==-1;function er(){return Math.floor(Math.random()*Date.now()).toString()}function he(){return typeof window>"u"?er():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function St(e){return getCurrentScope()?(onScopeDispose(e),true):false}function ht(e){let t=false,r,n=effectScope(true);return (...l)=>(t||(r=n.run(()=>e(...l)),t=true),r)}function bt(e,t){return Ve(e)||ae(t.value)&&!ee(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function Et(e,t){return !!e.value&&ae(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Tt(e){return !!e.value&&ae(e.value)}function we(e){return ae(e)&&"_validator"in e}function Pe(e){return typeof e.value!="function"}function xt(e){return ae(e)&&"$fields"in e}function Dt(e){return !!e&&"$rules"in e}function Je({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Ct({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function It({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:u,$debounce:R,modifiers:c}){let v=effectScope(),m={},h,F=ref(false),{$pending:D,$valid:P,$metadata:O,$validating:a}=u.trySetRuleStatusRef(`${l}.${r}`);function w(){v=effectScope(),m=v.run(()=>{let o=ref(false),s=ref(false),C=ref(true),_=ref(false),k=ref(false),J=computed(()=>({$value:n.value,$error:s.value,$dirty:o.value,$pending:_.value,$correct:k.value,$invalid:C.value,$rule:{$valid:P.value,$invalid:!P.value,$pending:D.value},$params:d.value,...O.value})),I=computed(()=>Pe(t)?typeof t.value.active=="function"?t.value.active(J.value):!!t.value.active:true);function B(p){let T="",A=e?e[r]?.[p]:undefined;if(A&&(typeof A=="function"?T=A(J.value):T=A),Pe(t)){let X=`_${p}_patched`;A&&!t.value[X]||(typeof t.value[p]=="function"?T=t.value[p](J.value):T=t.value[p]??"");}return T}let ie=computed(()=>{let p=B("message");return ee(p)&&(p="This field is not valid"),p}),de=computed(()=>B("tooltip")),pe=computed(()=>Pe(t)&&t.value.type?t.value.type:r),me=computed(()=>Pe(t)?t.value.validator:t.value),d=computed(()=>typeof t.value=="function"?[]:te(t.value._params??[])),f=computed(()=>`${l}.${pe.value}`);return {$active:I,$message:ie,$type:pe,$validator:me,$params:d,$path:f,$tooltip:de,$fieldCorrect:k,$fieldError:s,$fieldDirty:o,$fieldPending:_,$fieldInvalid:C}}),h=watch(m?.$params,()=>{(c.$autoDirty.value||c.$rewardEarly.value&&m.$fieldError.value)&&i();});}w();function $(){P.value=true,m.$fieldDirty.value&&(D.value=true);}async function b(){let o=false;try{let s=m.$validator.value;if(typeof s!="function")return console.error(`${l}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let C=s(n.value,...m.$params.value),_=n.value;$();let k;if(C instanceof Promise?k=await C:k=C,n.value!==_)return !0;if(typeof k=="boolean")o=k;else {let{$valid:J,...I}=k;o=J,O.value=I;}}catch{o=false;}finally{D.value=false;}return o}let E=je(b,R??200);async function i(){try{a.value=!0;let o=!1;if(we(t.value)&&t.value._async)o=await E();else {let s=m.$validator.value,C=s(n.value,...m.$params.value);if(C instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(C!=null)if(typeof C=="boolean")o=C;else {let{$valid:_,...k}=C;o=_,O.value=k;}}return P.value=o,o}catch{return false}finally{a.value=false;}}function S(){P.value=true,O.value={},D.value=false,a.value=false,w();}function V(){h(),v.stop(),v=effectScope();}return reactive({...m,$pending:D,$valid:P,$metadata:O,$haveAsync:F,$validating:a,$validate:i,$unwatch:V,$watch:w,$reset:S})}function Ne({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:u,options:R,externalErrors:c,schemaErrors:v,schemaMode:m,onUnwatch:h,$isArray:F,initialState:D,shortcuts:P}){let O=effectScope(),a,w=[],$,b,E,i,S,V=()=>{};function o(){let g=t.value,G=u.checkRuleDeclEntry(n,g);B.value=Object.fromEntries(Object.entries(g).filter(([L])=>L.startsWith("$"))),_(),I.value=Object.fromEntries(Object.entries(t.value).filter(([L])=>!L.startsWith("$")).map(([L,x])=>{if(x){let ue=toRef(()=>x);return [L,It({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:ue,ruleKey:L,state:e,path:n,storage:u,$debounce:B.value.$debounce})]}return []}).filter(L=>!!L.length)),a.processShortcuts(),s(),G?.valid!=null&&(a.$dirty.value=u.getDirtyState(n),(a.$dirty.value&&a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V()),u.addRuleDeclEntry(n,g);}function s(){V=a.$debounce.value?je(J,a.$debounce.value??a.$haveAnyAsyncRule?100:0):J;}function C(){I.value&&Object.entries(I.value).forEach(([g,G])=>{G.$unwatch();}),E(),S?.(),a.$dirty.value&&u.setDirtyEntry(n,a.$dirty.value),$?.(),b?.(),O.stop(),O=effectScope(),w.forEach(g=>g.stop()),w=[],h?.(),i?.();}function _(){I.value&&Object.entries(I.value).forEach(([g,G])=>{G.$watch();}),a=O.run(()=>{let g=ref(false),G=ref(false),L=computed(()=>g.value),x=computed(()=>B.value.$debounce),ue=computed(()=>B.value.$lazy!=null?B.value.$lazy:unref(R.lazy)!=null?unref(R.lazy):false),le=computed(()=>B.value.$rewardEarly!=null?B.value.$rewardEarly:unref(R.rewardEarly)!=null?unref(R.rewardEarly):false),ye=computed(()=>B.value.$clearExternalErrorsOnChange!=null?B.value.$clearExternalErrorsOnChange:unref(R.clearExternalErrorsOnChange)!=null?unref(R.clearExternalErrorsOnChange):true),U=computed(()=>B.value.$autoDirty!=null?B.value.$autoDirty:unref(R.autoDirty)!=null?unref(R.autoDirty):!le.value),M=computed(()=>Object.entries(I.value).some(([oe,Y])=>Y.$validating)),H=computed({get:()=>e.value,set(oe){$(),e.value=oe,k();}}),ge=computed(()=>$e.value&&!Oe.value&&g.value),lt=computed(()=>Je({field:{$rules:I.value,$error:ge.value,$externalErrors:c?.value,$schemaErrors:v?.value}})),ot=computed(()=>Je({field:{$rules:I.value,$error:ge.value,$externalErrors:c?.value,$schemaErrors:v?.value},silent:true})),We=computed(()=>g.value?D.value instanceof Date&&e.value instanceof Date?Le(D.value).getDate()!==Le(e.value).getDate():D.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(D.value)?e.value.length!==D.value.length:D.value!==e.value:false),st=computed(()=>We.value),ut=computed(()=>Ct({field:{$rules:I.value}})),it=computed(()=>U.value?L.value&&!($e.value||Oe.value):!($e.value||Oe.value)),Oe=computed(()=>G.value||!le.value?Object.entries(I.value).some(([oe,Y])=>Y.$pending):false),$e=computed(()=>c?.value?.length||v?.value?.length?true:Fe.value?false:!le.value||le.value&&G.value?Object.entries(I.value).some(([oe,Y])=>!Y.$valid):false),ct=computed(()=>l),Fe=computed(()=>!!(ee(I.value)&&!m)),ft=computed(()=>c?.value?.length||Fe.value?false:g.value&&!ee(e.value)&&!M.value?m?!v?.value?.length:Object.values(I.value).some(Y=>Y.$active)?Object.values(I.value).filter(Y=>Y.$active).every(Y=>Y.$valid):false:false),Wt=computed(()=>Object.entries(I.value).some(([oe,Y])=>Y.$haveAsync));function Lt(){P?.fields&&Object.entries(P.fields).forEach(([oe,Y])=>{let dt=effectScope();Rt[oe]=dt.run(()=>{let pt=ref();return watchEffect(()=>{pt.value=Y(reactive({$dirty:g,$externalErrors:c?.value??[],$value:e,$silentValue:H,$rules:I,$error:ge,$pending:Oe,$invalid:$e,$correct:ft,$errors:lt,$ready:it,$silentErrors:ot,$anyDirty:L,$tooltips:ut,$name:ct,$inactive:Fe,$edited:We,$anyEdited:st}));}),pt}),w.push(dt);});}let Rt={};return watch($e,oe=>{oe||(G.value=false);}),{$error:ge,$pending:Oe,$invalid:$e,$correct:ft,$debounce:x,$lazy:ue,$errors:lt,$ready:it,$silentErrors:ot,$rewardEarly:le,$autoDirty:U,$clearExternalErrorsOnChange:ye,$anyDirty:L,$edited:We,$anyEdited:st,$name:ct,$haveAnyAsyncRule:Wt,$shortcuts:Rt,$validating:M,$tooltips:ut,$dirty:g,triggerPunishment:G,processShortcuts:Lt,$silentValue:H,$inactive:Fe}}),k(),E=watch(a.$dirty,g=>{u.setDirtyEntry(n,g),Object.values(I.value).forEach(G=>{G.$fieldDirty=g;});}),S=watch([a.$error,a.$correct,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(g=>{g.$fieldError=a.$error.value,g.$fieldInvalid=a.$invalid.value,g.$fieldPending=a.$pending.value,g.$fieldCorrect=a.$correct.value;});}),b=watch(a.$invalid,g=>{a.$rewardEarly.value&&!g&&(a.triggerPunishment.value=false);}),i=watch(a.$haveAnyAsyncRule,s);}function k(){$=watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&o(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&f();},{deep:F?true:_e?1:true,flush:"post"});}function J(){Object.values(I.value).forEach(g=>{g.$validate();});}let I=ref({}),B=ref({});o();function ie(){f(),a.$dirty.value=false,a.triggerPunishment.value=false,u.setDirtyEntry(n,false),D.value=ae(e.value)?Q(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(I.value).forEach(([g,G])=>{G.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(g=>g.$validate());}function de(g=true,G=false){a.$dirty.value||(a.$dirty.value=true),G&&g?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V():g&&V();}async function pe(){try{let g=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:g};return m?{result:!v?.value?.length,data:g}:ee(I.value)?{result:!0,data:g}:{result:(await Promise.allSettled(Object.entries(I.value).map(([x,ue])=>ue.$validate()))).every(x=>x.status==="fulfilled"?x.value===!0:!1),data:g}}catch{return {result:false,data:e.value}}}function me(){C(),e.value=Q(D),ie();}function d(g=true){return a.$dirty.value?e.value:g?{_null:true}:null}function f(){c?.value?.length&&(c.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&V();let{$shortcuts:p,$validating:T,$autoDirty:A,$rewardEarly:X,$clearExternalErrorsOnChange:y,$haveAnyAsyncRule:j,$debounce:z,$lazy:Z,triggerPunishment:q,...se}=a;return reactive({...se,$externalErrors:c,$value:e,$rules:I,...p,$reset:ie,$touch:de,$validate:pe,$unwatch:C,$watch:_,$resetAll:me,$extractDirtyFields:d,$clearExternalErrors:f})}function Xe({$id:e,path:t,index:r,options:n,storage:l,stateValue:u,customMessages:R,rules:c,externalErrors:v,schemaErrors:m,initialState:h,shortcuts:F,fieldName:D,schemaMode:P}){let O=c.$key?c.$key:he(),a=`${t}.${String(O)}`;typeof u.value=="object"&&u.value!=null&&(u.value.$id?a=`${t}.${u.value.$id}`:Object.defineProperties(u.value,{$id:{value:O,enumerable:false,configurable:false,writable:false}}));let w=toRef(v?.value??[],r),$=computed(()=>m?.value?.[r]),b=Te({state:u,rulesDef:toRef(()=>c),customMessages:R,path:a,storage:l,options:n,externalErrors:w,schemaErrors:$,initialState:h,shortcuts:F,fieldName:D,schemaMode:P});if(b){let E=u.value?.$id;b.$id=E??String(O),l.addArrayStatus(e,b.$id,b);}return b}function At({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:u,externalErrors:R,schemaErrors:c,schemaMode:v,initialState:m,shortcuts:h,fieldName:F}){let D=effectScope(),P,O=effectScope(),a,w=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let $=ref(),b=ref(e.value),E,i=ref({}),S=l.getCollectionsEntry(n);a=O.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(f=>typeof f!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(f=>we(f)||typeof f=="function"):false)})),V(),C();function V(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?($.value=he(),Object.defineProperties(e.value,{$id:{value:$.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&($.value=e.value.$id)),b.value=i.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?S.value=e.value.filter(d=>typeof d=="object").map((d,f)=>{let{scope:p,unwrapped:T}=Ke(t.value.$each,toRef(()=>d),f);p&&w.push(p);let A=toRef(m.value??[],f),X=toRef(R?.value??{},"$each"),y=computed(()=>c?.value?.$each),j=Xe({$id:$.value,path:n,customMessages:r,rules:T??{},stateValue:toRef(()=>d),index:f,options:u,storage:l,externalErrors:X,schemaErrors:y,initialState:A,shortcuts:h,fieldName:F,schemaMode:v});return j||null}).filter(d=>!!d):S.value=[],i.value=Ne({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:u,externalErrors:toRef(R?.value??{},"$self"),schemaErrors:computed(()=>c?.value?.$self),$isArray:true,initialState:m,shortcuts:h,fieldName:F,schemaMode:v});}function o(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let d=Q(S.value);S.value=e.value.filter(f=>typeof f=="object").map((f,p)=>{let T=toRef(()=>f);if(f.$id&&S.value.find(A=>A.$id===f.$id)){let A=l.getArrayStatus($.value,f.$id);return A?(A.$value=T,A):null}else {let{scope:A,unwrapped:X}=Ke(t.value.$each,T,p);A&&w.push(A);let y=toRef(R?.value??{},"$each"),j=computed(()=>c?.value?.$each??[]),z=Xe({$id:$.value,path:n,customMessages:r,rules:X??{},stateValue:T,index:p,options:u,storage:l,externalErrors:y,schemaErrors:j,initialState:toRef(m.value??[],p),shortcuts:h,fieldName:F,schemaMode:v});return z||null}}).filter(f=>!!f),d.filter(f=>!e.value?.find(p=>f.$id===p.$id)).forEach((f,p)=>{l.deleteArrayStatus($.value,p.toString());});}else S.value=[];}function s(){E=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?V():o();},{deep:_e?1:true,flush:"pre"});}function C(){s(),D=effectScope(),P=D.run(()=>{let d=computed({get:()=>e.value,set(x){E(),e.value=x,s();}}),f=computed(()=>i.value.$dirty&&(!S.value.length||S.value.every(x=>x.$dirty))),p=computed(()=>i.value.$anyDirty||S.value.some(x=>x.$anyDirty)),T=computed(()=>i.value.$invalid||S.value.some(x=>x.$invalid)),A=computed(()=>(ee(i.value.$rules)?true:i.value.$correct)&&(!S.value.length||S.value.every(x=>x.$correct||x.$anyDirty&&!x.$invalid))),X=computed(()=>i.value.$error||S.value.some(x=>x.$error)),y=computed(()=>!(T.value||j.value)),j=computed(()=>i.value.$pending||S.value.some(x=>x.$pending)),z=computed(()=>!!S.value.length&&S.value.every(x=>x.$edited)),Z=computed(()=>i.value.$anyEdited||S.value.some(x=>x.$anyEdited)),q=computed(()=>({$self:i.value.$errors,$each:S.value.map(x=>x.$errors)})),se=computed(()=>({$self:i.value.$silentErrors,$each:S.value.map(x=>x.$silentErrors)})),g=computed(()=>F);function G(){h?.collections&&Object.entries(h?.collections).forEach(([x,ue])=>{let le=effectScope();L[x]=le.run(()=>{let ye=ref();return watchEffect(()=>{ye.value=ue(reactive({$dirty:f,$error:X,$silentValue:d,$pending:j,$invalid:T,$correct:A,$errors:q,$ready:y,$silentErrors:se,$anyDirty:p,$name:g,$each:S,$self:i,$value:e,$edited:z,$anyEdited:Z}));}),ye}),w.push(le);});}let L={};return G(),{$dirty:f,$anyDirty:p,$invalid:T,$correct:A,$error:X,$pending:j,$errors:q,$silentErrors:se,$ready:y,$name:g,$shortcuts:L,$silentValue:d,$edited:z,$anyEdited:Z}}),a.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function _(){E&&E(),i.value&&i.value.$unwatch(),S.value&&S.value.forEach(d=>{"$dirty"in d&&d.$unwatch();}),D.stop(),D=effectScope(),O.stop(),O=effectScope(true),w.forEach(d=>d.stop()),w=[];}function k(d=true,f=false){i.value.$touch(d,f),S.value.forEach(p=>{p.$touch(d,f);});}function J(){i.value.$reset(),S.value.forEach(d=>{d.$reset();});}async function I(){let d=e.value;try{return {result:(await Promise.allSettled([i.value.$validate(),...S.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}catch{return {result:false,data:d}}}function B(){i.value.$clearExternalErrors(),S.value.forEach(d=>{d.$clearExternalErrors();});}function ie(d=true){let f=S.value.map(p=>{if(xt(p))return p.$extractDirtyFields(d)});return d&&f.every(p=>ee(p))&&(f=[]),f}function de(){_(),e.value=Q(m.value),J();}let{$shortcuts:pe,...me}=P;return reactive({$self:i,...me,...pe,$each:S,$value:e,$validate:I,$unwatch:_,$watch:C,$touch:k,$reset:J,$resetAll:de,$extractDirtyFields:ie,$clearExternalErrors:B})}function ke({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:u,rootSchemaErrors:R,validationGroups:c,initialState:v,fieldName:m,...h}){let F=effectScope(),D,P=[],O=null,a=null,w=null,$=null;async function E(d=true){let f=Object.entries(e.value),p=Object.fromEntries(f.filter(([y,j])=>!!j).map(([y,j])=>{if(j){let z=toRef(t.value??{},y),Z=toRef(()=>j),q=toRef(l?.value??{},y),se=computed(()=>u?.value?.[y]),g=toRef(v?.value??{},y);return [y,Te({state:z,rulesDef:Z,path:r?`${r}.${y}`:y,externalErrors:q,schemaErrors:se,initialState:g,fieldName:y,...h})]}return []})),T=Object.fromEntries(Object.entries(unref(l)??{}).filter(([y,j])=>!(y in e.value)&&!!j).map(([y])=>{let j=toRef(t.value??{},y),z=toRef(l?.value??{},y),Z=computed(()=>u?.value?.[y]),q=toRef(v?.value??{},y);return [y,Te({state:j,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:z,schemaErrors:Z,initialState:q,fieldName:y,...h})]})),A=Object.fromEntries(Object.entries(unref(u)??{}).map(([y])=>{let j=toRef(t.value??{},y),z=toRef(l?.value??{},y),Z=computed(()=>u?.value?.[y]),q=toRef(v?.value??{},y);return [y,Te({state:j,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:z,schemaErrors:Z,initialState:q,fieldName:y,...h})]})),X=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(T??{}))&&!(y in(A??{}))).map(([y])=>{let j=toRef(t.value??{},y),z=toRef(l?.value??{},y),Z=computed(()=>u?.value?.[y]),q=toRef(v?.value??{},y);return [y,Te({state:j,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:z,schemaErrors:Z,initialState:q,fieldName:y,...h})]}));i.value={...p,...T,...A,...X},d&&o();}let i=h.storage.getFieldsEntry(r);E();function S(){l&&(w=watch(l,()=>{s(),E();},{deep:true}));}function V(){$=watch(t,()=>{s(),E(),k(true,true);},{flush:"sync"});}function o(){n&&(O?.(),O=watch(n,()=>{s(),E();},{deep:true,flush:"post"}),S()),R&&(a?.(),a=watch(R,()=>{s(),E();},{deep:true,flush:"post"})),V(),D=F.run(()=>{let d=computed({get:()=>t.value,set(U){s(),t.value=U,E();}}),f=computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,M])=>M?.$dirty)),p=computed(()=>Object.entries(i.value).some(([U,M])=>M?.$anyDirty)),T=computed(()=>Object.entries(i.value).some(([U,M])=>M?.$invalid)),A=computed(()=>{let U=Object.entries(i.value).filter(([M,H])=>Dt(H)?!H.$inactive:true);return U.length?U.every(([M,H])=>H?.$correct||H.$anyDirty&&!H.$invalid):false}),X=computed(()=>p.value&&!q.value&&T.value),y=computed(()=>unref(h.options.rewardEarly)!=null?unref(h.options.rewardEarly):false),j=computed(()=>unref(h.options.autoDirty)!=null?unref(h.options.autoDirty):!y.value),z=computed(()=>j.value?p.value&&!(T.value||q.value):!(T.value||q.value)),Z=ref(false),q=computed(()=>Z.value||Object.entries(i.value).some(([U,M])=>M?.$pending)),se=computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,M])=>[U,M?.$errors]))),g=computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,M])=>[U,M?.$silentErrors]))),G=computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,M])=>M?.$edited)),L=computed(()=>Object.entries(i.value).some(([U,M])=>M?.$anyEdited)),x=computed(()=>m);function ue(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,M])=>{let H=effectScope();ye[U]=H.run(()=>{let ge=ref();return watchEffect(()=>{ge.value=M(reactive({$dirty:f,$value:t,$silentValue:d,$error:X,$pending:q,$invalid:T,$correct:A,$ready:z,$anyDirty:p,$name:x,$silentErrors:g,$errors:se,$fields:i,$edited:G,$anyEdited:L}));}),ge}),P.push(H);});}let le=computed({get:()=>c?Object.fromEntries(Object.entries(c?.(i.value)??{}).map(([U,M])=>M.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(H=>[H,yt(M,H)])),...Object.fromEntries(["$errors","$silentErrors"].map(H=>[H,gt(M,H)]))}]:[])):{},set(){}}),ye={};return ue(),{$dirty:f,$anyDirty:p,$invalid:T,$correct:A,$error:X,$pending:q,$errors:se,$silentErrors:g,$ready:z,$name:x,$shortcuts:ye,$groups:le,$silentValue:d,$edited:G,$anyEdited:L,$localPending:Z}});}function s(){O?.(),w?.(),$?.(),a?.(),P=[],D={},i.value&&Object.entries(i.value).forEach(([d,f])=>{f.$unwatch();});}function C(){Object.entries(i.value).forEach(([d,f])=>{f.$clearExternalErrors();});}function _(){w?.(),Object.values(i.value).forEach(d=>{d.$reset();}),v.value={...Q(t.value)},S();}function k(d=true,f=false){Object.values(i.value).forEach(p=>{p.$touch(d,f);});}async function J(){s(),t.value=Q({...v.value??{}}),_(),E();}function I(d){return d.filter(([f,p])=>ae(p)?!(p&&typeof p=="object"&&"_null"in p)&&!ee(p):Array.isArray(p)?p.length:true)}function B(d=true){let f=Object.entries(i.value).map(([p,T])=>[p,T.$extractDirtyFields(d)]);return d&&(f=I(f)),Object.fromEntries(f)}async function ie(){try{if(h.schemaMode)return h.onValidate?(k(!1),D.$localPending.value=!0,h.onValidate()):{result:!1,data:t.value};{let d=t.value;return {result:(await Promise.allSettled(Object.values(i.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}}catch{return {result:false,data:t.value}}finally{D.$localPending.value=false;}}let{$shortcuts:de,$localPending:pe,...me}=D;return reactive({...me,...de,$fields:i,$value:t,$resetAll:J,$reset:_,$touch:k,$validate:ie,$unwatch:s,$watch:o,$clearExternalErrors:C,$extractDirtyFields:B})}function Te({rulesDef:e,...t}){if(Et(e,t.state))return At({rulesDef:e,...t});if(bt(t.state,e)){if(Ve(t.state))return ke({rulesDef:e,...t});{let n=effectScope().run(()=>{let R=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,c=>{R.value=c;},{deep:true}),watch(R,c=>{t.state.value=c;},{deep:true}),{fakeState:R}}),{state:l,...u}=t;return ke({rulesDef:e,...u,state:n.fakeState})}}else if(Tt(e))return Ne({rulesDef:e,...t})}function Ie({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:u,schemaErrors:R,schemaMode:c=false,onValidate:v}){let m=qe(),h=ref();return h.value=ke({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:u,fieldName:"root",path:"",schemaErrors:R,rootSchemaErrors:R,schemaMode:c,onValidate:v}),getCurrentScope()&&onScopeDispose(()=>{h.value?.$unwatch();}),reactive({regle:h})}function tt(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(u,R,c){let v=isRef(R)?R:computed(typeof R=="function"?R:()=>R),m={...n,...c},h=isRef(u)?u:ref(u),F=ref({...Q(h.value)});return {r$:Ie({scopeRules:v,state:h,options:m,initialState:F,customRules:e,shortcuts:r}).regle}}return l}var Ue=tt();function rt(){function e(t,r){return r}return e}var nt=rt();function Vt({rules:e,modifiers:t,shortcuts:r}){let n=tt(e,t,r),l=rt();return {useRegle:n,inferRules:l}}function Me(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(o=>o.$value):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$value])),set:o=>{r||typeof o=="object"&&Object.entries(o).forEach(([s,C])=>e[s].$value=C);}}),l=computed({get:()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentValue])),set:o=>{typeof o=="object"&&Object.entries(o).forEach(([s,C])=>e[s].$silentValue=C);}}),u=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$dirty)}),R=computed(()=>Object.entries(e).some(([o,s])=>s?.$anyDirty)),c=computed(()=>Object.entries(e).some(([o,s])=>s?.$invalid)),v=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$correct||C.$anyDirty&&!C.$invalid)}),m=computed(()=>Object.entries(e).some(([o,s])=>s?.$error)),h=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$ready)}),F=computed(()=>Object.entries(e).some(([o,s])=>s?.$pending)),D=computed(()=>r?Object.entries(e).map(([o,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$errors]))),P=computed(()=>r?Object.entries(e).map(([o,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentErrors]))),O=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$edited)}),a=computed(()=>Object.entries(e).some(([o,s])=>s?.$anyEdited)),w=computed(()=>r?Object.values(e):e);function $(){Object.values(e).forEach(o=>{o.$reset();});}function b(){Object.values(e).forEach(o=>{o.$touch();});}function E(){Object.values(e).forEach(o=>{o.$resetAll();});}function i(o=true){return Object.values(e).map(s=>s.$extractDirtyFields(o))}function S(){Object.values(e).forEach(o=>{o.$clearExternalErrors();});}async function V(){try{let o=n.value;return {result:(await Promise.allSettled(Object.values(e).map(_=>_.$validate()))).every(_=>_.status==="fulfilled"?_.value.result===!0:!1),data:o}}catch{return {result:false,data:n.value}}}return reactive({...!r&&{$silentValue:l},$errors:D,$silentErrors:P,$instances:w,$value:n,$dirty:u,$anyDirty:R,$invalid:c,$correct:v,$error:m,$pending:F,$ready:h,$edited:O,$anyEdited:a,$resetAll:E,$reset:$,$touch:b,$validate:V,$extractDirtyFields:i,$clearExternalErrors:S})}function Nt(e){function t(r){let n=computed(()=>toValue(r));R();let l=ref(c(e.value)),u=reactive({r$:l});function R(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}watch(n,R),watch(e,v=>{l.value=c(v);},{deep:true});function c(v){if(n.value){let m=v[n.value]??{};return Me(m,true)}else return Me(v["~~global"]??{},true)}return {r$:u.r$}}return {useCollectScope:t}}function Ut(e,t){let r=t??Ue;return {useScopedRegle:(l,u,R)=>{let{namespace:c,...v}=R??{},m=computed(()=>toValue(c)),h=ref(`${Object.keys(e.value).length+1}-${he()}`),F=computed(()=>`instance-${h.value}`),{r$:D}=r(l,u,v);O(),St(P),watch(m,(a,w)=>{P(w),O();}),getCurrentInstance()&&onMounted(()=>{let a=getCurrentInstance();typeof window<"u"&&a?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(a?.proxy?.$el?.parentElement)&&P();});function P(a){let w=a??m.value;w?e.value[w]&&delete e.value[w][F.value]:e.value["~~global"][F.value]&&delete e.value["~~global"][F.value];}function O(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][F.value]=D):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][F.value]=D);}return {r$:D,dispose:P,register:O}}}}function at(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):ht(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=Ut(r,e?.customUseRegle),{useCollectScope:l}=Nt(r);return {useScopedRegle:n,useCollectScope:l}}
1
+ import {toValue,version,ref,getCurrentScope,onScopeDispose,reactive,computed,shallowRef,effectScope,watch,getCurrentInstance,onMounted,isRef,toRef,unref,watchEffect}from'vue';function ee(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size>0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var mt=Symbol("regle-rule");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 Q(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>Q(n)))),r=="Map"&&(t=new Map([...e].map(n=>[Q(n[0]),Q(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]=Q(e[n]);}return t}function ae(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Le(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function je(e,t,r){let n,l=(...u)=>new Promise(R=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...u])).then(R);},t);});return l.cancel=()=>{clearTimeout(n),n=undefined;},l}var Be=(r=>(r.Inline="__inline",r.Async="__async",r))(Be||{});function yt(e,t){return e.some(r=>r[t])}function gt(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function te(e){try{return e.map(t=>toValue(t))}catch{return []}}function $t(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function vt(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(R=>R.trim()).filter(R=>R.length>0).length:0}function He(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(c,...v){return e.validator(c,...te(v.length?v:t))},message(c){return typeof e.message=="function"?e.message({...c,$params:te(c?.$params?.length?c.$params:t)}):e.message},active(c){return typeof e.active=="function"?e.active({...c,$params:te(c?.$params?.length?c.$params:t)}):e.active??true},tooltip(c){return typeof e.tooltip=="function"?e.tooltip({...c,$params:te(c?.$params?.length?c.$params:t)}):e.tooltip??[]},exec(c){let v=e.validator(c,...te(t)),m;return v instanceof Promise?v.then(h=>(m=h,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)):(m=v,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:false,_tooltip_patched:false,_async:l,_params:$t(t),_brand:mt}}function ze(e){if(typeof e.validator=="function"){let r=He(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(vt(e.validator)>1){let l=function(...u){return He(e,...u)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=false,l._tooltip_pacthed=false,l._async=n,l}else return r}throw new Error("Validator must be a function")}function qe(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),l=shallowRef(new Map),u=shallowRef(new Map);function R($){let b=t.value.get($);if(b)return b;{let E=ref({});return t.value.set($,E),E}}function c($){let b=r.value.get($);if(b)return b;{let E=ref([]);return r.value.set($,E),E}}function v($,b,E){u.value.set(`${$}-${b}`,E);}function m($,b){return u.value.get(`${$}-${b}`)}function h($,b){$&&b!=null&&u.value.delete(`${$}-${b}`);}function F($,b){n.value.set($,b);}function D($){return n.value.get($)??false}function P($,b){e.value.set($,b);}function O($,b){let E=e.value.get($);return E?a(b,E)?{valid:true}:{valid:false}:undefined}function a($,b){let E=Object.keys(b),i=Object.keys($);return i.length!==E.length||!i.every(V=>E.includes(V))?false:i.every(V=>{let o=$[V],s=b[V];return !s||!o||typeof o=="function"||typeof s=="function"||typeof o=="number"||typeof o=="boolean"?false:o._params?o._params?.every((C,_)=>{if(typeof s=="number"||typeof s=="boolean")return true;{let k=te(s._params),J=te(o._params);return k?.[_]===J?.[_]}}):true})}function w($){let b=l.value.get($);if(b)return b;{let E=ref(false),i=ref(true),S=ref({}),V=ref(false);return l.value.set($,{$pending:E,$valid:i,$metadata:S,$validating:V}),{$pending:E,$valid:i,$metadata:S,$validating:V}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),u.value.clear();}),{addRuleDeclEntry:P,setDirtyEntry:F,checkRuleDeclEntry:O,getDirtyState:D,trySetRuleStatusRef:w,getFieldsEntry:R,getCollectionsEntry:c,getArrayStatus:m,addArrayStatus:v,deleteArrayStatus:h,arrayStatusStorage:u}}function Ve(e){return ae(e.value)}function Ke(e,t,r){let n=effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function Zt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let u=Number(r[l]),R=Number(n[l]);if(u>R)return 1;if(R>u)return -1;if(!isNaN(u)&&isNaN(R))return 1;if(isNaN(u)&&!isNaN(R))return -1}return 0}var _e=Zt(version,"3.5.0")!==-1;function er(){return Math.floor(Math.random()*Date.now()).toString()}function he(){return typeof window>"u"?er():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function St(e){return getCurrentScope()?(onScopeDispose(e),true):false}function ht(e){let t=false,r,n=effectScope(true);return (...l)=>(t||(r=n.run(()=>e(...l)),t=true),r)}function bt(e,t){return Ve(e)||ae(t.value)&&!ee(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function Et(e,t){return !!e.value&&ae(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Tt(e){return !!e.value&&ae(e.value)}function we(e){return ae(e)&&"_validator"in e}function Pe(e){return typeof e.value!="function"}function xt(e){return ae(e)&&"$fields"in e}function Dt(e){return !!e&&"$rules"in e}function Je({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Ct({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function It({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:u,$debounce:R,modifiers:c}){let v=effectScope(),m={},h,F=ref(false),{$pending:D,$valid:P,$metadata:O,$validating:a}=u.trySetRuleStatusRef(`${l}.${r}`);function w(){v=effectScope(),m=v.run(()=>{let o=ref(false),s=ref(false),C=ref(true),_=ref(false),k=ref(false),J=computed(()=>({$value:n.value,$error:s.value,$dirty:o.value,$pending:_.value,$correct:k.value,$invalid:C.value,$rule:{$valid:P.value,$invalid:!P.value,$pending:D.value},$params:d.value,...O.value})),I=computed(()=>Pe(t)?typeof t.value.active=="function"?t.value.active(J.value):!!t.value.active:true);function B(p){let T="",A=e?e[r]?.[p]:undefined;if(A&&(typeof A=="function"?T=A(J.value):T=A),Pe(t)){let X=`_${p}_patched`;A&&!t.value[X]||(typeof t.value[p]=="function"?T=t.value[p](J.value):T=t.value[p]??"");}return T}let ie=computed(()=>{let p=B("message");return ee(p)&&(p="This field is not valid"),p}),de=computed(()=>B("tooltip")),pe=computed(()=>Pe(t)&&t.value.type?t.value.type:r),me=computed(()=>Pe(t)?t.value.validator:t.value),d=computed(()=>typeof t.value=="function"?[]:te(t.value._params??[])),f=computed(()=>`${l}.${pe.value}`);return {$active:I,$message:ie,$type:pe,$validator:me,$params:d,$path:f,$tooltip:de,$fieldCorrect:k,$fieldError:s,$fieldDirty:o,$fieldPending:_,$fieldInvalid:C}}),h=watch(m?.$params,()=>{(c.$autoDirty.value||c.$rewardEarly.value&&m.$fieldError.value)&&i();});}w();function $(){P.value=true,m.$fieldDirty.value&&(D.value=true);}async function b(){let o=false;try{let s=m.$validator.value;if(typeof s!="function")return console.error(`${l}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let C=s(n.value,...m.$params.value),_=n.value;$();let k;if(C instanceof Promise?k=await C:k=C,n.value!==_)return !0;if(typeof k=="boolean")o=k;else {let{$valid:J,...I}=k;o=J,O.value=I;}}catch{o=false;}finally{D.value=false;}return o}let E=je(b,R??200);async function i(){try{a.value=!0;let o=!1;if(we(t.value)&&t.value._async)o=await E();else {let s=m.$validator.value,C=s(n.value,...m.$params.value);if(C instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(C!=null)if(typeof C=="boolean")o=C;else {let{$valid:_,...k}=C;o=_,O.value=k;}}return P.value=o,o}catch{return false}finally{a.value=false;}}function S(){P.value=true,O.value={},D.value=false,a.value=false,w();}function V(){h(),v.stop(),v=effectScope();}return reactive({...m,$pending:D,$valid:P,$metadata:O,$haveAsync:F,$validating:a,$validate:i,$unwatch:V,$watch:w,$reset:S})}function Ne({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:u,options:R,externalErrors:c,schemaErrors:v,schemaMode:m,onUnwatch:h,$isArray:F,initialState:D,shortcuts:P}){let O=effectScope(),a,w=[],$,b,E,i,S,V=()=>{};function o(){let g=t.value,G=u.checkRuleDeclEntry(n,g);B.value=Object.fromEntries(Object.entries(g).filter(([L])=>L.startsWith("$"))),_(),I.value=Object.fromEntries(Object.entries(t.value).filter(([L])=>!L.startsWith("$")).map(([L,x])=>{if(x){let ue=toRef(()=>x);return [L,It({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:ue,ruleKey:L,state:e,path:n,storage:u,$debounce:B.value.$debounce})]}return []}).filter(L=>!!L.length)),a.processShortcuts(),s(),G?.valid!=null&&(a.$dirty.value=u.getDirtyState(n),(a.$dirty.value&&a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V()),u.addRuleDeclEntry(n,g);}function s(){V=a.$debounce.value?je(J,a.$debounce.value??a.$haveAnyAsyncRule?100:0):J;}function C(){I.value&&Object.entries(I.value).forEach(([g,G])=>{G.$unwatch();}),E(),S?.(),a.$dirty.value&&u.setDirtyEntry(n,a.$dirty.value),$?.(),b?.(),O.stop(),O=effectScope(),w.forEach(g=>g.stop()),w=[],h?.(),i?.();}function _(){I.value&&Object.entries(I.value).forEach(([g,G])=>{G.$watch();}),a=O.run(()=>{let g=ref(false),G=ref(false),L=computed(()=>g.value),x=computed(()=>B.value.$debounce),ue=computed(()=>B.value.$lazy!=null?B.value.$lazy:unref(R.lazy)!=null?unref(R.lazy):false),le=computed(()=>B.value.$rewardEarly!=null?B.value.$rewardEarly:unref(R.rewardEarly)!=null?unref(R.rewardEarly):false),ye=computed(()=>B.value.$clearExternalErrorsOnChange!=null?B.value.$clearExternalErrorsOnChange:unref(R.clearExternalErrorsOnChange)!=null?unref(R.clearExternalErrorsOnChange):true),U=computed(()=>B.value.$autoDirty!=null?B.value.$autoDirty:unref(R.autoDirty)!=null?unref(R.autoDirty):!le.value),M=computed(()=>Object.entries(I.value).some(([oe,Y])=>Y.$validating)),H=computed({get:()=>e.value,set(oe){$(),e.value=oe,k();}}),ge=computed(()=>$e.value&&!Oe.value&&g.value),lt=computed(()=>Je({field:{$rules:I.value,$error:ge.value,$externalErrors:c?.value,$schemaErrors:v?.value}})),ot=computed(()=>Je({field:{$rules:I.value,$error:ge.value,$externalErrors:c?.value,$schemaErrors:v?.value},silent:true})),We=computed(()=>g.value?D.value instanceof Date&&e.value instanceof Date?Le(D.value).getDate()!==Le(e.value).getDate():D.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(D.value)?e.value.length!==D.value.length:D.value!==e.value:false),st=computed(()=>We.value),ut=computed(()=>Ct({field:{$rules:I.value}})),it=computed(()=>U.value?L.value&&!($e.value||Oe.value):!($e.value||Oe.value)),Oe=computed(()=>G.value||!le.value?Object.entries(I.value).some(([oe,Y])=>Y.$pending):false),$e=computed(()=>c?.value?.length||v?.value?.length?true:Fe.value?false:!le.value||le.value&&G.value?Object.entries(I.value).some(([oe,Y])=>!Y.$valid):false),ct=computed(()=>l),Fe=computed(()=>!!(ee(I.value)&&!m)),ft=computed(()=>c?.value?.length||Fe.value?false:g.value&&!ee(e.value)&&!M.value?m?!v?.value?.length:Object.values(I.value).some(Y=>Y.$active)?Object.values(I.value).filter(Y=>Y.$active).every(Y=>Y.$valid):false:false),Wt=computed(()=>Object.entries(I.value).some(([oe,Y])=>Y.$haveAsync));function Lt(){P?.fields&&Object.entries(P.fields).forEach(([oe,Y])=>{let dt=effectScope();Rt[oe]=dt.run(()=>{let pt=ref();return watchEffect(()=>{pt.value=Y(reactive({$dirty:g,$externalErrors:c?.value??[],$value:e,$silentValue:H,$rules:I,$error:ge,$pending:Oe,$invalid:$e,$correct:ft,$errors:lt,$ready:it,$silentErrors:ot,$anyDirty:L,$tooltips:ut,$name:ct,$inactive:Fe,$edited:We,$anyEdited:st}));}),pt}),w.push(dt);});}let Rt={};return watch($e,oe=>{oe||(G.value=false);}),{$error:ge,$pending:Oe,$invalid:$e,$correct:ft,$debounce:x,$lazy:ue,$errors:lt,$ready:it,$silentErrors:ot,$rewardEarly:le,$autoDirty:U,$clearExternalErrorsOnChange:ye,$anyDirty:L,$edited:We,$anyEdited:st,$name:ct,$haveAnyAsyncRule:Wt,$shortcuts:Rt,$validating:M,$tooltips:ut,$dirty:g,triggerPunishment:G,processShortcuts:Lt,$silentValue:H,$inactive:Fe}}),k(),E=watch(a.$dirty,g=>{u.setDirtyEntry(n,g),Object.values(I.value).forEach(G=>{G.$fieldDirty=g;});}),S=watch([a.$error,a.$correct,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(g=>{g.$fieldError=a.$error.value,g.$fieldInvalid=a.$invalid.value,g.$fieldPending=a.$pending.value,g.$fieldCorrect=a.$correct.value;});}),b=watch(a.$invalid,g=>{a.$rewardEarly.value&&!g&&(a.triggerPunishment.value=false);}),i=watch(a.$haveAnyAsyncRule,s);}function k(){$=watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&o(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&f();},{deep:F?true:_e?1:true,flush:"post"});}function J(){Object.values(I.value).forEach(g=>{g.$validate();});}let I=ref({}),B=ref({});o();function ie(){f(),a.$dirty.value=false,a.triggerPunishment.value=false,u.setDirtyEntry(n,false),D.value=ae(e.value)?Q(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(I.value).forEach(([g,G])=>{G.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(g=>g.$validate());}function de(g=true,G=false){a.$dirty.value||(a.$dirty.value=true),G&&g?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V():g&&V();}async function pe(){try{let g=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:g};return m?{result:!v?.value?.length,data:g}:ee(I.value)?{result:!0,data:g}:{result:(await Promise.allSettled(Object.entries(I.value).map(([x,ue])=>ue.$validate()))).every(x=>x.status==="fulfilled"?x.value===!0:!1),data:g}}catch{return {result:false,data:e.value}}}function me(){C(),e.value=Q(D),ie();}function d(g=true){return a.$dirty.value?e.value:g?{_null:true}:null}function f(){c?.value?.length&&(c.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&V();let{$shortcuts:p,$validating:T,$autoDirty:A,$rewardEarly:X,$clearExternalErrorsOnChange:y,$haveAnyAsyncRule:j,$debounce:z,$lazy:Z,triggerPunishment:q,...se}=a;return reactive({...se,$externalErrors:c,$value:e,$rules:I,...p,$reset:ie,$touch:de,$validate:pe,$unwatch:C,$watch:_,$resetAll:me,$extractDirtyFields:d,$clearExternalErrors:f})}function Xe({$id:e,path:t,index:r,options:n,storage:l,stateValue:u,customMessages:R,rules:c,externalErrors:v,schemaErrors:m,initialState:h,shortcuts:F,fieldName:D,schemaMode:P}){let O=c.$key?c.$key:he(),a=`${t}.${String(O)}`;typeof u.value=="object"&&u.value!=null&&(u.value.$id?a=`${t}.${u.value.$id}`:Object.defineProperties(u.value,{$id:{value:O,enumerable:false,configurable:false,writable:false}}));let w=toRef(v?.value??[],r),$=computed(()=>m?.value?.[r]),b=Te({state:u,rulesDef:toRef(()=>c),customMessages:R,path:a,storage:l,options:n,externalErrors:w,schemaErrors:$,initialState:h,shortcuts:F,fieldName:D,schemaMode:P});if(b){let E=u.value?.$id;b.$id=E??String(O),l.addArrayStatus(e,b.$id,b);}return b}function At({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:u,externalErrors:R,schemaErrors:c,schemaMode:v,initialState:m,shortcuts:h,fieldName:F}){let D=effectScope(),P,O=effectScope(),a,w=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let $=ref(),b=ref(e.value),E,i=ref({}),S=l.getCollectionsEntry(n);a=O.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(f=>typeof f!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(f=>we(f)||typeof f=="function"):false)})),V(),C();function V(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?($.value=he(),Object.defineProperties(e.value,{$id:{value:$.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&($.value=e.value.$id)),b.value=i.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?S.value=e.value.filter(d=>typeof d=="object").map((d,f)=>{let{scope:p,unwrapped:T}=Ke(t.value.$each,toRef(()=>d),f);p&&w.push(p);let A=toRef(m.value??[],f),X=toRef(R?.value??{},"$each"),y=computed(()=>c?.value?.$each),j=Xe({$id:$.value,path:n,customMessages:r,rules:T??{},stateValue:toRef(()=>d),index:f,options:u,storage:l,externalErrors:X,schemaErrors:y,initialState:A,shortcuts:h,fieldName:F,schemaMode:v});return j||null}).filter(d=>!!d):S.value=[],i.value=Ne({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:u,externalErrors:toRef(R?.value??{},"$self"),schemaErrors:computed(()=>c?.value?.$self),$isArray:true,initialState:m,shortcuts:h,fieldName:F,schemaMode:v});}function o(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let d=Q(S.value);S.value=e.value.filter(f=>typeof f=="object").map((f,p)=>{let T=toRef(()=>f);if(f.$id&&S.value.find(A=>A.$id===f.$id)){let A=l.getArrayStatus($.value,f.$id);return A?(A.$value=T,A):null}else {let{scope:A,unwrapped:X}=Ke(t.value.$each,T,p);A&&w.push(A);let y=toRef(R?.value??{},"$each"),j=computed(()=>c?.value?.$each??[]),z=Xe({$id:$.value,path:n,customMessages:r,rules:X??{},stateValue:T,index:p,options:u,storage:l,externalErrors:y,schemaErrors:j,initialState:toRef(m.value??[],p),shortcuts:h,fieldName:F,schemaMode:v});return z||null}}).filter(f=>!!f),d.filter(f=>!e.value?.find(p=>f.$id===p.$id)).forEach((f,p)=>{l.deleteArrayStatus($.value,p.toString());});}else S.value=[];}function s(){E=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?V():o();},{deep:_e?1:true,flush:"pre"});}function C(){s(),D=effectScope(),P=D.run(()=>{let d=computed({get:()=>e.value,set(x){E(),e.value=x,s();}}),f=computed(()=>i.value.$dirty&&(!S.value.length||S.value.every(x=>x.$dirty))),p=computed(()=>i.value.$anyDirty||S.value.some(x=>x.$anyDirty)),T=computed(()=>i.value.$invalid||S.value.some(x=>x.$invalid)),A=computed(()=>(ee(i.value.$rules)?true:i.value.$correct)&&(!S.value.length||S.value.every(x=>x.$correct||x.$anyDirty&&!x.$invalid))),X=computed(()=>i.value.$error||S.value.some(x=>x.$error)),y=computed(()=>!(T.value||j.value)),j=computed(()=>i.value.$pending||S.value.some(x=>x.$pending)),z=computed(()=>!!S.value.length&&S.value.every(x=>x.$edited)),Z=computed(()=>i.value.$anyEdited||S.value.some(x=>x.$anyEdited)),q=computed(()=>({$self:i.value.$errors,$each:S.value.map(x=>x.$errors)})),se=computed(()=>({$self:i.value.$silentErrors,$each:S.value.map(x=>x.$silentErrors)})),g=computed(()=>F);function G(){h?.collections&&Object.entries(h?.collections).forEach(([x,ue])=>{let le=effectScope();L[x]=le.run(()=>{let ye=ref();return watchEffect(()=>{ye.value=ue(reactive({$dirty:f,$error:X,$silentValue:d,$pending:j,$invalid:T,$correct:A,$errors:q,$ready:y,$silentErrors:se,$anyDirty:p,$name:g,$each:S,$self:i,$value:e,$edited:z,$anyEdited:Z}));}),ye}),w.push(le);});}let L={};return G(),{$dirty:f,$anyDirty:p,$invalid:T,$correct:A,$error:X,$pending:j,$errors:q,$silentErrors:se,$ready:y,$name:g,$shortcuts:L,$silentValue:d,$edited:z,$anyEdited:Z}}),a.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function _(){E&&E(),i.value&&i.value.$unwatch(),S.value&&S.value.forEach(d=>{"$dirty"in d&&d.$unwatch();}),D.stop(),D=effectScope(),O.stop(),O=effectScope(true),w.forEach(d=>d.stop()),w=[];}function k(d=true,f=false){i.value.$touch(d,f),S.value.forEach(p=>{p.$touch(d,f);});}function J(){i.value.$reset(),S.value.forEach(d=>{d.$reset();});}async function I(){let d=e.value;try{return {result:(await Promise.allSettled([i.value.$validate(),...S.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}catch{return {result:false,data:d}}}function B(){i.value.$clearExternalErrors(),S.value.forEach(d=>{d.$clearExternalErrors();});}function ie(d=true){let f=S.value.map(p=>{if(xt(p))return p.$extractDirtyFields(d)});return d&&f.every(p=>ee(p))&&(f=[]),f}function de(){_(),e.value=Q(m.value),J();}let{$shortcuts:pe,...me}=P;return reactive({$self:i,...me,...pe,$each:S,$value:e,$validate:I,$unwatch:_,$watch:C,$touch:k,$reset:J,$resetAll:de,$extractDirtyFields:ie,$clearExternalErrors:B})}function ke({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:u,rootSchemaErrors:R,validationGroups:c,initialState:v,fieldName:m,...h}){let F=effectScope(),D,P=[],O=null,a=null,w=null,$=null;async function E(d=true){let f=Object.entries(e.value),p=Object.fromEntries(f.filter(([y,j])=>!!j).map(([y,j])=>{if(j){let z=toRef(t.value??{},y),Z=toRef(()=>j),q=toRef(l?.value??{},y),se=computed(()=>u?.value?.[y]),g=toRef(v?.value??{},y);return [y,Te({state:z,rulesDef:Z,path:r?`${r}.${y}`:y,externalErrors:q,schemaErrors:se,initialState:g,fieldName:y,...h})]}return []})),T=Object.fromEntries(Object.entries(unref(l)??{}).filter(([y,j])=>!(y in e.value)&&!!j).map(([y])=>{let j=toRef(t.value??{},y),z=toRef(l?.value??{},y),Z=computed(()=>u?.value?.[y]),q=toRef(v?.value??{},y);return [y,Te({state:j,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:z,schemaErrors:Z,initialState:q,fieldName:y,...h})]})),A=Object.fromEntries(Object.entries(unref(u)??{}).map(([y])=>{let j=toRef(t.value??{},y),z=toRef(l?.value??{},y),Z=computed(()=>u?.value?.[y]),q=toRef(v?.value??{},y);return [y,Te({state:j,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:z,schemaErrors:Z,initialState:q,fieldName:y,...h})]})),X=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(T??{}))&&!(y in(A??{}))).map(([y])=>{let j=toRef(t.value??{},y),z=toRef(l?.value??{},y),Z=computed(()=>u?.value?.[y]),q=toRef(v?.value??{},y);return [y,Te({state:j,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:z,schemaErrors:Z,initialState:q,fieldName:y,...h})]}));i.value={...p,...T,...A,...X},d&&o();}let i=h.storage.getFieldsEntry(r);E();function S(){l&&(w=watch(l,()=>{s(),E();},{deep:true}));}function V(){$=watch(t,()=>{s(),E(),k(true,true);},{flush:"sync"});}function o(){n&&(O?.(),O=watch(n,()=>{s(),E();},{deep:true,flush:"post"}),S()),R&&(a?.(),a=watch(R,()=>{s(),E();},{deep:true,flush:"post"})),V(),D=F.run(()=>{let d=computed({get:()=>t.value,set(U){s(),t.value=U,E();}}),f=computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,M])=>M?.$dirty)),p=computed(()=>Object.entries(i.value).some(([U,M])=>M?.$anyDirty)),T=computed(()=>Object.entries(i.value).some(([U,M])=>M?.$invalid)),A=computed(()=>{let U=Object.entries(i.value).filter(([M,H])=>Dt(H)?!H.$inactive:true);return U.length?U.every(([M,H])=>H?.$correct||H.$anyDirty&&!H.$invalid):false}),X=computed(()=>p.value&&!q.value&&T.value),y=computed(()=>unref(h.options.rewardEarly)!=null?unref(h.options.rewardEarly):false),j=computed(()=>unref(h.options.autoDirty)!=null?unref(h.options.autoDirty):!y.value),z=computed(()=>j.value?p.value&&!(T.value||q.value):!(T.value||q.value)),Z=ref(false),q=computed(()=>Z.value||Object.entries(i.value).some(([U,M])=>M?.$pending)),se=computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,M])=>[U,M?.$errors]))),g=computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,M])=>[U,M?.$silentErrors]))),G=computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,M])=>M?.$edited)),L=computed(()=>Object.entries(i.value).some(([U,M])=>M?.$anyEdited)),x=computed(()=>m);function ue(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,M])=>{let H=effectScope();ye[U]=H.run(()=>{let ge=ref();return watchEffect(()=>{ge.value=M(reactive({$dirty:f,$value:t,$silentValue:d,$error:X,$pending:q,$invalid:T,$correct:A,$ready:z,$anyDirty:p,$name:x,$silentErrors:g,$errors:se,$fields:i,$edited:G,$anyEdited:L}));}),ge}),P.push(H);});}let le=computed({get:()=>c?Object.fromEntries(Object.entries(c?.(i.value)??{}).map(([U,M])=>M.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(H=>[H,yt(M,H)])),...Object.fromEntries(["$errors","$silentErrors"].map(H=>[H,gt(M,H)]))}]:[])):{},set(){}}),ye={};return ue(),{$dirty:f,$anyDirty:p,$invalid:T,$correct:A,$error:X,$pending:q,$errors:se,$silentErrors:g,$ready:z,$name:x,$shortcuts:ye,$groups:le,$silentValue:d,$edited:G,$anyEdited:L,$localPending:Z}});}function s(){O?.(),w?.(),$?.(),a?.(),P=[],D={},i.value&&Object.entries(i.value).forEach(([d,f])=>{f.$unwatch();});}function C(){Object.entries(i.value).forEach(([d,f])=>{f.$clearExternalErrors();});}function _(){w?.(),Object.values(i.value).forEach(d=>{d.$reset();}),v.value={...Q(t.value)},S();}function k(d=true,f=false){Object.values(i.value).forEach(p=>{p.$touch(d,f);});}async function J(){s(),t.value=Q({...v.value??{}}),_(),E();}function I(d){return d.filter(([f,p])=>ae(p)?!(p&&typeof p=="object"&&"_null"in p)&&!ee(p):Array.isArray(p)?p.length:true)}function B(d=true){let f=Object.entries(i.value).map(([p,T])=>[p,T.$extractDirtyFields(d)]);return d&&(f=I(f)),Object.fromEntries(f)}async function ie(){try{if(h.schemaMode)return h.onValidate?(k(!1),D.$localPending.value=!0,h.onValidate()):{result:!1,data:t.value};{let d=t.value;return {result:(await Promise.allSettled(Object.values(i.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}}catch{return {result:false,data:t.value}}finally{D.$localPending.value=false;}}let{$shortcuts:de,$localPending:pe,...me}=D;return reactive({...me,...de,$fields:i,$value:t,$resetAll:J,$reset:_,$touch:k,$validate:ie,$unwatch:s,$watch:o,$clearExternalErrors:C,$extractDirtyFields:B})}function Te({rulesDef:e,...t}){if(Et(e,t.state))return At({rulesDef:e,...t});if(bt(t.state,e)){if(Ve(t.state))return ke({rulesDef:e,...t});{let n=effectScope().run(()=>{let R=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,c=>{R.value=c;},{deep:true}),watch(R,c=>{t.state.value=c;},{deep:true}),{fakeState:R}}),{state:l,...u}=t;return ke({rulesDef:e,...u,state:n.fakeState})}}else if(Tt(e))return Ne({rulesDef:e,...t})}function Ie({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:u,schemaErrors:R,schemaMode:c=false,onValidate:v}){let m=qe(),h=ref();return h.value=ke({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:u,fieldName:"root",path:"",schemaErrors:R,rootSchemaErrors:R,schemaMode:c,onValidate:v}),getCurrentScope()&&onScopeDispose(()=>{h.value?.$unwatch();}),reactive({regle:h})}function tt(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(u,R,c){let v=isRef(R)?R:computed(typeof R=="function"?R:()=>R),m={...n,...c},h=isRef(u)?u:ref(u),F=ref({...Q(h.value)});return {r$:Ie({scopeRules:v,state:h,options:m,initialState:F,customRules:e,shortcuts:r}).regle}}return l}var Ue=tt();function rt(){function e(t,r){return r}return e}var nt=rt();function Vt({rules:e,modifiers:t,shortcuts:r}){let n=tt(e,t,r),l=rt();return {useRegle:n,inferRules:l}}function Me(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(o=>o.$value):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$value])),set:o=>{r||typeof o=="object"&&Object.entries(o).forEach(([s,C])=>e[s].$value=C);}}),l=computed({get:()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentValue])),set:o=>{typeof o=="object"&&Object.entries(o).forEach(([s,C])=>e[s].$silentValue=C);}}),u=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$dirty)}),R=computed(()=>Object.entries(e).some(([o,s])=>s?.$anyDirty)),c=computed(()=>Object.entries(e).some(([o,s])=>s?.$invalid)),v=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$correct||C.$anyDirty&&!C.$invalid)}),m=computed(()=>Object.entries(e).some(([o,s])=>s?.$error)),h=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$ready)}),F=computed(()=>Object.entries(e).some(([o,s])=>s?.$pending)),D=computed(()=>r?Object.entries(e).map(([o,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$errors]))),P=computed(()=>r?Object.entries(e).map(([o,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentErrors]))),O=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,C])=>C?.$edited)}),a=computed(()=>Object.entries(e).some(([o,s])=>s?.$anyEdited)),w=computed(()=>r?Object.values(e):e);function $(){Object.values(e).forEach(o=>{o.$reset();});}function b(){Object.values(e).forEach(o=>{o.$touch();});}function E(){Object.values(e).forEach(o=>{o.$resetAll();});}function i(o=true){return Object.values(e).map(s=>s.$extractDirtyFields(o))}function S(){Object.values(e).forEach(o=>{o.$clearExternalErrors();});}async function V(){try{let o=n.value;return {result:(await Promise.allSettled(Object.values(e).map(_=>_.$validate()))).every(_=>_.status==="fulfilled"?_.value.result===!0:!1),data:o}}catch{return {result:false,data:n.value}}}return reactive({...!r&&{$silentValue:l},$errors:D,$silentErrors:P,$instances:w,$value:n,$dirty:u,$anyDirty:R,$invalid:c,$correct:v,$error:m,$pending:F,$ready:h,$edited:O,$anyEdited:a,$resetAll:E,$reset:$,$touch:b,$validate:V,$extractDirtyFields:i,$clearExternalErrors:S})}function Nt(e){function t(r){let n=computed(()=>toValue(r));R();let l=ref(c(e.value)),u=reactive({r$:l});function R(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}watch(n,R),watch(e,v=>{l.value=c(v);},{deep:true});function c(v){if(n.value){let m=v[n.value]??{};return Me(m,true)}else return Me(v["~~global"]??{},true)}return {r$:u.r$}}return {useCollectScope:t}}function Ut(e,t){let r=t??Ue;return {useScopedRegle:(l,u,R)=>{let{namespace:c,...v}=R??{},m=computed(()=>toValue(c)),h=ref(`${Object.keys(e.value).length+1}-${he()}`),F=computed(()=>`instance-${h.value}`),{r$:D}=r(l,u,v);O(),St(P),watch(m,(a,w)=>{P(w),O();}),getCurrentInstance()&&onMounted(()=>{let a=getCurrentInstance();typeof window<"u"&&a?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(a?.proxy?.$el?.parentElement)&&P();});function P(a){let w=a??m.value;w?e.value[w]&&delete e.value[w][F.value]:e.value["~~global"][F.value]&&delete e.value["~~global"][F.value];}function O(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][F.value]=D):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][F.value]=D);}return {r$:D,dispose:P,register:O}}}}function at(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):ht(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=Ut(r,e?.customUseRegle),{useCollectScope:l}=Nt(r);return {useScopedRegle:n,useCollectScope:l}}
2
2
  export{Be as InternalRuleType,ze as createRule,at as createScopedUseRegle,Vt as defineRegleConfig,nt as inferRules,Me as mergeRegles,te as unwrapRuleParameters,Ue as useRegle,Ie as useRootStorage};
@@ -7,7 +7,7 @@ function isEmpty(value, considerEmptyArrayInvalid = true) {
7
7
  }
8
8
  if (value instanceof Date) {
9
9
  return isNaN(value.getTime());
10
- } else if (value instanceof File) {
10
+ } else if (value.constructor.name == "File" || value.constructor.name == "FileList") {
11
11
  return value.size > 0;
12
12
  } else if (Array.isArray(value)) {
13
13
  if (considerEmptyArrayInvalid) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@regle/core",
3
- "version": "0.8.1",
3
+ "version": "0.8.2",
4
4
  "description": "Type safe form validation library for Vue 3",
5
5
  "peerDependencies": {
6
6
  "pinia": ">=2.2.5",