@regle/core 0.9.1 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/regle-core.cjs +29 -25
- package/dist/regle-core.d.cts +9 -9
- package/dist/regle-core.d.ts +9 -9
- package/dist/regle-core.min.cjs +1 -1
- package/dist/regle-core.min.mjs +1 -1
- package/dist/regle-core.mjs +29 -25
- package/package.json +1 -1
package/dist/regle-core.cjs
CHANGED
|
@@ -615,7 +615,7 @@ function createReactiveRuleStatus({
|
|
|
615
615
|
});
|
|
616
616
|
$unwatchState = vue.watch(scopeState?.$params, () => {
|
|
617
617
|
if (modifiers.$autoDirty.value || modifiers.$rewardEarly.value && scopeState.$fieldError.value) {
|
|
618
|
-
$
|
|
618
|
+
$parse();
|
|
619
619
|
}
|
|
620
620
|
});
|
|
621
621
|
}
|
|
@@ -661,7 +661,7 @@ function createReactiveRuleStatus({
|
|
|
661
661
|
return ruleResult;
|
|
662
662
|
}
|
|
663
663
|
const $computeAsyncDebounce = debounce(computeAsyncResult, $debounce ?? 200);
|
|
664
|
-
async function $
|
|
664
|
+
async function $parse() {
|
|
665
665
|
try {
|
|
666
666
|
$validating.value = true;
|
|
667
667
|
let ruleResult = false;
|
|
@@ -713,7 +713,7 @@ function createReactiveRuleStatus({
|
|
|
713
713
|
$metadata,
|
|
714
714
|
$haveAsync,
|
|
715
715
|
$validating,
|
|
716
|
-
$
|
|
716
|
+
$parse,
|
|
717
717
|
$unwatch,
|
|
718
718
|
$watch,
|
|
719
719
|
$reset
|
|
@@ -1094,7 +1094,7 @@ function createReactiveFieldStatus({
|
|
|
1094
1094
|
}
|
|
1095
1095
|
function $commitHandler() {
|
|
1096
1096
|
Object.values($rules.value).forEach((rule) => {
|
|
1097
|
-
rule.$
|
|
1097
|
+
rule.$parse();
|
|
1098
1098
|
});
|
|
1099
1099
|
}
|
|
1100
1100
|
const $rules = vue.ref({});
|
|
@@ -1130,7 +1130,7 @@ function createReactiveFieldStatus({
|
|
|
1130
1130
|
}
|
|
1131
1131
|
if (!scopeState.$lazy.value && scopeState.$autoDirty.value) {
|
|
1132
1132
|
Object.values($rules.value).forEach((rule) => {
|
|
1133
|
-
return rule.$
|
|
1133
|
+
return rule.$parse();
|
|
1134
1134
|
});
|
|
1135
1135
|
}
|
|
1136
1136
|
if (!fromParent) {
|
|
@@ -1156,16 +1156,16 @@ function createReactiveFieldStatus({
|
|
|
1156
1156
|
if (!scopeState.$dirty.value) {
|
|
1157
1157
|
scopeState.$dirty.value = true;
|
|
1158
1158
|
} else if (scopeState.$autoDirty.value && scopeState.$dirty.value && !scopeState.$pending.value) {
|
|
1159
|
-
return {
|
|
1159
|
+
return { valid: !scopeState.$error.value, data };
|
|
1160
1160
|
}
|
|
1161
1161
|
if (schemaMode) {
|
|
1162
|
-
return {
|
|
1162
|
+
return { valid: !schemaErrors?.value?.length, data };
|
|
1163
1163
|
} else if (isEmpty($rules.value)) {
|
|
1164
|
-
return {
|
|
1164
|
+
return { valid: true, data };
|
|
1165
1165
|
}
|
|
1166
1166
|
const results = await Promise.allSettled(
|
|
1167
1167
|
Object.entries($rules.value).map(([key, rule]) => {
|
|
1168
|
-
return rule.$
|
|
1168
|
+
return rule.$parse();
|
|
1169
1169
|
})
|
|
1170
1170
|
);
|
|
1171
1171
|
const validationResults = results.every((value) => {
|
|
@@ -1175,9 +1175,9 @@ function createReactiveFieldStatus({
|
|
|
1175
1175
|
return false;
|
|
1176
1176
|
}
|
|
1177
1177
|
});
|
|
1178
|
-
return {
|
|
1178
|
+
return { valid: validationResults, data };
|
|
1179
1179
|
} catch (e) {
|
|
1180
|
-
return {
|
|
1180
|
+
return { valid: false, data: state.value };
|
|
1181
1181
|
}
|
|
1182
1182
|
}
|
|
1183
1183
|
function $extractDirtyFields(filterNullishValues = true) {
|
|
@@ -1639,20 +1639,20 @@ function createReactiveCollectionStatus({
|
|
|
1639
1639
|
try {
|
|
1640
1640
|
const results = await Promise.allSettled([
|
|
1641
1641
|
$selfStatus.value.$validate(),
|
|
1642
|
-
...$eachStatus.value.map((
|
|
1643
|
-
return
|
|
1642
|
+
...$eachStatus.value.map((status) => {
|
|
1643
|
+
return status.$validate();
|
|
1644
1644
|
})
|
|
1645
1645
|
]);
|
|
1646
1646
|
const validationResults = results.every((value) => {
|
|
1647
1647
|
if (value.status === "fulfilled") {
|
|
1648
|
-
return value.value.
|
|
1648
|
+
return value.value.valid === true;
|
|
1649
1649
|
} else {
|
|
1650
1650
|
return false;
|
|
1651
1651
|
}
|
|
1652
1652
|
});
|
|
1653
|
-
return {
|
|
1653
|
+
return { valid: validationResults, data };
|
|
1654
1654
|
} catch (e) {
|
|
1655
|
-
return {
|
|
1655
|
+
return { valid: false, data };
|
|
1656
1656
|
}
|
|
1657
1657
|
}
|
|
1658
1658
|
function $clearExternalErrors() {
|
|
@@ -1886,7 +1886,7 @@ function createReactiveNestedStatus({
|
|
|
1886
1886
|
});
|
|
1887
1887
|
});
|
|
1888
1888
|
const $invalid = vue.computed(() => {
|
|
1889
|
-
return Object.entries($fields.value).some(([_, statusOrField]) => {
|
|
1889
|
+
return !!Object.entries($fields.value).length && Object.entries($fields.value).some(([_, statusOrField]) => {
|
|
1890
1890
|
return statusOrField?.$invalid;
|
|
1891
1891
|
});
|
|
1892
1892
|
});
|
|
@@ -1904,7 +1904,11 @@ function createReactiveNestedStatus({
|
|
|
1904
1904
|
}
|
|
1905
1905
|
return false;
|
|
1906
1906
|
});
|
|
1907
|
-
const $error = vue.computed(() =>
|
|
1907
|
+
const $error = vue.computed(() => {
|
|
1908
|
+
return !!Object.entries($fields.value).length && Object.entries($fields.value).some(([_, statusOrField]) => {
|
|
1909
|
+
return statusOrField?.$error;
|
|
1910
|
+
});
|
|
1911
|
+
});
|
|
1908
1912
|
const $rewardEarly = vue.computed(() => {
|
|
1909
1913
|
if (vue.unref(commonArgs.options.rewardEarly) != null) {
|
|
1910
1914
|
return vue.unref(commonArgs.options.rewardEarly);
|
|
@@ -2122,7 +2126,7 @@ function createReactiveNestedStatus({
|
|
|
2122
2126
|
scopeState.$localPending.value = true;
|
|
2123
2127
|
return commonArgs.onValidate();
|
|
2124
2128
|
} else {
|
|
2125
|
-
return {
|
|
2129
|
+
return { valid: false, data: state.value };
|
|
2126
2130
|
}
|
|
2127
2131
|
} else {
|
|
2128
2132
|
const data = state.value;
|
|
@@ -2133,15 +2137,15 @@ function createReactiveNestedStatus({
|
|
|
2133
2137
|
);
|
|
2134
2138
|
const validationResults = results.every((value) => {
|
|
2135
2139
|
if (value.status === "fulfilled") {
|
|
2136
|
-
return value.value.
|
|
2140
|
+
return value.value.valid === true;
|
|
2137
2141
|
} else {
|
|
2138
2142
|
return false;
|
|
2139
2143
|
}
|
|
2140
2144
|
});
|
|
2141
|
-
return {
|
|
2145
|
+
return { valid: validationResults, data };
|
|
2142
2146
|
}
|
|
2143
2147
|
} catch (e) {
|
|
2144
|
-
return {
|
|
2148
|
+
return { valid: false, data: state.value };
|
|
2145
2149
|
} finally {
|
|
2146
2150
|
scopeState.$localPending.value = false;
|
|
2147
2151
|
}
|
|
@@ -2437,14 +2441,14 @@ function mergeRegles(regles, _scoped) {
|
|
|
2437
2441
|
);
|
|
2438
2442
|
const validationResults = results.every((value) => {
|
|
2439
2443
|
if (value.status === "fulfilled") {
|
|
2440
|
-
return value.value.
|
|
2444
|
+
return value.value.valid === true;
|
|
2441
2445
|
} else {
|
|
2442
2446
|
return false;
|
|
2443
2447
|
}
|
|
2444
2448
|
});
|
|
2445
|
-
return {
|
|
2449
|
+
return { valid: validationResults, data };
|
|
2446
2450
|
} catch (e) {
|
|
2447
|
-
return {
|
|
2451
|
+
return { valid: false, data: $value.value };
|
|
2448
2452
|
}
|
|
2449
2453
|
}
|
|
2450
2454
|
return vue.reactive({
|
package/dist/regle-core.d.cts
CHANGED
|
@@ -1466,14 +1466,14 @@ type PartialFormState<TState extends Record<string, any>> = [unknown] extends [T
|
|
|
1466
1466
|
[K in keyof TState as ExtendOnlyRealRecord<TState[K]> extends true ? K : TState[K] extends Array<any> ? K : never]: NonNullable<TState[K]> extends Array<infer U extends Record<string, any>> ? PartialFormState<U>[] : PartialFormState<TState[K]>;
|
|
1467
1467
|
}>;
|
|
1468
1468
|
type RegleResult<Data extends Record<string, any> | any[] | unknown, TRules extends ReglePartialRuleTree<any>> = {
|
|
1469
|
-
|
|
1469
|
+
valid: false;
|
|
1470
1470
|
data: NonNullable<Data> extends Date | File ? Maybe<Data> : NonNullable<Data> extends Array<infer U extends Record<string, any>> ? PartialFormState<U>[] : NonNullable<Data> extends Record<string, any> ? PartialFormState<NonNullable<Data>> : Maybe<Data>;
|
|
1471
1471
|
} | {
|
|
1472
|
-
|
|
1472
|
+
valid: true;
|
|
1473
1473
|
data: Data extends Array<infer U extends Record<string, any>> ? DeepSafeFormState<U, TRules>[] : Data extends Date | File ? SafeFieldProperty<Data, TRules> : Data extends Record<string, any> ? DeepSafeFormState<Data, TRules> : SafeFieldProperty<Data, TRules>;
|
|
1474
1474
|
};
|
|
1475
1475
|
type $InternalRegleResult = {
|
|
1476
|
-
|
|
1476
|
+
valid: boolean;
|
|
1477
1477
|
data: any;
|
|
1478
1478
|
};
|
|
1479
1479
|
|
|
@@ -1696,7 +1696,7 @@ type RegleRuleStatus<TValue = any, TParams extends any[] = any[], TMetadata exte
|
|
|
1696
1696
|
/** Contains the metadata returned by the validator function. */
|
|
1697
1697
|
readonly $metadata: TMetadata;
|
|
1698
1698
|
/** Run the rule validator and compute its properties like $message and $active */
|
|
1699
|
-
$
|
|
1699
|
+
$parse(): Promise<boolean>;
|
|
1700
1700
|
/** Reset the $valid, $metadata and $pending states */
|
|
1701
1701
|
$reset(): void;
|
|
1702
1702
|
/** Returns the original rule validator function. */
|
|
@@ -1729,7 +1729,7 @@ interface $InternalRegleRuleStatus {
|
|
|
1729
1729
|
$fieldCorrect: boolean;
|
|
1730
1730
|
$fieldError: boolean;
|
|
1731
1731
|
$validator(value: any, ...args: any[]): RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>;
|
|
1732
|
-
$
|
|
1732
|
+
$parse(): Promise<boolean>;
|
|
1733
1733
|
$reset(): void;
|
|
1734
1734
|
$unwatch(): void;
|
|
1735
1735
|
$watch(): void;
|
|
@@ -1873,17 +1873,17 @@ type MergedScopedRegles<TValue extends Record<string, unknown>[] = Record<string
|
|
|
1873
1873
|
readonly $silentErrors: RegleValidationErrors<Record<string, unknown>>[];
|
|
1874
1874
|
};
|
|
1875
1875
|
type MergedReglesResult<TRegles extends Record<string, SuperCompatibleRegleRoot>> = {
|
|
1876
|
-
|
|
1876
|
+
valid: false;
|
|
1877
1877
|
data: {
|
|
1878
1878
|
[K in keyof TRegles]: Extract<PromiseReturn<ReturnType<TRegles[K]['$validate']>>, {
|
|
1879
|
-
|
|
1879
|
+
valid: false;
|
|
1880
1880
|
}>['data'];
|
|
1881
1881
|
};
|
|
1882
1882
|
} | {
|
|
1883
|
-
|
|
1883
|
+
valid: true;
|
|
1884
1884
|
data: {
|
|
1885
1885
|
[K in keyof TRegles]: Extract<PromiseReturn<ReturnType<TRegles[K]['$validate']>>, {
|
|
1886
|
-
|
|
1886
|
+
valid: true;
|
|
1887
1887
|
}>['data'];
|
|
1888
1888
|
};
|
|
1889
1889
|
};
|
package/dist/regle-core.d.ts
CHANGED
|
@@ -1466,14 +1466,14 @@ type PartialFormState<TState extends Record<string, any>> = [unknown] extends [T
|
|
|
1466
1466
|
[K in keyof TState as ExtendOnlyRealRecord<TState[K]> extends true ? K : TState[K] extends Array<any> ? K : never]: NonNullable<TState[K]> extends Array<infer U extends Record<string, any>> ? PartialFormState<U>[] : PartialFormState<TState[K]>;
|
|
1467
1467
|
}>;
|
|
1468
1468
|
type RegleResult<Data extends Record<string, any> | any[] | unknown, TRules extends ReglePartialRuleTree<any>> = {
|
|
1469
|
-
|
|
1469
|
+
valid: false;
|
|
1470
1470
|
data: NonNullable<Data> extends Date | File ? Maybe<Data> : NonNullable<Data> extends Array<infer U extends Record<string, any>> ? PartialFormState<U>[] : NonNullable<Data> extends Record<string, any> ? PartialFormState<NonNullable<Data>> : Maybe<Data>;
|
|
1471
1471
|
} | {
|
|
1472
|
-
|
|
1472
|
+
valid: true;
|
|
1473
1473
|
data: Data extends Array<infer U extends Record<string, any>> ? DeepSafeFormState<U, TRules>[] : Data extends Date | File ? SafeFieldProperty<Data, TRules> : Data extends Record<string, any> ? DeepSafeFormState<Data, TRules> : SafeFieldProperty<Data, TRules>;
|
|
1474
1474
|
};
|
|
1475
1475
|
type $InternalRegleResult = {
|
|
1476
|
-
|
|
1476
|
+
valid: boolean;
|
|
1477
1477
|
data: any;
|
|
1478
1478
|
};
|
|
1479
1479
|
|
|
@@ -1696,7 +1696,7 @@ type RegleRuleStatus<TValue = any, TParams extends any[] = any[], TMetadata exte
|
|
|
1696
1696
|
/** Contains the metadata returned by the validator function. */
|
|
1697
1697
|
readonly $metadata: TMetadata;
|
|
1698
1698
|
/** Run the rule validator and compute its properties like $message and $active */
|
|
1699
|
-
$
|
|
1699
|
+
$parse(): Promise<boolean>;
|
|
1700
1700
|
/** Reset the $valid, $metadata and $pending states */
|
|
1701
1701
|
$reset(): void;
|
|
1702
1702
|
/** Returns the original rule validator function. */
|
|
@@ -1729,7 +1729,7 @@ interface $InternalRegleRuleStatus {
|
|
|
1729
1729
|
$fieldCorrect: boolean;
|
|
1730
1730
|
$fieldError: boolean;
|
|
1731
1731
|
$validator(value: any, ...args: any[]): RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>;
|
|
1732
|
-
$
|
|
1732
|
+
$parse(): Promise<boolean>;
|
|
1733
1733
|
$reset(): void;
|
|
1734
1734
|
$unwatch(): void;
|
|
1735
1735
|
$watch(): void;
|
|
@@ -1873,17 +1873,17 @@ type MergedScopedRegles<TValue extends Record<string, unknown>[] = Record<string
|
|
|
1873
1873
|
readonly $silentErrors: RegleValidationErrors<Record<string, unknown>>[];
|
|
1874
1874
|
};
|
|
1875
1875
|
type MergedReglesResult<TRegles extends Record<string, SuperCompatibleRegleRoot>> = {
|
|
1876
|
-
|
|
1876
|
+
valid: false;
|
|
1877
1877
|
data: {
|
|
1878
1878
|
[K in keyof TRegles]: Extract<PromiseReturn<ReturnType<TRegles[K]['$validate']>>, {
|
|
1879
|
-
|
|
1879
|
+
valid: false;
|
|
1880
1880
|
}>['data'];
|
|
1881
1881
|
};
|
|
1882
1882
|
} | {
|
|
1883
|
-
|
|
1883
|
+
valid: true;
|
|
1884
1884
|
data: {
|
|
1885
1885
|
[K in keyof TRegles]: Extract<PromiseReturn<ReturnType<TRegles[K]['$validate']>>, {
|
|
1886
|
-
|
|
1886
|
+
valid: true;
|
|
1887
1887
|
}>['data'];
|
|
1888
1888
|
};
|
|
1889
1889
|
};
|
package/dist/regle-core.min.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var vue=require('vue');function ee(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var pt=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 G(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>G(n)))),r=="Map"&&(t=new Map([...e].map(n=>[G(n[0]),G(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Lt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=G(e[n]);}return t}function ae(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function We(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Fe(e,t,r){let n,l=(...c)=>new Promise(p=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...c])).then(p);},t);});return l.cancel=()=>{clearTimeout(n),n=undefined;},l}var Le=(r=>(r.Inline="__inline",r.Async="__async",r))(Le||{});function mt(e,t){return e.some(r=>r[t])}function yt(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function te(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function gt(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function vt(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(p=>p.trim()).filter(p=>p.length>0).length:0}function Be(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(d,...$){return e.validator(d,...te($.length?$:t))},message(d){return typeof e.message=="function"?e.message({...d,$params:te(d?.$params?.length?d.$params:t)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:te(d?.$params?.length?d.$params:t)}):e.active??true},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:te(d?.$params?.length?d.$params:t)}):e.tooltip??[]},exec(d){let $=e.validator(d,...te(t)),m;return $ instanceof Promise?$.then(b=>(m=b,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:l,_params:gt(t),_brand:pt}}function He(e){if(typeof e.validator=="function"){let r=Be(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(vt(e.validator)>1){let l=function(...c){return Be(e,...c)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=false,l._tooltip_pacthed=false,l._async=n,l}else return r}throw new Error("Validator must be a function")}function ze(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),l=vue.shallowRef(new Map),c=vue.shallowRef(new Map);function p(v){let E=t.value.get(v);if(E)return E;{let D=vue.ref({});return t.value.set(v,D),D}}function d(v){let E=r.value.get(v);if(E)return E;{let D=vue.ref([]);return r.value.set(v,D),D}}function $(v,E,D){c.value.set(`${v}-${E}`,D);}function m(v,E){return c.value.get(`${v}-${E}`)}function b(v,E){v&&E!=null&&c.value.delete(`${v}-${E}`);}function V(v,E){n.value.set(v,E);}function C(v){return n.value.get(v)??false}function M(v,E){e.value.set(v,E);}function w(v,E){let D=e.value.get(v);return D?a(E,D)?{valid:true}:{valid:false}:undefined}function a(v,E){let D=Object.keys(E),f=Object.keys(v);return f.length!==D.length||!f.every(o=>D.includes(o))?false:f.every(o=>{let s=v[o],h=E[o];return !h||!s||typeof s=="function"||typeof h=="function"||typeof s=="number"||typeof s=="boolean"?false:s._params?s._params?.every((P,q)=>{if(typeof h=="number"||typeof h=="boolean")return true;{let U=te(h._params),X=te(s._params);return U?.[q]===X?.[q]}}):true})}function O(v){let E=l.value.get(v);if(E)return E;{let D=vue.ref(false),f=vue.ref(true),S=vue.ref({}),o=vue.ref(false);return l.value.set(v,{$pending:D,$valid:f,$metadata:S,$validating:o}),{$pending:D,$valid:f,$metadata:S,$validating:o}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),c.value.clear();}),{addRuleDeclEntry:M,setDirtyEntry:V,checkRuleDeclEntry:w,getDirtyState:C,trySetRuleStatusRef:O,getFieldsEntry:p,getCollectionsEntry:d,getArrayStatus:m,addArrayStatus:$,deleteArrayStatus:b,arrayStatusStorage:c}}function je(e){return ae(e.value)}function qe(e,t,r){let n=vue.effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function Xt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let c=Number(r[l]),p=Number(n[l]);if(c>p)return 1;if(p>c)return -1;if(!isNaN(c)&&isNaN(p))return 1;if(isNaN(c)&&!isNaN(p))return -1}return 0}var Ve=Xt(vue.version,"3.5.0")!==-1;function Zt(){return Math.floor(Math.random()*Date.now()).toString()}function Se(){return typeof window>"u"?Zt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function $t(e){return vue.getCurrentScope()?(vue.onScopeDispose(e),true):false}function St(e){let t=false,r,n=vue.effectScope(true);return (...l)=>(t||(r=n.run(()=>e(...l)),t=true),r)}function ht(e,t){return je(e)||ae(t.value)&&!ee(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function bt(e,t){return !!e.value&&ae(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Et(e){return !!e.value&&ae(e.value)}function we(e){return ae(e)&&"_validator"in e}function Oe(e){return typeof e.value!="function"}function Tt(e){return ae(e)&&"$fields"in e}function xt(e){return !!e&&"$rules"in e}function Ke({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 Dt({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 Ct({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:c,$debounce:p,modifiers:d}){let $=vue.effectScope(),m={},b,V=vue.ref(false),{$pending:C,$valid:M,$metadata:w,$validating:a}=c.trySetRuleStatusRef(`${l}.${r}`);function O(){$=vue.effectScope(),m=$.run(()=>{let s=vue.ref(false),h=vue.ref(false),P=vue.ref(true),q=vue.ref(false),U=vue.ref(false),X=vue.computed(()=>({$value:n.value,$error:h.value,$dirty:s.value,$pending:q.value,$correct:U.value,$invalid:P.value,$rule:{$valid:M.value,$invalid:!M.value,$pending:C.value},$params:i.value,...w.value})),I=vue.computed(()=>Oe(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function B(T){let F="",H=e?e[r]?.[T]:undefined;if(H&&(typeof H=="function"?F=H(X.value):F=H),Oe(t)){let y=`_${T}_patched`;H&&!t.value[y]||(typeof t.value[T]=="function"?F=t.value[T](X.value):F=t.value[T]??"");}return F}let de=vue.computed(()=>{let T=B("message");return ee(T)&&(T="This field is not valid"),T}),ye=vue.computed(()=>B("tooltip")),ie=vue.computed(()=>Oe(t)&&t.value.type?t.value.type:r),u=vue.computed(()=>Oe(t)?t.value.validator:t.value),i=vue.computed(()=>typeof t.value=="function"?[]:te(t.value._params??[])),R=vue.computed(()=>`${l}.${ie.value}`);return {$active:I,$message:de,$type:ie,$validator:u,$params:i,$path:R,$tooltip:ye,$fieldCorrect:U,$fieldError:h,$fieldDirty:s,$fieldPending:q,$fieldInvalid:P}}),b=vue.watch(m?.$params,()=>{(d.$autoDirty.value||d.$rewardEarly.value&&m.$fieldError.value)&&f();});}O();function v(){M.value=true,m.$fieldDirty.value&&(C.value=true);}async function E(){let s=false;try{let h=m.$validator.value;if(typeof h!="function")return console.error(`${l}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let P=h(n.value,...m.$params.value),q=n.value;v();let U;if(P instanceof Promise?U=await P:U=P,n.value!==q)return !0;if(typeof U=="boolean")s=U;else {let{$valid:X,...I}=U;s=X,w.value=I;}}catch{s=false;}finally{C.value=false;}return s}let D=Fe(E,p??200);async function f(){try{a.value=!0;let s=!1;if(we(t.value)&&t.value._async)s=await D();else {let h=m.$validator.value,P=h(n.value,...m.$params.value);if(P 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(P!=null)if(typeof P=="boolean")s=P;else {let{$valid:q,...U}=P;s=q,w.value=U;}}return M.value=s,s}catch{return false}finally{a.value=false;}}function S(){M.value=true,w.value={},C.value=false,a.value=false,O();}function o(){b(),$.stop(),$=vue.effectScope();}return vue.reactive({...m,$pending:C,$valid:M,$metadata:w,$haveAsync:V,$validating:a,$validate:f,$unwatch:o,$watch:O,$reset:S})}function _e({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:c,options:p,externalErrors:d,schemaErrors:$,schemaMode:m,onUnwatch:b,$isArray:V,initialState:C,shortcuts:M}){let w=vue.effectScope(),a,O=[],v,E,D,f,S,o=()=>{};function s(){let g=t.value,k=c.checkRuleDeclEntry(n,g);B.value=Object.fromEntries(Object.entries(g).filter(([A])=>A.startsWith("$"))),q(),I.value=Object.fromEntries(Object.entries(t.value).filter(([A])=>!A.startsWith("$")).map(([A,x])=>{if(x){let ue=vue.toRef(()=>x);return [A,Ct({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:ue,ruleKey:A,state:e,path:n,storage:c,$debounce:B.value.$debounce})]}return []}).filter(A=>!!A.length)),a.processShortcuts(),h(),k?.valid!=null&&(a.$dirty.value=c.getDirtyState(n),(a.$dirty.value&&a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o()),c.addRuleDeclEntry(n,g);}function h(){o=a.$debounce.value?Fe(X,a.$debounce.value??a.$haveAnyAsyncRule?100:0):X;}function P(){I.value&&Object.entries(I.value).forEach(([g,k])=>{k.$unwatch();}),D(),S?.(),a.$dirty.value&&c.setDirtyEntry(n,a.$dirty.value),v?.(),E?.(),w.stop(),w=vue.effectScope(),O.forEach(g=>g.stop()),O=[],b?.(),f?.();}function q(){I.value&&Object.entries(I.value).forEach(([g,k])=>{k.$watch();}),a=w.run(()=>{let g=vue.ref(false),k=vue.ref(false),A=vue.computed(()=>g.value),x=vue.computed(()=>B.value.$debounce),ue=vue.computed(()=>B.value.$lazy!=null?B.value.$lazy:vue.unref(p.lazy)!=null?vue.unref(p.lazy):false),le=vue.computed(()=>B.value.$rewardEarly!=null?B.value.$rewardEarly:vue.unref(p.rewardEarly)!=null?vue.unref(p.rewardEarly):false),pe=vue.computed(()=>B.value.$clearExternalErrorsOnChange!=null?B.value.$clearExternalErrorsOnChange:vue.unref(p.clearExternalErrorsOnChange)!=null?vue.unref(p.clearExternalErrorsOnChange):true),W=vue.computed(()=>B.value.$autoDirty!=null?B.value.$autoDirty:vue.unref(p.autoDirty)!=null?vue.unref(p.autoDirty):!le.value),j=vue.computed(()=>Object.entries(I.value).some(([oe,Q])=>Q.$validating)),z=vue.computed({get:()=>e.value,set(oe){v(),e.value=oe,U();}}),me=vue.computed(()=>ge.value&&!Ie.value&&g.value),at=vue.computed(()=>Ke({field:{$rules:I.value,$error:me.value,$externalErrors:d?.value,$schemaErrors:$?.value}})),lt=vue.computed(()=>Ke({field:{$rules:I.value,$error:me.value,$externalErrors:d?.value,$schemaErrors:$?.value},silent:true})),Ue=vue.computed(()=>g.value?C.value instanceof Date&&e.value instanceof Date?We(C.value).getDate()!==We(e.value).getDate():C.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(C.value)?e.value.length!==C.value.length:C.value!==e.value:false),ot=vue.computed(()=>Ue.value),st=vue.computed(()=>Dt({field:{$rules:I.value}})),ut=vue.computed(()=>W.value?A.value&&!(ge.value||Ie.value):!(ge.value||Ie.value)),Ie=vue.computed(()=>k.value||!le.value?Object.entries(I.value).some(([oe,Q])=>Q.$pending):false),ge=vue.computed(()=>d?.value?.length||$?.value?.length?true:Me.value?false:!le.value||le.value&&k.value?Object.entries(I.value).some(([oe,Q])=>!Q.$valid):false),it=vue.computed(()=>l),Me=vue.computed(()=>!!(ee(I.value)&&!m)),ct=vue.computed(()=>d?.value?.length||Me.value?false:g.value&&!ee(e.value)&&!j.value?m?!$?.value?.length:Object.values(I.value).some(Q=>Q.$active)?Object.values(I.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),Ut=vue.computed(()=>Object.entries(I.value).some(([oe,Q])=>Q.$haveAsync));function Wt(){M?.fields&&Object.entries(M.fields).forEach(([oe,Q])=>{let Rt=vue.effectScope();ft[oe]=Rt.run(()=>{let dt=vue.ref();return vue.watchEffect(()=>{dt.value=Q(vue.reactive({$dirty:g,$externalErrors:d?.value??[],$value:e,$silentValue:z,$rules:I,$error:me,$pending:Ie,$invalid:ge,$correct:ct,$errors:at,$ready:ut,$silentErrors:lt,$anyDirty:A,$tooltips:st,$name:it,$inactive:Me,$edited:Ue,$anyEdited:ot}));}),dt}),O.push(Rt);});}let ft={};return vue.watch(ge,oe=>{oe||(k.value=false);}),{$error:me,$pending:Ie,$invalid:ge,$correct:ct,$debounce:x,$lazy:ue,$errors:at,$ready:ut,$silentErrors:lt,$rewardEarly:le,$autoDirty:W,$clearExternalErrorsOnChange:pe,$anyDirty:A,$edited:Ue,$anyEdited:ot,$name:it,$haveAnyAsyncRule:Ut,$shortcuts:ft,$validating:j,$tooltips:st,$dirty:g,triggerPunishment:k,processShortcuts:Wt,$silentValue:z,$inactive:Me}}),U(),D=vue.watch(a.$dirty,g=>{c.setDirtyEntry(n,g),Object.values(I.value).forEach(k=>{k.$fieldDirty=g;});}),S=vue.watch([a.$error,a.$correct,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(g=>{g.$fieldError=a.$error.value,g.$fieldInvalid=a.$invalid.value,g.$fieldPending=a.$pending.value,g.$fieldCorrect=a.$correct.value;});}),E=vue.watch(a.$invalid,g=>{a.$rewardEarly.value&&!g&&(a.triggerPunishment.value=false);}),f=vue.watch(a.$haveAnyAsyncRule,h);}function U(){v=vue.watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&s(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&i();},{deep:V?true:Ve?1:true,flush:"post"});}function X(){Object.values(I.value).forEach(g=>{g.$validate();});}let I=vue.ref({}),B=vue.ref({});s();function de(g,k){if(i(),a.$dirty.value=false,a.triggerPunishment.value=false,c.setDirtyEntry(n,false),!k)if(g?.toInitialState)P(),e.value=G(C);else if(g?.toState){P();let A;typeof g?.toState=="function"?A=g?.toState():A=g?.toState,C.value=G(A),e.value=G(A);}else C.value=ae(e.value)?G(e.value):Array.isArray(e.value)?[...e.value]:e.value;k||Object.entries(I.value).forEach(([A,x])=>{x.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(A=>A.$validate()),k||s();}function ye(g=true,k=false){a.$dirty.value||(a.$dirty.value=true),k&&g?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o():g&&o();}async function ie(){try{let g=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:g};return m?{result:!$?.value?.length,data:g}:ee(I.value)?{result:!0,data:g}:{result:(await Promise.allSettled(Object.entries(I.value).map(([x,ue])=>ue.$validate()))).every(x=>x.status==="fulfilled"?x.value===!0:!1),data:g}}catch{return {result:false,data:e.value}}}function u(g=true){return a.$dirty.value?e.value:g?{_null:true}:null}function i(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&o();let{$shortcuts:R,$validating:T,$autoDirty:F,$rewardEarly:H,$clearExternalErrorsOnChange:y,$haveAnyAsyncRule:_,$debounce:K,$lazy:Z,triggerPunishment:J,...se}=a;return vue.reactive({...se,$externalErrors:d,$value:e,$rules:I,...R,$reset:de,$touch:ye,$validate:ie,$unwatch:P,$watch:q,$extractDirtyFields:u,$clearExternalErrors:i})}function Qe({$id:e,path:t,index:r,options:n,storage:l,stateValue:c,customMessages:p,rules:d,externalErrors:$,schemaErrors:m,initialState:b,shortcuts:V,fieldName:C,schemaMode:M}){let w=d.$key?d.$key:Se(),a=`${t}.${String(w)}`;typeof c.value=="object"&&c.value!=null&&(c.value.$id?a=`${t}.${c.value.$id}`:Object.defineProperties(c.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let O=vue.toRef($?.value??[],r),v=vue.computed(()=>m?.value?.[r]),E=Ee({state:c,rulesDef:vue.toRef(()=>d),customMessages:p,path:a,storage:l,options:n,externalErrors:O,schemaErrors:v,initialState:b,shortcuts:V,fieldName:C,schemaMode:M});if(E){let D=c.value?.$id;E.$id=D??String(w),l.addArrayStatus(e,E.$id,E);}return E}function Pt({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:c,externalErrors:p,schemaErrors:d,schemaMode:$,initialState:m,shortcuts:b,fieldName:V}){let C=vue.effectScope(),M,w=vue.effectScope(),a,O=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let v=vue.ref(),E=vue.ref(e.value),D,f=vue.ref({}),S=l.getCollectionsEntry(n);a=w.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(i=>typeof i!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(i=>we(i)||typeof i=="function"):false)})),o(),P();function o(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(v.value=Se(),Object.defineProperties(e.value,{$id:{value:v.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(v.value=e.value.$id)),E.value=f.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?S.value=e.value.filter(u=>typeof u=="object").map((u,i)=>{let{scope:R,unwrapped:T}=qe(t.value.$each,vue.toRef(()=>u),i);R&&O.push(R);let F=vue.toRef(m.value??[],i),H=vue.toRef(p?.value??{},"$each"),y=vue.computed(()=>d?.value?.$each),_=Qe({$id:v.value,path:n,customMessages:r,rules:T??{},stateValue:vue.toRef(()=>u),index:i,options:c,storage:l,externalErrors:H,schemaErrors:y,initialState:F,shortcuts:b,fieldName:V,schemaMode:$});return _||null}).filter(u=>!!u):S.value=[],f.value=_e({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:c,externalErrors:vue.toRef(p?.value??{},"$self"),schemaErrors:vue.computed(()=>d?.value?.$self),$isArray:true,initialState:m,shortcuts:b,fieldName:V,schemaMode:$});}function s(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let u=G(S.value);S.value=e.value.filter(i=>typeof i=="object").map((i,R)=>{let T=vue.toRef(()=>i);if(i.$id&&S.value.find(F=>F.$id===i.$id)){let F=l.getArrayStatus(v.value,i.$id);return F?(F.$value=T,F):null}else {let{scope:F,unwrapped:H}=qe(t.value.$each,T,R);F&&O.push(F);let y=vue.toRef(p?.value??{},"$each"),_=vue.computed(()=>d?.value?.$each??[]),K=Qe({$id:v.value,path:n,customMessages:r,rules:H??{},stateValue:T,index:R,options:c,storage:l,externalErrors:y,schemaErrors:_,initialState:vue.toRef(m.value??[],R),shortcuts:b,fieldName:V,schemaMode:$});return K||null}}).filter(i=>!!i),u.filter(i=>!e.value?.find(R=>i.$id===R.$id)).forEach((i,R)=>{l.deleteArrayStatus(v.value,R.toString());});}else S.value=[];}function h(){D=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?o():s();},{deep:Ve?1:true,flush:"pre"});}function P(){h(),C=vue.effectScope(),M=C.run(()=>{let u=vue.computed({get:()=>e.value,set(x){D(),e.value=x,h();}}),i=vue.computed(()=>f.value.$dirty&&(!S.value.length||S.value.every(x=>x.$dirty))),R=vue.computed(()=>f.value.$anyDirty||S.value.some(x=>x.$anyDirty)),T=vue.computed(()=>f.value.$invalid||S.value.some(x=>x.$invalid)),F=vue.computed(()=>(ee(f.value.$rules)?true:f.value.$correct)&&(!S.value.length||S.value.every(x=>x.$correct||x.$anyDirty&&!x.$invalid))),H=vue.computed(()=>f.value.$error||S.value.some(x=>x.$error)),y=vue.computed(()=>!(T.value||_.value)),_=vue.computed(()=>f.value.$pending||S.value.some(x=>x.$pending)),K=vue.computed(()=>!!S.value.length&&S.value.every(x=>x.$edited)),Z=vue.computed(()=>f.value.$anyEdited||S.value.some(x=>x.$anyEdited)),J=vue.computed(()=>({$self:f.value.$errors,$each:S.value.map(x=>x.$errors)})),se=vue.computed(()=>({$self:f.value.$silentErrors,$each:S.value.map(x=>x.$silentErrors)})),g=vue.computed(()=>V);function k(){b?.collections&&Object.entries(b?.collections).forEach(([x,ue])=>{let le=vue.effectScope();A[x]=le.run(()=>{let pe=vue.ref();return vue.watchEffect(()=>{pe.value=ue(vue.reactive({$dirty:i,$error:H,$silentValue:u,$pending:_,$invalid:T,$correct:F,$errors:J,$ready:y,$silentErrors:se,$anyDirty:R,$name:g,$each:S,$self:f,$value:e,$edited:K,$anyEdited:Z}));}),pe}),O.push(le);});}let A={};return k(),{$dirty:i,$anyDirty:R,$invalid:T,$correct:F,$error:H,$pending:_,$errors:J,$silentErrors:se,$ready:y,$name:g,$shortcuts:A,$silentValue:u,$edited:K,$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 q(){D&&D(),f.value&&f.value.$unwatch(),S.value&&S.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),C.stop(),C=vue.effectScope(),w.stop(),w=vue.effectScope(true),O.forEach(u=>u.stop()),O=[];}function U(u=true,i=false){f.value.$touch(u,i),S.value.forEach(R=>{R.$touch(u,i);});}function X(u,i){if(q(),!i)if(u?.toInitialState)e.value=G(m.value);else if(u?.toState){let R;typeof u?.toState=="function"?R=u?.toState():R=u?.toState,m.value=G(R),e.value=G(R);}else m.value=G(e.value);f.value.$reset(),S.value.forEach(R=>{R.$reset(u,true);}),i||o();}async function I(){let u=e.value;try{return {result:(await Promise.allSettled([f.value.$validate(),...S.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:u}}catch{return {result:false,data:u}}}function B(){f.value.$clearExternalErrors(),S.value.forEach(u=>{u.$clearExternalErrors();});}function de(u=true){let i=S.value.map(R=>{if(Tt(R))return R.$extractDirtyFields(u)});return u&&i.every(R=>ee(R))&&(i=[]),i}let{$shortcuts:ye,...ie}=M;return vue.reactive({$self:f,...ie,...ye,$each:S,$value:e,$validate:I,$unwatch:q,$watch:P,$touch:U,$reset:X,$extractDirtyFields:de,$clearExternalErrors:B})}function Ne({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:c,rootSchemaErrors:p,validationGroups:d,initialState:$,fieldName:m,...b}){let V=vue.effectScope(),C,M=[],w=null,a=null,O=null,v=null;async function D(u=true){let i=Object.entries(e.value),R=Object.fromEntries(i.filter(([y,_])=>!!_).map(([y,_])=>{if(_){let K=vue.toRef(t.value??{},y),Z=vue.toRef(()=>_),J=vue.toRef(l?.value??{},y),se=vue.computed(()=>c?.value?.[y]),g=vue.toRef($?.value??{},y);return [y,Ee({state:K,rulesDef:Z,path:r?`${r}.${y}`:y,externalErrors:J,schemaErrors:se,initialState:g,fieldName:y,...b})]}return []})),T=Object.fromEntries(Object.entries(vue.unref(l)??{}).filter(([y,_])=>!(y in e.value)&&!!_).map(([y])=>{let _=vue.toRef(t.value??{},y),K=vue.toRef(l?.value??{},y),Z=vue.computed(()=>c?.value?.[y]),J=vue.toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:J,fieldName:y,...b})]})),F=Object.fromEntries(Object.entries(vue.unref(c)??{}).map(([y])=>{let _=vue.toRef(t.value??{},y),K=vue.toRef(l?.value??{},y),Z=vue.computed(()=>c?.value?.[y]),J=vue.toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:J,fieldName:y,...b})]})),H=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(T??{}))&&!(y in(F??{}))).map(([y])=>{let _=vue.toRef(t.value??{},y),K=vue.toRef(l?.value??{},y),Z=vue.computed(()=>c?.value?.[y]),J=vue.toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:J,fieldName:y,...b})]}));f.value={...R,...T,...F,...H},u&&s();}let f=b.storage.getFieldsEntry(r);D();function S(){l&&(O=vue.watch(l,()=>{h(),D();},{deep:true}));}function o(){v=vue.watch(t,()=>{h(),D(),U(true,true);},{flush:"sync"});}function s(){n&&(w?.(),w=vue.watch(n,()=>{h(),D();},{deep:true,flush:"post"}),S()),p&&(a?.(),a=vue.watch(p,()=>{h(),D();},{deep:true,flush:"post"})),o(),C=V.run(()=>{let u=vue.computed({get:()=>t.value,set(W){h(),t.value=W,D();}}),i=vue.computed(()=>!!Object.entries(f.value).length&&Object.entries(f.value).every(([W,j])=>j?.$dirty)),R=vue.computed(()=>Object.entries(f.value).some(([W,j])=>j?.$anyDirty)),T=vue.computed(()=>Object.entries(f.value).some(([W,j])=>j?.$invalid)),F=vue.computed(()=>{let W=Object.entries(f.value).filter(([j,z])=>xt(z)?!z.$inactive:true);return W.length?W.every(([j,z])=>z?.$correct||z.$anyDirty&&!z.$invalid):false}),H=vue.computed(()=>R.value&&!J.value&&T.value),y=vue.computed(()=>vue.unref(b.options.rewardEarly)!=null?vue.unref(b.options.rewardEarly):false),_=vue.computed(()=>vue.unref(b.options.autoDirty)!=null?vue.unref(b.options.autoDirty):!y.value),K=vue.computed(()=>_.value?R.value&&!(T.value||J.value):!(T.value||J.value)),Z=vue.ref(false),J=vue.computed(()=>Z.value||Object.entries(f.value).some(([W,j])=>j?.$pending)),se=vue.computed(()=>Object.fromEntries(Object.entries(f.value).map(([W,j])=>[W,j?.$errors]))),g=vue.computed(()=>Object.fromEntries(Object.entries(f.value).map(([W,j])=>[W,j?.$silentErrors]))),k=vue.computed(()=>!!Object.entries(f.value).length&&Object.entries(f.value).every(([W,j])=>j?.$edited)),A=vue.computed(()=>Object.entries(f.value).some(([W,j])=>j?.$anyEdited)),x=vue.computed(()=>m);function ue(){b.shortcuts?.nested&&Object.entries(b.shortcuts.nested).forEach(([W,j])=>{let z=vue.effectScope();pe[W]=z.run(()=>{let me=vue.ref();return vue.watchEffect(()=>{me.value=j(vue.reactive({$dirty:i,$value:t,$silentValue:u,$error:H,$pending:J,$invalid:T,$correct:F,$ready:K,$anyDirty:R,$name:x,$silentErrors:g,$errors:se,$fields:f,$edited:k,$anyEdited:A}));}),me}),M.push(z);});}let le=vue.computed({get:()=>d?Object.fromEntries(Object.entries(d?.(f.value)??{}).map(([W,j])=>j.length?[W,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(z=>[z,mt(j,z)])),...Object.fromEntries(["$errors","$silentErrors"].map(z=>[z,yt(j,z)]))}]:[])):{},set(){}}),pe={};return ue(),{$dirty:i,$anyDirty:R,$invalid:T,$correct:F,$error:H,$pending:J,$errors:se,$silentErrors:g,$ready:K,$name:x,$shortcuts:pe,$groups:le,$silentValue:u,$edited:k,$anyEdited:A,$localPending:Z}});}function h(){w?.(),O?.(),v?.(),a?.(),M=[],C={},f.value&&Object.entries(f.value).forEach(([u,i])=>{i.$unwatch();});}function P(){Object.entries(f.value).forEach(([u,i])=>{i.$clearExternalErrors();});}function q(u,i){if(O?.(),h(),!i)if(u?.toInitialState)t.value=G({...$.value??{}});else if(u?.toState){let R;typeof u?.toState=="function"?R=u?.toState():R=u?.toState,$.value=G(R),t.value=G(R);}else $.value=G(t.value);Object.values(f.value).forEach(R=>{R.$reset(u,true);}),S(),i||D();}function U(u=true,i=false){Object.values(f.value).forEach(R=>{R.$touch(u,i);});}function X(u){return u.filter(([i,R])=>ae(R)?!(R&&typeof R=="object"&&"_null"in R)&&!ee(R):Array.isArray(R)?R.length:true)}function I(u=true){let i=Object.entries(f.value).map(([R,T])=>[R,T.$extractDirtyFields(u)]);return u&&(i=X(i)),Object.fromEntries(i)}async function B(){try{if(b.schemaMode)return b.onValidate?(U(!1),C.$localPending.value=!0,b.onValidate()):{result:!1,data:t.value};{let u=t.value;return {result:(await Promise.allSettled(Object.values(f.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:u}}}catch{return {result:false,data:t.value}}finally{C.$localPending.value=false;}}let{$shortcuts:de,$localPending:ye,...ie}=C;return vue.reactive({...ie,...de,$fields:f,$value:t,$reset:q,$touch:U,$validate:B,$unwatch:h,$watch:s,$clearExternalErrors:P,$extractDirtyFields:I})}function Ee({rulesDef:e,...t}){if(bt(e,t.state))return Pt({rulesDef:e,...t});if(ht(t.state,e)){if(je(t.state))return Ne({rulesDef:e,...t});{let n=vue.effectScope().run(()=>{let p=vue.toRef(t.state.value?t.state:vue.ref({}));return vue.watch(()=>t.state.value,d=>{p.value=d;},{deep:true}),vue.watch(p,d=>{t.state.value=d;},{deep:true}),{fakeState:p}}),{state:l,...c}=t;return Ne({rulesDef:e,...c,state:n.fakeState})}}else if(Et(e))return _e({rulesDef:e,...t})}function Ce({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:c,schemaErrors:p,schemaMode:d=false,onValidate:$}){let m=ze(),b=vue.ref();return b.value=Ne({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:c,fieldName:"root",path:"",schemaErrors:p,rootSchemaErrors:p,schemaMode:d,onValidate:$}),vue.getCurrentScope()&&vue.onScopeDispose(()=>{b.value?.$unwatch();}),vue.reactive({regle:b})}function et(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(c,p,d){let $=vue.isRef(p)?p:vue.computed(typeof p=="function"?p:()=>p),m={...n,...d},b=vue.isRef(c)?c:vue.ref(c),V=vue.ref({...G(b.value)});return {r$:Ce({scopeRules:$,state:b,options:m,initialState:V,customRules:e,shortcuts:r}).regle}}return l}var Ge=et();function tt(){function e(t,r){return r}return e}var rt=tt();function jt({rules:e,modifiers:t,shortcuts:r}){let n=et(e,t,r),l=tt();return {useRegle:n,inferRules:l}}function Ae(e,t){let r=t??false,n=vue.computed({get:()=>r?Object.values(e).map(o=>o.$value):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$value])),set:o=>{r||typeof o=="object"&&Object.entries(o).forEach(([s,h])=>e[s].$value=h);}}),l=vue.computed({get:()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentValue])),set:o=>{typeof o=="object"&&Object.entries(o).forEach(([s,h])=>e[s].$silentValue=h);}}),c=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$dirty)}),p=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$anyDirty)),d=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$invalid)),$=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$correct||h.$anyDirty&&!h.$invalid)}),m=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$error)),b=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$ready)}),V=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$pending)),C=vue.computed(()=>r?Object.entries(e).map(([o,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$errors]))),M=vue.computed(()=>r?Object.entries(e).map(([o,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentErrors]))),w=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$edited)}),a=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$anyEdited)),O=vue.computed(()=>r?Object.values(e):e);function v(o){Object.values(e).forEach(s=>{s.$reset(o);});}function E(){Object.values(e).forEach(o=>{o.$touch();});}function D(o=true){return Object.values(e).map(s=>s.$extractDirtyFields(o))}function f(){Object.values(e).forEach(o=>{o.$clearExternalErrors();});}async function S(){try{let o=n.value;return {result:(await Promise.allSettled(Object.values(e).map(P=>P.$validate()))).every(P=>P.status==="fulfilled"?P.value.result===!0:!1),data:o}}catch{return {result:false,data:n.value}}}return vue.reactive({...!r&&{$silentValue:l},$errors:C,$silentErrors:M,$instances:O,$value:n,$dirty:c,$anyDirty:p,$invalid:d,$correct:$,$error:m,$pending:V,$ready:b,$edited:w,$anyEdited:a,$reset:v,$touch:E,$validate:S,$extractDirtyFields:D,$clearExternalErrors:f})}function _t(e){function t(r){let n=vue.computed(()=>vue.toValue(r));p();let l=vue.ref(d(e.value)),c=vue.reactive({r$:l});function p(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}vue.watch(n,p),vue.watch(e,$=>{l.value=d($);},{deep:true});function d($){if(n.value){let m=$[n.value]??{};return Ae(m,true)}else return Ae($["~~global"]??{},true)}return {r$:c.r$}}return {useCollectScope:t}}function Gt(e,t){let r=t??Ge;return {useScopedRegle:(l,c,p)=>{let{namespace:d,...$}=p??{},m=vue.computed(()=>vue.toValue(d)),b=vue.ref(`${Object.keys(e.value).length+1}-${Se()}`),V=vue.computed(()=>`instance-${b.value}`),{r$:C}=r(l,c,$);w(),$t(M),vue.watch(m,(a,O)=>{M(O),w();}),vue.getCurrentInstance()&&vue.onMounted(()=>{let a=vue.getCurrentInstance();typeof window<"u"&&a?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(a?.proxy?.$el?.parentElement)&&M();});function M(a){let O=a??m.value;O?e.value[O]&&delete e.value[O][V.value]:e.value["~~global"][V.value]&&delete e.value["~~global"][V.value];}function w(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][V.value]=C):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][V.value]=C);}return {r$:C,dispose:M,register:w}}}}function nt(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):St(()=>vue.ref({"~~global":{}})))(),{useScopedRegle:n}=Gt(r,e?.customUseRegle),{useCollectScope:l}=_t(r);return {useScopedRegle:n,useCollectScope:l}}
|
|
1
|
+
'use strict';var vue=require('vue');function ee(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var pt=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 U(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>U(n)))),r=="Map"&&(t=new Map([...e].map(n=>[U(n[0]),U(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]=U(e[n]);}return t}function ae(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function We(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Fe(e,t,r){let n,l=(...f)=>new Promise(p=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...f])).then(p);},t);});return l.cancel=()=>{clearTimeout(n),n=undefined;},l}var Le=(r=>(r.Inline="__inline",r.Async="__async",r))(Le||{});function mt(e,t){return e.some(r=>r[t])}function yt(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function te(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function gt(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function vt(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(p=>p.trim()).filter(p=>p.length>0).length:0}function Be(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(d,...$){return e.validator(d,...te($.length?$:t))},message(d){return typeof e.message=="function"?e.message({...d,$params:te(d?.$params?.length?d.$params:t)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:te(d?.$params?.length?d.$params:t)}):e.active??true},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:te(d?.$params?.length?d.$params:t)}):e.tooltip??[]},exec(d){let $=e.validator(d,...te(t)),m;return $ instanceof Promise?$.then(b=>(m=b,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:l,_params:gt(t),_brand:pt}}function He(e){if(typeof e.validator=="function"){let r=Be(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(vt(e.validator)>1){let l=function(...f){return Be(e,...f)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=false,l._tooltip_pacthed=false,l._async=n,l}else return r}throw new Error("Validator must be a function")}function ze(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),l=vue.shallowRef(new Map),f=vue.shallowRef(new Map);function p(v){let E=t.value.get(v);if(E)return E;{let D=vue.ref({});return t.value.set(v,D),D}}function d(v){let E=r.value.get(v);if(E)return E;{let D=vue.ref([]);return r.value.set(v,D),D}}function $(v,E,D){f.value.set(`${v}-${E}`,D);}function m(v,E){return f.value.get(`${v}-${E}`)}function b(v,E){v&&E!=null&&f.value.delete(`${v}-${E}`);}function V(v,E){n.value.set(v,E);}function C(v){return n.value.get(v)??false}function F(v,E){e.value.set(v,E);}function O(v,E){let D=e.value.get(v);return D?a(E,D)?{valid:true}:{valid:false}:undefined}function a(v,E){let D=Object.keys(E),i=Object.keys(v);return i.length!==D.length||!i.every(o=>D.includes(o))?false:i.every(o=>{let s=v[o],h=E[o];return !h||!s||typeof s=="function"||typeof h=="function"||typeof s=="number"||typeof s=="boolean"?false:s._params?s._params?.every((A,q)=>{if(typeof h=="number"||typeof h=="boolean")return true;{let W=te(h._params),X=te(s._params);return W?.[q]===X?.[q]}}):true})}function w(v){let E=l.value.get(v);if(E)return E;{let D=vue.ref(false),i=vue.ref(true),S=vue.ref({}),o=vue.ref(false);return l.value.set(v,{$pending:D,$valid:i,$metadata:S,$validating:o}),{$pending:D,$valid:i,$metadata:S,$validating:o}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),f.value.clear();}),{addRuleDeclEntry:F,setDirtyEntry:V,checkRuleDeclEntry:O,getDirtyState:C,trySetRuleStatusRef:w,getFieldsEntry:p,getCollectionsEntry:d,getArrayStatus:m,addArrayStatus:$,deleteArrayStatus:b,arrayStatusStorage:f}}function je(e){return ae(e.value)}function qe(e,t,r){let n=vue.effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function Xt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let f=Number(r[l]),p=Number(n[l]);if(f>p)return 1;if(p>f)return -1;if(!isNaN(f)&&isNaN(p))return 1;if(isNaN(f)&&!isNaN(p))return -1}return 0}var Ve=Xt(vue.version,"3.5.0")!==-1;function Zt(){return Math.floor(Math.random()*Date.now()).toString()}function Se(){return typeof window>"u"?Zt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function $t(e){return vue.getCurrentScope()?(vue.onScopeDispose(e),true):false}function St(e){let t=false,r,n=vue.effectScope(true);return (...l)=>(t||(r=n.run(()=>e(...l)),t=true),r)}function ht(e,t){return je(e)||ae(t.value)&&!ee(t.value)&&!Object.entries(t.value).some(([r,n])=>Oe(n)||typeof n=="function")}function bt(e,t){return !!e.value&&ae(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Et(e){return !!e.value&&ae(e.value)}function Oe(e){return ae(e)&&"_validator"in e}function we(e){return typeof e.value!="function"}function Tt(e){return ae(e)&&"$fields"in e}function xt(e){return !!e&&"$rules"in e}function Ke({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 Dt({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 Ct({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:f,$debounce:p,modifiers:d}){let $=vue.effectScope(),m={},b,V=vue.ref(false),{$pending:C,$valid:F,$metadata:O,$validating:a}=f.trySetRuleStatusRef(`${l}.${r}`);function w(){$=vue.effectScope(),m=$.run(()=>{let s=vue.ref(false),h=vue.ref(false),A=vue.ref(true),q=vue.ref(false),W=vue.ref(false),X=vue.computed(()=>({$value:n.value,$error:h.value,$dirty:s.value,$pending:q.value,$correct:W.value,$invalid:A.value,$rule:{$valid:F.value,$invalid:!F.value,$pending:C.value},$params:c.value,...O.value})),I=vue.computed(()=>we(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function B(T){let j="",H=e?e[r]?.[T]:undefined;if(H&&(typeof H=="function"?j=H(X.value):j=H),we(t)){let y=`_${T}_patched`;H&&!t.value[y]||(typeof t.value[T]=="function"?j=t.value[T](X.value):j=t.value[T]??"");}return j}let de=vue.computed(()=>{let T=B("message");return ee(T)&&(T="This field is not valid"),T}),ye=vue.computed(()=>B("tooltip")),ie=vue.computed(()=>we(t)&&t.value.type?t.value.type:r),u=vue.computed(()=>we(t)?t.value.validator:t.value),c=vue.computed(()=>typeof t.value=="function"?[]:te(t.value._params??[])),R=vue.computed(()=>`${l}.${ie.value}`);return {$active:I,$message:de,$type:ie,$validator:u,$params:c,$path:R,$tooltip:ye,$fieldCorrect:W,$fieldError:h,$fieldDirty:s,$fieldPending:q,$fieldInvalid:A}}),b=vue.watch(m?.$params,()=>{(d.$autoDirty.value||d.$rewardEarly.value&&m.$fieldError.value)&&i();});}w();function v(){F.value=true,m.$fieldDirty.value&&(C.value=true);}async function E(){let s=false;try{let h=m.$validator.value;if(typeof h!="function")return console.error(`${l}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let A=h(n.value,...m.$params.value),q=n.value;v();let W;if(A instanceof Promise?W=await A:W=A,n.value!==q)return !0;if(typeof W=="boolean")s=W;else {let{$valid:X,...I}=W;s=X,O.value=I;}}catch{s=false;}finally{C.value=false;}return s}let D=Fe(E,p??200);async function i(){try{a.value=!0;let s=!1;if(Oe(t.value)&&t.value._async)s=await D();else {let h=m.$validator.value,A=h(n.value,...m.$params.value);if(A instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(A!=null)if(typeof A=="boolean")s=A;else {let{$valid:q,...W}=A;s=q,O.value=W;}}return F.value=s,s}catch{return false}finally{a.value=false;}}function S(){F.value=true,O.value={},C.value=false,a.value=false,w();}function o(){b(),$.stop(),$=vue.effectScope();}return vue.reactive({...m,$pending:C,$valid:F,$metadata:O,$haveAsync:V,$validating:a,$parse:i,$unwatch:o,$watch:w,$reset:S})}function _e({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:f,options:p,externalErrors:d,schemaErrors:$,schemaMode:m,onUnwatch:b,$isArray:V,initialState:C,shortcuts:F}){let O=vue.effectScope(),a,w=[],v,E,D,i,S,o=()=>{};function s(){let g=t.value,k=f.checkRuleDeclEntry(n,g);B.value=Object.fromEntries(Object.entries(g).filter(([M])=>M.startsWith("$"))),q(),I.value=Object.fromEntries(Object.entries(t.value).filter(([M])=>!M.startsWith("$")).map(([M,x])=>{if(x){let ue=vue.toRef(()=>x);return [M,Ct({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:ue,ruleKey:M,state:e,path:n,storage:f,$debounce:B.value.$debounce})]}return []}).filter(M=>!!M.length)),a.processShortcuts(),h(),k?.valid!=null&&(a.$dirty.value=f.getDirtyState(n),(a.$dirty.value&&a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o()),f.addRuleDeclEntry(n,g);}function h(){o=a.$debounce.value?Fe(X,a.$debounce.value??a.$haveAnyAsyncRule?100:0):X;}function A(){I.value&&Object.entries(I.value).forEach(([g,k])=>{k.$unwatch();}),D(),S?.(),a.$dirty.value&&f.setDirtyEntry(n,a.$dirty.value),v?.(),E?.(),O.stop(),O=vue.effectScope(),w.forEach(g=>g.stop()),w=[],b?.(),i?.();}function q(){I.value&&Object.entries(I.value).forEach(([g,k])=>{k.$watch();}),a=O.run(()=>{let g=vue.ref(false),k=vue.ref(false),M=vue.computed(()=>g.value),x=vue.computed(()=>B.value.$debounce),ue=vue.computed(()=>B.value.$lazy!=null?B.value.$lazy:vue.unref(p.lazy)!=null?vue.unref(p.lazy):false),le=vue.computed(()=>B.value.$rewardEarly!=null?B.value.$rewardEarly:vue.unref(p.rewardEarly)!=null?vue.unref(p.rewardEarly):false),pe=vue.computed(()=>B.value.$clearExternalErrorsOnChange!=null?B.value.$clearExternalErrorsOnChange:vue.unref(p.clearExternalErrorsOnChange)!=null?vue.unref(p.clearExternalErrorsOnChange):true),G=vue.computed(()=>B.value.$autoDirty!=null?B.value.$autoDirty:vue.unref(p.autoDirty)!=null?vue.unref(p.autoDirty):!le.value),P=vue.computed(()=>Object.entries(I.value).some(([oe,Q])=>Q.$validating)),z=vue.computed({get:()=>e.value,set(oe){v(),e.value=oe,W();}}),me=vue.computed(()=>ge.value&&!Ie.value&&g.value),at=vue.computed(()=>Ke({field:{$rules:I.value,$error:me.value,$externalErrors:d?.value,$schemaErrors:$?.value}})),lt=vue.computed(()=>Ke({field:{$rules:I.value,$error:me.value,$externalErrors:d?.value,$schemaErrors:$?.value},silent:true})),Ue=vue.computed(()=>g.value?C.value instanceof Date&&e.value instanceof Date?We(C.value).getDate()!==We(e.value).getDate():C.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(C.value)?e.value.length!==C.value.length:C.value!==e.value:false),ot=vue.computed(()=>Ue.value),st=vue.computed(()=>Dt({field:{$rules:I.value}})),ut=vue.computed(()=>G.value?M.value&&!(ge.value||Ie.value):!(ge.value||Ie.value)),Ie=vue.computed(()=>k.value||!le.value?Object.entries(I.value).some(([oe,Q])=>Q.$pending):false),ge=vue.computed(()=>d?.value?.length||$?.value?.length?true:Me.value?false:!le.value||le.value&&k.value?Object.entries(I.value).some(([oe,Q])=>!Q.$valid):false),it=vue.computed(()=>l),Me=vue.computed(()=>!!(ee(I.value)&&!m)),ct=vue.computed(()=>d?.value?.length||Me.value?false:g.value&&!ee(e.value)&&!P.value?m?!$?.value?.length:Object.values(I.value).some(Q=>Q.$active)?Object.values(I.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),Ut=vue.computed(()=>Object.entries(I.value).some(([oe,Q])=>Q.$haveAsync));function Wt(){F?.fields&&Object.entries(F.fields).forEach(([oe,Q])=>{let Rt=vue.effectScope();ft[oe]=Rt.run(()=>{let dt=vue.ref();return vue.watchEffect(()=>{dt.value=Q(vue.reactive({$dirty:g,$externalErrors:d?.value??[],$value:e,$silentValue:z,$rules:I,$error:me,$pending:Ie,$invalid:ge,$correct:ct,$errors:at,$ready:ut,$silentErrors:lt,$anyDirty:M,$tooltips:st,$name:it,$inactive:Me,$edited:Ue,$anyEdited:ot}));}),dt}),w.push(Rt);});}let ft={};return vue.watch(ge,oe=>{oe||(k.value=false);}),{$error:me,$pending:Ie,$invalid:ge,$correct:ct,$debounce:x,$lazy:ue,$errors:at,$ready:ut,$silentErrors:lt,$rewardEarly:le,$autoDirty:G,$clearExternalErrorsOnChange:pe,$anyDirty:M,$edited:Ue,$anyEdited:ot,$name:it,$haveAnyAsyncRule:Ut,$shortcuts:ft,$validating:P,$tooltips:st,$dirty:g,triggerPunishment:k,processShortcuts:Wt,$silentValue:z,$inactive:Me}}),W(),D=vue.watch(a.$dirty,g=>{f.setDirtyEntry(n,g),Object.values(I.value).forEach(k=>{k.$fieldDirty=g;});}),S=vue.watch([a.$error,a.$correct,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(g=>{g.$fieldError=a.$error.value,g.$fieldInvalid=a.$invalid.value,g.$fieldPending=a.$pending.value,g.$fieldCorrect=a.$correct.value;});}),E=vue.watch(a.$invalid,g=>{a.$rewardEarly.value&&!g&&(a.triggerPunishment.value=false);}),i=vue.watch(a.$haveAnyAsyncRule,h);}function W(){v=vue.watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&s(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&c();},{deep:V?true:Ve?1:true,flush:"post"});}function X(){Object.values(I.value).forEach(g=>{g.$parse();});}let I=vue.ref({}),B=vue.ref({});s();function de(g,k){if(c(),a.$dirty.value=false,a.triggerPunishment.value=false,f.setDirtyEntry(n,false),!k)if(g?.toInitialState)A(),e.value=U(C);else if(g?.toState){A();let M;typeof g?.toState=="function"?M=g?.toState():M=g?.toState,C.value=U(M),e.value=U(M);}else C.value=ae(e.value)?U(e.value):Array.isArray(e.value)?[...e.value]:e.value;k||Object.entries(I.value).forEach(([M,x])=>{x.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(M=>M.$parse()),k||s();}function ye(g=true,k=false){a.$dirty.value||(a.$dirty.value=true),k&&g?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o():g&&o();}async function ie(){try{let g=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {valid:!a.$error.value,data:g};return m?{valid:!$?.value?.length,data:g}:ee(I.value)?{valid:!0,data:g}:{valid:(await Promise.allSettled(Object.entries(I.value).map(([x,ue])=>ue.$parse()))).every(x=>x.status==="fulfilled"?x.value===!0:!1),data:g}}catch{return {valid:false,data:e.value}}}function u(g=true){return a.$dirty.value?e.value:g?{_null:true}:null}function c(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&o();let{$shortcuts:R,$validating:T,$autoDirty:j,$rewardEarly:H,$clearExternalErrorsOnChange:y,$haveAnyAsyncRule:_,$debounce:K,$lazy:Z,triggerPunishment:Y,...se}=a;return vue.reactive({...se,$externalErrors:d,$value:e,$rules:I,...R,$reset:de,$touch:ye,$validate:ie,$unwatch:A,$watch:q,$extractDirtyFields:u,$clearExternalErrors:c})}function Qe({$id:e,path:t,index:r,options:n,storage:l,stateValue:f,customMessages:p,rules:d,externalErrors:$,schemaErrors:m,initialState:b,shortcuts:V,fieldName:C,schemaMode:F}){let O=d.$key?d.$key:Se(),a=`${t}.${String(O)}`;typeof f.value=="object"&&f.value!=null&&(f.value.$id?a=`${t}.${f.value.$id}`:Object.defineProperties(f.value,{$id:{value:O,enumerable:false,configurable:false,writable:false}}));let w=vue.toRef($?.value??[],r),v=vue.computed(()=>m?.value?.[r]),E=Ee({state:f,rulesDef:vue.toRef(()=>d),customMessages:p,path:a,storage:l,options:n,externalErrors:w,schemaErrors:v,initialState:b,shortcuts:V,fieldName:C,schemaMode:F});if(E){let D=f.value?.$id;E.$id=D??String(O),l.addArrayStatus(e,E.$id,E);}return E}function Pt({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:f,externalErrors:p,schemaErrors:d,schemaMode:$,initialState:m,shortcuts:b,fieldName:V}){let C=vue.effectScope(),F,O=vue.effectScope(),a,w=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let v=vue.ref(),E=vue.ref(e.value),D,i=vue.ref({}),S=l.getCollectionsEntry(n);a=O.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(c=>typeof c!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(c=>Oe(c)||typeof c=="function"):false)})),o(),A();function o(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(v.value=Se(),Object.defineProperties(e.value,{$id:{value:v.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(v.value=e.value.$id)),E.value=i.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?S.value=e.value.filter(u=>typeof u=="object").map((u,c)=>{let{scope:R,unwrapped:T}=qe(t.value.$each,vue.toRef(()=>u),c);R&&w.push(R);let j=vue.toRef(m.value??[],c),H=vue.toRef(p?.value??{},"$each"),y=vue.computed(()=>d?.value?.$each),_=Qe({$id:v.value,path:n,customMessages:r,rules:T??{},stateValue:vue.toRef(()=>u),index:c,options:f,storage:l,externalErrors:H,schemaErrors:y,initialState:j,shortcuts:b,fieldName:V,schemaMode:$});return _||null}).filter(u=>!!u):S.value=[],i.value=_e({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:f,externalErrors:vue.toRef(p?.value??{},"$self"),schemaErrors:vue.computed(()=>d?.value?.$self),$isArray:true,initialState:m,shortcuts:b,fieldName:V,schemaMode:$});}function s(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let u=U(S.value);S.value=e.value.filter(c=>typeof c=="object").map((c,R)=>{let T=vue.toRef(()=>c);if(c.$id&&S.value.find(j=>j.$id===c.$id)){let j=l.getArrayStatus(v.value,c.$id);return j?(j.$value=T,j):null}else {let{scope:j,unwrapped:H}=qe(t.value.$each,T,R);j&&w.push(j);let y=vue.toRef(p?.value??{},"$each"),_=vue.computed(()=>d?.value?.$each??[]),K=Qe({$id:v.value,path:n,customMessages:r,rules:H??{},stateValue:T,index:R,options:f,storage:l,externalErrors:y,schemaErrors:_,initialState:vue.toRef(m.value??[],R),shortcuts:b,fieldName:V,schemaMode:$});return K||null}}).filter(c=>!!c),u.filter(c=>!e.value?.find(R=>c.$id===R.$id)).forEach((c,R)=>{l.deleteArrayStatus(v.value,R.toString());});}else S.value=[];}function h(){D=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?o():s();},{deep:Ve?1:true,flush:"pre"});}function A(){h(),C=vue.effectScope(),F=C.run(()=>{let u=vue.computed({get:()=>e.value,set(x){D(),e.value=x,h();}}),c=vue.computed(()=>i.value.$dirty&&(!S.value.length||S.value.every(x=>x.$dirty))),R=vue.computed(()=>i.value.$anyDirty||S.value.some(x=>x.$anyDirty)),T=vue.computed(()=>i.value.$invalid||S.value.some(x=>x.$invalid)),j=vue.computed(()=>(ee(i.value.$rules)?true:i.value.$correct)&&(!S.value.length||S.value.every(x=>x.$correct||x.$anyDirty&&!x.$invalid))),H=vue.computed(()=>i.value.$error||S.value.some(x=>x.$error)),y=vue.computed(()=>!(T.value||_.value)),_=vue.computed(()=>i.value.$pending||S.value.some(x=>x.$pending)),K=vue.computed(()=>!!S.value.length&&S.value.every(x=>x.$edited)),Z=vue.computed(()=>i.value.$anyEdited||S.value.some(x=>x.$anyEdited)),Y=vue.computed(()=>({$self:i.value.$errors,$each:S.value.map(x=>x.$errors)})),se=vue.computed(()=>({$self:i.value.$silentErrors,$each:S.value.map(x=>x.$silentErrors)})),g=vue.computed(()=>V);function k(){b?.collections&&Object.entries(b?.collections).forEach(([x,ue])=>{let le=vue.effectScope();M[x]=le.run(()=>{let pe=vue.ref();return vue.watchEffect(()=>{pe.value=ue(vue.reactive({$dirty:c,$error:H,$silentValue:u,$pending:_,$invalid:T,$correct:j,$errors:Y,$ready:y,$silentErrors:se,$anyDirty:R,$name:g,$each:S,$self:i,$value:e,$edited:K,$anyEdited:Z}));}),pe}),w.push(le);});}let M={};return k(),{$dirty:c,$anyDirty:R,$invalid:T,$correct:j,$error:H,$pending:_,$errors:Y,$silentErrors:se,$ready:y,$name:g,$shortcuts:M,$silentValue:u,$edited:K,$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 q(){D&&D(),i.value&&i.value.$unwatch(),S.value&&S.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),C.stop(),C=vue.effectScope(),O.stop(),O=vue.effectScope(true),w.forEach(u=>u.stop()),w=[];}function W(u=true,c=false){i.value.$touch(u,c),S.value.forEach(R=>{R.$touch(u,c);});}function X(u,c){if(q(),!c)if(u?.toInitialState)e.value=U(m.value);else if(u?.toState){let R;typeof u?.toState=="function"?R=u?.toState():R=u?.toState,m.value=U(R),e.value=U(R);}else m.value=U(e.value);i.value.$reset(),S.value.forEach(R=>{R.$reset(u,true);}),c||o();}async function I(){let u=e.value;try{return {valid:(await Promise.allSettled([i.value.$validate(),...S.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.valid===!0:!1),data:u}}catch{return {valid:false,data:u}}}function B(){i.value.$clearExternalErrors(),S.value.forEach(u=>{u.$clearExternalErrors();});}function de(u=true){let c=S.value.map(R=>{if(Tt(R))return R.$extractDirtyFields(u)});return u&&c.every(R=>ee(R))&&(c=[]),c}let{$shortcuts:ye,...ie}=F;return vue.reactive({$self:i,...ie,...ye,$each:S,$value:e,$validate:I,$unwatch:q,$watch:A,$touch:W,$reset:X,$extractDirtyFields:de,$clearExternalErrors:B})}function Ne({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:f,rootSchemaErrors:p,validationGroups:d,initialState:$,fieldName:m,...b}){let V=vue.effectScope(),C,F=[],O=null,a=null,w=null,v=null;async function D(u=true){let c=Object.entries(e.value),R=Object.fromEntries(c.filter(([y,_])=>!!_).map(([y,_])=>{if(_){let K=vue.toRef(t.value??{},y),Z=vue.toRef(()=>_),Y=vue.toRef(l?.value??{},y),se=vue.computed(()=>f?.value?.[y]),g=vue.toRef($?.value??{},y);return [y,Ee({state:K,rulesDef:Z,path:r?`${r}.${y}`:y,externalErrors:Y,schemaErrors:se,initialState:g,fieldName:y,...b})]}return []})),T=Object.fromEntries(Object.entries(vue.unref(l)??{}).filter(([y,_])=>!(y in e.value)&&!!_).map(([y])=>{let _=vue.toRef(t.value??{},y),K=vue.toRef(l?.value??{},y),Z=vue.computed(()=>f?.value?.[y]),Y=vue.toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:y,...b})]})),j=Object.fromEntries(Object.entries(vue.unref(f)??{}).map(([y])=>{let _=vue.toRef(t.value??{},y),K=vue.toRef(l?.value??{},y),Z=vue.computed(()=>f?.value?.[y]),Y=vue.toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:y,...b})]})),H=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(T??{}))&&!(y in(j??{}))).map(([y])=>{let _=vue.toRef(t.value??{},y),K=vue.toRef(l?.value??{},y),Z=vue.computed(()=>f?.value?.[y]),Y=vue.toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:vue.computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:y,...b})]}));i.value={...R,...T,...j,...H},u&&s();}let i=b.storage.getFieldsEntry(r);D();function S(){l&&(w=vue.watch(l,()=>{h(),D();},{deep:true}));}function o(){v=vue.watch(t,()=>{h(),D(),W(true,true);},{flush:"sync"});}function s(){n&&(O?.(),O=vue.watch(n,()=>{h(),D();},{deep:true,flush:"post"}),S()),p&&(a?.(),a=vue.watch(p,()=>{h(),D();},{deep:true,flush:"post"})),o(),C=V.run(()=>{let u=vue.computed({get:()=>t.value,set(G){h(),t.value=G,D();}}),c=vue.computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([G,P])=>P?.$dirty)),R=vue.computed(()=>Object.entries(i.value).some(([G,P])=>P?.$anyDirty)),T=vue.computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).some(([G,P])=>P?.$invalid)),j=vue.computed(()=>{let G=Object.entries(i.value).filter(([P,z])=>xt(z)?!z.$inactive:true);return G.length?G.every(([P,z])=>z?.$correct||z.$anyDirty&&!z.$invalid):false}),H=vue.computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).some(([G,P])=>P?.$error)),y=vue.computed(()=>vue.unref(b.options.rewardEarly)!=null?vue.unref(b.options.rewardEarly):false),_=vue.computed(()=>vue.unref(b.options.autoDirty)!=null?vue.unref(b.options.autoDirty):!y.value),K=vue.computed(()=>_.value?R.value&&!(T.value||Y.value):!(T.value||Y.value)),Z=vue.ref(false),Y=vue.computed(()=>Z.value||Object.entries(i.value).some(([G,P])=>P?.$pending)),se=vue.computed(()=>Object.fromEntries(Object.entries(i.value).map(([G,P])=>[G,P?.$errors]))),g=vue.computed(()=>Object.fromEntries(Object.entries(i.value).map(([G,P])=>[G,P?.$silentErrors]))),k=vue.computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([G,P])=>P?.$edited)),M=vue.computed(()=>Object.entries(i.value).some(([G,P])=>P?.$anyEdited)),x=vue.computed(()=>m);function ue(){b.shortcuts?.nested&&Object.entries(b.shortcuts.nested).forEach(([G,P])=>{let z=vue.effectScope();pe[G]=z.run(()=>{let me=vue.ref();return vue.watchEffect(()=>{me.value=P(vue.reactive({$dirty:c,$value:t,$silentValue:u,$error:H,$pending:Y,$invalid:T,$correct:j,$ready:K,$anyDirty:R,$name:x,$silentErrors:g,$errors:se,$fields:i,$edited:k,$anyEdited:M}));}),me}),F.push(z);});}let le=vue.computed({get:()=>d?Object.fromEntries(Object.entries(d?.(i.value)??{}).map(([G,P])=>P.length?[G,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(z=>[z,mt(P,z)])),...Object.fromEntries(["$errors","$silentErrors"].map(z=>[z,yt(P,z)]))}]:[])):{},set(){}}),pe={};return ue(),{$dirty:c,$anyDirty:R,$invalid:T,$correct:j,$error:H,$pending:Y,$errors:se,$silentErrors:g,$ready:K,$name:x,$shortcuts:pe,$groups:le,$silentValue:u,$edited:k,$anyEdited:M,$localPending:Z}});}function h(){O?.(),w?.(),v?.(),a?.(),F=[],C={},i.value&&Object.entries(i.value).forEach(([u,c])=>{c.$unwatch();});}function A(){Object.entries(i.value).forEach(([u,c])=>{c.$clearExternalErrors();});}function q(u,c){if(w?.(),h(),!c)if(u?.toInitialState)t.value=U({...$.value??{}});else if(u?.toState){let R;typeof u?.toState=="function"?R=u?.toState():R=u?.toState,$.value=U(R),t.value=U(R);}else $.value=U(t.value);Object.values(i.value).forEach(R=>{R.$reset(u,true);}),S(),c||D();}function W(u=true,c=false){Object.values(i.value).forEach(R=>{R.$touch(u,c);});}function X(u){return u.filter(([c,R])=>ae(R)?!(R&&typeof R=="object"&&"_null"in R)&&!ee(R):Array.isArray(R)?R.length:true)}function I(u=true){let c=Object.entries(i.value).map(([R,T])=>[R,T.$extractDirtyFields(u)]);return u&&(c=X(c)),Object.fromEntries(c)}async function B(){try{if(b.schemaMode)return b.onValidate?(W(!1),C.$localPending.value=!0,b.onValidate()):{valid:!1,data:t.value};{let u=t.value;return {valid:(await Promise.allSettled(Object.values(i.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.valid===!0:!1),data:u}}}catch{return {valid:false,data:t.value}}finally{C.$localPending.value=false;}}let{$shortcuts:de,$localPending:ye,...ie}=C;return vue.reactive({...ie,...de,$fields:i,$value:t,$reset:q,$touch:W,$validate:B,$unwatch:h,$watch:s,$clearExternalErrors:A,$extractDirtyFields:I})}function Ee({rulesDef:e,...t}){if(bt(e,t.state))return Pt({rulesDef:e,...t});if(ht(t.state,e)){if(je(t.state))return Ne({rulesDef:e,...t});{let n=vue.effectScope().run(()=>{let p=vue.toRef(t.state.value?t.state:vue.ref({}));return vue.watch(()=>t.state.value,d=>{p.value=d;},{deep:true}),vue.watch(p,d=>{t.state.value=d;},{deep:true}),{fakeState:p}}),{state:l,...f}=t;return Ne({rulesDef:e,...f,state:n.fakeState})}}else if(Et(e))return _e({rulesDef:e,...t})}function Ce({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:f,schemaErrors:p,schemaMode:d=false,onValidate:$}){let m=ze(),b=vue.ref();return b.value=Ne({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:f,fieldName:"root",path:"",schemaErrors:p,rootSchemaErrors:p,schemaMode:d,onValidate:$}),vue.getCurrentScope()&&vue.onScopeDispose(()=>{b.value?.$unwatch();}),vue.reactive({regle:b})}function et(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(f,p,d){let $=vue.isRef(p)?p:vue.computed(typeof p=="function"?p:()=>p),m={...n,...d},b=vue.isRef(f)?f:vue.ref(f),V=vue.ref({...U(b.value)});return {r$:Ce({scopeRules:$,state:b,options:m,initialState:V,customRules:e,shortcuts:r}).regle}}return l}var Ge=et();function tt(){function e(t,r){return r}return e}var rt=tt();function jt({rules:e,modifiers:t,shortcuts:r}){let n=et(e,t,r),l=tt();return {useRegle:n,inferRules:l}}function Ae(e,t){let r=t??false,n=vue.computed({get:()=>r?Object.values(e).map(o=>o.$value):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$value])),set:o=>{r||typeof o=="object"&&Object.entries(o).forEach(([s,h])=>e[s].$value=h);}}),l=vue.computed({get:()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentValue])),set:o=>{typeof o=="object"&&Object.entries(o).forEach(([s,h])=>e[s].$silentValue=h);}}),f=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$dirty)}),p=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$anyDirty)),d=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$invalid)),$=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$correct||h.$anyDirty&&!h.$invalid)}),m=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$error)),b=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$ready)}),V=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$pending)),C=vue.computed(()=>r?Object.entries(e).map(([o,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$errors]))),F=vue.computed(()=>r?Object.entries(e).map(([o,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentErrors]))),O=vue.computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$edited)}),a=vue.computed(()=>Object.entries(e).some(([o,s])=>s?.$anyEdited)),w=vue.computed(()=>r?Object.values(e):e);function v(o){Object.values(e).forEach(s=>{s.$reset(o);});}function E(){Object.values(e).forEach(o=>{o.$touch();});}function D(o=true){return Object.values(e).map(s=>s.$extractDirtyFields(o))}function i(){Object.values(e).forEach(o=>{o.$clearExternalErrors();});}async function S(){try{let o=n.value;return {valid:(await Promise.allSettled(Object.values(e).map(A=>A.$validate()))).every(A=>A.status==="fulfilled"?A.value.valid===!0:!1),data:o}}catch{return {valid:false,data:n.value}}}return vue.reactive({...!r&&{$silentValue:l},$errors:C,$silentErrors:F,$instances:w,$value:n,$dirty:f,$anyDirty:p,$invalid:d,$correct:$,$error:m,$pending:V,$ready:b,$edited:O,$anyEdited:a,$reset:v,$touch:E,$validate:S,$extractDirtyFields:D,$clearExternalErrors:i})}function _t(e){function t(r){let n=vue.computed(()=>vue.toValue(r));p();let l=vue.ref(d(e.value)),f=vue.reactive({r$:l});function p(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}vue.watch(n,p),vue.watch(e,$=>{l.value=d($);},{deep:true});function d($){if(n.value){let m=$[n.value]??{};return Ae(m,true)}else return Ae($["~~global"]??{},true)}return {r$:f.r$}}return {useCollectScope:t}}function Gt(e,t){let r=t??Ge;return {useScopedRegle:(l,f,p)=>{let{namespace:d,...$}=p??{},m=vue.computed(()=>vue.toValue(d)),b=vue.ref(`${Object.keys(e.value).length+1}-${Se()}`),V=vue.computed(()=>`instance-${b.value}`),{r$:C}=r(l,f,$);O(),$t(F),vue.watch(m,(a,w)=>{F(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)&&F();});function F(a){let w=a??m.value;w?e.value[w]&&delete e.value[w][V.value]:e.value["~~global"][V.value]&&delete e.value["~~global"][V.value];}function O(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][V.value]=C):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][V.value]=C);}return {r$:C,dispose:F,register:O}}}}function nt(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):St(()=>vue.ref({"~~global":{}})))(),{useScopedRegle:n}=Gt(r,e?.customUseRegle),{useCollectScope:l}=_t(r);return {useScopedRegle:n,useCollectScope:l}}
|
|
2
2
|
exports.InternalRuleType=Le;exports.createRule=He;exports.createScopedUseRegle=nt;exports.defineRegleConfig=jt;exports.inferRules=rt;exports.mergeRegles=Ae;exports.unwrapRuleParameters=te;exports.useRegle=Ge;exports.useRootStorage=Ce;
|
package/dist/regle-core.min.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {toValue,version,ref,getCurrentScope,onScopeDispose,reactive,computed,shallowRef,effectScope,watch,getCurrentInstance,onMounted,isRef,toRef,unref,watchEffect}from'vue';function ee(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var pt=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 G(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>G(n)))),r=="Map"&&(t=new Map([...e].map(n=>[G(n[0]),G(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Lt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=G(e[n]);}return t}function ae(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function We(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Fe(e,t,r){let n,l=(...c)=>new Promise(p=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...c])).then(p);},t);});return l.cancel=()=>{clearTimeout(n),n=undefined;},l}var Le=(r=>(r.Inline="__inline",r.Async="__async",r))(Le||{});function mt(e,t){return e.some(r=>r[t])}function yt(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function te(e){try{return e.map(t=>toValue(t))}catch{return []}}function gt(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function vt(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(p=>p.trim()).filter(p=>p.length>0).length:0}function Be(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(d,...$){return e.validator(d,...te($.length?$:t))},message(d){return typeof e.message=="function"?e.message({...d,$params:te(d?.$params?.length?d.$params:t)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:te(d?.$params?.length?d.$params:t)}):e.active??true},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:te(d?.$params?.length?d.$params:t)}):e.tooltip??[]},exec(d){let $=e.validator(d,...te(t)),m;return $ instanceof Promise?$.then(b=>(m=b,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:l,_params:gt(t),_brand:pt}}function He(e){if(typeof e.validator=="function"){let r=Be(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(vt(e.validator)>1){let l=function(...c){return Be(e,...c)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=false,l._tooltip_pacthed=false,l._async=n,l}else return r}throw new Error("Validator must be a function")}function ze(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),l=shallowRef(new Map),c=shallowRef(new Map);function p(v){let E=t.value.get(v);if(E)return E;{let D=ref({});return t.value.set(v,D),D}}function d(v){let E=r.value.get(v);if(E)return E;{let D=ref([]);return r.value.set(v,D),D}}function $(v,E,D){c.value.set(`${v}-${E}`,D);}function m(v,E){return c.value.get(`${v}-${E}`)}function b(v,E){v&&E!=null&&c.value.delete(`${v}-${E}`);}function V(v,E){n.value.set(v,E);}function C(v){return n.value.get(v)??false}function M(v,E){e.value.set(v,E);}function w(v,E){let D=e.value.get(v);return D?a(E,D)?{valid:true}:{valid:false}:undefined}function a(v,E){let D=Object.keys(E),f=Object.keys(v);return f.length!==D.length||!f.every(o=>D.includes(o))?false:f.every(o=>{let s=v[o],h=E[o];return !h||!s||typeof s=="function"||typeof h=="function"||typeof s=="number"||typeof s=="boolean"?false:s._params?s._params?.every((P,q)=>{if(typeof h=="number"||typeof h=="boolean")return true;{let U=te(h._params),X=te(s._params);return U?.[q]===X?.[q]}}):true})}function O(v){let E=l.value.get(v);if(E)return E;{let D=ref(false),f=ref(true),S=ref({}),o=ref(false);return l.value.set(v,{$pending:D,$valid:f,$metadata:S,$validating:o}),{$pending:D,$valid:f,$metadata:S,$validating:o}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),c.value.clear();}),{addRuleDeclEntry:M,setDirtyEntry:V,checkRuleDeclEntry:w,getDirtyState:C,trySetRuleStatusRef:O,getFieldsEntry:p,getCollectionsEntry:d,getArrayStatus:m,addArrayStatus:$,deleteArrayStatus:b,arrayStatusStorage:c}}function je(e){return ae(e.value)}function qe(e,t,r){let n=effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function Xt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let c=Number(r[l]),p=Number(n[l]);if(c>p)return 1;if(p>c)return -1;if(!isNaN(c)&&isNaN(p))return 1;if(isNaN(c)&&!isNaN(p))return -1}return 0}var Ve=Xt(version,"3.5.0")!==-1;function Zt(){return Math.floor(Math.random()*Date.now()).toString()}function Se(){return typeof window>"u"?Zt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function $t(e){return getCurrentScope()?(onScopeDispose(e),true):false}function St(e){let t=false,r,n=effectScope(true);return (...l)=>(t||(r=n.run(()=>e(...l)),t=true),r)}function ht(e,t){return je(e)||ae(t.value)&&!ee(t.value)&&!Object.entries(t.value).some(([r,n])=>we(n)||typeof n=="function")}function bt(e,t){return !!e.value&&ae(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Et(e){return !!e.value&&ae(e.value)}function we(e){return ae(e)&&"_validator"in e}function Oe(e){return typeof e.value!="function"}function Tt(e){return ae(e)&&"$fields"in e}function xt(e){return !!e&&"$rules"in e}function Ke({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 Dt({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 Ct({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:c,$debounce:p,modifiers:d}){let $=effectScope(),m={},b,V=ref(false),{$pending:C,$valid:M,$metadata:w,$validating:a}=c.trySetRuleStatusRef(`${l}.${r}`);function O(){$=effectScope(),m=$.run(()=>{let s=ref(false),h=ref(false),P=ref(true),q=ref(false),U=ref(false),X=computed(()=>({$value:n.value,$error:h.value,$dirty:s.value,$pending:q.value,$correct:U.value,$invalid:P.value,$rule:{$valid:M.value,$invalid:!M.value,$pending:C.value},$params:i.value,...w.value})),I=computed(()=>Oe(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function B(T){let F="",H=e?e[r]?.[T]:undefined;if(H&&(typeof H=="function"?F=H(X.value):F=H),Oe(t)){let y=`_${T}_patched`;H&&!t.value[y]||(typeof t.value[T]=="function"?F=t.value[T](X.value):F=t.value[T]??"");}return F}let de=computed(()=>{let T=B("message");return ee(T)&&(T="This field is not valid"),T}),ye=computed(()=>B("tooltip")),ie=computed(()=>Oe(t)&&t.value.type?t.value.type:r),u=computed(()=>Oe(t)?t.value.validator:t.value),i=computed(()=>typeof t.value=="function"?[]:te(t.value._params??[])),R=computed(()=>`${l}.${ie.value}`);return {$active:I,$message:de,$type:ie,$validator:u,$params:i,$path:R,$tooltip:ye,$fieldCorrect:U,$fieldError:h,$fieldDirty:s,$fieldPending:q,$fieldInvalid:P}}),b=watch(m?.$params,()=>{(d.$autoDirty.value||d.$rewardEarly.value&&m.$fieldError.value)&&f();});}O();function v(){M.value=true,m.$fieldDirty.value&&(C.value=true);}async function E(){let s=false;try{let h=m.$validator.value;if(typeof h!="function")return console.error(`${l}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let P=h(n.value,...m.$params.value),q=n.value;v();let U;if(P instanceof Promise?U=await P:U=P,n.value!==q)return !0;if(typeof U=="boolean")s=U;else {let{$valid:X,...I}=U;s=X,w.value=I;}}catch{s=false;}finally{C.value=false;}return s}let D=Fe(E,p??200);async function f(){try{a.value=!0;let s=!1;if(we(t.value)&&t.value._async)s=await D();else {let h=m.$validator.value,P=h(n.value,...m.$params.value);if(P 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(P!=null)if(typeof P=="boolean")s=P;else {let{$valid:q,...U}=P;s=q,w.value=U;}}return M.value=s,s}catch{return false}finally{a.value=false;}}function S(){M.value=true,w.value={},C.value=false,a.value=false,O();}function o(){b(),$.stop(),$=effectScope();}return reactive({...m,$pending:C,$valid:M,$metadata:w,$haveAsync:V,$validating:a,$validate:f,$unwatch:o,$watch:O,$reset:S})}function _e({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:c,options:p,externalErrors:d,schemaErrors:$,schemaMode:m,onUnwatch:b,$isArray:V,initialState:C,shortcuts:M}){let w=effectScope(),a,O=[],v,E,D,f,S,o=()=>{};function s(){let g=t.value,k=c.checkRuleDeclEntry(n,g);B.value=Object.fromEntries(Object.entries(g).filter(([A])=>A.startsWith("$"))),q(),I.value=Object.fromEntries(Object.entries(t.value).filter(([A])=>!A.startsWith("$")).map(([A,x])=>{if(x){let ue=toRef(()=>x);return [A,Ct({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:ue,ruleKey:A,state:e,path:n,storage:c,$debounce:B.value.$debounce})]}return []}).filter(A=>!!A.length)),a.processShortcuts(),h(),k?.valid!=null&&(a.$dirty.value=c.getDirtyState(n),(a.$dirty.value&&a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o()),c.addRuleDeclEntry(n,g);}function h(){o=a.$debounce.value?Fe(X,a.$debounce.value??a.$haveAnyAsyncRule?100:0):X;}function P(){I.value&&Object.entries(I.value).forEach(([g,k])=>{k.$unwatch();}),D(),S?.(),a.$dirty.value&&c.setDirtyEntry(n,a.$dirty.value),v?.(),E?.(),w.stop(),w=effectScope(),O.forEach(g=>g.stop()),O=[],b?.(),f?.();}function q(){I.value&&Object.entries(I.value).forEach(([g,k])=>{k.$watch();}),a=w.run(()=>{let g=ref(false),k=ref(false),A=computed(()=>g.value),x=computed(()=>B.value.$debounce),ue=computed(()=>B.value.$lazy!=null?B.value.$lazy:unref(p.lazy)!=null?unref(p.lazy):false),le=computed(()=>B.value.$rewardEarly!=null?B.value.$rewardEarly:unref(p.rewardEarly)!=null?unref(p.rewardEarly):false),pe=computed(()=>B.value.$clearExternalErrorsOnChange!=null?B.value.$clearExternalErrorsOnChange:unref(p.clearExternalErrorsOnChange)!=null?unref(p.clearExternalErrorsOnChange):true),W=computed(()=>B.value.$autoDirty!=null?B.value.$autoDirty:unref(p.autoDirty)!=null?unref(p.autoDirty):!le.value),j=computed(()=>Object.entries(I.value).some(([oe,Q])=>Q.$validating)),z=computed({get:()=>e.value,set(oe){v(),e.value=oe,U();}}),me=computed(()=>ge.value&&!Ie.value&&g.value),at=computed(()=>Ke({field:{$rules:I.value,$error:me.value,$externalErrors:d?.value,$schemaErrors:$?.value}})),lt=computed(()=>Ke({field:{$rules:I.value,$error:me.value,$externalErrors:d?.value,$schemaErrors:$?.value},silent:true})),Ue=computed(()=>g.value?C.value instanceof Date&&e.value instanceof Date?We(C.value).getDate()!==We(e.value).getDate():C.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(C.value)?e.value.length!==C.value.length:C.value!==e.value:false),ot=computed(()=>Ue.value),st=computed(()=>Dt({field:{$rules:I.value}})),ut=computed(()=>W.value?A.value&&!(ge.value||Ie.value):!(ge.value||Ie.value)),Ie=computed(()=>k.value||!le.value?Object.entries(I.value).some(([oe,Q])=>Q.$pending):false),ge=computed(()=>d?.value?.length||$?.value?.length?true:Me.value?false:!le.value||le.value&&k.value?Object.entries(I.value).some(([oe,Q])=>!Q.$valid):false),it=computed(()=>l),Me=computed(()=>!!(ee(I.value)&&!m)),ct=computed(()=>d?.value?.length||Me.value?false:g.value&&!ee(e.value)&&!j.value?m?!$?.value?.length:Object.values(I.value).some(Q=>Q.$active)?Object.values(I.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),Ut=computed(()=>Object.entries(I.value).some(([oe,Q])=>Q.$haveAsync));function Wt(){M?.fields&&Object.entries(M.fields).forEach(([oe,Q])=>{let Rt=effectScope();ft[oe]=Rt.run(()=>{let dt=ref();return watchEffect(()=>{dt.value=Q(reactive({$dirty:g,$externalErrors:d?.value??[],$value:e,$silentValue:z,$rules:I,$error:me,$pending:Ie,$invalid:ge,$correct:ct,$errors:at,$ready:ut,$silentErrors:lt,$anyDirty:A,$tooltips:st,$name:it,$inactive:Me,$edited:Ue,$anyEdited:ot}));}),dt}),O.push(Rt);});}let ft={};return watch(ge,oe=>{oe||(k.value=false);}),{$error:me,$pending:Ie,$invalid:ge,$correct:ct,$debounce:x,$lazy:ue,$errors:at,$ready:ut,$silentErrors:lt,$rewardEarly:le,$autoDirty:W,$clearExternalErrorsOnChange:pe,$anyDirty:A,$edited:Ue,$anyEdited:ot,$name:it,$haveAnyAsyncRule:Ut,$shortcuts:ft,$validating:j,$tooltips:st,$dirty:g,triggerPunishment:k,processShortcuts:Wt,$silentValue:z,$inactive:Me}}),U(),D=watch(a.$dirty,g=>{c.setDirtyEntry(n,g),Object.values(I.value).forEach(k=>{k.$fieldDirty=g;});}),S=watch([a.$error,a.$correct,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(g=>{g.$fieldError=a.$error.value,g.$fieldInvalid=a.$invalid.value,g.$fieldPending=a.$pending.value,g.$fieldCorrect=a.$correct.value;});}),E=watch(a.$invalid,g=>{a.$rewardEarly.value&&!g&&(a.triggerPunishment.value=false);}),f=watch(a.$haveAnyAsyncRule,h);}function U(){v=watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&s(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&i();},{deep:V?true:Ve?1:true,flush:"post"});}function X(){Object.values(I.value).forEach(g=>{g.$validate();});}let I=ref({}),B=ref({});s();function de(g,k){if(i(),a.$dirty.value=false,a.triggerPunishment.value=false,c.setDirtyEntry(n,false),!k)if(g?.toInitialState)P(),e.value=G(C);else if(g?.toState){P();let A;typeof g?.toState=="function"?A=g?.toState():A=g?.toState,C.value=G(A),e.value=G(A);}else C.value=ae(e.value)?G(e.value):Array.isArray(e.value)?[...e.value]:e.value;k||Object.entries(I.value).forEach(([A,x])=>{x.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(A=>A.$validate()),k||s();}function ye(g=true,k=false){a.$dirty.value||(a.$dirty.value=true),k&&g?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o():g&&o();}async function ie(){try{let g=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:g};return m?{result:!$?.value?.length,data:g}:ee(I.value)?{result:!0,data:g}:{result:(await Promise.allSettled(Object.entries(I.value).map(([x,ue])=>ue.$validate()))).every(x=>x.status==="fulfilled"?x.value===!0:!1),data:g}}catch{return {result:false,data:e.value}}}function u(g=true){return a.$dirty.value?e.value:g?{_null:true}:null}function i(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&o();let{$shortcuts:R,$validating:T,$autoDirty:F,$rewardEarly:H,$clearExternalErrorsOnChange:y,$haveAnyAsyncRule:_,$debounce:K,$lazy:Z,triggerPunishment:J,...se}=a;return reactive({...se,$externalErrors:d,$value:e,$rules:I,...R,$reset:de,$touch:ye,$validate:ie,$unwatch:P,$watch:q,$extractDirtyFields:u,$clearExternalErrors:i})}function Qe({$id:e,path:t,index:r,options:n,storage:l,stateValue:c,customMessages:p,rules:d,externalErrors:$,schemaErrors:m,initialState:b,shortcuts:V,fieldName:C,schemaMode:M}){let w=d.$key?d.$key:Se(),a=`${t}.${String(w)}`;typeof c.value=="object"&&c.value!=null&&(c.value.$id?a=`${t}.${c.value.$id}`:Object.defineProperties(c.value,{$id:{value:w,enumerable:false,configurable:false,writable:false}}));let O=toRef($?.value??[],r),v=computed(()=>m?.value?.[r]),E=Ee({state:c,rulesDef:toRef(()=>d),customMessages:p,path:a,storage:l,options:n,externalErrors:O,schemaErrors:v,initialState:b,shortcuts:V,fieldName:C,schemaMode:M});if(E){let D=c.value?.$id;E.$id=D??String(w),l.addArrayStatus(e,E.$id,E);}return E}function Pt({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:c,externalErrors:p,schemaErrors:d,schemaMode:$,initialState:m,shortcuts:b,fieldName:V}){let C=effectScope(),M,w=effectScope(),a,O=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let v=ref(),E=ref(e.value),D,f=ref({}),S=l.getCollectionsEntry(n);a=w.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(i=>typeof i!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(i=>we(i)||typeof i=="function"):false)})),o(),P();function o(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(v.value=Se(),Object.defineProperties(e.value,{$id:{value:v.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(v.value=e.value.$id)),E.value=f.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?S.value=e.value.filter(u=>typeof u=="object").map((u,i)=>{let{scope:R,unwrapped:T}=qe(t.value.$each,toRef(()=>u),i);R&&O.push(R);let F=toRef(m.value??[],i),H=toRef(p?.value??{},"$each"),y=computed(()=>d?.value?.$each),_=Qe({$id:v.value,path:n,customMessages:r,rules:T??{},stateValue:toRef(()=>u),index:i,options:c,storage:l,externalErrors:H,schemaErrors:y,initialState:F,shortcuts:b,fieldName:V,schemaMode:$});return _||null}).filter(u=>!!u):S.value=[],f.value=_e({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:c,externalErrors:toRef(p?.value??{},"$self"),schemaErrors:computed(()=>d?.value?.$self),$isArray:true,initialState:m,shortcuts:b,fieldName:V,schemaMode:$});}function s(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let u=G(S.value);S.value=e.value.filter(i=>typeof i=="object").map((i,R)=>{let T=toRef(()=>i);if(i.$id&&S.value.find(F=>F.$id===i.$id)){let F=l.getArrayStatus(v.value,i.$id);return F?(F.$value=T,F):null}else {let{scope:F,unwrapped:H}=qe(t.value.$each,T,R);F&&O.push(F);let y=toRef(p?.value??{},"$each"),_=computed(()=>d?.value?.$each??[]),K=Qe({$id:v.value,path:n,customMessages:r,rules:H??{},stateValue:T,index:R,options:c,storage:l,externalErrors:y,schemaErrors:_,initialState:toRef(m.value??[],R),shortcuts:b,fieldName:V,schemaMode:$});return K||null}}).filter(i=>!!i),u.filter(i=>!e.value?.find(R=>i.$id===R.$id)).forEach((i,R)=>{l.deleteArrayStatus(v.value,R.toString());});}else S.value=[];}function h(){D=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?o():s();},{deep:Ve?1:true,flush:"pre"});}function P(){h(),C=effectScope(),M=C.run(()=>{let u=computed({get:()=>e.value,set(x){D(),e.value=x,h();}}),i=computed(()=>f.value.$dirty&&(!S.value.length||S.value.every(x=>x.$dirty))),R=computed(()=>f.value.$anyDirty||S.value.some(x=>x.$anyDirty)),T=computed(()=>f.value.$invalid||S.value.some(x=>x.$invalid)),F=computed(()=>(ee(f.value.$rules)?true:f.value.$correct)&&(!S.value.length||S.value.every(x=>x.$correct||x.$anyDirty&&!x.$invalid))),H=computed(()=>f.value.$error||S.value.some(x=>x.$error)),y=computed(()=>!(T.value||_.value)),_=computed(()=>f.value.$pending||S.value.some(x=>x.$pending)),K=computed(()=>!!S.value.length&&S.value.every(x=>x.$edited)),Z=computed(()=>f.value.$anyEdited||S.value.some(x=>x.$anyEdited)),J=computed(()=>({$self:f.value.$errors,$each:S.value.map(x=>x.$errors)})),se=computed(()=>({$self:f.value.$silentErrors,$each:S.value.map(x=>x.$silentErrors)})),g=computed(()=>V);function k(){b?.collections&&Object.entries(b?.collections).forEach(([x,ue])=>{let le=effectScope();A[x]=le.run(()=>{let pe=ref();return watchEffect(()=>{pe.value=ue(reactive({$dirty:i,$error:H,$silentValue:u,$pending:_,$invalid:T,$correct:F,$errors:J,$ready:y,$silentErrors:se,$anyDirty:R,$name:g,$each:S,$self:f,$value:e,$edited:K,$anyEdited:Z}));}),pe}),O.push(le);});}let A={};return k(),{$dirty:i,$anyDirty:R,$invalid:T,$correct:F,$error:H,$pending:_,$errors:J,$silentErrors:se,$ready:y,$name:g,$shortcuts:A,$silentValue:u,$edited:K,$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 q(){D&&D(),f.value&&f.value.$unwatch(),S.value&&S.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),C.stop(),C=effectScope(),w.stop(),w=effectScope(true),O.forEach(u=>u.stop()),O=[];}function U(u=true,i=false){f.value.$touch(u,i),S.value.forEach(R=>{R.$touch(u,i);});}function X(u,i){if(q(),!i)if(u?.toInitialState)e.value=G(m.value);else if(u?.toState){let R;typeof u?.toState=="function"?R=u?.toState():R=u?.toState,m.value=G(R),e.value=G(R);}else m.value=G(e.value);f.value.$reset(),S.value.forEach(R=>{R.$reset(u,true);}),i||o();}async function I(){let u=e.value;try{return {result:(await Promise.allSettled([f.value.$validate(),...S.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:u}}catch{return {result:false,data:u}}}function B(){f.value.$clearExternalErrors(),S.value.forEach(u=>{u.$clearExternalErrors();});}function de(u=true){let i=S.value.map(R=>{if(Tt(R))return R.$extractDirtyFields(u)});return u&&i.every(R=>ee(R))&&(i=[]),i}let{$shortcuts:ye,...ie}=M;return reactive({$self:f,...ie,...ye,$each:S,$value:e,$validate:I,$unwatch:q,$watch:P,$touch:U,$reset:X,$extractDirtyFields:de,$clearExternalErrors:B})}function Ne({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:c,rootSchemaErrors:p,validationGroups:d,initialState:$,fieldName:m,...b}){let V=effectScope(),C,M=[],w=null,a=null,O=null,v=null;async function D(u=true){let i=Object.entries(e.value),R=Object.fromEntries(i.filter(([y,_])=>!!_).map(([y,_])=>{if(_){let K=toRef(t.value??{},y),Z=toRef(()=>_),J=toRef(l?.value??{},y),se=computed(()=>c?.value?.[y]),g=toRef($?.value??{},y);return [y,Ee({state:K,rulesDef:Z,path:r?`${r}.${y}`:y,externalErrors:J,schemaErrors:se,initialState:g,fieldName:y,...b})]}return []})),T=Object.fromEntries(Object.entries(unref(l)??{}).filter(([y,_])=>!(y in e.value)&&!!_).map(([y])=>{let _=toRef(t.value??{},y),K=toRef(l?.value??{},y),Z=computed(()=>c?.value?.[y]),J=toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:J,fieldName:y,...b})]})),F=Object.fromEntries(Object.entries(unref(c)??{}).map(([y])=>{let _=toRef(t.value??{},y),K=toRef(l?.value??{},y),Z=computed(()=>c?.value?.[y]),J=toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:J,fieldName:y,...b})]})),H=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(T??{}))&&!(y in(F??{}))).map(([y])=>{let _=toRef(t.value??{},y),K=toRef(l?.value??{},y),Z=computed(()=>c?.value?.[y]),J=toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:J,fieldName:y,...b})]}));f.value={...R,...T,...F,...H},u&&s();}let f=b.storage.getFieldsEntry(r);D();function S(){l&&(O=watch(l,()=>{h(),D();},{deep:true}));}function o(){v=watch(t,()=>{h(),D(),U(true,true);},{flush:"sync"});}function s(){n&&(w?.(),w=watch(n,()=>{h(),D();},{deep:true,flush:"post"}),S()),p&&(a?.(),a=watch(p,()=>{h(),D();},{deep:true,flush:"post"})),o(),C=V.run(()=>{let u=computed({get:()=>t.value,set(W){h(),t.value=W,D();}}),i=computed(()=>!!Object.entries(f.value).length&&Object.entries(f.value).every(([W,j])=>j?.$dirty)),R=computed(()=>Object.entries(f.value).some(([W,j])=>j?.$anyDirty)),T=computed(()=>Object.entries(f.value).some(([W,j])=>j?.$invalid)),F=computed(()=>{let W=Object.entries(f.value).filter(([j,z])=>xt(z)?!z.$inactive:true);return W.length?W.every(([j,z])=>z?.$correct||z.$anyDirty&&!z.$invalid):false}),H=computed(()=>R.value&&!J.value&&T.value),y=computed(()=>unref(b.options.rewardEarly)!=null?unref(b.options.rewardEarly):false),_=computed(()=>unref(b.options.autoDirty)!=null?unref(b.options.autoDirty):!y.value),K=computed(()=>_.value?R.value&&!(T.value||J.value):!(T.value||J.value)),Z=ref(false),J=computed(()=>Z.value||Object.entries(f.value).some(([W,j])=>j?.$pending)),se=computed(()=>Object.fromEntries(Object.entries(f.value).map(([W,j])=>[W,j?.$errors]))),g=computed(()=>Object.fromEntries(Object.entries(f.value).map(([W,j])=>[W,j?.$silentErrors]))),k=computed(()=>!!Object.entries(f.value).length&&Object.entries(f.value).every(([W,j])=>j?.$edited)),A=computed(()=>Object.entries(f.value).some(([W,j])=>j?.$anyEdited)),x=computed(()=>m);function ue(){b.shortcuts?.nested&&Object.entries(b.shortcuts.nested).forEach(([W,j])=>{let z=effectScope();pe[W]=z.run(()=>{let me=ref();return watchEffect(()=>{me.value=j(reactive({$dirty:i,$value:t,$silentValue:u,$error:H,$pending:J,$invalid:T,$correct:F,$ready:K,$anyDirty:R,$name:x,$silentErrors:g,$errors:se,$fields:f,$edited:k,$anyEdited:A}));}),me}),M.push(z);});}let le=computed({get:()=>d?Object.fromEntries(Object.entries(d?.(f.value)??{}).map(([W,j])=>j.length?[W,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(z=>[z,mt(j,z)])),...Object.fromEntries(["$errors","$silentErrors"].map(z=>[z,yt(j,z)]))}]:[])):{},set(){}}),pe={};return ue(),{$dirty:i,$anyDirty:R,$invalid:T,$correct:F,$error:H,$pending:J,$errors:se,$silentErrors:g,$ready:K,$name:x,$shortcuts:pe,$groups:le,$silentValue:u,$edited:k,$anyEdited:A,$localPending:Z}});}function h(){w?.(),O?.(),v?.(),a?.(),M=[],C={},f.value&&Object.entries(f.value).forEach(([u,i])=>{i.$unwatch();});}function P(){Object.entries(f.value).forEach(([u,i])=>{i.$clearExternalErrors();});}function q(u,i){if(O?.(),h(),!i)if(u?.toInitialState)t.value=G({...$.value??{}});else if(u?.toState){let R;typeof u?.toState=="function"?R=u?.toState():R=u?.toState,$.value=G(R),t.value=G(R);}else $.value=G(t.value);Object.values(f.value).forEach(R=>{R.$reset(u,true);}),S(),i||D();}function U(u=true,i=false){Object.values(f.value).forEach(R=>{R.$touch(u,i);});}function X(u){return u.filter(([i,R])=>ae(R)?!(R&&typeof R=="object"&&"_null"in R)&&!ee(R):Array.isArray(R)?R.length:true)}function I(u=true){let i=Object.entries(f.value).map(([R,T])=>[R,T.$extractDirtyFields(u)]);return u&&(i=X(i)),Object.fromEntries(i)}async function B(){try{if(b.schemaMode)return b.onValidate?(U(!1),C.$localPending.value=!0,b.onValidate()):{result:!1,data:t.value};{let u=t.value;return {result:(await Promise.allSettled(Object.values(f.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.result===!0:!1),data:u}}}catch{return {result:false,data:t.value}}finally{C.$localPending.value=false;}}let{$shortcuts:de,$localPending:ye,...ie}=C;return reactive({...ie,...de,$fields:f,$value:t,$reset:q,$touch:U,$validate:B,$unwatch:h,$watch:s,$clearExternalErrors:P,$extractDirtyFields:I})}function Ee({rulesDef:e,...t}){if(bt(e,t.state))return Pt({rulesDef:e,...t});if(ht(t.state,e)){if(je(t.state))return Ne({rulesDef:e,...t});{let n=effectScope().run(()=>{let p=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,d=>{p.value=d;},{deep:true}),watch(p,d=>{t.state.value=d;},{deep:true}),{fakeState:p}}),{state:l,...c}=t;return Ne({rulesDef:e,...c,state:n.fakeState})}}else if(Et(e))return _e({rulesDef:e,...t})}function Ce({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:c,schemaErrors:p,schemaMode:d=false,onValidate:$}){let m=ze(),b=ref();return b.value=Ne({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:c,fieldName:"root",path:"",schemaErrors:p,rootSchemaErrors:p,schemaMode:d,onValidate:$}),getCurrentScope()&&onScopeDispose(()=>{b.value?.$unwatch();}),reactive({regle:b})}function et(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(c,p,d){let $=isRef(p)?p:computed(typeof p=="function"?p:()=>p),m={...n,...d},b=isRef(c)?c:ref(c),V=ref({...G(b.value)});return {r$:Ce({scopeRules:$,state:b,options:m,initialState:V,customRules:e,shortcuts:r}).regle}}return l}var Ge=et();function tt(){function e(t,r){return r}return e}var rt=tt();function jt({rules:e,modifiers:t,shortcuts:r}){let n=et(e,t,r),l=tt();return {useRegle:n,inferRules:l}}function Ae(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(o=>o.$value):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$value])),set:o=>{r||typeof o=="object"&&Object.entries(o).forEach(([s,h])=>e[s].$value=h);}}),l=computed({get:()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentValue])),set:o=>{typeof o=="object"&&Object.entries(o).forEach(([s,h])=>e[s].$silentValue=h);}}),c=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$dirty)}),p=computed(()=>Object.entries(e).some(([o,s])=>s?.$anyDirty)),d=computed(()=>Object.entries(e).some(([o,s])=>s?.$invalid)),$=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$correct||h.$anyDirty&&!h.$invalid)}),m=computed(()=>Object.entries(e).some(([o,s])=>s?.$error)),b=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$ready)}),V=computed(()=>Object.entries(e).some(([o,s])=>s?.$pending)),C=computed(()=>r?Object.entries(e).map(([o,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$errors]))),M=computed(()=>r?Object.entries(e).map(([o,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentErrors]))),w=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$edited)}),a=computed(()=>Object.entries(e).some(([o,s])=>s?.$anyEdited)),O=computed(()=>r?Object.values(e):e);function v(o){Object.values(e).forEach(s=>{s.$reset(o);});}function E(){Object.values(e).forEach(o=>{o.$touch();});}function D(o=true){return Object.values(e).map(s=>s.$extractDirtyFields(o))}function f(){Object.values(e).forEach(o=>{o.$clearExternalErrors();});}async function S(){try{let o=n.value;return {result:(await Promise.allSettled(Object.values(e).map(P=>P.$validate()))).every(P=>P.status==="fulfilled"?P.value.result===!0:!1),data:o}}catch{return {result:false,data:n.value}}}return reactive({...!r&&{$silentValue:l},$errors:C,$silentErrors:M,$instances:O,$value:n,$dirty:c,$anyDirty:p,$invalid:d,$correct:$,$error:m,$pending:V,$ready:b,$edited:w,$anyEdited:a,$reset:v,$touch:E,$validate:S,$extractDirtyFields:D,$clearExternalErrors:f})}function _t(e){function t(r){let n=computed(()=>toValue(r));p();let l=ref(d(e.value)),c=reactive({r$:l});function p(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}watch(n,p),watch(e,$=>{l.value=d($);},{deep:true});function d($){if(n.value){let m=$[n.value]??{};return Ae(m,true)}else return Ae($["~~global"]??{},true)}return {r$:c.r$}}return {useCollectScope:t}}function Gt(e,t){let r=t??Ge;return {useScopedRegle:(l,c,p)=>{let{namespace:d,...$}=p??{},m=computed(()=>toValue(d)),b=ref(`${Object.keys(e.value).length+1}-${Se()}`),V=computed(()=>`instance-${b.value}`),{r$:C}=r(l,c,$);w(),$t(M),watch(m,(a,O)=>{M(O),w();}),getCurrentInstance()&&onMounted(()=>{let a=getCurrentInstance();typeof window<"u"&&a?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(a?.proxy?.$el?.parentElement)&&M();});function M(a){let O=a??m.value;O?e.value[O]&&delete e.value[O][V.value]:e.value["~~global"][V.value]&&delete e.value["~~global"][V.value];}function w(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][V.value]=C):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][V.value]=C);}return {r$:C,dispose:M,register:w}}}}function nt(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):St(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=Gt(r,e?.customUseRegle),{useCollectScope:l}=_t(r);return {useScopedRegle:n,useCollectScope:l}}
|
|
1
|
+
import {toValue,version,ref,getCurrentScope,onScopeDispose,reactive,computed,shallowRef,effectScope,watch,getCurrentInstance,onMounted,isRef,toRef,unref,watchEffect}from'vue';function ee(e,t=true){return e==null?true:e instanceof Date?isNaN(e.getTime()):e.constructor.name=="File"||e.constructor.name=="FileList"?e.size<=0:Array.isArray(e)?t?e.length===0:false:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var pt=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 U(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>U(n)))),r=="Map"&&(t=new Map([...e].map(n=>[U(n[0]),U(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]=U(e[n]);}return t}function ae(e){return e&&(e instanceof Date||e.constructor.name=="File"||e.constructor.name=="FileList")?false:typeof e=="object"&&e!==null&&!Array.isArray(e)}function We(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Fe(e,t,r){let n,l=(...f)=>new Promise(p=>{clearTimeout(n),n=setTimeout(()=>{n=undefined,Promise.resolve(e.apply(this,[...f])).then(p);},t);});return l.cancel=()=>{clearTimeout(n),n=undefined;},l}var Le=(r=>(r.Inline="__inline",r.Async="__async",r))(Le||{});function mt(e,t){return e.some(r=>r[t])}function yt(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function te(e){try{return e.map(t=>toValue(t))}catch{return []}}function gt(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function vt(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(p=>p.trim()).filter(p=>p.length>0).length:0}function Be(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(d,...$){return e.validator(d,...te($.length?$:t))},message(d){return typeof e.message=="function"?e.message({...d,$params:te(d?.$params?.length?d.$params:t)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:te(d?.$params?.length?d.$params:t)}):e.active??true},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:te(d?.$params?.length?d.$params:t)}):e.tooltip??[]},exec(d){let $=e.validator(d,...te(t)),m;return $ instanceof Promise?$.then(b=>(m=b,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:l,_params:gt(t),_brand:pt}}function He(e){if(typeof e.validator=="function"){let r=Be(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(vt(e.validator)>1){let l=function(...f){return Be(e,...f)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=false,l._tooltip_pacthed=false,l._async=n,l}else return r}throw new Error("Validator must be a function")}function ze(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),l=shallowRef(new Map),f=shallowRef(new Map);function p(v){let E=t.value.get(v);if(E)return E;{let D=ref({});return t.value.set(v,D),D}}function d(v){let E=r.value.get(v);if(E)return E;{let D=ref([]);return r.value.set(v,D),D}}function $(v,E,D){f.value.set(`${v}-${E}`,D);}function m(v,E){return f.value.get(`${v}-${E}`)}function b(v,E){v&&E!=null&&f.value.delete(`${v}-${E}`);}function V(v,E){n.value.set(v,E);}function C(v){return n.value.get(v)??false}function F(v,E){e.value.set(v,E);}function O(v,E){let D=e.value.get(v);return D?a(E,D)?{valid:true}:{valid:false}:undefined}function a(v,E){let D=Object.keys(E),i=Object.keys(v);return i.length!==D.length||!i.every(o=>D.includes(o))?false:i.every(o=>{let s=v[o],h=E[o];return !h||!s||typeof s=="function"||typeof h=="function"||typeof s=="number"||typeof s=="boolean"?false:s._params?s._params?.every((A,q)=>{if(typeof h=="number"||typeof h=="boolean")return true;{let W=te(h._params),X=te(s._params);return W?.[q]===X?.[q]}}):true})}function w(v){let E=l.value.get(v);if(E)return E;{let D=ref(false),i=ref(true),S=ref({}),o=ref(false);return l.value.set(v,{$pending:D,$valid:i,$metadata:S,$validating:o}),{$pending:D,$valid:i,$metadata:S,$validating:o}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),f.value.clear();}),{addRuleDeclEntry:F,setDirtyEntry:V,checkRuleDeclEntry:O,getDirtyState:C,trySetRuleStatusRef:w,getFieldsEntry:p,getCollectionsEntry:d,getArrayStatus:m,addArrayStatus:$,deleteArrayStatus:b,arrayStatusStorage:f}}function je(e){return ae(e.value)}function qe(e,t,r){let n=effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function Xt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let f=Number(r[l]),p=Number(n[l]);if(f>p)return 1;if(p>f)return -1;if(!isNaN(f)&&isNaN(p))return 1;if(isNaN(f)&&!isNaN(p))return -1}return 0}var Ve=Xt(version,"3.5.0")!==-1;function Zt(){return Math.floor(Math.random()*Date.now()).toString()}function Se(){return typeof window>"u"?Zt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function $t(e){return getCurrentScope()?(onScopeDispose(e),true):false}function St(e){let t=false,r,n=effectScope(true);return (...l)=>(t||(r=n.run(()=>e(...l)),t=true),r)}function ht(e,t){return je(e)||ae(t.value)&&!ee(t.value)&&!Object.entries(t.value).some(([r,n])=>Oe(n)||typeof n=="function")}function bt(e,t){return !!e.value&&ae(e.value)&&"$each"in e.value||Array.isArray(t.value)}function Et(e){return !!e.value&&ae(e.value)}function Oe(e){return ae(e)&&"_validator"in e}function we(e){return typeof e.value!="function"}function Tt(e){return ae(e)&&"$fields"in e}function xt(e){return !!e&&"$rules"in e}function Ke({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 Dt({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 Ct({customMessages:e,rule:t,ruleKey:r,state:n,path:l,storage:f,$debounce:p,modifiers:d}){let $=effectScope(),m={},b,V=ref(false),{$pending:C,$valid:F,$metadata:O,$validating:a}=f.trySetRuleStatusRef(`${l}.${r}`);function w(){$=effectScope(),m=$.run(()=>{let s=ref(false),h=ref(false),A=ref(true),q=ref(false),W=ref(false),X=computed(()=>({$value:n.value,$error:h.value,$dirty:s.value,$pending:q.value,$correct:W.value,$invalid:A.value,$rule:{$valid:F.value,$invalid:!F.value,$pending:C.value},$params:c.value,...O.value})),I=computed(()=>we(t)?typeof t.value.active=="function"?t.value.active(X.value):!!t.value.active:true);function B(T){let j="",H=e?e[r]?.[T]:undefined;if(H&&(typeof H=="function"?j=H(X.value):j=H),we(t)){let y=`_${T}_patched`;H&&!t.value[y]||(typeof t.value[T]=="function"?j=t.value[T](X.value):j=t.value[T]??"");}return j}let de=computed(()=>{let T=B("message");return ee(T)&&(T="This field is not valid"),T}),ye=computed(()=>B("tooltip")),ie=computed(()=>we(t)&&t.value.type?t.value.type:r),u=computed(()=>we(t)?t.value.validator:t.value),c=computed(()=>typeof t.value=="function"?[]:te(t.value._params??[])),R=computed(()=>`${l}.${ie.value}`);return {$active:I,$message:de,$type:ie,$validator:u,$params:c,$path:R,$tooltip:ye,$fieldCorrect:W,$fieldError:h,$fieldDirty:s,$fieldPending:q,$fieldInvalid:A}}),b=watch(m?.$params,()=>{(d.$autoDirty.value||d.$rewardEarly.value&&m.$fieldError.value)&&i();});}w();function v(){F.value=true,m.$fieldDirty.value&&(C.value=true);}async function E(){let s=false;try{let h=m.$validator.value;if(typeof h!="function")return console.error(`${l}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let A=h(n.value,...m.$params.value),q=n.value;v();let W;if(A instanceof Promise?W=await A:W=A,n.value!==q)return !0;if(typeof W=="boolean")s=W;else {let{$valid:X,...I}=W;s=X,O.value=I;}}catch{s=false;}finally{C.value=false;}return s}let D=Fe(E,p??200);async function i(){try{a.value=!0;let s=!1;if(Oe(t.value)&&t.value._async)s=await D();else {let h=m.$validator.value,A=h(n.value,...m.$params.value);if(A instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(A!=null)if(typeof A=="boolean")s=A;else {let{$valid:q,...W}=A;s=q,O.value=W;}}return F.value=s,s}catch{return false}finally{a.value=false;}}function S(){F.value=true,O.value={},C.value=false,a.value=false,w();}function o(){b(),$.stop(),$=effectScope();}return reactive({...m,$pending:C,$valid:F,$metadata:O,$haveAsync:V,$validating:a,$parse:i,$unwatch:o,$watch:w,$reset:S})}function _e({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:f,options:p,externalErrors:d,schemaErrors:$,schemaMode:m,onUnwatch:b,$isArray:V,initialState:C,shortcuts:F}){let O=effectScope(),a,w=[],v,E,D,i,S,o=()=>{};function s(){let g=t.value,k=f.checkRuleDeclEntry(n,g);B.value=Object.fromEntries(Object.entries(g).filter(([M])=>M.startsWith("$"))),q(),I.value=Object.fromEntries(Object.entries(t.value).filter(([M])=>!M.startsWith("$")).map(([M,x])=>{if(x){let ue=toRef(()=>x);return [M,Ct({modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:ue,ruleKey:M,state:e,path:n,storage:f,$debounce:B.value.$debounce})]}return []}).filter(M=>!!M.length)),a.processShortcuts(),h(),k?.valid!=null&&(a.$dirty.value=f.getDirtyState(n),(a.$dirty.value&&a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o()),f.addRuleDeclEntry(n,g);}function h(){o=a.$debounce.value?Fe(X,a.$debounce.value??a.$haveAnyAsyncRule?100:0):X;}function A(){I.value&&Object.entries(I.value).forEach(([g,k])=>{k.$unwatch();}),D(),S?.(),a.$dirty.value&&f.setDirtyEntry(n,a.$dirty.value),v?.(),E?.(),O.stop(),O=effectScope(),w.forEach(g=>g.stop()),w=[],b?.(),i?.();}function q(){I.value&&Object.entries(I.value).forEach(([g,k])=>{k.$watch();}),a=O.run(()=>{let g=ref(false),k=ref(false),M=computed(()=>g.value),x=computed(()=>B.value.$debounce),ue=computed(()=>B.value.$lazy!=null?B.value.$lazy:unref(p.lazy)!=null?unref(p.lazy):false),le=computed(()=>B.value.$rewardEarly!=null?B.value.$rewardEarly:unref(p.rewardEarly)!=null?unref(p.rewardEarly):false),pe=computed(()=>B.value.$clearExternalErrorsOnChange!=null?B.value.$clearExternalErrorsOnChange:unref(p.clearExternalErrorsOnChange)!=null?unref(p.clearExternalErrorsOnChange):true),G=computed(()=>B.value.$autoDirty!=null?B.value.$autoDirty:unref(p.autoDirty)!=null?unref(p.autoDirty):!le.value),P=computed(()=>Object.entries(I.value).some(([oe,Q])=>Q.$validating)),z=computed({get:()=>e.value,set(oe){v(),e.value=oe,W();}}),me=computed(()=>ge.value&&!Ie.value&&g.value),at=computed(()=>Ke({field:{$rules:I.value,$error:me.value,$externalErrors:d?.value,$schemaErrors:$?.value}})),lt=computed(()=>Ke({field:{$rules:I.value,$error:me.value,$externalErrors:d?.value,$schemaErrors:$?.value},silent:true})),Ue=computed(()=>g.value?C.value instanceof Date&&e.value instanceof Date?We(C.value).getDate()!==We(e.value).getDate():C.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(C.value)?e.value.length!==C.value.length:C.value!==e.value:false),ot=computed(()=>Ue.value),st=computed(()=>Dt({field:{$rules:I.value}})),ut=computed(()=>G.value?M.value&&!(ge.value||Ie.value):!(ge.value||Ie.value)),Ie=computed(()=>k.value||!le.value?Object.entries(I.value).some(([oe,Q])=>Q.$pending):false),ge=computed(()=>d?.value?.length||$?.value?.length?true:Me.value?false:!le.value||le.value&&k.value?Object.entries(I.value).some(([oe,Q])=>!Q.$valid):false),it=computed(()=>l),Me=computed(()=>!!(ee(I.value)&&!m)),ct=computed(()=>d?.value?.length||Me.value?false:g.value&&!ee(e.value)&&!P.value?m?!$?.value?.length:Object.values(I.value).some(Q=>Q.$active)?Object.values(I.value).filter(Q=>Q.$active).every(Q=>Q.$valid):false:false),Ut=computed(()=>Object.entries(I.value).some(([oe,Q])=>Q.$haveAsync));function Wt(){F?.fields&&Object.entries(F.fields).forEach(([oe,Q])=>{let Rt=effectScope();ft[oe]=Rt.run(()=>{let dt=ref();return watchEffect(()=>{dt.value=Q(reactive({$dirty:g,$externalErrors:d?.value??[],$value:e,$silentValue:z,$rules:I,$error:me,$pending:Ie,$invalid:ge,$correct:ct,$errors:at,$ready:ut,$silentErrors:lt,$anyDirty:M,$tooltips:st,$name:it,$inactive:Me,$edited:Ue,$anyEdited:ot}));}),dt}),w.push(Rt);});}let ft={};return watch(ge,oe=>{oe||(k.value=false);}),{$error:me,$pending:Ie,$invalid:ge,$correct:ct,$debounce:x,$lazy:ue,$errors:at,$ready:ut,$silentErrors:lt,$rewardEarly:le,$autoDirty:G,$clearExternalErrorsOnChange:pe,$anyDirty:M,$edited:Ue,$anyEdited:ot,$name:it,$haveAnyAsyncRule:Ut,$shortcuts:ft,$validating:P,$tooltips:st,$dirty:g,triggerPunishment:k,processShortcuts:Wt,$silentValue:z,$inactive:Me}}),W(),D=watch(a.$dirty,g=>{f.setDirtyEntry(n,g),Object.values(I.value).forEach(k=>{k.$fieldDirty=g;});}),S=watch([a.$error,a.$correct,a.$invalid,a.$pending],()=>{Object.values(I.value).forEach(g=>{g.$fieldError=a.$error.value,g.$fieldInvalid=a.$invalid.value,g.$fieldPending=a.$pending.value,g.$fieldCorrect=a.$correct.value;});}),E=watch(a.$invalid,g=>{a.$rewardEarly.value&&!g&&(a.triggerPunishment.value=false);}),i=watch(a.$haveAnyAsyncRule,h);}function W(){v=watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=true)),t.value instanceof Function&&s(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o(),a.$rewardEarly.value!==true&&a.$clearExternalErrorsOnChange.value&&c();},{deep:V?true:Ve?1:true,flush:"post"});}function X(){Object.values(I.value).forEach(g=>{g.$parse();});}let I=ref({}),B=ref({});s();function de(g,k){if(c(),a.$dirty.value=false,a.triggerPunishment.value=false,f.setDirtyEntry(n,false),!k)if(g?.toInitialState)A(),e.value=U(C);else if(g?.toState){A();let M;typeof g?.toState=="function"?M=g?.toState():M=g?.toState,C.value=U(M),e.value=U(M);}else C.value=ae(e.value)?U(e.value):Array.isArray(e.value)?[...e.value]:e.value;k||Object.entries(I.value).forEach(([M,x])=>{x.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(I.value).forEach(M=>M.$parse()),k||s();}function ye(g=true,k=false){a.$dirty.value||(a.$dirty.value=true),k&&g?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&o():g&&o();}async function ie(){try{let g=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {valid:!a.$error.value,data:g};return m?{valid:!$?.value?.length,data:g}:ee(I.value)?{valid:!0,data:g}:{valid:(await Promise.allSettled(Object.entries(I.value).map(([x,ue])=>ue.$parse()))).every(x=>x.status==="fulfilled"?x.value===!0:!1),data:g}}catch{return {valid:false,data:e.value}}}function u(g=true){return a.$dirty.value?e.value:g?{_null:true}:null}function c(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&o();let{$shortcuts:R,$validating:T,$autoDirty:j,$rewardEarly:H,$clearExternalErrorsOnChange:y,$haveAnyAsyncRule:_,$debounce:K,$lazy:Z,triggerPunishment:Y,...se}=a;return reactive({...se,$externalErrors:d,$value:e,$rules:I,...R,$reset:de,$touch:ye,$validate:ie,$unwatch:A,$watch:q,$extractDirtyFields:u,$clearExternalErrors:c})}function Qe({$id:e,path:t,index:r,options:n,storage:l,stateValue:f,customMessages:p,rules:d,externalErrors:$,schemaErrors:m,initialState:b,shortcuts:V,fieldName:C,schemaMode:F}){let O=d.$key?d.$key:Se(),a=`${t}.${String(O)}`;typeof f.value=="object"&&f.value!=null&&(f.value.$id?a=`${t}.${f.value.$id}`:Object.defineProperties(f.value,{$id:{value:O,enumerable:false,configurable:false,writable:false}}));let w=toRef($?.value??[],r),v=computed(()=>m?.value?.[r]),E=Ee({state:f,rulesDef:toRef(()=>d),customMessages:p,path:a,storage:l,options:n,externalErrors:w,schemaErrors:v,initialState:b,shortcuts:V,fieldName:C,schemaMode:F});if(E){let D=f.value?.$id;E.$id=D??String(O),l.addArrayStatus(e,E.$id,E);}return E}function Pt({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:f,externalErrors:p,schemaErrors:d,schemaMode:$,initialState:m,shortcuts:b,fieldName:V}){let C=effectScope(),F,O=effectScope(),a,w=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let v=ref(),E=ref(e.value),D,i=ref({}),S=l.getCollectionsEntry(n);a=O.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(c=>typeof c!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(c=>Oe(c)||typeof c=="function"):false)})),o(),A();function o(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(v.value=Se(),Object.defineProperties(e.value,{$id:{value:v.value,enumerable:false,configurable:false,writable:false}})):e.value?.$id&&(v.value=e.value.$id)),E.value=i.value.$value,Array.isArray(e.value)&&!a.isPrimitiveArray.value?S.value=e.value.filter(u=>typeof u=="object").map((u,c)=>{let{scope:R,unwrapped:T}=qe(t.value.$each,toRef(()=>u),c);R&&w.push(R);let j=toRef(m.value??[],c),H=toRef(p?.value??{},"$each"),y=computed(()=>d?.value?.$each),_=Qe({$id:v.value,path:n,customMessages:r,rules:T??{},stateValue:toRef(()=>u),index:c,options:f,storage:l,externalErrors:H,schemaErrors:y,initialState:j,shortcuts:b,fieldName:V,schemaMode:$});return _||null}).filter(u=>!!u):S.value=[],i.value=_e({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:f,externalErrors:toRef(p?.value??{},"$self"),schemaErrors:computed(()=>d?.value?.$self),$isArray:true,initialState:m,shortcuts:b,fieldName:V,schemaMode:$});}function s(){if(Array.isArray(e.value)&&!a.isPrimitiveArray.value){let u=U(S.value);S.value=e.value.filter(c=>typeof c=="object").map((c,R)=>{let T=toRef(()=>c);if(c.$id&&S.value.find(j=>j.$id===c.$id)){let j=l.getArrayStatus(v.value,c.$id);return j?(j.$value=T,j):null}else {let{scope:j,unwrapped:H}=qe(t.value.$each,T,R);j&&w.push(j);let y=toRef(p?.value??{},"$each"),_=computed(()=>d?.value?.$each??[]),K=Qe({$id:v.value,path:n,customMessages:r,rules:H??{},stateValue:T,index:R,options:f,storage:l,externalErrors:y,schemaErrors:_,initialState:toRef(m.value??[],R),shortcuts:b,fieldName:V,schemaMode:$});return K||null}}).filter(c=>!!c),u.filter(c=>!e.value?.find(R=>c.$id===R.$id)).forEach((c,R)=>{l.deleteArrayStatus(v.value,R.toString());});}else S.value=[];}function h(){D=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?o():s();},{deep:Ve?1:true,flush:"pre"});}function A(){h(),C=effectScope(),F=C.run(()=>{let u=computed({get:()=>e.value,set(x){D(),e.value=x,h();}}),c=computed(()=>i.value.$dirty&&(!S.value.length||S.value.every(x=>x.$dirty))),R=computed(()=>i.value.$anyDirty||S.value.some(x=>x.$anyDirty)),T=computed(()=>i.value.$invalid||S.value.some(x=>x.$invalid)),j=computed(()=>(ee(i.value.$rules)?true:i.value.$correct)&&(!S.value.length||S.value.every(x=>x.$correct||x.$anyDirty&&!x.$invalid))),H=computed(()=>i.value.$error||S.value.some(x=>x.$error)),y=computed(()=>!(T.value||_.value)),_=computed(()=>i.value.$pending||S.value.some(x=>x.$pending)),K=computed(()=>!!S.value.length&&S.value.every(x=>x.$edited)),Z=computed(()=>i.value.$anyEdited||S.value.some(x=>x.$anyEdited)),Y=computed(()=>({$self:i.value.$errors,$each:S.value.map(x=>x.$errors)})),se=computed(()=>({$self:i.value.$silentErrors,$each:S.value.map(x=>x.$silentErrors)})),g=computed(()=>V);function k(){b?.collections&&Object.entries(b?.collections).forEach(([x,ue])=>{let le=effectScope();M[x]=le.run(()=>{let pe=ref();return watchEffect(()=>{pe.value=ue(reactive({$dirty:c,$error:H,$silentValue:u,$pending:_,$invalid:T,$correct:j,$errors:Y,$ready:y,$silentErrors:se,$anyDirty:R,$name:g,$each:S,$self:i,$value:e,$edited:K,$anyEdited:Z}));}),pe}),w.push(le);});}let M={};return k(),{$dirty:c,$anyDirty:R,$invalid:T,$correct:j,$error:H,$pending:_,$errors:Y,$silentErrors:se,$ready:y,$name:g,$shortcuts:M,$silentValue:u,$edited:K,$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 q(){D&&D(),i.value&&i.value.$unwatch(),S.value&&S.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),C.stop(),C=effectScope(),O.stop(),O=effectScope(true),w.forEach(u=>u.stop()),w=[];}function W(u=true,c=false){i.value.$touch(u,c),S.value.forEach(R=>{R.$touch(u,c);});}function X(u,c){if(q(),!c)if(u?.toInitialState)e.value=U(m.value);else if(u?.toState){let R;typeof u?.toState=="function"?R=u?.toState():R=u?.toState,m.value=U(R),e.value=U(R);}else m.value=U(e.value);i.value.$reset(),S.value.forEach(R=>{R.$reset(u,true);}),c||o();}async function I(){let u=e.value;try{return {valid:(await Promise.allSettled([i.value.$validate(),...S.value.map(T=>T.$validate())])).every(T=>T.status==="fulfilled"?T.value.valid===!0:!1),data:u}}catch{return {valid:false,data:u}}}function B(){i.value.$clearExternalErrors(),S.value.forEach(u=>{u.$clearExternalErrors();});}function de(u=true){let c=S.value.map(R=>{if(Tt(R))return R.$extractDirtyFields(u)});return u&&c.every(R=>ee(R))&&(c=[]),c}let{$shortcuts:ye,...ie}=F;return reactive({$self:i,...ie,...ye,$each:S,$value:e,$validate:I,$unwatch:q,$watch:A,$touch:W,$reset:X,$extractDirtyFields:de,$clearExternalErrors:B})}function Ne({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,schemaErrors:f,rootSchemaErrors:p,validationGroups:d,initialState:$,fieldName:m,...b}){let V=effectScope(),C,F=[],O=null,a=null,w=null,v=null;async function D(u=true){let c=Object.entries(e.value),R=Object.fromEntries(c.filter(([y,_])=>!!_).map(([y,_])=>{if(_){let K=toRef(t.value??{},y),Z=toRef(()=>_),Y=toRef(l?.value??{},y),se=computed(()=>f?.value?.[y]),g=toRef($?.value??{},y);return [y,Ee({state:K,rulesDef:Z,path:r?`${r}.${y}`:y,externalErrors:Y,schemaErrors:se,initialState:g,fieldName:y,...b})]}return []})),T=Object.fromEntries(Object.entries(unref(l)??{}).filter(([y,_])=>!(y in e.value)&&!!_).map(([y])=>{let _=toRef(t.value??{},y),K=toRef(l?.value??{},y),Z=computed(()=>f?.value?.[y]),Y=toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:y,...b})]})),j=Object.fromEntries(Object.entries(unref(f)??{}).map(([y])=>{let _=toRef(t.value??{},y),K=toRef(l?.value??{},y),Z=computed(()=>f?.value?.[y]),Y=toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:y,...b})]})),H=Object.fromEntries(Object.entries(t.value??{}).filter(([y])=>!(y in e.value)&&!(y in(T??{}))&&!(y in(j??{}))).map(([y])=>{let _=toRef(t.value??{},y),K=toRef(l?.value??{},y),Z=computed(()=>f?.value?.[y]),Y=toRef($?.value??{},y);return [y,Ee({state:_,rulesDef:computed(()=>({})),path:r?`${r}.${y}`:y,externalErrors:K,schemaErrors:Z,initialState:Y,fieldName:y,...b})]}));i.value={...R,...T,...j,...H},u&&s();}let i=b.storage.getFieldsEntry(r);D();function S(){l&&(w=watch(l,()=>{h(),D();},{deep:true}));}function o(){v=watch(t,()=>{h(),D(),W(true,true);},{flush:"sync"});}function s(){n&&(O?.(),O=watch(n,()=>{h(),D();},{deep:true,flush:"post"}),S()),p&&(a?.(),a=watch(p,()=>{h(),D();},{deep:true,flush:"post"})),o(),C=V.run(()=>{let u=computed({get:()=>t.value,set(G){h(),t.value=G,D();}}),c=computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([G,P])=>P?.$dirty)),R=computed(()=>Object.entries(i.value).some(([G,P])=>P?.$anyDirty)),T=computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).some(([G,P])=>P?.$invalid)),j=computed(()=>{let G=Object.entries(i.value).filter(([P,z])=>xt(z)?!z.$inactive:true);return G.length?G.every(([P,z])=>z?.$correct||z.$anyDirty&&!z.$invalid):false}),H=computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).some(([G,P])=>P?.$error)),y=computed(()=>unref(b.options.rewardEarly)!=null?unref(b.options.rewardEarly):false),_=computed(()=>unref(b.options.autoDirty)!=null?unref(b.options.autoDirty):!y.value),K=computed(()=>_.value?R.value&&!(T.value||Y.value):!(T.value||Y.value)),Z=ref(false),Y=computed(()=>Z.value||Object.entries(i.value).some(([G,P])=>P?.$pending)),se=computed(()=>Object.fromEntries(Object.entries(i.value).map(([G,P])=>[G,P?.$errors]))),g=computed(()=>Object.fromEntries(Object.entries(i.value).map(([G,P])=>[G,P?.$silentErrors]))),k=computed(()=>!!Object.entries(i.value).length&&Object.entries(i.value).every(([G,P])=>P?.$edited)),M=computed(()=>Object.entries(i.value).some(([G,P])=>P?.$anyEdited)),x=computed(()=>m);function ue(){b.shortcuts?.nested&&Object.entries(b.shortcuts.nested).forEach(([G,P])=>{let z=effectScope();pe[G]=z.run(()=>{let me=ref();return watchEffect(()=>{me.value=P(reactive({$dirty:c,$value:t,$silentValue:u,$error:H,$pending:Y,$invalid:T,$correct:j,$ready:K,$anyDirty:R,$name:x,$silentErrors:g,$errors:se,$fields:i,$edited:k,$anyEdited:M}));}),me}),F.push(z);});}let le=computed({get:()=>d?Object.fromEntries(Object.entries(d?.(i.value)??{}).map(([G,P])=>P.length?[G,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$correct"].map(z=>[z,mt(P,z)])),...Object.fromEntries(["$errors","$silentErrors"].map(z=>[z,yt(P,z)]))}]:[])):{},set(){}}),pe={};return ue(),{$dirty:c,$anyDirty:R,$invalid:T,$correct:j,$error:H,$pending:Y,$errors:se,$silentErrors:g,$ready:K,$name:x,$shortcuts:pe,$groups:le,$silentValue:u,$edited:k,$anyEdited:M,$localPending:Z}});}function h(){O?.(),w?.(),v?.(),a?.(),F=[],C={},i.value&&Object.entries(i.value).forEach(([u,c])=>{c.$unwatch();});}function A(){Object.entries(i.value).forEach(([u,c])=>{c.$clearExternalErrors();});}function q(u,c){if(w?.(),h(),!c)if(u?.toInitialState)t.value=U({...$.value??{}});else if(u?.toState){let R;typeof u?.toState=="function"?R=u?.toState():R=u?.toState,$.value=U(R),t.value=U(R);}else $.value=U(t.value);Object.values(i.value).forEach(R=>{R.$reset(u,true);}),S(),c||D();}function W(u=true,c=false){Object.values(i.value).forEach(R=>{R.$touch(u,c);});}function X(u){return u.filter(([c,R])=>ae(R)?!(R&&typeof R=="object"&&"_null"in R)&&!ee(R):Array.isArray(R)?R.length:true)}function I(u=true){let c=Object.entries(i.value).map(([R,T])=>[R,T.$extractDirtyFields(u)]);return u&&(c=X(c)),Object.fromEntries(c)}async function B(){try{if(b.schemaMode)return b.onValidate?(W(!1),C.$localPending.value=!0,b.onValidate()):{valid:!1,data:t.value};{let u=t.value;return {valid:(await Promise.allSettled(Object.values(i.value).map(T=>T.$validate()))).every(T=>T.status==="fulfilled"?T.value.valid===!0:!1),data:u}}}catch{return {valid:false,data:t.value}}finally{C.$localPending.value=false;}}let{$shortcuts:de,$localPending:ye,...ie}=C;return reactive({...ie,...de,$fields:i,$value:t,$reset:q,$touch:W,$validate:B,$unwatch:h,$watch:s,$clearExternalErrors:A,$extractDirtyFields:I})}function Ee({rulesDef:e,...t}){if(bt(e,t.state))return Pt({rulesDef:e,...t});if(ht(t.state,e)){if(je(t.state))return Ne({rulesDef:e,...t});{let n=effectScope().run(()=>{let p=toRef(t.state.value?t.state:ref({}));return watch(()=>t.state.value,d=>{p.value=d;},{deep:true}),watch(p,d=>{t.state.value=d;},{deep:true}),{fakeState:p}}),{state:l,...f}=t;return Ne({rulesDef:e,...f,state:n.fakeState})}}else if(Et(e))return _e({rulesDef:e,...t})}function Ce({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:f,schemaErrors:p,schemaMode:d=false,onValidate:$}){let m=ze(),b=ref();return b.value=Ne({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:m,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:f,fieldName:"root",path:"",schemaErrors:p,rootSchemaErrors:p,schemaMode:d,onValidate:$}),getCurrentScope()&&onScopeDispose(()=>{b.value?.$unwatch();}),reactive({regle:b})}function et(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(f,p,d){let $=isRef(p)?p:computed(typeof p=="function"?p:()=>p),m={...n,...d},b=isRef(f)?f:ref(f),V=ref({...U(b.value)});return {r$:Ce({scopeRules:$,state:b,options:m,initialState:V,customRules:e,shortcuts:r}).regle}}return l}var Ge=et();function tt(){function e(t,r){return r}return e}var rt=tt();function jt({rules:e,modifiers:t,shortcuts:r}){let n=et(e,t,r),l=tt();return {useRegle:n,inferRules:l}}function Ae(e,t){let r=t??false,n=computed({get:()=>r?Object.values(e).map(o=>o.$value):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$value])),set:o=>{r||typeof o=="object"&&Object.entries(o).forEach(([s,h])=>e[s].$value=h);}}),l=computed({get:()=>Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentValue])),set:o=>{typeof o=="object"&&Object.entries(o).forEach(([s,h])=>e[s].$silentValue=h);}}),f=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$dirty)}),p=computed(()=>Object.entries(e).some(([o,s])=>s?.$anyDirty)),d=computed(()=>Object.entries(e).some(([o,s])=>s?.$invalid)),$=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$correct||h.$anyDirty&&!h.$invalid)}),m=computed(()=>Object.entries(e).some(([o,s])=>s?.$error)),b=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$ready)}),V=computed(()=>Object.entries(e).some(([o,s])=>s?.$pending)),C=computed(()=>r?Object.entries(e).map(([o,s])=>s.$errors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$errors]))),F=computed(()=>r?Object.entries(e).map(([o,s])=>s.$silentErrors):Object.fromEntries(Object.entries(e).map(([o,s])=>[o,s.$silentErrors]))),O=computed(()=>{let o=Object.entries(e);return !!o.length&&o.every(([s,h])=>h?.$edited)}),a=computed(()=>Object.entries(e).some(([o,s])=>s?.$anyEdited)),w=computed(()=>r?Object.values(e):e);function v(o){Object.values(e).forEach(s=>{s.$reset(o);});}function E(){Object.values(e).forEach(o=>{o.$touch();});}function D(o=true){return Object.values(e).map(s=>s.$extractDirtyFields(o))}function i(){Object.values(e).forEach(o=>{o.$clearExternalErrors();});}async function S(){try{let o=n.value;return {valid:(await Promise.allSettled(Object.values(e).map(A=>A.$validate()))).every(A=>A.status==="fulfilled"?A.value.valid===!0:!1),data:o}}catch{return {valid:false,data:n.value}}}return reactive({...!r&&{$silentValue:l},$errors:C,$silentErrors:F,$instances:w,$value:n,$dirty:f,$anyDirty:p,$invalid:d,$correct:$,$error:m,$pending:V,$ready:b,$edited:O,$anyEdited:a,$reset:v,$touch:E,$validate:S,$extractDirtyFields:D,$clearExternalErrors:i})}function _t(e){function t(r){let n=computed(()=>toValue(r));p();let l=ref(d(e.value)),f=reactive({r$:l});function p(){n.value&&!e.value[n.value]&&(e.value[n.value]={});}watch(n,p),watch(e,$=>{l.value=d($);},{deep:true});function d($){if(n.value){let m=$[n.value]??{};return Ae(m,true)}else return Ae($["~~global"]??{},true)}return {r$:f.r$}}return {useCollectScope:t}}function Gt(e,t){let r=t??Ge;return {useScopedRegle:(l,f,p)=>{let{namespace:d,...$}=p??{},m=computed(()=>toValue(d)),b=ref(`${Object.keys(e.value).length+1}-${Se()}`),V=computed(()=>`instance-${b.value}`),{r$:C}=r(l,f,$);O(),$t(F),watch(m,(a,w)=>{F(w),O();}),getCurrentInstance()&&onMounted(()=>{let a=getCurrentInstance();typeof window<"u"&&a?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(a?.proxy?.$el?.parentElement)&&F();});function F(a){let w=a??m.value;w?e.value[w]&&delete e.value[w][V.value]:e.value["~~global"][V.value]&&delete e.value["~~global"][V.value];}function O(){m.value?(e.value[m.value]||(e.value[m.value]={}),e.value[m.value][V.value]=C):(e.value["~~global"]||(e.value["~~global"]={}),e.value["~~global"][V.value]=C);}return {r$:C,dispose:F,register:O}}}}function nt(e){let r=(e?.customStore?()=>(e.customStore&&(e.customStore?.value["~~global"]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value["~~global"]={}),e.customStore):St(()=>ref({"~~global":{}})))(),{useScopedRegle:n}=Gt(r,e?.customUseRegle),{useCollectScope:l}=_t(r);return {useScopedRegle:n,useCollectScope:l}}
|
|
2
2
|
export{Le as InternalRuleType,He as createRule,nt as createScopedUseRegle,jt as defineRegleConfig,rt as inferRules,Ae as mergeRegles,te as unwrapRuleParameters,Ge as useRegle,Ce as useRootStorage};
|
package/dist/regle-core.mjs
CHANGED
|
@@ -613,7 +613,7 @@ function createReactiveRuleStatus({
|
|
|
613
613
|
});
|
|
614
614
|
$unwatchState = watch(scopeState?.$params, () => {
|
|
615
615
|
if (modifiers.$autoDirty.value || modifiers.$rewardEarly.value && scopeState.$fieldError.value) {
|
|
616
|
-
$
|
|
616
|
+
$parse();
|
|
617
617
|
}
|
|
618
618
|
});
|
|
619
619
|
}
|
|
@@ -659,7 +659,7 @@ function createReactiveRuleStatus({
|
|
|
659
659
|
return ruleResult;
|
|
660
660
|
}
|
|
661
661
|
const $computeAsyncDebounce = debounce(computeAsyncResult, $debounce ?? 200);
|
|
662
|
-
async function $
|
|
662
|
+
async function $parse() {
|
|
663
663
|
try {
|
|
664
664
|
$validating.value = true;
|
|
665
665
|
let ruleResult = false;
|
|
@@ -711,7 +711,7 @@ function createReactiveRuleStatus({
|
|
|
711
711
|
$metadata,
|
|
712
712
|
$haveAsync,
|
|
713
713
|
$validating,
|
|
714
|
-
$
|
|
714
|
+
$parse,
|
|
715
715
|
$unwatch,
|
|
716
716
|
$watch,
|
|
717
717
|
$reset
|
|
@@ -1092,7 +1092,7 @@ function createReactiveFieldStatus({
|
|
|
1092
1092
|
}
|
|
1093
1093
|
function $commitHandler() {
|
|
1094
1094
|
Object.values($rules.value).forEach((rule) => {
|
|
1095
|
-
rule.$
|
|
1095
|
+
rule.$parse();
|
|
1096
1096
|
});
|
|
1097
1097
|
}
|
|
1098
1098
|
const $rules = ref({});
|
|
@@ -1128,7 +1128,7 @@ function createReactiveFieldStatus({
|
|
|
1128
1128
|
}
|
|
1129
1129
|
if (!scopeState.$lazy.value && scopeState.$autoDirty.value) {
|
|
1130
1130
|
Object.values($rules.value).forEach((rule) => {
|
|
1131
|
-
return rule.$
|
|
1131
|
+
return rule.$parse();
|
|
1132
1132
|
});
|
|
1133
1133
|
}
|
|
1134
1134
|
if (!fromParent) {
|
|
@@ -1154,16 +1154,16 @@ function createReactiveFieldStatus({
|
|
|
1154
1154
|
if (!scopeState.$dirty.value) {
|
|
1155
1155
|
scopeState.$dirty.value = true;
|
|
1156
1156
|
} else if (scopeState.$autoDirty.value && scopeState.$dirty.value && !scopeState.$pending.value) {
|
|
1157
|
-
return {
|
|
1157
|
+
return { valid: !scopeState.$error.value, data };
|
|
1158
1158
|
}
|
|
1159
1159
|
if (schemaMode) {
|
|
1160
|
-
return {
|
|
1160
|
+
return { valid: !schemaErrors?.value?.length, data };
|
|
1161
1161
|
} else if (isEmpty($rules.value)) {
|
|
1162
|
-
return {
|
|
1162
|
+
return { valid: true, data };
|
|
1163
1163
|
}
|
|
1164
1164
|
const results = await Promise.allSettled(
|
|
1165
1165
|
Object.entries($rules.value).map(([key, rule]) => {
|
|
1166
|
-
return rule.$
|
|
1166
|
+
return rule.$parse();
|
|
1167
1167
|
})
|
|
1168
1168
|
);
|
|
1169
1169
|
const validationResults = results.every((value) => {
|
|
@@ -1173,9 +1173,9 @@ function createReactiveFieldStatus({
|
|
|
1173
1173
|
return false;
|
|
1174
1174
|
}
|
|
1175
1175
|
});
|
|
1176
|
-
return {
|
|
1176
|
+
return { valid: validationResults, data };
|
|
1177
1177
|
} catch (e) {
|
|
1178
|
-
return {
|
|
1178
|
+
return { valid: false, data: state.value };
|
|
1179
1179
|
}
|
|
1180
1180
|
}
|
|
1181
1181
|
function $extractDirtyFields(filterNullishValues = true) {
|
|
@@ -1637,20 +1637,20 @@ function createReactiveCollectionStatus({
|
|
|
1637
1637
|
try {
|
|
1638
1638
|
const results = await Promise.allSettled([
|
|
1639
1639
|
$selfStatus.value.$validate(),
|
|
1640
|
-
...$eachStatus.value.map((
|
|
1641
|
-
return
|
|
1640
|
+
...$eachStatus.value.map((status) => {
|
|
1641
|
+
return status.$validate();
|
|
1642
1642
|
})
|
|
1643
1643
|
]);
|
|
1644
1644
|
const validationResults = results.every((value) => {
|
|
1645
1645
|
if (value.status === "fulfilled") {
|
|
1646
|
-
return value.value.
|
|
1646
|
+
return value.value.valid === true;
|
|
1647
1647
|
} else {
|
|
1648
1648
|
return false;
|
|
1649
1649
|
}
|
|
1650
1650
|
});
|
|
1651
|
-
return {
|
|
1651
|
+
return { valid: validationResults, data };
|
|
1652
1652
|
} catch (e) {
|
|
1653
|
-
return {
|
|
1653
|
+
return { valid: false, data };
|
|
1654
1654
|
}
|
|
1655
1655
|
}
|
|
1656
1656
|
function $clearExternalErrors() {
|
|
@@ -1884,7 +1884,7 @@ function createReactiveNestedStatus({
|
|
|
1884
1884
|
});
|
|
1885
1885
|
});
|
|
1886
1886
|
const $invalid = computed(() => {
|
|
1887
|
-
return Object.entries($fields.value).some(([_, statusOrField]) => {
|
|
1887
|
+
return !!Object.entries($fields.value).length && Object.entries($fields.value).some(([_, statusOrField]) => {
|
|
1888
1888
|
return statusOrField?.$invalid;
|
|
1889
1889
|
});
|
|
1890
1890
|
});
|
|
@@ -1902,7 +1902,11 @@ function createReactiveNestedStatus({
|
|
|
1902
1902
|
}
|
|
1903
1903
|
return false;
|
|
1904
1904
|
});
|
|
1905
|
-
const $error = computed(() =>
|
|
1905
|
+
const $error = computed(() => {
|
|
1906
|
+
return !!Object.entries($fields.value).length && Object.entries($fields.value).some(([_, statusOrField]) => {
|
|
1907
|
+
return statusOrField?.$error;
|
|
1908
|
+
});
|
|
1909
|
+
});
|
|
1906
1910
|
const $rewardEarly = computed(() => {
|
|
1907
1911
|
if (unref(commonArgs.options.rewardEarly) != null) {
|
|
1908
1912
|
return unref(commonArgs.options.rewardEarly);
|
|
@@ -2120,7 +2124,7 @@ function createReactiveNestedStatus({
|
|
|
2120
2124
|
scopeState.$localPending.value = true;
|
|
2121
2125
|
return commonArgs.onValidate();
|
|
2122
2126
|
} else {
|
|
2123
|
-
return {
|
|
2127
|
+
return { valid: false, data: state.value };
|
|
2124
2128
|
}
|
|
2125
2129
|
} else {
|
|
2126
2130
|
const data = state.value;
|
|
@@ -2131,15 +2135,15 @@ function createReactiveNestedStatus({
|
|
|
2131
2135
|
);
|
|
2132
2136
|
const validationResults = results.every((value) => {
|
|
2133
2137
|
if (value.status === "fulfilled") {
|
|
2134
|
-
return value.value.
|
|
2138
|
+
return value.value.valid === true;
|
|
2135
2139
|
} else {
|
|
2136
2140
|
return false;
|
|
2137
2141
|
}
|
|
2138
2142
|
});
|
|
2139
|
-
return {
|
|
2143
|
+
return { valid: validationResults, data };
|
|
2140
2144
|
}
|
|
2141
2145
|
} catch (e) {
|
|
2142
|
-
return {
|
|
2146
|
+
return { valid: false, data: state.value };
|
|
2143
2147
|
} finally {
|
|
2144
2148
|
scopeState.$localPending.value = false;
|
|
2145
2149
|
}
|
|
@@ -2435,14 +2439,14 @@ function mergeRegles(regles, _scoped) {
|
|
|
2435
2439
|
);
|
|
2436
2440
|
const validationResults = results.every((value) => {
|
|
2437
2441
|
if (value.status === "fulfilled") {
|
|
2438
|
-
return value.value.
|
|
2442
|
+
return value.value.valid === true;
|
|
2439
2443
|
} else {
|
|
2440
2444
|
return false;
|
|
2441
2445
|
}
|
|
2442
2446
|
});
|
|
2443
|
-
return {
|
|
2447
|
+
return { valid: validationResults, data };
|
|
2444
2448
|
} catch (e) {
|
|
2445
|
-
return {
|
|
2449
|
+
return { valid: false, data: $value.value };
|
|
2446
2450
|
}
|
|
2447
2451
|
}
|
|
2448
2452
|
return reactive({
|