@regle/core 0.7.4 → 0.7.5

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.
@@ -71,28 +71,6 @@ function isObject(obj) {
71
71
  return typeof obj === "object" && obj !== null && !Array.isArray(obj);
72
72
  }
73
73
 
74
- // ../shared/utils/isDate.ts
75
- function isDate(value) {
76
- if (isEmpty(value)) {
77
- return false;
78
- }
79
- try {
80
- let possibleDate = null;
81
- if (value instanceof Date) {
82
- possibleDate = value;
83
- } else if (typeof value === "string") {
84
- const date = new Date(value);
85
- if (date.toString() === "Invalid Date") {
86
- return false;
87
- }
88
- possibleDate = date;
89
- }
90
- return !!possibleDate;
91
- } catch (e) {
92
- return false;
93
- }
94
- }
95
-
96
74
  // ../shared/utils/toDate.ts
97
75
  function toDate(argument) {
98
76
  const argStr = Object.prototype.toString.call(argument);
@@ -915,7 +893,7 @@ function createReactiveFieldStatus({
915
893
  });
916
894
  const $edited = vue.computed(() => {
917
895
  if ($dirty.value) {
918
- if (isDate(initialState.value) && isDate(state.value)) {
896
+ if (initialState.value instanceof Date && state.value instanceof Date) {
919
897
  return toDate(initialState.value).getDate() !== toDate(state.value).getDate();
920
898
  }
921
899
  if (initialState.value == null) {
@@ -1,2 +1,2 @@
1
- 'use strict';var vue=require('vue');function Y(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var gt=Symbol("regle-rule");function Ht(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function Q(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>Q(n)))),r=="Map"&&(t=new Map([...e].map(n=>[Q(n[0]),Q(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Ht(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=Q(e[n]);}return t}function ne(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Be(e){if(Y(e))return false;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let r=new Date(e);if(r.toString()==="Invalid Date")return !1;t=r;}return !!t}catch{return false}}function Le(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}var He=(r=>(r.Inline="__inline",r.Async="__async",r))(He||{});function yt(e,t){return e.some(r=>r[t])}function vt(e,t){return e.reduce((r,n)=>{let o=n[t]||[];return r.concat(o)},[])}function ee(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function $t(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function St(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(R=>R.trim()).filter(R=>R.length>0).length:0}function ze(e,...t){let{validator:r,type:n}=e,o=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(c,...$){return e.validator(c,...ee($.length?$:t))},message(c){return typeof e.message=="function"?e.message({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.message},active(c){return typeof e.active=="function"?e.active({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.active??true},tooltip(c){return typeof e.tooltip=="function"?e.tooltip({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.tooltip??[]},exec(c){let $=e.validator(c,...ee(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:o,_params:$t(t),_brand:gt}}function qe(e){if(typeof e.validator=="function"){let r=ze(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(St(e.validator)>1){let o=function(...s){return ze(e,...s)};return o.validator=r.validator,o.message=r.message,o.active=r.active,o.tooltip=r.tooltip,o.type=r.type,o.exec=r.exec,o._validator=r.validator,o._message=r.message,o._active=r.active,o._tooltip=r.tooltip,o._type=e.type,o._message_pacthed=false,o._tooltip_pacthed=false,o._async=n,o}else return r}throw new Error("Validator must be a function")}function Ke(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),o=vue.shallowRef(new Map),s=vue.shallowRef(new Map);function R(v){let b=t.value.get(v);if(b)return b;{let E=vue.ref({});return t.value.set(v,E),E}}function c(v){let b=r.value.get(v);if(b)return b;{let E=vue.ref([]);return r.value.set(v,E),E}}function $(v,b,E){s.value.set(`${v}-${b}`,E);}function m(v,b){return s.value.get(`${v}-${b}`)}function h(v,b){v&&b!=null&&s.value.delete(`${v}-${b}`);}function M(v,b){n.value.set(v,b);}function x(v){return n.value.get(v)??false}function P(v,b){e.value.set(v,b);}function O(v,b){let E=e.value.get(v);return E?a(b,E)?{valid:true}:{valid:false}:undefined}function a(v,b){let E=Object.keys(b),i=Object.keys(v);return i.length!==E.length||!i.every(V=>E.includes(V))?false:i.every(V=>{let l=v[V],u=b[V];return !u||!l||typeof l=="function"||typeof u=="function"||typeof l=="number"||typeof l=="boolean"?false:l._params?l._params?.every((C,_)=>{if(typeof u=="number"||typeof u=="boolean")return true;{let k=ee(u._params),J=ee(l._params);return k?.[_]===J?.[_]}}):true})}function w(v){let b=o.value.get(v);if(b)return b;{let E=vue.ref(false),i=vue.ref(true),S=vue.ref({}),V=vue.ref(false);return o.value.set(v,{$pending:E,$valid:i,$metadata:S,$validating:V}),{$pending:E,$valid:i,$metadata:S,$validating:V}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),o.value.clear(),s.value.clear();}),{addRuleDeclEntry:P,setDirtyEntry:M,checkRuleDeclEntry:O,getDirtyState:x,trySetRuleStatusRef:w,getFieldsEntry:R,getCollectionsEntry:c,getArrayStatus:m,addArrayStatus:$,deleteArrayStatus:h,arrayStatusStorage:s}}function Fe(e){return ne(e.value)}function Je(e,t,r){let n=vue.effectScope(),o;return e instanceof Function?o=n.run(()=>e(t,r??0)):o=e,{scope:n,unwrapped:o}}function Ve(e,t,r){let n,o=(...s)=>new Promise(R=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...s])).then(R);},t);});return o.cancel=()=>{clearTimeout(n),n=undefined;},o}function er(e,t){let r=String(e).split("."),n=String(t).split(".");for(let o=0;o<Math.min(r.length,n.length);o++){let s=Number(r[o]),R=Number(n[o]);if(s>R)return 1;if(R>s)return -1;if(!isNaN(s)&&isNaN(R))return 1;if(isNaN(s)&&!isNaN(R))return -1}return 0}var _e=er(vue.version,"3.5.0")!==-1;function tr(){return Math.floor(Math.random()*Date.now()).toString()}function he(){return typeof window>"u"?tr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function ht(e){return vue.getCurrentScope()?(vue.onScopeDispose(e),true):false}function bt(e){let t=false,r,n=vue.effectScope(true);return (...o)=>(t||(r=n.run(()=>e(...o)),t=true),r)}function Et(e,t){return Fe(e)||ne(t.value)&&!Y(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function Tt(e,t){return !!e.value&&ne(e.value)&&"$each"in e.value||Array.isArray(t.value)}function xt(e){return !!e.value&&ne(e.value)}function we(e){return ne(e)&&"_validator"in e}function Pe(e){return typeof e.value!="function"}function Dt(e){return ne(e)&&"$fields"in e}function Ct(e){return !!e&&"$rules"in e}function Ye({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 It({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 Ot({customMessages:e,rule:t,ruleKey:r,state:n,path:o,storage:s,$debounce:R,modifiers:c}){let $=vue.effectScope(),m={},h,M=vue.ref(false),{$pending:x,$valid:P,$metadata:O,$validating:a}=s.trySetRuleStatusRef(`${o}.${r}`);function w(){$=vue.effectScope(),m=$.run(()=>{let l=vue.ref(false),u=vue.ref(false),C=vue.ref(true),_=vue.ref(false),k=vue.ref(false),J=vue.computed(()=>({$value:n.value,$error:u.value,$dirty:l.value,$pending:_.value,$valid:k.value,$invalid:C.value,$rule:{$valid:P.value,$invalid:!P.value,$pending:x.value},$params:d.value,...O.value})),I=vue.computed(()=>Pe(t)?typeof t.value.active=="function"?t.value.active(J.value):!!t.value.active:true);function L(p){let T="",A=e?e[r]?.[p]:undefined;if(A&&(typeof A=="function"?T=A(J.value):T=A),Pe(t)){let X=`_${p}_patched`;A&&!t.value[X]||(typeof t.value[p]=="function"?T=t.value[p](J.value):T=t.value[p]??"");}return T}let ie=vue.computed(()=>{let p=L("message");return Y(p)&&(p="This field is not valid"),p}),de=vue.computed(()=>L("tooltip")),pe=vue.computed(()=>Pe(t)&&t.value.type?t.value.type:r),me=vue.computed(()=>Pe(t)?t.value.validator:t.value),d=vue.computed(()=>typeof t.value=="function"?[]:ee(t.value._params??[])),f=vue.computed(()=>`${o}.${pe.value}`);return {$active:I,$message:ie,$type:pe,$validator:me,$params:d,$path:f,$tooltip:de,$fieldValid:k,$fieldError:u,$fieldDirty:l,$fieldPending:_,$fieldInvalid:C}}),h=vue.watch(m?.$params,()=>{(c.$autoDirty.value||c.$rewardEarly.value&&m.$fieldError.value)&&i();});}w();function v(){P.value=true,m.$fieldDirty.value&&(x.value=true);}async function b(){let l=false;try{let u=m.$validator.value,C=u(n.value,...m.$params.value),_=n.value;v();let k;if(C instanceof Promise?k=await C:k=C,n.value!==_)return !0;if(typeof k=="boolean")l=k;else {let{$valid:J,...I}=k;l=J,O.value=I;}}catch{l=false;}finally{x.value=false;}return l}let E=Ve(b,R??200);async function i(){try{a.value=!0;let l=!1;if(we(t.value)&&t.value._async)l=await E();else {let u=m.$validator.value,C=u(n.value,...m.$params.value);if(C instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(C!=null)if(typeof C=="boolean")l=C;else {let{$valid:_,...k}=C;l=_,O.value=k;}}return P.value=l,l}catch{return false}finally{a.value=false;}}function S(){P.value=true,O.value={},x.value=false,a.value=false,w();}function V(){h(),$.stop(),$=vue.effectScope();}return vue.reactive({...m,$pending:x,$valid:P,$metadata:O,$haveAsync:M,$validating:a,$validate:i,$unwatch:V,$watch:w,$reset:S})}function Ne({state:e,rulesDef:t,customMessages:r,path:n,fieldName:o,storage:s,options:R,externalErrors:c,schemaErrors:$,schemaMode:m,onUnwatch:h,$isArray:M,initialState:x,shortcuts:P}){let O=vue.effectScope(),a,w=[],v,b,E,i,S,V=()=>{};function l(){let y=t.value,G=s.checkRuleDeclEntry(n,y);L.value=Object.fromEntries(Object.entries(y).filter(([B])=>B.startsWith("$"))),_(),I.value=Object.fromEntries(Object.entries(t.value).filter(([B])=>!B.startsWith("$")).map(([B,D])=>{if(D){let se=vue.toRef(()=>D);return [B,Ot({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:se,ruleKey:B,state:e,path:n,storage:s,$debounce:L.value.$debounce})]}return []}).filter(B=>!!B.length)),a.processShortcuts(),u(),G?.valid!=null&&(a.$dirty.value=s.getDirtyState(n),a.$dirty.value&&V()),s.addRuleDeclEntry(n,y);}function u(){V=a.$debounce.value?Ve(J,a.$debounce.value??a.$haveAnyAsyncRule?100:0):J;}function C(){I.value&&Object.entries(I.value).forEach(([y,G])=>{G.$unwatch();}),E(),S?.(),a.$dirty.value&&s.setDirtyEntry(n,a.$dirty.value),v?.(),b?.(),O.stop(),O=vue.effectScope(),w.forEach(y=>y.stop()),w=[],h?.(),i?.();}function _(){I.value&&Object.entries(I.value).forEach(([y,G])=>{G.$watch();}),a=O.run(()=>{let y=vue.ref(false),G=vue.ref(false),B=vue.computed(()=>y.value),D=vue.computed(()=>L.value.$debounce),se=vue.computed(()=>L.value.$lazy!=null?L.value.$lazy:vue.unref(R.lazy)!=null?vue.unref(R.lazy):false),le=vue.computed(()=>L.value.$rewardEarly!=null?L.value.$rewardEarly:vue.unref(R.rewardEarly)!=null?vue.unref(R.rewardEarly):false),ge=vue.computed(()=>L.value.$clearExternalErrorsOnChange!=null?L.value.$clearExternalErrorsOnChange:vue.unref(R.clearExternalErrorsOnChange)!=null?vue.unref(R.clearExternalErrorsOnChange):true),U=vue.computed(()=>L.value.$autoDirty!=null?L.value.$autoDirty:vue.unref(R.autoDirty)!=null?vue.unref(R.autoDirty):!le.value),j=vue.computed(()=>Object.entries(I.value).some(([ae,ue])=>ue.$validating)),K=vue.computed({get:()=>e.value,set(ae){v(),e.value=ae,k();}}),ye=vue.computed(()=>ve.value&&!Oe.value&&y.value),ot=vue.computed(()=>Ye({field:{$rules:I.value,$error:ye.value,$externalErrors:c?.value,$schemaErrors:$?.value}})),st=vue.computed(()=>Ye({field:{$rules:I.value,$error:ye.value,$externalErrors:c?.value,$schemaErrors:$?.value},silent:true})),We=vue.computed(()=>y.value?Be(x.value)&&Be(e.value)?Le(x.value).getDate()!==Le(e.value).getDate():x.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(x.value)?e.value.length!==x.value.length:x.value!==e.value:false),ut=vue.computed(()=>We.value),it=vue.computed(()=>It({field:{$rules:I.value}})),ct=vue.computed(()=>U.value?B.value&&!(ve.value||Oe.value):!(ve.value||Oe.value)),Oe=vue.computed(()=>G.value||!le.value?Object.entries(I.value).some(([ae,ue])=>ue.$pending):false),ve=vue.computed(()=>c?.value?.length||$?.value?.length?true:Me.value?false:!le.value||le.value&&G.value?Object.entries(I.value).some(([ae,ue])=>!ue.$valid):false),ft=vue.computed(()=>o),Me=vue.computed(()=>!!(Y(I.value)&&!m)),Rt=vue.computed(()=>c?.value?.length||Me.value?false:y.value&&!Y(e.value)&&!j.value?m?!$?.value?.length:Object.values(I.value).every(ae=>ae.$valid&&ae.$active):false),Bt=vue.computed(()=>Object.entries(I.value).some(([ae,ue])=>ue.$haveAsync));function Lt(){P?.fields&&Object.entries(P.fields).forEach(([ae,ue])=>{let pt=vue.effectScope();dt[ae]=pt.run(()=>{let mt=vue.ref();return vue.watchEffect(()=>{mt.value=ue(vue.reactive({$dirty:y,$externalErrors:c?.value??[],$value:e,$silentValue:K,$rules:I,$error:ye,$pending:Oe,$invalid:ve,$valid:Rt,$errors:ot,$ready:ct,$silentErrors:st,$anyDirty:B,$tooltips:it,$name:ft,$inactive:Me,$edited:We,$anyEdited:ut}));}),mt}),w.push(pt);});}let dt={};return vue.watch(ve,ae=>{ae||(G.value=false);}),{$error:ye,$pending:Oe,$invalid:ve,$valid:Rt,$debounce:D,$lazy:se,$errors:ot,$ready:ct,$silentErrors:st,$rewardEarly:le,$autoDirty:U,$clearExternalErrorsOnChange:ge,$anyDirty:B,$edited:We,$anyEdited:ut,$name:ft,$haveAnyAsyncRule:Bt,$shortcuts:dt,$validating:j,$tooltips:it,$dirty:y,triggerPunishment:G,processShortcuts:Lt,$silentValue:K,$inactive:Me}}),k(),E=vue.watch(a.$dirty,y=>{s.setDirtyEntry(n,y),Object.values(I.value).forEach(G=>{G.$fieldDirty=y;});}),S=vue.watch([a.$error,a.$valid,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(y=>{y.$fieldError=a.$error.value,y.$fieldInvalid=a.$invalid.value,y.$fieldPending=a.$pending.value,y.$fieldValid=a.$valid.value;});}),b=vue.watch(a.$valid,y=>{a.$rewardEarly.value&&y&&(a.triggerPunishment.value=false);}),i=vue.watch(a.$haveAnyAsyncRule,u);}function k(){v=vue.watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&l(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&f();},{deep:M?true:_e?1:true,flush:"post"});}function J(){Object.values(I.value).forEach(y=>{y.$validate();});}let I=vue.ref({}),L=vue.ref({});l();function ie(){f(),a.$dirty.value=false,a.triggerPunishment.value=false,s.setDirtyEntry(n,false),x.value=ne(e.value)?Q(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(I.value).forEach(([y,G])=>{G.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(y=>y.$validate());}function de(y=true,G=false){a.$dirty.value||(a.$dirty.value=true),G&&y?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V():y&&V();}async function pe(){try{let y=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:y};return m?{result:!$?.value?.length,data:y}:Y(I.value)?{result:!0,data:y}:{result:(await Promise.allSettled(Object.entries(I.value).map(([D,se])=>se.$validate()))).every(D=>D.status==="fulfilled"?D.value===!0:!1),data:y}}catch{return {result:false,data:e.value}}}function me(){C(),e.value=Q(x),ie();}function d(y=true){return a.$dirty.value?e.value:y?{_null:true}:null}function f(){c?.value?.length&&(c.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&V();let{$shortcuts:p,$validating:T,$autoDirty:A,$rewardEarly:X,$clearExternalErrorsOnChange:g,$haveAnyAsyncRule:F,$debounce:H,$lazy:Z,triggerPunishment:z,...oe}=a;return vue.reactive({...oe,$externalErrors:c,$value:e,$rules:I,...p,$reset:ie,$touch:de,$validate:pe,$unwatch:C,$watch:_,$resetAll:me,$extractDirtyFields:d,$clearExternalErrors:f})}function Ze({$id:e,path:t,index:r,options:n,storage:o,stateValue:s,customMessages:R,rules:c,externalErrors:$,schemaErrors:m,initialState:h,shortcuts:M,fieldName:x,schemaMode:P}){let O=c.$key?c.$key:he(),a=`${t}.${String(O)}`;typeof s.value=="object"&&s.value!=null&&(s.value.$id?a=`${t}.${s.value.$id}`:Object.defineProperties(s.value,{$id:{value:O,enumerable:false,configurable:false,writable:false}}));let w=vue.toRef($?.value??[],r),v=vue.computed(()=>m?.value?.[r]),b=Te({state:s,rulesDef:vue.toRef(()=>c),customMessages:R,path:a,storage:o,options:n,externalErrors:w,schemaErrors:v,initialState:h,shortcuts:M,fieldName:x,schemaMode:P});if(b){let E=s.value?.$id;b.$id=E??String(O),o.addArrayStatus(e,b.$id,b);}return b}function jt({state:e,rulesDef:t,customMessages:r,path:n,storage:o,options:s,externalErrors:R,schemaErrors:c,schemaMode:$,initialState:m,shortcuts:h,fieldName:M}){let x=vue.effectScope(),P,O=vue.effectScope(),a,w=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let v=vue.ref(),b=vue.ref(e.value),E,i=vue.ref({}),S=o.getCollectionsEntry(n);a=O.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(f=>typeof f!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(f=>we(f)||typeof f=="function"):false)})),V(),C();function V(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(v.value=he(),Object.defineProperties(e.value,{$id:{value:v.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(v.value=e.value.$id)),b.value=i.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?S.value=e.value.filter(d=>typeof d=="object").map((d,f)=>{let{scope:p,unwrapped:T}=Je(t.value.$each,vue.toRef(()=>d),f);p&&w.push(p);let A=vue.toRef(m.value??[],f),X=vue.toRef(R?.value??{},"$each"),g=vue.computed(()=>c?.value?.$each),F=Ze({$id:v.value,path:n,customMessages:r,rules:T??{},stateValue:vue.toRef(()=>d),index:f,options:s,storage:o,externalErrors:X,schemaErrors:g,initialState:A,shortcuts:h,fieldName:M,schemaMode:$});return F||null}).filter(d=>!!d):S.value=[],i.value=Ne({state:e,rulesDef:t,customMessages:r,path:n,storage:o,options:s,externalErrors:vue.toRef(R?.value??{},"$self"),schemaErrors:vue.computed(()=>c?.value?.$self),$isArray:true,initialState:m,shortcuts:h,fieldName:M,schemaMode:$});}function l(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let d=Q(S.value);S.value=e.value.filter(f=>typeof f=="object").map((f,p)=>{let T=vue.toRef(()=>f);if(f.$id&&S.value.find(A=>A.$id===f.$id)){let A=o.getArrayStatus(v.value,f.$id);return A?(A.$value=T,A):null}else {let{scope:A,unwrapped:X}=Je(t.value.$each,T,p);A&&w.push(A);let g=vue.toRef(R?.value??{},"$each"),F=vue.computed(()=>c?.value?.$each??[]),H=Ze({$id:v.value,path:n,customMessages:r,rules:X??{},stateValue:T,index:p,options:s,storage:o,externalErrors:g,schemaErrors:F,initialState:vue.toRef(m.value??[],p),shortcuts:h,fieldName:M,schemaMode:$});return H||null}}).filter(f=>!!f),d.filter(f=>!e.value?.find(p=>f.$id===p.$id)).forEach((f,p)=>{o.deleteArrayStatus(v.value,p.toString());});}else S.value=[];}function u(){E=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?V():l();},{deep:_e?1:true,flush:"pre"});}function C(){u(),x=vue.effectScope(),P=x.run(()=>{let d=vue.computed({get:()=>e.value,set(D){E(),e.value=D,u();}}),f=vue.computed(()=>i.value.$dirty&&(!S.value.length||S.value.every(D=>D.$dirty))),p=vue.computed(()=>i.value.$anyDirty||S.value.some(D=>D.$anyDirty)),T=vue.computed(()=>i.value.$invalid||S.value.some(D=>D.$invalid)),A=vue.computed(()=>(Y(i.value.$rules)?true:i.value.$valid)&&(!S.value.length||S.value.every(D=>D.$valid))),X=vue.computed(()=>i.value.$error||S.value.some(D=>D.$error)),g=vue.computed(()=>!(T.value||F.value)),F=vue.computed(()=>i.value.$pending||S.value.some(D=>D.$pending)),H=vue.computed(()=>!!S.value.length&&S.value.every(D=>D.$edited)),Z=vue.computed(()=>i.value.$anyEdited||S.value.some(D=>D.$anyEdited)),z=vue.computed(()=>({$self:i.value.$errors,$each:S.value.map(D=>D.$errors)})),oe=vue.computed(()=>({$self:i.value.$silentErrors,$each:S.value.map(D=>D.$silentErrors)})),y=vue.computed(()=>M);function G(){h?.collections&&Object.entries(h?.collections).forEach(([D,se])=>{let le=vue.effectScope();B[D]=le.run(()=>{let ge=vue.ref();return vue.watchEffect(()=>{ge.value=se(vue.reactive({$dirty:f,$error:X,$silentValue:d,$pending:F,$invalid:T,$valid:A,$errors:z,$ready:g,$silentErrors:oe,$anyDirty:p,$name:y,$each:S,$self:i,$value:e,$edited:H,$anyEdited:Z}));}),ge}),w.push(le);});}let B={};return G(),{$dirty:f,$anyDirty:p,$invalid:T,$valid:A,$error:X,$pending:F,$errors:z,$silentErrors:oe,$ready:g,$name:y,$shortcuts:B,$silentValue:d,$edited:H,$anyEdited:Z}}),a.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function _(){E&&E(),i.value&&i.value.$unwatch(),S.value&&S.value.forEach(d=>{"$dirty"in d&&d.$unwatch();}),x.stop(),x=vue.effectScope(),O.stop(),O=vue.effectScope(true),w.forEach(d=>d.stop()),w=[];}function k(d=true,f=false){i.value.$touch(d,f),S.value.forEach(p=>{p.$touch(d,f);});}function J(){i.value.$reset(),S.value.forEach(d=>{d.$reset();});}async function I(){let d=e.value;try{return {result:(await Promise.allSettled([i.value.$validate(),...S.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}catch{return {result:false,data:d}}}function L(){i.value.$clearExternalErrors(),S.value.forEach(d=>{d.$clearExternalErrors();});}function ie(d=true){let f=S.value.map(p=>{if(Dt(p))return p.$extractDirtyFields(d)});return d&&f.every(p=>Y(p))&&(f=[]),f}function de(){_(),e.value=Q(m.value),J();}let{$shortcuts:pe,...me}=P;return vue.reactive({$self:i,...me,...pe,$each:S,$value:e,$validate:I,$unwatch:_,$watch:C,$touch:k,$reset:J,$resetAll:de,$extractDirtyFields:ie,$clearExternalErrors:L})}function ke({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:o,schemaErrors:s,rootSchemaErrors:R,validationGroups:c,initialState:$,fieldName:m,...h}){let M=vue.effectScope(),x,P=[],O=null,a=null,w=null,v=null;async function E(d=true){let f=Object.entries(e.value),p=Object.fromEntries(f.filter(([g,F])=>!!F).map(([g,F])=>{if(F){let H=vue.toRef(t.value??{},g),Z=vue.toRef(()=>F),z=vue.toRef(o?.value??{},g),oe=vue.computed(()=>s?.value?.[g]),y=vue.toRef($?.value??{},g);return [g,Te({state:H,rulesDef:Z,path:r?`${r}.${g}`:g,externalErrors:z,schemaErrors:oe,initialState:y,fieldName:g,...h})]}return []})),T=Object.fromEntries(Object.entries(vue.unref(o)??{}).filter(([g,F])=>!(g in e.value)&&!!F).map(([g])=>{let F=vue.toRef(t.value??{},g),H=vue.toRef(o?.value??{},g),Z=vue.computed(()=>s?.value?.[g]),z=vue.toRef($?.value??{},g);return [g,Te({state:F,rulesDef:vue.computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:Z,initialState:z,fieldName:g,...h})]})),A=Object.fromEntries(Object.entries(vue.unref(s)??{}).map(([g])=>{let F=vue.toRef(t.value??{},g),H=vue.toRef(o?.value??{},g),Z=vue.computed(()=>s?.value?.[g]),z=vue.toRef($?.value??{},g);return [g,Te({state:F,rulesDef:vue.computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:Z,initialState:z,fieldName:g,...h})]})),X=Object.fromEntries(Object.entries(t.value??{}).filter(([g])=>!(g in e.value)&&!(g in(T??{}))&&!(g in(A??{}))).map(([g])=>{let F=vue.toRef(t.value??{},g),H=vue.toRef(o?.value??{},g),Z=vue.computed(()=>s?.value?.[g]),z=vue.toRef($?.value??{},g);return [g,Te({state:F,rulesDef:vue.computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:Z,initialState:z,fieldName:g,...h})]}));i.value={...p,...T,...A,...X},d&&l();}let i=h.storage.getFieldsEntry(r);E();function S(){o&&(w=vue.watch(o,()=>{u(),E();},{deep:true}));}function V(){v=vue.watch(t,()=>{u(),E(),k(true,true);},{flush:"sync"});}function l(){n&&(O?.(),O=vue.watch(n,()=>{u(),E();},{deep:true,flush:"post"}),S()),R&&(a?.(),a=vue.watch(R,()=>{u(),E();},{deep:true,flush:"post"})),V(),x=M.run(()=>{let d=vue.computed({get:()=>t.value,set(U){u(),t.value=U,E();}}),f=vue.computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,j])=>j?.$dirty)),p=vue.computed(()=>Object.entries(i.value).some(([U,j])=>j?.$anyDirty)),T=vue.computed(()=>Object.entries(i.value).some(([U,j])=>j?.$invalid)),A=vue.computed(()=>{let U=Object.entries(i.value).filter(([j,K])=>Ct(K)?!K.$inactive:true);return U.length?U.every(([j,K])=>K?.$valid):false}),X=vue.computed(()=>p.value&&!z.value&&T.value),g=vue.computed(()=>vue.unref(h.options.rewardEarly)!=null?vue.unref(h.options.rewardEarly):false),F=vue.computed(()=>vue.unref(h.options.autoDirty)!=null?vue.unref(h.options.autoDirty):!g.value),H=vue.computed(()=>F.value?p.value&&!(T.value||z.value):!(T.value||z.value)),Z=vue.ref(false),z=vue.computed(()=>Z.value||Object.entries(i.value).some(([U,j])=>j?.$pending)),oe=vue.computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,j])=>[U,j?.$errors]))),y=vue.computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,j])=>[U,j?.$silentErrors]))),G=vue.computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,j])=>j?.$edited)),B=vue.computed(()=>Object.entries(i.value).some(([U,j])=>j?.$anyEdited)),D=vue.computed(()=>m);function se(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,j])=>{let K=vue.effectScope();ge[U]=K.run(()=>{let ye=vue.ref();return vue.watchEffect(()=>{ye.value=j(vue.reactive({$dirty:f,$value:t,$silentValue:d,$error:X,$pending:z,$invalid:T,$valid:A,$ready:H,$anyDirty:p,$name:D,$silentErrors:y,$errors:oe,$fields:i,$edited:G,$anyEdited:B}));}),ye}),P.push(K);});}let le=vue.computed({get:()=>c?Object.fromEntries(Object.entries(c?.(i.value)??{}).map(([U,j])=>j.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(K=>[K,yt(j,K)])),...Object.fromEntries(["$errors","$silentErrors"].map(K=>[K,vt(j,K)]))}]:[])):{},set(){}}),ge={};return se(),{$dirty:f,$anyDirty:p,$invalid:T,$valid:A,$error:X,$pending:z,$errors:oe,$silentErrors:y,$ready:H,$name:D,$shortcuts:ge,$groups:le,$silentValue:d,$edited:G,$anyEdited:B,$localPending:Z}});}function u(){O?.(),w?.(),v?.(),a?.(),P=[],x={},i.value&&Object.entries(i.value).forEach(([d,f])=>{f.$unwatch();});}function C(){Object.entries(i.value).forEach(([d,f])=>{f.$clearExternalErrors();});}function _(){w?.(),Object.values(i.value).forEach(d=>{d.$reset();}),$.value={...Q(t.value)},S();}function k(d=true,f=false){Object.values(i.value).forEach(p=>{p.$touch(d,f);});}async function J(){u(),t.value=Q({...$.value??{}}),_(),E();}function I(d){return d.filter(([f,p])=>ne(p)?!(p&&typeof p=="object"&&"_null"in p)&&!Y(p):Array.isArray(p)?p.length:true)}function L(d=true){let f=Object.entries(i.value).map(([p,T])=>[p,T.$extractDirtyFields(d)]);return d&&(f=I(f)),Object.fromEntries(f)}async function ie(){try{if(h.schemaMode)return h.onValidate?(k(!1),x.$localPending.value=!0,h.onValidate()):{result:!1,data:t.value};{let d=t.value;return {result:(await Promise.allSettled(Object.values(i.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}}catch{return {result:false,data:t.value}}finally{x.$localPending.value=false;}}let{$shortcuts:de,$localPending:pe,...me}=x;return vue.reactive({...me,...de,$fields:i,$value:t,$resetAll:J,$reset:_,$touch:k,$validate:ie,$unwatch:u,$watch:l,$clearExternalErrors:C,$extractDirtyFields:L})}function Te({rulesDef:e,...t}){if(Tt(e,t.state))return jt({rulesDef:e,...t});if(Et(t.state,e)){if(Fe(t.state))return ke({rulesDef:e,...t});{let n=vue.effectScope().run(()=>{let R=vue.toRef(t.state.value?t.state:vue.ref({}));return vue.watch(()=>t.state.value,c=>{R.value=c;},{deep:true}),vue.watch(R,c=>{t.state.value=c;},{deep:true}),{fakeState:R}}),{state:o,...s}=t;return ke({rulesDef:e,...s,state:n.fakeState})}}else if(xt(e))return Ne({rulesDef:e,...t})}function Ie({initialState:e,options:t,scopeRules:r,state:n,customRules:o,shortcuts:s,schemaErrors:R,schemaMode:c=false,onValidate:$}){let m=Ke(),h=vue.ref();return h.value=ke({rootRules:r,rulesDef:r,state:n,customMessages:o?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:s,fieldName:"root",path:"",schemaErrors:R,rootSchemaErrors:R,schemaMode:c,onValidate:$}),vue.getCurrentScope()&&vue.onScopeDispose(()=>{h.value?.$unwatch();}),vue.reactive({regle:h})}function rt(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function o(s,R,c){let $=vue.isRef(R)?R:vue.computed(typeof R=="function"?R:()=>R),m={...n,...c},h=vue.isRef(s)?s:vue.ref(s),M=vue.ref({...Q(h.value)});return {r$:Ie({scopeRules:$,state:h,options:m,initialState:M,customRules:e,shortcuts:r}).regle}}return o}var Ue=rt();function nt(){function e(t,r){return r}return e}var at=nt();function _t({rules:e,modifiers:t,shortcuts:r}){let n=rt(e,t,r),o=nt();return {useRegle:n,inferRules:o}}function je(e,t){let r=t??false,n=vue.computed({get:()=>r?Object.values(e).map(l=>l.$value):Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$value])),set:l=>{r||typeof l=="object"&&Object.entries(l).forEach(([u,C])=>e[u].$value=C);}}),o=vue.computed({get:()=>Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$silentValue])),set:l=>{typeof l=="object"&&Object.entries(l).forEach(([u,C])=>e[u].$silentValue=C);}}),s=vue.computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$dirty)}),R=vue.computed(()=>Object.entries(e).some(([l,u])=>u?.$anyDirty)),c=vue.computed(()=>Object.entries(e).some(([l,u])=>u?.$invalid)),$=vue.computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$valid)}),m=vue.computed(()=>Object.entries(e).some(([l,u])=>u?.$error)),h=vue.computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$ready)}),M=vue.computed(()=>Object.entries(e).some(([l,u])=>u?.$pending)),x=vue.computed(()=>r?Object.entries(e).map(([l,u])=>u.$errors):Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$errors]))),P=vue.computed(()=>r?Object.entries(e).map(([l,u])=>u.$silentErrors):Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$silentErrors]))),O=vue.computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$edited)}),a=vue.computed(()=>Object.entries(e).some(([l,u])=>u?.$anyEdited)),w=vue.computed(()=>r?Object.values(e):e);function v(){Object.values(e).forEach(l=>{l.$reset();});}function b(){Object.values(e).forEach(l=>{l.$touch();});}function E(){Object.values(e).forEach(l=>{l.$resetAll();});}function i(l=true){return Object.values(e).map(u=>u.$extractDirtyFields(l))}function S(){Object.values(e).forEach(l=>{l.$clearExternalErrors();});}async function V(){try{let l=n.value;return {result:(await Promise.allSettled(Object.values(e).map(_=>_.$validate()))).every(_=>_.status==="fulfilled"?_.value.result===!0:!1),data:l}}catch{return {result:false,data:n.value}}}return vue.reactive({...!r&&{$silentValue:o},$errors:x,$silentErrors:P,$instances:w,$value:n,$dirty:s,$anyDirty:R,$invalid:c,$valid:$,$error:m,$pending:M,$ready:h,$edited:O,$anyEdited:a,$resetAll:E,$reset:v,$touch:b,$validate:V,$extractDirtyFields:i,$clearExternalErrors:S})}function Gt(e){function t(r){let n=vue.computed(()=>vue.toValue(r));R();let o=vue.ref(c(e.value)),s=vue.reactive({r$:o});function R(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}vue.watch(n,R),vue.watch(e,$=>{o.value=c($);},{deep:true});function c($){if(n.value){let m=$[n.value]??{};return je(m,true)}else return je($["~~global"]??{},true)}return {r$:s.r$}}return {useCollectScope:t}}function Wt(e,t){let r=t??Ue;return {useScopedRegle:(o,s,R)=>{let{namespace:c,...$}=R??{},m=vue.computed(()=>vue.toValue(c)),h=vue.ref(`${Object.keys(e.value).length+1}-${he()}`),M=vue.computed(()=>`instance-${h.value}`),{r$:x}=r(o,s,$);O(),ht(P),vue.watch(m,(a,w)=>{P(w),O();}),vue.getCurrentInstance()&&vue.onMounted(()=>{let a=vue.getCurrentInstance();typeof window<"u"&&a?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(a?.proxy?.$el?.parentElement)&&P();});function P(a){let w=a??m.value;w?e.value[w]&&delete e.value[w][M.value]:e.value["~~global"][M.value]&&delete e.value["~~global"][M.value];}function O(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][M.value]=x):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][M.value]=x);}return {r$:x,dispose:P,register:O}}}}function lt(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):bt(()=>vue.ref({"~~global":{}})))(),{useScopedRegle:n}=Wt(r,e?.customUseRegle),{useCollectScope:o}=Gt(r);return {useScopedRegle:n,useCollectScope:o}}
2
- exports.InternalRuleType=He;exports.createRule=qe;exports.createScopedUseRegle=lt;exports.defineRegleConfig=_t;exports.inferRules=at;exports.mergeRegles=je;exports.unwrapRuleParameters=ee;exports.useRegle=Ue;exports.useRootStorage=Ie;
1
+ 'use strict';var vue=require('vue');function Z(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var mt=Symbol("regle-rule");function Lt(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 Y(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>Y(n)))),r=="Map"&&(t=new Map([...e].map(n=>[Y(n[0]),Y(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Lt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=Y(e[n]);}return t}function ne(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Be(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)}var Le=(r=>(r.Inline="__inline",r.Async="__async",r))(Le||{});function gt(e,t){return e.some(r=>r[t])}function yt(e,t){return e.reduce((r,n)=>{let o=n[t]||[];return r.concat(o)},[])}function ee(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function vt(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function $t(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(R=>R.trim()).filter(R=>R.length>0).length:0}function He(e,...t){let{validator:r,type:n}=e,o=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(c,...$){return e.validator(c,...ee($.length?$:t))},message(c){return typeof e.message=="function"?e.message({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.message},active(c){return typeof e.active=="function"?e.active({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.active??true},tooltip(c){return typeof e.tooltip=="function"?e.tooltip({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.tooltip??[]},exec(c){let $=e.validator(c,...ee(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:o,_params:vt(t),_brand:mt}}function ze(e){if(typeof e.validator=="function"){let r=He(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if($t(e.validator)>1){let o=function(...s){return He(e,...s)};return o.validator=r.validator,o.message=r.message,o.active=r.active,o.tooltip=r.tooltip,o.type=r.type,o.exec=r.exec,o._validator=r.validator,o._message=r.message,o._active=r.active,o._tooltip=r.tooltip,o._type=e.type,o._message_pacthed=false,o._tooltip_pacthed=false,o._async=n,o}else return r}throw new Error("Validator must be a function")}function qe(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),o=vue.shallowRef(new Map),s=vue.shallowRef(new Map);function R(v){let b=t.value.get(v);if(b)return b;{let E=vue.ref({});return t.value.set(v,E),E}}function c(v){let b=r.value.get(v);if(b)return b;{let E=vue.ref([]);return r.value.set(v,E),E}}function $(v,b,E){s.value.set(`${v}-${b}`,E);}function m(v,b){return s.value.get(`${v}-${b}`)}function h(v,b){v&&b!=null&&s.value.delete(`${v}-${b}`);}function M(v,b){n.value.set(v,b);}function x(v){return n.value.get(v)??false}function P(v,b){e.value.set(v,b);}function O(v,b){let E=e.value.get(v);return E?a(b,E)?{valid:true}:{valid:false}:undefined}function a(v,b){let E=Object.keys(b),i=Object.keys(v);return i.length!==E.length||!i.every(V=>E.includes(V))?false:i.every(V=>{let l=v[V],u=b[V];return !u||!l||typeof l=="function"||typeof u=="function"||typeof l=="number"||typeof l=="boolean"?false:l._params?l._params?.every((C,_)=>{if(typeof u=="number"||typeof u=="boolean")return true;{let k=ee(u._params),J=ee(l._params);return k?.[_]===J?.[_]}}):true})}function w(v){let b=o.value.get(v);if(b)return b;{let E=vue.ref(false),i=vue.ref(true),S=vue.ref({}),V=vue.ref(false);return o.value.set(v,{$pending:E,$valid:i,$metadata:S,$validating:V}),{$pending:E,$valid:i,$metadata:S,$validating:V}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),o.value.clear(),s.value.clear();}),{addRuleDeclEntry:P,setDirtyEntry:M,checkRuleDeclEntry:O,getDirtyState:x,trySetRuleStatusRef:w,getFieldsEntry:R,getCollectionsEntry:c,getArrayStatus:m,addArrayStatus:$,deleteArrayStatus:h,arrayStatusStorage:s}}function Fe(e){return ne(e.value)}function Ke(e,t,r){let n=vue.effectScope(),o;return e instanceof Function?o=n.run(()=>e(t,r??0)):o=e,{scope:n,unwrapped:o}}function Ve(e,t,r){let n,o=(...s)=>new Promise(R=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...s])).then(R);},t);});return o.cancel=()=>{clearTimeout(n),n=undefined;},o}function Zt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let o=0;o<Math.min(r.length,n.length);o++){let s=Number(r[o]),R=Number(n[o]);if(s>R)return 1;if(R>s)return -1;if(!isNaN(s)&&isNaN(R))return 1;if(isNaN(s)&&!isNaN(R))return -1}return 0}var _e=Zt(vue.version,"3.5.0")!==-1;function er(){return Math.floor(Math.random()*Date.now()).toString()}function he(){return typeof window>"u"?er():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function St(e){return vue.getCurrentScope()?(vue.onScopeDispose(e),true):false}function ht(e){let t=false,r,n=vue.effectScope(true);return (...o)=>(t||(r=n.run(()=>e(...o)),t=true),r)}function bt(e,t){return Fe(e)||ne(t.value)&&!Z(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function Et(e,t){return !!e.value&&ne(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Tt(e){return !!e.value&&ne(e.value)}function we(e){return ne(e)&&"_validator"in e}function Pe(e){return typeof e.value!="function"}function xt(e){return ne(e)&&"$fields"in e}function Dt(e){return !!e&&"$rules"in e}function Je({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Ct({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function It({customMessages:e,rule:t,ruleKey:r,state:n,path:o,storage:s,$debounce:R,modifiers:c}){let $=vue.effectScope(),m={},h,M=vue.ref(false),{$pending:x,$valid:P,$metadata:O,$validating:a}=s.trySetRuleStatusRef(`${o}.${r}`);function w(){$=vue.effectScope(),m=$.run(()=>{let l=vue.ref(false),u=vue.ref(false),C=vue.ref(true),_=vue.ref(false),k=vue.ref(false),J=vue.computed(()=>({$value:n.value,$error:u.value,$dirty:l.value,$pending:_.value,$valid:k.value,$invalid:C.value,$rule:{$valid:P.value,$invalid:!P.value,$pending:x.value},$params:d.value,...O.value})),I=vue.computed(()=>Pe(t)?typeof t.value.active=="function"?t.value.active(J.value):!!t.value.active:true);function L(p){let T="",A=e?e[r]?.[p]:undefined;if(A&&(typeof A=="function"?T=A(J.value):T=A),Pe(t)){let Q=`_${p}_patched`;A&&!t.value[Q]||(typeof t.value[p]=="function"?T=t.value[p](J.value):T=t.value[p]??"");}return T}let ie=vue.computed(()=>{let p=L("message");return Z(p)&&(p="This field is not valid"),p}),de=vue.computed(()=>L("tooltip")),pe=vue.computed(()=>Pe(t)&&t.value.type?t.value.type:r),me=vue.computed(()=>Pe(t)?t.value.validator:t.value),d=vue.computed(()=>typeof t.value=="function"?[]:ee(t.value._params??[])),f=vue.computed(()=>`${o}.${pe.value}`);return {$active:I,$message:ie,$type:pe,$validator:me,$params:d,$path:f,$tooltip:de,$fieldValid:k,$fieldError:u,$fieldDirty:l,$fieldPending:_,$fieldInvalid:C}}),h=vue.watch(m?.$params,()=>{(c.$autoDirty.value||c.$rewardEarly.value&&m.$fieldError.value)&&i();});}w();function v(){P.value=true,m.$fieldDirty.value&&(x.value=true);}async function b(){let l=false;try{let u=m.$validator.value,C=u(n.value,...m.$params.value),_=n.value;v();let k;if(C instanceof Promise?k=await C:k=C,n.value!==_)return !0;if(typeof k=="boolean")l=k;else {let{$valid:J,...I}=k;l=J,O.value=I;}}catch{l=false;}finally{x.value=false;}return l}let E=Ve(b,R??200);async function i(){try{a.value=!0;let l=!1;if(we(t.value)&&t.value._async)l=await E();else {let u=m.$validator.value,C=u(n.value,...m.$params.value);if(C instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(C!=null)if(typeof C=="boolean")l=C;else {let{$valid:_,...k}=C;l=_,O.value=k;}}return P.value=l,l}catch{return false}finally{a.value=false;}}function S(){P.value=true,O.value={},x.value=false,a.value=false,w();}function V(){h(),$.stop(),$=vue.effectScope();}return vue.reactive({...m,$pending:x,$valid:P,$metadata:O,$haveAsync:M,$validating:a,$validate:i,$unwatch:V,$watch:w,$reset:S})}function Ne({state:e,rulesDef:t,customMessages:r,path:n,fieldName:o,storage:s,options:R,externalErrors:c,schemaErrors:$,schemaMode:m,onUnwatch:h,$isArray:M,initialState:x,shortcuts:P}){let O=vue.effectScope(),a,w=[],v,b,E,i,S,V=()=>{};function l(){let y=t.value,G=s.checkRuleDeclEntry(n,y);L.value=Object.fromEntries(Object.entries(y).filter(([B])=>B.startsWith("$"))),_(),I.value=Object.fromEntries(Object.entries(t.value).filter(([B])=>!B.startsWith("$")).map(([B,D])=>{if(D){let se=vue.toRef(()=>D);return [B,It({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:se,ruleKey:B,state:e,path:n,storage:s,$debounce:L.value.$debounce})]}return []}).filter(B=>!!B.length)),a.processShortcuts(),u(),G?.valid!=null&&(a.$dirty.value=s.getDirtyState(n),a.$dirty.value&&V()),s.addRuleDeclEntry(n,y);}function u(){V=a.$debounce.value?Ve(J,a.$debounce.value??a.$haveAnyAsyncRule?100:0):J;}function C(){I.value&&Object.entries(I.value).forEach(([y,G])=>{G.$unwatch();}),E(),S?.(),a.$dirty.value&&s.setDirtyEntry(n,a.$dirty.value),v?.(),b?.(),O.stop(),O=vue.effectScope(),w.forEach(y=>y.stop()),w=[],h?.(),i?.();}function _(){I.value&&Object.entries(I.value).forEach(([y,G])=>{G.$watch();}),a=O.run(()=>{let y=vue.ref(false),G=vue.ref(false),B=vue.computed(()=>y.value),D=vue.computed(()=>L.value.$debounce),se=vue.computed(()=>L.value.$lazy!=null?L.value.$lazy:vue.unref(R.lazy)!=null?vue.unref(R.lazy):false),le=vue.computed(()=>L.value.$rewardEarly!=null?L.value.$rewardEarly:vue.unref(R.rewardEarly)!=null?vue.unref(R.rewardEarly):false),ge=vue.computed(()=>L.value.$clearExternalErrorsOnChange!=null?L.value.$clearExternalErrorsOnChange:vue.unref(R.clearExternalErrorsOnChange)!=null?vue.unref(R.clearExternalErrorsOnChange):true),U=vue.computed(()=>L.value.$autoDirty!=null?L.value.$autoDirty:vue.unref(R.autoDirty)!=null?vue.unref(R.autoDirty):!le.value),j=vue.computed(()=>Object.entries(I.value).some(([ae,ue])=>ue.$validating)),K=vue.computed({get:()=>e.value,set(ae){v(),e.value=ae,k();}}),ye=vue.computed(()=>ve.value&&!Oe.value&&y.value),lt=vue.computed(()=>Je({field:{$rules:I.value,$error:ye.value,$externalErrors:c?.value,$schemaErrors:$?.value}})),ot=vue.computed(()=>Je({field:{$rules:I.value,$error:ye.value,$externalErrors:c?.value,$schemaErrors:$?.value},silent:true})),We=vue.computed(()=>y.value?x.value instanceof Date&&e.value instanceof Date?Be(x.value).getDate()!==Be(e.value).getDate():x.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(x.value)?e.value.length!==x.value.length:x.value!==e.value:false),st=vue.computed(()=>We.value),ut=vue.computed(()=>Ct({field:{$rules:I.value}})),it=vue.computed(()=>U.value?B.value&&!(ve.value||Oe.value):!(ve.value||Oe.value)),Oe=vue.computed(()=>G.value||!le.value?Object.entries(I.value).some(([ae,ue])=>ue.$pending):false),ve=vue.computed(()=>c?.value?.length||$?.value?.length?true:Me.value?false:!le.value||le.value&&G.value?Object.entries(I.value).some(([ae,ue])=>!ue.$valid):false),ct=vue.computed(()=>o),Me=vue.computed(()=>!!(Z(I.value)&&!m)),ft=vue.computed(()=>c?.value?.length||Me.value?false:y.value&&!Z(e.value)&&!j.value?m?!$?.value?.length:Object.values(I.value).every(ae=>ae.$valid&&ae.$active):false),Wt=vue.computed(()=>Object.entries(I.value).some(([ae,ue])=>ue.$haveAsync));function Bt(){P?.fields&&Object.entries(P.fields).forEach(([ae,ue])=>{let dt=vue.effectScope();Rt[ae]=dt.run(()=>{let pt=vue.ref();return vue.watchEffect(()=>{pt.value=ue(vue.reactive({$dirty:y,$externalErrors:c?.value??[],$value:e,$silentValue:K,$rules:I,$error:ye,$pending:Oe,$invalid:ve,$valid:ft,$errors:lt,$ready:it,$silentErrors:ot,$anyDirty:B,$tooltips:ut,$name:ct,$inactive:Me,$edited:We,$anyEdited:st}));}),pt}),w.push(dt);});}let Rt={};return vue.watch(ve,ae=>{ae||(G.value=false);}),{$error:ye,$pending:Oe,$invalid:ve,$valid:ft,$debounce:D,$lazy:se,$errors:lt,$ready:it,$silentErrors:ot,$rewardEarly:le,$autoDirty:U,$clearExternalErrorsOnChange:ge,$anyDirty:B,$edited:We,$anyEdited:st,$name:ct,$haveAnyAsyncRule:Wt,$shortcuts:Rt,$validating:j,$tooltips:ut,$dirty:y,triggerPunishment:G,processShortcuts:Bt,$silentValue:K,$inactive:Me}}),k(),E=vue.watch(a.$dirty,y=>{s.setDirtyEntry(n,y),Object.values(I.value).forEach(G=>{G.$fieldDirty=y;});}),S=vue.watch([a.$error,a.$valid,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(y=>{y.$fieldError=a.$error.value,y.$fieldInvalid=a.$invalid.value,y.$fieldPending=a.$pending.value,y.$fieldValid=a.$valid.value;});}),b=vue.watch(a.$valid,y=>{a.$rewardEarly.value&&y&&(a.triggerPunishment.value=false);}),i=vue.watch(a.$haveAnyAsyncRule,u);}function k(){v=vue.watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&l(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&f();},{deep:M?true:_e?1:true,flush:"post"});}function J(){Object.values(I.value).forEach(y=>{y.$validate();});}let I=vue.ref({}),L=vue.ref({});l();function ie(){f(),a.$dirty.value=false,a.triggerPunishment.value=false,s.setDirtyEntry(n,false),x.value=ne(e.value)?Y(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(I.value).forEach(([y,G])=>{G.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(y=>y.$validate());}function de(y=true,G=false){a.$dirty.value||(a.$dirty.value=true),G&&y?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V():y&&V();}async function pe(){try{let y=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:y};return m?{result:!$?.value?.length,data:y}:Z(I.value)?{result:!0,data:y}:{result:(await Promise.allSettled(Object.entries(I.value).map(([D,se])=>se.$validate()))).every(D=>D.status==="fulfilled"?D.value===!0:!1),data:y}}catch{return {result:false,data:e.value}}}function me(){C(),e.value=Y(x),ie();}function d(y=true){return a.$dirty.value?e.value:y?{_null:true}:null}function f(){c?.value?.length&&(c.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&V();let{$shortcuts:p,$validating:T,$autoDirty:A,$rewardEarly:Q,$clearExternalErrorsOnChange:g,$haveAnyAsyncRule:F,$debounce:H,$lazy:X,triggerPunishment:z,...oe}=a;return vue.reactive({...oe,$externalErrors:c,$value:e,$rules:I,...p,$reset:ie,$touch:de,$validate:pe,$unwatch:C,$watch:_,$resetAll:me,$extractDirtyFields:d,$clearExternalErrors:f})}function Xe({$id:e,path:t,index:r,options:n,storage:o,stateValue:s,customMessages:R,rules:c,externalErrors:$,schemaErrors:m,initialState:h,shortcuts:M,fieldName:x,schemaMode:P}){let O=c.$key?c.$key:he(),a=`${t}.${String(O)}`;typeof s.value=="object"&&s.value!=null&&(s.value.$id?a=`${t}.${s.value.$id}`:Object.defineProperties(s.value,{$id:{value:O,enumerable:false,configurable:false,writable:false}}));let w=vue.toRef($?.value??[],r),v=vue.computed(()=>m?.value?.[r]),b=Te({state:s,rulesDef:vue.toRef(()=>c),customMessages:R,path:a,storage:o,options:n,externalErrors:w,schemaErrors:v,initialState:h,shortcuts:M,fieldName:x,schemaMode:P});if(b){let E=s.value?.$id;b.$id=E??String(O),o.addArrayStatus(e,b.$id,b);}return b}function At({state:e,rulesDef:t,customMessages:r,path:n,storage:o,options:s,externalErrors:R,schemaErrors:c,schemaMode:$,initialState:m,shortcuts:h,fieldName:M}){let x=vue.effectScope(),P,O=vue.effectScope(),a,w=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let v=vue.ref(),b=vue.ref(e.value),E,i=vue.ref({}),S=o.getCollectionsEntry(n);a=O.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(f=>typeof f!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(f=>we(f)||typeof f=="function"):false)})),V(),C();function V(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(v.value=he(),Object.defineProperties(e.value,{$id:{value:v.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(v.value=e.value.$id)),b.value=i.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?S.value=e.value.filter(d=>typeof d=="object").map((d,f)=>{let{scope:p,unwrapped:T}=Ke(t.value.$each,vue.toRef(()=>d),f);p&&w.push(p);let A=vue.toRef(m.value??[],f),Q=vue.toRef(R?.value??{},"$each"),g=vue.computed(()=>c?.value?.$each),F=Xe({$id:v.value,path:n,customMessages:r,rules:T??{},stateValue:vue.toRef(()=>d),index:f,options:s,storage:o,externalErrors:Q,schemaErrors:g,initialState:A,shortcuts:h,fieldName:M,schemaMode:$});return F||null}).filter(d=>!!d):S.value=[],i.value=Ne({state:e,rulesDef:t,customMessages:r,path:n,storage:o,options:s,externalErrors:vue.toRef(R?.value??{},"$self"),schemaErrors:vue.computed(()=>c?.value?.$self),$isArray:true,initialState:m,shortcuts:h,fieldName:M,schemaMode:$});}function l(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let d=Y(S.value);S.value=e.value.filter(f=>typeof f=="object").map((f,p)=>{let T=vue.toRef(()=>f);if(f.$id&&S.value.find(A=>A.$id===f.$id)){let A=o.getArrayStatus(v.value,f.$id);return A?(A.$value=T,A):null}else {let{scope:A,unwrapped:Q}=Ke(t.value.$each,T,p);A&&w.push(A);let g=vue.toRef(R?.value??{},"$each"),F=vue.computed(()=>c?.value?.$each??[]),H=Xe({$id:v.value,path:n,customMessages:r,rules:Q??{},stateValue:T,index:p,options:s,storage:o,externalErrors:g,schemaErrors:F,initialState:vue.toRef(m.value??[],p),shortcuts:h,fieldName:M,schemaMode:$});return H||null}}).filter(f=>!!f),d.filter(f=>!e.value?.find(p=>f.$id===p.$id)).forEach((f,p)=>{o.deleteArrayStatus(v.value,p.toString());});}else S.value=[];}function u(){E=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?V():l();},{deep:_e?1:true,flush:"pre"});}function C(){u(),x=vue.effectScope(),P=x.run(()=>{let d=vue.computed({get:()=>e.value,set(D){E(),e.value=D,u();}}),f=vue.computed(()=>i.value.$dirty&&(!S.value.length||S.value.every(D=>D.$dirty))),p=vue.computed(()=>i.value.$anyDirty||S.value.some(D=>D.$anyDirty)),T=vue.computed(()=>i.value.$invalid||S.value.some(D=>D.$invalid)),A=vue.computed(()=>(Z(i.value.$rules)?true:i.value.$valid)&&(!S.value.length||S.value.every(D=>D.$valid))),Q=vue.computed(()=>i.value.$error||S.value.some(D=>D.$error)),g=vue.computed(()=>!(T.value||F.value)),F=vue.computed(()=>i.value.$pending||S.value.some(D=>D.$pending)),H=vue.computed(()=>!!S.value.length&&S.value.every(D=>D.$edited)),X=vue.computed(()=>i.value.$anyEdited||S.value.some(D=>D.$anyEdited)),z=vue.computed(()=>({$self:i.value.$errors,$each:S.value.map(D=>D.$errors)})),oe=vue.computed(()=>({$self:i.value.$silentErrors,$each:S.value.map(D=>D.$silentErrors)})),y=vue.computed(()=>M);function G(){h?.collections&&Object.entries(h?.collections).forEach(([D,se])=>{let le=vue.effectScope();B[D]=le.run(()=>{let ge=vue.ref();return vue.watchEffect(()=>{ge.value=se(vue.reactive({$dirty:f,$error:Q,$silentValue:d,$pending:F,$invalid:T,$valid:A,$errors:z,$ready:g,$silentErrors:oe,$anyDirty:p,$name:y,$each:S,$self:i,$value:e,$edited:H,$anyEdited:X}));}),ge}),w.push(le);});}let B={};return G(),{$dirty:f,$anyDirty:p,$invalid:T,$valid:A,$error:Q,$pending:F,$errors:z,$silentErrors:oe,$ready:g,$name:y,$shortcuts:B,$silentValue:d,$edited:H,$anyEdited:X}}),a.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function _(){E&&E(),i.value&&i.value.$unwatch(),S.value&&S.value.forEach(d=>{"$dirty"in d&&d.$unwatch();}),x.stop(),x=vue.effectScope(),O.stop(),O=vue.effectScope(true),w.forEach(d=>d.stop()),w=[];}function k(d=true,f=false){i.value.$touch(d,f),S.value.forEach(p=>{p.$touch(d,f);});}function J(){i.value.$reset(),S.value.forEach(d=>{d.$reset();});}async function I(){let d=e.value;try{return {result:(await Promise.allSettled([i.value.$validate(),...S.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}catch{return {result:false,data:d}}}function L(){i.value.$clearExternalErrors(),S.value.forEach(d=>{d.$clearExternalErrors();});}function ie(d=true){let f=S.value.map(p=>{if(xt(p))return p.$extractDirtyFields(d)});return d&&f.every(p=>Z(p))&&(f=[]),f}function de(){_(),e.value=Y(m.value),J();}let{$shortcuts:pe,...me}=P;return vue.reactive({$self:i,...me,...pe,$each:S,$value:e,$validate:I,$unwatch:_,$watch:C,$touch:k,$reset:J,$resetAll:de,$extractDirtyFields:ie,$clearExternalErrors:L})}function ke({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:o,schemaErrors:s,rootSchemaErrors:R,validationGroups:c,initialState:$,fieldName:m,...h}){let M=vue.effectScope(),x,P=[],O=null,a=null,w=null,v=null;async function E(d=true){let f=Object.entries(e.value),p=Object.fromEntries(f.filter(([g,F])=>!!F).map(([g,F])=>{if(F){let H=vue.toRef(t.value??{},g),X=vue.toRef(()=>F),z=vue.toRef(o?.value??{},g),oe=vue.computed(()=>s?.value?.[g]),y=vue.toRef($?.value??{},g);return [g,Te({state:H,rulesDef:X,path:r?`${r}.${g}`:g,externalErrors:z,schemaErrors:oe,initialState:y,fieldName:g,...h})]}return []})),T=Object.fromEntries(Object.entries(vue.unref(o)??{}).filter(([g,F])=>!(g in e.value)&&!!F).map(([g])=>{let F=vue.toRef(t.value??{},g),H=vue.toRef(o?.value??{},g),X=vue.computed(()=>s?.value?.[g]),z=vue.toRef($?.value??{},g);return [g,Te({state:F,rulesDef:vue.computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:X,initialState:z,fieldName:g,...h})]})),A=Object.fromEntries(Object.entries(vue.unref(s)??{}).map(([g])=>{let F=vue.toRef(t.value??{},g),H=vue.toRef(o?.value??{},g),X=vue.computed(()=>s?.value?.[g]),z=vue.toRef($?.value??{},g);return [g,Te({state:F,rulesDef:vue.computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:X,initialState:z,fieldName:g,...h})]})),Q=Object.fromEntries(Object.entries(t.value??{}).filter(([g])=>!(g in e.value)&&!(g in(T??{}))&&!(g in(A??{}))).map(([g])=>{let F=vue.toRef(t.value??{},g),H=vue.toRef(o?.value??{},g),X=vue.computed(()=>s?.value?.[g]),z=vue.toRef($?.value??{},g);return [g,Te({state:F,rulesDef:vue.computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:X,initialState:z,fieldName:g,...h})]}));i.value={...p,...T,...A,...Q},d&&l();}let i=h.storage.getFieldsEntry(r);E();function S(){o&&(w=vue.watch(o,()=>{u(),E();},{deep:true}));}function V(){v=vue.watch(t,()=>{u(),E(),k(true,true);},{flush:"sync"});}function l(){n&&(O?.(),O=vue.watch(n,()=>{u(),E();},{deep:true,flush:"post"}),S()),R&&(a?.(),a=vue.watch(R,()=>{u(),E();},{deep:true,flush:"post"})),V(),x=M.run(()=>{let d=vue.computed({get:()=>t.value,set(U){u(),t.value=U,E();}}),f=vue.computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,j])=>j?.$dirty)),p=vue.computed(()=>Object.entries(i.value).some(([U,j])=>j?.$anyDirty)),T=vue.computed(()=>Object.entries(i.value).some(([U,j])=>j?.$invalid)),A=vue.computed(()=>{let U=Object.entries(i.value).filter(([j,K])=>Dt(K)?!K.$inactive:true);return U.length?U.every(([j,K])=>K?.$valid):false}),Q=vue.computed(()=>p.value&&!z.value&&T.value),g=vue.computed(()=>vue.unref(h.options.rewardEarly)!=null?vue.unref(h.options.rewardEarly):false),F=vue.computed(()=>vue.unref(h.options.autoDirty)!=null?vue.unref(h.options.autoDirty):!g.value),H=vue.computed(()=>F.value?p.value&&!(T.value||z.value):!(T.value||z.value)),X=vue.ref(false),z=vue.computed(()=>X.value||Object.entries(i.value).some(([U,j])=>j?.$pending)),oe=vue.computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,j])=>[U,j?.$errors]))),y=vue.computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,j])=>[U,j?.$silentErrors]))),G=vue.computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,j])=>j?.$edited)),B=vue.computed(()=>Object.entries(i.value).some(([U,j])=>j?.$anyEdited)),D=vue.computed(()=>m);function se(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,j])=>{let K=vue.effectScope();ge[U]=K.run(()=>{let ye=vue.ref();return vue.watchEffect(()=>{ye.value=j(vue.reactive({$dirty:f,$value:t,$silentValue:d,$error:Q,$pending:z,$invalid:T,$valid:A,$ready:H,$anyDirty:p,$name:D,$silentErrors:y,$errors:oe,$fields:i,$edited:G,$anyEdited:B}));}),ye}),P.push(K);});}let le=vue.computed({get:()=>c?Object.fromEntries(Object.entries(c?.(i.value)??{}).map(([U,j])=>j.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(K=>[K,gt(j,K)])),...Object.fromEntries(["$errors","$silentErrors"].map(K=>[K,yt(j,K)]))}]:[])):{},set(){}}),ge={};return se(),{$dirty:f,$anyDirty:p,$invalid:T,$valid:A,$error:Q,$pending:z,$errors:oe,$silentErrors:y,$ready:H,$name:D,$shortcuts:ge,$groups:le,$silentValue:d,$edited:G,$anyEdited:B,$localPending:X}});}function u(){O?.(),w?.(),v?.(),a?.(),P=[],x={},i.value&&Object.entries(i.value).forEach(([d,f])=>{f.$unwatch();});}function C(){Object.entries(i.value).forEach(([d,f])=>{f.$clearExternalErrors();});}function _(){w?.(),Object.values(i.value).forEach(d=>{d.$reset();}),$.value={...Y(t.value)},S();}function k(d=true,f=false){Object.values(i.value).forEach(p=>{p.$touch(d,f);});}async function J(){u(),t.value=Y({...$.value??{}}),_(),E();}function I(d){return d.filter(([f,p])=>ne(p)?!(p&&typeof p=="object"&&"_null"in p)&&!Z(p):Array.isArray(p)?p.length:true)}function L(d=true){let f=Object.entries(i.value).map(([p,T])=>[p,T.$extractDirtyFields(d)]);return d&&(f=I(f)),Object.fromEntries(f)}async function ie(){try{if(h.schemaMode)return h.onValidate?(k(!1),x.$localPending.value=!0,h.onValidate()):{result:!1,data:t.value};{let d=t.value;return {result:(await Promise.allSettled(Object.values(i.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}}catch{return {result:false,data:t.value}}finally{x.$localPending.value=false;}}let{$shortcuts:de,$localPending:pe,...me}=x;return vue.reactive({...me,...de,$fields:i,$value:t,$resetAll:J,$reset:_,$touch:k,$validate:ie,$unwatch:u,$watch:l,$clearExternalErrors:C,$extractDirtyFields:L})}function Te({rulesDef:e,...t}){if(Et(e,t.state))return At({rulesDef:e,...t});if(bt(t.state,e)){if(Fe(t.state))return ke({rulesDef:e,...t});{let n=vue.effectScope().run(()=>{let R=vue.toRef(t.state.value?t.state:vue.ref({}));return vue.watch(()=>t.state.value,c=>{R.value=c;},{deep:true}),vue.watch(R,c=>{t.state.value=c;},{deep:true}),{fakeState:R}}),{state:o,...s}=t;return ke({rulesDef:e,...s,state:n.fakeState})}}else if(Tt(e))return Ne({rulesDef:e,...t})}function Ie({initialState:e,options:t,scopeRules:r,state:n,customRules:o,shortcuts:s,schemaErrors:R,schemaMode:c=false,onValidate:$}){let m=qe(),h=vue.ref();return h.value=ke({rootRules:r,rulesDef:r,state:n,customMessages:o?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:s,fieldName:"root",path:"",schemaErrors:R,rootSchemaErrors:R,schemaMode:c,onValidate:$}),vue.getCurrentScope()&&vue.onScopeDispose(()=>{h.value?.$unwatch();}),vue.reactive({regle:h})}function tt(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function o(s,R,c){let $=vue.isRef(R)?R:vue.computed(typeof R=="function"?R:()=>R),m={...n,...c},h=vue.isRef(s)?s:vue.ref(s),M=vue.ref({...Y(h.value)});return {r$:Ie({scopeRules:$,state:h,options:m,initialState:M,customRules:e,shortcuts:r}).regle}}return o}var Ue=tt();function rt(){function e(t,r){return r}return e}var nt=rt();function Vt({rules:e,modifiers:t,shortcuts:r}){let n=tt(e,t,r),o=rt();return {useRegle:n,inferRules:o}}function je(e,t){let r=t??false,n=vue.computed({get:()=>r?Object.values(e).map(l=>l.$value):Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$value])),set:l=>{r||typeof l=="object"&&Object.entries(l).forEach(([u,C])=>e[u].$value=C);}}),o=vue.computed({get:()=>Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$silentValue])),set:l=>{typeof l=="object"&&Object.entries(l).forEach(([u,C])=>e[u].$silentValue=C);}}),s=vue.computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$dirty)}),R=vue.computed(()=>Object.entries(e).some(([l,u])=>u?.$anyDirty)),c=vue.computed(()=>Object.entries(e).some(([l,u])=>u?.$invalid)),$=vue.computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$valid)}),m=vue.computed(()=>Object.entries(e).some(([l,u])=>u?.$error)),h=vue.computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$ready)}),M=vue.computed(()=>Object.entries(e).some(([l,u])=>u?.$pending)),x=vue.computed(()=>r?Object.entries(e).map(([l,u])=>u.$errors):Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$errors]))),P=vue.computed(()=>r?Object.entries(e).map(([l,u])=>u.$silentErrors):Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$silentErrors]))),O=vue.computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$edited)}),a=vue.computed(()=>Object.entries(e).some(([l,u])=>u?.$anyEdited)),w=vue.computed(()=>r?Object.values(e):e);function v(){Object.values(e).forEach(l=>{l.$reset();});}function b(){Object.values(e).forEach(l=>{l.$touch();});}function E(){Object.values(e).forEach(l=>{l.$resetAll();});}function i(l=true){return Object.values(e).map(u=>u.$extractDirtyFields(l))}function S(){Object.values(e).forEach(l=>{l.$clearExternalErrors();});}async function V(){try{let l=n.value;return {result:(await Promise.allSettled(Object.values(e).map(_=>_.$validate()))).every(_=>_.status==="fulfilled"?_.value.result===!0:!1),data:l}}catch{return {result:false,data:n.value}}}return vue.reactive({...!r&&{$silentValue:o},$errors:x,$silentErrors:P,$instances:w,$value:n,$dirty:s,$anyDirty:R,$invalid:c,$valid:$,$error:m,$pending:M,$ready:h,$edited:O,$anyEdited:a,$resetAll:E,$reset:v,$touch:b,$validate:V,$extractDirtyFields:i,$clearExternalErrors:S})}function Nt(e){function t(r){let n=vue.computed(()=>vue.toValue(r));R();let o=vue.ref(c(e.value)),s=vue.reactive({r$:o});function R(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}vue.watch(n,R),vue.watch(e,$=>{o.value=c($);},{deep:true});function c($){if(n.value){let m=$[n.value]??{};return je(m,true)}else return je($["~~global"]??{},true)}return {r$:s.r$}}return {useCollectScope:t}}function Ut(e,t){let r=t??Ue;return {useScopedRegle:(o,s,R)=>{let{namespace:c,...$}=R??{},m=vue.computed(()=>vue.toValue(c)),h=vue.ref(`${Object.keys(e.value).length+1}-${he()}`),M=vue.computed(()=>`instance-${h.value}`),{r$:x}=r(o,s,$);O(),St(P),vue.watch(m,(a,w)=>{P(w),O();}),vue.getCurrentInstance()&&vue.onMounted(()=>{let a=vue.getCurrentInstance();typeof window<"u"&&a?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(a?.proxy?.$el?.parentElement)&&P();});function P(a){let w=a??m.value;w?e.value[w]&&delete e.value[w][M.value]:e.value["~~global"][M.value]&&delete e.value["~~global"][M.value];}function O(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][M.value]=x):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][M.value]=x);}return {r$:x,dispose:P,register:O}}}}function at(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):ht(()=>vue.ref({"~~global":{}})))(),{useScopedRegle:n}=Ut(r,e?.customUseRegle),{useCollectScope:o}=Nt(r);return {useScopedRegle:n,useCollectScope:o}}
2
+ exports.InternalRuleType=Le;exports.createRule=ze;exports.createScopedUseRegle=at;exports.defineRegleConfig=Vt;exports.inferRules=nt;exports.mergeRegles=je;exports.unwrapRuleParameters=ee;exports.useRegle=Ue;exports.useRootStorage=Ie;
@@ -1,2 +1,2 @@
1
- import {toValue,version,ref,getCurrentScope,onScopeDispose,reactive,computed,shallowRef,effectScope,watch,getCurrentInstance,onMounted,isRef,toRef,unref,watchEffect}from'vue';function Y(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var gt=Symbol("regle-rule");function Ht(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function Q(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>Q(n)))),r=="Map"&&(t=new Map([...e].map(n=>[Q(n[0]),Q(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Ht(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=Q(e[n]);}return t}function ne(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Be(e){if(Y(e))return false;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let r=new Date(e);if(r.toString()==="Invalid Date")return !1;t=r;}return !!t}catch{return false}}function Le(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}var He=(r=>(r.Inline="__inline",r.Async="__async",r))(He||{});function yt(e,t){return e.some(r=>r[t])}function vt(e,t){return e.reduce((r,n)=>{let o=n[t]||[];return r.concat(o)},[])}function ee(e){try{return e.map(t=>toValue(t))}catch{return []}}function $t(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function St(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(R=>R.trim()).filter(R=>R.length>0).length:0}function ze(e,...t){let{validator:r,type:n}=e,o=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(c,...$){return e.validator(c,...ee($.length?$:t))},message(c){return typeof e.message=="function"?e.message({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.message},active(c){return typeof e.active=="function"?e.active({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.active??true},tooltip(c){return typeof e.tooltip=="function"?e.tooltip({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.tooltip??[]},exec(c){let $=e.validator(c,...ee(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:o,_params:$t(t),_brand:gt}}function qe(e){if(typeof e.validator=="function"){let r=ze(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(St(e.validator)>1){let o=function(...s){return ze(e,...s)};return o.validator=r.validator,o.message=r.message,o.active=r.active,o.tooltip=r.tooltip,o.type=r.type,o.exec=r.exec,o._validator=r.validator,o._message=r.message,o._active=r.active,o._tooltip=r.tooltip,o._type=e.type,o._message_pacthed=false,o._tooltip_pacthed=false,o._async=n,o}else return r}throw new Error("Validator must be a function")}function Ke(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),o=shallowRef(new Map),s=shallowRef(new Map);function R(v){let b=t.value.get(v);if(b)return b;{let E=ref({});return t.value.set(v,E),E}}function c(v){let b=r.value.get(v);if(b)return b;{let E=ref([]);return r.value.set(v,E),E}}function $(v,b,E){s.value.set(`${v}-${b}`,E);}function m(v,b){return s.value.get(`${v}-${b}`)}function h(v,b){v&&b!=null&&s.value.delete(`${v}-${b}`);}function M(v,b){n.value.set(v,b);}function x(v){return n.value.get(v)??false}function P(v,b){e.value.set(v,b);}function O(v,b){let E=e.value.get(v);return E?a(b,E)?{valid:true}:{valid:false}:undefined}function a(v,b){let E=Object.keys(b),i=Object.keys(v);return i.length!==E.length||!i.every(V=>E.includes(V))?false:i.every(V=>{let l=v[V],u=b[V];return !u||!l||typeof l=="function"||typeof u=="function"||typeof l=="number"||typeof l=="boolean"?false:l._params?l._params?.every((C,_)=>{if(typeof u=="number"||typeof u=="boolean")return true;{let k=ee(u._params),J=ee(l._params);return k?.[_]===J?.[_]}}):true})}function w(v){let b=o.value.get(v);if(b)return b;{let E=ref(false),i=ref(true),S=ref({}),V=ref(false);return o.value.set(v,{$pending:E,$valid:i,$metadata:S,$validating:V}),{$pending:E,$valid:i,$metadata:S,$validating:V}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),o.value.clear(),s.value.clear();}),{addRuleDeclEntry:P,setDirtyEntry:M,checkRuleDeclEntry:O,getDirtyState:x,trySetRuleStatusRef:w,getFieldsEntry:R,getCollectionsEntry:c,getArrayStatus:m,addArrayStatus:$,deleteArrayStatus:h,arrayStatusStorage:s}}function Fe(e){return ne(e.value)}function Je(e,t,r){let n=effectScope(),o;return e instanceof Function?o=n.run(()=>e(t,r??0)):o=e,{scope:n,unwrapped:o}}function Ve(e,t,r){let n,o=(...s)=>new Promise(R=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...s])).then(R);},t);});return o.cancel=()=>{clearTimeout(n),n=undefined;},o}function er(e,t){let r=String(e).split("."),n=String(t).split(".");for(let o=0;o<Math.min(r.length,n.length);o++){let s=Number(r[o]),R=Number(n[o]);if(s>R)return 1;if(R>s)return -1;if(!isNaN(s)&&isNaN(R))return 1;if(isNaN(s)&&!isNaN(R))return -1}return 0}var _e=er(version,"3.5.0")!==-1;function tr(){return Math.floor(Math.random()*Date.now()).toString()}function he(){return typeof window>"u"?tr():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function ht(e){return getCurrentScope()?(onScopeDispose(e),true):false}function bt(e){let t=false,r,n=effectScope(true);return (...o)=>(t||(r=n.run(()=>e(...o)),t=true),r)}function Et(e,t){return Fe(e)||ne(t.value)&&!Y(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function Tt(e,t){return !!e.value&&ne(e.value)&&"$each"in e.value||Array.isArray(t.value)}function xt(e){return !!e.value&&ne(e.value)}function we(e){return ne(e)&&"_validator"in e}function Pe(e){return typeof e.value!="function"}function Dt(e){return ne(e)&&"$fields"in e}function Ct(e){return !!e&&"$rules"in e}function Ye({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 It({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 Ot({customMessages:e,rule:t,ruleKey:r,state:n,path:o,storage:s,$debounce:R,modifiers:c}){let $=effectScope(),m={},h,M=ref(false),{$pending:x,$valid:P,$metadata:O,$validating:a}=s.trySetRuleStatusRef(`${o}.${r}`);function w(){$=effectScope(),m=$.run(()=>{let l=ref(false),u=ref(false),C=ref(true),_=ref(false),k=ref(false),J=computed(()=>({$value:n.value,$error:u.value,$dirty:l.value,$pending:_.value,$valid:k.value,$invalid:C.value,$rule:{$valid:P.value,$invalid:!P.value,$pending:x.value},$params:d.value,...O.value})),I=computed(()=>Pe(t)?typeof t.value.active=="function"?t.value.active(J.value):!!t.value.active:true);function L(p){let T="",A=e?e[r]?.[p]:undefined;if(A&&(typeof A=="function"?T=A(J.value):T=A),Pe(t)){let X=`_${p}_patched`;A&&!t.value[X]||(typeof t.value[p]=="function"?T=t.value[p](J.value):T=t.value[p]??"");}return T}let ie=computed(()=>{let p=L("message");return Y(p)&&(p="This field is not valid"),p}),de=computed(()=>L("tooltip")),pe=computed(()=>Pe(t)&&t.value.type?t.value.type:r),me=computed(()=>Pe(t)?t.value.validator:t.value),d=computed(()=>typeof t.value=="function"?[]:ee(t.value._params??[])),f=computed(()=>`${o}.${pe.value}`);return {$active:I,$message:ie,$type:pe,$validator:me,$params:d,$path:f,$tooltip:de,$fieldValid:k,$fieldError:u,$fieldDirty:l,$fieldPending:_,$fieldInvalid:C}}),h=watch(m?.$params,()=>{(c.$autoDirty.value||c.$rewardEarly.value&&m.$fieldError.value)&&i();});}w();function v(){P.value=true,m.$fieldDirty.value&&(x.value=true);}async function b(){let l=false;try{let u=m.$validator.value,C=u(n.value,...m.$params.value),_=n.value;v();let k;if(C instanceof Promise?k=await C:k=C,n.value!==_)return !0;if(typeof k=="boolean")l=k;else {let{$valid:J,...I}=k;l=J,O.value=I;}}catch{l=false;}finally{x.value=false;}return l}let E=Ve(b,R??200);async function i(){try{a.value=!0;let l=!1;if(we(t.value)&&t.value._async)l=await E();else {let u=m.$validator.value,C=u(n.value,...m.$params.value);if(C instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(C!=null)if(typeof C=="boolean")l=C;else {let{$valid:_,...k}=C;l=_,O.value=k;}}return P.value=l,l}catch{return false}finally{a.value=false;}}function S(){P.value=true,O.value={},x.value=false,a.value=false,w();}function V(){h(),$.stop(),$=effectScope();}return reactive({...m,$pending:x,$valid:P,$metadata:O,$haveAsync:M,$validating:a,$validate:i,$unwatch:V,$watch:w,$reset:S})}function Ne({state:e,rulesDef:t,customMessages:r,path:n,fieldName:o,storage:s,options:R,externalErrors:c,schemaErrors:$,schemaMode:m,onUnwatch:h,$isArray:M,initialState:x,shortcuts:P}){let O=effectScope(),a,w=[],v,b,E,i,S,V=()=>{};function l(){let y=t.value,G=s.checkRuleDeclEntry(n,y);L.value=Object.fromEntries(Object.entries(y).filter(([B])=>B.startsWith("$"))),_(),I.value=Object.fromEntries(Object.entries(t.value).filter(([B])=>!B.startsWith("$")).map(([B,D])=>{if(D){let se=toRef(()=>D);return [B,Ot({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:se,ruleKey:B,state:e,path:n,storage:s,$debounce:L.value.$debounce})]}return []}).filter(B=>!!B.length)),a.processShortcuts(),u(),G?.valid!=null&&(a.$dirty.value=s.getDirtyState(n),a.$dirty.value&&V()),s.addRuleDeclEntry(n,y);}function u(){V=a.$debounce.value?Ve(J,a.$debounce.value??a.$haveAnyAsyncRule?100:0):J;}function C(){I.value&&Object.entries(I.value).forEach(([y,G])=>{G.$unwatch();}),E(),S?.(),a.$dirty.value&&s.setDirtyEntry(n,a.$dirty.value),v?.(),b?.(),O.stop(),O=effectScope(),w.forEach(y=>y.stop()),w=[],h?.(),i?.();}function _(){I.value&&Object.entries(I.value).forEach(([y,G])=>{G.$watch();}),a=O.run(()=>{let y=ref(false),G=ref(false),B=computed(()=>y.value),D=computed(()=>L.value.$debounce),se=computed(()=>L.value.$lazy!=null?L.value.$lazy:unref(R.lazy)!=null?unref(R.lazy):false),le=computed(()=>L.value.$rewardEarly!=null?L.value.$rewardEarly:unref(R.rewardEarly)!=null?unref(R.rewardEarly):false),ge=computed(()=>L.value.$clearExternalErrorsOnChange!=null?L.value.$clearExternalErrorsOnChange:unref(R.clearExternalErrorsOnChange)!=null?unref(R.clearExternalErrorsOnChange):true),U=computed(()=>L.value.$autoDirty!=null?L.value.$autoDirty:unref(R.autoDirty)!=null?unref(R.autoDirty):!le.value),j=computed(()=>Object.entries(I.value).some(([ae,ue])=>ue.$validating)),K=computed({get:()=>e.value,set(ae){v(),e.value=ae,k();}}),ye=computed(()=>ve.value&&!Oe.value&&y.value),ot=computed(()=>Ye({field:{$rules:I.value,$error:ye.value,$externalErrors:c?.value,$schemaErrors:$?.value}})),st=computed(()=>Ye({field:{$rules:I.value,$error:ye.value,$externalErrors:c?.value,$schemaErrors:$?.value},silent:true})),We=computed(()=>y.value?Be(x.value)&&Be(e.value)?Le(x.value).getDate()!==Le(e.value).getDate():x.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(x.value)?e.value.length!==x.value.length:x.value!==e.value:false),ut=computed(()=>We.value),it=computed(()=>It({field:{$rules:I.value}})),ct=computed(()=>U.value?B.value&&!(ve.value||Oe.value):!(ve.value||Oe.value)),Oe=computed(()=>G.value||!le.value?Object.entries(I.value).some(([ae,ue])=>ue.$pending):false),ve=computed(()=>c?.value?.length||$?.value?.length?true:Me.value?false:!le.value||le.value&&G.value?Object.entries(I.value).some(([ae,ue])=>!ue.$valid):false),ft=computed(()=>o),Me=computed(()=>!!(Y(I.value)&&!m)),Rt=computed(()=>c?.value?.length||Me.value?false:y.value&&!Y(e.value)&&!j.value?m?!$?.value?.length:Object.values(I.value).every(ae=>ae.$valid&&ae.$active):false),Bt=computed(()=>Object.entries(I.value).some(([ae,ue])=>ue.$haveAsync));function Lt(){P?.fields&&Object.entries(P.fields).forEach(([ae,ue])=>{let pt=effectScope();dt[ae]=pt.run(()=>{let mt=ref();return watchEffect(()=>{mt.value=ue(reactive({$dirty:y,$externalErrors:c?.value??[],$value:e,$silentValue:K,$rules:I,$error:ye,$pending:Oe,$invalid:ve,$valid:Rt,$errors:ot,$ready:ct,$silentErrors:st,$anyDirty:B,$tooltips:it,$name:ft,$inactive:Me,$edited:We,$anyEdited:ut}));}),mt}),w.push(pt);});}let dt={};return watch(ve,ae=>{ae||(G.value=false);}),{$error:ye,$pending:Oe,$invalid:ve,$valid:Rt,$debounce:D,$lazy:se,$errors:ot,$ready:ct,$silentErrors:st,$rewardEarly:le,$autoDirty:U,$clearExternalErrorsOnChange:ge,$anyDirty:B,$edited:We,$anyEdited:ut,$name:ft,$haveAnyAsyncRule:Bt,$shortcuts:dt,$validating:j,$tooltips:it,$dirty:y,triggerPunishment:G,processShortcuts:Lt,$silentValue:K,$inactive:Me}}),k(),E=watch(a.$dirty,y=>{s.setDirtyEntry(n,y),Object.values(I.value).forEach(G=>{G.$fieldDirty=y;});}),S=watch([a.$error,a.$valid,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(y=>{y.$fieldError=a.$error.value,y.$fieldInvalid=a.$invalid.value,y.$fieldPending=a.$pending.value,y.$fieldValid=a.$valid.value;});}),b=watch(a.$valid,y=>{a.$rewardEarly.value&&y&&(a.triggerPunishment.value=false);}),i=watch(a.$haveAnyAsyncRule,u);}function k(){v=watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&l(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&f();},{deep:M?true:_e?1:true,flush:"post"});}function J(){Object.values(I.value).forEach(y=>{y.$validate();});}let I=ref({}),L=ref({});l();function ie(){f(),a.$dirty.value=false,a.triggerPunishment.value=false,s.setDirtyEntry(n,false),x.value=ne(e.value)?Q(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(I.value).forEach(([y,G])=>{G.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(y=>y.$validate());}function de(y=true,G=false){a.$dirty.value||(a.$dirty.value=true),G&&y?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V():y&&V();}async function pe(){try{let y=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:y};return m?{result:!$?.value?.length,data:y}:Y(I.value)?{result:!0,data:y}:{result:(await Promise.allSettled(Object.entries(I.value).map(([D,se])=>se.$validate()))).every(D=>D.status==="fulfilled"?D.value===!0:!1),data:y}}catch{return {result:false,data:e.value}}}function me(){C(),e.value=Q(x),ie();}function d(y=true){return a.$dirty.value?e.value:y?{_null:true}:null}function f(){c?.value?.length&&(c.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&V();let{$shortcuts:p,$validating:T,$autoDirty:A,$rewardEarly:X,$clearExternalErrorsOnChange:g,$haveAnyAsyncRule:F,$debounce:H,$lazy:Z,triggerPunishment:z,...oe}=a;return reactive({...oe,$externalErrors:c,$value:e,$rules:I,...p,$reset:ie,$touch:de,$validate:pe,$unwatch:C,$watch:_,$resetAll:me,$extractDirtyFields:d,$clearExternalErrors:f})}function Ze({$id:e,path:t,index:r,options:n,storage:o,stateValue:s,customMessages:R,rules:c,externalErrors:$,schemaErrors:m,initialState:h,shortcuts:M,fieldName:x,schemaMode:P}){let O=c.$key?c.$key:he(),a=`${t}.${String(O)}`;typeof s.value=="object"&&s.value!=null&&(s.value.$id?a=`${t}.${s.value.$id}`:Object.defineProperties(s.value,{$id:{value:O,enumerable:false,configurable:false,writable:false}}));let w=toRef($?.value??[],r),v=computed(()=>m?.value?.[r]),b=Te({state:s,rulesDef:toRef(()=>c),customMessages:R,path:a,storage:o,options:n,externalErrors:w,schemaErrors:v,initialState:h,shortcuts:M,fieldName:x,schemaMode:P});if(b){let E=s.value?.$id;b.$id=E??String(O),o.addArrayStatus(e,b.$id,b);}return b}function jt({state:e,rulesDef:t,customMessages:r,path:n,storage:o,options:s,externalErrors:R,schemaErrors:c,schemaMode:$,initialState:m,shortcuts:h,fieldName:M}){let x=effectScope(),P,O=effectScope(),a,w=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let v=ref(),b=ref(e.value),E,i=ref({}),S=o.getCollectionsEntry(n);a=O.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(f=>typeof f!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(f=>we(f)||typeof f=="function"):false)})),V(),C();function V(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(v.value=he(),Object.defineProperties(e.value,{$id:{value:v.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(v.value=e.value.$id)),b.value=i.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?S.value=e.value.filter(d=>typeof d=="object").map((d,f)=>{let{scope:p,unwrapped:T}=Je(t.value.$each,toRef(()=>d),f);p&&w.push(p);let A=toRef(m.value??[],f),X=toRef(R?.value??{},"$each"),g=computed(()=>c?.value?.$each),F=Ze({$id:v.value,path:n,customMessages:r,rules:T??{},stateValue:toRef(()=>d),index:f,options:s,storage:o,externalErrors:X,schemaErrors:g,initialState:A,shortcuts:h,fieldName:M,schemaMode:$});return F||null}).filter(d=>!!d):S.value=[],i.value=Ne({state:e,rulesDef:t,customMessages:r,path:n,storage:o,options:s,externalErrors:toRef(R?.value??{},"$self"),schemaErrors:computed(()=>c?.value?.$self),$isArray:true,initialState:m,shortcuts:h,fieldName:M,schemaMode:$});}function l(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let d=Q(S.value);S.value=e.value.filter(f=>typeof f=="object").map((f,p)=>{let T=toRef(()=>f);if(f.$id&&S.value.find(A=>A.$id===f.$id)){let A=o.getArrayStatus(v.value,f.$id);return A?(A.$value=T,A):null}else {let{scope:A,unwrapped:X}=Je(t.value.$each,T,p);A&&w.push(A);let g=toRef(R?.value??{},"$each"),F=computed(()=>c?.value?.$each??[]),H=Ze({$id:v.value,path:n,customMessages:r,rules:X??{},stateValue:T,index:p,options:s,storage:o,externalErrors:g,schemaErrors:F,initialState:toRef(m.value??[],p),shortcuts:h,fieldName:M,schemaMode:$});return H||null}}).filter(f=>!!f),d.filter(f=>!e.value?.find(p=>f.$id===p.$id)).forEach((f,p)=>{o.deleteArrayStatus(v.value,p.toString());});}else S.value=[];}function u(){E=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?V():l();},{deep:_e?1:true,flush:"pre"});}function C(){u(),x=effectScope(),P=x.run(()=>{let d=computed({get:()=>e.value,set(D){E(),e.value=D,u();}}),f=computed(()=>i.value.$dirty&&(!S.value.length||S.value.every(D=>D.$dirty))),p=computed(()=>i.value.$anyDirty||S.value.some(D=>D.$anyDirty)),T=computed(()=>i.value.$invalid||S.value.some(D=>D.$invalid)),A=computed(()=>(Y(i.value.$rules)?true:i.value.$valid)&&(!S.value.length||S.value.every(D=>D.$valid))),X=computed(()=>i.value.$error||S.value.some(D=>D.$error)),g=computed(()=>!(T.value||F.value)),F=computed(()=>i.value.$pending||S.value.some(D=>D.$pending)),H=computed(()=>!!S.value.length&&S.value.every(D=>D.$edited)),Z=computed(()=>i.value.$anyEdited||S.value.some(D=>D.$anyEdited)),z=computed(()=>({$self:i.value.$errors,$each:S.value.map(D=>D.$errors)})),oe=computed(()=>({$self:i.value.$silentErrors,$each:S.value.map(D=>D.$silentErrors)})),y=computed(()=>M);function G(){h?.collections&&Object.entries(h?.collections).forEach(([D,se])=>{let le=effectScope();B[D]=le.run(()=>{let ge=ref();return watchEffect(()=>{ge.value=se(reactive({$dirty:f,$error:X,$silentValue:d,$pending:F,$invalid:T,$valid:A,$errors:z,$ready:g,$silentErrors:oe,$anyDirty:p,$name:y,$each:S,$self:i,$value:e,$edited:H,$anyEdited:Z}));}),ge}),w.push(le);});}let B={};return G(),{$dirty:f,$anyDirty:p,$invalid:T,$valid:A,$error:X,$pending:F,$errors:z,$silentErrors:oe,$ready:g,$name:y,$shortcuts:B,$silentValue:d,$edited:H,$anyEdited:Z}}),a.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function _(){E&&E(),i.value&&i.value.$unwatch(),S.value&&S.value.forEach(d=>{"$dirty"in d&&d.$unwatch();}),x.stop(),x=effectScope(),O.stop(),O=effectScope(true),w.forEach(d=>d.stop()),w=[];}function k(d=true,f=false){i.value.$touch(d,f),S.value.forEach(p=>{p.$touch(d,f);});}function J(){i.value.$reset(),S.value.forEach(d=>{d.$reset();});}async function I(){let d=e.value;try{return {result:(await Promise.allSettled([i.value.$validate(),...S.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}catch{return {result:false,data:d}}}function L(){i.value.$clearExternalErrors(),S.value.forEach(d=>{d.$clearExternalErrors();});}function ie(d=true){let f=S.value.map(p=>{if(Dt(p))return p.$extractDirtyFields(d)});return d&&f.every(p=>Y(p))&&(f=[]),f}function de(){_(),e.value=Q(m.value),J();}let{$shortcuts:pe,...me}=P;return reactive({$self:i,...me,...pe,$each:S,$value:e,$validate:I,$unwatch:_,$watch:C,$touch:k,$reset:J,$resetAll:de,$extractDirtyFields:ie,$clearExternalErrors:L})}function ke({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:o,schemaErrors:s,rootSchemaErrors:R,validationGroups:c,initialState:$,fieldName:m,...h}){let M=effectScope(),x,P=[],O=null,a=null,w=null,v=null;async function E(d=true){let f=Object.entries(e.value),p=Object.fromEntries(f.filter(([g,F])=>!!F).map(([g,F])=>{if(F){let H=toRef(t.value??{},g),Z=toRef(()=>F),z=toRef(o?.value??{},g),oe=computed(()=>s?.value?.[g]),y=toRef($?.value??{},g);return [g,Te({state:H,rulesDef:Z,path:r?`${r}.${g}`:g,externalErrors:z,schemaErrors:oe,initialState:y,fieldName:g,...h})]}return []})),T=Object.fromEntries(Object.entries(unref(o)??{}).filter(([g,F])=>!(g in e.value)&&!!F).map(([g])=>{let F=toRef(t.value??{},g),H=toRef(o?.value??{},g),Z=computed(()=>s?.value?.[g]),z=toRef($?.value??{},g);return [g,Te({state:F,rulesDef:computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:Z,initialState:z,fieldName:g,...h})]})),A=Object.fromEntries(Object.entries(unref(s)??{}).map(([g])=>{let F=toRef(t.value??{},g),H=toRef(o?.value??{},g),Z=computed(()=>s?.value?.[g]),z=toRef($?.value??{},g);return [g,Te({state:F,rulesDef:computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:Z,initialState:z,fieldName:g,...h})]})),X=Object.fromEntries(Object.entries(t.value??{}).filter(([g])=>!(g in e.value)&&!(g in(T??{}))&&!(g in(A??{}))).map(([g])=>{let F=toRef(t.value??{},g),H=toRef(o?.value??{},g),Z=computed(()=>s?.value?.[g]),z=toRef($?.value??{},g);return [g,Te({state:F,rulesDef:computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:Z,initialState:z,fieldName:g,...h})]}));i.value={...p,...T,...A,...X},d&&l();}let i=h.storage.getFieldsEntry(r);E();function S(){o&&(w=watch(o,()=>{u(),E();},{deep:true}));}function V(){v=watch(t,()=>{u(),E(),k(true,true);},{flush:"sync"});}function l(){n&&(O?.(),O=watch(n,()=>{u(),E();},{deep:true,flush:"post"}),S()),R&&(a?.(),a=watch(R,()=>{u(),E();},{deep:true,flush:"post"})),V(),x=M.run(()=>{let d=computed({get:()=>t.value,set(U){u(),t.value=U,E();}}),f=computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,j])=>j?.$dirty)),p=computed(()=>Object.entries(i.value).some(([U,j])=>j?.$anyDirty)),T=computed(()=>Object.entries(i.value).some(([U,j])=>j?.$invalid)),A=computed(()=>{let U=Object.entries(i.value).filter(([j,K])=>Ct(K)?!K.$inactive:true);return U.length?U.every(([j,K])=>K?.$valid):false}),X=computed(()=>p.value&&!z.value&&T.value),g=computed(()=>unref(h.options.rewardEarly)!=null?unref(h.options.rewardEarly):false),F=computed(()=>unref(h.options.autoDirty)!=null?unref(h.options.autoDirty):!g.value),H=computed(()=>F.value?p.value&&!(T.value||z.value):!(T.value||z.value)),Z=ref(false),z=computed(()=>Z.value||Object.entries(i.value).some(([U,j])=>j?.$pending)),oe=computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,j])=>[U,j?.$errors]))),y=computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,j])=>[U,j?.$silentErrors]))),G=computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,j])=>j?.$edited)),B=computed(()=>Object.entries(i.value).some(([U,j])=>j?.$anyEdited)),D=computed(()=>m);function se(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,j])=>{let K=effectScope();ge[U]=K.run(()=>{let ye=ref();return watchEffect(()=>{ye.value=j(reactive({$dirty:f,$value:t,$silentValue:d,$error:X,$pending:z,$invalid:T,$valid:A,$ready:H,$anyDirty:p,$name:D,$silentErrors:y,$errors:oe,$fields:i,$edited:G,$anyEdited:B}));}),ye}),P.push(K);});}let le=computed({get:()=>c?Object.fromEntries(Object.entries(c?.(i.value)??{}).map(([U,j])=>j.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(K=>[K,yt(j,K)])),...Object.fromEntries(["$errors","$silentErrors"].map(K=>[K,vt(j,K)]))}]:[])):{},set(){}}),ge={};return se(),{$dirty:f,$anyDirty:p,$invalid:T,$valid:A,$error:X,$pending:z,$errors:oe,$silentErrors:y,$ready:H,$name:D,$shortcuts:ge,$groups:le,$silentValue:d,$edited:G,$anyEdited:B,$localPending:Z}});}function u(){O?.(),w?.(),v?.(),a?.(),P=[],x={},i.value&&Object.entries(i.value).forEach(([d,f])=>{f.$unwatch();});}function C(){Object.entries(i.value).forEach(([d,f])=>{f.$clearExternalErrors();});}function _(){w?.(),Object.values(i.value).forEach(d=>{d.$reset();}),$.value={...Q(t.value)},S();}function k(d=true,f=false){Object.values(i.value).forEach(p=>{p.$touch(d,f);});}async function J(){u(),t.value=Q({...$.value??{}}),_(),E();}function I(d){return d.filter(([f,p])=>ne(p)?!(p&&typeof p=="object"&&"_null"in p)&&!Y(p):Array.isArray(p)?p.length:true)}function L(d=true){let f=Object.entries(i.value).map(([p,T])=>[p,T.$extractDirtyFields(d)]);return d&&(f=I(f)),Object.fromEntries(f)}async function ie(){try{if(h.schemaMode)return h.onValidate?(k(!1),x.$localPending.value=!0,h.onValidate()):{result:!1,data:t.value};{let d=t.value;return {result:(await Promise.allSettled(Object.values(i.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}}catch{return {result:false,data:t.value}}finally{x.$localPending.value=false;}}let{$shortcuts:de,$localPending:pe,...me}=x;return reactive({...me,...de,$fields:i,$value:t,$resetAll:J,$reset:_,$touch:k,$validate:ie,$unwatch:u,$watch:l,$clearExternalErrors:C,$extractDirtyFields:L})}function Te({rulesDef:e,...t}){if(Tt(e,t.state))return jt({rulesDef:e,...t});if(Et(t.state,e)){if(Fe(t.state))return ke({rulesDef:e,...t});{let n=effectScope().run(()=>{let R=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,c=>{R.value=c;},{deep:true}),watch(R,c=>{t.state.value=c;},{deep:true}),{fakeState:R}}),{state:o,...s}=t;return ke({rulesDef:e,...s,state:n.fakeState})}}else if(xt(e))return Ne({rulesDef:e,...t})}function Ie({initialState:e,options:t,scopeRules:r,state:n,customRules:o,shortcuts:s,schemaErrors:R,schemaMode:c=false,onValidate:$}){let m=Ke(),h=ref();return h.value=ke({rootRules:r,rulesDef:r,state:n,customMessages:o?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:s,fieldName:"root",path:"",schemaErrors:R,rootSchemaErrors:R,schemaMode:c,onValidate:$}),getCurrentScope()&&onScopeDispose(()=>{h.value?.$unwatch();}),reactive({regle:h})}function rt(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function o(s,R,c){let $=isRef(R)?R:computed(typeof R=="function"?R:()=>R),m={...n,...c},h=isRef(s)?s:ref(s),M=ref({...Q(h.value)});return {r$:Ie({scopeRules:$,state:h,options:m,initialState:M,customRules:e,shortcuts:r}).regle}}return o}var Ue=rt();function nt(){function e(t,r){return r}return e}var at=nt();function _t({rules:e,modifiers:t,shortcuts:r}){let n=rt(e,t,r),o=nt();return {useRegle:n,inferRules:o}}function je(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(l=>l.$value):Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$value])),set:l=>{r||typeof l=="object"&&Object.entries(l).forEach(([u,C])=>e[u].$value=C);}}),o=computed({get:()=>Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$silentValue])),set:l=>{typeof l=="object"&&Object.entries(l).forEach(([u,C])=>e[u].$silentValue=C);}}),s=computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$dirty)}),R=computed(()=>Object.entries(e).some(([l,u])=>u?.$anyDirty)),c=computed(()=>Object.entries(e).some(([l,u])=>u?.$invalid)),$=computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$valid)}),m=computed(()=>Object.entries(e).some(([l,u])=>u?.$error)),h=computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$ready)}),M=computed(()=>Object.entries(e).some(([l,u])=>u?.$pending)),x=computed(()=>r?Object.entries(e).map(([l,u])=>u.$errors):Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$errors]))),P=computed(()=>r?Object.entries(e).map(([l,u])=>u.$silentErrors):Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$silentErrors]))),O=computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$edited)}),a=computed(()=>Object.entries(e).some(([l,u])=>u?.$anyEdited)),w=computed(()=>r?Object.values(e):e);function v(){Object.values(e).forEach(l=>{l.$reset();});}function b(){Object.values(e).forEach(l=>{l.$touch();});}function E(){Object.values(e).forEach(l=>{l.$resetAll();});}function i(l=true){return Object.values(e).map(u=>u.$extractDirtyFields(l))}function S(){Object.values(e).forEach(l=>{l.$clearExternalErrors();});}async function V(){try{let l=n.value;return {result:(await Promise.allSettled(Object.values(e).map(_=>_.$validate()))).every(_=>_.status==="fulfilled"?_.value.result===!0:!1),data:l}}catch{return {result:false,data:n.value}}}return reactive({...!r&&{$silentValue:o},$errors:x,$silentErrors:P,$instances:w,$value:n,$dirty:s,$anyDirty:R,$invalid:c,$valid:$,$error:m,$pending:M,$ready:h,$edited:O,$anyEdited:a,$resetAll:E,$reset:v,$touch:b,$validate:V,$extractDirtyFields:i,$clearExternalErrors:S})}function Gt(e){function t(r){let n=computed(()=>toValue(r));R();let o=ref(c(e.value)),s=reactive({r$:o});function R(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}watch(n,R),watch(e,$=>{o.value=c($);},{deep:true});function c($){if(n.value){let m=$[n.value]??{};return je(m,true)}else return je($["~~global"]??{},true)}return {r$:s.r$}}return {useCollectScope:t}}function Wt(e,t){let r=t??Ue;return {useScopedRegle:(o,s,R)=>{let{namespace:c,...$}=R??{},m=computed(()=>toValue(c)),h=ref(`${Object.keys(e.value).length+1}-${he()}`),M=computed(()=>`instance-${h.value}`),{r$:x}=r(o,s,$);O(),ht(P),watch(m,(a,w)=>{P(w),O();}),getCurrentInstance()&&onMounted(()=>{let a=getCurrentInstance();typeof window<"u"&&a?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(a?.proxy?.$el?.parentElement)&&P();});function P(a){let w=a??m.value;w?e.value[w]&&delete e.value[w][M.value]:e.value["~~global"][M.value]&&delete e.value["~~global"][M.value];}function O(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][M.value]=x):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][M.value]=x);}return {r$:x,dispose:P,register:O}}}}function lt(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):bt(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=Wt(r,e?.customUseRegle),{useCollectScope:o}=Gt(r);return {useScopedRegle:n,useCollectScope:o}}
2
- export{He as InternalRuleType,qe as createRule,lt as createScopedUseRegle,_t as defineRegleConfig,at as inferRules,je as mergeRegles,ee as unwrapRuleParameters,Ue as useRegle,Ie as useRootStorage};
1
+ import {toValue,version,ref,getCurrentScope,onScopeDispose,reactive,computed,shallowRef,effectScope,watch,getCurrentInstance,onMounted,isRef,toRef,unref,watchEffect}from'vue';function Z(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var mt=Symbol("regle-rule");function Lt(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 Y(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>Y(n)))),r=="Map"&&(t=new Map([...e].map(n=>[Y(n[0]),Y(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Lt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=Y(e[n]);}return t}function ne(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Be(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)}var Le=(r=>(r.Inline="__inline",r.Async="__async",r))(Le||{});function gt(e,t){return e.some(r=>r[t])}function yt(e,t){return e.reduce((r,n)=>{let o=n[t]||[];return r.concat(o)},[])}function ee(e){try{return e.map(t=>toValue(t))}catch{return []}}function vt(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function $t(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(R=>R.trim()).filter(R=>R.length>0).length:0}function He(e,...t){let{validator:r,type:n}=e,o=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(c,...$){return e.validator(c,...ee($.length?$:t))},message(c){return typeof e.message=="function"?e.message({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.message},active(c){return typeof e.active=="function"?e.active({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.active??true},tooltip(c){return typeof e.tooltip=="function"?e.tooltip({...c,$params:ee(c?.$params?.length?c.$params:t)}):e.tooltip??[]},exec(c){let $=e.validator(c,...ee(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:o,_params:vt(t),_brand:mt}}function ze(e){if(typeof e.validator=="function"){let r=He(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if($t(e.validator)>1){let o=function(...s){return He(e,...s)};return o.validator=r.validator,o.message=r.message,o.active=r.active,o.tooltip=r.tooltip,o.type=r.type,o.exec=r.exec,o._validator=r.validator,o._message=r.message,o._active=r.active,o._tooltip=r.tooltip,o._type=e.type,o._message_pacthed=false,o._tooltip_pacthed=false,o._async=n,o}else return r}throw new Error("Validator must be a function")}function qe(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),o=shallowRef(new Map),s=shallowRef(new Map);function R(v){let b=t.value.get(v);if(b)return b;{let E=ref({});return t.value.set(v,E),E}}function c(v){let b=r.value.get(v);if(b)return b;{let E=ref([]);return r.value.set(v,E),E}}function $(v,b,E){s.value.set(`${v}-${b}`,E);}function m(v,b){return s.value.get(`${v}-${b}`)}function h(v,b){v&&b!=null&&s.value.delete(`${v}-${b}`);}function M(v,b){n.value.set(v,b);}function x(v){return n.value.get(v)??false}function P(v,b){e.value.set(v,b);}function O(v,b){let E=e.value.get(v);return E?a(b,E)?{valid:true}:{valid:false}:undefined}function a(v,b){let E=Object.keys(b),i=Object.keys(v);return i.length!==E.length||!i.every(V=>E.includes(V))?false:i.every(V=>{let l=v[V],u=b[V];return !u||!l||typeof l=="function"||typeof u=="function"||typeof l=="number"||typeof l=="boolean"?false:l._params?l._params?.every((C,_)=>{if(typeof u=="number"||typeof u=="boolean")return true;{let k=ee(u._params),J=ee(l._params);return k?.[_]===J?.[_]}}):true})}function w(v){let b=o.value.get(v);if(b)return b;{let E=ref(false),i=ref(true),S=ref({}),V=ref(false);return o.value.set(v,{$pending:E,$valid:i,$metadata:S,$validating:V}),{$pending:E,$valid:i,$metadata:S,$validating:V}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),o.value.clear(),s.value.clear();}),{addRuleDeclEntry:P,setDirtyEntry:M,checkRuleDeclEntry:O,getDirtyState:x,trySetRuleStatusRef:w,getFieldsEntry:R,getCollectionsEntry:c,getArrayStatus:m,addArrayStatus:$,deleteArrayStatus:h,arrayStatusStorage:s}}function Fe(e){return ne(e.value)}function Ke(e,t,r){let n=effectScope(),o;return e instanceof Function?o=n.run(()=>e(t,r??0)):o=e,{scope:n,unwrapped:o}}function Ve(e,t,r){let n,o=(...s)=>new Promise(R=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...s])).then(R);},t);});return o.cancel=()=>{clearTimeout(n),n=undefined;},o}function Zt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let o=0;o<Math.min(r.length,n.length);o++){let s=Number(r[o]),R=Number(n[o]);if(s>R)return 1;if(R>s)return -1;if(!isNaN(s)&&isNaN(R))return 1;if(isNaN(s)&&!isNaN(R))return -1}return 0}var _e=Zt(version,"3.5.0")!==-1;function er(){return Math.floor(Math.random()*Date.now()).toString()}function he(){return typeof window>"u"?er():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function St(e){return getCurrentScope()?(onScopeDispose(e),true):false}function ht(e){let t=false,r,n=effectScope(true);return (...o)=>(t||(r=n.run(()=>e(...o)),t=true),r)}function bt(e,t){return Fe(e)||ne(t.value)&&!Z(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function Et(e,t){return !!e.value&&ne(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Tt(e){return !!e.value&&ne(e.value)}function we(e){return ne(e)&&"_validator"in e}function Pe(e){return typeof e.value!="function"}function xt(e){return ne(e)&&"$fields"in e}function Dt(e){return !!e&&"$rules"in e}function Je({field:e,silent:t=false}){return Object.entries(e.$rules??{}).map(([r,n])=>t&&!n.$valid||!n.$valid&&e.$error&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$error?e.$externalErrors??[]:[]).concat(e.$error?e.$schemaErrors??[]:[])}function Ct({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function It({customMessages:e,rule:t,ruleKey:r,state:n,path:o,storage:s,$debounce:R,modifiers:c}){let $=effectScope(),m={},h,M=ref(false),{$pending:x,$valid:P,$metadata:O,$validating:a}=s.trySetRuleStatusRef(`${o}.${r}`);function w(){$=effectScope(),m=$.run(()=>{let l=ref(false),u=ref(false),C=ref(true),_=ref(false),k=ref(false),J=computed(()=>({$value:n.value,$error:u.value,$dirty:l.value,$pending:_.value,$valid:k.value,$invalid:C.value,$rule:{$valid:P.value,$invalid:!P.value,$pending:x.value},$params:d.value,...O.value})),I=computed(()=>Pe(t)?typeof t.value.active=="function"?t.value.active(J.value):!!t.value.active:true);function L(p){let T="",A=e?e[r]?.[p]:undefined;if(A&&(typeof A=="function"?T=A(J.value):T=A),Pe(t)){let Q=`_${p}_patched`;A&&!t.value[Q]||(typeof t.value[p]=="function"?T=t.value[p](J.value):T=t.value[p]??"");}return T}let ie=computed(()=>{let p=L("message");return Z(p)&&(p="This field is not valid"),p}),de=computed(()=>L("tooltip")),pe=computed(()=>Pe(t)&&t.value.type?t.value.type:r),me=computed(()=>Pe(t)?t.value.validator:t.value),d=computed(()=>typeof t.value=="function"?[]:ee(t.value._params??[])),f=computed(()=>`${o}.${pe.value}`);return {$active:I,$message:ie,$type:pe,$validator:me,$params:d,$path:f,$tooltip:de,$fieldValid:k,$fieldError:u,$fieldDirty:l,$fieldPending:_,$fieldInvalid:C}}),h=watch(m?.$params,()=>{(c.$autoDirty.value||c.$rewardEarly.value&&m.$fieldError.value)&&i();});}w();function v(){P.value=true,m.$fieldDirty.value&&(x.value=true);}async function b(){let l=false;try{let u=m.$validator.value,C=u(n.value,...m.$params.value),_=n.value;v();let k;if(C instanceof Promise?k=await C:k=C,n.value!==_)return !0;if(typeof k=="boolean")l=k;else {let{$valid:J,...I}=k;l=J,O.value=I;}}catch{l=false;}finally{x.value=false;}return l}let E=Ve(b,R??200);async function i(){try{a.value=!0;let l=!1;if(we(t.value)&&t.value._async)l=await E();else {let u=m.$validator.value,C=u(n.value,...m.$params.value);if(C instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(C!=null)if(typeof C=="boolean")l=C;else {let{$valid:_,...k}=C;l=_,O.value=k;}}return P.value=l,l}catch{return false}finally{a.value=false;}}function S(){P.value=true,O.value={},x.value=false,a.value=false,w();}function V(){h(),$.stop(),$=effectScope();}return reactive({...m,$pending:x,$valid:P,$metadata:O,$haveAsync:M,$validating:a,$validate:i,$unwatch:V,$watch:w,$reset:S})}function Ne({state:e,rulesDef:t,customMessages:r,path:n,fieldName:o,storage:s,options:R,externalErrors:c,schemaErrors:$,schemaMode:m,onUnwatch:h,$isArray:M,initialState:x,shortcuts:P}){let O=effectScope(),a,w=[],v,b,E,i,S,V=()=>{};function l(){let y=t.value,G=s.checkRuleDeclEntry(n,y);L.value=Object.fromEntries(Object.entries(y).filter(([B])=>B.startsWith("$"))),_(),I.value=Object.fromEntries(Object.entries(t.value).filter(([B])=>!B.startsWith("$")).map(([B,D])=>{if(D){let se=toRef(()=>D);return [B,It({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:se,ruleKey:B,state:e,path:n,storage:s,$debounce:L.value.$debounce})]}return []}).filter(B=>!!B.length)),a.processShortcuts(),u(),G?.valid!=null&&(a.$dirty.value=s.getDirtyState(n),a.$dirty.value&&V()),s.addRuleDeclEntry(n,y);}function u(){V=a.$debounce.value?Ve(J,a.$debounce.value??a.$haveAnyAsyncRule?100:0):J;}function C(){I.value&&Object.entries(I.value).forEach(([y,G])=>{G.$unwatch();}),E(),S?.(),a.$dirty.value&&s.setDirtyEntry(n,a.$dirty.value),v?.(),b?.(),O.stop(),O=effectScope(),w.forEach(y=>y.stop()),w=[],h?.(),i?.();}function _(){I.value&&Object.entries(I.value).forEach(([y,G])=>{G.$watch();}),a=O.run(()=>{let y=ref(false),G=ref(false),B=computed(()=>y.value),D=computed(()=>L.value.$debounce),se=computed(()=>L.value.$lazy!=null?L.value.$lazy:unref(R.lazy)!=null?unref(R.lazy):false),le=computed(()=>L.value.$rewardEarly!=null?L.value.$rewardEarly:unref(R.rewardEarly)!=null?unref(R.rewardEarly):false),ge=computed(()=>L.value.$clearExternalErrorsOnChange!=null?L.value.$clearExternalErrorsOnChange:unref(R.clearExternalErrorsOnChange)!=null?unref(R.clearExternalErrorsOnChange):true),U=computed(()=>L.value.$autoDirty!=null?L.value.$autoDirty:unref(R.autoDirty)!=null?unref(R.autoDirty):!le.value),j=computed(()=>Object.entries(I.value).some(([ae,ue])=>ue.$validating)),K=computed({get:()=>e.value,set(ae){v(),e.value=ae,k();}}),ye=computed(()=>ve.value&&!Oe.value&&y.value),lt=computed(()=>Je({field:{$rules:I.value,$error:ye.value,$externalErrors:c?.value,$schemaErrors:$?.value}})),ot=computed(()=>Je({field:{$rules:I.value,$error:ye.value,$externalErrors:c?.value,$schemaErrors:$?.value},silent:true})),We=computed(()=>y.value?x.value instanceof Date&&e.value instanceof Date?Be(x.value).getDate()!==Be(e.value).getDate():x.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(x.value)?e.value.length!==x.value.length:x.value!==e.value:false),st=computed(()=>We.value),ut=computed(()=>Ct({field:{$rules:I.value}})),it=computed(()=>U.value?B.value&&!(ve.value||Oe.value):!(ve.value||Oe.value)),Oe=computed(()=>G.value||!le.value?Object.entries(I.value).some(([ae,ue])=>ue.$pending):false),ve=computed(()=>c?.value?.length||$?.value?.length?true:Me.value?false:!le.value||le.value&&G.value?Object.entries(I.value).some(([ae,ue])=>!ue.$valid):false),ct=computed(()=>o),Me=computed(()=>!!(Z(I.value)&&!m)),ft=computed(()=>c?.value?.length||Me.value?false:y.value&&!Z(e.value)&&!j.value?m?!$?.value?.length:Object.values(I.value).every(ae=>ae.$valid&&ae.$active):false),Wt=computed(()=>Object.entries(I.value).some(([ae,ue])=>ue.$haveAsync));function Bt(){P?.fields&&Object.entries(P.fields).forEach(([ae,ue])=>{let dt=effectScope();Rt[ae]=dt.run(()=>{let pt=ref();return watchEffect(()=>{pt.value=ue(reactive({$dirty:y,$externalErrors:c?.value??[],$value:e,$silentValue:K,$rules:I,$error:ye,$pending:Oe,$invalid:ve,$valid:ft,$errors:lt,$ready:it,$silentErrors:ot,$anyDirty:B,$tooltips:ut,$name:ct,$inactive:Me,$edited:We,$anyEdited:st}));}),pt}),w.push(dt);});}let Rt={};return watch(ve,ae=>{ae||(G.value=false);}),{$error:ye,$pending:Oe,$invalid:ve,$valid:ft,$debounce:D,$lazy:se,$errors:lt,$ready:it,$silentErrors:ot,$rewardEarly:le,$autoDirty:U,$clearExternalErrorsOnChange:ge,$anyDirty:B,$edited:We,$anyEdited:st,$name:ct,$haveAnyAsyncRule:Wt,$shortcuts:Rt,$validating:j,$tooltips:ut,$dirty:y,triggerPunishment:G,processShortcuts:Bt,$silentValue:K,$inactive:Me}}),k(),E=watch(a.$dirty,y=>{s.setDirtyEntry(n,y),Object.values(I.value).forEach(G=>{G.$fieldDirty=y;});}),S=watch([a.$error,a.$valid,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(y=>{y.$fieldError=a.$error.value,y.$fieldInvalid=a.$invalid.value,y.$fieldPending=a.$pending.value,y.$fieldValid=a.$valid.value;});}),b=watch(a.$valid,y=>{a.$rewardEarly.value&&y&&(a.triggerPunishment.value=false);}),i=watch(a.$haveAnyAsyncRule,u);}function k(){v=watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&l(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&f();},{deep:M?true:_e?1:true,flush:"post"});}function J(){Object.values(I.value).forEach(y=>{y.$validate();});}let I=ref({}),L=ref({});l();function ie(){f(),a.$dirty.value=false,a.triggerPunishment.value=false,s.setDirtyEntry(n,false),x.value=ne(e.value)?Y(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(I.value).forEach(([y,G])=>{G.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(y=>y.$validate());}function de(y=true,G=false){a.$dirty.value||(a.$dirty.value=true),G&&y?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&V():y&&V();}async function pe(){try{let y=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:y};return m?{result:!$?.value?.length,data:y}:Z(I.value)?{result:!0,data:y}:{result:(await Promise.allSettled(Object.entries(I.value).map(([D,se])=>se.$validate()))).every(D=>D.status==="fulfilled"?D.value===!0:!1),data:y}}catch{return {result:false,data:e.value}}}function me(){C(),e.value=Y(x),ie();}function d(y=true){return a.$dirty.value?e.value:y?{_null:true}:null}function f(){c?.value?.length&&(c.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&V();let{$shortcuts:p,$validating:T,$autoDirty:A,$rewardEarly:Q,$clearExternalErrorsOnChange:g,$haveAnyAsyncRule:F,$debounce:H,$lazy:X,triggerPunishment:z,...oe}=a;return reactive({...oe,$externalErrors:c,$value:e,$rules:I,...p,$reset:ie,$touch:de,$validate:pe,$unwatch:C,$watch:_,$resetAll:me,$extractDirtyFields:d,$clearExternalErrors:f})}function Xe({$id:e,path:t,index:r,options:n,storage:o,stateValue:s,customMessages:R,rules:c,externalErrors:$,schemaErrors:m,initialState:h,shortcuts:M,fieldName:x,schemaMode:P}){let O=c.$key?c.$key:he(),a=`${t}.${String(O)}`;typeof s.value=="object"&&s.value!=null&&(s.value.$id?a=`${t}.${s.value.$id}`:Object.defineProperties(s.value,{$id:{value:O,enumerable:false,configurable:false,writable:false}}));let w=toRef($?.value??[],r),v=computed(()=>m?.value?.[r]),b=Te({state:s,rulesDef:toRef(()=>c),customMessages:R,path:a,storage:o,options:n,externalErrors:w,schemaErrors:v,initialState:h,shortcuts:M,fieldName:x,schemaMode:P});if(b){let E=s.value?.$id;b.$id=E??String(O),o.addArrayStatus(e,b.$id,b);}return b}function At({state:e,rulesDef:t,customMessages:r,path:n,storage:o,options:s,externalErrors:R,schemaErrors:c,schemaMode:$,initialState:m,shortcuts:h,fieldName:M}){let x=effectScope(),P,O=effectScope(),a,w=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let v=ref(),b=ref(e.value),E,i=ref({}),S=o.getCollectionsEntry(n);a=O.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(f=>typeof f!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(f=>we(f)||typeof f=="function"):false)})),V(),C();function V(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(v.value=he(),Object.defineProperties(e.value,{$id:{value:v.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(v.value=e.value.$id)),b.value=i.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?S.value=e.value.filter(d=>typeof d=="object").map((d,f)=>{let{scope:p,unwrapped:T}=Ke(t.value.$each,toRef(()=>d),f);p&&w.push(p);let A=toRef(m.value??[],f),Q=toRef(R?.value??{},"$each"),g=computed(()=>c?.value?.$each),F=Xe({$id:v.value,path:n,customMessages:r,rules:T??{},stateValue:toRef(()=>d),index:f,options:s,storage:o,externalErrors:Q,schemaErrors:g,initialState:A,shortcuts:h,fieldName:M,schemaMode:$});return F||null}).filter(d=>!!d):S.value=[],i.value=Ne({state:e,rulesDef:t,customMessages:r,path:n,storage:o,options:s,externalErrors:toRef(R?.value??{},"$self"),schemaErrors:computed(()=>c?.value?.$self),$isArray:true,initialState:m,shortcuts:h,fieldName:M,schemaMode:$});}function l(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let d=Y(S.value);S.value=e.value.filter(f=>typeof f=="object").map((f,p)=>{let T=toRef(()=>f);if(f.$id&&S.value.find(A=>A.$id===f.$id)){let A=o.getArrayStatus(v.value,f.$id);return A?(A.$value=T,A):null}else {let{scope:A,unwrapped:Q}=Ke(t.value.$each,T,p);A&&w.push(A);let g=toRef(R?.value??{},"$each"),F=computed(()=>c?.value?.$each??[]),H=Xe({$id:v.value,path:n,customMessages:r,rules:Q??{},stateValue:T,index:p,options:s,storage:o,externalErrors:g,schemaErrors:F,initialState:toRef(m.value??[],p),shortcuts:h,fieldName:M,schemaMode:$});return H||null}}).filter(f=>!!f),d.filter(f=>!e.value?.find(p=>f.$id===p.$id)).forEach((f,p)=>{o.deleteArrayStatus(v.value,p.toString());});}else S.value=[];}function u(){E=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?V():l();},{deep:_e?1:true,flush:"pre"});}function C(){u(),x=effectScope(),P=x.run(()=>{let d=computed({get:()=>e.value,set(D){E(),e.value=D,u();}}),f=computed(()=>i.value.$dirty&&(!S.value.length||S.value.every(D=>D.$dirty))),p=computed(()=>i.value.$anyDirty||S.value.some(D=>D.$anyDirty)),T=computed(()=>i.value.$invalid||S.value.some(D=>D.$invalid)),A=computed(()=>(Z(i.value.$rules)?true:i.value.$valid)&&(!S.value.length||S.value.every(D=>D.$valid))),Q=computed(()=>i.value.$error||S.value.some(D=>D.$error)),g=computed(()=>!(T.value||F.value)),F=computed(()=>i.value.$pending||S.value.some(D=>D.$pending)),H=computed(()=>!!S.value.length&&S.value.every(D=>D.$edited)),X=computed(()=>i.value.$anyEdited||S.value.some(D=>D.$anyEdited)),z=computed(()=>({$self:i.value.$errors,$each:S.value.map(D=>D.$errors)})),oe=computed(()=>({$self:i.value.$silentErrors,$each:S.value.map(D=>D.$silentErrors)})),y=computed(()=>M);function G(){h?.collections&&Object.entries(h?.collections).forEach(([D,se])=>{let le=effectScope();B[D]=le.run(()=>{let ge=ref();return watchEffect(()=>{ge.value=se(reactive({$dirty:f,$error:Q,$silentValue:d,$pending:F,$invalid:T,$valid:A,$errors:z,$ready:g,$silentErrors:oe,$anyDirty:p,$name:y,$each:S,$self:i,$value:e,$edited:H,$anyEdited:X}));}),ge}),w.push(le);});}let B={};return G(),{$dirty:f,$anyDirty:p,$invalid:T,$valid:A,$error:Q,$pending:F,$errors:z,$silentErrors:oe,$ready:g,$name:y,$shortcuts:B,$silentValue:d,$edited:H,$anyEdited:X}}),a.isPrimitiveArray.value&&t.value.$each&&console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`);}function _(){E&&E(),i.value&&i.value.$unwatch(),S.value&&S.value.forEach(d=>{"$dirty"in d&&d.$unwatch();}),x.stop(),x=effectScope(),O.stop(),O=effectScope(true),w.forEach(d=>d.stop()),w=[];}function k(d=true,f=false){i.value.$touch(d,f),S.value.forEach(p=>{p.$touch(d,f);});}function J(){i.value.$reset(),S.value.forEach(d=>{d.$reset();});}async function I(){let d=e.value;try{return {result:(await Promise.allSettled([i.value.$validate(),...S.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}catch{return {result:false,data:d}}}function L(){i.value.$clearExternalErrors(),S.value.forEach(d=>{d.$clearExternalErrors();});}function ie(d=true){let f=S.value.map(p=>{if(xt(p))return p.$extractDirtyFields(d)});return d&&f.every(p=>Z(p))&&(f=[]),f}function de(){_(),e.value=Y(m.value),J();}let{$shortcuts:pe,...me}=P;return reactive({$self:i,...me,...pe,$each:S,$value:e,$validate:I,$unwatch:_,$watch:C,$touch:k,$reset:J,$resetAll:de,$extractDirtyFields:ie,$clearExternalErrors:L})}function ke({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:o,schemaErrors:s,rootSchemaErrors:R,validationGroups:c,initialState:$,fieldName:m,...h}){let M=effectScope(),x,P=[],O=null,a=null,w=null,v=null;async function E(d=true){let f=Object.entries(e.value),p=Object.fromEntries(f.filter(([g,F])=>!!F).map(([g,F])=>{if(F){let H=toRef(t.value??{},g),X=toRef(()=>F),z=toRef(o?.value??{},g),oe=computed(()=>s?.value?.[g]),y=toRef($?.value??{},g);return [g,Te({state:H,rulesDef:X,path:r?`${r}.${g}`:g,externalErrors:z,schemaErrors:oe,initialState:y,fieldName:g,...h})]}return []})),T=Object.fromEntries(Object.entries(unref(o)??{}).filter(([g,F])=>!(g in e.value)&&!!F).map(([g])=>{let F=toRef(t.value??{},g),H=toRef(o?.value??{},g),X=computed(()=>s?.value?.[g]),z=toRef($?.value??{},g);return [g,Te({state:F,rulesDef:computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:X,initialState:z,fieldName:g,...h})]})),A=Object.fromEntries(Object.entries(unref(s)??{}).map(([g])=>{let F=toRef(t.value??{},g),H=toRef(o?.value??{},g),X=computed(()=>s?.value?.[g]),z=toRef($?.value??{},g);return [g,Te({state:F,rulesDef:computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:X,initialState:z,fieldName:g,...h})]})),Q=Object.fromEntries(Object.entries(t.value??{}).filter(([g])=>!(g in e.value)&&!(g in(T??{}))&&!(g in(A??{}))).map(([g])=>{let F=toRef(t.value??{},g),H=toRef(o?.value??{},g),X=computed(()=>s?.value?.[g]),z=toRef($?.value??{},g);return [g,Te({state:F,rulesDef:computed(()=>({})),path:r?`${r}.${g}`:g,externalErrors:H,schemaErrors:X,initialState:z,fieldName:g,...h})]}));i.value={...p,...T,...A,...Q},d&&l();}let i=h.storage.getFieldsEntry(r);E();function S(){o&&(w=watch(o,()=>{u(),E();},{deep:true}));}function V(){v=watch(t,()=>{u(),E(),k(true,true);},{flush:"sync"});}function l(){n&&(O?.(),O=watch(n,()=>{u(),E();},{deep:true,flush:"post"}),S()),R&&(a?.(),a=watch(R,()=>{u(),E();},{deep:true,flush:"post"})),V(),x=M.run(()=>{let d=computed({get:()=>t.value,set(U){u(),t.value=U,E();}}),f=computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,j])=>j?.$dirty)),p=computed(()=>Object.entries(i.value).some(([U,j])=>j?.$anyDirty)),T=computed(()=>Object.entries(i.value).some(([U,j])=>j?.$invalid)),A=computed(()=>{let U=Object.entries(i.value).filter(([j,K])=>Dt(K)?!K.$inactive:true);return U.length?U.every(([j,K])=>K?.$valid):false}),Q=computed(()=>p.value&&!z.value&&T.value),g=computed(()=>unref(h.options.rewardEarly)!=null?unref(h.options.rewardEarly):false),F=computed(()=>unref(h.options.autoDirty)!=null?unref(h.options.autoDirty):!g.value),H=computed(()=>F.value?p.value&&!(T.value||z.value):!(T.value||z.value)),X=ref(false),z=computed(()=>X.value||Object.entries(i.value).some(([U,j])=>j?.$pending)),oe=computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,j])=>[U,j?.$errors]))),y=computed(()=>Object.fromEntries(Object.entries(i.value).map(([U,j])=>[U,j?.$silentErrors]))),G=computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([U,j])=>j?.$edited)),B=computed(()=>Object.entries(i.value).some(([U,j])=>j?.$anyEdited)),D=computed(()=>m);function se(){h.shortcuts?.nested&&Object.entries(h.shortcuts.nested).forEach(([U,j])=>{let K=effectScope();ge[U]=K.run(()=>{let ye=ref();return watchEffect(()=>{ye.value=j(reactive({$dirty:f,$value:t,$silentValue:d,$error:Q,$pending:z,$invalid:T,$valid:A,$ready:H,$anyDirty:p,$name:D,$silentErrors:y,$errors:oe,$fields:i,$edited:G,$anyEdited:B}));}),ye}),P.push(K);});}let le=computed({get:()=>c?Object.fromEntries(Object.entries(c?.(i.value)??{}).map(([U,j])=>j.length?[U,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(K=>[K,gt(j,K)])),...Object.fromEntries(["$errors","$silentErrors"].map(K=>[K,yt(j,K)]))}]:[])):{},set(){}}),ge={};return se(),{$dirty:f,$anyDirty:p,$invalid:T,$valid:A,$error:Q,$pending:z,$errors:oe,$silentErrors:y,$ready:H,$name:D,$shortcuts:ge,$groups:le,$silentValue:d,$edited:G,$anyEdited:B,$localPending:X}});}function u(){O?.(),w?.(),v?.(),a?.(),P=[],x={},i.value&&Object.entries(i.value).forEach(([d,f])=>{f.$unwatch();});}function C(){Object.entries(i.value).forEach(([d,f])=>{f.$clearExternalErrors();});}function _(){w?.(),Object.values(i.value).forEach(d=>{d.$reset();}),$.value={...Y(t.value)},S();}function k(d=true,f=false){Object.values(i.value).forEach(p=>{p.$touch(d,f);});}async function J(){u(),t.value=Y({...$.value??{}}),_(),E();}function I(d){return d.filter(([f,p])=>ne(p)?!(p&&typeof p=="object"&&"_null"in p)&&!Z(p):Array.isArray(p)?p.length:true)}function L(d=true){let f=Object.entries(i.value).map(([p,T])=>[p,T.$extractDirtyFields(d)]);return d&&(f=I(f)),Object.fromEntries(f)}async function ie(){try{if(h.schemaMode)return h.onValidate?(k(!1),x.$localPending.value=!0,h.onValidate()):{result:!1,data:t.value};{let d=t.value;return {result:(await Promise.allSettled(Object.values(i.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:d}}}catch{return {result:false,data:t.value}}finally{x.$localPending.value=false;}}let{$shortcuts:de,$localPending:pe,...me}=x;return reactive({...me,...de,$fields:i,$value:t,$resetAll:J,$reset:_,$touch:k,$validate:ie,$unwatch:u,$watch:l,$clearExternalErrors:C,$extractDirtyFields:L})}function Te({rulesDef:e,...t}){if(Et(e,t.state))return At({rulesDef:e,...t});if(bt(t.state,e)){if(Fe(t.state))return ke({rulesDef:e,...t});{let n=effectScope().run(()=>{let R=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,c=>{R.value=c;},{deep:true}),watch(R,c=>{t.state.value=c;},{deep:true}),{fakeState:R}}),{state:o,...s}=t;return ke({rulesDef:e,...s,state:n.fakeState})}}else if(Tt(e))return Ne({rulesDef:e,...t})}function Ie({initialState:e,options:t,scopeRules:r,state:n,customRules:o,shortcuts:s,schemaErrors:R,schemaMode:c=false,onValidate:$}){let m=qe(),h=ref();return h.value=ke({rootRules:r,rulesDef:r,state:n,customMessages:o?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:s,fieldName:"root",path:"",schemaErrors:R,rootSchemaErrors:R,schemaMode:c,onValidate:$}),getCurrentScope()&&onScopeDispose(()=>{h.value?.$unwatch();}),reactive({regle:h})}function tt(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function o(s,R,c){let $=isRef(R)?R:computed(typeof R=="function"?R:()=>R),m={...n,...c},h=isRef(s)?s:ref(s),M=ref({...Y(h.value)});return {r$:Ie({scopeRules:$,state:h,options:m,initialState:M,customRules:e,shortcuts:r}).regle}}return o}var Ue=tt();function rt(){function e(t,r){return r}return e}var nt=rt();function Vt({rules:e,modifiers:t,shortcuts:r}){let n=tt(e,t,r),o=rt();return {useRegle:n,inferRules:o}}function je(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(l=>l.$value):Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$value])),set:l=>{r||typeof l=="object"&&Object.entries(l).forEach(([u,C])=>e[u].$value=C);}}),o=computed({get:()=>Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$silentValue])),set:l=>{typeof l=="object"&&Object.entries(l).forEach(([u,C])=>e[u].$silentValue=C);}}),s=computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$dirty)}),R=computed(()=>Object.entries(e).some(([l,u])=>u?.$anyDirty)),c=computed(()=>Object.entries(e).some(([l,u])=>u?.$invalid)),$=computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$valid)}),m=computed(()=>Object.entries(e).some(([l,u])=>u?.$error)),h=computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$ready)}),M=computed(()=>Object.entries(e).some(([l,u])=>u?.$pending)),x=computed(()=>r?Object.entries(e).map(([l,u])=>u.$errors):Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$errors]))),P=computed(()=>r?Object.entries(e).map(([l,u])=>u.$silentErrors):Object.fromEntries(Object.entries(e).map(([l,u])=>[l,u.$silentErrors]))),O=computed(()=>{let l=Object.entries(e);return !!l.length&&l.every(([u,C])=>C?.$edited)}),a=computed(()=>Object.entries(e).some(([l,u])=>u?.$anyEdited)),w=computed(()=>r?Object.values(e):e);function v(){Object.values(e).forEach(l=>{l.$reset();});}function b(){Object.values(e).forEach(l=>{l.$touch();});}function E(){Object.values(e).forEach(l=>{l.$resetAll();});}function i(l=true){return Object.values(e).map(u=>u.$extractDirtyFields(l))}function S(){Object.values(e).forEach(l=>{l.$clearExternalErrors();});}async function V(){try{let l=n.value;return {result:(await Promise.allSettled(Object.values(e).map(_=>_.$validate()))).every(_=>_.status==="fulfilled"?_.value.result===!0:!1),data:l}}catch{return {result:false,data:n.value}}}return reactive({...!r&&{$silentValue:o},$errors:x,$silentErrors:P,$instances:w,$value:n,$dirty:s,$anyDirty:R,$invalid:c,$valid:$,$error:m,$pending:M,$ready:h,$edited:O,$anyEdited:a,$resetAll:E,$reset:v,$touch:b,$validate:V,$extractDirtyFields:i,$clearExternalErrors:S})}function Nt(e){function t(r){let n=computed(()=>toValue(r));R();let o=ref(c(e.value)),s=reactive({r$:o});function R(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}watch(n,R),watch(e,$=>{o.value=c($);},{deep:true});function c($){if(n.value){let m=$[n.value]??{};return je(m,true)}else return je($["~~global"]??{},true)}return {r$:s.r$}}return {useCollectScope:t}}function Ut(e,t){let r=t??Ue;return {useScopedRegle:(o,s,R)=>{let{namespace:c,...$}=R??{},m=computed(()=>toValue(c)),h=ref(`${Object.keys(e.value).length+1}-${he()}`),M=computed(()=>`instance-${h.value}`),{r$:x}=r(o,s,$);O(),St(P),watch(m,(a,w)=>{P(w),O();}),getCurrentInstance()&&onMounted(()=>{let a=getCurrentInstance();typeof window<"u"&&a?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(a?.proxy?.$el?.parentElement)&&P();});function P(a){let w=a??m.value;w?e.value[w]&&delete e.value[w][M.value]:e.value["~~global"][M.value]&&delete e.value["~~global"][M.value];}function O(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][M.value]=x):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][M.value]=x);}return {r$:x,dispose:P,register:O}}}}function at(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):ht(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=Ut(r,e?.customUseRegle),{useCollectScope:o}=Nt(r);return {useScopedRegle:n,useCollectScope:o}}
2
+ export{Le as InternalRuleType,ze as createRule,at as createScopedUseRegle,Vt as defineRegleConfig,nt as inferRules,je as mergeRegles,ee as unwrapRuleParameters,Ue as useRegle,Ie as useRootStorage};
@@ -69,28 +69,6 @@ function isObject(obj) {
69
69
  return typeof obj === "object" && obj !== null && !Array.isArray(obj);
70
70
  }
71
71
 
72
- // ../shared/utils/isDate.ts
73
- function isDate(value) {
74
- if (isEmpty(value)) {
75
- return false;
76
- }
77
- try {
78
- let possibleDate = null;
79
- if (value instanceof Date) {
80
- possibleDate = value;
81
- } else if (typeof value === "string") {
82
- const date = new Date(value);
83
- if (date.toString() === "Invalid Date") {
84
- return false;
85
- }
86
- possibleDate = date;
87
- }
88
- return !!possibleDate;
89
- } catch (e) {
90
- return false;
91
- }
92
- }
93
-
94
72
  // ../shared/utils/toDate.ts
95
73
  function toDate(argument) {
96
74
  const argStr = Object.prototype.toString.call(argument);
@@ -913,7 +891,7 @@ function createReactiveFieldStatus({
913
891
  });
914
892
  const $edited = computed(() => {
915
893
  if ($dirty.value) {
916
- if (isDate(initialState.value) && isDate(state.value)) {
894
+ if (initialState.value instanceof Date && state.value instanceof Date) {
917
895
  return toDate(initialState.value).getDate() !== toDate(state.value).getDate();
918
896
  }
919
897
  if (initialState.value == null) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@regle/core",
3
- "version": "0.7.4",
3
+ "version": "0.7.5",
4
4
  "description": "Type safe form validation library for Vue 3",
5
5
  "peerDependencies": {
6
6
  "pinia": ">=2.2.5",