@regle/core 1.2.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/regle-core.d.ts +5 -1
- package/dist/regle-core.min.mjs +2 -2
- package/dist/regle-core.mjs +9 -22
- package/package.json +1 -1
package/dist/regle-core.d.ts
CHANGED
|
@@ -1183,8 +1183,12 @@ interface RegleBehaviourOptions {
|
|
|
1183
1183
|
rewardEarly?: boolean | undefined;
|
|
1184
1184
|
/**
|
|
1185
1185
|
* Define whether the external errors should be cleared when updating a field
|
|
1186
|
+
*
|
|
1187
|
+
* Default to `false` if `$silent` is set to `true`
|
|
1188
|
+
|
|
1186
1189
|
* @default true
|
|
1187
1190
|
*
|
|
1191
|
+
*
|
|
1188
1192
|
*/
|
|
1189
1193
|
clearExternalErrorsOnChange?: boolean | undefined;
|
|
1190
1194
|
}
|
|
@@ -1937,7 +1941,7 @@ type NormalizeUnion<TUnion> = RetrieveUnionUnknownValues<NonNullable<UnionToTupl
|
|
|
1937
1941
|
/**
|
|
1938
1942
|
* Combine all members of a union type, merging types for each key, and keeping loose types
|
|
1939
1943
|
*/
|
|
1940
|
-
type JoinDiscriminatedUnions<TUnion extends unknown> = isRecordLiteral<TUnion> extends true ? Prettify<Partial<UnionToIntersection$1<RemoveCommonKey<UnionToTuple$1<TUnion
|
|
1944
|
+
type JoinDiscriminatedUnions<TUnion extends unknown> = isRecordLiteral<TUnion> extends true ? Prettify<Partial<UnionToIntersection$1<RemoveCommonKey<UnionToTuple$1<NonNullable<TUnion>>, keyof NormalizeUnion<NonNullable<TUnion>>>[number]>> & Pick<NormalizeUnion<NonNullable<TUnion>>, keyof NormalizeUnion<NonNullable<TUnion>>>> : TUnion;
|
|
1941
1945
|
type LazyJoinDiscriminatedUnions<TUnion extends unknown> = isRecordLiteral<TUnion> extends true ? Prettify<Partial<UnionToIntersection$1<RemoveCommonKey<UnionToTuple$1<TUnion>, keyof NonNullable<TUnion>>[number]>> & Pick<NonNullable<TUnion>, keyof NonNullable<TUnion>>> : TUnion;
|
|
1942
1946
|
type EnumLike = {
|
|
1943
1947
|
[k: string]: string | number;
|
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,watchEffect,triggerRef,toRef,unref,version,nextTick,markRaw}from'vue';function Ot(e){return e?.constructor.name=="File"||e?.constructor.name=="FileList"}function re(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):Ot(e)?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 wt=Symbol("regle-rule");function fr(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 W(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>W(n)))),r=="Map"&&(t=new Map([...e].map(n=>[W(n[0]),W(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,fr(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=W(e[n]);}return t}function A(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function je(e,...t){for(var r=[].slice.call(arguments),n,a=r.length;n=r[a-1],a--;)if(!n||typeof n!="object"&&typeof n!="function")throw new Error("expected object, got "+n);for(var l=r[0],u=r.slice(1),c=u.length,a=0;a<c;a++){var g=u[a];for(var p in g)l[p]=g[p];}return l}function tt(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 We(e,t,r){let n,a=(...l)=>new Promise(u=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...l])).then(u);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a}function Be(e,t,r=false,n=true){if(e===t)return true;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return false;var a,l,u;if(Array.isArray(e)&&Array.isArray(t)){if(a=e.length,a!=t.length)return false;if(n||!n&&r){for(l=a;l--!==0;)if(!Be(e[l],t[l],r,false))return false}return true}if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(u=Object.keys(e),a=u.length,a!==Object.keys(t).length)return false;for(l=a;l--!==0;)if(!Object.prototype.hasOwnProperty.call(t,u[l]))return false;for(l=a;l--!==0;){var c=u[l];return !(A(e)&&A(t)&&(n||!n&&r)&&!Be(e[c],t[c],r,false))}return true}return e!==e&&t!==t}var rt={Inline:"__inline",Async:"__async"};function Pt(e,t){return e.some(r=>r[t])}function At(e,t){return e.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[])}function ne(e){try{return e.map(t=>toValue(t))}catch{return []}}function Mt(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function jt(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(u=>u.trim()).filter(u=>u.length>0).length:0}function nt(e,...t){let{validator:r,type:n}=e,a=n===rt.Async||r.constructor.name==="AsyncFunction";return markRaw({...{validator(c,...g){return e.validator(c,...ne(g.length?g:t))},message(c){return typeof e.message=="function"?e.message({...c,$params:ne(c?.$params?.length?c.$params:t)}):e.message},active(c){return typeof e.active=="function"?e.active({...c,$params:ne(c?.$params?.length?c.$params:t)}):e.active??true},tooltip(c){return typeof e.tooltip=="function"?e.tooltip({...c,$params:ne(c?.$params?.length?c.$params:t)}):e.tooltip??[]},exec(c){let g=e.validator(c,...ne(t)),p;return g instanceof Promise?g.then(d=>(p=d,typeof p=="object"&&"$valid"in p?p.$valid:typeof p=="boolean"?p:false)):(p=g,typeof p=="object"&&"$valid"in p?p.$valid:typeof p=="boolean"?p: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:Mt(t),_brand:wt})}function at(e){if(typeof e.validator=="function"){let r=nt(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(jt(e.validator)>1){let a=function(...l){return nt(e,...l)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.tooltip=r.tooltip,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._tooltip=r.tooltip,a._type=e.type,a._message_pacthed=false,a._tooltip_pacthed=false,a._async=n,a}else return r}throw new Error("[createRule] validator must be a function")}function lt(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),a=shallowRef(new Map),l=shallowRef(new Map);function u(y){let b=t.value.get(y);if(b)return b;{let x=ref({});return t.value.set(y,x),x}}function c(y){let b=r.value.get(y);if(b)return b;{let x=ref([]);return r.value.set(y,x),x}}function g(y,b,x){l.value.set(`${y}-${b}`,x);}function p(y,b){return l.value.get(`${y}-${b}`)}function d(y,b){y&&b!=null&&l.value.delete(`${y}-${b}`);}function L(y,b){n.value.set(y,b);}function h(y){return n.value.get(y)??false}function P(y,b){e.value.set(y,b);}function C(y,b){let x=e.value.get(y);return x?w(b,x)?{valid:true}:{valid:false}:void 0}function w(y,b){let x=Object.keys(b),T=Object.keys(y);return T.length!==x.length||!T.every(i=>x.includes(i))?false:T.every(i=>{let s=y[i],v=b[i];return !v||!s||typeof s=="function"||typeof v=="function"||typeof s=="number"||typeof s=="boolean"?false:s._params?s._params?.every((H,z)=>{if(typeof v=="number"||typeof v=="boolean")return true;{let J=ne(v._params),K=ne(s._params);return J?.[z]===K?.[z]}}):true})}function o(y){let b=a.value.get(y);if(b)return b;{let x=ref(false),T=ref(true),Q=ref({}),i=ref(false);return a.value.set(y,{$pending:x,$valid:T,$metadata:Q,$validating:i}),{$pending:x,$valid:T,$metadata:Q,$validating:i}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),l.value.clear();}),{addRuleDeclEntry:P,setDirtyEntry:L,checkRuleDeclEntry:C,getDirtyState:h,trySetRuleStatusRef:o,getFieldsEntry:u,getCollectionsEntry:c,getArrayStatus:p,addArrayStatus:g,deleteArrayStatus:d,arrayStatusStorage:l}}function Le(e){return A(e.value)}function ot(e,t,r){let n=effectScope(),a;return e instanceof Function?a=n.run(()=>e(t,r??0)):a=e,{scope:n,unwrapped:a}}var Fe={LessThan:-1,EqualTo:0,GreaterThan:1};function Tr(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let l=Number(r[a]),u=Number(n[a]);if(l>u)return Fe.GreaterThan;if(u>l)return Fe.LessThan;if(!isNaN(l)&&isNaN(u))return Fe.GreaterThan;if(isNaN(l)&&!isNaN(u))return Fe.LessThan}return Fe.EqualTo}var He=Tr(version,"3.5.0")!==-1;function hr(){return Math.floor(Math.random()*Date.now()).toString()}function xe(){return typeof window>"u"?hr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Ft(e){return getCurrentScope()?(onScopeDispose(e),true):false}function Vt(e){let t=false,r,n=effectScope(true);return (...a)=>(t||(r=n.run(()=>e(...a)),t=true),r)}function ze(e,t){return Le(e)||A(t.value)&&!re(t.value)&&!Object.entries(t.value).some(([r,n])=>ve(n)||typeof n=="function")}function _t(e,t,r=false){return !!e.value&&A(e.value)&&"$each"in e.value||r&&Array.isArray(t.value)&&t.value.some(A)||Array.isArray(t.value)&&t.value.some(A)}function Ke(e){return !!e.value&&A(e.value)}function ve(e){return A(e)&&"_validator"in e}function Ve(e){return typeof e.value=="function"?"_validator"in e.value:true}function Ut(e){return A(e)&&"$fields"in e}function st(e){return !!e&&"$rules"in e}function it({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Nt({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function kt(e){return A(e)&&"$each"in e}function ut(e,t){let{includePath:r=false}=t??{};if(Array.isArray(e)&&e.every(n=>!A(n)))return e;if(kt(e)){let n=r?e.$self?.map(l=>({error:l,path:""}))??[]:e.$self??[],a=e.$each?.map(l=>qe(l,r))??[];return n?.concat(a.flat())}else return Object.entries(e).map(([n,a])=>qe(a,r,[n])).flat()}function qe(e,t=false,r){let n=t&&!r?[]:r;if(Array.isArray(e)&&e.every(a=>!A(a)))return t?e.map(a=>({error:a,path:n?.join(".")??""})):e;if(kt(e)){let a=n?.length?e.$self?.map(u=>({error:u,path:n.join(".")}))??[]:e.$self??[],l=e.$each?.map((u,c)=>qe(u,t,n?.concat(c.toString())))??[];return a?.concat(l.flat())}else return Object.entries(e).map(([a,l])=>qe(l,t,n?.concat(a))).flat()}function Gt({customMessages:e,rule:t,ruleKey:r,state:n,path:a,storage:l,$debounce:u,modifiers:c}){let g=effectScope(),p={},d,L=ref(false),h=ref(false),{$pending:P,$valid:C,$metadata:w,$validating:o}=l.trySetRuleStatusRef(`${a}.${r}`);function y(){g=effectScope(),p=g.run(()=>{let v=ref(false),H=ref(false),z=ref(true),J=ref(false),K=ref(false),oe=computed(()=>({$value:n.value,$error:H.value,$dirty:v.value,$pending:J.value,$correct:K.value,$invalid:z.value,$rule:{$valid:C.value,$invalid:!C.value,$pending:P.value},$params:f.value,...w.value})),E=computed(()=>Ve(t)?typeof t.value.active=="function"?t.value.active(oe.value):!!t.value.active:true);function G(S){let M="",R=e?e[r]?.[S]:void 0;if(R&&(typeof R=="function"?M=R(oe.value):M=R),Ve(t)){let k=`_${S}_patched`;R&&!t.value[k]||(typeof t.value[S]=="function"?M=t.value[S](oe.value):M=t.value[S]??"");}return M}let ge=computed(()=>{let S=G("message");return re(S)&&(S="This field is not valid"),S}),Re=computed(()=>G("tooltip")),D=computed(()=>Ve(t)&&t.value.type?t.value.type:r),_=computed(()=>Ve(t)?t.value.validator:t.value),f=computed(()=>typeof t.value=="function"?[]:ne(t.value._params??[])),m=computed(()=>`${a}.${D.value}`);return {$active:E,$message:ge,$type:D,$validator:_,$params:f,$path:m,$tooltip:Re,$fieldCorrect:K,$fieldError:H,$fieldDirty:v,$fieldPending:J,$fieldInvalid:z}}),d=watch(p?.$params,()=>{(!c.$silent.value||c.$rewardEarly.value&&p.$fieldError.value)&&Q();});}y();function b(){C.value=true,p.$fieldDirty.value&&(P.value=true);}async function x(){let v=false;try{let H=p.$validator.value;if(typeof H!="function")return console.error(`${a}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let z=H(n.value,...p.$params.value),J=n.value;b();let K;if(z instanceof Promise?K=await z:K=z,n.value!==J)return !0;if(typeof K=="boolean")v=K;else {let{$valid:oe,...E}=K;v=oe,w.value=E;}}catch{v=false;}finally{P.value=false;}return v}let T=We(x,u??200);async function Q(){try{o.value=!0;let v=!1;if(h.value=!0,ve(t.value)&&t.value._async)v=await T();else {let H=p.$validator.value,z=H(n.value,...p.$params.value);if(z 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(z!=null)if(typeof z=="boolean")v=z;else {let{$valid:J,...K}=z;v=J,w.value=K;}}return C.value=v,v}catch{return false}finally{o.value=false,h.value=false;}}function i(){C.value=true,w.value={},P.value=false,o.value=false,y();}function s(){d(),g.stop(),g=effectScope();}return reactive({...p,$pending:P,$valid:C,$metadata:w,$haveAsync:L,$maybePending:h,$validating:o,$parse:Q,$unwatch:s,$watch:y,$reset:i})}function Ce({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:l,options:u,externalErrors:c,schemaErrors:g,schemaMode:p,onUnwatch:d,$isArray:L,initialState:h,shortcuts:P,onValidate:C}){let w=effectScope(),o,y=[],b,x,T,Q,i,s=()=>{};function v(){let $=t.value,U=l.checkRuleDeclEntry(n,$);G.value=Object.fromEntries(Object.entries($).filter(([j])=>j.startsWith("$"))),J(),E.value=Object.fromEntries(Object.entries(t.value).filter(([j])=>!j.startsWith("$")).map(([j,te])=>{if(te){let ie=toRef(()=>te);return [j,Gt({modifiers:{$silent:o.$silent,$rewardEarly:o.$rewardEarly},customMessages:r,rule:ie,ruleKey:j,state:e,path:n,storage:l,$debounce:G.value.$debounce})]}return []}).filter(j=>!!j.length)),o.processShortcuts(),H(),U?.valid!=null&&(o.$dirty.value=l.getDirtyState(n),(o.$dirty.value&&!o.$silent.value||o.$rewardEarly.value&&o.$error.value)&&s()),l.addRuleDeclEntry(n,$);}function H(){s=o.$debounce.value?We(oe,o.$debounce.value??o.$haveAnyAsyncRule?100:0):oe;}function z(){E.value&&Object.entries(E.value).forEach(([$,U])=>{U.$unwatch();}),T(),i?.(),o.$dirty.value&&l.setDirtyEntry(n,o.$dirty.value),b?.(),x?.(),w.stop(),w=effectScope(),y.forEach($=>$.stop()),y=[],d?.(),Q?.();}function J(){E.value&&Object.entries(E.value).forEach(([$,U])=>{U.$watch();}),o=w.run(()=>{let $=ref(false),U=ref(false),j=computed(()=>$.value),te=computed(()=>G.value.$debounce),ie=computed(()=>G.value.$deepCompare!=null?G.value.$deepCompare:false),Ae=computed(()=>G.value.$lazy!=null?G.value.$lazy:unref(u.lazy)!=null?unref(u.lazy):false),ue=computed(()=>G.value.$rewardEarly!=null?G.value.$rewardEarly:unref(u.rewardEarly)!=null?unref(u.rewardEarly):false),I=computed(()=>G.value.$clearExternalErrorsOnChange!=null?G.value.$clearExternalErrorsOnChange:unref(u.clearExternalErrorsOnChange)!=null?unref(u.clearExternalErrorsOnChange):true),F=computed(()=>ue.value?true:G.value.$silent!=null?G.value.$silent:unref(u.silent)!=null?unref(u.silent):false),O=computed(()=>G.value.$autoDirty!=null?G.value.$autoDirty:unref(u.autoDirty)!=null?unref(u.autoDirty):true),V=computed(()=>Object.entries(E.value).some(([ce,ee])=>ee.$validating)),Me=computed({get:()=>e.value,set(ce){b(),e.value=ce,K();}}),ke=computed(()=>Te.value&&!Se.value&&$.value),$t=computed(()=>it({field:{$rules:E.value,$error:ke.value,$externalErrors:c?.value,$schemaErrors:g?.value}})),St=computed(()=>it({field:{$rules:E.value,$error:ke.value,$externalErrors:c?.value,$schemaErrors:g?.value},silent:true})),et=computed(()=>$.value?h.value instanceof Date&&e.value instanceof Date?tt(h.value).getDate()!==tt(e.value).getDate():h.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(h.value)?!Be(e.value,h.value,G.value.$deepCompare):h.value!==e.value:false),Tt=computed(()=>et.value),ht=computed(()=>Nt({field:{$rules:E.value}})),bt=computed(()=>(F.value||j.value)&&!(Te.value||Se.value)),Se=computed(()=>U.value||!ue.value?Object.entries(E.value).some(([ce,ee])=>ee.$pending):false),Te=computed(()=>c?.value?.length||g?.value?.length?true:Ge.value?false:!ue.value||ue.value&&U.value?Object.entries(E.value).some(([ce,ee])=>!(ee.$valid&&!ee.$maybePending)):false),xt=computed(()=>a),Ge=computed(()=>!!(re(E.value)&&!p)),Et=computed(()=>c?.value?.length||Ge.value?false:$.value&&!re(e.value)&&!V.value&&!Se.value?p?!g?.value?.length:Object.values(E.value).some(ee=>ee.$active)?Object.values(E.value).filter(ee=>ee.$active).every(ee=>ee.$valid):false:false),ur=computed(()=>Object.entries(E.value).some(([ce,ee])=>ee.$haveAsync));function cr(){P?.fields&&Object.entries(P.fields).forEach(([ce,ee])=>{let Dt=effectScope();Ct[ce]=Dt.run(()=>{let It=ref();return watchEffect(()=>{It.value=ee(reactive({$dirty:$,$externalErrors:c?.value??[],$value:e,$silentValue:Me,$rules:E,$error:ke,$pending:Se,$invalid:Te,$correct:Et,$errors:$t,$ready:bt,$silentErrors:St,$anyDirty:j,$tooltips:ht,$name:xt,$inactive:Ge,$edited:et,$anyEdited:Tt}));}),It}),y.push(Dt);});}let Ct={};return watch(Te,ce=>{ce||(U.value=false);}),{$error:ke,$pending:Se,$invalid:Te,$correct:Et,$debounce:te,$deepCompare:ie,$lazy:Ae,$errors:$t,$ready:bt,$silentErrors:St,$rewardEarly:ue,$autoDirty:O,$silent:F,$clearExternalErrorsOnChange:I,$anyDirty:j,$edited:et,$anyEdited:Tt,$name:xt,$haveAnyAsyncRule:ur,$shortcuts:Ct,$validating:V,$tooltips:ht,$dirty:$,triggerPunishment:U,processShortcuts:cr,$silentValue:Me,$inactive:Ge}}),K(),T=watch(o.$dirty,$=>{l.setDirtyEntry(n,$),Object.values(E.value).forEach(U=>{U.$fieldDirty=$;});}),i=watch([o.$error,o.$correct,o.$invalid,o.$pending],()=>{Object.values(E.value).forEach($=>{$.$fieldError=o.$error.value,$.$fieldInvalid=o.$invalid.value,$.$fieldPending=o.$pending.value,$.$fieldCorrect=o.$correct.value;});}),x=watch(o.$invalid,$=>{o.$rewardEarly.value&&!$&&(o.triggerPunishment.value=false);}),Q=watch(o.$haveAnyAsyncRule,H);}function K(){b=watch(e,()=>{o.$autoDirty.value&&!o.$silent.value&&(o.$dirty.value||(o.$dirty.value=true)),t.value instanceof Function&&v(),(!o.$silent.value||o.$rewardEarly.value&&o.$error.value)&&s(),o.$rewardEarly.value!==true&&o.$clearExternalErrorsOnChange.value&&f();},{deep:L?true:He?1:true});}function oe(){Object.values(E.value).forEach($=>{$.$parse();});}let E=ref({}),G=ref({});v();function ge($,U){if(f(),o.$dirty.value=false,o.triggerPunishment.value=false,l.setDirtyEntry(n,false),!U)if($?.toInitialState)e.value=W(h.value);else if($?.toState){let j;typeof $?.toState=="function"?j=$?.toState():j=$?.toState,h.value=W(j),e.value=W(j);}else h.value=A(e.value)?W(e.value):Array.isArray(e.value)?[...e.value]:e.value;$?.clearExternalErrors&&f(),U||Object.entries(E.value).forEach(([j,te])=>{te.$reset();}),!o.$lazy.value&&!o.$silent.value&&!U&&Object.values(E.value).forEach(j=>j.$parse());}function Re($=true,U=false){o.$dirty.value||(o.$dirty.value=true),U&&$?(!o.$silent.value||o.$rewardEarly.value&&o.$error.value)&&s():$&&s();}async function D(){try{if(p)return C?(Re(!1),C()):{valid:!1,data:e.value};let $=e.value;if(o.triggerPunishment.value=!0,!o.$dirty.value)o.$dirty.value=!0;else if(!o.$silent.value&&o.$dirty.value&&!o.$pending.value)return {valid:!o.$error.value,data:$};return p?{valid:!g?.value?.length,data:$}:re(E.value)?{valid:!0,data:$}:{valid:(await Promise.allSettled(Object.entries(E.value).map(([te,ie])=>ie.$parse()))).every(te=>te.status==="fulfilled"?te.value===!0:!1),data:$}}catch{return {valid:false,data:e.value}}}function _($=true){return o.$dirty.value?e.value:$?{_null:true}:null}function f(){c?.value?.length&&(c.value=[]);}!o.$lazy.value&&!o.$dirty.value&&!o.$silent.value&&s();let{$shortcuts:m,$validating:S,$autoDirty:M,$rewardEarly:R,$clearExternalErrorsOnChange:k,$haveAnyAsyncRule:X,$debounce:Y,$lazy:Z,triggerPunishment:pe,...se}=o;return reactive({...se,$externalErrors:c,$value:e,$rules:E,...m,$reset:ge,$touch:Re,$validate:D,$unwatch:z,$watch:J,$extractDirtyFields:_,$clearExternalErrors:f})}function Rt({$id:e,path:t,index:r,options:n,storage:a,stateValue:l,customMessages:u,rules:c,externalErrors:g,schemaErrors:p,initialState:d,shortcuts:L,fieldName:h,schemaMode:P}){let C=c.$key?c.$key:xe(),w=`${t}.${String(C)}`;typeof l.value=="object"&&l.value!=null&&(l.value.$id?w=`${t}.${l.value.$id}`:Object.defineProperties(l.value,{$id:{value:C,enumerable:false,configurable:false,writable:false}}));let o=toRef(g?.value??[],r),y=computed(()=>p?.value?.[r]),b=De({state:l,rulesDef:toRef(()=>c),customMessages:u,path:w,storage:a,options:n,externalErrors:o,schemaErrors:y,initialState:d,shortcuts:L,fieldName:h,schemaMode:P});if(b){let x=l.value?.$id;b.$id=x??String(C),a.addArrayStatus(e,b.$id,b);}return b}function zt({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:u,schemaErrors:c,schemaMode:g,initialState:p,shortcuts:d,fieldName:L}){let h=effectScope(),P,C=effectScope(),w,o=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let y=ref(),b=ref(e.value),x=ref({}),T,Q,i=ref({}),s=a.getCollectionsEntry(n);w=C.run(()=>({isPrimitiveArray:computed(()=>e.value?.length?Array.isArray(e.value)&&e.value.length?e.value.every(m=>typeof m!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(m=>ve(m)||typeof m=="function"):false:false)})),v(),J();function v(){x.value=Object.fromEntries(Object.entries(t.value).filter(([f])=>f.startsWith("$"))),typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(y.value=xe(),Object.defineProperties(e.value,{$id:{value:y.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(y.value=e.value.$id)),b.value=i.value.$value,Array.isArray(e.value)&&!w.isPrimitiveArray.value?s.value=e.value.filter(f=>typeof f=="object").map((f,m)=>{let{scope:S,unwrapped:M}=ot(t.value.$each,toRef(()=>f),m);S&&o.push(S);let R=toRef(p.value??[],m),k=toRef(u?.value??{},"$each"),X=computed(()=>c?.value?.$each),Y=Rt({$id:y.value,path:n,customMessages:r,rules:M??{},stateValue:toRef(()=>f),index:m,options:l,storage:a,externalErrors:k,schemaErrors:X,initialState:R,shortcuts:d,fieldName:L,schemaMode:g});return Y||null}).filter(f=>!!f):s.value=[],i.value=Ce({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:toRef(u?.value??{},"$self"),schemaErrors:computed(()=>c?.value?.$self),$isArray:true,initialState:p,shortcuts:d,fieldName:L,schemaMode:g});}function H(){if(Array.isArray(e.value)&&!w.isPrimitiveArray.value){let f=W(s.value);s.value=e.value.filter(m=>typeof m=="object").map((m,S)=>{let M=toRef(()=>m);if(m.$id&&s.value.find(R=>R.$id===m.$id)){let R=a.getArrayStatus(y.value,m.$id);return R?(R.$value=M,R):null}else {let{scope:R,unwrapped:k}=ot(t.value.$each,M,S);R&&o.push(R);let X=toRef(u?.value??{},"$each"),Y=computed(()=>c?.value?.$each??[]),Z=Rt({$id:y.value,path:n,customMessages:r,rules:k??{},stateValue:M,index:S,options:l,storage:a,externalErrors:X,schemaErrors:Y,initialState:toRef(p.value??[],S),shortcuts:d,fieldName:L,schemaMode:g});return Z||null}}).filter(m=>!!m),f.filter(m=>!e.value?.find(S=>m.$id===S.$id)).forEach((m,S)=>{a.deleteArrayStatus(y.value,S.toString());});}else s.value=[];}function z(){T=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?v():H();},{deep:He?1:true,flush:"pre"}),Q=watch(e,()=>{P.$autoDirty.value&&!P.$silent.value&&oe(false,true);},{flush:"pre"});}function J(){z(),h=effectScope(),P=h.run(()=>{let f=computed({get:()=>e.value,set(I){T?.(),Q?.(),e.value=I,z();}}),m=computed(()=>i.value.$dirty&&(!s.value.length||s.value.every(I=>I.$dirty))),S=computed(()=>i.value.$anyDirty||s.value.some(I=>I.$anyDirty)),M=computed(()=>i.value.$invalid||s.value.some(I=>I.$invalid)),R=computed(()=>(re(i.value.$rules)?true:i.value.$correct)&&(!s.value.length||s.value.every(I=>I.$correct||I.$anyDirty&&!I.$invalid))),k=computed(()=>i.value.$error||s.value.some(I=>I.$error)),X=computed(()=>!(M.value||Y.value)),Y=computed(()=>i.value.$pending||s.value.some(I=>I.$pending)),Z=computed(()=>!!s.value.length&&s.value.every(I=>I.$edited)),pe=computed(()=>i.value.$anyEdited||s.value.some(I=>I.$anyEdited)),se=computed(()=>({$self:i.value.$errors,$each:s.value.map(I=>I.$errors)})),$=computed(()=>({$self:i.value.$silentErrors,$each:s.value.map(I=>I.$silentErrors)})),U=computed(()=>x.value.$rewardEarly!=null?x.value.$rewardEarly:unref(l.rewardEarly)!=null?unref(l.rewardEarly):false),j=computed(()=>U.value?true:x.value.$silent!=null?x.value.$silent:unref(l.silent)!=null?unref(l.silent):false),te=computed(()=>x.value.$autoDirty!=null?x.value.$autoDirty:unref(l.autoDirty)!=null?unref(l.autoDirty):true),ie=computed(()=>L);function Ae(){d?.collections&&Object.entries(d?.collections).forEach(([I,F])=>{let O=effectScope();ue[I]=O.run(()=>{let V=ref();return watchEffect(()=>{V.value=F(reactive({$dirty:m,$error:k,$silentValue:f,$pending:Y,$invalid:M,$correct:R,$errors:se,$ready:X,$silentErrors:$,$anyDirty:S,$name:ie,$each:s,$self:i,$value:e,$edited:Z,$anyEdited:pe}));}),V}),o.push(O);});}let ue={};return Ae(),{$dirty:m,$anyDirty:S,$invalid:M,$correct:R,$error:k,$pending:Y,$errors:se,$silentErrors:$,$ready:X,$name:ie,$shortcuts:ue,$silentValue:f,$edited:Z,$anyEdited:pe,$rewardEarly:U,$silent:j,$autoDirty:te}}),w.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function K(){T?.(),i.value&&i.value.$unwatch(),s.value&&s.value.forEach(f=>{"$dirty"in f&&f.$unwatch();}),h.stop(),h=effectScope(),C.stop(),C=effectScope(true),o.forEach(f=>f.stop()),o=[];}function oe(f=true,m=false){i.value.$touch(f,m),s.value.forEach(S=>{S.$touch(f,m);});}function E(f,m){if(K(),!m)if(f?.toInitialState)e.value=W(p.value);else if(f?.toState){let S;typeof f?.toState=="function"?S=f?.toState():S=f?.toState,p.value=W(S),e.value=W(S);}else p.value=W(e.value);f?.clearExternalErrors&&ge(),i.value.$reset(f,m),s.value.forEach(S=>{S.$reset(f,true);}),m||v();}async function G(){let f=e.value;try{return {valid:(await Promise.allSettled([i.value.$validate(),...s.value.map(M=>M.$validate())])).every(M=>M.status==="fulfilled"?M.value.valid===!0:!1),data:f}}catch{return {valid:false,data:f}}}function ge(){i.value.$clearExternalErrors(),s.value.forEach(f=>{f.$clearExternalErrors();});}function Re(f=true){let m=s.value.map(S=>{if(Ut(S))return S.$extractDirtyFields(f)});return f&&m.every(S=>re(S))&&(m=[]),m}let{$shortcuts:D,..._}=P;return reactive({$self:i,..._,...D,$each:s,$value:e,$validate:G,$unwatch:K,$watch:J,$touch:oe,$reset:E,$extractDirtyFields:Re,$clearExternalErrors:ge})}function Je({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:a,schemaErrors:l,rootSchemaErrors:u,validationGroups:c,initialState:g,fieldName:p,...d}){let L=effectScope(),h,P=[],C=null,w=null,o=null,y=null;async function x(D=true){let _=Object.entries(e.value),f=Object.fromEntries(_.filter(([R,k])=>!!k).map(([R,k])=>{if(k){let X=toRef(t.value??{},R),Y=toRef(()=>k),Z=toRef(a?.value??{},R),pe=computed(()=>l?.value?.[R]),se=toRef(g?.value??{},R);return [R,De({state:X,rulesDef:Y,path:r?`${r}.${R}`:R,externalErrors:Z,schemaErrors:pe,initialState:se,fieldName:R,...d})]}return []})),m=Object.fromEntries(Object.entries(unref(a)??{}).filter(([R,k])=>!(R in e.value)&&!!k).map(([R])=>{let k=toRef(t.value??{},R),X=toRef(a?.value??{},R),Y=computed(()=>l?.value?.[R]),Z=toRef(g?.value??{},R);return [R,De({state:k,rulesDef:computed(()=>({})),path:r?`${r}.${R}`:R,externalErrors:X,schemaErrors:Y,initialState:Z,fieldName:R,...d})]})),S=Object.fromEntries(Object.entries(unref(l)??{}).map(([R])=>{let k=toRef(t.value??{},R),X=toRef(a?.value??{},R),Y=computed(()=>l?.value?.[R]),Z=toRef(g?.value??{},R);return [R,De({state:k,rulesDef:computed(()=>({})),path:r?`${r}.${R}`:R,externalErrors:X,schemaErrors:Y,initialState:Z,fieldName:R,...d})]})),M=Object.fromEntries(Object.entries(t.value??{}).filter(([R])=>!(R in e.value)&&!(R in(m??{}))&&!(R in(S??{}))).map(([R])=>{let k=toRef(t.value??{},R),X=toRef(a?.value??{},R),Y=computed(()=>l?.value?.[R]),Z=toRef(g?.value??{},R);return [R,De({state:k,rulesDef:computed(()=>({})),path:r?`${r}.${R}`:R,externalErrors:X,schemaErrors:Y,initialState:Z,fieldName:R,...d})]}));T.value={...f,...m,...S,...M},D&&s();}let T=d.storage.getFieldsEntry(r);x();function Q(){a&&(o=watch(a,()=>{v(),x();},{deep:true}));}function i(){y=watch(t,()=>{v(),x(),h.$autoDirty.value&&!h.$silent.value&&J(false,true);});}function s(){n&&(C?.(),C=watch(n,()=>{v(),x();},{deep:true,flush:"pre"}),Q()),u&&(w?.(),w=watch(u,()=>{v(),x();},{deep:true,flush:"post"})),i(),h=L.run(()=>{let D=computed({get:()=>t.value,set(F){v(),t.value=F,x(),h.$autoDirty.value&&!h.$silent.value&&J(false,true);}}),_=computed({get:()=>t.value,set(F){v(),t.value=F,x();}}),f=computed(()=>!!Object.entries(T.value).length&&Object.entries(T.value).every(([F,O])=>O?.$dirty)),m=computed(()=>Object.entries(T.value).some(([F,O])=>O?.$anyDirty)),S=computed(()=>!!Object.entries(T.value).length&&Object.entries(T.value).some(([F,O])=>O?.$invalid)),M=computed(()=>{let F=Object.entries(T.value).filter(([O,V])=>st(V)?!V.$inactive:true);return F.length?F.every(([O,V])=>d.schemaMode?V.$correct:st(V)?"required"in V.$rules&&V.$rules.required.$active?V?.$correct:!V.$invalid&&!V.$pending:V?.$correct):false}),R=computed(()=>!!Object.entries(T.value).length&&Object.entries(T.value).some(([F,O])=>O?.$error)),k=computed(()=>unref(d.options.rewardEarly)!=null?unref(d.options.rewardEarly):false),X=computed(()=>unref(d.options.silent)!=null?unref(d.options.silent):!!k.value),Y=computed(()=>unref(d.options.autoDirty)!=null?unref(d.options.autoDirty):true),Z=computed(()=>(X.value||m.value)&&!(S.value||se.value)),pe=ref(false),se=computed(()=>pe.value||Object.entries(T.value).some(([F,O])=>O?.$pending)),$=computed(()=>Object.fromEntries(Object.entries(T.value).map(([F,O])=>[F,O?.$errors]))),U=computed(()=>Object.fromEntries(Object.entries(T.value).map(([F,O])=>[F,O?.$silentErrors]))),j=computed(()=>!!Object.entries(T.value).length&&Object.entries(T.value).every(([F,O])=>O?.$edited)),te=computed(()=>Object.entries(T.value).some(([F,O])=>O?.$anyEdited)),ie=computed(()=>p);function Ae(){d.shortcuts?.nested&&Object.entries(d.shortcuts.nested).forEach(([F,O])=>{let V=effectScope();I[F]=V.run(()=>{let Me=ref();return watchEffect(()=>{Me.value=O(reactive({$dirty:f,$value:t,$silentValue:_,$error:R,$pending:se,$invalid:S,$correct:M,$ready:Z,$anyDirty:m,$name:ie,$silentErrors:U,$errors:$,$fields:T,$edited:j,$anyEdited:te}));}),Me}),P.push(V);});}let ue=computed({get:()=>c?Object.fromEntries(Object.entries(c?.(T.value)??{}).map(([F,O])=>O.length?[F,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(V=>[V,Pt(O,V)])),...Object.fromEntries(["$errors","$silentErrors"].map(V=>[V,At(O,V)]))}]:[])):{},set(){}}),I={};return Ae(),{$dirty:f,$anyDirty:m,$invalid:S,$correct:M,$error:R,$pending:se,$errors:$,$silentErrors:U,$ready:Z,$name:ie,$shortcuts:I,$groups:ue,$silentValue:_,$edited:j,$anyEdited:te,$localPending:pe,$autoDirty:Y,$silent:X,$value:D}});}function v(){C?.(),o?.(),y?.(),w?.(),P=[],h={},T.value&&Object.entries(T.value).forEach(([D,_])=>{_.$unwatch();});}function H(){Object.entries(T.value).forEach(([D,_])=>{_.$clearExternalErrors();});}function z(D,_){if(o?.(),v(),!_)if(D?.toInitialState)t.value=W({...g.value??{}});else if(D?.toState){let f;typeof D?.toState=="function"?f=D?.toState():f=D?.toState,g.value=W(f),t.value=W(f);}else g.value=W(t.value);Object.values(T.value).forEach(f=>{f.$reset(D,true);}),D?.clearExternalErrors&&H(),Q(),_||x();}function J(D=true,_=false){Object.values(T.value).forEach(f=>{f.$touch(D,_);});}function K(D){return D.filter(([_,f])=>A(f)?!(f&&typeof f=="object"&&"_null"in f)&&!re(f):Array.isArray(f)?f.length:true)}function oe(D=true){let _=Object.entries(T.value).map(([f,m])=>[f,m.$extractDirtyFields(D)]);return D&&(_=K(_)),Object.fromEntries(_)}async function E(){try{if(d.schemaMode)return d.onValidate?(J(!1),h.$localPending.value=!0,d.onValidate()):{valid:!1,data:t.value};{let D=t.value;return {valid:(await Promise.allSettled(Object.values(T.value).map(m=>m.$validate()))).every(m=>m.status==="fulfilled"?m.value.valid===!0:!1),data:D}}}catch{return {valid:false,data:t.value}}finally{h.$localPending.value=false;}}let{$shortcuts:G,$localPending:ge,...Re}=h;return reactive({...Re,...G,$fields:T,$reset:z,$touch:J,$validate:E,$unwatch:v,$watch:s,$clearExternalErrors:H,$extractDirtyFields:oe})}function De({rulesDef:e,...t}){if(_t(e,t.state,t.schemaMode))return zt({rulesDef:e,...t});if(ze(t.state,e)){if(Le(t.state))return Je({rulesDef:e,...t});{let n=effectScope().run(()=>{let u=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,c=>{u.value=c;},{deep:true}),watch(u,c=>{t.state.value=c;},{deep:true}),{fakeState:u}}),{state:a,...l}=t;return Je({rulesDef:e,...l,state:n.fakeState})}}else if(Ke(e))return Ce({rulesDef:e,...t})}function Pe({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:l,schemaErrors:u,schemaMode:c=false,onValidate:g}){let p=lt(),d=ref();return ze(n,r)?d.value=Je({rootRules:r,rulesDef:r,state:n,customMessages:a?.(),storage:p,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:l,fieldName:"root",path:"",schemaErrors:u,rootSchemaErrors:u,schemaMode:c,onValidate:g}):Ke(r)&&(d.value=Ce({rulesDef:r,state:n,customMessages:a?.(),storage:p,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:l,fieldName:"root",path:"",schemaMode:c,schemaErrors:u,onValidate:g})),getCurrentScope()&&onScopeDispose(()=>{d.value?.$unwatch();}),reactive({regle:d})}function Ye(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,silent:t?.silent,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function a(l,u,c){let g=isRef(u)?u:typeof u=="function"?void 0:computed(()=>u),p={...n,...c},d=isRef(l)?l:ref(l),L=shallowRef(g??{});typeof u=="function"&&watchEffect(()=>{L.value=u(d),triggerRef(L);});let h=ref(A(d.value)?{...W(d.value)}:W(d.value));return {r$:Pe({scopeRules:L,state:d,options:p,initialState:h,customRules:e,shortcuts:r}).regle}}return a}var Qe=Ye();function Xe(){function e(t,r){return r}return e}var yt=Xe();function Yt({rules:e,modifiers:t,shortcuts:r}){let n=Ye(e,t,r);n.__config={rules:e,modifiers:t,shortcuts:r};let a=Xe();return {useRegle:n,inferRules:a}}function Qt(e,{rules:t,modifiers:r,shortcuts:n}){let a=e.__config??{},l=()=>({...a.rules?.(),...t?.()}),u=a.modifiers&&r?je(a.modifiers,r):r,c=a.shortcuts&&n?je(a.shortcuts,n):n,g=Ye(l,u,c);g.__config={rules:l,modifiers:u,shortcuts:c};let p=Xe();return {useRegle:g,inferRules:p}}function Ne(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(i=>i.$value):Object.fromEntries(Object.entries(e).map(([i,s])=>[i,s.$value])),set:i=>{r||typeof i=="object"&&Object.entries(i).forEach(([s,v])=>e[s].$value=v);}}),a=computed({get:()=>Object.fromEntries(Object.entries(e).map(([i,s])=>[i,s.$silentValue])),set:i=>{typeof i=="object"&&Object.entries(i).forEach(([s,v])=>e[s].$silentValue=v);}}),l=computed(()=>{let i=Object.entries(e);return !!i.length&&i.every(([s,v])=>v?.$dirty)}),u=computed(()=>Object.entries(e).some(([i,s])=>s?.$anyDirty)),c=computed(()=>Object.entries(e).some(([i,s])=>s?.$invalid)),g=computed(()=>{let i=Object.entries(e);return !!i.length&&i.every(([s,v])=>v?.$correct||v.$anyDirty&&!v.$invalid)}),p=computed(()=>Object.entries(e).some(([i,s])=>s?.$error)),d=computed(()=>{let i=Object.entries(e);return !!i.length&&i.every(([s,v])=>v?.$ready)}),L=computed(()=>Object.entries(e).some(([i,s])=>s?.$pending)),h=computed(()=>r?Object.entries(e).map(([i,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([i,s])=>[i,s.$errors]))),P=computed(()=>r?Object.entries(e).map(([i,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([i,s])=>[i,s.$silentErrors]))),C=computed(()=>{let i=Object.entries(e);return !!i.length&&i.every(([s,v])=>v?.$edited)}),w=computed(()=>Object.entries(e).some(([i,s])=>s?.$anyEdited)),o=computed(()=>r?Object.values(e):e);function y(i){Object.values(e).forEach(s=>{s.$reset(i);});}function b(){Object.values(e).forEach(i=>{i.$touch();});}function x(i=true){return Object.values(e).map(s=>s.$extractDirtyFields(i))}function T(){Object.values(e).forEach(i=>{i.$clearExternalErrors();});}async function Q(){try{let i=n.value;return {valid:(await Promise.allSettled(Object.values(e).map(H=>H.$validate()))).every(H=>H.status==="fulfilled"?H.value.valid===!0:!1),data:i}}catch{return {valid:false,data:n.value}}}return reactive({...!r&&{$silentValue:a},$errors:h,$silentErrors:P,$instances:o,$value:n,$dirty:l,$anyDirty:u,$invalid:c,$correct:g,$error:p,$pending:L,$ready:d,$edited:C,$anyEdited:w,$reset:y,$touch:b,$validate:Q,$extractDirtyFields:x,$clearExternalErrors:T})}function Zt(e,t){function r(n){let a=computed(()=>toValue(n));c();let l=ref(g(e.value)),u=reactive({r$:l});function c(){a.value&&!e.value[a.value]&&(e.value[a.value]={});}watch(a,c),watch(e,p=>{l.value=g(p);},{deep:true});function g(p){if(a.value){let d=p[a.value]??{};return Ne(d,!t.asRecord)}else return Ne(p["~~global"]??{},!t.asRecord)}return {r$:u.r$}}return {useCollectScope:r}}function rr(e,t){let r=t??Qe;return {useScopedRegle:(a,l,u)=>{let{namespace:c,scopeKey:g,...p}=u??{};r.__config??={};let d=computed(()=>toValue(c)),L=ref(`${Object.keys(e.value).length+1}-${xe()}`),h=computed(()=>u?.scopeKey??`instance-${L.value}`),{r$:P}=r(a,l,p);w(),Ft(C),watch(d,(o,y)=>{C(y),w();}),getCurrentInstance()&&onMounted(()=>{let o=getCurrentInstance();typeof window<"u"&&o?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(o?.proxy?.$el?.parentElement)&&C();});function C(o){let y=o??d.value;y?e.value[y]&&delete e.value[y][h.value]:e.value["~~global"][h.value]&&delete e.value["~~global"][h.value];}function w(){d.value?(e.value[d.value]||(e.value[d.value]={}),e.value[d.value][h.value]=P):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][h.value]=P);}return {r$:P,dispose:C,register:w}}}}function Ze(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):Vt(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=rr(r,e?.customUseRegle),{useCollectScope:a}=Zt(r,{asRecord:e?.asRecord});return {useScopedRegle:n,useCollectScope:a}}var {useCollectScope:mt,useScopedRegle:gt}=Ze();function lr(e,t,r){let n=computed(()=>toValue(e)[t]);return computed(()=>{let l=r.find(u=>{if(u[t]&&"literal"in u[t]){let c=u[t].literal;if(ve(c))return unref(c._params?.[0])===n.value}});if(l)return l;{let u=r.find(c=>A(c[t])&&!Object.keys(c[t]).some(g=>g==="literal"));return u||{}}})}function vt(e,t,r){return A(e[t])&&"$value"in e[t]&&e[t]?.$value===r}function or(e,t,r){let n=isRef(e)?toRef(e.value,"$fields"):toRef(e,"$fields"),a=ref();return watch(n,async()=>{await nextTick(),vt(n.value,t,r)?a.value=n.value:a.value=void 0;},{immediate:true,flush:"pre"}),a}function sr(e){return e}function ir(e,t){return r=>je({...e},t(r))}
|
|
2
|
-
export{rt as InternalRuleType,at as createRule,Ze as createScopedUseRegle,
|
|
1
|
+
import {effectScope,computed,toValue,ref,watch,getCurrentInstance,onMounted,reactive,getCurrentScope,onScopeDispose,isRef,shallowRef,watchEffect,triggerRef,toRef,unref,version,nextTick,markRaw}from'vue';function It(e){return e?.constructor.name=="File"||e?.constructor.name=="FileList"}function oe(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):It(e)?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 Ot=Symbol("regle-rule");function cr(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 G(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>G(n)))),r=="Map"&&(t=new Map([...e].map(n=>[G(n[0]),G(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,cr(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=G(e[n]);}return t}function M(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function je(e,...t){for(var r=[].slice.call(arguments),n,a=r.length;n=r[a-1],a--;)if(!n||typeof n!="object"&&typeof n!="function")throw new Error("expected object, got "+n);for(var l=r[0],i=r.slice(1),c=i.length,a=0;a<c;a++){var g=i[a];for(var p in g)l[p]=g[p];}return l}function tt(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 Ge(e,t,r){let n,a=(...l)=>new Promise(i=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...l])).then(i);},t);});return a.cancel=()=>{clearTimeout(n),n=void 0;},a}function We(e,t,r=false,n=true){if(e===t)return true;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return false;var a,l,i;if(Array.isArray(e)&&Array.isArray(t)){if(a=e.length,a!=t.length)return false;if(n||!n&&r){for(l=a;l--!==0;)if(!We(e[l],t[l],r,false))return false}return true}if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(i=Object.keys(e),a=i.length,a!==Object.keys(t).length)return false;for(l=a;l--!==0;)if(!Object.prototype.hasOwnProperty.call(t,i[l]))return false;for(l=a;l--!==0;){var c=i[l];return !(M(e)&&M(t)&&(n||!n&&r)&&!We(e[c],t[c],r,false))}return true}return e!==e&&t!==t}var rt={Inline:"__inline",Async:"__async"};function wt(e,t){return e.some(r=>r[t])}function Pt(e,t){return e.reduce((r,n)=>{let a=n[t]||[];return r.concat(a)},[])}function re(e){try{return e.map(t=>toValue(t))}catch{return []}}function At(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function Mt(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(i=>i.trim()).filter(i=>i.length>0).length:0}function nt(e,...t){let{validator:r,type:n}=e,a=n===rt.Async||r.constructor.name==="AsyncFunction";return markRaw({...{validator(c,...g){return e.validator(c,...re(g.length?g:t))},message(c){return typeof e.message=="function"?e.message({...c,$params:re(c?.$params?.length?c.$params:t)}):e.message},active(c){return typeof e.active=="function"?e.active({...c,$params:re(c?.$params?.length?c.$params:t)}):e.active??true},tooltip(c){return typeof e.tooltip=="function"?e.tooltip({...c,$params:re(c?.$params?.length?c.$params:t)}):e.tooltip??[]},exec(c){let g=e.validator(c,...re(t)),p;return g instanceof Promise?g.then(d=>(p=d,typeof p=="object"&&"$valid"in p?p.$valid:typeof p=="boolean"?p:false)):(p=g,typeof p=="object"&&"$valid"in p?p.$valid:typeof p=="boolean"?p: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:At(t),_brand:Ot})}function at(e){if(typeof e.validator=="function"){let r=nt(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(Mt(e.validator)>1){let a=function(...l){return nt(e,...l)};return a.validator=r.validator,a.message=r.message,a.active=r.active,a.tooltip=r.tooltip,a.type=r.type,a.exec=r.exec,a._validator=r.validator,a._message=r.message,a._active=r.active,a._tooltip=r.tooltip,a._type=e.type,a._message_pacthed=false,a._tooltip_pacthed=false,a._async=n,a}else return r}throw new Error("[createRule] validator must be a function")}function lt(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),a=shallowRef(new Map),l=shallowRef(new Map);function i(y){let h=t.value.get(y);if(h)return h;{let x=ref({});return t.value.set(y,x),x}}function c(y){let h=r.value.get(y);if(h)return h;{let x=ref([]);return r.value.set(y,x),x}}function g(y,h,x){l.value.set(`${y}-${h}`,x);}function p(y,h){return l.value.get(`${y}-${h}`)}function d(y,h){y&&h!=null&&l.value.delete(`${y}-${h}`);}function B(y,h){n.value.set(y,h);}function b(y){return n.value.get(y)??false}function P(y,h){e.value.set(y,h);}function I(y,h){let x=e.value.get(y);return x?w(h,x)?{valid:true}:{valid:false}:void 0}function w(y,h){let x=Object.keys(h),T=Object.keys(y);return T.length!==x.length||!T.every(s=>x.includes(s))?false:T.every(s=>{let o=y[s],$=h[s];return !$||!o||typeof o=="function"||typeof $=="function"||typeof o=="number"||typeof o=="boolean"?false:o._params?o._params?.every((L,H)=>{if(typeof $=="number"||typeof $=="boolean")return true;{let J=re($._params),K=re(o._params);return J?.[H]===K?.[H]}}):true})}function u(y){let h=a.value.get(y);if(h)return h;{let x=ref(false),T=ref(true),Q=ref({}),s=ref(false);return a.value.set(y,{$pending:x,$valid:T,$metadata:Q,$validating:s}),{$pending:x,$valid:T,$metadata:Q,$validating:s}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),a.value.clear(),l.value.clear();}),{addRuleDeclEntry:P,setDirtyEntry:B,checkRuleDeclEntry:I,getDirtyState:b,trySetRuleStatusRef:u,getFieldsEntry:i,getCollectionsEntry:c,getArrayStatus:p,addArrayStatus:g,deleteArrayStatus:d,arrayStatusStorage:l}}function Be(e){return M(e.value)}function ot(e,t,r){let n=effectScope(),a;return e instanceof Function?a=n.run(()=>e(t,r??0)):a=e,{scope:n,unwrapped:a}}var Fe={LessThan:-1,EqualTo:0,GreaterThan:1};function Sr(e,t){let r=String(e).split("."),n=String(t).split(".");for(let a=0;a<Math.min(r.length,n.length);a++){let l=Number(r[a]),i=Number(n[a]);if(l>i)return Fe.GreaterThan;if(i>l)return Fe.LessThan;if(!isNaN(l)&&isNaN(i))return Fe.GreaterThan;if(isNaN(l)&&!isNaN(i))return Fe.LessThan}return Fe.EqualTo}var Le=Sr(version,"3.5.0")!==-1;function Tr(){return Math.floor(Math.random()*Date.now()).toString()}function Ee(){return typeof window>"u"?Tr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function jt(e){return getCurrentScope()?(onScopeDispose(e),true):false}function Ft(e){let t=false,r,n=effectScope(true);return (...a)=>(t||(r=n.run(()=>e(...a)),t=true),r)}function He(e,t){return Be(e)||M(t.value)&&!oe(t.value)&&!Object.entries(t.value).some(([r,n])=>$e(n)||typeof n=="function")}function Vt(e,t,r=false){return !!e.value&&M(e.value)&&"$each"in e.value||r&&Array.isArray(t.value)&&t.value.some(M)||Array.isArray(t.value)&&t.value.some(M)}function ze(e){return !!e.value&&M(e.value)}function $e(e){return M(e)&&"_validator"in e}function Ve(e){return typeof e.value=="function"?"_validator"in e.value:true}function _t(e){return M(e)&&"$fields"in e}function st(e){return !!e&&"$rules"in e}function it({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Ut({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function Nt(e){return M(e)&&"$each"in e}function ut(e,t){let{includePath:r=false}=t??{};if(Array.isArray(e)&&e.every(n=>!M(n)))return e;if(Nt(e)){let n=r?e.$self?.map(l=>({error:l,path:""}))??[]:e.$self??[],a=e.$each?.map(l=>Ke(l,r))??[];return n?.concat(a.flat())}else return Object.entries(e).map(([n,a])=>Ke(a,r,[n])).flat()}function Ke(e,t=false,r){let n=t&&!r?[]:r;if(Array.isArray(e)&&e.every(a=>!M(a)))return t?e.map(a=>({error:a,path:n?.join(".")??""})):e;if(Nt(e)){let a=n?.length?e.$self?.map(i=>({error:i,path:n.join(".")}))??[]:e.$self??[],l=e.$each?.map((i,c)=>Ke(i,t,n?.concat(c.toString())))??[];return a?.concat(l.flat())}else return Object.entries(e).map(([a,l])=>Ke(l,t,n?.concat(a))).flat()}function kt({customMessages:e,rule:t,ruleKey:r,state:n,path:a,storage:l,$debounce:i,modifiers:c}){let g=effectScope(),p={},d,B=ref(false),b=ref(false),{$pending:P,$valid:I,$metadata:w,$validating:u}=l.trySetRuleStatusRef(`${a}.${r}`);function y(){g=effectScope(),p=g.run(()=>{let $=ref(false),L=ref(false),H=ref(true),J=ref(false),K=ref(false),le=computed(()=>({$value:n.value,$error:L.value,$dirty:$.value,$pending:J.value,$correct:K.value,$invalid:H.value,$rule:{$valid:I.value,$invalid:!I.value,$pending:P.value},$params:f.value,...w.value})),C=computed(()=>Ve(t)?typeof t.value.active=="function"?t.value.active(le.value):!!t.value.active:true);function k(S){let j="",R=e?e[r]?.[S]:void 0;if(R&&(typeof R=="function"?j=R(le.value):j=R),Ve(t)){let N=`_${S}_patched`;R&&!t.value[N]||(typeof t.value[S]=="function"?j=t.value[S](le.value):j=t.value[S]??"");}return j}let me=computed(()=>{let S=k("message");return oe(S)&&(S="This field is not valid"),S}),Re=computed(()=>k("tooltip")),O=computed(()=>Ve(t)&&t.value.type?t.value.type:r),V=computed(()=>Ve(t)?t.value.validator:t.value),f=computed(()=>typeof t.value=="function"?[]:re(t.value._params??[])),m=computed(()=>`${a}.${O.value}`);return {$active:C,$message:me,$type:O,$validator:V,$params:f,$path:m,$tooltip:Re,$fieldCorrect:K,$fieldError:L,$fieldDirty:$,$fieldPending:J,$fieldInvalid:H}}),d=watch(p?.$params,()=>{(!c.$silent.value||c.$rewardEarly.value&&p.$fieldError.value)&&Q();});}y();function h(){I.value=true,p.$fieldDirty.value&&(P.value=true);}async function x(){let $=false;try{let L=p.$validator.value;if(typeof L!="function")return console.error(`${a}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let H=L(n.value,...p.$params.value),J=n.value;h();let K;if(H instanceof Promise?K=await H:K=H,n.value!==J)return !0;if(typeof K=="boolean")$=K;else {let{$valid:le,...C}=K;$=le,w.value=C;}}catch{$=false;}finally{P.value=false;}return $}let T=Ge(x,i??200);async function Q(){try{u.value=!0;let $=!1;if(b.value=!0,$e(t.value)&&t.value._async)$=await T();else {let L=p.$validator.value,H=L(n.value,...p.$params.value);if(H 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(H!=null)if(typeof H=="boolean")$=H;else {let{$valid:J,...K}=H;$=J,w.value=K;}}return I.value=$,$}catch{return false}finally{u.value=false,b.value=false;}}function s(){I.value=true,w.value={},P.value=false,u.value=false,y();}function o(){d(),g.stop(),g=effectScope();}return reactive({...p,$pending:P,$valid:I,$metadata:w,$haveAsync:B,$maybePending:b,$validating:u,$parse:Q,$unwatch:o,$watch:y,$reset:s})}function Ce({state:e,rulesDef:t,customMessages:r,path:n,fieldName:a,storage:l,options:i,externalErrors:c,schemaErrors:g,schemaMode:p,onUnwatch:d,$isArray:B,initialState:b,shortcuts:P,onValidate:I}){let w=effectScope(),u,y=[],h,T,Q,s,o=()=>{};function $(){let v=t.value,z=l.checkRuleDeclEntry(n,v);k.value=Object.fromEntries(Object.entries(v).filter(([A])=>A.startsWith("$"))),J(),C.value=Object.fromEntries(Object.entries(t.value).filter(([A])=>!A.startsWith("$")).map(([A,ee])=>{if(ee){let se=toRef(()=>ee);return [A,kt({modifiers:{$silent:u.$silent,$rewardEarly:u.$rewardEarly},customMessages:r,rule:se,ruleKey:A,state:e,path:n,storage:l,$debounce:k.value.$debounce})]}return []}).filter(A=>!!A.length)),u.processShortcuts(),L(),z?.valid!=null&&(u.$dirty.value=l.getDirtyState(n),(u.$dirty.value&&!u.$silent.value||u.$rewardEarly.value&&u.$error.value)&&o()),l.addRuleDeclEntry(n,v);}function L(){o=u.$debounce.value?Ge(le,u.$debounce.value??u.$haveAnyAsyncRule?100:0):le;}function H(){C.value&&Object.entries(C.value).forEach(([v,z])=>{z.$unwatch();}),T(),s?.(),u.$dirty.value&&l.setDirtyEntry(n,u.$dirty.value),h?.(),w.stop(),w=effectScope(),y.forEach(v=>v.stop()),y=[],d?.(),Q?.();}function J(){C.value&&Object.entries(C.value).forEach(([v,z])=>{z.$watch();}),u=w.run(()=>{let v=ref(false),z=ref(false),A=computed(()=>v.value),ee=computed(()=>k.value.$debounce),se=computed(()=>k.value.$deepCompare!=null?k.value.$deepCompare:false),ge=computed(()=>k.value.$lazy!=null?k.value.$lazy:unref(i.lazy)!=null?unref(i.lazy):false),fe=computed(()=>k.value.$rewardEarly!=null?k.value.$rewardEarly:unref(i.rewardEarly)!=null?unref(i.rewardEarly):false),Te=computed(()=>k.value.$clearExternalErrorsOnChange!=null?k.value.$clearExternalErrorsOnChange:unref(i.clearExternalErrorsOnChange)!=null?unref(i.clearExternalErrorsOnChange):!E.value),E=computed(()=>fe.value?true:k.value.$silent!=null?k.value.$silent:unref(i.silent)!=null?unref(i.silent):false),_=computed(()=>k.value.$autoDirty!=null?k.value.$autoDirty:unref(i.autoDirty)!=null?unref(i.autoDirty):true),D=computed(()=>Object.entries(C.value).some(([ie,te])=>te.$validating)),F=computed({get:()=>e.value,set(ie){h(),e.value=ie,K();}}),ve=computed(()=>Ae.value&&!be.value&&v.value),$t=computed(()=>it({field:{$rules:C.value,$error:ve.value,$externalErrors:c?.value,$schemaErrors:g?.value}})),St=computed(()=>it({field:{$rules:C.value,$error:ve.value,$externalErrors:c?.value,$schemaErrors:g?.value},silent:true})),et=computed(()=>v.value?b.value instanceof Date&&e.value instanceof Date?tt(b.value).getDate()!==tt(e.value).getDate():b.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(b.value)?!We(e.value,b.value,k.value.$deepCompare):b.value!==e.value:false),Tt=computed(()=>et.value),bt=computed(()=>Ut({field:{$rules:C.value}})),ht=computed(()=>(E.value||A.value)&&!(Ae.value||be.value)),be=computed(()=>z.value||!fe.value?Object.entries(C.value).some(([ie,te])=>te.$pending):false),Ae=computed(()=>c?.value?.length||g?.value?.length?true:ke.value?false:!fe.value||fe.value?Object.entries(C.value).some(([te,Me])=>!(Me.$valid&&!Me.$maybePending)):false),xt=computed(()=>a),ke=computed(()=>Object.keys(t.value).filter(([ie])=>!ie.startsWith("$")).length===0&&!p),Et=computed(()=>c?.value?.length||ke.value?false:v.value&&!oe(e.value)&&!D.value&&!be.value?p?!g?.value?.length:Object.values(C.value).some(te=>te.$active)?Object.values(C.value).filter(te=>te.$active).every(te=>te.$valid):false:false),ir=computed(()=>Object.entries(C.value).some(([ie,te])=>te.$haveAsync));function ur(){P?.fields&&Object.entries(P.fields).forEach(([ie,te])=>{let Me=effectScope();Ct[ie]=Me.run(()=>{let Dt=ref();return watchEffect(()=>{Dt.value=te(reactive({$dirty:v,$externalErrors:c?.value??[],$value:e,$silentValue:F,$rules:C,$error:ve,$pending:be,$invalid:Ae,$correct:Et,$errors:$t,$ready:ht,$silentErrors:St,$anyDirty:A,$tooltips:bt,$name:xt,$inactive:ke,$edited:et,$anyEdited:Tt}));}),Dt}),y.push(Me);});}let Ct={};return {$error:ve,$pending:be,$invalid:Ae,$correct:Et,$debounce:ee,$deepCompare:se,$lazy:ge,$errors:$t,$ready:ht,$silentErrors:St,$rewardEarly:fe,$autoDirty:_,$silent:E,$clearExternalErrorsOnChange:Te,$anyDirty:A,$edited:et,$anyEdited:Tt,$name:xt,$haveAnyAsyncRule:ir,$shortcuts:Ct,$validating:D,$tooltips:bt,$dirty:v,processShortcuts:ur,$silentValue:F,$inactive:ke}}),K(),T=watch(u.$dirty,v=>{l.setDirtyEntry(n,v),Object.values(C.value).forEach(z=>{z.$fieldDirty=v;});}),s=watch([u.$error,u.$correct,u.$invalid,u.$pending],()=>{Object.values(C.value).forEach(v=>{v.$fieldError=u.$error.value,v.$fieldInvalid=u.$invalid.value,v.$fieldPending=u.$pending.value,v.$fieldCorrect=u.$correct.value;});}),Q=watch(u.$haveAnyAsyncRule,L);}function K(){h=watch(e,()=>{u.$autoDirty.value&&!u.$silent.value&&(u.$dirty.value||(u.$dirty.value=true)),t.value instanceof Function&&$(),(!u.$silent.value||u.$rewardEarly.value&&u.$error.value)&&o(),u.$clearExternalErrorsOnChange.value&&f();},{deep:B?true:Le?1:true});}function le(){Object.values(C.value).forEach(v=>{v.$parse();});}let C=ref({}),k=ref({});$();function me(v,z){if(f(),u.$dirty.value=false,l.setDirtyEntry(n,false),!z)if(v?.toInitialState)e.value=G(b.value);else if(v?.toState){let A;typeof v?.toState=="function"?A=v?.toState():A=v?.toState,b.value=G(A),e.value=G(A);}else b.value=M(e.value)?G(e.value):Array.isArray(e.value)?[...e.value]:e.value;v?.clearExternalErrors&&f(),z||Object.entries(C.value).forEach(([A,ee])=>{ee.$reset();}),!u.$lazy.value&&!u.$silent.value&&!z&&Object.values(C.value).forEach(A=>A.$parse());}function Re(v=true,z=false){u.$dirty.value||(u.$dirty.value=true),z&&v?(!u.$silent.value||u.$rewardEarly.value&&u.$error.value)&&o():v&&o();}async function O(){try{if(p)return I?(Re(!1),I()):{valid:!1,data:e.value};let v=e.value;if(!u.$dirty.value)u.$dirty.value=!0;else if(!u.$silent.value&&u.$dirty.value&&!u.$pending.value)return {valid:!u.$error.value,data:v};return p?{valid:!g?.value?.length,data:v}:oe(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 V(v=true){return u.$dirty.value?e.value:v?{_null:true}:null}function f(){c?.value?.length&&(c.value=[]);}!u.$lazy.value&&!u.$dirty.value&&!u.$silent.value&&o();let{$shortcuts:m,$validating:S,$autoDirty:j,$rewardEarly:R,$clearExternalErrorsOnChange:N,$haveAnyAsyncRule:X,$debounce:Y,$lazy:Z,...ce}=u;return reactive({...ce,$externalErrors:c,$value:e,$rules:C,...m,$reset:me,$touch:Re,$validate:O,$unwatch:H,$watch:J,$extractDirtyFields:V,$clearExternalErrors:f})}function Rt({$id:e,path:t,index:r,options:n,storage:a,stateValue:l,customMessages:i,rules:c,externalErrors:g,schemaErrors:p,initialState:d,shortcuts:B,fieldName:b,schemaMode:P}){let I=c.$key?c.$key:Ee(),w=`${t}.${String(I)}`;typeof l.value=="object"&&l.value!=null&&(l.value.$id?w=`${t}.${l.value.$id}`:Object.defineProperties(l.value,{$id:{value:I,enumerable:false,configurable:false,writable:false}}));let u=toRef(g?.value??[],r),y=computed(()=>p?.value?.[r]),h=De({state:l,rulesDef:toRef(()=>c),customMessages:i,path:w,storage:a,options:n,externalErrors:u,schemaErrors:y,initialState:d,shortcuts:B,fieldName:b,schemaMode:P});if(h){let x=l.value?.$id;h.$id=x??String(I),a.addArrayStatus(e,h.$id,h);}return h}function Ht({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:i,schemaErrors:c,schemaMode:g,initialState:p,shortcuts:d,fieldName:B}){let b=effectScope(),P,I=effectScope(),w,u=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let y=ref(),h=ref(e.value),x=ref({}),T,Q,s=ref({}),o=a.getCollectionsEntry(n);w=I.run(()=>({isPrimitiveArray:computed(()=>e.value?.length?Array.isArray(e.value)&&e.value.length?e.value.every(m=>typeof m!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(m=>$e(m)||typeof m=="function"):false:false)})),$(),J();function $(){x.value=Object.fromEntries(Object.entries(t.value).filter(([f])=>f.startsWith("$"))),typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(y.value=Ee(),Object.defineProperties(e.value,{$id:{value:y.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(y.value=e.value.$id)),h.value=s.value.$value,Array.isArray(e.value)&&!w.isPrimitiveArray.value?o.value=e.value.filter(f=>typeof f=="object").map((f,m)=>{let{scope:S,unwrapped:j}=ot(t.value.$each,toRef(()=>f),m);S&&u.push(S);let R=toRef(p.value??[],m),N=toRef(i?.value??{},"$each"),X=computed(()=>c?.value?.$each),Y=Rt({$id:y.value,path:n,customMessages:r,rules:j??{},stateValue:toRef(()=>f),index:m,options:l,storage:a,externalErrors:N,schemaErrors:X,initialState:R,shortcuts:d,fieldName:B,schemaMode:g});return Y||null}).filter(f=>!!f):o.value=[],s.value=Ce({state:e,rulesDef:t,customMessages:r,path:n,storage:a,options:l,externalErrors:toRef(i?.value??{},"$self"),schemaErrors:computed(()=>c?.value?.$self),$isArray:true,initialState:p,shortcuts:d,fieldName:B,schemaMode:g});}function L(){if(Array.isArray(e.value)&&!w.isPrimitiveArray.value){let f=G(o.value);o.value=e.value.filter(m=>typeof m=="object").map((m,S)=>{let j=toRef(()=>m);if(m.$id&&o.value.find(R=>R.$id===m.$id)){let R=a.getArrayStatus(y.value,m.$id);return R?(R.$value=j,R):null}else {let{scope:R,unwrapped:N}=ot(t.value.$each,j,S);R&&u.push(R);let X=toRef(i?.value??{},"$each"),Y=computed(()=>c?.value?.$each??[]),Z=Rt({$id:y.value,path:n,customMessages:r,rules:N??{},stateValue:j,index:S,options:l,storage:a,externalErrors:X,schemaErrors:Y,initialState:toRef(p.value??[],S),shortcuts:d,fieldName:B,schemaMode:g});return Z||null}}).filter(m=>!!m),f.filter(m=>!e.value?.find(S=>m.$id===S.$id)).forEach((m,S)=>{a.deleteArrayStatus(y.value,S.toString());});}else o.value=[];}function H(){T=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?$():L();},{deep:Le?1:true,flush:"pre"}),Q=watch(e,()=>{P.$autoDirty.value&&!P.$silent.value&&le(false,true);},{flush:"pre"});}function J(){H(),b=effectScope(),P=b.run(()=>{let f=computed({get:()=>e.value,set(E){T?.(),Q?.(),e.value=E,H();}}),m=computed(()=>s.value.$dirty&&(!o.value.length||o.value.every(E=>E.$dirty))),S=computed(()=>s.value.$anyDirty||o.value.some(E=>E.$anyDirty)),j=computed(()=>s.value.$invalid||o.value.some(E=>E.$invalid)),R=computed(()=>(oe(s.value.$rules)?true:s.value.$correct)&&(!o.value.length||o.value.every(E=>E.$correct||E.$anyDirty&&!E.$invalid))),N=computed(()=>s.value.$error||o.value.some(E=>E.$error)),X=computed(()=>!(j.value||Y.value)),Y=computed(()=>s.value.$pending||o.value.some(E=>E.$pending)),Z=computed(()=>!!o.value.length&&o.value.every(E=>E.$edited)),ce=computed(()=>s.value.$anyEdited||o.value.some(E=>E.$anyEdited)),v=computed(()=>({$self:s.value.$errors,$each:o.value.map(E=>E.$errors)})),z=computed(()=>({$self:s.value.$silentErrors,$each:o.value.map(E=>E.$silentErrors)})),A=computed(()=>x.value.$rewardEarly!=null?x.value.$rewardEarly:unref(l.rewardEarly)!=null?unref(l.rewardEarly):false),ee=computed(()=>A.value?true:x.value.$silent!=null?x.value.$silent:unref(l.silent)!=null?unref(l.silent):false),se=computed(()=>x.value.$autoDirty!=null?x.value.$autoDirty:unref(l.autoDirty)!=null?unref(l.autoDirty):true),ge=computed(()=>B);function fe(){d?.collections&&Object.entries(d?.collections).forEach(([E,_])=>{let D=effectScope();Te[E]=D.run(()=>{let F=ref();return watchEffect(()=>{F.value=_(reactive({$dirty:m,$error:N,$silentValue:f,$pending:Y,$invalid:j,$correct:R,$errors:v,$ready:X,$silentErrors:z,$anyDirty:S,$name:ge,$each:o,$self:s,$value:e,$edited:Z,$anyEdited:ce}));}),F}),u.push(D);});}let Te={};return fe(),{$dirty:m,$anyDirty:S,$invalid:j,$correct:R,$error:N,$pending:Y,$errors:v,$silentErrors:z,$ready:X,$name:ge,$shortcuts:Te,$silentValue:f,$edited:Z,$anyEdited:ce,$rewardEarly:A,$silent:ee,$autoDirty:se}}),w.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function K(){T?.(),s.value&&s.value.$unwatch(),o.value&&o.value.forEach(f=>{"$dirty"in f&&f.$unwatch();}),b.stop(),b=effectScope(),I.stop(),I=effectScope(true),u.forEach(f=>f.stop()),u=[];}function le(f=true,m=false){s.value.$touch(f,m),o.value.forEach(S=>{S.$touch(f,m);});}function C(f,m){if(K(),!m)if(f?.toInitialState)e.value=G(p.value);else if(f?.toState){let S;typeof f?.toState=="function"?S=f?.toState():S=f?.toState,p.value=G(S),e.value=G(S);}else p.value=G(e.value);f?.clearExternalErrors&&me(),s.value.$reset(f,m),o.value.forEach(S=>{S.$reset(f,true);}),m||$();}async function k(){let f=e.value;try{return {valid:(await Promise.allSettled([s.value.$validate(),...o.value.map(j=>j.$validate())])).every(j=>j.status==="fulfilled"?j.value.valid===!0:!1),data:f}}catch{return {valid:false,data:f}}}function me(){s.value.$clearExternalErrors(),o.value.forEach(f=>{f.$clearExternalErrors();});}function Re(f=true){let m=o.value.map(S=>{if(_t(S))return S.$extractDirtyFields(f)});return f&&m.every(S=>oe(S))&&(m=[]),m}let{$shortcuts:O,...V}=P;return reactive({$self:s,...V,...O,$each:o,$value:e,$validate:k,$unwatch:K,$watch:J,$touch:le,$reset:C,$extractDirtyFields:Re,$clearExternalErrors:me})}function Je({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:a,schemaErrors:l,rootSchemaErrors:i,validationGroups:c,initialState:g,fieldName:p,...d}){let B=effectScope(),b,P=[],I=null,w=null,u=null,y=null;async function x(O=true){let V=Object.entries(e.value),f=Object.fromEntries(V.filter(([R,N])=>!!N).map(([R,N])=>{if(N){let X=toRef(t.value??{},R),Y=toRef(()=>N),Z=toRef(a?.value??{},R),ce=computed(()=>l?.value?.[R]),v=toRef(g?.value??{},R);return [R,De({state:X,rulesDef:Y,path:r?`${r}.${R}`:R,externalErrors:Z,schemaErrors:ce,initialState:v,fieldName:R,...d})]}return []})),m=Object.fromEntries(Object.entries(unref(a)??{}).filter(([R,N])=>!(R in e.value)&&!!N).map(([R])=>{let N=toRef(t.value??{},R),X=toRef(a?.value??{},R),Y=computed(()=>l?.value?.[R]),Z=toRef(g?.value??{},R);return [R,De({state:N,rulesDef:computed(()=>({})),path:r?`${r}.${R}`:R,externalErrors:X,schemaErrors:Y,initialState:Z,fieldName:R,...d})]})),S=Object.fromEntries(Object.entries(unref(l)??{}).map(([R])=>{let N=toRef(t.value??{},R),X=toRef(a?.value??{},R),Y=computed(()=>l?.value?.[R]),Z=toRef(g?.value??{},R);return [R,De({state:N,rulesDef:computed(()=>({})),path:r?`${r}.${R}`:R,externalErrors:X,schemaErrors:Y,initialState:Z,fieldName:R,...d})]})),j=Object.fromEntries(Object.entries(t.value??{}).filter(([R])=>!(R in e.value)&&!(R in(m??{}))&&!(R in(S??{}))).map(([R])=>{let N=toRef(t.value??{},R),X=toRef(a?.value??{},R),Y=computed(()=>l?.value?.[R]),Z=toRef(g?.value??{},R);return [R,De({state:N,rulesDef:computed(()=>({})),path:r?`${r}.${R}`:R,externalErrors:X,schemaErrors:Y,initialState:Z,fieldName:R,...d})]}));T.value={...f,...m,...S,...j},O&&o();}let T=d.storage.getFieldsEntry(r);x();function Q(){a&&(u=watch(a,()=>{$(),x();},{deep:true}));}function s(){y=watch(t,()=>{$(),x(),b.$autoDirty.value&&!b.$silent.value&&J(false,true);});}function o(){n&&(I?.(),I=watch(n,()=>{$(),x();},{deep:true,flush:"pre"}),Q()),i&&(w?.(),w=watch(i,()=>{$(),x();},{deep:true,flush:"post"})),s(),b=B.run(()=>{let O=computed({get:()=>t.value,set(_){$(),t.value=_,x(),b.$autoDirty.value&&!b.$silent.value&&J(false,true);}}),V=computed({get:()=>t.value,set(_){$(),t.value=_,x();}}),f=computed(()=>!!Object.entries(T.value).length&&Object.entries(T.value).every(([_,D])=>D?.$dirty)),m=computed(()=>Object.entries(T.value).some(([_,D])=>D?.$anyDirty)),S=computed(()=>!!Object.entries(T.value).length&&Object.entries(T.value).some(([_,D])=>D?.$invalid)),j=computed(()=>{let _=Object.entries(T.value).filter(([D,F])=>st(F)?!F.$inactive:true);return _.length?_.every(([D,F])=>d.schemaMode?F.$correct:st(F)?"required"in F.$rules&&F.$rules.required.$active?F?.$correct:!F.$invalid&&!F.$pending:F?.$correct):false}),R=computed(()=>!!Object.entries(T.value).length&&Object.entries(T.value).some(([_,D])=>D?.$error)),N=computed(()=>unref(d.options.rewardEarly)!=null?unref(d.options.rewardEarly):false),X=computed(()=>unref(d.options.silent)!=null?unref(d.options.silent):!!N.value),Y=computed(()=>unref(d.options.autoDirty)!=null?unref(d.options.autoDirty):true),Z=computed(()=>(X.value||m.value)&&!(S.value||v.value)),ce=ref(false),v=computed(()=>ce.value||Object.entries(T.value).some(([_,D])=>D?.$pending)),z=computed(()=>Object.fromEntries(Object.entries(T.value).map(([_,D])=>[_,D?.$errors]))),A=computed(()=>Object.fromEntries(Object.entries(T.value).map(([_,D])=>[_,D?.$silentErrors]))),ee=computed(()=>!!Object.entries(T.value).length&&Object.entries(T.value).every(([_,D])=>D?.$edited)),se=computed(()=>Object.entries(T.value).some(([_,D])=>D?.$anyEdited)),ge=computed(()=>p);function fe(){d.shortcuts?.nested&&Object.entries(d.shortcuts.nested).forEach(([_,D])=>{let F=effectScope();E[_]=F.run(()=>{let ve=ref();return watchEffect(()=>{ve.value=D(reactive({$dirty:f,$value:t,$silentValue:V,$error:R,$pending:v,$invalid:S,$correct:j,$ready:Z,$anyDirty:m,$name:ge,$silentErrors:A,$errors:z,$fields:T,$edited:ee,$anyEdited:se}));}),ve}),P.push(F);});}let Te=computed({get:()=>c?Object.fromEntries(Object.entries(c?.(T.value)??{}).map(([_,D])=>D.length?[_,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(F=>[F,wt(D,F)])),...Object.fromEntries(["$errors","$silentErrors"].map(F=>[F,Pt(D,F)]))}]:[])):{},set(){}}),E={};return fe(),{$dirty:f,$anyDirty:m,$invalid:S,$correct:j,$error:R,$pending:v,$errors:z,$silentErrors:A,$ready:Z,$name:ge,$shortcuts:E,$groups:Te,$silentValue:V,$edited:ee,$anyEdited:se,$localPending:ce,$autoDirty:Y,$silent:X,$value:O}});}function $(){I?.(),u?.(),y?.(),w?.(),P=[],b={},T.value&&Object.entries(T.value).forEach(([O,V])=>{V.$unwatch();});}function L(){Object.entries(T.value).forEach(([O,V])=>{V.$clearExternalErrors();});}function H(O,V){if(u?.(),$(),!V)if(O?.toInitialState)t.value=G({...g.value??{}});else if(O?.toState){let f;typeof O?.toState=="function"?f=O?.toState():f=O?.toState,g.value=G(f),t.value=G(f);}else g.value=G(t.value);Object.values(T.value).forEach(f=>{f.$reset(O,true);}),O?.clearExternalErrors&&L(),Q(),V||x();}function J(O=true,V=false){Object.values(T.value).forEach(f=>{f.$touch(O,V);});}function K(O){return O.filter(([V,f])=>M(f)?!(f&&typeof f=="object"&&"_null"in f)&&!oe(f):Array.isArray(f)?f.length:true)}function le(O=true){let V=Object.entries(T.value).map(([f,m])=>[f,m.$extractDirtyFields(O)]);return O&&(V=K(V)),Object.fromEntries(V)}async function C(){try{if(d.schemaMode)return d.onValidate?(J(!1),b.$localPending.value=!0,d.onValidate()):{valid:!1,data:t.value};{let O=t.value;return {valid:(await Promise.allSettled(Object.values(T.value).map(m=>m.$validate()))).every(m=>m.status==="fulfilled"?m.value.valid===!0:!1),data:O}}}catch{return {valid:false,data:t.value}}finally{b.$localPending.value=false;}}let{$shortcuts:k,$localPending:me,...Re}=b;return reactive({...Re,...k,$fields:T,$reset:H,$touch:J,$validate:C,$unwatch:$,$watch:o,$clearExternalErrors:L,$extractDirtyFields:le})}function De({rulesDef:e,...t}){if(Vt(e,t.state,t.schemaMode))return Ht({rulesDef:e,...t});if(He(t.state,e)){if(Be(t.state))return Je({rulesDef:e,...t});{let n=effectScope().run(()=>{let i=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,c=>{i.value=c;},{deep:true}),watch(i,c=>{t.state.value=c;},{deep:true}),{fakeState:i}}),{state:a,...l}=t;return Je({rulesDef:e,...l,state:n.fakeState})}}else if(ze(e))return Ce({rulesDef:e,...t})}function Pe({initialState:e,options:t,scopeRules:r,state:n,customRules:a,shortcuts:l,schemaErrors:i,schemaMode:c=false,onValidate:g}){let p=lt(),d=ref();return He(n,r)?d.value=Je({rootRules:r,rulesDef:r,state:n,customMessages:a?.(),storage:p,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:l,fieldName:"root",path:"",schemaErrors:i,rootSchemaErrors:i,schemaMode:c,onValidate:g}):ze(r)&&(d.value=Ce({rulesDef:r,state:n,customMessages:a?.(),storage:p,options:t,externalErrors:t.externalErrors,initialState:e,shortcuts:l,fieldName:"root",path:"",schemaMode:c,schemaErrors:i,onValidate:g})),getCurrentScope()&&onScopeDispose(()=>{d.value?.$unwatch();}),reactive({regle:d})}function Ye(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,silent:t?.silent,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function a(l,i,c){let g=isRef(i)?i:typeof i=="function"?void 0:computed(()=>i),p={...n,...c},d=isRef(l)?l:ref(l),B=shallowRef(g??{});typeof i=="function"&&watchEffect(()=>{B.value=i(d),triggerRef(B);});let b=ref(M(d.value)?{...G(d.value)}:G(d.value));return {r$:Pe({scopeRules:B,state:d,options:p,initialState:b,customRules:e,shortcuts:r}).regle}}return a}var Qe=Ye();function Xe(){function e(t,r){return r}return e}var yt=Xe();function Jt({rules:e,modifiers:t,shortcuts:r}){let n=Ye(e,t,r);n.__config={rules:e,modifiers:t,shortcuts:r};let a=Xe();return {useRegle:n,inferRules:a}}function Yt(e,{rules:t,modifiers:r,shortcuts:n}){let a=e.__config??{},l=()=>({...a.rules?.(),...t?.()}),i=a.modifiers&&r?je(a.modifiers,r):r,c=a.shortcuts&&n?je(a.shortcuts,n):n,g=Ye(l,i,c);g.__config={rules:l,modifiers:i,shortcuts:c};let p=Xe();return {useRegle:g,inferRules:p}}function Ne(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(s=>s.$value):Object.fromEntries(Object.entries(e).map(([s,o])=>[s,o.$value])),set:s=>{r||typeof s=="object"&&Object.entries(s).forEach(([o,$])=>e[o].$value=$);}}),a=computed({get:()=>Object.fromEntries(Object.entries(e).map(([s,o])=>[s,o.$silentValue])),set:s=>{typeof s=="object"&&Object.entries(s).forEach(([o,$])=>e[o].$silentValue=$);}}),l=computed(()=>{let s=Object.entries(e);return !!s.length&&s.every(([o,$])=>$?.$dirty)}),i=computed(()=>Object.entries(e).some(([s,o])=>o?.$anyDirty)),c=computed(()=>Object.entries(e).some(([s,o])=>o?.$invalid)),g=computed(()=>{let s=Object.entries(e);return !!s.length&&s.every(([o,$])=>$?.$correct||$.$anyDirty&&!$.$invalid)}),p=computed(()=>Object.entries(e).some(([s,o])=>o?.$error)),d=computed(()=>{let s=Object.entries(e);return !!s.length&&s.every(([o,$])=>$?.$ready)}),B=computed(()=>Object.entries(e).some(([s,o])=>o?.$pending)),b=computed(()=>r?Object.entries(e).map(([s,o])=>o.$errors):Object.fromEntries(Object.entries(e).map(([s,o])=>[s,o.$errors]))),P=computed(()=>r?Object.entries(e).map(([s,o])=>o.$silentErrors):Object.fromEntries(Object.entries(e).map(([s,o])=>[s,o.$silentErrors]))),I=computed(()=>{let s=Object.entries(e);return !!s.length&&s.every(([o,$])=>$?.$edited)}),w=computed(()=>Object.entries(e).some(([s,o])=>o?.$anyEdited)),u=computed(()=>r?Object.values(e):e);function y(s){Object.values(e).forEach(o=>{o.$reset(s);});}function h(){Object.values(e).forEach(s=>{s.$touch();});}function x(s=true){return Object.values(e).map(o=>o.$extractDirtyFields(s))}function T(){Object.values(e).forEach(s=>{s.$clearExternalErrors();});}async function Q(){try{let s=n.value;return {valid:(await Promise.allSettled(Object.values(e).map(L=>L.$validate()))).every(L=>L.status==="fulfilled"?L.value.valid===!0:!1),data:s}}catch{return {valid:false,data:n.value}}}return reactive({...!r&&{$silentValue:a},$errors:b,$silentErrors:P,$instances:u,$value:n,$dirty:l,$anyDirty:i,$invalid:c,$correct:g,$error:p,$pending:B,$ready:d,$edited:I,$anyEdited:w,$reset:y,$touch:h,$validate:Q,$extractDirtyFields:x,$clearExternalErrors:T})}function Xt(e,t){function r(n){let a=computed(()=>toValue(n));c();let l=ref(g(e.value)),i=reactive({r$:l});function c(){a.value&&!e.value[a.value]&&(e.value[a.value]={});}watch(a,c),watch(e,p=>{l.value=g(p);},{deep:true});function g(p){if(a.value){let d=p[a.value]??{};return Ne(d,!t.asRecord)}else return Ne(p["~~global"]??{},!t.asRecord)}return {r$:i.r$}}return {useCollectScope:r}}function tr(e,t){let r=t??Qe;return {useScopedRegle:(a,l,i)=>{let{namespace:c,scopeKey:g,...p}=i??{};r.__config??={};let d=computed(()=>toValue(c)),B=ref(`${Object.keys(e.value).length+1}-${Ee()}`),b=computed(()=>i?.scopeKey??`instance-${B.value}`),{r$:P}=r(a,l,p);w(),jt(I),watch(d,(u,y)=>{I(y),w();}),getCurrentInstance()&&onMounted(()=>{let u=getCurrentInstance();typeof window<"u"&&u?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(u?.proxy?.$el?.parentElement)&&I();});function I(u){let y=u??d.value;y?e.value[y]&&delete e.value[y][b.value]:e.value["~~global"][b.value]&&delete e.value["~~global"][b.value];}function w(){d.value?(e.value[d.value]||(e.value[d.value]={}),e.value[d.value][b.value]=P):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][b.value]=P);}return {r$:P,dispose:I,register:w}}}}function Ze(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):Ft(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=tr(r,e?.customUseRegle),{useCollectScope:a}=Xt(r,{asRecord:e?.asRecord});return {useScopedRegle:n,useCollectScope:a}}var {useCollectScope:mt,useScopedRegle:gt}=Ze();function ar(e,t,r){let n=computed(()=>toValue(e)[t]);return computed(()=>{let l=r.find(i=>{if(i[t]&&"literal"in i[t]){let c=i[t].literal;if($e(c))return unref(c._params?.[0])===n.value}});if(l)return l;{let i=r.find(c=>M(c[t])&&!Object.keys(c[t]).some(g=>g==="literal"));return i||{}}})}function vt(e,t,r){return M(e[t])&&"$value"in e[t]&&e[t]?.$value===r}function lr(e,t,r){let n=isRef(e)?toRef(e.value,"$fields"):toRef(e,"$fields"),a=ref();return watch(n,async()=>{await nextTick(),vt(n.value,t,r)?a.value=n.value:a.value=void 0;},{immediate:true,flush:"pre"}),a}function or(e){return e}function sr(e,t){return r=>je({...e},t(r))}
|
|
2
|
+
export{rt as InternalRuleType,at as createRule,Ze as createScopedUseRegle,ar as createVariant,Jt as defineRegleConfig,or as defineRules,Yt as extendRegleConfig,ut as flatErrors,yt as inferRules,Ne as mergeRegles,vt as narrowVariant,sr as refineRules,re as unwrapRuleParameters,mt as useCollectScope,Qe as useRegle,Pe as useRootStorage,gt as useScopedRegle,lr as variantToRef};
|
package/dist/regle-core.mjs
CHANGED
|
@@ -851,7 +851,6 @@ function createReactiveFieldStatus({
|
|
|
851
851
|
let scopeState;
|
|
852
852
|
let fieldScopes = [];
|
|
853
853
|
let $unwatchState;
|
|
854
|
-
let $unwatchValid;
|
|
855
854
|
let $unwatchDirty;
|
|
856
855
|
let $unwatchAsync;
|
|
857
856
|
let $unwatchRuleFieldValues;
|
|
@@ -913,7 +912,6 @@ function createReactiveFieldStatus({
|
|
|
913
912
|
storage.setDirtyEntry(path, scopeState.$dirty.value);
|
|
914
913
|
}
|
|
915
914
|
$unwatchState?.();
|
|
916
|
-
$unwatchValid?.();
|
|
917
915
|
scope.stop();
|
|
918
916
|
scope = effectScope();
|
|
919
917
|
fieldScopes.forEach((s) => s.stop());
|
|
@@ -929,7 +927,7 @@ function createReactiveFieldStatus({
|
|
|
929
927
|
}
|
|
930
928
|
scopeState = scope.run(() => {
|
|
931
929
|
const $dirty = ref(false);
|
|
932
|
-
const
|
|
930
|
+
const triggerPunishment = ref(false);
|
|
933
931
|
const $anyDirty = computed(() => $dirty.value);
|
|
934
932
|
const $debounce2 = computed(() => {
|
|
935
933
|
return $localOptions.value.$debounce;
|
|
@@ -961,6 +959,8 @@ function createReactiveFieldStatus({
|
|
|
961
959
|
return $localOptions.value.$clearExternalErrorsOnChange;
|
|
962
960
|
} else if (unref(options.clearExternalErrorsOnChange) != null) {
|
|
963
961
|
return unref(options.clearExternalErrorsOnChange);
|
|
962
|
+
} else if ($silent.value) {
|
|
963
|
+
return false;
|
|
964
964
|
}
|
|
965
965
|
return true;
|
|
966
966
|
});
|
|
@@ -1046,7 +1046,7 @@ function createReactiveFieldStatus({
|
|
|
1046
1046
|
return $anyDirty.value && !($invalid.value || $pending.value);
|
|
1047
1047
|
});
|
|
1048
1048
|
const $pending = computed(() => {
|
|
1049
|
-
if (
|
|
1049
|
+
if (triggerPunishment.value || !$rewardEarly2.value) {
|
|
1050
1050
|
return Object.entries($rules.value).some(([key, ruleResult]) => {
|
|
1051
1051
|
return ruleResult.$pending;
|
|
1052
1052
|
});
|
|
@@ -1058,16 +1058,17 @@ function createReactiveFieldStatus({
|
|
|
1058
1058
|
return true;
|
|
1059
1059
|
} else if ($inactive.value) {
|
|
1060
1060
|
return false;
|
|
1061
|
-
} else if (!$rewardEarly2.value || $rewardEarly2.value
|
|
1062
|
-
|
|
1061
|
+
} else if (!$rewardEarly2.value || $rewardEarly2.value) {
|
|
1062
|
+
const result = Object.entries($rules.value).some(([_, ruleResult]) => {
|
|
1063
1063
|
return !(ruleResult.$valid && !ruleResult.$maybePending);
|
|
1064
1064
|
});
|
|
1065
|
+
return result;
|
|
1065
1066
|
}
|
|
1066
1067
|
return false;
|
|
1067
1068
|
});
|
|
1068
1069
|
const $name = computed(() => fieldName);
|
|
1069
1070
|
const $inactive = computed(() => {
|
|
1070
|
-
if (
|
|
1071
|
+
if (Object.keys(rulesDef.value).filter(([ruleKey]) => !ruleKey.startsWith("$")).length === 0 && !schemaMode) {
|
|
1071
1072
|
return true;
|
|
1072
1073
|
}
|
|
1073
1074
|
return false;
|
|
@@ -1133,11 +1134,6 @@ function createReactiveFieldStatus({
|
|
|
1133
1134
|
}
|
|
1134
1135
|
}
|
|
1135
1136
|
const $shortcuts2 = {};
|
|
1136
|
-
watch($invalid, (value) => {
|
|
1137
|
-
if (!value) {
|
|
1138
|
-
triggerPunishment2.value = false;
|
|
1139
|
-
}
|
|
1140
|
-
});
|
|
1141
1137
|
return {
|
|
1142
1138
|
$error,
|
|
1143
1139
|
$pending,
|
|
@@ -1162,7 +1158,6 @@ function createReactiveFieldStatus({
|
|
|
1162
1158
|
$validating: $validating2,
|
|
1163
1159
|
$tooltips,
|
|
1164
1160
|
$dirty,
|
|
1165
|
-
triggerPunishment: triggerPunishment2,
|
|
1166
1161
|
processShortcuts,
|
|
1167
1162
|
$silentValue,
|
|
1168
1163
|
$inactive
|
|
@@ -1186,11 +1181,6 @@ function createReactiveFieldStatus({
|
|
|
1186
1181
|
});
|
|
1187
1182
|
}
|
|
1188
1183
|
);
|
|
1189
|
-
$unwatchValid = watch(scopeState.$invalid, (invalid) => {
|
|
1190
|
-
if (scopeState.$rewardEarly.value && !invalid) {
|
|
1191
|
-
scopeState.triggerPunishment.value = false;
|
|
1192
|
-
}
|
|
1193
|
-
});
|
|
1194
1184
|
$unwatchAsync = watch(scopeState.$haveAnyAsyncRule, define$commit);
|
|
1195
1185
|
}
|
|
1196
1186
|
function define$watchState() {
|
|
@@ -1208,7 +1198,7 @@ function createReactiveFieldStatus({
|
|
|
1208
1198
|
if (!scopeState.$silent.value || scopeState.$rewardEarly.value && scopeState.$error.value) {
|
|
1209
1199
|
$commit();
|
|
1210
1200
|
}
|
|
1211
|
-
if (scopeState.$
|
|
1201
|
+
if (scopeState.$clearExternalErrorsOnChange.value) {
|
|
1212
1202
|
$clearExternalErrors();
|
|
1213
1203
|
}
|
|
1214
1204
|
},
|
|
@@ -1226,7 +1216,6 @@ function createReactiveFieldStatus({
|
|
|
1226
1216
|
function $reset(options2, fromParent) {
|
|
1227
1217
|
$clearExternalErrors();
|
|
1228
1218
|
scopeState.$dirty.value = false;
|
|
1229
|
-
scopeState.triggerPunishment.value = false;
|
|
1230
1219
|
storage.setDirtyEntry(path, false);
|
|
1231
1220
|
if (!fromParent) {
|
|
1232
1221
|
if (options2?.toInitialState) {
|
|
@@ -1281,7 +1270,6 @@ function createReactiveFieldStatus({
|
|
|
1281
1270
|
}
|
|
1282
1271
|
}
|
|
1283
1272
|
const data = state.value;
|
|
1284
|
-
scopeState.triggerPunishment.value = true;
|
|
1285
1273
|
if (!scopeState.$dirty.value) {
|
|
1286
1274
|
scopeState.$dirty.value = true;
|
|
1287
1275
|
} else if (!scopeState.$silent.value && scopeState.$dirty.value && !scopeState.$pending.value) {
|
|
@@ -1335,7 +1323,6 @@ function createReactiveFieldStatus({
|
|
|
1335
1323
|
$haveAnyAsyncRule,
|
|
1336
1324
|
$debounce,
|
|
1337
1325
|
$lazy,
|
|
1338
|
-
triggerPunishment,
|
|
1339
1326
|
...restScope
|
|
1340
1327
|
} = scopeState;
|
|
1341
1328
|
return reactive({
|