@mantine/form 9.0.0-alpha.5 → 9.0.0-alpha.7
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/cjs/FormProvider/FormProvider.cjs +26 -21
- package/cjs/FormProvider/FormProvider.cjs.map +1 -1
- package/cjs/_virtual/_rolldown/runtime.cjs +24 -0
- package/cjs/actions/actions.cjs +86 -117
- package/cjs/actions/actions.cjs.map +1 -1
- package/cjs/form-index.cjs +5 -5
- package/cjs/form-index.cjs.map +1 -1
- package/cjs/get-input-on-change/get-input-on-change.cjs +15 -25
- package/cjs/get-input-on-change/get-input-on-change.cjs.map +1 -1
- package/cjs/get-status/get-status.cjs +11 -11
- package/cjs/get-status/get-status.cjs.map +1 -1
- package/cjs/hooks/use-form-errors/filter-errors/filter-errors.cjs +11 -15
- package/cjs/hooks/use-form-errors/filter-errors/filter-errors.cjs.map +1 -1
- package/cjs/hooks/use-form-errors/use-form-errors.cjs +39 -48
- package/cjs/hooks/use-form-errors/use-form-errors.cjs.map +1 -1
- package/cjs/hooks/use-form-list/use-form-list.cjs +47 -51
- package/cjs/hooks/use-form-list/use-form-list.cjs.map +1 -1
- package/cjs/hooks/use-form-status/use-form-status.cjs +95 -128
- package/cjs/hooks/use-form-status/use-form-status.cjs.map +1 -1
- package/cjs/hooks/use-form-validating/use-form-validating.cjs +49 -51
- package/cjs/hooks/use-form-validating/use-form-validating.cjs.map +1 -1
- package/cjs/hooks/use-form-values/use-form-values.cjs +92 -107
- package/cjs/hooks/use-form-values/use-form-values.cjs.map +1 -1
- package/cjs/hooks/use-form-watch/use-form-watch.cjs +41 -57
- package/cjs/hooks/use-form-watch/use-form-watch.cjs.map +1 -1
- package/cjs/index.cjs +35 -38
- package/cjs/lists/change-error-indices.cjs +34 -41
- package/cjs/lists/change-error-indices.cjs.map +1 -1
- package/cjs/lists/clear-list-state.cjs +11 -15
- package/cjs/lists/clear-list-state.cjs.map +1 -1
- package/cjs/lists/reorder-errors.cjs +30 -32
- package/cjs/lists/reorder-errors.cjs.map +1 -1
- package/cjs/paths/get-data-path.cjs +6 -6
- package/cjs/paths/get-data-path.cjs.map +1 -1
- package/cjs/paths/get-path.cjs +14 -19
- package/cjs/paths/get-path.cjs.map +1 -1
- package/cjs/paths/get-splitted-path.cjs +7 -9
- package/cjs/paths/get-splitted-path.cjs.map +1 -1
- package/cjs/paths/insert-path.cjs +12 -15
- package/cjs/paths/insert-path.cjs.map +1 -1
- package/cjs/paths/remove-path.cjs +10 -17
- package/cjs/paths/remove-path.cjs.map +1 -1
- package/cjs/paths/reorder-path.cjs +14 -17
- package/cjs/paths/reorder-path.cjs.map +1 -1
- package/cjs/paths/replace-path.cjs +13 -18
- package/cjs/paths/replace-path.cjs.map +1 -1
- package/cjs/paths/set-path.cjs +22 -26
- package/cjs/paths/set-path.cjs.map +1 -1
- package/cjs/schema-resolver.cjs +24 -0
- package/cjs/schema-resolver.cjs.map +1 -0
- package/cjs/use-field.cjs +94 -131
- package/cjs/use-field.cjs.map +1 -1
- package/cjs/use-form.cjs +316 -379
- package/cjs/use-form.cjs.map +1 -1
- package/cjs/validate/get-rule-for-path.cjs +16 -24
- package/cjs/validate/get-rule-for-path.cjs.map +1 -1
- package/cjs/validate/should-validate-on-change.cjs +10 -17
- package/cjs/validate/should-validate-on-change.cjs.map +1 -1
- package/cjs/validate/validate-field-value.cjs +58 -54
- package/cjs/validate/validate-field-value.cjs.map +1 -1
- package/cjs/validate/validate-values.cjs +77 -108
- package/cjs/validate/validate-values.cjs.map +1 -1
- package/cjs/validators/has-length/has-length.cjs +17 -27
- package/cjs/validators/has-length/has-length.cjs.map +1 -1
- package/cjs/validators/is-email/is-email.cjs +7 -8
- package/cjs/validators/is-email/is-email.cjs.map +1 -1
- package/cjs/validators/is-in-range/is-in-range.cjs +13 -19
- package/cjs/validators/is-in-range/is-in-range.cjs.map +1 -1
- package/cjs/validators/is-json-string/is-json-string.cjs +15 -17
- package/cjs/validators/is-json-string/is-json-string.cjs.map +1 -1
- package/cjs/validators/is-not-empty/is-not-empty.cjs +13 -21
- package/cjs/validators/is-not-empty/is-not-empty.cjs.map +1 -1
- package/cjs/validators/is-not-empty-html/is-not-empty-html.cjs +11 -13
- package/cjs/validators/is-not-empty-html/is-not-empty-html.cjs.map +1 -1
- package/cjs/validators/is-one-of/is-one-of.cjs +9 -9
- package/cjs/validators/is-one-of/is-one-of.cjs.map +1 -1
- package/cjs/validators/is-url/is-url.cjs +25 -33
- package/cjs/validators/is-url/is-url.cjs.map +1 -1
- package/cjs/validators/matches/matches.cjs +10 -12
- package/cjs/validators/matches/matches.cjs.map +1 -1
- package/cjs/validators/matches-field/matches-field.cjs +10 -12
- package/cjs/validators/matches-field/matches-field.cjs.map +1 -1
- package/esm/FormProvider/FormProvider.mjs +25 -19
- package/esm/FormProvider/FormProvider.mjs.map +1 -1
- package/esm/actions/actions.mjs +85 -114
- package/esm/actions/actions.mjs.map +1 -1
- package/esm/form-index.mjs +5 -3
- package/esm/form-index.mjs.map +1 -1
- package/esm/get-input-on-change/get-input-on-change.mjs +15 -23
- package/esm/get-input-on-change/get-input-on-change.mjs.map +1 -1
- package/esm/get-status/get-status.mjs +11 -9
- package/esm/get-status/get-status.mjs.map +1 -1
- package/esm/hooks/use-form-errors/filter-errors/filter-errors.mjs +11 -13
- package/esm/hooks/use-form-errors/filter-errors/filter-errors.mjs.map +1 -1
- package/esm/hooks/use-form-errors/use-form-errors.mjs +38 -46
- package/esm/hooks/use-form-errors/use-form-errors.mjs.map +1 -1
- package/esm/hooks/use-form-list/use-form-list.mjs +46 -49
- package/esm/hooks/use-form-list/use-form-list.mjs.map +1 -1
- package/esm/hooks/use-form-status/use-form-status.mjs +93 -122
- package/esm/hooks/use-form-status/use-form-status.mjs.map +1 -1
- package/esm/hooks/use-form-validating/use-form-validating.mjs +48 -49
- package/esm/hooks/use-form-validating/use-form-validating.mjs.map +1 -1
- package/esm/hooks/use-form-values/use-form-values.mjs +91 -105
- package/esm/hooks/use-form-values/use-form-values.mjs.map +1 -1
- package/esm/hooks/use-form-watch/use-form-watch.mjs +40 -55
- package/esm/hooks/use-form-watch/use-form-watch.mjs.map +1 -1
- package/esm/index.mjs +18 -17
- package/esm/lists/change-error-indices.mjs +34 -39
- package/esm/lists/change-error-indices.mjs.map +1 -1
- package/esm/lists/clear-list-state.mjs +11 -13
- package/esm/lists/clear-list-state.mjs.map +1 -1
- package/esm/lists/reorder-errors.mjs +30 -30
- package/esm/lists/reorder-errors.mjs.map +1 -1
- package/esm/paths/get-data-path.mjs +6 -4
- package/esm/paths/get-data-path.mjs.map +1 -1
- package/esm/paths/get-path.mjs +14 -17
- package/esm/paths/get-path.mjs.map +1 -1
- package/esm/paths/get-splitted-path.mjs +7 -7
- package/esm/paths/get-splitted-path.mjs.map +1 -1
- package/esm/paths/insert-path.mjs +12 -13
- package/esm/paths/insert-path.mjs.map +1 -1
- package/esm/paths/remove-path.mjs +10 -15
- package/esm/paths/remove-path.mjs.map +1 -1
- package/esm/paths/reorder-path.mjs +14 -15
- package/esm/paths/reorder-path.mjs.map +1 -1
- package/esm/paths/replace-path.mjs +13 -16
- package/esm/paths/replace-path.mjs.map +1 -1
- package/esm/paths/set-path.mjs +21 -24
- package/esm/paths/set-path.mjs.map +1 -1
- package/esm/schema-resolver.mjs +24 -0
- package/esm/schema-resolver.mjs.map +1 -0
- package/esm/use-field.mjs +93 -129
- package/esm/use-field.mjs.map +1 -1
- package/esm/use-form.mjs +315 -377
- package/esm/use-form.mjs.map +1 -1
- package/esm/validate/get-rule-for-path.mjs +16 -22
- package/esm/validate/get-rule-for-path.mjs.map +1 -1
- package/esm/validate/should-validate-on-change.mjs +10 -15
- package/esm/validate/should-validate-on-change.mjs.map +1 -1
- package/esm/validate/validate-field-value.mjs +58 -52
- package/esm/validate/validate-field-value.mjs.map +1 -1
- package/esm/validate/validate-values.mjs +77 -106
- package/esm/validate/validate-values.mjs.map +1 -1
- package/esm/validators/has-length/has-length.mjs +17 -25
- package/esm/validators/has-length/has-length.mjs.map +1 -1
- package/esm/validators/is-email/is-email.mjs +7 -6
- package/esm/validators/is-email/is-email.mjs.map +1 -1
- package/esm/validators/is-in-range/is-in-range.mjs +13 -17
- package/esm/validators/is-in-range/is-in-range.mjs.map +1 -1
- package/esm/validators/is-json-string/is-json-string.mjs +15 -15
- package/esm/validators/is-json-string/is-json-string.mjs.map +1 -1
- package/esm/validators/is-not-empty/is-not-empty.mjs +13 -19
- package/esm/validators/is-not-empty/is-not-empty.mjs.map +1 -1
- package/esm/validators/is-not-empty-html/is-not-empty-html.mjs +11 -11
- package/esm/validators/is-not-empty-html/is-not-empty-html.mjs.map +1 -1
- package/esm/validators/is-one-of/is-one-of.mjs +9 -7
- package/esm/validators/is-one-of/is-one-of.mjs.map +1 -1
- package/esm/validators/is-url/is-url.mjs +25 -31
- package/esm/validators/is-url/is-url.mjs.map +1 -1
- package/esm/validators/matches/matches.mjs +10 -10
- package/esm/validators/matches/matches.mjs.map +1 -1
- package/esm/validators/matches-field/matches-field.mjs +10 -10
- package/esm/validators/matches-field/matches-field.mjs.map +1 -1
- package/lib/hooks/use-form-status/use-form-status.d.ts +2 -2
- package/lib/hooks/use-form-values/use-form-values.d.ts +9 -9
- package/lib/hooks/use-form-watch/use-form-watch.d.ts +5 -5
- package/lib/index.d.mts +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/schema-resolver.d.ts +5 -0
- package/lib/types.d.ts +19 -18
- package/package.json +5 -1
- package/cjs/index.cjs.map +0 -1
- package/esm/index.mjs.map +0 -1
|
@@ -1,114 +1,85 @@
|
|
|
1
|
-
|
|
2
|
-
import { filterErrors } from
|
|
3
|
-
import { getPath } from
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const formRootRule = /* @__PURE__ */ Symbol("root-rule");
|
|
1
|
+
"use client";
|
|
2
|
+
import { filterErrors } from "../hooks/use-form-errors/filter-errors/filter-errors.mjs";
|
|
3
|
+
import { getPath } from "../paths/get-path.mjs";
|
|
4
|
+
//#region packages/@mantine/form/src/validate/validate-values.ts
|
|
5
|
+
const formRootRule = Symbol("root-rule");
|
|
7
6
|
function getValidationResults(errors) {
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
const filteredErrors = filterErrors(errors);
|
|
8
|
+
return {
|
|
9
|
+
hasErrors: Object.keys(filteredErrors).length > 0,
|
|
10
|
+
errors: filteredErrors
|
|
11
|
+
};
|
|
10
12
|
}
|
|
11
13
|
function validateRulesRecord(rules, values, resolveValidationError, signal, path = "", errors = {}) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
if (formRootRule in rule) {
|
|
69
|
-
const rootResult = rule[formRootRule](value, values, rulePath, signal);
|
|
70
|
-
if (rootResult instanceof Promise) {
|
|
71
|
-
asyncTasks.push({ rulePath, promise: rootResult });
|
|
72
|
-
} else {
|
|
73
|
-
errors[rulePath] = rootResult;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
if (asyncTasks.length === 0 && pendingRecursions.length === 0) {
|
|
79
|
-
return errors;
|
|
80
|
-
}
|
|
81
|
-
return (async () => {
|
|
82
|
-
await Promise.all(pendingRecursions);
|
|
83
|
-
if (asyncTasks.length > 0) {
|
|
84
|
-
const settled = await Promise.allSettled(asyncTasks.map((t) => t.promise));
|
|
85
|
-
settled.forEach((result, index) => {
|
|
86
|
-
const { rulePath } = asyncTasks[index];
|
|
87
|
-
if (result.status === "fulfilled") {
|
|
88
|
-
errors[rulePath] = result.value;
|
|
89
|
-
} else {
|
|
90
|
-
errors[rulePath] = resolveValidationError(result.reason);
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
return errors;
|
|
95
|
-
})();
|
|
14
|
+
if (typeof rules !== "object" || rules === null) return errors;
|
|
15
|
+
const asyncTasks = [];
|
|
16
|
+
const pendingRecursions = [];
|
|
17
|
+
for (const ruleKey of Object.keys(rules)) {
|
|
18
|
+
const rule = rules[ruleKey];
|
|
19
|
+
const rulePath = `${path === "" ? "" : `${path}.`}${ruleKey}`;
|
|
20
|
+
const value = getPath(rulePath, values);
|
|
21
|
+
let arrayValidation = false;
|
|
22
|
+
if (typeof rule === "function") {
|
|
23
|
+
const result = rule(value, values, rulePath, signal);
|
|
24
|
+
if (result instanceof Promise) asyncTasks.push({
|
|
25
|
+
rulePath,
|
|
26
|
+
promise: result
|
|
27
|
+
});
|
|
28
|
+
else errors[rulePath] = result;
|
|
29
|
+
}
|
|
30
|
+
if (typeof rule === "object" && Array.isArray(value)) {
|
|
31
|
+
arrayValidation = true;
|
|
32
|
+
for (let index = 0; index < value.length; index++) {
|
|
33
|
+
const recursionResult = validateRulesRecord(rule, values, resolveValidationError, signal, `${rulePath}.${index}`, errors);
|
|
34
|
+
if (recursionResult instanceof Promise) pendingRecursions.push(recursionResult);
|
|
35
|
+
}
|
|
36
|
+
if (formRootRule in rule) {
|
|
37
|
+
const rootResult = rule[formRootRule](value, values, rulePath, signal);
|
|
38
|
+
if (rootResult instanceof Promise) asyncTasks.push({
|
|
39
|
+
rulePath,
|
|
40
|
+
promise: rootResult
|
|
41
|
+
});
|
|
42
|
+
else errors[rulePath] = rootResult;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (typeof rule === "object" && typeof value === "object" && value !== null) {
|
|
46
|
+
if (!arrayValidation) {
|
|
47
|
+
const recursionResult = validateRulesRecord(rule, values, resolveValidationError, signal, rulePath, errors);
|
|
48
|
+
if (recursionResult instanceof Promise) pendingRecursions.push(recursionResult);
|
|
49
|
+
}
|
|
50
|
+
if (formRootRule in rule) {
|
|
51
|
+
const rootResult = rule[formRootRule](value, values, rulePath, signal);
|
|
52
|
+
if (rootResult instanceof Promise) asyncTasks.push({
|
|
53
|
+
rulePath,
|
|
54
|
+
promise: rootResult
|
|
55
|
+
});
|
|
56
|
+
else errors[rulePath] = rootResult;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (asyncTasks.length === 0 && pendingRecursions.length === 0) return errors;
|
|
61
|
+
return (async () => {
|
|
62
|
+
await Promise.all(pendingRecursions);
|
|
63
|
+
if (asyncTasks.length > 0) (await Promise.allSettled(asyncTasks.map((t) => t.promise))).forEach((result, index) => {
|
|
64
|
+
const { rulePath } = asyncTasks[index];
|
|
65
|
+
if (result.status === "fulfilled") errors[rulePath] = result.value;
|
|
66
|
+
else errors[rulePath] = resolveValidationError(result.reason);
|
|
67
|
+
});
|
|
68
|
+
return errors;
|
|
69
|
+
})();
|
|
96
70
|
}
|
|
97
71
|
const defaultResolveError = (err) => err instanceof Error ? err.message : String(err);
|
|
98
72
|
function validateValues(validate, values, resolveValidationError = defaultResolveError, signal = new AbortController().signal) {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
if (errorsResult instanceof Promise) {
|
|
108
|
-
return errorsResult.then(getValidationResults);
|
|
109
|
-
}
|
|
110
|
-
return getValidationResults(errorsResult);
|
|
73
|
+
if (typeof validate === "function") {
|
|
74
|
+
const result = validate(values);
|
|
75
|
+
if (result instanceof Promise) return result.then(getValidationResults);
|
|
76
|
+
return getValidationResults(result);
|
|
77
|
+
}
|
|
78
|
+
const errorsResult = validateRulesRecord(validate, values, resolveValidationError, signal);
|
|
79
|
+
if (errorsResult instanceof Promise) return errorsResult.then(getValidationResults);
|
|
80
|
+
return getValidationResults(errorsResult);
|
|
111
81
|
}
|
|
112
|
-
|
|
82
|
+
//#endregion
|
|
113
83
|
export { formRootRule, validateValues };
|
|
114
|
-
|
|
84
|
+
|
|
85
|
+
//# sourceMappingURL=validate-values.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-values.mjs","sources":["../../src/validate/validate-values.ts"],"sourcesContent":["import { filterErrors } from '../hooks/use-form-errors/filter-errors/filter-errors';\nimport { getPath } from '../paths';\nimport {\n FormErrors,\n FormRule,\n FormRulesRecord,\n FormValidateInput,\n FormValidationResult,\n} from '../types';\n\nexport const formRootRule = Symbol('root-rule');\n\nfunction getValidationResults(errors: FormErrors): FormValidationResult {\n const filteredErrors = filterErrors(errors);\n return { hasErrors: Object.keys(filteredErrors).length > 0, errors: filteredErrors };\n}\n\nfunction validateRulesRecord<T>(\n rules: FormRulesRecord<T> | undefined,\n values: T,\n resolveValidationError: (error: unknown) => React.ReactNode,\n signal: AbortSignal,\n path = '',\n errors: FormErrors = {}\n): FormErrors | Promise<FormErrors> {\n if (typeof rules !== 'object' || rules === null) {\n return errors;\n }\n\n const asyncTasks: Array<{ rulePath: string; promise: Promise<React.ReactNode> }> = [];\n const pendingRecursions: Array<Promise<FormErrors>> = [];\n\n for (const ruleKey of Object.keys(rules)) {\n const rule: FormRule<any, any> = (rules as any)[ruleKey];\n const rulePath = `${path === '' ? '' : `${path}.`}${ruleKey}`;\n const value = getPath(rulePath, values);\n let arrayValidation = false;\n\n if (typeof rule === 'function') {\n const result = rule(value, values, rulePath, signal);\n if (result instanceof Promise) {\n asyncTasks.push({ rulePath, promise: result });\n } else {\n errors[rulePath] = result;\n }\n }\n\n if (typeof rule === 'object' && Array.isArray(value)) {\n arrayValidation = true;\n for (let index = 0; index < value.length; index++) {\n const recursionResult = validateRulesRecord(\n rule,\n values,\n resolveValidationError,\n signal,\n `${rulePath}.${index}`,\n errors\n );\n if (recursionResult instanceof Promise) {\n pendingRecursions.push(recursionResult);\n }\n }\n\n if (formRootRule in rule) {\n const rootResult = (rule as any)[formRootRule](value, values, rulePath, signal);\n if (rootResult instanceof Promise) {\n asyncTasks.push({ rulePath, promise: rootResult });\n } else {\n errors[rulePath] = rootResult;\n }\n }\n }\n\n if (typeof rule === 'object' && typeof value === 'object' && value !== null) {\n if (!arrayValidation) {\n const recursionResult = validateRulesRecord(\n rule,\n values,\n resolveValidationError,\n signal,\n rulePath,\n errors\n );\n if (recursionResult instanceof Promise) {\n pendingRecursions.push(recursionResult);\n }\n }\n\n if (formRootRule in rule) {\n const rootResult = (rule as any)[formRootRule](value, values, rulePath, signal);\n if (rootResult instanceof Promise) {\n asyncTasks.push({ rulePath, promise: rootResult });\n } else {\n errors[rulePath] = rootResult;\n }\n }\n }\n }\n\n if (asyncTasks.length === 0 && pendingRecursions.length === 0) {\n return errors;\n }\n\n return (async () => {\n await Promise.all(pendingRecursions);\n\n if (asyncTasks.length > 0) {\n const settled = await Promise.allSettled(asyncTasks.map((t) => t.promise));\n settled.forEach((result, index) => {\n const { rulePath } = asyncTasks[index];\n if (result.status === 'fulfilled') {\n errors[rulePath] = result.value;\n } else {\n errors[rulePath] = resolveValidationError(result.reason);\n }\n });\n }\n\n return errors;\n })();\n}\n\nconst defaultResolveError = (err: unknown): React.ReactNode =>\n err instanceof Error ? err.message : String(err);\n\nexport function validateValues<T>(\n validate: FormValidateInput<T> | undefined,\n values: T,\n resolveValidationError: (error: unknown) => React.ReactNode = defaultResolveError,\n signal: AbortSignal = new AbortController().signal\n): FormValidationResult | Promise<FormValidationResult> {\n if (typeof validate === 'function') {\n const result = validate(values);\n if (result instanceof Promise) {\n return result.then(getValidationResults);\n }\n return getValidationResults(result);\n }\n\n const errorsResult = validateRulesRecord(validate, values, resolveValidationError, signal);\n if (errorsResult instanceof Promise) {\n return errorsResult.then(getValidationResults);\n }\n return getValidationResults(errorsResult);\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validate-values.mjs","names":[],"sources":["../../src/validate/validate-values.ts"],"sourcesContent":["import { filterErrors } from '../hooks/use-form-errors/filter-errors/filter-errors';\nimport { getPath } from '../paths';\nimport {\n FormErrors,\n FormRule,\n FormRulesRecord,\n FormValidateInput,\n FormValidationResult,\n} from '../types';\n\nexport const formRootRule = Symbol('root-rule');\n\nfunction getValidationResults(errors: FormErrors): FormValidationResult {\n const filteredErrors = filterErrors(errors);\n return { hasErrors: Object.keys(filteredErrors).length > 0, errors: filteredErrors };\n}\n\nfunction validateRulesRecord<T>(\n rules: FormRulesRecord<T> | undefined,\n values: T,\n resolveValidationError: (error: unknown) => React.ReactNode,\n signal: AbortSignal,\n path = '',\n errors: FormErrors = {}\n): FormErrors | Promise<FormErrors> {\n if (typeof rules !== 'object' || rules === null) {\n return errors;\n }\n\n const asyncTasks: Array<{ rulePath: string; promise: Promise<React.ReactNode> }> = [];\n const pendingRecursions: Array<Promise<FormErrors>> = [];\n\n for (const ruleKey of Object.keys(rules)) {\n const rule: FormRule<any, any> = (rules as any)[ruleKey];\n const rulePath = `${path === '' ? '' : `${path}.`}${ruleKey}`;\n const value = getPath(rulePath, values);\n let arrayValidation = false;\n\n if (typeof rule === 'function') {\n const result = rule(value, values, rulePath, signal);\n if (result instanceof Promise) {\n asyncTasks.push({ rulePath, promise: result });\n } else {\n errors[rulePath] = result;\n }\n }\n\n if (typeof rule === 'object' && Array.isArray(value)) {\n arrayValidation = true;\n for (let index = 0; index < value.length; index++) {\n const recursionResult = validateRulesRecord(\n rule,\n values,\n resolveValidationError,\n signal,\n `${rulePath}.${index}`,\n errors\n );\n if (recursionResult instanceof Promise) {\n pendingRecursions.push(recursionResult);\n }\n }\n\n if (formRootRule in rule) {\n const rootResult = (rule as any)[formRootRule](value, values, rulePath, signal);\n if (rootResult instanceof Promise) {\n asyncTasks.push({ rulePath, promise: rootResult });\n } else {\n errors[rulePath] = rootResult;\n }\n }\n }\n\n if (typeof rule === 'object' && typeof value === 'object' && value !== null) {\n if (!arrayValidation) {\n const recursionResult = validateRulesRecord(\n rule,\n values,\n resolveValidationError,\n signal,\n rulePath,\n errors\n );\n if (recursionResult instanceof Promise) {\n pendingRecursions.push(recursionResult);\n }\n }\n\n if (formRootRule in rule) {\n const rootResult = (rule as any)[formRootRule](value, values, rulePath, signal);\n if (rootResult instanceof Promise) {\n asyncTasks.push({ rulePath, promise: rootResult });\n } else {\n errors[rulePath] = rootResult;\n }\n }\n }\n }\n\n if (asyncTasks.length === 0 && pendingRecursions.length === 0) {\n return errors;\n }\n\n return (async () => {\n await Promise.all(pendingRecursions);\n\n if (asyncTasks.length > 0) {\n const settled = await Promise.allSettled(asyncTasks.map((t) => t.promise));\n settled.forEach((result, index) => {\n const { rulePath } = asyncTasks[index];\n if (result.status === 'fulfilled') {\n errors[rulePath] = result.value;\n } else {\n errors[rulePath] = resolveValidationError(result.reason);\n }\n });\n }\n\n return errors;\n })();\n}\n\nconst defaultResolveError = (err: unknown): React.ReactNode =>\n err instanceof Error ? err.message : String(err);\n\nexport function validateValues<T>(\n validate: FormValidateInput<T> | undefined,\n values: T,\n resolveValidationError: (error: unknown) => React.ReactNode = defaultResolveError,\n signal: AbortSignal = new AbortController().signal\n): FormValidationResult | Promise<FormValidationResult> {\n if (typeof validate === 'function') {\n const result = validate(values);\n if (result instanceof Promise) {\n return result.then(getValidationResults);\n }\n return getValidationResults(result);\n }\n\n const errorsResult = validateRulesRecord(validate, values, resolveValidationError, signal);\n if (errorsResult instanceof Promise) {\n return errorsResult.then(getValidationResults);\n }\n return getValidationResults(errorsResult);\n}\n"],"mappings":";;;;AAUA,MAAa,eAAe,OAAO,YAAY;AAE/C,SAAS,qBAAqB,QAA0C;CACtE,MAAM,iBAAiB,aAAa,OAAO;AAC3C,QAAO;EAAE,WAAW,OAAO,KAAK,eAAe,CAAC,SAAS;EAAG,QAAQ;EAAgB;;AAGtF,SAAS,oBACP,OACA,QACA,wBACA,QACA,OAAO,IACP,SAAqB,EAAE,EACW;AAClC,KAAI,OAAO,UAAU,YAAY,UAAU,KACzC,QAAO;CAGT,MAAM,aAA6E,EAAE;CACrF,MAAM,oBAAgD,EAAE;AAExD,MAAK,MAAM,WAAW,OAAO,KAAK,MAAM,EAAE;EACxC,MAAM,OAA4B,MAAc;EAChD,MAAM,WAAW,GAAG,SAAS,KAAK,KAAK,GAAG,KAAK,KAAK;EACpD,MAAM,QAAQ,QAAQ,UAAU,OAAO;EACvC,IAAI,kBAAkB;AAEtB,MAAI,OAAO,SAAS,YAAY;GAC9B,MAAM,SAAS,KAAK,OAAO,QAAQ,UAAU,OAAO;AACpD,OAAI,kBAAkB,QACpB,YAAW,KAAK;IAAE;IAAU,SAAS;IAAQ,CAAC;OAE9C,QAAO,YAAY;;AAIvB,MAAI,OAAO,SAAS,YAAY,MAAM,QAAQ,MAAM,EAAE;AACpD,qBAAkB;AAClB,QAAK,IAAI,QAAQ,GAAG,QAAQ,MAAM,QAAQ,SAAS;IACjD,MAAM,kBAAkB,oBACtB,MACA,QACA,wBACA,QACA,GAAG,SAAS,GAAG,SACf,OACD;AACD,QAAI,2BAA2B,QAC7B,mBAAkB,KAAK,gBAAgB;;AAI3C,OAAI,gBAAgB,MAAM;IACxB,MAAM,aAAc,KAAa,cAAc,OAAO,QAAQ,UAAU,OAAO;AAC/E,QAAI,sBAAsB,QACxB,YAAW,KAAK;KAAE;KAAU,SAAS;KAAY,CAAC;QAElD,QAAO,YAAY;;;AAKzB,MAAI,OAAO,SAAS,YAAY,OAAO,UAAU,YAAY,UAAU,MAAM;AAC3E,OAAI,CAAC,iBAAiB;IACpB,MAAM,kBAAkB,oBACtB,MACA,QACA,wBACA,QACA,UACA,OACD;AACD,QAAI,2BAA2B,QAC7B,mBAAkB,KAAK,gBAAgB;;AAI3C,OAAI,gBAAgB,MAAM;IACxB,MAAM,aAAc,KAAa,cAAc,OAAO,QAAQ,UAAU,OAAO;AAC/E,QAAI,sBAAsB,QACxB,YAAW,KAAK;KAAE;KAAU,SAAS;KAAY,CAAC;QAElD,QAAO,YAAY;;;;AAM3B,KAAI,WAAW,WAAW,KAAK,kBAAkB,WAAW,EAC1D,QAAO;AAGT,SAAQ,YAAY;AAClB,QAAM,QAAQ,IAAI,kBAAkB;AAEpC,MAAI,WAAW,SAAS,EAEtB,EADgB,MAAM,QAAQ,WAAW,WAAW,KAAK,MAAM,EAAE,QAAQ,CAAC,EAClE,SAAS,QAAQ,UAAU;GACjC,MAAM,EAAE,aAAa,WAAW;AAChC,OAAI,OAAO,WAAW,YACpB,QAAO,YAAY,OAAO;OAE1B,QAAO,YAAY,uBAAuB,OAAO,OAAO;IAE1D;AAGJ,SAAO;KACL;;AAGN,MAAM,uBAAuB,QAC3B,eAAe,QAAQ,IAAI,UAAU,OAAO,IAAI;AAElD,SAAgB,eACd,UACA,QACA,yBAA8D,qBAC9D,SAAsB,IAAI,iBAAiB,CAAC,QACU;AACtD,KAAI,OAAO,aAAa,YAAY;EAClC,MAAM,SAAS,SAAS,OAAO;AAC/B,MAAI,kBAAkB,QACpB,QAAO,OAAO,KAAK,qBAAqB;AAE1C,SAAO,qBAAqB,OAAO;;CAGrC,MAAM,eAAe,oBAAoB,UAAU,QAAQ,wBAAwB,OAAO;AAC1F,KAAI,wBAAwB,QAC1B,QAAO,aAAa,KAAK,qBAAqB;AAEhD,QAAO,qBAAqB,aAAa"}
|
|
@@ -1,30 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
|
+
//#region packages/@mantine/form/src/validators/has-length/has-length.ts
|
|
2
3
|
function isLengthValid(payload, value) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
valid = false;
|
|
10
|
-
}
|
|
11
|
-
if (typeof min === "number" && value.length < min) {
|
|
12
|
-
valid = false;
|
|
13
|
-
}
|
|
14
|
-
return valid;
|
|
4
|
+
if (typeof payload === "number") return value.length === payload;
|
|
5
|
+
const { max, min } = payload;
|
|
6
|
+
let valid = true;
|
|
7
|
+
if (typeof max === "number" && value.length > max) valid = false;
|
|
8
|
+
if (typeof min === "number" && value.length < min) valid = false;
|
|
9
|
+
return valid;
|
|
15
10
|
}
|
|
16
11
|
function hasLength(payload, error) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
return isLengthValid(payload, value) ? null : _error;
|
|
24
|
-
}
|
|
25
|
-
return _error;
|
|
26
|
-
};
|
|
12
|
+
const _error = error || true;
|
|
13
|
+
return (value) => {
|
|
14
|
+
if (typeof value === "string") return isLengthValid(payload, value.trim()) ? null : _error;
|
|
15
|
+
if (typeof value === "object" && value !== null && "length" in value) return isLengthValid(payload, value) ? null : _error;
|
|
16
|
+
return _error;
|
|
17
|
+
};
|
|
27
18
|
}
|
|
28
|
-
|
|
19
|
+
//#endregion
|
|
29
20
|
export { hasLength };
|
|
30
|
-
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=has-length.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-length.mjs","sources":["../../../src/validators/has-length/has-length.ts"],"sourcesContent":["interface HasLengthOptions {\n max?: number;\n min?: number;\n}\n\ntype HasLengthPayload = HasLengthOptions | number;\n\nfunction isLengthValid(payload: HasLengthPayload, value: any) {\n if (typeof payload === 'number') {\n return value.length === payload;\n }\n\n const { max, min } = payload;\n let valid = true;\n\n if (typeof max === 'number' && value.length > max) {\n valid = false;\n }\n\n if (typeof min === 'number' && value.length < min) {\n valid = false;\n }\n\n return valid;\n}\n\nexport function hasLength(payload: HasLengthPayload, error?: React.ReactNode) {\n const _error = error || true;\n\n return (value: unknown): React.ReactNode => {\n if (typeof value === 'string') {\n return isLengthValid(payload, value.trim()) ? null : _error;\n }\n\n if (typeof value === 'object' && value !== null && 'length' in value) {\n return isLengthValid(payload, value) ? null : _error;\n }\n\n return _error;\n };\n}\n"],"
|
|
1
|
+
{"version":3,"file":"has-length.mjs","names":[],"sources":["../../../src/validators/has-length/has-length.ts"],"sourcesContent":["interface HasLengthOptions {\n max?: number;\n min?: number;\n}\n\ntype HasLengthPayload = HasLengthOptions | number;\n\nfunction isLengthValid(payload: HasLengthPayload, value: any) {\n if (typeof payload === 'number') {\n return value.length === payload;\n }\n\n const { max, min } = payload;\n let valid = true;\n\n if (typeof max === 'number' && value.length > max) {\n valid = false;\n }\n\n if (typeof min === 'number' && value.length < min) {\n valid = false;\n }\n\n return valid;\n}\n\nexport function hasLength(payload: HasLengthPayload, error?: React.ReactNode) {\n const _error = error || true;\n\n return (value: unknown): React.ReactNode => {\n if (typeof value === 'string') {\n return isLengthValid(payload, value.trim()) ? null : _error;\n }\n\n if (typeof value === 'object' && value !== null && 'length' in value) {\n return isLengthValid(payload, value) ? null : _error;\n }\n\n return _error;\n };\n}\n"],"mappings":";;AAOA,SAAS,cAAc,SAA2B,OAAY;AAC5D,KAAI,OAAO,YAAY,SACrB,QAAO,MAAM,WAAW;CAG1B,MAAM,EAAE,KAAK,QAAQ;CACrB,IAAI,QAAQ;AAEZ,KAAI,OAAO,QAAQ,YAAY,MAAM,SAAS,IAC5C,SAAQ;AAGV,KAAI,OAAO,QAAQ,YAAY,MAAM,SAAS,IAC5C,SAAQ;AAGV,QAAO;;AAGT,SAAgB,UAAU,SAA2B,OAAyB;CAC5E,MAAM,SAAS,SAAS;AAExB,SAAQ,UAAoC;AAC1C,MAAI,OAAO,UAAU,SACnB,QAAO,cAAc,SAAS,MAAM,MAAM,CAAC,GAAG,OAAO;AAGvD,MAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,YAAY,MAC7D,QAAO,cAAc,SAAS,MAAM,GAAG,OAAO;AAGhD,SAAO"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
import { matches } from
|
|
3
|
-
|
|
1
|
+
"use client";
|
|
2
|
+
import { matches } from "../matches/matches.mjs";
|
|
3
|
+
//#region packages/@mantine/form/src/validators/is-email/is-email.ts
|
|
4
4
|
function isEmail(error) {
|
|
5
|
-
|
|
5
|
+
return matches(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/, error);
|
|
6
6
|
}
|
|
7
|
-
|
|
7
|
+
//#endregion
|
|
8
8
|
export { isEmail };
|
|
9
|
-
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=is-email.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-email.mjs","sources":["../../../src/validators/is-email/is-email.ts"],"sourcesContent":["import { matches } from '../matches/matches';\n\nexport function isEmail(error?: React.ReactNode) {\n return matches(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/, error);\n}\n"],"
|
|
1
|
+
{"version":3,"file":"is-email.mjs","names":[],"sources":["../../../src/validators/is-email/is-email.ts"],"sourcesContent":["import { matches } from '../matches/matches';\n\nexport function isEmail(error?: React.ReactNode) {\n return matches(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/, error);\n}\n"],"mappings":";;;AAEA,SAAgB,QAAQ,OAAyB;AAC/C,QAAO,QAAQ,oDAAoD,MAAM"}
|
|
@@ -1,20 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
|
+
//#region packages/@mantine/form/src/validators/is-in-range/is-in-range.ts
|
|
2
3
|
function isInRange({ min, max }, error) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
if (typeof max === "number" && value > max) {
|
|
13
|
-
valid = false;
|
|
14
|
-
}
|
|
15
|
-
return valid ? null : _error;
|
|
16
|
-
};
|
|
4
|
+
const _error = error || true;
|
|
5
|
+
return (value) => {
|
|
6
|
+
if (typeof value !== "number") return _error;
|
|
7
|
+
let valid = true;
|
|
8
|
+
if (typeof min === "number" && value < min) valid = false;
|
|
9
|
+
if (typeof max === "number" && value > max) valid = false;
|
|
10
|
+
return valid ? null : _error;
|
|
11
|
+
};
|
|
17
12
|
}
|
|
18
|
-
|
|
13
|
+
//#endregion
|
|
19
14
|
export { isInRange };
|
|
20
|
-
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=is-in-range.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-in-range.mjs","sources":["../../../src/validators/is-in-range/is-in-range.ts"],"sourcesContent":["interface IsInRangePayload {\n min?: number;\n max?: number;\n}\n\nexport function isInRange({ min, max }: IsInRangePayload, error?: React.ReactNode) {\n const _error = error || true;\n\n return (value: unknown): React.ReactNode => {\n if (typeof value !== 'number') {\n return _error;\n }\n\n let valid = true;\n\n if (typeof min === 'number' && value < min) {\n valid = false;\n }\n\n if (typeof max === 'number' && value > max) {\n valid = false;\n }\n\n return valid ? null : _error;\n };\n}\n"],"
|
|
1
|
+
{"version":3,"file":"is-in-range.mjs","names":[],"sources":["../../../src/validators/is-in-range/is-in-range.ts"],"sourcesContent":["interface IsInRangePayload {\n min?: number;\n max?: number;\n}\n\nexport function isInRange({ min, max }: IsInRangePayload, error?: React.ReactNode) {\n const _error = error || true;\n\n return (value: unknown): React.ReactNode => {\n if (typeof value !== 'number') {\n return _error;\n }\n\n let valid = true;\n\n if (typeof min === 'number' && value < min) {\n valid = false;\n }\n\n if (typeof max === 'number' && value > max) {\n valid = false;\n }\n\n return valid ? null : _error;\n };\n}\n"],"mappings":";;AAKA,SAAgB,UAAU,EAAE,KAAK,OAAyB,OAAyB;CACjF,MAAM,SAAS,SAAS;AAExB,SAAQ,UAAoC;AAC1C,MAAI,OAAO,UAAU,SACnB,QAAO;EAGT,IAAI,QAAQ;AAEZ,MAAI,OAAO,QAAQ,YAAY,QAAQ,IACrC,SAAQ;AAGV,MAAI,OAAO,QAAQ,YAAY,QAAQ,IACrC,SAAQ;AAGV,SAAO,QAAQ,OAAO"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
|
+
//#region packages/@mantine/form/src/validators/is-json-string/is-json-string.ts
|
|
2
3
|
function isJSONString(error) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return _error;
|
|
14
|
-
};
|
|
4
|
+
const _error = error || true;
|
|
5
|
+
return (value) => {
|
|
6
|
+
if (typeof value === "string") try {
|
|
7
|
+
JSON.parse(value);
|
|
8
|
+
return null;
|
|
9
|
+
} catch (e) {
|
|
10
|
+
return _error;
|
|
11
|
+
}
|
|
12
|
+
return _error;
|
|
13
|
+
};
|
|
15
14
|
}
|
|
16
|
-
|
|
15
|
+
//#endregion
|
|
17
16
|
export { isJSONString };
|
|
18
|
-
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=is-json-string.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-json-string.mjs","sources":["../../../src/validators/is-json-string/is-json-string.ts"],"sourcesContent":["export function isJSONString(error?: React.ReactNode) {\n const _error = error || true;\n\n return (value: unknown): React.ReactNode => {\n if (typeof value === 'string') {\n try {\n JSON.parse(value);\n return null;\n } catch (e) {\n return _error;\n }\n }\n\n return _error;\n };\n}\n"],"
|
|
1
|
+
{"version":3,"file":"is-json-string.mjs","names":[],"sources":["../../../src/validators/is-json-string/is-json-string.ts"],"sourcesContent":["export function isJSONString(error?: React.ReactNode) {\n const _error = error || true;\n\n return (value: unknown): React.ReactNode => {\n if (typeof value === 'string') {\n try {\n JSON.parse(value);\n return null;\n } catch (e) {\n return _error;\n }\n }\n\n return _error;\n };\n}\n"],"mappings":";;AAAA,SAAgB,aAAa,OAAyB;CACpD,MAAM,SAAS,SAAS;AAExB,SAAQ,UAAoC;AAC1C,MAAI,OAAO,UAAU,SACnB,KAAI;AACF,QAAK,MAAM,MAAM;AACjB,UAAO;WACA,GAAG;AACV,UAAO;;AAIX,SAAO"}
|
|
@@ -1,22 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
|
+
//#region packages/@mantine/form/src/validators/is-not-empty/is-not-empty.ts
|
|
2
3
|
function isNotEmpty(error) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
if (value === null || value === void 0) {
|
|
12
|
-
return _error;
|
|
13
|
-
}
|
|
14
|
-
if (value === false) {
|
|
15
|
-
return _error;
|
|
16
|
-
}
|
|
17
|
-
return null;
|
|
18
|
-
};
|
|
4
|
+
const _error = error || true;
|
|
5
|
+
return (value) => {
|
|
6
|
+
if (typeof value === "string") return value.trim().length > 0 ? null : _error;
|
|
7
|
+
if (Array.isArray(value)) return value.length > 0 ? null : _error;
|
|
8
|
+
if (value === null || value === void 0) return _error;
|
|
9
|
+
if (value === false) return _error;
|
|
10
|
+
return null;
|
|
11
|
+
};
|
|
19
12
|
}
|
|
20
|
-
|
|
13
|
+
//#endregion
|
|
21
14
|
export { isNotEmpty };
|
|
22
|
-
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=is-not-empty.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-not-empty.mjs","sources":["../../../src/validators/is-not-empty/is-not-empty.ts"],"sourcesContent":["export function isNotEmpty(error?: React.ReactNode) {\n const _error = error || true;\n\n return (value: unknown): React.ReactNode => {\n if (typeof value === 'string') {\n return value.trim().length > 0 ? null : _error;\n }\n\n if (Array.isArray(value)) {\n return value.length > 0 ? null : _error;\n }\n\n if (value === null || value === undefined) {\n return _error;\n }\n\n if (value === false) {\n return _error;\n }\n\n return null;\n };\n}\n"],"
|
|
1
|
+
{"version":3,"file":"is-not-empty.mjs","names":[],"sources":["../../../src/validators/is-not-empty/is-not-empty.ts"],"sourcesContent":["export function isNotEmpty(error?: React.ReactNode) {\n const _error = error || true;\n\n return (value: unknown): React.ReactNode => {\n if (typeof value === 'string') {\n return value.trim().length > 0 ? null : _error;\n }\n\n if (Array.isArray(value)) {\n return value.length > 0 ? null : _error;\n }\n\n if (value === null || value === undefined) {\n return _error;\n }\n\n if (value === false) {\n return _error;\n }\n\n return null;\n };\n}\n"],"mappings":";;AAAA,SAAgB,WAAW,OAAyB;CAClD,MAAM,SAAS,SAAS;AAExB,SAAQ,UAAoC;AAC1C,MAAI,OAAO,UAAU,SACnB,QAAO,MAAM,MAAM,CAAC,SAAS,IAAI,OAAO;AAG1C,MAAI,MAAM,QAAQ,MAAM,CACtB,QAAO,MAAM,SAAS,IAAI,OAAO;AAGnC,MAAI,UAAU,QAAQ,UAAU,KAAA,EAC9B,QAAO;AAGT,MAAI,UAAU,MACZ,QAAO;AAGT,SAAO"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
|
+
//#region packages/@mantine/form/src/validators/is-not-empty-html/is-not-empty-html.ts
|
|
2
3
|
function removeHtmlTags(input) {
|
|
3
|
-
|
|
4
|
+
return input.replace(/<\/?[^>]+(>|$)/g, "");
|
|
4
5
|
}
|
|
5
6
|
function isNotEmptyHTML(error) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
return _error;
|
|
12
|
-
};
|
|
7
|
+
const _error = error || true;
|
|
8
|
+
return (value) => {
|
|
9
|
+
if (typeof value === "string") return removeHtmlTags(value).trim().length > 0 ? null : _error;
|
|
10
|
+
return _error;
|
|
11
|
+
};
|
|
13
12
|
}
|
|
14
|
-
|
|
13
|
+
//#endregion
|
|
15
14
|
export { isNotEmptyHTML };
|
|
16
|
-
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=is-not-empty-html.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-not-empty-html.mjs","sources":["../../../src/validators/is-not-empty-html/is-not-empty-html.ts"],"sourcesContent":["function removeHtmlTags(input: string): string {\n return input.replace(/<\\/?[^>]+(>|$)/g, '');\n}\n\nexport function isNotEmptyHTML(error?: React.ReactNode) {\n const _error = error || true;\n\n return (value: unknown): React.ReactNode => {\n if (typeof value === 'string') {\n return removeHtmlTags(value).trim().length > 0 ? null : _error;\n }\n\n return _error;\n };\n}\n"],"
|
|
1
|
+
{"version":3,"file":"is-not-empty-html.mjs","names":[],"sources":["../../../src/validators/is-not-empty-html/is-not-empty-html.ts"],"sourcesContent":["function removeHtmlTags(input: string): string {\n return input.replace(/<\\/?[^>]+(>|$)/g, '');\n}\n\nexport function isNotEmptyHTML(error?: React.ReactNode) {\n const _error = error || true;\n\n return (value: unknown): React.ReactNode => {\n if (typeof value === 'string') {\n return removeHtmlTags(value).trim().length > 0 ? null : _error;\n }\n\n return _error;\n };\n}\n"],"mappings":";;AAAA,SAAS,eAAe,OAAuB;AAC7C,QAAO,MAAM,QAAQ,mBAAmB,GAAG;;AAG7C,SAAgB,eAAe,OAAyB;CACtD,MAAM,SAAS,SAAS;AAExB,SAAQ,UAAoC;AAC1C,MAAI,OAAO,UAAU,SACnB,QAAO,eAAe,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,OAAO;AAG1D,SAAO"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
|
+
//#region packages/@mantine/form/src/validators/is-one-of/is-one-of.ts
|
|
2
3
|
function isOneOf(values, error) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
const _error = error || true;
|
|
5
|
+
return (value) => {
|
|
6
|
+
return values.includes(value) ? null : _error;
|
|
7
|
+
};
|
|
7
8
|
}
|
|
8
|
-
|
|
9
|
+
//#endregion
|
|
9
10
|
export { isOneOf };
|
|
10
|
-
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=is-one-of.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-one-of.mjs","sources":["../../../src/validators/is-one-of/is-one-of.ts"],"sourcesContent":["export function isOneOf<T>(values: readonly T[], error?: React.ReactNode) {\n const _error = error || true;\n\n return (value: unknown): React.ReactNode => {\n return (values as readonly unknown[]).includes(value) ? null : _error;\n };\n}\n"],"
|
|
1
|
+
{"version":3,"file":"is-one-of.mjs","names":[],"sources":["../../../src/validators/is-one-of/is-one-of.ts"],"sourcesContent":["export function isOneOf<T>(values: readonly T[], error?: React.ReactNode) {\n const _error = error || true;\n\n return (value: unknown): React.ReactNode => {\n return (values as readonly unknown[]).includes(value) ? null : _error;\n };\n}\n"],"mappings":";;AAAA,SAAgB,QAAW,QAAsB,OAAyB;CACxE,MAAM,SAAS,SAAS;AAExB,SAAQ,UAAoC;AAC1C,SAAQ,OAA8B,SAAS,MAAM,GAAG,OAAO"}
|