@regle/core 1.0.8 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/regle-core.cjs +0 -5
- package/dist/regle-core.min.cjs +1 -1
- package/dist/regle-core.min.mjs +1 -1
- package/dist/regle-core.mjs +0 -5
- package/package.json +1 -1
package/dist/regle-core.cjs
CHANGED
|
@@ -1142,10 +1142,8 @@ function createReactiveFieldStatus({
|
|
|
1142
1142
|
storage.setDirtyEntry(path, false);
|
|
1143
1143
|
if (!fromParent) {
|
|
1144
1144
|
if (options2?.toInitialState) {
|
|
1145
|
-
$unwatch();
|
|
1146
1145
|
state.value = cloneDeep(initialState);
|
|
1147
1146
|
} else if (options2?.toState) {
|
|
1148
|
-
$unwatch();
|
|
1149
1147
|
let newInitialState;
|
|
1150
1148
|
if (typeof options2?.toState === "function") {
|
|
1151
1149
|
newInitialState = options2?.toState();
|
|
@@ -1171,9 +1169,6 @@ function createReactiveFieldStatus({
|
|
|
1171
1169
|
return rule.$parse();
|
|
1172
1170
|
});
|
|
1173
1171
|
}
|
|
1174
|
-
if (!fromParent) {
|
|
1175
|
-
createReactiveRulesResult();
|
|
1176
|
-
}
|
|
1177
1172
|
}
|
|
1178
1173
|
function $touch(runCommit = true, withConditions = false) {
|
|
1179
1174
|
if (!scopeState.$dirty.value) {
|
package/dist/regle-core.min.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var vue=require('vue');function te(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var bt=Symbol("regle-rule");function Yt(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 N(e){let t=e,n={}.toString.call(e).slice(8,-1);if(n=="Set"&&(t=new Set([...e].map(r=>N(r)))),n=="Map"&&(t=new Map([...e].map(r=>[N(r[0]),N(r[1])]))),n=="Date"&&(t=new Date(e.getTime())),n=="RegExp"&&(t=RegExp(e.source,Yt(e))),n=="Array"||n=="Object"){t=Array.isArray(e)?[]:{};for(let r in e)t[r]=N(e[r]);}return t}function W(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ke(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 _e(e,t,n){let r,a=(...o)=>new Promise(d=>{clearTimeout(r),r=setTimeout(()=>{r=void 0,Promise.resolve(e.apply(this,[...o])).then(d);},t);});return a.cancel=()=>{clearTimeout(r),r=void 0;},a}var Je={Inline:"__inline",Async:"__async"};function Et(e,t){return e.some(n=>n[t])}function Tt(e,t){return e.reduce((n,r)=>{let a=r[t]||[];return n.concat(a)},[])}function re(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function xt(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function Dt(e){let r=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return r?(r[0]||r[1]||r[2]||r[3]||r[4]||"").split(",").map(d=>d.trim()).filter(d=>d.length>0).length:0}function Ye(e,...t){let{validator:n,type:r}=e,a=r===Je.Async||n.constructor.name==="AsyncFunction";return {...{validator(p,...$){return e.validator(p,...re($.length?$:t))},message(p){return typeof e.message=="function"?e.message({...p,$params:re(p?.$params?.length?p.$params:t)}):e.message},active(p){return typeof e.active=="function"?e.active({...p,$params:re(p?.$params?.length?p.$params:t)}):e.active??true},tooltip(p){return typeof e.tooltip=="function"?e.tooltip({...p,$params:re(p?.$params?.length?p.$params:t)}):e.tooltip??[]},exec(p){let $=e.validator(p,...re(t)),m;return $ instanceof Promise?$.then(h=>(m=h,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)):(m=$,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:a,_params:xt(t),_brand:bt}}function Qe(e){if(typeof e.validator=="function"){let n=Ye(e,...[]),r=e.async??e.validator.constructor.name==="AsyncFunction";if(Dt(e.validator)>1){let a=function(...o){return Ye(e,...o)};return a.validator=n.validator,a.message=n.message,a.active=n.active,a.tooltip=n.tooltip,a.type=n.type,a.exec=n.exec,a._validator=n.validator,a._message=n.message,a._active=n.active,a._tooltip=n.tooltip,a._type=e.type,a._message_pacthed=false,a._tooltip_pacthed=false,a._async=r,a}else return n}throw new Error("Validator must be a function")}function Xe(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),n=vue.shallowRef(new Map),r=vue.shallowRef(new Map),a=vue.shallowRef(new Map),o=vue.shallowRef(new Map);function d(S){let T=t.value.get(S);if(T)return T;{let D=vue.ref({});return t.value.set(S,D),D}}function p(S){let T=n.value.get(S);if(T)return T;{let D=vue.ref([]);return n.value.set(S,D),D}}function $(S,T,D){o.value.set(`${S}-${T}`,D);}function m(S,T){return o.value.get(`${S}-${T}`)}function h(S,T){S&&T!=null&&o.value.delete(`${S}-${T}`);}function V(S,T){r.value.set(S,T);}function I(S){return r.value.get(S)??false}function M(S,T){e.value.set(S,T);}function w(S,T){let D=e.value.get(S);return D?O(T,D)?{valid:true}:{valid:false}:void 0}function O(S,T){let D=Object.keys(T),c=Object.keys(S);return c.length!==D.length||!c.every(u=>D.includes(u))?false:c.every(u=>{let s=S[u],b=T[u];return !b||!s||typeof s=="function"||typeof b=="function"||typeof s=="number"||typeof s=="boolean"?false:s._params?s._params?.every((A,B)=>{if(typeof b=="number"||typeof b=="boolean")return true;{let G=re(b._params),X=re(s._params);return G?.[B]===X?.[B]}}):true})}function l(S){let T=a.value.get(S);if(T)return T;{let D=vue.ref(false),c=vue.ref(true),E=vue.ref({}),u=vue.ref(false);return a.value.set(S,{$pending:D,$valid:c,$metadata:E,$validating:u}),{$pending:D,$valid:c,$metadata:E,$validating:u}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),n.value.clear(),r.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:M,setDirtyEntry:V,checkRuleDeclEntry:w,getDirtyState:I,trySetRuleStatusRef:l,getFieldsEntry:d,getCollectionsEntry:p,getArrayStatus:m,addArrayStatus:$,deleteArrayStatus:h,arrayStatusStorage:o}}function Ne(e){return W(e.value)}function Ze(e,t,n){let r=vue.effectScope(),a;return e instanceof Function?a=r.run(()=>e(t,n??0)):a=e,{scope:r,unwrapped:a}}var we={LessThan:-1,EqualTo:0,GreaterThan:1};function lr(e,t){let n=String(e).split("."),r=String(t).split(".");for(let a=0;a<Math.min(n.length,r.length);a++){let o=Number(n[a]),d=Number(r[a]);if(o>d)return we.GreaterThan;if(d>o)return we.LessThan;if(!isNaN(o)&&isNaN(d))return we.GreaterThan;if(isNaN(o)&&!isNaN(d))return we.LessThan}return we.EqualTo}var ke=lr(vue.version,"3.5.0")!==-1;function or(){return Math.floor(Math.random()*Date.now()).toString()}function $e(){return typeof window>"u"?or():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function It(e){return vue.getCurrentScope()?(vue.onScopeDispose(e),true):false}function Ct(e){let t=false,n,r=vue.effectScope(true);return (...a)=>(t||(n=r.run(()=>e(...a)),t=true),n)}function Ge(e,t){return Ne(e)||W(t.value)&&!te(t.value)&&!Object.entries(t.value).some(([n,r])=>Pe(r)||typeof r=="function")}function Ot(e,t,n=false){return !!e.value&&W(e.value)&&"$each"in e.value||n&&Array.isArray(t.value)&&t.value.some(W)||Array.isArray(t.value)&&t.value.some(W)}function Ue(e){return !!e.value&&W(e.value)}function Pe(e){return W(e)&&"_validator"in e}function Ae(e){return typeof e.value!="function"}function wt(e){return W(e)&&"$fields"in e}function Pt(e){return !!e&&"$rules"in e}function et({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([n,r])=>t&&!r.$valid||!r.$valid&&e.$error&&!r.$validating?r.$message:null).filter(n=>!!n).reduce((n,r)=>typeof r=="string"?n?.concat([r]):n?.concat(r),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function At({field:e}){return Object.entries(e.$rules??{}).map(([t,n])=>n.$tooltip).filter(t=>!!t).reduce((t,n)=>typeof n=="string"?t?.concat([n]):t?.concat(n),[])}function Mt(e){return W(e)&&"$each"in e}function tt(e,t){let{includePath:n=false}=t??{};if(Array.isArray(e)&&e.every(r=>!W(r)))return e;if(Mt(e)){let r=n?e.$self?.map(o=>({error:o,path:""}))??[]:e.$self??[],a=e.$each?.map(o=>We(o,n))??[];return r?.concat(a.flat())}else return Object.entries(e).map(([r,a])=>We(a,n,[r])).flat()}function We(e,t=false,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(a=>!W(a)))return t?e.map(a=>({error:a,path:r?.join(".")??""})):e;if(Mt(e)){let a=r?.length?e.$self?.map(d=>({error:d,path:r.join(".")}))??[]:e.$self??[],o=e.$each?.map((d,p)=>We(d,t,r?.concat(p.toString())))??[];return a?.concat(o.flat())}else return Object.entries(e).map(([a,o])=>We(o,t,r?.concat(a))).flat()}function jt({customMessages:e,rule:t,ruleKey:n,state:r,path:a,storage:o,$debounce:d,modifiers:p}){let $=vue.effectScope(),m={},h,V=vue.ref(false),{$pending:I,$valid:M,$metadata:w,$validating:O}=o.trySetRuleStatusRef(`${a}.${n}`);function l(){$=vue.effectScope(),m=$.run(()=>{let s=vue.ref(false),b=vue.ref(false),A=vue.ref(true),B=vue.ref(false),G=vue.ref(false),X=vue.computed(()=>({$value:r.value,$error:b.value,$dirty:s.value,$pending:B.value,$correct:G.value,$invalid:A.value,$rule:{$valid:M.value,$invalid:!M.value,$pending:I.value},$params:R.value,...w.value})),oe=vue.computed(()=>Ae(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function C(x){let j="",H=e?e[n]?.[x]:void 0;if(H&&(typeof H=="function"?j=H(X.value):j=H),Ae(t)){let y=`_${x}_patched`;H&&!t.value[y]||(typeof t.value[x]=="function"?j=t.value[x](X.value):j=t.value[x]??"");}return j}let q=vue.computed(()=>{let x=C("message");return te(x)&&(x="This field is not valid"),x}),me=vue.computed(()=>C("tooltip")),ue=vue.computed(()=>Ae(t)&&t.value.type?t.value.type:n),i=vue.computed(()=>Ae(t)?t.value.validator:t.value),R=vue.computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),f=vue.computed(()=>`${a}.${ue.value}`);return {$active:oe,$message:q,$type:ue,$validator:i,$params:R,$path:f,$tooltip:me,$fieldCorrect:G,$fieldError:b,$fieldDirty:s,$fieldPending:B,$fieldInvalid:A}}),h=vue.watch(m?.$params,()=>{(p.$autoDirty.value||p.$rewardEarly.value&&m.$fieldError.value)&&c();});}l();function S(){M.value=true,m.$fieldDirty.value&&(I.value=true);}async function T(){let s=false;try{let b=m.$validator.value;if(typeof b!="function")return console.error(`${a}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let A=b(r.value,...m.$params.value),B=r.value;S();let G;if(A instanceof Promise?G=await A:G=A,r.value!==B)return !0;if(typeof G=="boolean")s=G;else {let{$valid:X,...oe}=G;s=X,w.value=oe;}}catch{s=false;}finally{I.value=false;}return s}let D=_e(T,d??200);async function c(){try{O.value=!0;let s=!1;if(Pe(t.value)&&t.value._async)s=await D();else {let b=m.$validator.value,A=b(r.value,...m.$params.value);if(A instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(A!=null)if(typeof A=="boolean")s=A;else {let{$valid:B,...G}=A;s=B,w.value=G;}}return M.value=s,s}catch{return false}finally{O.value=false;}}function E(){M.value=true,w.value={},I.value=false,O.value=false,l();}function u(){h(),$.stop(),$=vue.effectScope();}return vue.reactive({...m,$pending:I,$valid:M,$metadata:w,$haveAsync:V,$validating:O,$parse:c,$unwatch:u,$watch:l,$reset:E})}function be({state:e,rulesDef:t,customMessages:n,path:r,fieldName:a,storage:o,options:d,externalErrors:p,schemaErrors:$,schemaMode:m,onUnwatch:h,$isArray:V,initialState:I,shortcuts:M,onValidate:w}){let O=vue.effectScope(),l,S=[],T,D,c,E,u,s=()=>{};function b(){let v=t.value,F=o.checkRuleDeclEntry(r,v);q.value=Object.fromEntries(Object.entries(v).filter(([g])=>g.startsWith("$"))),G(),C.value=Object.fromEntries(Object.entries(t.value).filter(([g])=>!g.startsWith("$")).map(([g,ee])=>{if(ee){let se=vue.toRef(()=>ee);return [g,jt({modifiers:{$autoDirty:l.$autoDirty,$rewardEarly:l.$rewardEarly},customMessages:n,rule:se,ruleKey:g,state:e,path:r,storage:o,$debounce:q.value.$debounce})]}return []}).filter(g=>!!g.length)),l.processShortcuts(),A(),F?.valid!=null&&(l.$dirty.value=o.getDirtyState(r),(l.$dirty.value&&l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s()),o.addRuleDeclEntry(r,v);}function A(){s=l.$debounce.value?_e(oe,l.$debounce.value??l.$haveAnyAsyncRule?100:0):oe;}function B(){C.value&&Object.entries(C.value).forEach(([v,F])=>{F.$unwatch();}),c(),u?.(),l.$dirty.value&&o.setDirtyEntry(r,l.$dirty.value),T?.(),D?.(),O.stop(),O=vue.effectScope(),S.forEach(v=>v.stop()),S=[],h?.(),E?.();}function G(){C.value&&Object.entries(C.value).forEach(([v,F])=>{F.$watch();}),l=O.run(()=>{let v=vue.ref(false),F=vue.ref(false),g=vue.computed(()=>v.value),ee=vue.computed(()=>q.value.$debounce),se=vue.computed(()=>q.value.$lazy!=null?q.value.$lazy:vue.unref(d.lazy)!=null?vue.unref(d.lazy):false),le=vue.computed(()=>q.value.$rewardEarly!=null?q.value.$rewardEarly:vue.unref(d.rewardEarly)!=null?vue.unref(d.rewardEarly):false),U=vue.computed(()=>q.value.$clearExternalErrorsOnChange!=null?q.value.$clearExternalErrorsOnChange:vue.unref(d.clearExternalErrorsOnChange)!=null?vue.unref(d.clearExternalErrorsOnChange):true),P=vue.computed(()=>q.value.$autoDirty!=null?q.value.$autoDirty:vue.unref(d.autoDirty)!=null?vue.unref(d.autoDirty):!le.value),z=vue.computed(()=>Object.entries(C.value).some(([ie,Q])=>Q.$validating)),Ce=vue.computed({get:()=>e.value,set(ie){T(),e.value=ie,X();}}),Fe=vue.computed(()=>ye.value&&!Oe.value&&v.value),Rt=vue.computed(()=>et({field:{$rules:C.value,$error:Fe.value,$externalErrors:p?.value,$schemaErrors:$?.value}})),dt=vue.computed(()=>et({field:{$rules:C.value,$error:Fe.value,$externalErrors:p?.value,$schemaErrors:$?.value},silent:true})),qe=vue.computed(()=>v.value?I.value instanceof Date&&e.value instanceof Date?Ke(I.value).getDate()!==Ke(e.value).getDate():I.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(I.value)?e.value.length!==I.value.length:I.value!==e.value:false),pt=vue.computed(()=>qe.value),mt=vue.computed(()=>At({field:{$rules:C.value}})),yt=vue.computed(()=>P.value?g.value&&!(ye.value||Oe.value):!(ye.value||Oe.value)),Oe=vue.computed(()=>F.value||!le.value?Object.entries(C.value).some(([ie,Q])=>Q.$pending):false),ye=vue.computed(()=>p?.value?.length||$?.value?.length?true:Ve.value?false:!le.value||le.value&&F.value?Object.entries(C.value).some(([ie,Q])=>!Q.$valid):false),gt=vue.computed(()=>a),Ve=vue.computed(()=>!!(te(C.value)&&!m)),vt=vue.computed(()=>p?.value?.length||Ve.value?false:v.value&&!te(e.value)&&!z.value?m?!$?.value?.length:Object.values(C.value).some(Q=>Q.$active)?Object.values(C.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),Kt=vue.computed(()=>Object.entries(C.value).some(([ie,Q])=>Q.$haveAsync));function Jt(){M?.fields&&Object.entries(M.fields).forEach(([ie,Q])=>{let St=vue.effectScope();$t[ie]=St.run(()=>{let ht=vue.ref();return vue.watchEffect(()=>{ht.value=Q(vue.reactive({$dirty:v,$externalErrors:p?.value??[],$value:e,$silentValue:Ce,$rules:C,$error:Fe,$pending:Oe,$invalid:ye,$correct:vt,$errors:Rt,$ready:yt,$silentErrors:dt,$anyDirty:g,$tooltips:mt,$name:gt,$inactive:Ve,$edited:qe,$anyEdited:pt}));}),ht}),S.push(St);});}let $t={};return vue.watch(ye,ie=>{ie||(F.value=false);}),{$error:Fe,$pending:Oe,$invalid:ye,$correct:vt,$debounce:ee,$lazy:se,$errors:Rt,$ready:yt,$silentErrors:dt,$rewardEarly:le,$autoDirty:P,$clearExternalErrorsOnChange:U,$anyDirty:g,$edited:qe,$anyEdited:pt,$name:gt,$haveAnyAsyncRule:Kt,$shortcuts:$t,$validating:z,$tooltips:mt,$dirty:v,triggerPunishment:F,processShortcuts:Jt,$silentValue:Ce,$inactive:Ve}}),X(),c=vue.watch(l.$dirty,v=>{o.setDirtyEntry(r,v),Object.values(C.value).forEach(F=>{F.$fieldDirty=v;});}),u=vue.watch([l.$error,l.$correct,l.$invalid,l.$pending],()=>{Object.values(C.value).forEach(v=>{v.$fieldError=l.$error.value,v.$fieldInvalid=l.$invalid.value,v.$fieldPending=l.$pending.value,v.$fieldCorrect=l.$correct.value;});}),D=vue.watch(l.$invalid,v=>{l.$rewardEarly.value&&!v&&(l.triggerPunishment.value=false);}),E=vue.watch(l.$haveAnyAsyncRule,A);}function X(){T=vue.watch(e,()=>{l.$autoDirty.value&&(l.$dirty.value||(l.$dirty.value=true)),t.value instanceof Function&&b(),(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s(),l.$rewardEarly.value!==true&&l.$clearExternalErrorsOnChange.value&&f();},{deep:V?true:ke?1:true});}function oe(){Object.values(C.value).forEach(v=>{v.$parse();});}let C=vue.ref({}),q=vue.ref({});b();function me(v,F){if(f(),l.$dirty.value=false,l.triggerPunishment.value=false,o.setDirtyEntry(r,false),!F)if(v?.toInitialState)B(),e.value=N(I);else if(v?.toState){B();let g;typeof v?.toState=="function"?g=v?.toState():g=v?.toState,I.value=N(g),e.value=N(g);}else I.value=W(e.value)?N(e.value):Array.isArray(e.value)?[...e.value]:e.value;v?.clearExternalErrors&&f(),F||Object.entries(C.value).forEach(([g,ee])=>{ee.$reset();}),!l.$lazy.value&&l.$autoDirty.value&&Object.values(C.value).forEach(g=>g.$parse()),F||b();}function ue(v=true,F=false){l.$dirty.value||(l.$dirty.value=true),F&&v?(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s():v&&s();}async function i(){try{if(m)return w?(ue(!1),w()):{valid:!1,data:e.value};let v=e.value;if(l.triggerPunishment.value=!0,!l.$dirty.value)l.$dirty.value=!0;else if(l.$autoDirty.value&&l.$dirty.value&&!l.$pending.value)return {valid:!l.$error.value,data:v};return m?{valid:!$?.value?.length,data:v}:te(C.value)?{valid:!0,data:v}:{valid:(await Promise.allSettled(Object.entries(C.value).map(([ee,se])=>se.$parse()))).every(ee=>ee.status==="fulfilled"?ee.value===!0:!1),data:v}}catch{return {valid:false,data:e.value}}}function R(v=true){return l.$dirty.value?e.value:v?{_null:true}:null}function f(){p?.value?.length&&(p.value=[]);}!l.$lazy.value&&!l.$dirty.value&&l.$autoDirty.value&&s();let{$shortcuts:x,$validating:j,$autoDirty:H,$rewardEarly:y,$clearExternalErrorsOnChange:_,$haveAnyAsyncRule:K,$debounce:Z,$lazy:Y,triggerPunishment:fe,...ce}=l;return vue.reactive({...ce,$externalErrors:p,$value:e,$rules:C,...x,$reset:me,$touch:ue,$validate:i,$unwatch:B,$watch:G,$extractDirtyFields:R,$clearExternalErrors:f})}function at({$id:e,path:t,index:n,options:r,storage:a,stateValue:o,customMessages:d,rules:p,externalErrors:$,schemaErrors:m,initialState:h,shortcuts:V,fieldName:I,schemaMode:M}){let w=p.$key?p.$key:$e(),O=`${t}.${String(w)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?O=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let l=vue.toRef($?.value??[],n),S=vue.computed(()=>m?.value?.[n]),T=Ee({state:o,rulesDef:vue.toRef(()=>p),customMessages:d,path:O,storage:a,options:r,externalErrors:l,schemaErrors:S,initialState:h,shortcuts:V,fieldName:I,schemaMode:M});if(T){let D=o.value?.$id;T.$id=D??String(w),a.addArrayStatus(e,T.$id,T);}return T}function Nt({state:e,rulesDef:t,customMessages:n,path:r,storage:a,options:o,externalErrors:d,schemaErrors:p,schemaMode:$,initialState:m,shortcuts:h,fieldName:V}){let I=vue.effectScope(),M,w=vue.effectScope(),O,l=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let S=vue.ref(),T=vue.ref(e.value),D,c=vue.ref({}),E=a.getCollectionsEntry(r);O=w.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(R=>typeof R!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(R=>Pe(R)||typeof R=="function"):false)})),u(),A();function u(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(S.value=$e(),Object.defineProperties(e.value,{$id:{value:S.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(S.value=e.value.$id)),T.value=c.value.$value,Array.isArray(e.value)&&!O.isPrimitiveArray.value?E.value=e.value.filter(i=>typeof i=="object").map((i,R)=>{let{scope:f,unwrapped:x}=Ze(t.value.$each,vue.toRef(()=>i),R);f&&l.push(f);let j=vue.toRef(m.value??[],R),H=vue.toRef(d?.value??{},"$each"),y=vue.computed(()=>p?.value?.$each),_=at({$id:S.value,path:r,customMessages:n,rules:x??{},stateValue:vue.toRef(()=>i),index:R,options:o,storage:a,externalErrors:H,schemaErrors:y,initialState:j,shortcuts:h,fieldName:V,schemaMode:$});return _||null}).filter(i=>!!i):E.value=[],c.value=be({state:e,rulesDef:t,customMessages:n,path:r,storage:a,options:o,externalErrors:vue.toRef(d?.value??{},"$self"),schemaErrors:vue.computed(()=>p?.value?.$self),$isArray:true,initialState:m,shortcuts:h,fieldName:V,schemaMode:$});}function s(){if(Array.isArray(e.value)&&!O.isPrimitiveArray.value){let i=N(E.value);E.value=e.value.filter(R=>typeof R=="object").map((R,f)=>{let x=vue.toRef(()=>R);if(R.$id&&E.value.find(j=>j.$id===R.$id)){let j=a.getArrayStatus(S.value,R.$id);return j?(j.$value=x,j):null}else {let{scope:j,unwrapped:H}=Ze(t.value.$each,x,f);j&&l.push(j);let y=vue.toRef(d?.value??{},"$each"),_=vue.computed(()=>p?.value?.$each??[]),K=at({$id:S.value,path:r,customMessages:n,rules:H??{},stateValue:x,index:f,options:o,storage:a,externalErrors:y,schemaErrors:_,initialState:vue.toRef(m.value??[],f),shortcuts:h,fieldName:V,schemaMode:$});return K||null}}).filter(R=>!!R),i.filter(R=>!e.value?.find(f=>R.$id===f.$id)).forEach((R,f)=>{a.deleteArrayStatus(S.value,f.toString());});}else E.value=[];}function b(){D=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?u():s();},{deep:ke?1:true,flush:"pre"});}function A(){b(),I=vue.effectScope(),M=I.run(()=>{let i=vue.computed({get:()=>e.value,set(g){D(),e.value=g,b();}}),R=vue.computed(()=>c.value.$dirty&&(!E.value.length||E.value.every(g=>g.$dirty))),f=vue.computed(()=>c.value.$anyDirty||E.value.some(g=>g.$anyDirty)),x=vue.computed(()=>c.value.$invalid||E.value.some(g=>g.$invalid)),j=vue.computed(()=>(te(c.value.$rules)?true:c.value.$correct)&&(!E.value.length||E.value.every(g=>g.$correct||g.$anyDirty&&!g.$invalid))),H=vue.computed(()=>c.value.$error||E.value.some(g=>g.$error)),y=vue.computed(()=>!(x.value||_.value)),_=vue.computed(()=>c.value.$pending||E.value.some(g=>g.$pending)),K=vue.computed(()=>!!E.value.length&&E.value.every(g=>g.$edited)),Z=vue.computed(()=>c.value.$anyEdited||E.value.some(g=>g.$anyEdited)),Y=vue.computed(()=>({$self:c.value.$errors,$each:E.value.map(g=>g.$errors)})),fe=vue.computed(()=>({$self:c.value.$silentErrors,$each:E.value.map(g=>g.$silentErrors)})),ce=vue.computed(()=>V);function v(){h?.collections&&Object.entries(h?.collections).forEach(([g,ee])=>{let se=vue.effectScope();F[g]=se.run(()=>{let le=vue.ref();return vue.watchEffect(()=>{le.value=ee(vue.reactive({$dirty:R,$error:H,$silentValue:i,$pending:_,$invalid:x,$correct:j,$errors:Y,$ready:y,$silentErrors:fe,$anyDirty:f,$name:ce,$each:E,$self:c,$value:e,$edited:K,$anyEdited:Z}));}),le}),l.push(se);});}let F={};return v(),{$dirty:R,$anyDirty:f,$invalid:x,$correct:j,$error:H,$pending:_,$errors:Y,$silentErrors:fe,$ready:y,$name:ce,$shortcuts:F,$silentValue:i,$edited:K,$anyEdited:Z}}),O.isPrimitiveArray.value&&t.value.$each&&console.warn(`${r} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function B(){D&&D(),c.value&&c.value.$unwatch(),E.value&&E.value.forEach(i=>{"$dirty"in i&&i.$unwatch();}),I.stop(),I=vue.effectScope(),w.stop(),w=vue.effectScope(true),l.forEach(i=>i.stop()),l=[];}function G(i=true,R=false){c.value.$touch(i,R),E.value.forEach(f=>{f.$touch(i,R);});}function X(i,R){if(B(),!R)if(i?.toInitialState)e.value=N(m.value);else if(i?.toState){let f;typeof i?.toState=="function"?f=i?.toState():f=i?.toState,m.value=N(f),e.value=N(f);}else m.value=N(e.value);i?.clearExternalErrors&&C(),c.value.$reset(),E.value.forEach(f=>{f.$reset(i,true);}),R||u();}async function oe(){let i=e.value;try{return {valid:(await Promise.allSettled([c.value.$validate(),...E.value.map(x=>x.$validate())])).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:i}}catch{return {valid:false,data:i}}}function C(){c.value.$clearExternalErrors(),E.value.forEach(i=>{i.$clearExternalErrors();});}function q(i=true){let R=E.value.map(f=>{if(wt(f))return f.$extractDirtyFields(i)});return i&&R.every(f=>te(f))&&(R=[]),R}let{$shortcuts:me,...ue}=M;return vue.reactive({$self:c,...ue,...me,$each:E,$value:e,$validate:oe,$unwatch:B,$watch:A,$touch:G,$reset:X,$extractDirtyFields:q,$clearExternalErrors:C})}function Be({rulesDef:e,state:t,path:n="",rootRules:r,externalErrors:a,schemaErrors:o,rootSchemaErrors:d,validationGroups:p,initialState:$,fieldName:m,...h}){let V=vue.effectScope(),I,M=[],w=null,O=null,l=null,S=null;async function D(i=true){let R=Object.entries(e.value),f=Object.fromEntries(R.filter(([y,_])=>!!_).map(([y,_])=>{if(_){let K=vue.toRef(t.value??{},y),Z=vue.toRef(()=>_),Y=vue.toRef(a?.value??{},y),fe=vue.computed(()=>o?.value?.[y]),ce=vue.toRef($?.value??{},y);return [y,Ee({state:K,rulesDef:Z,path:n?`${n}.${y}`:y,externalErrors:Y,schemaErrors:fe,initialState:ce,fieldName:y,...h})]}return []})),x=Object.fromEntries(Object.entries(vue.unref(a)??{}).filter(([y,_])=>!(y in e.value)&&!!_).map(([y])=>{let _=vue.toRef(t.value??{},y),K=vue.toRef(a?.value??{},y),Z=vue.computed(()=>o?.value?.[y]),Y=vue.toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:vue.computed(()=>({})),path:n?`${n}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:y,...h})]})),j=Object.fromEntries(Object.entries(vue.unref(o)??{}).map(([y])=>{let _=vue.toRef(t.value??{},y),K=vue.toRef(a?.value??{},y),Z=vue.computed(()=>o?.value?.[y]),Y=vue.toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:vue.computed(()=>({})),path:n?`${n}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:y,...h})]})),H=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(x??{}))&&!(y in(j??{}))).map(([y])=>{let _=vue.toRef(t.value??{},y),K=vue.toRef(a?.value??{},y),Z=vue.computed(()=>o?.value?.[y]),Y=vue.toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:vue.computed(()=>({})),path:n?`${n}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:y,...h})]}));c.value={...f,...x,...j,...H},i&&s();}let c=h.storage.getFieldsEntry(n);D();function E(){a&&(l=vue.watch(a,()=>{b(),D();},{deep:true}));}function u(){S=vue.watch(t,()=>{b(),D(),G(true,true);},{flush:"sync"});}function s(){r&&(w?.(),w=vue.watch(r,()=>{b(),D();},{deep:true,flush:"post"}),E()),d&&(O?.(),O=vue.watch(d,()=>{b(),D();},{deep:true,flush:"post"})),u(),I=V.run(()=>{let i=vue.computed({get:()=>t.value,set(U){b(),t.value=U,D();}}),R=vue.computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).every(([U,P])=>P?.$dirty)),f=vue.computed(()=>Object.entries(c.value).some(([U,P])=>P?.$anyDirty)),x=vue.computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).some(([U,P])=>P?.$invalid)),j=vue.computed(()=>{let U=Object.entries(c.value).filter(([P,z])=>Pt(z)?!z.$inactive:true);return U.length?U.every(([P,z])=>z?.$correct||z.$anyDirty&&!z.$invalid):false}),H=vue.computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).some(([U,P])=>P?.$error)),y=vue.computed(()=>vue.unref(h.options.rewardEarly)!=null?vue.unref(h.options.rewardEarly):false),_=vue.computed(()=>vue.unref(h.options.autoDirty)!=null?vue.unref(h.options.autoDirty):!y.value),K=vue.computed(()=>_.value?f.value&&!(x.value||Y.value):!(x.value||Y.value)),Z=vue.ref(false),Y=vue.computed(()=>Z.value||Object.entries(c.value).some(([U,P])=>P?.$pending)),fe=vue.computed(()=>Object.fromEntries(Object.entries(c.value).map(([U,P])=>[U,P?.$errors]))),ce=vue.computed(()=>Object.fromEntries(Object.entries(c.value).map(([U,P])=>[U,P?.$silentErrors]))),v=vue.computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).every(([U,P])=>P?.$edited)),F=vue.computed(()=>Object.entries(c.value).some(([U,P])=>P?.$anyEdited)),g=vue.computed(()=>m);function ee(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,P])=>{let z=vue.effectScope();le[U]=z.run(()=>{let Ce=vue.ref();return vue.watchEffect(()=>{Ce.value=P(vue.reactive({$dirty:R,$value:t,$silentValue:i,$error:H,$pending:Y,$invalid:x,$correct:j,$ready:K,$anyDirty:f,$name:g,$silentErrors:ce,$errors:fe,$fields:c,$edited:v,$anyEdited:F}));}),Ce}),M.push(z);});}let se=vue.computed({get:()=>p?Object.fromEntries(Object.entries(p?.(c.value)??{}).map(([U,P])=>P.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(z=>[z,Et(P,z)])),...Object.fromEntries(["$errors","$silentErrors"].map(z=>[z,Tt(P,z)]))}]:[])):{},set(){}}),le={};return ee(),{$dirty:R,$anyDirty:f,$invalid:x,$correct:j,$error:H,$pending:Y,$errors:fe,$silentErrors:ce,$ready:K,$name:g,$shortcuts:le,$groups:se,$silentValue:i,$edited:v,$anyEdited:F,$localPending:Z}});}function b(){w?.(),l?.(),S?.(),O?.(),M=[],I={},c.value&&Object.entries(c.value).forEach(([i,R])=>{R.$unwatch();});}function A(){Object.entries(c.value).forEach(([i,R])=>{R.$clearExternalErrors();});}function B(i,R){if(l?.(),b(),!R)if(i?.toInitialState)t.value=N({...$.value??{}});else if(i?.toState){let f;typeof i?.toState=="function"?f=i?.toState():f=i?.toState,$.value=N(f),t.value=N(f);}else $.value=N(t.value);Object.values(c.value).forEach(f=>{f.$reset(i,true);}),i?.clearExternalErrors&&A(),E(),R||D();}function G(i=true,R=false){Object.values(c.value).forEach(f=>{f.$touch(i,R);});}function X(i){return i.filter(([R,f])=>W(f)?!(f&&typeof f=="object"&&"_null"in f)&&!te(f):Array.isArray(f)?f.length:true)}function oe(i=true){let R=Object.entries(c.value).map(([f,x])=>[f,x.$extractDirtyFields(i)]);return i&&(R=X(R)),Object.fromEntries(R)}async function C(){try{if(h.schemaMode)return h.onValidate?(G(!1),I.$localPending.value=!0,h.onValidate()):{valid:!1,data:t.value};{let i=t.value;return {valid:(await Promise.allSettled(Object.values(c.value).map(x=>x.$validate()))).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:i}}}catch{return {valid:false,data:t.value}}finally{I.$localPending.value=false;}}let{$shortcuts:q,$localPending:me,...ue}=I;return vue.reactive({...ue,...q,$fields:c,$value:t,$reset:B,$touch:G,$validate:C,$unwatch:b,$watch:s,$clearExternalErrors:A,$extractDirtyFields:oe})}function Ee({rulesDef:e,...t}){if(Ot(e,t.state,t.schemaMode))return Nt({rulesDef:e,...t});if(Ge(t.state,e)){if(Ne(t.state))return Be({rulesDef:e,...t});{let r=vue.effectScope().run(()=>{let d=vue.toRef(t.state.value?t.state:vue.ref({}));return vue.watch(()=>t.state.value,p=>{d.value=p;},{deep:true}),vue.watch(d,p=>{t.state.value=p;},{deep:true}),{fakeState:d}}),{state:a,...o}=t;return Be({rulesDef:e,...o,state:r.fakeState})}}else if(Ue(e))return be({rulesDef:e,...t})}function Ie({initialState:e,options:t,scopeRules:n,state:r,customRules:a,shortcuts:o,schemaErrors:d,schemaMode:p=false,onValidate:$}){let m=Xe(),h=vue.ref();return Ge(r,n)?h.value=Be({rootRules:n,rulesDef:n,state:r,customMessages:a?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaErrors:d,rootSchemaErrors:d,schemaMode:p,onValidate:$}):Ue(n)&&(h.value=be({rulesDef:n,state:r,customMessages:a?.(),storage:m,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaMode:p,schemaErrors:d,onValidate:$})),vue.getCurrentScope()&&vue.onScopeDispose(()=>{h.value?.$unwatch();}),vue.reactive({regle:h})}function st(e,t,n){let r={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function a(o,d,p){let $=vue.isRef(d)?d:vue.computed(typeof d=="function"?d:()=>d),m={...r,...p},h=vue.isRef(o)?o:vue.ref(o),V=vue.ref(W(h.value)?{...N(h.value)}:N(h.value));return {r$:Ie({scopeRules:$,state:h,options:m,initialState:V,customRules:e,shortcuts:n}).regle}}return a}var He=st();function it(){function e(t,n){return n}return e}var ut=it();function Wt({rules:e,modifiers:t,shortcuts:n}){let r=st(e,t,n),a=it();return {useRegle:r,inferRules:a}}function je(e,t){let n=t??false,r=vue.computed({get:()=>n?Object.values(e).map(u=>u.$value):Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$value])),set:u=>{n||typeof u=="object"&&Object.entries(u).forEach(([s,b])=>e[s].$value=b);}}),a=vue.computed({get:()=>Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$silentValue])),set:u=>{typeof u=="object"&&Object.entries(u).forEach(([s,b])=>e[s].$silentValue=b);}}),o=vue.computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,b])=>b?.$dirty)}),d=vue.computed(()=>Object.entries(e).some(([u,s])=>s?.$anyDirty)),p=vue.computed(()=>Object.entries(e).some(([u,s])=>s?.$invalid)),$=vue.computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,b])=>b?.$correct||b.$anyDirty&&!b.$invalid)}),m=vue.computed(()=>Object.entries(e).some(([u,s])=>s?.$error)),h=vue.computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,b])=>b?.$ready)}),V=vue.computed(()=>Object.entries(e).some(([u,s])=>s?.$pending)),I=vue.computed(()=>n?Object.entries(e).map(([u,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$errors]))),M=vue.computed(()=>n?Object.entries(e).map(([u,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$silentErrors]))),w=vue.computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,b])=>b?.$edited)}),O=vue.computed(()=>Object.entries(e).some(([u,s])=>s?.$anyEdited)),l=vue.computed(()=>n?Object.values(e):e);function S(u){Object.values(e).forEach(s=>{s.$reset(u);});}function T(){Object.values(e).forEach(u=>{u.$touch();});}function D(u=true){return Object.values(e).map(s=>s.$extractDirtyFields(u))}function c(){Object.values(e).forEach(u=>{u.$clearExternalErrors();});}async function E(){try{let u=r.value;return {valid:(await Promise.allSettled(Object.values(e).map(A=>A.$validate()))).every(A=>A.status==="fulfilled"?A.value.valid===!0:!1),data:u}}catch{return {valid:false,data:r.value}}}return vue.reactive({...!n&&{$silentValue:a},$errors:I,$silentErrors:M,$instances:l,$value:r,$dirty:o,$anyDirty:d,$invalid:p,$correct:$,$error:m,$pending:V,$ready:h,$edited:w,$anyEdited:O,$reset:S,$touch:T,$validate:E,$extractDirtyFields:D,$clearExternalErrors:c})}function Bt(e){function t(n){let r=vue.computed(()=>vue.toValue(n));d();let a=vue.ref(p(e.value)),o=vue.reactive({r$:a});function d(){r.value&&!e.value[r.value]&&(e.value[r.value]={});}vue.watch(r,d),vue.watch(e,$=>{a.value=p($);},{deep:true});function p($){if(r.value){let m=$[r.value]??{};return je(m,true)}else return je($["~~global"]??{},true)}return {r$:o.r$}}return {useCollectScope:t}}function qt(e,t){let n=t??He;return {useScopedRegle:(a,o,d)=>{let{namespace:p,...$}=d??{},m=vue.computed(()=>vue.toValue(p)),h=vue.ref(`${Object.keys(e.value).length+1}-${$e()}`),V=vue.computed(()=>`instance-${h.value}`),{r$:I}=n(a,o,$);w(),It(M),vue.watch(m,(O,l)=>{M(l),w();}),vue.getCurrentInstance()&&vue.onMounted(()=>{let O=vue.getCurrentInstance();typeof window<"u"&&O?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(O?.proxy?.$el?.parentElement)&&M();});function M(O){let l=O??m.value;l?e.value[l]&&delete e.value[l][V.value]:e.value["~~global"][V.value]&&delete e.value["~~global"][V.value];}function w(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][V.value]=I):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][V.value]=I);}return {r$:I,dispose:M,register:w}}}}function ze(e){let n=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):Ct(()=>vue.ref({"~~global":{}})))(),{useScopedRegle:r}=qt(n,e?.customUseRegle),{useCollectScope:a}=Bt(n);return {useScopedRegle:r,useCollectScope:a}}var {useCollectScope:ct,useScopedRegle:ft}=ze();
|
|
1
|
+
'use strict';var vue=require('vue');function te(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var bt=Symbol("regle-rule");function Yt(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 N(e){let t=e,n={}.toString.call(e).slice(8,-1);if(n=="Set"&&(t=new Set([...e].map(r=>N(r)))),n=="Map"&&(t=new Map([...e].map(r=>[N(r[0]),N(r[1])]))),n=="Date"&&(t=new Date(e.getTime())),n=="RegExp"&&(t=RegExp(e.source,Yt(e))),n=="Array"||n=="Object"){t=Array.isArray(e)?[]:{};for(let r in e)t[r]=N(e[r]);}return t}function W(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ke(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 _e(e,t,n){let r,a=(...o)=>new Promise(d=>{clearTimeout(r),r=setTimeout(()=>{r=void 0,Promise.resolve(e.apply(this,[...o])).then(d);},t);});return a.cancel=()=>{clearTimeout(r),r=void 0;},a}var Je={Inline:"__inline",Async:"__async"};function Et(e,t){return e.some(n=>n[t])}function Tt(e,t){return e.reduce((n,r)=>{let a=r[t]||[];return n.concat(a)},[])}function re(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function xt(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function Dt(e){let r=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return r?(r[0]||r[1]||r[2]||r[3]||r[4]||"").split(",").map(d=>d.trim()).filter(d=>d.length>0).length:0}function Ye(e,...t){let{validator:n,type:r}=e,a=r===Je.Async||n.constructor.name==="AsyncFunction";return {...{validator(p,...$){return e.validator(p,...re($.length?$:t))},message(p){return typeof e.message=="function"?e.message({...p,$params:re(p?.$params?.length?p.$params:t)}):e.message},active(p){return typeof e.active=="function"?e.active({...p,$params:re(p?.$params?.length?p.$params:t)}):e.active??true},tooltip(p){return typeof e.tooltip=="function"?e.tooltip({...p,$params:re(p?.$params?.length?p.$params:t)}):e.tooltip??[]},exec(p){let $=e.validator(p,...re(t)),m;return $ instanceof Promise?$.then(h=>(m=h,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)):(m=$,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:a,_params:xt(t),_brand:bt}}function Qe(e){if(typeof e.validator=="function"){let n=Ye(e,...[]),r=e.async??e.validator.constructor.name==="AsyncFunction";if(Dt(e.validator)>1){let a=function(...o){return Ye(e,...o)};return a.validator=n.validator,a.message=n.message,a.active=n.active,a.tooltip=n.tooltip,a.type=n.type,a.exec=n.exec,a._validator=n.validator,a._message=n.message,a._active=n.active,a._tooltip=n.tooltip,a._type=e.type,a._message_pacthed=false,a._tooltip_pacthed=false,a._async=r,a}else return n}throw new Error("Validator must be a function")}function Xe(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),n=vue.shallowRef(new Map),r=vue.shallowRef(new Map),a=vue.shallowRef(new Map),o=vue.shallowRef(new Map);function d(S){let T=t.value.get(S);if(T)return T;{let D=vue.ref({});return t.value.set(S,D),D}}function p(S){let T=n.value.get(S);if(T)return T;{let D=vue.ref([]);return n.value.set(S,D),D}}function $(S,T,D){o.value.set(`${S}-${T}`,D);}function m(S,T){return o.value.get(`${S}-${T}`)}function h(S,T){S&&T!=null&&o.value.delete(`${S}-${T}`);}function F(S,T){r.value.set(S,T);}function I(S){return r.value.get(S)??false}function M(S,T){e.value.set(S,T);}function w(S,T){let D=e.value.get(S);return D?O(T,D)?{valid:true}:{valid:false}:void 0}function O(S,T){let D=Object.keys(T),c=Object.keys(S);return c.length!==D.length||!c.every(u=>D.includes(u))?false:c.every(u=>{let s=S[u],E=T[u];return !E||!s||typeof s=="function"||typeof E=="function"||typeof s=="number"||typeof s=="boolean"?false:s._params?s._params?.every((A,J)=>{if(typeof E=="number"||typeof E=="boolean")return true;{let G=re(E._params),X=re(s._params);return G?.[J]===X?.[J]}}):true})}function l(S){let T=a.value.get(S);if(T)return T;{let D=vue.ref(false),c=vue.ref(true),b=vue.ref({}),u=vue.ref(false);return a.value.set(S,{$pending:D,$valid:c,$metadata:b,$validating:u}),{$pending:D,$valid:c,$metadata:b,$validating:u}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),n.value.clear(),r.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:M,setDirtyEntry:F,checkRuleDeclEntry:w,getDirtyState:I,trySetRuleStatusRef:l,getFieldsEntry:d,getCollectionsEntry:p,getArrayStatus:m,addArrayStatus:$,deleteArrayStatus:h,arrayStatusStorage:o}}function Ne(e){return W(e.value)}function Ze(e,t,n){let r=vue.effectScope(),a;return e instanceof Function?a=r.run(()=>e(t,n??0)):a=e,{scope:r,unwrapped:a}}var we={LessThan:-1,EqualTo:0,GreaterThan:1};function lr(e,t){let n=String(e).split("."),r=String(t).split(".");for(let a=0;a<Math.min(n.length,r.length);a++){let o=Number(n[a]),d=Number(r[a]);if(o>d)return we.GreaterThan;if(d>o)return we.LessThan;if(!isNaN(o)&&isNaN(d))return we.GreaterThan;if(isNaN(o)&&!isNaN(d))return we.LessThan}return we.EqualTo}var ke=lr(vue.version,"3.5.0")!==-1;function or(){return Math.floor(Math.random()*Date.now()).toString()}function $e(){return typeof window>"u"?or():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function It(e){return vue.getCurrentScope()?(vue.onScopeDispose(e),true):false}function Ct(e){let t=false,n,r=vue.effectScope(true);return (...a)=>(t||(n=r.run(()=>e(...a)),t=true),n)}function Ge(e,t){return Ne(e)||W(t.value)&&!te(t.value)&&!Object.entries(t.value).some(([n,r])=>Pe(r)||typeof r=="function")}function Ot(e,t,n=false){return !!e.value&&W(e.value)&&"$each"in e.value||n&&Array.isArray(t.value)&&t.value.some(W)||Array.isArray(t.value)&&t.value.some(W)}function Ue(e){return !!e.value&&W(e.value)}function Pe(e){return W(e)&&"_validator"in e}function Ae(e){return typeof e.value!="function"}function wt(e){return W(e)&&"$fields"in e}function Pt(e){return !!e&&"$rules"in e}function et({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([n,r])=>t&&!r.$valid||!r.$valid&&e.$error&&!r.$validating?r.$message:null).filter(n=>!!n).reduce((n,r)=>typeof r=="string"?n?.concat([r]):n?.concat(r),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function At({field:e}){return Object.entries(e.$rules??{}).map(([t,n])=>n.$tooltip).filter(t=>!!t).reduce((t,n)=>typeof n=="string"?t?.concat([n]):t?.concat(n),[])}function Mt(e){return W(e)&&"$each"in e}function tt(e,t){let{includePath:n=false}=t??{};if(Array.isArray(e)&&e.every(r=>!W(r)))return e;if(Mt(e)){let r=n?e.$self?.map(o=>({error:o,path:""}))??[]:e.$self??[],a=e.$each?.map(o=>We(o,n))??[];return r?.concat(a.flat())}else return Object.entries(e).map(([r,a])=>We(a,n,[r])).flat()}function We(e,t=false,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(a=>!W(a)))return t?e.map(a=>({error:a,path:r?.join(".")??""})):e;if(Mt(e)){let a=r?.length?e.$self?.map(d=>({error:d,path:r.join(".")}))??[]:e.$self??[],o=e.$each?.map((d,p)=>We(d,t,r?.concat(p.toString())))??[];return a?.concat(o.flat())}else return Object.entries(e).map(([a,o])=>We(o,t,r?.concat(a))).flat()}function jt({customMessages:e,rule:t,ruleKey:n,state:r,path:a,storage:o,$debounce:d,modifiers:p}){let $=vue.effectScope(),m={},h,F=vue.ref(false),{$pending:I,$valid:M,$metadata:w,$validating:O}=o.trySetRuleStatusRef(`${a}.${n}`);function l(){$=vue.effectScope(),m=$.run(()=>{let s=vue.ref(false),E=vue.ref(false),A=vue.ref(true),J=vue.ref(false),G=vue.ref(false),X=vue.computed(()=>({$value:r.value,$error:E.value,$dirty:s.value,$pending:J.value,$correct:G.value,$invalid:A.value,$rule:{$valid:M.value,$invalid:!M.value,$pending:I.value},$params:R.value,...w.value})),oe=vue.computed(()=>Ae(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function C(x){let j="",B=e?e[n]?.[x]:void 0;if(B&&(typeof B=="function"?j=B(X.value):j=B),Ae(t)){let y=`_${x}_patched`;B&&!t.value[y]||(typeof t.value[x]=="function"?j=t.value[x](X.value):j=t.value[x]??"");}return j}let z=vue.computed(()=>{let x=C("message");return te(x)&&(x="This field is not valid"),x}),me=vue.computed(()=>C("tooltip")),ue=vue.computed(()=>Ae(t)&&t.value.type?t.value.type:n),i=vue.computed(()=>Ae(t)?t.value.validator:t.value),R=vue.computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),f=vue.computed(()=>`${a}.${ue.value}`);return {$active:oe,$message:z,$type:ue,$validator:i,$params:R,$path:f,$tooltip:me,$fieldCorrect:G,$fieldError:E,$fieldDirty:s,$fieldPending:J,$fieldInvalid:A}}),h=vue.watch(m?.$params,()=>{(p.$autoDirty.value||p.$rewardEarly.value&&m.$fieldError.value)&&c();});}l();function S(){M.value=true,m.$fieldDirty.value&&(I.value=true);}async function T(){let s=false;try{let E=m.$validator.value;if(typeof E!="function")return console.error(`${a}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let A=E(r.value,...m.$params.value),J=r.value;S();let G;if(A instanceof Promise?G=await A:G=A,r.value!==J)return !0;if(typeof G=="boolean")s=G;else {let{$valid:X,...oe}=G;s=X,w.value=oe;}}catch{s=false;}finally{I.value=false;}return s}let D=_e(T,d??200);async function c(){try{O.value=!0;let s=!1;if(Pe(t.value)&&t.value._async)s=await D();else {let E=m.$validator.value,A=E(r.value,...m.$params.value);if(A instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(A!=null)if(typeof A=="boolean")s=A;else {let{$valid:J,...G}=A;s=J,w.value=G;}}return M.value=s,s}catch{return false}finally{O.value=false;}}function b(){M.value=true,w.value={},I.value=false,O.value=false,l();}function u(){h(),$.stop(),$=vue.effectScope();}return vue.reactive({...m,$pending:I,$valid:M,$metadata:w,$haveAsync:F,$validating:O,$parse:c,$unwatch:u,$watch:l,$reset:b})}function be({state:e,rulesDef:t,customMessages:n,path:r,fieldName:a,storage:o,options:d,externalErrors:p,schemaErrors:$,schemaMode:m,onUnwatch:h,$isArray:F,initialState:I,shortcuts:M,onValidate:w}){let O=vue.effectScope(),l,S=[],T,D,c,b,u,s=()=>{};function E(){let v=t.value,_=o.checkRuleDeclEntry(r,v);z.value=Object.fromEntries(Object.entries(v).filter(([g])=>g.startsWith("$"))),G(),C.value=Object.fromEntries(Object.entries(t.value).filter(([g])=>!g.startsWith("$")).map(([g,ee])=>{if(ee){let se=vue.toRef(()=>ee);return [g,jt({modifiers:{$autoDirty:l.$autoDirty,$rewardEarly:l.$rewardEarly},customMessages:n,rule:se,ruleKey:g,state:e,path:r,storage:o,$debounce:z.value.$debounce})]}return []}).filter(g=>!!g.length)),l.processShortcuts(),A(),_?.valid!=null&&(l.$dirty.value=o.getDirtyState(r),(l.$dirty.value&&l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s()),o.addRuleDeclEntry(r,v);}function A(){s=l.$debounce.value?_e(oe,l.$debounce.value??l.$haveAnyAsyncRule?100:0):oe;}function J(){C.value&&Object.entries(C.value).forEach(([v,_])=>{_.$unwatch();}),c(),u?.(),l.$dirty.value&&o.setDirtyEntry(r,l.$dirty.value),T?.(),D?.(),O.stop(),O=vue.effectScope(),S.forEach(v=>v.stop()),S=[],h?.(),b?.();}function G(){C.value&&Object.entries(C.value).forEach(([v,_])=>{_.$watch();}),l=O.run(()=>{let v=vue.ref(false),_=vue.ref(false),g=vue.computed(()=>v.value),ee=vue.computed(()=>z.value.$debounce),se=vue.computed(()=>z.value.$lazy!=null?z.value.$lazy:vue.unref(d.lazy)!=null?vue.unref(d.lazy):false),le=vue.computed(()=>z.value.$rewardEarly!=null?z.value.$rewardEarly:vue.unref(d.rewardEarly)!=null?vue.unref(d.rewardEarly):false),U=vue.computed(()=>z.value.$clearExternalErrorsOnChange!=null?z.value.$clearExternalErrorsOnChange:vue.unref(d.clearExternalErrorsOnChange)!=null?vue.unref(d.clearExternalErrorsOnChange):true),P=vue.computed(()=>z.value.$autoDirty!=null?z.value.$autoDirty:vue.unref(d.autoDirty)!=null?vue.unref(d.autoDirty):!le.value),H=vue.computed(()=>Object.entries(C.value).some(([ie,Q])=>Q.$validating)),Ce=vue.computed({get:()=>e.value,set(ie){T(),e.value=ie,X();}}),Fe=vue.computed(()=>ye.value&&!Oe.value&&v.value),Rt=vue.computed(()=>et({field:{$rules:C.value,$error:Fe.value,$externalErrors:p?.value,$schemaErrors:$?.value}})),dt=vue.computed(()=>et({field:{$rules:C.value,$error:Fe.value,$externalErrors:p?.value,$schemaErrors:$?.value},silent:true})),qe=vue.computed(()=>v.value?I.value instanceof Date&&e.value instanceof Date?Ke(I.value).getDate()!==Ke(e.value).getDate():I.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(I.value)?e.value.length!==I.value.length:I.value!==e.value:false),pt=vue.computed(()=>qe.value),mt=vue.computed(()=>At({field:{$rules:C.value}})),yt=vue.computed(()=>P.value?g.value&&!(ye.value||Oe.value):!(ye.value||Oe.value)),Oe=vue.computed(()=>_.value||!le.value?Object.entries(C.value).some(([ie,Q])=>Q.$pending):false),ye=vue.computed(()=>p?.value?.length||$?.value?.length?true:Ve.value?false:!le.value||le.value&&_.value?Object.entries(C.value).some(([ie,Q])=>!Q.$valid):false),gt=vue.computed(()=>a),Ve=vue.computed(()=>!!(te(C.value)&&!m)),vt=vue.computed(()=>p?.value?.length||Ve.value?false:v.value&&!te(e.value)&&!H.value?m?!$?.value?.length:Object.values(C.value).some(Q=>Q.$active)?Object.values(C.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),Kt=vue.computed(()=>Object.entries(C.value).some(([ie,Q])=>Q.$haveAsync));function Jt(){M?.fields&&Object.entries(M.fields).forEach(([ie,Q])=>{let St=vue.effectScope();$t[ie]=St.run(()=>{let ht=vue.ref();return vue.watchEffect(()=>{ht.value=Q(vue.reactive({$dirty:v,$externalErrors:p?.value??[],$value:e,$silentValue:Ce,$rules:C,$error:Fe,$pending:Oe,$invalid:ye,$correct:vt,$errors:Rt,$ready:yt,$silentErrors:dt,$anyDirty:g,$tooltips:mt,$name:gt,$inactive:Ve,$edited:qe,$anyEdited:pt}));}),ht}),S.push(St);});}let $t={};return vue.watch(ye,ie=>{ie||(_.value=false);}),{$error:Fe,$pending:Oe,$invalid:ye,$correct:vt,$debounce:ee,$lazy:se,$errors:Rt,$ready:yt,$silentErrors:dt,$rewardEarly:le,$autoDirty:P,$clearExternalErrorsOnChange:U,$anyDirty:g,$edited:qe,$anyEdited:pt,$name:gt,$haveAnyAsyncRule:Kt,$shortcuts:$t,$validating:H,$tooltips:mt,$dirty:v,triggerPunishment:_,processShortcuts:Jt,$silentValue:Ce,$inactive:Ve}}),X(),c=vue.watch(l.$dirty,v=>{o.setDirtyEntry(r,v),Object.values(C.value).forEach(_=>{_.$fieldDirty=v;});}),u=vue.watch([l.$error,l.$correct,l.$invalid,l.$pending],()=>{Object.values(C.value).forEach(v=>{v.$fieldError=l.$error.value,v.$fieldInvalid=l.$invalid.value,v.$fieldPending=l.$pending.value,v.$fieldCorrect=l.$correct.value;});}),D=vue.watch(l.$invalid,v=>{l.$rewardEarly.value&&!v&&(l.triggerPunishment.value=false);}),b=vue.watch(l.$haveAnyAsyncRule,A);}function X(){T=vue.watch(e,()=>{l.$autoDirty.value&&(l.$dirty.value||(l.$dirty.value=true)),t.value instanceof Function&&E(),(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s(),l.$rewardEarly.value!==true&&l.$clearExternalErrorsOnChange.value&&f();},{deep:F?true:ke?1:true});}function oe(){Object.values(C.value).forEach(v=>{v.$parse();});}let C=vue.ref({}),z=vue.ref({});E();function me(v,_){if(f(),l.$dirty.value=false,l.triggerPunishment.value=false,o.setDirtyEntry(r,false),!_)if(v?.toInitialState)e.value=N(I);else if(v?.toState){let g;typeof v?.toState=="function"?g=v?.toState():g=v?.toState,I.value=N(g),e.value=N(g);}else I.value=W(e.value)?N(e.value):Array.isArray(e.value)?[...e.value]:e.value;v?.clearExternalErrors&&f(),_||Object.entries(C.value).forEach(([g,ee])=>{ee.$reset();}),!l.$lazy.value&&l.$autoDirty.value&&Object.values(C.value).forEach(g=>g.$parse());}function ue(v=true,_=false){l.$dirty.value||(l.$dirty.value=true),_&&v?(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s():v&&s();}async function i(){try{if(m)return w?(ue(!1),w()):{valid:!1,data:e.value};let v=e.value;if(l.triggerPunishment.value=!0,!l.$dirty.value)l.$dirty.value=!0;else if(l.$autoDirty.value&&l.$dirty.value&&!l.$pending.value)return {valid:!l.$error.value,data:v};return m?{valid:!$?.value?.length,data:v}:te(C.value)?{valid:!0,data:v}:{valid:(await Promise.allSettled(Object.entries(C.value).map(([ee,se])=>se.$parse()))).every(ee=>ee.status==="fulfilled"?ee.value===!0:!1),data:v}}catch{return {valid:false,data:e.value}}}function R(v=true){return l.$dirty.value?e.value:v?{_null:true}:null}function f(){p?.value?.length&&(p.value=[]);}!l.$lazy.value&&!l.$dirty.value&&l.$autoDirty.value&&s();let{$shortcuts:x,$validating:j,$autoDirty:B,$rewardEarly:y,$clearExternalErrorsOnChange:V,$haveAnyAsyncRule:q,$debounce:Z,$lazy:Y,triggerPunishment:fe,...ce}=l;return vue.reactive({...ce,$externalErrors:p,$value:e,$rules:C,...x,$reset:me,$touch:ue,$validate:i,$unwatch:J,$watch:G,$extractDirtyFields:R,$clearExternalErrors:f})}function at({$id:e,path:t,index:n,options:r,storage:a,stateValue:o,customMessages:d,rules:p,externalErrors:$,schemaErrors:m,initialState:h,shortcuts:F,fieldName:I,schemaMode:M}){let w=p.$key?p.$key:$e(),O=`${t}.${String(w)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?O=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let l=vue.toRef($?.value??[],n),S=vue.computed(()=>m?.value?.[n]),T=Ee({state:o,rulesDef:vue.toRef(()=>p),customMessages:d,path:O,storage:a,options:r,externalErrors:l,schemaErrors:S,initialState:h,shortcuts:F,fieldName:I,schemaMode:M});if(T){let D=o.value?.$id;T.$id=D??String(w),a.addArrayStatus(e,T.$id,T);}return T}function Nt({state:e,rulesDef:t,customMessages:n,path:r,storage:a,options:o,externalErrors:d,schemaErrors:p,schemaMode:$,initialState:m,shortcuts:h,fieldName:F}){let I=vue.effectScope(),M,w=vue.effectScope(),O,l=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let S=vue.ref(),T=vue.ref(e.value),D,c=vue.ref({}),b=a.getCollectionsEntry(r);O=w.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(R=>typeof R!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(R=>Pe(R)||typeof R=="function"):false)})),u(),A();function u(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(S.value=$e(),Object.defineProperties(e.value,{$id:{value:S.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(S.value=e.value.$id)),T.value=c.value.$value,Array.isArray(e.value)&&!O.isPrimitiveArray.value?b.value=e.value.filter(i=>typeof i=="object").map((i,R)=>{let{scope:f,unwrapped:x}=Ze(t.value.$each,vue.toRef(()=>i),R);f&&l.push(f);let j=vue.toRef(m.value??[],R),B=vue.toRef(d?.value??{},"$each"),y=vue.computed(()=>p?.value?.$each),V=at({$id:S.value,path:r,customMessages:n,rules:x??{},stateValue:vue.toRef(()=>i),index:R,options:o,storage:a,externalErrors:B,schemaErrors:y,initialState:j,shortcuts:h,fieldName:F,schemaMode:$});return V||null}).filter(i=>!!i):b.value=[],c.value=be({state:e,rulesDef:t,customMessages:n,path:r,storage:a,options:o,externalErrors:vue.toRef(d?.value??{},"$self"),schemaErrors:vue.computed(()=>p?.value?.$self),$isArray:true,initialState:m,shortcuts:h,fieldName:F,schemaMode:$});}function s(){if(Array.isArray(e.value)&&!O.isPrimitiveArray.value){let i=N(b.value);b.value=e.value.filter(R=>typeof R=="object").map((R,f)=>{let x=vue.toRef(()=>R);if(R.$id&&b.value.find(j=>j.$id===R.$id)){let j=a.getArrayStatus(S.value,R.$id);return j?(j.$value=x,j):null}else {let{scope:j,unwrapped:B}=Ze(t.value.$each,x,f);j&&l.push(j);let y=vue.toRef(d?.value??{},"$each"),V=vue.computed(()=>p?.value?.$each??[]),q=at({$id:S.value,path:r,customMessages:n,rules:B??{},stateValue:x,index:f,options:o,storage:a,externalErrors:y,schemaErrors:V,initialState:vue.toRef(m.value??[],f),shortcuts:h,fieldName:F,schemaMode:$});return q||null}}).filter(R=>!!R),i.filter(R=>!e.value?.find(f=>R.$id===f.$id)).forEach((R,f)=>{a.deleteArrayStatus(S.value,f.toString());});}else b.value=[];}function E(){D=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?u():s();},{deep:ke?1:true,flush:"pre"});}function A(){E(),I=vue.effectScope(),M=I.run(()=>{let i=vue.computed({get:()=>e.value,set(g){D(),e.value=g,E();}}),R=vue.computed(()=>c.value.$dirty&&(!b.value.length||b.value.every(g=>g.$dirty))),f=vue.computed(()=>c.value.$anyDirty||b.value.some(g=>g.$anyDirty)),x=vue.computed(()=>c.value.$invalid||b.value.some(g=>g.$invalid)),j=vue.computed(()=>(te(c.value.$rules)?true:c.value.$correct)&&(!b.value.length||b.value.every(g=>g.$correct||g.$anyDirty&&!g.$invalid))),B=vue.computed(()=>c.value.$error||b.value.some(g=>g.$error)),y=vue.computed(()=>!(x.value||V.value)),V=vue.computed(()=>c.value.$pending||b.value.some(g=>g.$pending)),q=vue.computed(()=>!!b.value.length&&b.value.every(g=>g.$edited)),Z=vue.computed(()=>c.value.$anyEdited||b.value.some(g=>g.$anyEdited)),Y=vue.computed(()=>({$self:c.value.$errors,$each:b.value.map(g=>g.$errors)})),fe=vue.computed(()=>({$self:c.value.$silentErrors,$each:b.value.map(g=>g.$silentErrors)})),ce=vue.computed(()=>F);function v(){h?.collections&&Object.entries(h?.collections).forEach(([g,ee])=>{let se=vue.effectScope();_[g]=se.run(()=>{let le=vue.ref();return vue.watchEffect(()=>{le.value=ee(vue.reactive({$dirty:R,$error:B,$silentValue:i,$pending:V,$invalid:x,$correct:j,$errors:Y,$ready:y,$silentErrors:fe,$anyDirty:f,$name:ce,$each:b,$self:c,$value:e,$edited:q,$anyEdited:Z}));}),le}),l.push(se);});}let _={};return v(),{$dirty:R,$anyDirty:f,$invalid:x,$correct:j,$error:B,$pending:V,$errors:Y,$silentErrors:fe,$ready:y,$name:ce,$shortcuts:_,$silentValue:i,$edited:q,$anyEdited:Z}}),O.isPrimitiveArray.value&&t.value.$each&&console.warn(`${r} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function J(){D&&D(),c.value&&c.value.$unwatch(),b.value&&b.value.forEach(i=>{"$dirty"in i&&i.$unwatch();}),I.stop(),I=vue.effectScope(),w.stop(),w=vue.effectScope(true),l.forEach(i=>i.stop()),l=[];}function G(i=true,R=false){c.value.$touch(i,R),b.value.forEach(f=>{f.$touch(i,R);});}function X(i,R){if(J(),!R)if(i?.toInitialState)e.value=N(m.value);else if(i?.toState){let f;typeof i?.toState=="function"?f=i?.toState():f=i?.toState,m.value=N(f),e.value=N(f);}else m.value=N(e.value);i?.clearExternalErrors&&C(),c.value.$reset(),b.value.forEach(f=>{f.$reset(i,true);}),R||u();}async function oe(){let i=e.value;try{return {valid:(await Promise.allSettled([c.value.$validate(),...b.value.map(x=>x.$validate())])).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:i}}catch{return {valid:false,data:i}}}function C(){c.value.$clearExternalErrors(),b.value.forEach(i=>{i.$clearExternalErrors();});}function z(i=true){let R=b.value.map(f=>{if(wt(f))return f.$extractDirtyFields(i)});return i&&R.every(f=>te(f))&&(R=[]),R}let{$shortcuts:me,...ue}=M;return vue.reactive({$self:c,...ue,...me,$each:b,$value:e,$validate:oe,$unwatch:J,$watch:A,$touch:G,$reset:X,$extractDirtyFields:z,$clearExternalErrors:C})}function Be({rulesDef:e,state:t,path:n="",rootRules:r,externalErrors:a,schemaErrors:o,rootSchemaErrors:d,validationGroups:p,initialState:$,fieldName:m,...h}){let F=vue.effectScope(),I,M=[],w=null,O=null,l=null,S=null;async function D(i=true){let R=Object.entries(e.value),f=Object.fromEntries(R.filter(([y,V])=>!!V).map(([y,V])=>{if(V){let q=vue.toRef(t.value??{},y),Z=vue.toRef(()=>V),Y=vue.toRef(a?.value??{},y),fe=vue.computed(()=>o?.value?.[y]),ce=vue.toRef($?.value??{},y);return [y,Ee({state:q,rulesDef:Z,path:n?`${n}.${y}`:y,externalErrors:Y,schemaErrors:fe,initialState:ce,fieldName:y,...h})]}return []})),x=Object.fromEntries(Object.entries(vue.unref(a)??{}).filter(([y,V])=>!(y in e.value)&&!!V).map(([y])=>{let V=vue.toRef(t.value??{},y),q=vue.toRef(a?.value??{},y),Z=vue.computed(()=>o?.value?.[y]),Y=vue.toRef($?.value??{},y);return [y,Ee({state:V,rulesDef:vue.computed(()=>({})),path:n?`${n}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:y,...h})]})),j=Object.fromEntries(Object.entries(vue.unref(o)??{}).map(([y])=>{let V=vue.toRef(t.value??{},y),q=vue.toRef(a?.value??{},y),Z=vue.computed(()=>o?.value?.[y]),Y=vue.toRef($?.value??{},y);return [y,Ee({state:V,rulesDef:vue.computed(()=>({})),path:n?`${n}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:y,...h})]})),B=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(x??{}))&&!(y in(j??{}))).map(([y])=>{let V=vue.toRef(t.value??{},y),q=vue.toRef(a?.value??{},y),Z=vue.computed(()=>o?.value?.[y]),Y=vue.toRef($?.value??{},y);return [y,Ee({state:V,rulesDef:vue.computed(()=>({})),path:n?`${n}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:y,...h})]}));c.value={...f,...x,...j,...B},i&&s();}let c=h.storage.getFieldsEntry(n);D();function b(){a&&(l=vue.watch(a,()=>{E(),D();},{deep:true}));}function u(){S=vue.watch(t,()=>{E(),D(),G(true,true);},{flush:"sync"});}function s(){r&&(w?.(),w=vue.watch(r,()=>{E(),D();},{deep:true,flush:"post"}),b()),d&&(O?.(),O=vue.watch(d,()=>{E(),D();},{deep:true,flush:"post"})),u(),I=F.run(()=>{let i=vue.computed({get:()=>t.value,set(U){E(),t.value=U,D();}}),R=vue.computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).every(([U,P])=>P?.$dirty)),f=vue.computed(()=>Object.entries(c.value).some(([U,P])=>P?.$anyDirty)),x=vue.computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).some(([U,P])=>P?.$invalid)),j=vue.computed(()=>{let U=Object.entries(c.value).filter(([P,H])=>Pt(H)?!H.$inactive:true);return U.length?U.every(([P,H])=>H?.$correct||H.$anyDirty&&!H.$invalid):false}),B=vue.computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).some(([U,P])=>P?.$error)),y=vue.computed(()=>vue.unref(h.options.rewardEarly)!=null?vue.unref(h.options.rewardEarly):false),V=vue.computed(()=>vue.unref(h.options.autoDirty)!=null?vue.unref(h.options.autoDirty):!y.value),q=vue.computed(()=>V.value?f.value&&!(x.value||Y.value):!(x.value||Y.value)),Z=vue.ref(false),Y=vue.computed(()=>Z.value||Object.entries(c.value).some(([U,P])=>P?.$pending)),fe=vue.computed(()=>Object.fromEntries(Object.entries(c.value).map(([U,P])=>[U,P?.$errors]))),ce=vue.computed(()=>Object.fromEntries(Object.entries(c.value).map(([U,P])=>[U,P?.$silentErrors]))),v=vue.computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).every(([U,P])=>P?.$edited)),_=vue.computed(()=>Object.entries(c.value).some(([U,P])=>P?.$anyEdited)),g=vue.computed(()=>m);function ee(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,P])=>{let H=vue.effectScope();le[U]=H.run(()=>{let Ce=vue.ref();return vue.watchEffect(()=>{Ce.value=P(vue.reactive({$dirty:R,$value:t,$silentValue:i,$error:B,$pending:Y,$invalid:x,$correct:j,$ready:q,$anyDirty:f,$name:g,$silentErrors:ce,$errors:fe,$fields:c,$edited:v,$anyEdited:_}));}),Ce}),M.push(H);});}let se=vue.computed({get:()=>p?Object.fromEntries(Object.entries(p?.(c.value)??{}).map(([U,P])=>P.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(H=>[H,Et(P,H)])),...Object.fromEntries(["$errors","$silentErrors"].map(H=>[H,Tt(P,H)]))}]:[])):{},set(){}}),le={};return ee(),{$dirty:R,$anyDirty:f,$invalid:x,$correct:j,$error:B,$pending:Y,$errors:fe,$silentErrors:ce,$ready:q,$name:g,$shortcuts:le,$groups:se,$silentValue:i,$edited:v,$anyEdited:_,$localPending:Z}});}function E(){w?.(),l?.(),S?.(),O?.(),M=[],I={},c.value&&Object.entries(c.value).forEach(([i,R])=>{R.$unwatch();});}function A(){Object.entries(c.value).forEach(([i,R])=>{R.$clearExternalErrors();});}function J(i,R){if(l?.(),E(),!R)if(i?.toInitialState)t.value=N({...$.value??{}});else if(i?.toState){let f;typeof i?.toState=="function"?f=i?.toState():f=i?.toState,$.value=N(f),t.value=N(f);}else $.value=N(t.value);Object.values(c.value).forEach(f=>{f.$reset(i,true);}),i?.clearExternalErrors&&A(),b(),R||D();}function G(i=true,R=false){Object.values(c.value).forEach(f=>{f.$touch(i,R);});}function X(i){return i.filter(([R,f])=>W(f)?!(f&&typeof f=="object"&&"_null"in f)&&!te(f):Array.isArray(f)?f.length:true)}function oe(i=true){let R=Object.entries(c.value).map(([f,x])=>[f,x.$extractDirtyFields(i)]);return i&&(R=X(R)),Object.fromEntries(R)}async function C(){try{if(h.schemaMode)return h.onValidate?(G(!1),I.$localPending.value=!0,h.onValidate()):{valid:!1,data:t.value};{let i=t.value;return {valid:(await Promise.allSettled(Object.values(c.value).map(x=>x.$validate()))).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:i}}}catch{return {valid:false,data:t.value}}finally{I.$localPending.value=false;}}let{$shortcuts:z,$localPending:me,...ue}=I;return vue.reactive({...ue,...z,$fields:c,$value:t,$reset:J,$touch:G,$validate:C,$unwatch:E,$watch:s,$clearExternalErrors:A,$extractDirtyFields:oe})}function Ee({rulesDef:e,...t}){if(Ot(e,t.state,t.schemaMode))return Nt({rulesDef:e,...t});if(Ge(t.state,e)){if(Ne(t.state))return Be({rulesDef:e,...t});{let r=vue.effectScope().run(()=>{let d=vue.toRef(t.state.value?t.state:vue.ref({}));return vue.watch(()=>t.state.value,p=>{d.value=p;},{deep:true}),vue.watch(d,p=>{t.state.value=p;},{deep:true}),{fakeState:d}}),{state:a,...o}=t;return Be({rulesDef:e,...o,state:r.fakeState})}}else if(Ue(e))return be({rulesDef:e,...t})}function Ie({initialState:e,options:t,scopeRules:n,state:r,customRules:a,shortcuts:o,schemaErrors:d,schemaMode:p=false,onValidate:$}){let m=Xe(),h=vue.ref();return Ge(r,n)?h.value=Be({rootRules:n,rulesDef:n,state:r,customMessages:a?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaErrors:d,rootSchemaErrors:d,schemaMode:p,onValidate:$}):Ue(n)&&(h.value=be({rulesDef:n,state:r,customMessages:a?.(),storage:m,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaMode:p,schemaErrors:d,onValidate:$})),vue.getCurrentScope()&&vue.onScopeDispose(()=>{h.value?.$unwatch();}),vue.reactive({regle:h})}function st(e,t,n){let r={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function a(o,d,p){let $=vue.isRef(d)?d:vue.computed(typeof d=="function"?d:()=>d),m={...r,...p},h=vue.isRef(o)?o:vue.ref(o),F=vue.ref(W(h.value)?{...N(h.value)}:N(h.value));return {r$:Ie({scopeRules:$,state:h,options:m,initialState:F,customRules:e,shortcuts:n}).regle}}return a}var He=st();function it(){function e(t,n){return n}return e}var ut=it();function Wt({rules:e,modifiers:t,shortcuts:n}){let r=st(e,t,n),a=it();return {useRegle:r,inferRules:a}}function je(e,t){let n=t??false,r=vue.computed({get:()=>n?Object.values(e).map(u=>u.$value):Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$value])),set:u=>{n||typeof u=="object"&&Object.entries(u).forEach(([s,E])=>e[s].$value=E);}}),a=vue.computed({get:()=>Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$silentValue])),set:u=>{typeof u=="object"&&Object.entries(u).forEach(([s,E])=>e[s].$silentValue=E);}}),o=vue.computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,E])=>E?.$dirty)}),d=vue.computed(()=>Object.entries(e).some(([u,s])=>s?.$anyDirty)),p=vue.computed(()=>Object.entries(e).some(([u,s])=>s?.$invalid)),$=vue.computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,E])=>E?.$correct||E.$anyDirty&&!E.$invalid)}),m=vue.computed(()=>Object.entries(e).some(([u,s])=>s?.$error)),h=vue.computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,E])=>E?.$ready)}),F=vue.computed(()=>Object.entries(e).some(([u,s])=>s?.$pending)),I=vue.computed(()=>n?Object.entries(e).map(([u,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$errors]))),M=vue.computed(()=>n?Object.entries(e).map(([u,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$silentErrors]))),w=vue.computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,E])=>E?.$edited)}),O=vue.computed(()=>Object.entries(e).some(([u,s])=>s?.$anyEdited)),l=vue.computed(()=>n?Object.values(e):e);function S(u){Object.values(e).forEach(s=>{s.$reset(u);});}function T(){Object.values(e).forEach(u=>{u.$touch();});}function D(u=true){return Object.values(e).map(s=>s.$extractDirtyFields(u))}function c(){Object.values(e).forEach(u=>{u.$clearExternalErrors();});}async function b(){try{let u=r.value;return {valid:(await Promise.allSettled(Object.values(e).map(A=>A.$validate()))).every(A=>A.status==="fulfilled"?A.value.valid===!0:!1),data:u}}catch{return {valid:false,data:r.value}}}return vue.reactive({...!n&&{$silentValue:a},$errors:I,$silentErrors:M,$instances:l,$value:r,$dirty:o,$anyDirty:d,$invalid:p,$correct:$,$error:m,$pending:F,$ready:h,$edited:w,$anyEdited:O,$reset:S,$touch:T,$validate:b,$extractDirtyFields:D,$clearExternalErrors:c})}function Bt(e){function t(n){let r=vue.computed(()=>vue.toValue(n));d();let a=vue.ref(p(e.value)),o=vue.reactive({r$:a});function d(){r.value&&!e.value[r.value]&&(e.value[r.value]={});}vue.watch(r,d),vue.watch(e,$=>{a.value=p($);},{deep:true});function p($){if(r.value){let m=$[r.value]??{};return je(m,true)}else return je($["~~global"]??{},true)}return {r$:o.r$}}return {useCollectScope:t}}function qt(e,t){let n=t??He;return {useScopedRegle:(a,o,d)=>{let{namespace:p,...$}=d??{},m=vue.computed(()=>vue.toValue(p)),h=vue.ref(`${Object.keys(e.value).length+1}-${$e()}`),F=vue.computed(()=>`instance-${h.value}`),{r$:I}=n(a,o,$);w(),It(M),vue.watch(m,(O,l)=>{M(l),w();}),vue.getCurrentInstance()&&vue.onMounted(()=>{let O=vue.getCurrentInstance();typeof window<"u"&&O?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(O?.proxy?.$el?.parentElement)&&M();});function M(O){let l=O??m.value;l?e.value[l]&&delete e.value[l][F.value]:e.value["~~global"][F.value]&&delete e.value["~~global"][F.value];}function w(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][F.value]=I):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][F.value]=I);}return {r$:I,dispose:M,register:w}}}}function ze(e){let n=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):Ct(()=>vue.ref({"~~global":{}})))(),{useScopedRegle:r}=qt(n,e?.customUseRegle),{useCollectScope:a}=Bt(n);return {useScopedRegle:r,useCollectScope:a}}var {useCollectScope:ct,useScopedRegle:ft}=ze();
|
|
2
2
|
exports.InternalRuleType=Je;exports.createRule=Qe;exports.createScopedUseRegle=ze;exports.defineRegleConfig=Wt;exports.flatErrors=tt;exports.inferRules=ut;exports.mergeRegles=je;exports.unwrapRuleParameters=re;exports.useCollectScope=ct;exports.useRegle=He;exports.useRootStorage=Ie;exports.useScopedRegle=ft;
|
package/dist/regle-core.min.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {effectScope,computed,toValue,ref,watch,getCurrentInstance,onMounted,reactive,getCurrentScope,onScopeDispose,isRef,shallowRef,toRef,unref,watchEffect,version}from'vue';function te(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var bt=Symbol("regle-rule");function Yt(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 N(e){let t=e,n={}.toString.call(e).slice(8,-1);if(n=="Set"&&(t=new Set([...e].map(r=>N(r)))),n=="Map"&&(t=new Map([...e].map(r=>[N(r[0]),N(r[1])]))),n=="Date"&&(t=new Date(e.getTime())),n=="RegExp"&&(t=RegExp(e.source,Yt(e))),n=="Array"||n=="Object"){t=Array.isArray(e)?[]:{};for(let r in e)t[r]=N(e[r]);}return t}function W(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ke(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 _e(e,t,n){let r,a=(...o)=>new Promise(d=>{clearTimeout(r),r=setTimeout(()=>{r=void 0,Promise.resolve(e.apply(this,[...o])).then(d);},t);});return a.cancel=()=>{clearTimeout(r),r=void 0;},a}var Je={Inline:"__inline",Async:"__async"};function Et(e,t){return e.some(n=>n[t])}function Tt(e,t){return e.reduce((n,r)=>{let a=r[t]||[];return n.concat(a)},[])}function re(e){try{return e.map(t=>toValue(t))}catch{return []}}function xt(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function Dt(e){let r=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return r?(r[0]||r[1]||r[2]||r[3]||r[4]||"").split(",").map(d=>d.trim()).filter(d=>d.length>0).length:0}function Ye(e,...t){let{validator:n,type:r}=e,a=r===Je.Async||n.constructor.name==="AsyncFunction";return {...{validator(p,...$){return e.validator(p,...re($.length?$:t))},message(p){return typeof e.message=="function"?e.message({...p,$params:re(p?.$params?.length?p.$params:t)}):e.message},active(p){return typeof e.active=="function"?e.active({...p,$params:re(p?.$params?.length?p.$params:t)}):e.active??true},tooltip(p){return typeof e.tooltip=="function"?e.tooltip({...p,$params:re(p?.$params?.length?p.$params:t)}):e.tooltip??[]},exec(p){let $=e.validator(p,...re(t)),m;return $ instanceof Promise?$.then(h=>(m=h,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)):(m=$,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:a,_params:xt(t),_brand:bt}}function Qe(e){if(typeof e.validator=="function"){let n=Ye(e,...[]),r=e.async??e.validator.constructor.name==="AsyncFunction";if(Dt(e.validator)>1){let a=function(...o){return Ye(e,...o)};return a.validator=n.validator,a.message=n.message,a.active=n.active,a.tooltip=n.tooltip,a.type=n.type,a.exec=n.exec,a._validator=n.validator,a._message=n.message,a._active=n.active,a._tooltip=n.tooltip,a._type=e.type,a._message_pacthed=false,a._tooltip_pacthed=false,a._async=r,a}else return n}throw new Error("Validator must be a function")}function Xe(){let e=shallowRef(new Map),t=shallowRef(new Map),n=shallowRef(new Map),r=shallowRef(new Map),a=shallowRef(new Map),o=shallowRef(new Map);function d(S){let T=t.value.get(S);if(T)return T;{let D=ref({});return t.value.set(S,D),D}}function p(S){let T=n.value.get(S);if(T)return T;{let D=ref([]);return n.value.set(S,D),D}}function $(S,T,D){o.value.set(`${S}-${T}`,D);}function m(S,T){return o.value.get(`${S}-${T}`)}function h(S,T){S&&T!=null&&o.value.delete(`${S}-${T}`);}function V(S,T){r.value.set(S,T);}function I(S){return r.value.get(S)??false}function M(S,T){e.value.set(S,T);}function w(S,T){let D=e.value.get(S);return D?O(T,D)?{valid:true}:{valid:false}:void 0}function O(S,T){let D=Object.keys(T),c=Object.keys(S);return c.length!==D.length||!c.every(u=>D.includes(u))?false:c.every(u=>{let s=S[u],b=T[u];return !b||!s||typeof s=="function"||typeof b=="function"||typeof s=="number"||typeof s=="boolean"?false:s._params?s._params?.every((A,B)=>{if(typeof b=="number"||typeof b=="boolean")return true;{let G=re(b._params),X=re(s._params);return G?.[B]===X?.[B]}}):true})}function l(S){let T=a.value.get(S);if(T)return T;{let D=ref(false),c=ref(true),E=ref({}),u=ref(false);return a.value.set(S,{$pending:D,$valid:c,$metadata:E,$validating:u}),{$pending:D,$valid:c,$metadata:E,$validating:u}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),n.value.clear(),r.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:M,setDirtyEntry:V,checkRuleDeclEntry:w,getDirtyState:I,trySetRuleStatusRef:l,getFieldsEntry:d,getCollectionsEntry:p,getArrayStatus:m,addArrayStatus:$,deleteArrayStatus:h,arrayStatusStorage:o}}function Ne(e){return W(e.value)}function Ze(e,t,n){let r=effectScope(),a;return e instanceof Function?a=r.run(()=>e(t,n??0)):a=e,{scope:r,unwrapped:a}}var we={LessThan:-1,EqualTo:0,GreaterThan:1};function lr(e,t){let n=String(e).split("."),r=String(t).split(".");for(let a=0;a<Math.min(n.length,r.length);a++){let o=Number(n[a]),d=Number(r[a]);if(o>d)return we.GreaterThan;if(d>o)return we.LessThan;if(!isNaN(o)&&isNaN(d))return we.GreaterThan;if(isNaN(o)&&!isNaN(d))return we.LessThan}return we.EqualTo}var ke=lr(version,"3.5.0")!==-1;function or(){return Math.floor(Math.random()*Date.now()).toString()}function $e(){return typeof window>"u"?or():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function It(e){return getCurrentScope()?(onScopeDispose(e),true):false}function Ct(e){let t=false,n,r=effectScope(true);return (...a)=>(t||(n=r.run(()=>e(...a)),t=true),n)}function Ge(e,t){return Ne(e)||W(t.value)&&!te(t.value)&&!Object.entries(t.value).some(([n,r])=>Pe(r)||typeof r=="function")}function Ot(e,t,n=false){return !!e.value&&W(e.value)&&"$each"in e.value||n&&Array.isArray(t.value)&&t.value.some(W)||Array.isArray(t.value)&&t.value.some(W)}function Ue(e){return !!e.value&&W(e.value)}function Pe(e){return W(e)&&"_validator"in e}function Ae(e){return typeof e.value!="function"}function wt(e){return W(e)&&"$fields"in e}function Pt(e){return !!e&&"$rules"in e}function et({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([n,r])=>t&&!r.$valid||!r.$valid&&e.$error&&!r.$validating?r.$message:null).filter(n=>!!n).reduce((n,r)=>typeof r=="string"?n?.concat([r]):n?.concat(r),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function At({field:e}){return Object.entries(e.$rules??{}).map(([t,n])=>n.$tooltip).filter(t=>!!t).reduce((t,n)=>typeof n=="string"?t?.concat([n]):t?.concat(n),[])}function Mt(e){return W(e)&&"$each"in e}function tt(e,t){let{includePath:n=false}=t??{};if(Array.isArray(e)&&e.every(r=>!W(r)))return e;if(Mt(e)){let r=n?e.$self?.map(o=>({error:o,path:""}))??[]:e.$self??[],a=e.$each?.map(o=>We(o,n))??[];return r?.concat(a.flat())}else return Object.entries(e).map(([r,a])=>We(a,n,[r])).flat()}function We(e,t=false,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(a=>!W(a)))return t?e.map(a=>({error:a,path:r?.join(".")??""})):e;if(Mt(e)){let a=r?.length?e.$self?.map(d=>({error:d,path:r.join(".")}))??[]:e.$self??[],o=e.$each?.map((d,p)=>We(d,t,r?.concat(p.toString())))??[];return a?.concat(o.flat())}else return Object.entries(e).map(([a,o])=>We(o,t,r?.concat(a))).flat()}function jt({customMessages:e,rule:t,ruleKey:n,state:r,path:a,storage:o,$debounce:d,modifiers:p}){let $=effectScope(),m={},h,V=ref(false),{$pending:I,$valid:M,$metadata:w,$validating:O}=o.trySetRuleStatusRef(`${a}.${n}`);function l(){$=effectScope(),m=$.run(()=>{let s=ref(false),b=ref(false),A=ref(true),B=ref(false),G=ref(false),X=computed(()=>({$value:r.value,$error:b.value,$dirty:s.value,$pending:B.value,$correct:G.value,$invalid:A.value,$rule:{$valid:M.value,$invalid:!M.value,$pending:I.value},$params:R.value,...w.value})),oe=computed(()=>Ae(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function C(x){let j="",H=e?e[n]?.[x]:void 0;if(H&&(typeof H=="function"?j=H(X.value):j=H),Ae(t)){let y=`_${x}_patched`;H&&!t.value[y]||(typeof t.value[x]=="function"?j=t.value[x](X.value):j=t.value[x]??"");}return j}let q=computed(()=>{let x=C("message");return te(x)&&(x="This field is not valid"),x}),me=computed(()=>C("tooltip")),ue=computed(()=>Ae(t)&&t.value.type?t.value.type:n),i=computed(()=>Ae(t)?t.value.validator:t.value),R=computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),f=computed(()=>`${a}.${ue.value}`);return {$active:oe,$message:q,$type:ue,$validator:i,$params:R,$path:f,$tooltip:me,$fieldCorrect:G,$fieldError:b,$fieldDirty:s,$fieldPending:B,$fieldInvalid:A}}),h=watch(m?.$params,()=>{(p.$autoDirty.value||p.$rewardEarly.value&&m.$fieldError.value)&&c();});}l();function S(){M.value=true,m.$fieldDirty.value&&(I.value=true);}async function T(){let s=false;try{let b=m.$validator.value;if(typeof b!="function")return console.error(`${a}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let A=b(r.value,...m.$params.value),B=r.value;S();let G;if(A instanceof Promise?G=await A:G=A,r.value!==B)return !0;if(typeof G=="boolean")s=G;else {let{$valid:X,...oe}=G;s=X,w.value=oe;}}catch{s=false;}finally{I.value=false;}return s}let D=_e(T,d??200);async function c(){try{O.value=!0;let s=!1;if(Pe(t.value)&&t.value._async)s=await D();else {let b=m.$validator.value,A=b(r.value,...m.$params.value);if(A instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(A!=null)if(typeof A=="boolean")s=A;else {let{$valid:B,...G}=A;s=B,w.value=G;}}return M.value=s,s}catch{return false}finally{O.value=false;}}function E(){M.value=true,w.value={},I.value=false,O.value=false,l();}function u(){h(),$.stop(),$=effectScope();}return reactive({...m,$pending:I,$valid:M,$metadata:w,$haveAsync:V,$validating:O,$parse:c,$unwatch:u,$watch:l,$reset:E})}function be({state:e,rulesDef:t,customMessages:n,path:r,fieldName:a,storage:o,options:d,externalErrors:p,schemaErrors:$,schemaMode:m,onUnwatch:h,$isArray:V,initialState:I,shortcuts:M,onValidate:w}){let O=effectScope(),l,S=[],T,D,c,E,u,s=()=>{};function b(){let v=t.value,F=o.checkRuleDeclEntry(r,v);q.value=Object.fromEntries(Object.entries(v).filter(([g])=>g.startsWith("$"))),G(),C.value=Object.fromEntries(Object.entries(t.value).filter(([g])=>!g.startsWith("$")).map(([g,ee])=>{if(ee){let se=toRef(()=>ee);return [g,jt({modifiers:{$autoDirty:l.$autoDirty,$rewardEarly:l.$rewardEarly},customMessages:n,rule:se,ruleKey:g,state:e,path:r,storage:o,$debounce:q.value.$debounce})]}return []}).filter(g=>!!g.length)),l.processShortcuts(),A(),F?.valid!=null&&(l.$dirty.value=o.getDirtyState(r),(l.$dirty.value&&l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s()),o.addRuleDeclEntry(r,v);}function A(){s=l.$debounce.value?_e(oe,l.$debounce.value??l.$haveAnyAsyncRule?100:0):oe;}function B(){C.value&&Object.entries(C.value).forEach(([v,F])=>{F.$unwatch();}),c(),u?.(),l.$dirty.value&&o.setDirtyEntry(r,l.$dirty.value),T?.(),D?.(),O.stop(),O=effectScope(),S.forEach(v=>v.stop()),S=[],h?.(),E?.();}function G(){C.value&&Object.entries(C.value).forEach(([v,F])=>{F.$watch();}),l=O.run(()=>{let v=ref(false),F=ref(false),g=computed(()=>v.value),ee=computed(()=>q.value.$debounce),se=computed(()=>q.value.$lazy!=null?q.value.$lazy:unref(d.lazy)!=null?unref(d.lazy):false),le=computed(()=>q.value.$rewardEarly!=null?q.value.$rewardEarly:unref(d.rewardEarly)!=null?unref(d.rewardEarly):false),U=computed(()=>q.value.$clearExternalErrorsOnChange!=null?q.value.$clearExternalErrorsOnChange:unref(d.clearExternalErrorsOnChange)!=null?unref(d.clearExternalErrorsOnChange):true),P=computed(()=>q.value.$autoDirty!=null?q.value.$autoDirty:unref(d.autoDirty)!=null?unref(d.autoDirty):!le.value),z=computed(()=>Object.entries(C.value).some(([ie,Q])=>Q.$validating)),Ce=computed({get:()=>e.value,set(ie){T(),e.value=ie,X();}}),Fe=computed(()=>ye.value&&!Oe.value&&v.value),Rt=computed(()=>et({field:{$rules:C.value,$error:Fe.value,$externalErrors:p?.value,$schemaErrors:$?.value}})),dt=computed(()=>et({field:{$rules:C.value,$error:Fe.value,$externalErrors:p?.value,$schemaErrors:$?.value},silent:true})),qe=computed(()=>v.value?I.value instanceof Date&&e.value instanceof Date?Ke(I.value).getDate()!==Ke(e.value).getDate():I.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(I.value)?e.value.length!==I.value.length:I.value!==e.value:false),pt=computed(()=>qe.value),mt=computed(()=>At({field:{$rules:C.value}})),yt=computed(()=>P.value?g.value&&!(ye.value||Oe.value):!(ye.value||Oe.value)),Oe=computed(()=>F.value||!le.value?Object.entries(C.value).some(([ie,Q])=>Q.$pending):false),ye=computed(()=>p?.value?.length||$?.value?.length?true:Ve.value?false:!le.value||le.value&&F.value?Object.entries(C.value).some(([ie,Q])=>!Q.$valid):false),gt=computed(()=>a),Ve=computed(()=>!!(te(C.value)&&!m)),vt=computed(()=>p?.value?.length||Ve.value?false:v.value&&!te(e.value)&&!z.value?m?!$?.value?.length:Object.values(C.value).some(Q=>Q.$active)?Object.values(C.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),Kt=computed(()=>Object.entries(C.value).some(([ie,Q])=>Q.$haveAsync));function Jt(){M?.fields&&Object.entries(M.fields).forEach(([ie,Q])=>{let St=effectScope();$t[ie]=St.run(()=>{let ht=ref();return watchEffect(()=>{ht.value=Q(reactive({$dirty:v,$externalErrors:p?.value??[],$value:e,$silentValue:Ce,$rules:C,$error:Fe,$pending:Oe,$invalid:ye,$correct:vt,$errors:Rt,$ready:yt,$silentErrors:dt,$anyDirty:g,$tooltips:mt,$name:gt,$inactive:Ve,$edited:qe,$anyEdited:pt}));}),ht}),S.push(St);});}let $t={};return watch(ye,ie=>{ie||(F.value=false);}),{$error:Fe,$pending:Oe,$invalid:ye,$correct:vt,$debounce:ee,$lazy:se,$errors:Rt,$ready:yt,$silentErrors:dt,$rewardEarly:le,$autoDirty:P,$clearExternalErrorsOnChange:U,$anyDirty:g,$edited:qe,$anyEdited:pt,$name:gt,$haveAnyAsyncRule:Kt,$shortcuts:$t,$validating:z,$tooltips:mt,$dirty:v,triggerPunishment:F,processShortcuts:Jt,$silentValue:Ce,$inactive:Ve}}),X(),c=watch(l.$dirty,v=>{o.setDirtyEntry(r,v),Object.values(C.value).forEach(F=>{F.$fieldDirty=v;});}),u=watch([l.$error,l.$correct,l.$invalid,l.$pending],()=>{Object.values(C.value).forEach(v=>{v.$fieldError=l.$error.value,v.$fieldInvalid=l.$invalid.value,v.$fieldPending=l.$pending.value,v.$fieldCorrect=l.$correct.value;});}),D=watch(l.$invalid,v=>{l.$rewardEarly.value&&!v&&(l.triggerPunishment.value=false);}),E=watch(l.$haveAnyAsyncRule,A);}function X(){T=watch(e,()=>{l.$autoDirty.value&&(l.$dirty.value||(l.$dirty.value=true)),t.value instanceof Function&&b(),(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s(),l.$rewardEarly.value!==true&&l.$clearExternalErrorsOnChange.value&&f();},{deep:V?true:ke?1:true});}function oe(){Object.values(C.value).forEach(v=>{v.$parse();});}let C=ref({}),q=ref({});b();function me(v,F){if(f(),l.$dirty.value=false,l.triggerPunishment.value=false,o.setDirtyEntry(r,false),!F)if(v?.toInitialState)B(),e.value=N(I);else if(v?.toState){B();let g;typeof v?.toState=="function"?g=v?.toState():g=v?.toState,I.value=N(g),e.value=N(g);}else I.value=W(e.value)?N(e.value):Array.isArray(e.value)?[...e.value]:e.value;v?.clearExternalErrors&&f(),F||Object.entries(C.value).forEach(([g,ee])=>{ee.$reset();}),!l.$lazy.value&&l.$autoDirty.value&&Object.values(C.value).forEach(g=>g.$parse()),F||b();}function ue(v=true,F=false){l.$dirty.value||(l.$dirty.value=true),F&&v?(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s():v&&s();}async function i(){try{if(m)return w?(ue(!1),w()):{valid:!1,data:e.value};let v=e.value;if(l.triggerPunishment.value=!0,!l.$dirty.value)l.$dirty.value=!0;else if(l.$autoDirty.value&&l.$dirty.value&&!l.$pending.value)return {valid:!l.$error.value,data:v};return m?{valid:!$?.value?.length,data:v}:te(C.value)?{valid:!0,data:v}:{valid:(await Promise.allSettled(Object.entries(C.value).map(([ee,se])=>se.$parse()))).every(ee=>ee.status==="fulfilled"?ee.value===!0:!1),data:v}}catch{return {valid:false,data:e.value}}}function R(v=true){return l.$dirty.value?e.value:v?{_null:true}:null}function f(){p?.value?.length&&(p.value=[]);}!l.$lazy.value&&!l.$dirty.value&&l.$autoDirty.value&&s();let{$shortcuts:x,$validating:j,$autoDirty:H,$rewardEarly:y,$clearExternalErrorsOnChange:_,$haveAnyAsyncRule:K,$debounce:Z,$lazy:Y,triggerPunishment:fe,...ce}=l;return reactive({...ce,$externalErrors:p,$value:e,$rules:C,...x,$reset:me,$touch:ue,$validate:i,$unwatch:B,$watch:G,$extractDirtyFields:R,$clearExternalErrors:f})}function at({$id:e,path:t,index:n,options:r,storage:a,stateValue:o,customMessages:d,rules:p,externalErrors:$,schemaErrors:m,initialState:h,shortcuts:V,fieldName:I,schemaMode:M}){let w=p.$key?p.$key:$e(),O=`${t}.${String(w)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?O=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let l=toRef($?.value??[],n),S=computed(()=>m?.value?.[n]),T=Ee({state:o,rulesDef:toRef(()=>p),customMessages:d,path:O,storage:a,options:r,externalErrors:l,schemaErrors:S,initialState:h,shortcuts:V,fieldName:I,schemaMode:M});if(T){let D=o.value?.$id;T.$id=D??String(w),a.addArrayStatus(e,T.$id,T);}return T}function Nt({state:e,rulesDef:t,customMessages:n,path:r,storage:a,options:o,externalErrors:d,schemaErrors:p,schemaMode:$,initialState:m,shortcuts:h,fieldName:V}){let I=effectScope(),M,w=effectScope(),O,l=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let S=ref(),T=ref(e.value),D,c=ref({}),E=a.getCollectionsEntry(r);O=w.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(R=>typeof R!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(R=>Pe(R)||typeof R=="function"):false)})),u(),A();function u(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(S.value=$e(),Object.defineProperties(e.value,{$id:{value:S.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(S.value=e.value.$id)),T.value=c.value.$value,Array.isArray(e.value)&&!O.isPrimitiveArray.value?E.value=e.value.filter(i=>typeof i=="object").map((i,R)=>{let{scope:f,unwrapped:x}=Ze(t.value.$each,toRef(()=>i),R);f&&l.push(f);let j=toRef(m.value??[],R),H=toRef(d?.value??{},"$each"),y=computed(()=>p?.value?.$each),_=at({$id:S.value,path:r,customMessages:n,rules:x??{},stateValue:toRef(()=>i),index:R,options:o,storage:a,externalErrors:H,schemaErrors:y,initialState:j,shortcuts:h,fieldName:V,schemaMode:$});return _||null}).filter(i=>!!i):E.value=[],c.value=be({state:e,rulesDef:t,customMessages:n,path:r,storage:a,options:o,externalErrors:toRef(d?.value??{},"$self"),schemaErrors:computed(()=>p?.value?.$self),$isArray:true,initialState:m,shortcuts:h,fieldName:V,schemaMode:$});}function s(){if(Array.isArray(e.value)&&!O.isPrimitiveArray.value){let i=N(E.value);E.value=e.value.filter(R=>typeof R=="object").map((R,f)=>{let x=toRef(()=>R);if(R.$id&&E.value.find(j=>j.$id===R.$id)){let j=a.getArrayStatus(S.value,R.$id);return j?(j.$value=x,j):null}else {let{scope:j,unwrapped:H}=Ze(t.value.$each,x,f);j&&l.push(j);let y=toRef(d?.value??{},"$each"),_=computed(()=>p?.value?.$each??[]),K=at({$id:S.value,path:r,customMessages:n,rules:H??{},stateValue:x,index:f,options:o,storage:a,externalErrors:y,schemaErrors:_,initialState:toRef(m.value??[],f),shortcuts:h,fieldName:V,schemaMode:$});return K||null}}).filter(R=>!!R),i.filter(R=>!e.value?.find(f=>R.$id===f.$id)).forEach((R,f)=>{a.deleteArrayStatus(S.value,f.toString());});}else E.value=[];}function b(){D=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?u():s();},{deep:ke?1:true,flush:"pre"});}function A(){b(),I=effectScope(),M=I.run(()=>{let i=computed({get:()=>e.value,set(g){D(),e.value=g,b();}}),R=computed(()=>c.value.$dirty&&(!E.value.length||E.value.every(g=>g.$dirty))),f=computed(()=>c.value.$anyDirty||E.value.some(g=>g.$anyDirty)),x=computed(()=>c.value.$invalid||E.value.some(g=>g.$invalid)),j=computed(()=>(te(c.value.$rules)?true:c.value.$correct)&&(!E.value.length||E.value.every(g=>g.$correct||g.$anyDirty&&!g.$invalid))),H=computed(()=>c.value.$error||E.value.some(g=>g.$error)),y=computed(()=>!(x.value||_.value)),_=computed(()=>c.value.$pending||E.value.some(g=>g.$pending)),K=computed(()=>!!E.value.length&&E.value.every(g=>g.$edited)),Z=computed(()=>c.value.$anyEdited||E.value.some(g=>g.$anyEdited)),Y=computed(()=>({$self:c.value.$errors,$each:E.value.map(g=>g.$errors)})),fe=computed(()=>({$self:c.value.$silentErrors,$each:E.value.map(g=>g.$silentErrors)})),ce=computed(()=>V);function v(){h?.collections&&Object.entries(h?.collections).forEach(([g,ee])=>{let se=effectScope();F[g]=se.run(()=>{let le=ref();return watchEffect(()=>{le.value=ee(reactive({$dirty:R,$error:H,$silentValue:i,$pending:_,$invalid:x,$correct:j,$errors:Y,$ready:y,$silentErrors:fe,$anyDirty:f,$name:ce,$each:E,$self:c,$value:e,$edited:K,$anyEdited:Z}));}),le}),l.push(se);});}let F={};return v(),{$dirty:R,$anyDirty:f,$invalid:x,$correct:j,$error:H,$pending:_,$errors:Y,$silentErrors:fe,$ready:y,$name:ce,$shortcuts:F,$silentValue:i,$edited:K,$anyEdited:Z}}),O.isPrimitiveArray.value&&t.value.$each&&console.warn(`${r} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function B(){D&&D(),c.value&&c.value.$unwatch(),E.value&&E.value.forEach(i=>{"$dirty"in i&&i.$unwatch();}),I.stop(),I=effectScope(),w.stop(),w=effectScope(true),l.forEach(i=>i.stop()),l=[];}function G(i=true,R=false){c.value.$touch(i,R),E.value.forEach(f=>{f.$touch(i,R);});}function X(i,R){if(B(),!R)if(i?.toInitialState)e.value=N(m.value);else if(i?.toState){let f;typeof i?.toState=="function"?f=i?.toState():f=i?.toState,m.value=N(f),e.value=N(f);}else m.value=N(e.value);i?.clearExternalErrors&&C(),c.value.$reset(),E.value.forEach(f=>{f.$reset(i,true);}),R||u();}async function oe(){let i=e.value;try{return {valid:(await Promise.allSettled([c.value.$validate(),...E.value.map(x=>x.$validate())])).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:i}}catch{return {valid:false,data:i}}}function C(){c.value.$clearExternalErrors(),E.value.forEach(i=>{i.$clearExternalErrors();});}function q(i=true){let R=E.value.map(f=>{if(wt(f))return f.$extractDirtyFields(i)});return i&&R.every(f=>te(f))&&(R=[]),R}let{$shortcuts:me,...ue}=M;return reactive({$self:c,...ue,...me,$each:E,$value:e,$validate:oe,$unwatch:B,$watch:A,$touch:G,$reset:X,$extractDirtyFields:q,$clearExternalErrors:C})}function Be({rulesDef:e,state:t,path:n="",rootRules:r,externalErrors:a,schemaErrors:o,rootSchemaErrors:d,validationGroups:p,initialState:$,fieldName:m,...h}){let V=effectScope(),I,M=[],w=null,O=null,l=null,S=null;async function D(i=true){let R=Object.entries(e.value),f=Object.fromEntries(R.filter(([y,_])=>!!_).map(([y,_])=>{if(_){let K=toRef(t.value??{},y),Z=toRef(()=>_),Y=toRef(a?.value??{},y),fe=computed(()=>o?.value?.[y]),ce=toRef($?.value??{},y);return [y,Ee({state:K,rulesDef:Z,path:n?`${n}.${y}`:y,externalErrors:Y,schemaErrors:fe,initialState:ce,fieldName:y,...h})]}return []})),x=Object.fromEntries(Object.entries(unref(a)??{}).filter(([y,_])=>!(y in e.value)&&!!_).map(([y])=>{let _=toRef(t.value??{},y),K=toRef(a?.value??{},y),Z=computed(()=>o?.value?.[y]),Y=toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:computed(()=>({})),path:n?`${n}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:y,...h})]})),j=Object.fromEntries(Object.entries(unref(o)??{}).map(([y])=>{let _=toRef(t.value??{},y),K=toRef(a?.value??{},y),Z=computed(()=>o?.value?.[y]),Y=toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:computed(()=>({})),path:n?`${n}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:y,...h})]})),H=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(x??{}))&&!(y in(j??{}))).map(([y])=>{let _=toRef(t.value??{},y),K=toRef(a?.value??{},y),Z=computed(()=>o?.value?.[y]),Y=toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:computed(()=>({})),path:n?`${n}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:y,...h})]}));c.value={...f,...x,...j,...H},i&&s();}let c=h.storage.getFieldsEntry(n);D();function E(){a&&(l=watch(a,()=>{b(),D();},{deep:true}));}function u(){S=watch(t,()=>{b(),D(),G(true,true);},{flush:"sync"});}function s(){r&&(w?.(),w=watch(r,()=>{b(),D();},{deep:true,flush:"post"}),E()),d&&(O?.(),O=watch(d,()=>{b(),D();},{deep:true,flush:"post"})),u(),I=V.run(()=>{let i=computed({get:()=>t.value,set(U){b(),t.value=U,D();}}),R=computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).every(([U,P])=>P?.$dirty)),f=computed(()=>Object.entries(c.value).some(([U,P])=>P?.$anyDirty)),x=computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).some(([U,P])=>P?.$invalid)),j=computed(()=>{let U=Object.entries(c.value).filter(([P,z])=>Pt(z)?!z.$inactive:true);return U.length?U.every(([P,z])=>z?.$correct||z.$anyDirty&&!z.$invalid):false}),H=computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).some(([U,P])=>P?.$error)),y=computed(()=>unref(h.options.rewardEarly)!=null?unref(h.options.rewardEarly):false),_=computed(()=>unref(h.options.autoDirty)!=null?unref(h.options.autoDirty):!y.value),K=computed(()=>_.value?f.value&&!(x.value||Y.value):!(x.value||Y.value)),Z=ref(false),Y=computed(()=>Z.value||Object.entries(c.value).some(([U,P])=>P?.$pending)),fe=computed(()=>Object.fromEntries(Object.entries(c.value).map(([U,P])=>[U,P?.$errors]))),ce=computed(()=>Object.fromEntries(Object.entries(c.value).map(([U,P])=>[U,P?.$silentErrors]))),v=computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).every(([U,P])=>P?.$edited)),F=computed(()=>Object.entries(c.value).some(([U,P])=>P?.$anyEdited)),g=computed(()=>m);function ee(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,P])=>{let z=effectScope();le[U]=z.run(()=>{let Ce=ref();return watchEffect(()=>{Ce.value=P(reactive({$dirty:R,$value:t,$silentValue:i,$error:H,$pending:Y,$invalid:x,$correct:j,$ready:K,$anyDirty:f,$name:g,$silentErrors:ce,$errors:fe,$fields:c,$edited:v,$anyEdited:F}));}),Ce}),M.push(z);});}let se=computed({get:()=>p?Object.fromEntries(Object.entries(p?.(c.value)??{}).map(([U,P])=>P.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(z=>[z,Et(P,z)])),...Object.fromEntries(["$errors","$silentErrors"].map(z=>[z,Tt(P,z)]))}]:[])):{},set(){}}),le={};return ee(),{$dirty:R,$anyDirty:f,$invalid:x,$correct:j,$error:H,$pending:Y,$errors:fe,$silentErrors:ce,$ready:K,$name:g,$shortcuts:le,$groups:se,$silentValue:i,$edited:v,$anyEdited:F,$localPending:Z}});}function b(){w?.(),l?.(),S?.(),O?.(),M=[],I={},c.value&&Object.entries(c.value).forEach(([i,R])=>{R.$unwatch();});}function A(){Object.entries(c.value).forEach(([i,R])=>{R.$clearExternalErrors();});}function B(i,R){if(l?.(),b(),!R)if(i?.toInitialState)t.value=N({...$.value??{}});else if(i?.toState){let f;typeof i?.toState=="function"?f=i?.toState():f=i?.toState,$.value=N(f),t.value=N(f);}else $.value=N(t.value);Object.values(c.value).forEach(f=>{f.$reset(i,true);}),i?.clearExternalErrors&&A(),E(),R||D();}function G(i=true,R=false){Object.values(c.value).forEach(f=>{f.$touch(i,R);});}function X(i){return i.filter(([R,f])=>W(f)?!(f&&typeof f=="object"&&"_null"in f)&&!te(f):Array.isArray(f)?f.length:true)}function oe(i=true){let R=Object.entries(c.value).map(([f,x])=>[f,x.$extractDirtyFields(i)]);return i&&(R=X(R)),Object.fromEntries(R)}async function C(){try{if(h.schemaMode)return h.onValidate?(G(!1),I.$localPending.value=!0,h.onValidate()):{valid:!1,data:t.value};{let i=t.value;return {valid:(await Promise.allSettled(Object.values(c.value).map(x=>x.$validate()))).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:i}}}catch{return {valid:false,data:t.value}}finally{I.$localPending.value=false;}}let{$shortcuts:q,$localPending:me,...ue}=I;return reactive({...ue,...q,$fields:c,$value:t,$reset:B,$touch:G,$validate:C,$unwatch:b,$watch:s,$clearExternalErrors:A,$extractDirtyFields:oe})}function Ee({rulesDef:e,...t}){if(Ot(e,t.state,t.schemaMode))return Nt({rulesDef:e,...t});if(Ge(t.state,e)){if(Ne(t.state))return Be({rulesDef:e,...t});{let r=effectScope().run(()=>{let d=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,p=>{d.value=p;},{deep:true}),watch(d,p=>{t.state.value=p;},{deep:true}),{fakeState:d}}),{state:a,...o}=t;return Be({rulesDef:e,...o,state:r.fakeState})}}else if(Ue(e))return be({rulesDef:e,...t})}function Ie({initialState:e,options:t,scopeRules:n,state:r,customRules:a,shortcuts:o,schemaErrors:d,schemaMode:p=false,onValidate:$}){let m=Xe(),h=ref();return Ge(r,n)?h.value=Be({rootRules:n,rulesDef:n,state:r,customMessages:a?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaErrors:d,rootSchemaErrors:d,schemaMode:p,onValidate:$}):Ue(n)&&(h.value=be({rulesDef:n,state:r,customMessages:a?.(),storage:m,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaMode:p,schemaErrors:d,onValidate:$})),getCurrentScope()&&onScopeDispose(()=>{h.value?.$unwatch();}),reactive({regle:h})}function st(e,t,n){let r={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function a(o,d,p){let $=isRef(d)?d:computed(typeof d=="function"?d:()=>d),m={...r,...p},h=isRef(o)?o:ref(o),V=ref(W(h.value)?{...N(h.value)}:N(h.value));return {r$:Ie({scopeRules:$,state:h,options:m,initialState:V,customRules:e,shortcuts:n}).regle}}return a}var He=st();function it(){function e(t,n){return n}return e}var ut=it();function Wt({rules:e,modifiers:t,shortcuts:n}){let r=st(e,t,n),a=it();return {useRegle:r,inferRules:a}}function je(e,t){let n=t??false,r=computed({get:()=>n?Object.values(e).map(u=>u.$value):Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$value])),set:u=>{n||typeof u=="object"&&Object.entries(u).forEach(([s,b])=>e[s].$value=b);}}),a=computed({get:()=>Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$silentValue])),set:u=>{typeof u=="object"&&Object.entries(u).forEach(([s,b])=>e[s].$silentValue=b);}}),o=computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,b])=>b?.$dirty)}),d=computed(()=>Object.entries(e).some(([u,s])=>s?.$anyDirty)),p=computed(()=>Object.entries(e).some(([u,s])=>s?.$invalid)),$=computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,b])=>b?.$correct||b.$anyDirty&&!b.$invalid)}),m=computed(()=>Object.entries(e).some(([u,s])=>s?.$error)),h=computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,b])=>b?.$ready)}),V=computed(()=>Object.entries(e).some(([u,s])=>s?.$pending)),I=computed(()=>n?Object.entries(e).map(([u,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$errors]))),M=computed(()=>n?Object.entries(e).map(([u,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$silentErrors]))),w=computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,b])=>b?.$edited)}),O=computed(()=>Object.entries(e).some(([u,s])=>s?.$anyEdited)),l=computed(()=>n?Object.values(e):e);function S(u){Object.values(e).forEach(s=>{s.$reset(u);});}function T(){Object.values(e).forEach(u=>{u.$touch();});}function D(u=true){return Object.values(e).map(s=>s.$extractDirtyFields(u))}function c(){Object.values(e).forEach(u=>{u.$clearExternalErrors();});}async function E(){try{let u=r.value;return {valid:(await Promise.allSettled(Object.values(e).map(A=>A.$validate()))).every(A=>A.status==="fulfilled"?A.value.valid===!0:!1),data:u}}catch{return {valid:false,data:r.value}}}return reactive({...!n&&{$silentValue:a},$errors:I,$silentErrors:M,$instances:l,$value:r,$dirty:o,$anyDirty:d,$invalid:p,$correct:$,$error:m,$pending:V,$ready:h,$edited:w,$anyEdited:O,$reset:S,$touch:T,$validate:E,$extractDirtyFields:D,$clearExternalErrors:c})}function Bt(e){function t(n){let r=computed(()=>toValue(n));d();let a=ref(p(e.value)),o=reactive({r$:a});function d(){r.value&&!e.value[r.value]&&(e.value[r.value]={});}watch(r,d),watch(e,$=>{a.value=p($);},{deep:true});function p($){if(r.value){let m=$[r.value]??{};return je(m,true)}else return je($["~~global"]??{},true)}return {r$:o.r$}}return {useCollectScope:t}}function qt(e,t){let n=t??He;return {useScopedRegle:(a,o,d)=>{let{namespace:p,...$}=d??{},m=computed(()=>toValue(p)),h=ref(`${Object.keys(e.value).length+1}-${$e()}`),V=computed(()=>`instance-${h.value}`),{r$:I}=n(a,o,$);w(),It(M),watch(m,(O,l)=>{M(l),w();}),getCurrentInstance()&&onMounted(()=>{let O=getCurrentInstance();typeof window<"u"&&O?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(O?.proxy?.$el?.parentElement)&&M();});function M(O){let l=O??m.value;l?e.value[l]&&delete e.value[l][V.value]:e.value["~~global"][V.value]&&delete e.value["~~global"][V.value];}function w(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][V.value]=I):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][V.value]=I);}return {r$:I,dispose:M,register:w}}}}function ze(e){let n=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):Ct(()=>ref({"~~global":{}})))(),{useScopedRegle:r}=qt(n,e?.customUseRegle),{useCollectScope:a}=Bt(n);return {useScopedRegle:r,useCollectScope:a}}var {useCollectScope:ct,useScopedRegle:ft}=ze();
|
|
1
|
+
import {effectScope,computed,toValue,ref,watch,getCurrentInstance,onMounted,reactive,getCurrentScope,onScopeDispose,isRef,shallowRef,toRef,unref,watchEffect,version}from'vue';function te(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var bt=Symbol("regle-rule");function Yt(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 N(e){let t=e,n={}.toString.call(e).slice(8,-1);if(n=="Set"&&(t=new Set([...e].map(r=>N(r)))),n=="Map"&&(t=new Map([...e].map(r=>[N(r[0]),N(r[1])]))),n=="Date"&&(t=new Date(e.getTime())),n=="RegExp"&&(t=RegExp(e.source,Yt(e))),n=="Array"||n=="Object"){t=Array.isArray(e)?[]:{};for(let r in e)t[r]=N(e[r]);}return t}function W(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ke(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 _e(e,t,n){let r,a=(...o)=>new Promise(d=>{clearTimeout(r),r=setTimeout(()=>{r=void 0,Promise.resolve(e.apply(this,[...o])).then(d);},t);});return a.cancel=()=>{clearTimeout(r),r=void 0;},a}var Je={Inline:"__inline",Async:"__async"};function Et(e,t){return e.some(n=>n[t])}function Tt(e,t){return e.reduce((n,r)=>{let a=r[t]||[];return n.concat(a)},[])}function re(e){try{return e.map(t=>toValue(t))}catch{return []}}function xt(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function Dt(e){let r=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return r?(r[0]||r[1]||r[2]||r[3]||r[4]||"").split(",").map(d=>d.trim()).filter(d=>d.length>0).length:0}function Ye(e,...t){let{validator:n,type:r}=e,a=r===Je.Async||n.constructor.name==="AsyncFunction";return {...{validator(p,...$){return e.validator(p,...re($.length?$:t))},message(p){return typeof e.message=="function"?e.message({...p,$params:re(p?.$params?.length?p.$params:t)}):e.message},active(p){return typeof e.active=="function"?e.active({...p,$params:re(p?.$params?.length?p.$params:t)}):e.active??true},tooltip(p){return typeof e.tooltip=="function"?e.tooltip({...p,$params:re(p?.$params?.length?p.$params:t)}):e.tooltip??[]},exec(p){let $=e.validator(p,...re(t)),m;return $ instanceof Promise?$.then(h=>(m=h,typeof m=="object"&&"$valid"in m?m.$valid:typeof m=="boolean"?m:false)):(m=$,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:a,_params:xt(t),_brand:bt}}function Qe(e){if(typeof e.validator=="function"){let n=Ye(e,...[]),r=e.async??e.validator.constructor.name==="AsyncFunction";if(Dt(e.validator)>1){let a=function(...o){return Ye(e,...o)};return a.validator=n.validator,a.message=n.message,a.active=n.active,a.tooltip=n.tooltip,a.type=n.type,a.exec=n.exec,a._validator=n.validator,a._message=n.message,a._active=n.active,a._tooltip=n.tooltip,a._type=e.type,a._message_pacthed=false,a._tooltip_pacthed=false,a._async=r,a}else return n}throw new Error("Validator must be a function")}function Xe(){let e=shallowRef(new Map),t=shallowRef(new Map),n=shallowRef(new Map),r=shallowRef(new Map),a=shallowRef(new Map),o=shallowRef(new Map);function d(S){let T=t.value.get(S);if(T)return T;{let D=ref({});return t.value.set(S,D),D}}function p(S){let T=n.value.get(S);if(T)return T;{let D=ref([]);return n.value.set(S,D),D}}function $(S,T,D){o.value.set(`${S}-${T}`,D);}function m(S,T){return o.value.get(`${S}-${T}`)}function h(S,T){S&&T!=null&&o.value.delete(`${S}-${T}`);}function F(S,T){r.value.set(S,T);}function I(S){return r.value.get(S)??false}function M(S,T){e.value.set(S,T);}function w(S,T){let D=e.value.get(S);return D?O(T,D)?{valid:true}:{valid:false}:void 0}function O(S,T){let D=Object.keys(T),c=Object.keys(S);return c.length!==D.length||!c.every(u=>D.includes(u))?false:c.every(u=>{let s=S[u],E=T[u];return !E||!s||typeof s=="function"||typeof E=="function"||typeof s=="number"||typeof s=="boolean"?false:s._params?s._params?.every((A,J)=>{if(typeof E=="number"||typeof E=="boolean")return true;{let G=re(E._params),X=re(s._params);return G?.[J]===X?.[J]}}):true})}function l(S){let T=a.value.get(S);if(T)return T;{let D=ref(false),c=ref(true),b=ref({}),u=ref(false);return a.value.set(S,{$pending:D,$valid:c,$metadata:b,$validating:u}),{$pending:D,$valid:c,$metadata:b,$validating:u}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),n.value.clear(),r.value.clear(),a.value.clear(),o.value.clear();}),{addRuleDeclEntry:M,setDirtyEntry:F,checkRuleDeclEntry:w,getDirtyState:I,trySetRuleStatusRef:l,getFieldsEntry:d,getCollectionsEntry:p,getArrayStatus:m,addArrayStatus:$,deleteArrayStatus:h,arrayStatusStorage:o}}function Ne(e){return W(e.value)}function Ze(e,t,n){let r=effectScope(),a;return e instanceof Function?a=r.run(()=>e(t,n??0)):a=e,{scope:r,unwrapped:a}}var we={LessThan:-1,EqualTo:0,GreaterThan:1};function lr(e,t){let n=String(e).split("."),r=String(t).split(".");for(let a=0;a<Math.min(n.length,r.length);a++){let o=Number(n[a]),d=Number(r[a]);if(o>d)return we.GreaterThan;if(d>o)return we.LessThan;if(!isNaN(o)&&isNaN(d))return we.GreaterThan;if(isNaN(o)&&!isNaN(d))return we.LessThan}return we.EqualTo}var ke=lr(version,"3.5.0")!==-1;function or(){return Math.floor(Math.random()*Date.now()).toString()}function $e(){return typeof window>"u"?or():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function It(e){return getCurrentScope()?(onScopeDispose(e),true):false}function Ct(e){let t=false,n,r=effectScope(true);return (...a)=>(t||(n=r.run(()=>e(...a)),t=true),n)}function Ge(e,t){return Ne(e)||W(t.value)&&!te(t.value)&&!Object.entries(t.value).some(([n,r])=>Pe(r)||typeof r=="function")}function Ot(e,t,n=false){return !!e.value&&W(e.value)&&"$each"in e.value||n&&Array.isArray(t.value)&&t.value.some(W)||Array.isArray(t.value)&&t.value.some(W)}function Ue(e){return !!e.value&&W(e.value)}function Pe(e){return W(e)&&"_validator"in e}function Ae(e){return typeof e.value!="function"}function wt(e){return W(e)&&"$fields"in e}function Pt(e){return !!e&&"$rules"in e}function et({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([n,r])=>t&&!r.$valid||!r.$valid&&e.$error&&!r.$validating?r.$message:null).filter(n=>!!n).reduce((n,r)=>typeof r=="string"?n?.concat([r]):n?.concat(r),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function At({field:e}){return Object.entries(e.$rules??{}).map(([t,n])=>n.$tooltip).filter(t=>!!t).reduce((t,n)=>typeof n=="string"?t?.concat([n]):t?.concat(n),[])}function Mt(e){return W(e)&&"$each"in e}function tt(e,t){let{includePath:n=false}=t??{};if(Array.isArray(e)&&e.every(r=>!W(r)))return e;if(Mt(e)){let r=n?e.$self?.map(o=>({error:o,path:""}))??[]:e.$self??[],a=e.$each?.map(o=>We(o,n))??[];return r?.concat(a.flat())}else return Object.entries(e).map(([r,a])=>We(a,n,[r])).flat()}function We(e,t=false,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(a=>!W(a)))return t?e.map(a=>({error:a,path:r?.join(".")??""})):e;if(Mt(e)){let a=r?.length?e.$self?.map(d=>({error:d,path:r.join(".")}))??[]:e.$self??[],o=e.$each?.map((d,p)=>We(d,t,r?.concat(p.toString())))??[];return a?.concat(o.flat())}else return Object.entries(e).map(([a,o])=>We(o,t,r?.concat(a))).flat()}function jt({customMessages:e,rule:t,ruleKey:n,state:r,path:a,storage:o,$debounce:d,modifiers:p}){let $=effectScope(),m={},h,F=ref(false),{$pending:I,$valid:M,$metadata:w,$validating:O}=o.trySetRuleStatusRef(`${a}.${n}`);function l(){$=effectScope(),m=$.run(()=>{let s=ref(false),E=ref(false),A=ref(true),J=ref(false),G=ref(false),X=computed(()=>({$value:r.value,$error:E.value,$dirty:s.value,$pending:J.value,$correct:G.value,$invalid:A.value,$rule:{$valid:M.value,$invalid:!M.value,$pending:I.value},$params:R.value,...w.value})),oe=computed(()=>Ae(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function C(x){let j="",B=e?e[n]?.[x]:void 0;if(B&&(typeof B=="function"?j=B(X.value):j=B),Ae(t)){let y=`_${x}_patched`;B&&!t.value[y]||(typeof t.value[x]=="function"?j=t.value[x](X.value):j=t.value[x]??"");}return j}let z=computed(()=>{let x=C("message");return te(x)&&(x="This field is not valid"),x}),me=computed(()=>C("tooltip")),ue=computed(()=>Ae(t)&&t.value.type?t.value.type:n),i=computed(()=>Ae(t)?t.value.validator:t.value),R=computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),f=computed(()=>`${a}.${ue.value}`);return {$active:oe,$message:z,$type:ue,$validator:i,$params:R,$path:f,$tooltip:me,$fieldCorrect:G,$fieldError:E,$fieldDirty:s,$fieldPending:J,$fieldInvalid:A}}),h=watch(m?.$params,()=>{(p.$autoDirty.value||p.$rewardEarly.value&&m.$fieldError.value)&&c();});}l();function S(){M.value=true,m.$fieldDirty.value&&(I.value=true);}async function T(){let s=false;try{let E=m.$validator.value;if(typeof E!="function")return console.error(`${a}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let A=E(r.value,...m.$params.value),J=r.value;S();let G;if(A instanceof Promise?G=await A:G=A,r.value!==J)return !0;if(typeof G=="boolean")s=G;else {let{$valid:X,...oe}=G;s=X,w.value=oe;}}catch{s=false;}finally{I.value=false;}return s}let D=_e(T,d??200);async function c(){try{O.value=!0;let s=!1;if(Pe(t.value)&&t.value._async)s=await D();else {let E=m.$validator.value,A=E(r.value,...m.$params.value);if(A instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(A!=null)if(typeof A=="boolean")s=A;else {let{$valid:J,...G}=A;s=J,w.value=G;}}return M.value=s,s}catch{return false}finally{O.value=false;}}function b(){M.value=true,w.value={},I.value=false,O.value=false,l();}function u(){h(),$.stop(),$=effectScope();}return reactive({...m,$pending:I,$valid:M,$metadata:w,$haveAsync:F,$validating:O,$parse:c,$unwatch:u,$watch:l,$reset:b})}function be({state:e,rulesDef:t,customMessages:n,path:r,fieldName:a,storage:o,options:d,externalErrors:p,schemaErrors:$,schemaMode:m,onUnwatch:h,$isArray:F,initialState:I,shortcuts:M,onValidate:w}){let O=effectScope(),l,S=[],T,D,c,b,u,s=()=>{};function E(){let v=t.value,_=o.checkRuleDeclEntry(r,v);z.value=Object.fromEntries(Object.entries(v).filter(([g])=>g.startsWith("$"))),G(),C.value=Object.fromEntries(Object.entries(t.value).filter(([g])=>!g.startsWith("$")).map(([g,ee])=>{if(ee){let se=toRef(()=>ee);return [g,jt({modifiers:{$autoDirty:l.$autoDirty,$rewardEarly:l.$rewardEarly},customMessages:n,rule:se,ruleKey:g,state:e,path:r,storage:o,$debounce:z.value.$debounce})]}return []}).filter(g=>!!g.length)),l.processShortcuts(),A(),_?.valid!=null&&(l.$dirty.value=o.getDirtyState(r),(l.$dirty.value&&l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s()),o.addRuleDeclEntry(r,v);}function A(){s=l.$debounce.value?_e(oe,l.$debounce.value??l.$haveAnyAsyncRule?100:0):oe;}function J(){C.value&&Object.entries(C.value).forEach(([v,_])=>{_.$unwatch();}),c(),u?.(),l.$dirty.value&&o.setDirtyEntry(r,l.$dirty.value),T?.(),D?.(),O.stop(),O=effectScope(),S.forEach(v=>v.stop()),S=[],h?.(),b?.();}function G(){C.value&&Object.entries(C.value).forEach(([v,_])=>{_.$watch();}),l=O.run(()=>{let v=ref(false),_=ref(false),g=computed(()=>v.value),ee=computed(()=>z.value.$debounce),se=computed(()=>z.value.$lazy!=null?z.value.$lazy:unref(d.lazy)!=null?unref(d.lazy):false),le=computed(()=>z.value.$rewardEarly!=null?z.value.$rewardEarly:unref(d.rewardEarly)!=null?unref(d.rewardEarly):false),U=computed(()=>z.value.$clearExternalErrorsOnChange!=null?z.value.$clearExternalErrorsOnChange:unref(d.clearExternalErrorsOnChange)!=null?unref(d.clearExternalErrorsOnChange):true),P=computed(()=>z.value.$autoDirty!=null?z.value.$autoDirty:unref(d.autoDirty)!=null?unref(d.autoDirty):!le.value),H=computed(()=>Object.entries(C.value).some(([ie,Q])=>Q.$validating)),Ce=computed({get:()=>e.value,set(ie){T(),e.value=ie,X();}}),Fe=computed(()=>ye.value&&!Oe.value&&v.value),Rt=computed(()=>et({field:{$rules:C.value,$error:Fe.value,$externalErrors:p?.value,$schemaErrors:$?.value}})),dt=computed(()=>et({field:{$rules:C.value,$error:Fe.value,$externalErrors:p?.value,$schemaErrors:$?.value},silent:true})),qe=computed(()=>v.value?I.value instanceof Date&&e.value instanceof Date?Ke(I.value).getDate()!==Ke(e.value).getDate():I.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(I.value)?e.value.length!==I.value.length:I.value!==e.value:false),pt=computed(()=>qe.value),mt=computed(()=>At({field:{$rules:C.value}})),yt=computed(()=>P.value?g.value&&!(ye.value||Oe.value):!(ye.value||Oe.value)),Oe=computed(()=>_.value||!le.value?Object.entries(C.value).some(([ie,Q])=>Q.$pending):false),ye=computed(()=>p?.value?.length||$?.value?.length?true:Ve.value?false:!le.value||le.value&&_.value?Object.entries(C.value).some(([ie,Q])=>!Q.$valid):false),gt=computed(()=>a),Ve=computed(()=>!!(te(C.value)&&!m)),vt=computed(()=>p?.value?.length||Ve.value?false:v.value&&!te(e.value)&&!H.value?m?!$?.value?.length:Object.values(C.value).some(Q=>Q.$active)?Object.values(C.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),Kt=computed(()=>Object.entries(C.value).some(([ie,Q])=>Q.$haveAsync));function Jt(){M?.fields&&Object.entries(M.fields).forEach(([ie,Q])=>{let St=effectScope();$t[ie]=St.run(()=>{let ht=ref();return watchEffect(()=>{ht.value=Q(reactive({$dirty:v,$externalErrors:p?.value??[],$value:e,$silentValue:Ce,$rules:C,$error:Fe,$pending:Oe,$invalid:ye,$correct:vt,$errors:Rt,$ready:yt,$silentErrors:dt,$anyDirty:g,$tooltips:mt,$name:gt,$inactive:Ve,$edited:qe,$anyEdited:pt}));}),ht}),S.push(St);});}let $t={};return watch(ye,ie=>{ie||(_.value=false);}),{$error:Fe,$pending:Oe,$invalid:ye,$correct:vt,$debounce:ee,$lazy:se,$errors:Rt,$ready:yt,$silentErrors:dt,$rewardEarly:le,$autoDirty:P,$clearExternalErrorsOnChange:U,$anyDirty:g,$edited:qe,$anyEdited:pt,$name:gt,$haveAnyAsyncRule:Kt,$shortcuts:$t,$validating:H,$tooltips:mt,$dirty:v,triggerPunishment:_,processShortcuts:Jt,$silentValue:Ce,$inactive:Ve}}),X(),c=watch(l.$dirty,v=>{o.setDirtyEntry(r,v),Object.values(C.value).forEach(_=>{_.$fieldDirty=v;});}),u=watch([l.$error,l.$correct,l.$invalid,l.$pending],()=>{Object.values(C.value).forEach(v=>{v.$fieldError=l.$error.value,v.$fieldInvalid=l.$invalid.value,v.$fieldPending=l.$pending.value,v.$fieldCorrect=l.$correct.value;});}),D=watch(l.$invalid,v=>{l.$rewardEarly.value&&!v&&(l.triggerPunishment.value=false);}),b=watch(l.$haveAnyAsyncRule,A);}function X(){T=watch(e,()=>{l.$autoDirty.value&&(l.$dirty.value||(l.$dirty.value=true)),t.value instanceof Function&&E(),(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s(),l.$rewardEarly.value!==true&&l.$clearExternalErrorsOnChange.value&&f();},{deep:F?true:ke?1:true});}function oe(){Object.values(C.value).forEach(v=>{v.$parse();});}let C=ref({}),z=ref({});E();function me(v,_){if(f(),l.$dirty.value=false,l.triggerPunishment.value=false,o.setDirtyEntry(r,false),!_)if(v?.toInitialState)e.value=N(I);else if(v?.toState){let g;typeof v?.toState=="function"?g=v?.toState():g=v?.toState,I.value=N(g),e.value=N(g);}else I.value=W(e.value)?N(e.value):Array.isArray(e.value)?[...e.value]:e.value;v?.clearExternalErrors&&f(),_||Object.entries(C.value).forEach(([g,ee])=>{ee.$reset();}),!l.$lazy.value&&l.$autoDirty.value&&Object.values(C.value).forEach(g=>g.$parse());}function ue(v=true,_=false){l.$dirty.value||(l.$dirty.value=true),_&&v?(l.$autoDirty.value||l.$rewardEarly.value&&l.$error.value)&&s():v&&s();}async function i(){try{if(m)return w?(ue(!1),w()):{valid:!1,data:e.value};let v=e.value;if(l.triggerPunishment.value=!0,!l.$dirty.value)l.$dirty.value=!0;else if(l.$autoDirty.value&&l.$dirty.value&&!l.$pending.value)return {valid:!l.$error.value,data:v};return m?{valid:!$?.value?.length,data:v}:te(C.value)?{valid:!0,data:v}:{valid:(await Promise.allSettled(Object.entries(C.value).map(([ee,se])=>se.$parse()))).every(ee=>ee.status==="fulfilled"?ee.value===!0:!1),data:v}}catch{return {valid:false,data:e.value}}}function R(v=true){return l.$dirty.value?e.value:v?{_null:true}:null}function f(){p?.value?.length&&(p.value=[]);}!l.$lazy.value&&!l.$dirty.value&&l.$autoDirty.value&&s();let{$shortcuts:x,$validating:j,$autoDirty:B,$rewardEarly:y,$clearExternalErrorsOnChange:V,$haveAnyAsyncRule:q,$debounce:Z,$lazy:Y,triggerPunishment:fe,...ce}=l;return reactive({...ce,$externalErrors:p,$value:e,$rules:C,...x,$reset:me,$touch:ue,$validate:i,$unwatch:J,$watch:G,$extractDirtyFields:R,$clearExternalErrors:f})}function at({$id:e,path:t,index:n,options:r,storage:a,stateValue:o,customMessages:d,rules:p,externalErrors:$,schemaErrors:m,initialState:h,shortcuts:F,fieldName:I,schemaMode:M}){let w=p.$key?p.$key:$e(),O=`${t}.${String(w)}`;typeof o.value=="object"&&o.value!=null&&(o.value.$id?O=`${t}.${o.value.$id}`:Object.defineProperties(o.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let l=toRef($?.value??[],n),S=computed(()=>m?.value?.[n]),T=Ee({state:o,rulesDef:toRef(()=>p),customMessages:d,path:O,storage:a,options:r,externalErrors:l,schemaErrors:S,initialState:h,shortcuts:F,fieldName:I,schemaMode:M});if(T){let D=o.value?.$id;T.$id=D??String(w),a.addArrayStatus(e,T.$id,T);}return T}function Nt({state:e,rulesDef:t,customMessages:n,path:r,storage:a,options:o,externalErrors:d,schemaErrors:p,schemaMode:$,initialState:m,shortcuts:h,fieldName:F}){let I=effectScope(),M,w=effectScope(),O,l=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let S=ref(),T=ref(e.value),D,c=ref({}),b=a.getCollectionsEntry(r);O=w.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(R=>typeof R!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(R=>Pe(R)||typeof R=="function"):false)})),u(),A();function u(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(S.value=$e(),Object.defineProperties(e.value,{$id:{value:S.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(S.value=e.value.$id)),T.value=c.value.$value,Array.isArray(e.value)&&!O.isPrimitiveArray.value?b.value=e.value.filter(i=>typeof i=="object").map((i,R)=>{let{scope:f,unwrapped:x}=Ze(t.value.$each,toRef(()=>i),R);f&&l.push(f);let j=toRef(m.value??[],R),B=toRef(d?.value??{},"$each"),y=computed(()=>p?.value?.$each),V=at({$id:S.value,path:r,customMessages:n,rules:x??{},stateValue:toRef(()=>i),index:R,options:o,storage:a,externalErrors:B,schemaErrors:y,initialState:j,shortcuts:h,fieldName:F,schemaMode:$});return V||null}).filter(i=>!!i):b.value=[],c.value=be({state:e,rulesDef:t,customMessages:n,path:r,storage:a,options:o,externalErrors:toRef(d?.value??{},"$self"),schemaErrors:computed(()=>p?.value?.$self),$isArray:true,initialState:m,shortcuts:h,fieldName:F,schemaMode:$});}function s(){if(Array.isArray(e.value)&&!O.isPrimitiveArray.value){let i=N(b.value);b.value=e.value.filter(R=>typeof R=="object").map((R,f)=>{let x=toRef(()=>R);if(R.$id&&b.value.find(j=>j.$id===R.$id)){let j=a.getArrayStatus(S.value,R.$id);return j?(j.$value=x,j):null}else {let{scope:j,unwrapped:B}=Ze(t.value.$each,x,f);j&&l.push(j);let y=toRef(d?.value??{},"$each"),V=computed(()=>p?.value?.$each??[]),q=at({$id:S.value,path:r,customMessages:n,rules:B??{},stateValue:x,index:f,options:o,storage:a,externalErrors:y,schemaErrors:V,initialState:toRef(m.value??[],f),shortcuts:h,fieldName:F,schemaMode:$});return q||null}}).filter(R=>!!R),i.filter(R=>!e.value?.find(f=>R.$id===f.$id)).forEach((R,f)=>{a.deleteArrayStatus(S.value,f.toString());});}else b.value=[];}function E(){D=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?u():s();},{deep:ke?1:true,flush:"pre"});}function A(){E(),I=effectScope(),M=I.run(()=>{let i=computed({get:()=>e.value,set(g){D(),e.value=g,E();}}),R=computed(()=>c.value.$dirty&&(!b.value.length||b.value.every(g=>g.$dirty))),f=computed(()=>c.value.$anyDirty||b.value.some(g=>g.$anyDirty)),x=computed(()=>c.value.$invalid||b.value.some(g=>g.$invalid)),j=computed(()=>(te(c.value.$rules)?true:c.value.$correct)&&(!b.value.length||b.value.every(g=>g.$correct||g.$anyDirty&&!g.$invalid))),B=computed(()=>c.value.$error||b.value.some(g=>g.$error)),y=computed(()=>!(x.value||V.value)),V=computed(()=>c.value.$pending||b.value.some(g=>g.$pending)),q=computed(()=>!!b.value.length&&b.value.every(g=>g.$edited)),Z=computed(()=>c.value.$anyEdited||b.value.some(g=>g.$anyEdited)),Y=computed(()=>({$self:c.value.$errors,$each:b.value.map(g=>g.$errors)})),fe=computed(()=>({$self:c.value.$silentErrors,$each:b.value.map(g=>g.$silentErrors)})),ce=computed(()=>F);function v(){h?.collections&&Object.entries(h?.collections).forEach(([g,ee])=>{let se=effectScope();_[g]=se.run(()=>{let le=ref();return watchEffect(()=>{le.value=ee(reactive({$dirty:R,$error:B,$silentValue:i,$pending:V,$invalid:x,$correct:j,$errors:Y,$ready:y,$silentErrors:fe,$anyDirty:f,$name:ce,$each:b,$self:c,$value:e,$edited:q,$anyEdited:Z}));}),le}),l.push(se);});}let _={};return v(),{$dirty:R,$anyDirty:f,$invalid:x,$correct:j,$error:B,$pending:V,$errors:Y,$silentErrors:fe,$ready:y,$name:ce,$shortcuts:_,$silentValue:i,$edited:q,$anyEdited:Z}}),O.isPrimitiveArray.value&&t.value.$each&&console.warn(`${r} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function J(){D&&D(),c.value&&c.value.$unwatch(),b.value&&b.value.forEach(i=>{"$dirty"in i&&i.$unwatch();}),I.stop(),I=effectScope(),w.stop(),w=effectScope(true),l.forEach(i=>i.stop()),l=[];}function G(i=true,R=false){c.value.$touch(i,R),b.value.forEach(f=>{f.$touch(i,R);});}function X(i,R){if(J(),!R)if(i?.toInitialState)e.value=N(m.value);else if(i?.toState){let f;typeof i?.toState=="function"?f=i?.toState():f=i?.toState,m.value=N(f),e.value=N(f);}else m.value=N(e.value);i?.clearExternalErrors&&C(),c.value.$reset(),b.value.forEach(f=>{f.$reset(i,true);}),R||u();}async function oe(){let i=e.value;try{return {valid:(await Promise.allSettled([c.value.$validate(),...b.value.map(x=>x.$validate())])).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:i}}catch{return {valid:false,data:i}}}function C(){c.value.$clearExternalErrors(),b.value.forEach(i=>{i.$clearExternalErrors();});}function z(i=true){let R=b.value.map(f=>{if(wt(f))return f.$extractDirtyFields(i)});return i&&R.every(f=>te(f))&&(R=[]),R}let{$shortcuts:me,...ue}=M;return reactive({$self:c,...ue,...me,$each:b,$value:e,$validate:oe,$unwatch:J,$watch:A,$touch:G,$reset:X,$extractDirtyFields:z,$clearExternalErrors:C})}function Be({rulesDef:e,state:t,path:n="",rootRules:r,externalErrors:a,schemaErrors:o,rootSchemaErrors:d,validationGroups:p,initialState:$,fieldName:m,...h}){let F=effectScope(),I,M=[],w=null,O=null,l=null,S=null;async function D(i=true){let R=Object.entries(e.value),f=Object.fromEntries(R.filter(([y,V])=>!!V).map(([y,V])=>{if(V){let q=toRef(t.value??{},y),Z=toRef(()=>V),Y=toRef(a?.value??{},y),fe=computed(()=>o?.value?.[y]),ce=toRef($?.value??{},y);return [y,Ee({state:q,rulesDef:Z,path:n?`${n}.${y}`:y,externalErrors:Y,schemaErrors:fe,initialState:ce,fieldName:y,...h})]}return []})),x=Object.fromEntries(Object.entries(unref(a)??{}).filter(([y,V])=>!(y in e.value)&&!!V).map(([y])=>{let V=toRef(t.value??{},y),q=toRef(a?.value??{},y),Z=computed(()=>o?.value?.[y]),Y=toRef($?.value??{},y);return [y,Ee({state:V,rulesDef:computed(()=>({})),path:n?`${n}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:y,...h})]})),j=Object.fromEntries(Object.entries(unref(o)??{}).map(([y])=>{let V=toRef(t.value??{},y),q=toRef(a?.value??{},y),Z=computed(()=>o?.value?.[y]),Y=toRef($?.value??{},y);return [y,Ee({state:V,rulesDef:computed(()=>({})),path:n?`${n}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:y,...h})]})),B=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(x??{}))&&!(y in(j??{}))).map(([y])=>{let V=toRef(t.value??{},y),q=toRef(a?.value??{},y),Z=computed(()=>o?.value?.[y]),Y=toRef($?.value??{},y);return [y,Ee({state:V,rulesDef:computed(()=>({})),path:n?`${n}.${y}`:y,externalErrors:q,schemaErrors:Z,initialState:Y,fieldName:y,...h})]}));c.value={...f,...x,...j,...B},i&&s();}let c=h.storage.getFieldsEntry(n);D();function b(){a&&(l=watch(a,()=>{E(),D();},{deep:true}));}function u(){S=watch(t,()=>{E(),D(),G(true,true);},{flush:"sync"});}function s(){r&&(w?.(),w=watch(r,()=>{E(),D();},{deep:true,flush:"post"}),b()),d&&(O?.(),O=watch(d,()=>{E(),D();},{deep:true,flush:"post"})),u(),I=F.run(()=>{let i=computed({get:()=>t.value,set(U){E(),t.value=U,D();}}),R=computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).every(([U,P])=>P?.$dirty)),f=computed(()=>Object.entries(c.value).some(([U,P])=>P?.$anyDirty)),x=computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).some(([U,P])=>P?.$invalid)),j=computed(()=>{let U=Object.entries(c.value).filter(([P,H])=>Pt(H)?!H.$inactive:true);return U.length?U.every(([P,H])=>H?.$correct||H.$anyDirty&&!H.$invalid):false}),B=computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).some(([U,P])=>P?.$error)),y=computed(()=>unref(h.options.rewardEarly)!=null?unref(h.options.rewardEarly):false),V=computed(()=>unref(h.options.autoDirty)!=null?unref(h.options.autoDirty):!y.value),q=computed(()=>V.value?f.value&&!(x.value||Y.value):!(x.value||Y.value)),Z=ref(false),Y=computed(()=>Z.value||Object.entries(c.value).some(([U,P])=>P?.$pending)),fe=computed(()=>Object.fromEntries(Object.entries(c.value).map(([U,P])=>[U,P?.$errors]))),ce=computed(()=>Object.fromEntries(Object.entries(c.value).map(([U,P])=>[U,P?.$silentErrors]))),v=computed(()=>!!Object.entries(c.value).length&&Object.entries(c.value).every(([U,P])=>P?.$edited)),_=computed(()=>Object.entries(c.value).some(([U,P])=>P?.$anyEdited)),g=computed(()=>m);function ee(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,P])=>{let H=effectScope();le[U]=H.run(()=>{let Ce=ref();return watchEffect(()=>{Ce.value=P(reactive({$dirty:R,$value:t,$silentValue:i,$error:B,$pending:Y,$invalid:x,$correct:j,$ready:q,$anyDirty:f,$name:g,$silentErrors:ce,$errors:fe,$fields:c,$edited:v,$anyEdited:_}));}),Ce}),M.push(H);});}let se=computed({get:()=>p?Object.fromEntries(Object.entries(p?.(c.value)??{}).map(([U,P])=>P.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(H=>[H,Et(P,H)])),...Object.fromEntries(["$errors","$silentErrors"].map(H=>[H,Tt(P,H)]))}]:[])):{},set(){}}),le={};return ee(),{$dirty:R,$anyDirty:f,$invalid:x,$correct:j,$error:B,$pending:Y,$errors:fe,$silentErrors:ce,$ready:q,$name:g,$shortcuts:le,$groups:se,$silentValue:i,$edited:v,$anyEdited:_,$localPending:Z}});}function E(){w?.(),l?.(),S?.(),O?.(),M=[],I={},c.value&&Object.entries(c.value).forEach(([i,R])=>{R.$unwatch();});}function A(){Object.entries(c.value).forEach(([i,R])=>{R.$clearExternalErrors();});}function J(i,R){if(l?.(),E(),!R)if(i?.toInitialState)t.value=N({...$.value??{}});else if(i?.toState){let f;typeof i?.toState=="function"?f=i?.toState():f=i?.toState,$.value=N(f),t.value=N(f);}else $.value=N(t.value);Object.values(c.value).forEach(f=>{f.$reset(i,true);}),i?.clearExternalErrors&&A(),b(),R||D();}function G(i=true,R=false){Object.values(c.value).forEach(f=>{f.$touch(i,R);});}function X(i){return i.filter(([R,f])=>W(f)?!(f&&typeof f=="object"&&"_null"in f)&&!te(f):Array.isArray(f)?f.length:true)}function oe(i=true){let R=Object.entries(c.value).map(([f,x])=>[f,x.$extractDirtyFields(i)]);return i&&(R=X(R)),Object.fromEntries(R)}async function C(){try{if(h.schemaMode)return h.onValidate?(G(!1),I.$localPending.value=!0,h.onValidate()):{valid:!1,data:t.value};{let i=t.value;return {valid:(await Promise.allSettled(Object.values(c.value).map(x=>x.$validate()))).every(x=>x.status==="fulfilled"?x.value.valid===!0:!1),data:i}}}catch{return {valid:false,data:t.value}}finally{I.$localPending.value=false;}}let{$shortcuts:z,$localPending:me,...ue}=I;return reactive({...ue,...z,$fields:c,$value:t,$reset:J,$touch:G,$validate:C,$unwatch:E,$watch:s,$clearExternalErrors:A,$extractDirtyFields:oe})}function Ee({rulesDef:e,...t}){if(Ot(e,t.state,t.schemaMode))return Nt({rulesDef:e,...t});if(Ge(t.state,e)){if(Ne(t.state))return Be({rulesDef:e,...t});{let r=effectScope().run(()=>{let d=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,p=>{d.value=p;},{deep:true}),watch(d,p=>{t.state.value=p;},{deep:true}),{fakeState:d}}),{state:a,...o}=t;return Be({rulesDef:e,...o,state:r.fakeState})}}else if(Ue(e))return be({rulesDef:e,...t})}function Ie({initialState:e,options:t,scopeRules:n,state:r,customRules:a,shortcuts:o,schemaErrors:d,schemaMode:p=false,onValidate:$}){let m=Xe(),h=ref();return Ge(r,n)?h.value=Be({rootRules:n,rulesDef:n,state:r,customMessages:a?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaErrors:d,rootSchemaErrors:d,schemaMode:p,onValidate:$}):Ue(n)&&(h.value=be({rulesDef:n,state:r,customMessages:a?.(),storage:m,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:o,fieldName:"root",path:"",schemaMode:p,schemaErrors:d,onValidate:$})),getCurrentScope()&&onScopeDispose(()=>{h.value?.$unwatch();}),reactive({regle:h})}function st(e,t,n){let r={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function a(o,d,p){let $=isRef(d)?d:computed(typeof d=="function"?d:()=>d),m={...r,...p},h=isRef(o)?o:ref(o),F=ref(W(h.value)?{...N(h.value)}:N(h.value));return {r$:Ie({scopeRules:$,state:h,options:m,initialState:F,customRules:e,shortcuts:n}).regle}}return a}var He=st();function it(){function e(t,n){return n}return e}var ut=it();function Wt({rules:e,modifiers:t,shortcuts:n}){let r=st(e,t,n),a=it();return {useRegle:r,inferRules:a}}function je(e,t){let n=t??false,r=computed({get:()=>n?Object.values(e).map(u=>u.$value):Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$value])),set:u=>{n||typeof u=="object"&&Object.entries(u).forEach(([s,E])=>e[s].$value=E);}}),a=computed({get:()=>Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$silentValue])),set:u=>{typeof u=="object"&&Object.entries(u).forEach(([s,E])=>e[s].$silentValue=E);}}),o=computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,E])=>E?.$dirty)}),d=computed(()=>Object.entries(e).some(([u,s])=>s?.$anyDirty)),p=computed(()=>Object.entries(e).some(([u,s])=>s?.$invalid)),$=computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,E])=>E?.$correct||E.$anyDirty&&!E.$invalid)}),m=computed(()=>Object.entries(e).some(([u,s])=>s?.$error)),h=computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,E])=>E?.$ready)}),F=computed(()=>Object.entries(e).some(([u,s])=>s?.$pending)),I=computed(()=>n?Object.entries(e).map(([u,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$errors]))),M=computed(()=>n?Object.entries(e).map(([u,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([u,s])=>[u,s.$silentErrors]))),w=computed(()=>{let u=Object.entries(e);return !!u.length&&u.every(([s,E])=>E?.$edited)}),O=computed(()=>Object.entries(e).some(([u,s])=>s?.$anyEdited)),l=computed(()=>n?Object.values(e):e);function S(u){Object.values(e).forEach(s=>{s.$reset(u);});}function T(){Object.values(e).forEach(u=>{u.$touch();});}function D(u=true){return Object.values(e).map(s=>s.$extractDirtyFields(u))}function c(){Object.values(e).forEach(u=>{u.$clearExternalErrors();});}async function b(){try{let u=r.value;return {valid:(await Promise.allSettled(Object.values(e).map(A=>A.$validate()))).every(A=>A.status==="fulfilled"?A.value.valid===!0:!1),data:u}}catch{return {valid:false,data:r.value}}}return reactive({...!n&&{$silentValue:a},$errors:I,$silentErrors:M,$instances:l,$value:r,$dirty:o,$anyDirty:d,$invalid:p,$correct:$,$error:m,$pending:F,$ready:h,$edited:w,$anyEdited:O,$reset:S,$touch:T,$validate:b,$extractDirtyFields:D,$clearExternalErrors:c})}function Bt(e){function t(n){let r=computed(()=>toValue(n));d();let a=ref(p(e.value)),o=reactive({r$:a});function d(){r.value&&!e.value[r.value]&&(e.value[r.value]={});}watch(r,d),watch(e,$=>{a.value=p($);},{deep:true});function p($){if(r.value){let m=$[r.value]??{};return je(m,true)}else return je($["~~global"]??{},true)}return {r$:o.r$}}return {useCollectScope:t}}function qt(e,t){let n=t??He;return {useScopedRegle:(a,o,d)=>{let{namespace:p,...$}=d??{},m=computed(()=>toValue(p)),h=ref(`${Object.keys(e.value).length+1}-${$e()}`),F=computed(()=>`instance-${h.value}`),{r$:I}=n(a,o,$);w(),It(M),watch(m,(O,l)=>{M(l),w();}),getCurrentInstance()&&onMounted(()=>{let O=getCurrentInstance();typeof window<"u"&&O?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(O?.proxy?.$el?.parentElement)&&M();});function M(O){let l=O??m.value;l?e.value[l]&&delete e.value[l][F.value]:e.value["~~global"][F.value]&&delete e.value["~~global"][F.value];}function w(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][F.value]=I):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][F.value]=I);}return {r$:I,dispose:M,register:w}}}}function ze(e){let n=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):Ct(()=>ref({"~~global":{}})))(),{useScopedRegle:r}=qt(n,e?.customUseRegle),{useCollectScope:a}=Bt(n);return {useScopedRegle:r,useCollectScope:a}}var {useCollectScope:ct,useScopedRegle:ft}=ze();
|
|
2
2
|
export{Je as InternalRuleType,Qe as createRule,ze as createScopedUseRegle,Wt as defineRegleConfig,tt as flatErrors,ut as inferRules,je as mergeRegles,re as unwrapRuleParameters,ct as useCollectScope,He as useRegle,Ie as useRootStorage,ft as useScopedRegle};
|
package/dist/regle-core.mjs
CHANGED
|
@@ -1140,10 +1140,8 @@ function createReactiveFieldStatus({
|
|
|
1140
1140
|
storage.setDirtyEntry(path, false);
|
|
1141
1141
|
if (!fromParent) {
|
|
1142
1142
|
if (options2?.toInitialState) {
|
|
1143
|
-
$unwatch();
|
|
1144
1143
|
state.value = cloneDeep(initialState);
|
|
1145
1144
|
} else if (options2?.toState) {
|
|
1146
|
-
$unwatch();
|
|
1147
1145
|
let newInitialState;
|
|
1148
1146
|
if (typeof options2?.toState === "function") {
|
|
1149
1147
|
newInitialState = options2?.toState();
|
|
@@ -1169,9 +1167,6 @@ function createReactiveFieldStatus({
|
|
|
1169
1167
|
return rule.$parse();
|
|
1170
1168
|
});
|
|
1171
1169
|
}
|
|
1172
|
-
if (!fromParent) {
|
|
1173
|
-
createReactiveRulesResult();
|
|
1174
|
-
}
|
|
1175
1170
|
}
|
|
1176
1171
|
function $touch(runCommit = true, withConditions = false) {
|
|
1177
1172
|
if (!scopeState.$dirty.value) {
|