@mantine/form 5.0.0 → 5.0.3
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/filter-errors/clear-list-errors.js +35 -0
- package/cjs/filter-errors/clear-list-errors.js.map +1 -0
- package/cjs/paths/set-path.js +2 -6
- package/cjs/paths/set-path.js.map +1 -1
- package/cjs/use-form.js +5 -1
- package/cjs/use-form.js.map +1 -1
- package/cjs/validate/validate-values.js +5 -1
- package/cjs/validate/validate-values.js.map +1 -1
- package/esm/filter-errors/clear-list-errors.js +31 -0
- package/esm/filter-errors/clear-list-errors.js.map +1 -0
- package/esm/paths/set-path.js +2 -2
- package/esm/paths/set-path.js.map +1 -1
- package/esm/use-form.js +5 -1
- package/esm/use-form.js.map +1 -1
- package/esm/validate/validate-values.js +5 -1
- package/esm/validate/validate-values.js.map +1 -1
- package/lib/filter-errors/clear-list-errors.d.ts +5 -0
- package/lib/filter-errors/clear-list-errors.d.ts.map +1 -0
- package/lib/filter-errors/index.d.ts +1 -0
- package/lib/filter-errors/index.d.ts.map +1 -1
- package/lib/validate/validate-values.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
+
var __spreadValues = (a, b) => {
|
|
11
|
+
for (var prop in b || (b = {}))
|
|
12
|
+
if (__hasOwnProp.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
if (__getOwnPropSymbols)
|
|
15
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
+
if (__propIsEnum.call(b, prop))
|
|
17
|
+
__defNormalProp(a, prop, b[prop]);
|
|
18
|
+
}
|
|
19
|
+
return a;
|
|
20
|
+
};
|
|
21
|
+
function clearListErrors(field, errors) {
|
|
22
|
+
if (errors === null || typeof errors !== "object") {
|
|
23
|
+
return {};
|
|
24
|
+
}
|
|
25
|
+
const clone = __spreadValues({}, errors);
|
|
26
|
+
Object.keys(errors).forEach((errorKey) => {
|
|
27
|
+
if (errorKey.includes(`${String(field)}.`)) {
|
|
28
|
+
delete clone[errorKey];
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
return clone;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
exports.clearListErrors = clearListErrors;
|
|
35
|
+
//# sourceMappingURL=clear-list-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clear-list-errors.js","sources":["../../src/filter-errors/clear-list-errors.ts"],"sourcesContent":["import type { FormErrors } from '../types';\n\nexport function clearListErrors(field: PropertyKey, errors: FormErrors) {\n if (errors === null || typeof errors !== 'object') {\n return {};\n }\n\n const clone = { ...errors };\n Object.keys(errors).forEach((errorKey) => {\n if (errorKey.includes(`${String(field)}.`)) {\n delete clone[errorKey];\n }\n });\n\n return clone;\n}\n"],"names":[],"mappings":";;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACK,SAAS,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE;AAC/C,EAAE,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACrD,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AAC3C,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AAC5C,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAChD,MAAM,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC7B,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,KAAK,CAAC;AACf;;;;"}
|
package/cjs/paths/set-path.js
CHANGED
|
@@ -2,19 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var klona = require('klona');
|
|
6
6
|
var getSplittedPath = require('./get-splitted-path.js');
|
|
7
7
|
|
|
8
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
|
|
9
|
-
|
|
10
|
-
var clone__default = /*#__PURE__*/_interopDefaultLegacy(clone);
|
|
11
|
-
|
|
12
8
|
function setPath(path, value, values) {
|
|
13
9
|
const splittedPath = getSplittedPath.getSplittedPath(path);
|
|
14
10
|
if (splittedPath.length === 0) {
|
|
15
11
|
return values;
|
|
16
12
|
}
|
|
17
|
-
const cloned =
|
|
13
|
+
const cloned = klona.klona(values);
|
|
18
14
|
if (splittedPath.length === 1) {
|
|
19
15
|
cloned[splittedPath[0]] = value;
|
|
20
16
|
return cloned;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-path.js","sources":["../../src/paths/set-path.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"set-path.js","sources":["../../src/paths/set-path.ts"],"sourcesContent":["import { klona } from 'klona';\nimport { getSplittedPath } from './get-splitted-path';\n\nexport function setPath<T>(path: unknown, value: unknown, values: T) {\n const splittedPath = getSplittedPath(path);\n\n if (splittedPath.length === 0) {\n return values;\n }\n\n const cloned = klona(values);\n\n if (splittedPath.length === 1) {\n cloned[splittedPath[0]] = value;\n return cloned;\n }\n\n let val = cloned[splittedPath[0]];\n\n for (let i = 1; i < splittedPath.length - 1; i += 1) {\n if (val === undefined) {\n return cloned;\n }\n\n val = val[splittedPath[i]];\n }\n\n val[splittedPath[splittedPath.length - 1]] = value;\n\n return cloned;\n}\n"],"names":["getSplittedPath","klona"],"mappings":";;;;;;;AAEO,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;AAC7C,EAAE,MAAM,YAAY,GAAGA,+BAAe,CAAC,IAAI,CAAC,CAAC;AAC7C,EAAE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,MAAM,MAAM,GAAGC,WAAK,CAAC,MAAM,CAAC,CAAC;AAC/B,EAAE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AACpC,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACvD,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,EAAE;AACxB,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AACrD,EAAE,OAAO,MAAM,CAAC;AAChB;;;;"}
|
package/cjs/use-form.js
CHANGED
|
@@ -9,6 +9,7 @@ var setPath = require('./paths/set-path.js');
|
|
|
9
9
|
var validateFieldValue = require('./validate/validate-field-value.js');
|
|
10
10
|
var reorderPath = require('./paths/reorder-path.js');
|
|
11
11
|
var removePath = require('./paths/remove-path.js');
|
|
12
|
+
var clearListErrors = require('./filter-errors/clear-list-errors.js');
|
|
12
13
|
var insertPath = require('./paths/insert-path.js');
|
|
13
14
|
var validateValues = require('./validate/validate-values.js');
|
|
14
15
|
var getPath = require('./paths/get-path.js');
|
|
@@ -74,7 +75,10 @@ function useForm({
|
|
|
74
75
|
clearInputErrorOnChange && clearErrors();
|
|
75
76
|
}, []);
|
|
76
77
|
const reorderListItem = react.useCallback((path, payload) => _setValues((current) => reorderPath.reorderPath(path, payload, current)), []);
|
|
77
|
-
const removeListItem = react.useCallback((path, index) =>
|
|
78
|
+
const removeListItem = react.useCallback((path, index) => {
|
|
79
|
+
_setValues((current) => removePath.removePath(path, index, current));
|
|
80
|
+
_setErrors((errs) => clearListErrors.clearListErrors(path, errs));
|
|
81
|
+
}, []);
|
|
78
82
|
const insertListItem = react.useCallback((path, item, index) => _setValues((current) => insertPath.insertPath(path, item, index, current)), []);
|
|
79
83
|
const validate = react.useCallback(() => {
|
|
80
84
|
const results = validateValues.validateValues(rules, values);
|
package/cjs/use-form.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-form.js","sources":["../src/use-form.ts"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport { getInputOnChange } from './get-input-on-change';\nimport { setPath, reorderPath, insertPath, getPath, removePath } from './paths';\nimport { filterErrors } from './filter-errors';\nimport { validateValues, validateFieldValue, shouldValidateOnChange } from './validate';\nimport {\n UseFormReturnType,\n UseFormInput,\n SetErrors,\n ClearErrors,\n Reset,\n SetFieldError,\n SetFieldValue,\n SetValues,\n ReorderListItem,\n RemoveListItem,\n InsertListItem,\n ClearFieldError,\n Validate,\n ValidateField,\n GetInputProps,\n OnSubmit,\n OnReset,\n} from './types';\n\nexport function useForm<Values = Record<string, unknown>>({\n initialValues = {} as Values,\n initialErrors = {},\n clearInputErrorOnChange = true,\n validateInputOnChange = false,\n validate: rules,\n}: UseFormInput<Values> = {}): UseFormReturnType<Values> {\n const [values, _setValues] = useState(initialValues);\n const [errors, _setErrors] = useState(filterErrors(initialErrors));\n\n const setErrors: SetErrors = useCallback(\n (errs) =>\n _setErrors((current) => filterErrors(typeof errs === 'function' ? errs(current) : errs)),\n []\n );\n\n const clearErrors: ClearErrors = useCallback(() => _setErrors({}), []);\n const reset: Reset = useCallback(() => {\n _setValues(initialValues);\n clearErrors();\n }, []);\n\n const setFieldError: SetFieldError<Values> = useCallback(\n (path, error) => setErrors((current) => ({ ...current, [path]: error })),\n []\n );\n\n const clearFieldError: ClearFieldError = useCallback(\n (path) =>\n setErrors((current) => {\n if (typeof path !== 'string') {\n return current;\n }\n\n const clone = { ...current };\n delete clone[path];\n return clone;\n }),\n []\n );\n\n const setFieldValue: SetFieldValue<Values> = useCallback((path, value) => {\n const shouldValidate = shouldValidateOnChange(path, validateInputOnChange);\n _setValues((current) => {\n const result = setPath(path, value, current);\n if (shouldValidate) {\n const validationResults = validateFieldValue(path, rules, result);\n validationResults.hasError\n ? setFieldError(path, validationResults.error)\n : clearFieldError(path);\n }\n return result;\n });\n\n !shouldValidate && clearInputErrorOnChange && setFieldError(path, null);\n }, []);\n\n const setValues: SetValues<Values> = useCallback((payload) => {\n _setValues(payload);\n clearInputErrorOnChange && clearErrors();\n }, []);\n\n const reorderListItem: ReorderListItem<Values> = useCallback(\n (path, payload) => _setValues((current) => reorderPath(path, payload, current)),\n []\n );\n\n const removeListItem: RemoveListItem<Values> = useCallback(\n (path, index) => _setValues((current) => removePath(path, index, current)),\n []\n );\n\n const insertListItem: InsertListItem<Values> = useCallback(\n (path, item, index) => _setValues((current) => insertPath(path, item, index, current)),\n []\n );\n\n const validate: Validate = useCallback(() => {\n const results = validateValues(rules, values);\n _setErrors(results.errors);\n return results;\n }, [values, rules]);\n\n const validateField: ValidateField<Values> = useCallback(\n (path) => {\n const results = validateFieldValue(path, rules, values);\n results.hasError ? setFieldError(path, results.error) : clearFieldError(path);\n return results;\n },\n [values, rules]\n );\n\n const getInputProps: GetInputProps<Values> = (\n path,\n { type = 'input', withError = type === 'input' } = {}\n ) => {\n const onChange = getInputOnChange((value) => setFieldValue(path, value as any));\n const withOptionalError = (payload: Record<string, unknown>) => {\n if (withError) {\n // eslint-disable-next-line no-param-reassign\n payload.error = errors[path];\n }\n return payload;\n };\n\n return type === 'checkbox'\n ? withOptionalError({ checked: getPath(path, values), onChange })\n : withOptionalError({ value: getPath(path, values), onChange });\n };\n\n const onSubmit: OnSubmit<Values> = (handleSubmit, handleValidationFailure) => (event) => {\n event.preventDefault();\n const results = validate();\n\n if (results.hasErrors) {\n handleValidationFailure?.(results.errors, values, event);\n } else {\n handleSubmit(values, event);\n }\n };\n\n const onReset: OnReset = useCallback((event) => {\n event.preventDefault();\n reset();\n }, []);\n\n return {\n values,\n errors,\n setValues,\n setErrors,\n setFieldValue,\n setFieldError,\n clearFieldError,\n clearErrors,\n reset,\n validate,\n validateField,\n reorderListItem,\n removeListItem,\n insertListItem,\n getInputProps,\n onSubmit,\n onReset,\n };\n}\n"],"names":["useState","filterErrors","useCallback","shouldValidateOnChange","setPath","validateFieldValue","reorderPath","removePath","insertPath","validateValues","getInputOnChange","getPath"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-form.js","sources":["../src/use-form.ts"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport { getInputOnChange } from './get-input-on-change';\nimport { setPath, reorderPath, insertPath, getPath, removePath } from './paths';\nimport { filterErrors, clearListErrors } from './filter-errors';\nimport { validateValues, validateFieldValue, shouldValidateOnChange } from './validate';\nimport {\n UseFormReturnType,\n UseFormInput,\n SetErrors,\n ClearErrors,\n Reset,\n SetFieldError,\n SetFieldValue,\n SetValues,\n ReorderListItem,\n RemoveListItem,\n InsertListItem,\n ClearFieldError,\n Validate,\n ValidateField,\n GetInputProps,\n OnSubmit,\n OnReset,\n} from './types';\n\nexport function useForm<Values = Record<string, unknown>>({\n initialValues = {} as Values,\n initialErrors = {},\n clearInputErrorOnChange = true,\n validateInputOnChange = false,\n validate: rules,\n}: UseFormInput<Values> = {}): UseFormReturnType<Values> {\n const [values, _setValues] = useState(initialValues);\n const [errors, _setErrors] = useState(filterErrors(initialErrors));\n\n const setErrors: SetErrors = useCallback(\n (errs) =>\n _setErrors((current) => filterErrors(typeof errs === 'function' ? errs(current) : errs)),\n []\n );\n\n const clearErrors: ClearErrors = useCallback(() => _setErrors({}), []);\n const reset: Reset = useCallback(() => {\n _setValues(initialValues);\n clearErrors();\n }, []);\n\n const setFieldError: SetFieldError<Values> = useCallback(\n (path, error) => setErrors((current) => ({ ...current, [path]: error })),\n []\n );\n\n const clearFieldError: ClearFieldError = useCallback(\n (path) =>\n setErrors((current) => {\n if (typeof path !== 'string') {\n return current;\n }\n\n const clone = { ...current };\n delete clone[path];\n return clone;\n }),\n []\n );\n\n const setFieldValue: SetFieldValue<Values> = useCallback((path, value) => {\n const shouldValidate = shouldValidateOnChange(path, validateInputOnChange);\n _setValues((current) => {\n const result = setPath(path, value, current);\n if (shouldValidate) {\n const validationResults = validateFieldValue(path, rules, result);\n validationResults.hasError\n ? setFieldError(path, validationResults.error)\n : clearFieldError(path);\n }\n return result;\n });\n\n !shouldValidate && clearInputErrorOnChange && setFieldError(path, null);\n }, []);\n\n const setValues: SetValues<Values> = useCallback((payload) => {\n _setValues(payload);\n clearInputErrorOnChange && clearErrors();\n }, []);\n\n const reorderListItem: ReorderListItem<Values> = useCallback(\n (path, payload) => _setValues((current) => reorderPath(path, payload, current)),\n []\n );\n\n const removeListItem: RemoveListItem<Values> = useCallback((path, index) => {\n _setValues((current) => removePath(path, index, current));\n _setErrors((errs) => clearListErrors(path, errs));\n }, []);\n\n const insertListItem: InsertListItem<Values> = useCallback(\n (path, item, index) => _setValues((current) => insertPath(path, item, index, current)),\n []\n );\n\n const validate: Validate = useCallback(() => {\n const results = validateValues(rules, values);\n _setErrors(results.errors);\n return results;\n }, [values, rules]);\n\n const validateField: ValidateField<Values> = useCallback(\n (path) => {\n const results = validateFieldValue(path, rules, values);\n results.hasError ? setFieldError(path, results.error) : clearFieldError(path);\n return results;\n },\n [values, rules]\n );\n\n const getInputProps: GetInputProps<Values> = (\n path,\n { type = 'input', withError = type === 'input' } = {}\n ) => {\n const onChange = getInputOnChange((value) => setFieldValue(path, value as any));\n const withOptionalError = (payload: Record<string, unknown>) => {\n if (withError) {\n // eslint-disable-next-line no-param-reassign\n payload.error = errors[path];\n }\n return payload;\n };\n\n return type === 'checkbox'\n ? withOptionalError({ checked: getPath(path, values), onChange })\n : withOptionalError({ value: getPath(path, values), onChange });\n };\n\n const onSubmit: OnSubmit<Values> = (handleSubmit, handleValidationFailure) => (event) => {\n event.preventDefault();\n const results = validate();\n\n if (results.hasErrors) {\n handleValidationFailure?.(results.errors, values, event);\n } else {\n handleSubmit(values, event);\n }\n };\n\n const onReset: OnReset = useCallback((event) => {\n event.preventDefault();\n reset();\n }, []);\n\n return {\n values,\n errors,\n setValues,\n setErrors,\n setFieldValue,\n setFieldError,\n clearFieldError,\n clearErrors,\n reset,\n validate,\n validateField,\n reorderListItem,\n removeListItem,\n insertListItem,\n getInputProps,\n onSubmit,\n onReset,\n };\n}\n"],"names":["useState","filterErrors","useCallback","shouldValidateOnChange","setPath","validateFieldValue","reorderPath","removePath","clearListErrors","insertPath","validateValues","getInputOnChange","getPath"],"mappings":"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"}
|
|
@@ -17,14 +17,18 @@ function validateRulesRecord(rules, values, path = "", errors = {}) {
|
|
|
17
17
|
const rule = rules[ruleKey];
|
|
18
18
|
const rulePath = `${path === "" ? "" : `${path}.`}${ruleKey}`;
|
|
19
19
|
const value = getPath.getPath(rulePath, values);
|
|
20
|
+
let arrayValidation = false;
|
|
20
21
|
if (typeof rule === "function") {
|
|
21
22
|
acc[rulePath] = rule(value, values);
|
|
22
23
|
}
|
|
23
24
|
if (typeof rule === "object" && Array.isArray(value)) {
|
|
25
|
+
arrayValidation = true;
|
|
24
26
|
value.forEach((_item, index) => validateRulesRecord(rule, values, `${rulePath}.${index}`, acc));
|
|
25
27
|
}
|
|
26
28
|
if (typeof rule === "object" && typeof value === "object" && value !== null) {
|
|
27
|
-
|
|
29
|
+
if (!arrayValidation) {
|
|
30
|
+
validateRulesRecord(rule, values, rulePath, acc);
|
|
31
|
+
}
|
|
28
32
|
}
|
|
29
33
|
return acc;
|
|
30
34
|
}, errors);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-values.js","sources":["../../src/validate/validate-values.ts"],"sourcesContent":["import { filterErrors } from '../filter-errors';\nimport { getPath } from '../paths';\nimport { FormValidateInput, FormErrors, FormRulesRecord } from '../types';\n\nfunction getValidationResults(errors: FormErrors) {\n const filteredErrors = filterErrors(errors);\n return { hasErrors: Object.keys(filteredErrors).length > 0, errors: filteredErrors };\n}\n\nfunction validateRulesRecord<T>(\n rules: FormRulesRecord<T>,\n values: T,\n path = '',\n errors: FormErrors = {}\n) {\n if (typeof rules !== 'object' || rules === null) {\n return errors;\n }\n\n return Object.keys(rules).reduce((acc, ruleKey) => {\n const rule = rules[ruleKey];\n const rulePath = `${path === '' ? '' : `${path}.`}${ruleKey}`;\n const value = getPath(rulePath, values);\n\n if (typeof rule === 'function') {\n acc[rulePath] = rule(value, values);\n }\n\n if (typeof rule === 'object' && Array.isArray(value)) {\n value.forEach((_item, index) =>\n validateRulesRecord(rule, values, `${rulePath}.${index}`, acc)\n );\n }\n\n if (typeof rule === 'object' && typeof value === 'object' && value !== null) {\n validateRulesRecord(rule, values, rulePath, acc);\n }\n\n return acc;\n }, errors);\n}\n\nexport function validateValues<T>(validate: FormValidateInput<T>, values: T) {\n if (typeof validate === 'function') {\n return getValidationResults(validate(values));\n }\n\n return getValidationResults(validateRulesRecord(validate, values));\n}\n"],"names":["filterErrors","getPath"],"mappings":";;;;;;;AAEA,SAAS,oBAAoB,CAAC,MAAM,EAAE;AACtC,EAAE,MAAM,cAAc,GAAGA,yBAAY,CAAC,MAAM,CAAC,CAAC;AAC9C,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AACvF,CAAC;AACD,SAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE;AACpE,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AACnD,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK;AACrD,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AAChC,IAAI,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAClE,IAAI,MAAM,KAAK,GAAGC,eAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC5C,IAAI,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AACpC,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC1D,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACtG,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AACjF,MAAM,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"validate-values.js","sources":["../../src/validate/validate-values.ts"],"sourcesContent":["import { filterErrors } from '../filter-errors';\nimport { getPath } from '../paths';\nimport { FormValidateInput, FormErrors, FormRulesRecord } from '../types';\n\nfunction getValidationResults(errors: FormErrors) {\n const filteredErrors = filterErrors(errors);\n return { hasErrors: Object.keys(filteredErrors).length > 0, errors: filteredErrors };\n}\n\nfunction validateRulesRecord<T>(\n rules: FormRulesRecord<T>,\n values: T,\n path = '',\n errors: FormErrors = {}\n) {\n if (typeof rules !== 'object' || rules === null) {\n return errors;\n }\n\n return Object.keys(rules).reduce((acc, ruleKey) => {\n const rule = rules[ruleKey];\n const rulePath = `${path === '' ? '' : `${path}.`}${ruleKey}`;\n const value = getPath(rulePath, values);\n let arrayValidation = false;\n\n if (typeof rule === 'function') {\n acc[rulePath] = rule(value, values);\n }\n\n if (typeof rule === 'object' && Array.isArray(value)) {\n arrayValidation = true;\n value.forEach((_item, index) =>\n validateRulesRecord(rule, values, `${rulePath}.${index}`, acc)\n );\n }\n\n if (typeof rule === 'object' && typeof value === 'object' && value !== null) {\n if (!arrayValidation) {\n validateRulesRecord(rule, values, rulePath, acc);\n }\n }\n\n return acc;\n }, errors);\n}\n\nexport function validateValues<T>(validate: FormValidateInput<T>, values: T) {\n if (typeof validate === 'function') {\n return getValidationResults(validate(values));\n }\n\n return getValidationResults(validateRulesRecord(validate, values));\n}\n"],"names":["filterErrors","getPath"],"mappings":";;;;;;;AAEA,SAAS,oBAAoB,CAAC,MAAM,EAAE;AACtC,EAAE,MAAM,cAAc,GAAGA,yBAAY,CAAC,MAAM,CAAC,CAAC;AAC9C,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AACvF,CAAC;AACD,SAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE;AACpE,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AACnD,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK;AACrD,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AAChC,IAAI,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAClE,IAAI,MAAM,KAAK,GAAGC,eAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC5C,IAAI,IAAI,eAAe,GAAG,KAAK,CAAC;AAChC,IAAI,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AACpC,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC1D,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACtG,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AACjF,MAAM,IAAI,CAAC,eAAe,EAAE;AAC5B,QAAQ,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;AACzD,OAAO;AACP,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,EAAE,MAAM,CAAC,CAAC;AACb,CAAC;AACM,SAAS,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE;AACjD,EAAE,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACtC,IAAI,OAAO,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,OAAO,oBAAoB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACrE;;;;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
3
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
5
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
+
var __spreadValues = (a, b) => {
|
|
7
|
+
for (var prop in b || (b = {}))
|
|
8
|
+
if (__hasOwnProp.call(b, prop))
|
|
9
|
+
__defNormalProp(a, prop, b[prop]);
|
|
10
|
+
if (__getOwnPropSymbols)
|
|
11
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
12
|
+
if (__propIsEnum.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
}
|
|
15
|
+
return a;
|
|
16
|
+
};
|
|
17
|
+
function clearListErrors(field, errors) {
|
|
18
|
+
if (errors === null || typeof errors !== "object") {
|
|
19
|
+
return {};
|
|
20
|
+
}
|
|
21
|
+
const clone = __spreadValues({}, errors);
|
|
22
|
+
Object.keys(errors).forEach((errorKey) => {
|
|
23
|
+
if (errorKey.includes(`${String(field)}.`)) {
|
|
24
|
+
delete clone[errorKey];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
return clone;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export { clearListErrors };
|
|
31
|
+
//# sourceMappingURL=clear-list-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clear-list-errors.js","sources":["../../src/filter-errors/clear-list-errors.ts"],"sourcesContent":["import type { FormErrors } from '../types';\n\nexport function clearListErrors(field: PropertyKey, errors: FormErrors) {\n if (errors === null || typeof errors !== 'object') {\n return {};\n }\n\n const clone = { ...errors };\n Object.keys(errors).forEach((errorKey) => {\n if (errorKey.includes(`${String(field)}.`)) {\n delete clone[errorKey];\n }\n });\n\n return clone;\n}\n"],"names":[],"mappings":"AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACK,SAAS,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE;AAC/C,EAAE,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACrD,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AAC3C,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AAC5C,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAChD,MAAM,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC7B,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,KAAK,CAAC;AACf;;;;"}
|
package/esm/paths/set-path.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { klona } from 'klona';
|
|
2
2
|
import { getSplittedPath } from './get-splitted-path.js';
|
|
3
3
|
|
|
4
4
|
function setPath(path, value, values) {
|
|
@@ -6,7 +6,7 @@ function setPath(path, value, values) {
|
|
|
6
6
|
if (splittedPath.length === 0) {
|
|
7
7
|
return values;
|
|
8
8
|
}
|
|
9
|
-
const cloned =
|
|
9
|
+
const cloned = klona(values);
|
|
10
10
|
if (splittedPath.length === 1) {
|
|
11
11
|
cloned[splittedPath[0]] = value;
|
|
12
12
|
return cloned;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-path.js","sources":["../../src/paths/set-path.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"set-path.js","sources":["../../src/paths/set-path.ts"],"sourcesContent":["import { klona } from 'klona';\nimport { getSplittedPath } from './get-splitted-path';\n\nexport function setPath<T>(path: unknown, value: unknown, values: T) {\n const splittedPath = getSplittedPath(path);\n\n if (splittedPath.length === 0) {\n return values;\n }\n\n const cloned = klona(values);\n\n if (splittedPath.length === 1) {\n cloned[splittedPath[0]] = value;\n return cloned;\n }\n\n let val = cloned[splittedPath[0]];\n\n for (let i = 1; i < splittedPath.length - 1; i += 1) {\n if (val === undefined) {\n return cloned;\n }\n\n val = val[splittedPath[i]];\n }\n\n val[splittedPath[splittedPath.length - 1]] = value;\n\n return cloned;\n}\n"],"names":[],"mappings":";;;AAEO,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;AAC7C,EAAE,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;AAC7C,EAAE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AAC/B,EAAE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AACpC,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACvD,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,EAAE;AACxB,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AACrD,EAAE,OAAO,MAAM,CAAC;AAChB;;;;"}
|
package/esm/use-form.js
CHANGED
|
@@ -5,6 +5,7 @@ import { setPath } from './paths/set-path.js';
|
|
|
5
5
|
import { validateFieldValue } from './validate/validate-field-value.js';
|
|
6
6
|
import { reorderPath } from './paths/reorder-path.js';
|
|
7
7
|
import { removePath } from './paths/remove-path.js';
|
|
8
|
+
import { clearListErrors } from './filter-errors/clear-list-errors.js';
|
|
8
9
|
import { insertPath } from './paths/insert-path.js';
|
|
9
10
|
import { validateValues } from './validate/validate-values.js';
|
|
10
11
|
import { getPath } from './paths/get-path.js';
|
|
@@ -70,7 +71,10 @@ function useForm({
|
|
|
70
71
|
clearInputErrorOnChange && clearErrors();
|
|
71
72
|
}, []);
|
|
72
73
|
const reorderListItem = useCallback((path, payload) => _setValues((current) => reorderPath(path, payload, current)), []);
|
|
73
|
-
const removeListItem = useCallback((path, index) =>
|
|
74
|
+
const removeListItem = useCallback((path, index) => {
|
|
75
|
+
_setValues((current) => removePath(path, index, current));
|
|
76
|
+
_setErrors((errs) => clearListErrors(path, errs));
|
|
77
|
+
}, []);
|
|
74
78
|
const insertListItem = useCallback((path, item, index) => _setValues((current) => insertPath(path, item, index, current)), []);
|
|
75
79
|
const validate = useCallback(() => {
|
|
76
80
|
const results = validateValues(rules, values);
|
package/esm/use-form.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-form.js","sources":["../src/use-form.ts"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport { getInputOnChange } from './get-input-on-change';\nimport { setPath, reorderPath, insertPath, getPath, removePath } from './paths';\nimport { filterErrors } from './filter-errors';\nimport { validateValues, validateFieldValue, shouldValidateOnChange } from './validate';\nimport {\n UseFormReturnType,\n UseFormInput,\n SetErrors,\n ClearErrors,\n Reset,\n SetFieldError,\n SetFieldValue,\n SetValues,\n ReorderListItem,\n RemoveListItem,\n InsertListItem,\n ClearFieldError,\n Validate,\n ValidateField,\n GetInputProps,\n OnSubmit,\n OnReset,\n} from './types';\n\nexport function useForm<Values = Record<string, unknown>>({\n initialValues = {} as Values,\n initialErrors = {},\n clearInputErrorOnChange = true,\n validateInputOnChange = false,\n validate: rules,\n}: UseFormInput<Values> = {}): UseFormReturnType<Values> {\n const [values, _setValues] = useState(initialValues);\n const [errors, _setErrors] = useState(filterErrors(initialErrors));\n\n const setErrors: SetErrors = useCallback(\n (errs) =>\n _setErrors((current) => filterErrors(typeof errs === 'function' ? errs(current) : errs)),\n []\n );\n\n const clearErrors: ClearErrors = useCallback(() => _setErrors({}), []);\n const reset: Reset = useCallback(() => {\n _setValues(initialValues);\n clearErrors();\n }, []);\n\n const setFieldError: SetFieldError<Values> = useCallback(\n (path, error) => setErrors((current) => ({ ...current, [path]: error })),\n []\n );\n\n const clearFieldError: ClearFieldError = useCallback(\n (path) =>\n setErrors((current) => {\n if (typeof path !== 'string') {\n return current;\n }\n\n const clone = { ...current };\n delete clone[path];\n return clone;\n }),\n []\n );\n\n const setFieldValue: SetFieldValue<Values> = useCallback((path, value) => {\n const shouldValidate = shouldValidateOnChange(path, validateInputOnChange);\n _setValues((current) => {\n const result = setPath(path, value, current);\n if (shouldValidate) {\n const validationResults = validateFieldValue(path, rules, result);\n validationResults.hasError\n ? setFieldError(path, validationResults.error)\n : clearFieldError(path);\n }\n return result;\n });\n\n !shouldValidate && clearInputErrorOnChange && setFieldError(path, null);\n }, []);\n\n const setValues: SetValues<Values> = useCallback((payload) => {\n _setValues(payload);\n clearInputErrorOnChange && clearErrors();\n }, []);\n\n const reorderListItem: ReorderListItem<Values> = useCallback(\n (path, payload) => _setValues((current) => reorderPath(path, payload, current)),\n []\n );\n\n const removeListItem: RemoveListItem<Values> = useCallback(\n (path, index) => _setValues((current) => removePath(path, index, current)),\n []\n );\n\n const insertListItem: InsertListItem<Values> = useCallback(\n (path, item, index) => _setValues((current) => insertPath(path, item, index, current)),\n []\n );\n\n const validate: Validate = useCallback(() => {\n const results = validateValues(rules, values);\n _setErrors(results.errors);\n return results;\n }, [values, rules]);\n\n const validateField: ValidateField<Values> = useCallback(\n (path) => {\n const results = validateFieldValue(path, rules, values);\n results.hasError ? setFieldError(path, results.error) : clearFieldError(path);\n return results;\n },\n [values, rules]\n );\n\n const getInputProps: GetInputProps<Values> = (\n path,\n { type = 'input', withError = type === 'input' } = {}\n ) => {\n const onChange = getInputOnChange((value) => setFieldValue(path, value as any));\n const withOptionalError = (payload: Record<string, unknown>) => {\n if (withError) {\n // eslint-disable-next-line no-param-reassign\n payload.error = errors[path];\n }\n return payload;\n };\n\n return type === 'checkbox'\n ? withOptionalError({ checked: getPath(path, values), onChange })\n : withOptionalError({ value: getPath(path, values), onChange });\n };\n\n const onSubmit: OnSubmit<Values> = (handleSubmit, handleValidationFailure) => (event) => {\n event.preventDefault();\n const results = validate();\n\n if (results.hasErrors) {\n handleValidationFailure?.(results.errors, values, event);\n } else {\n handleSubmit(values, event);\n }\n };\n\n const onReset: OnReset = useCallback((event) => {\n event.preventDefault();\n reset();\n }, []);\n\n return {\n values,\n errors,\n setValues,\n setErrors,\n setFieldValue,\n setFieldError,\n clearFieldError,\n clearErrors,\n reset,\n validate,\n validateField,\n reorderListItem,\n removeListItem,\n insertListItem,\n getInputProps,\n onSubmit,\n onReset,\n };\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-form.js","sources":["../src/use-form.ts"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport { getInputOnChange } from './get-input-on-change';\nimport { setPath, reorderPath, insertPath, getPath, removePath } from './paths';\nimport { filterErrors, clearListErrors } from './filter-errors';\nimport { validateValues, validateFieldValue, shouldValidateOnChange } from './validate';\nimport {\n UseFormReturnType,\n UseFormInput,\n SetErrors,\n ClearErrors,\n Reset,\n SetFieldError,\n SetFieldValue,\n SetValues,\n ReorderListItem,\n RemoveListItem,\n InsertListItem,\n ClearFieldError,\n Validate,\n ValidateField,\n GetInputProps,\n OnSubmit,\n OnReset,\n} from './types';\n\nexport function useForm<Values = Record<string, unknown>>({\n initialValues = {} as Values,\n initialErrors = {},\n clearInputErrorOnChange = true,\n validateInputOnChange = false,\n validate: rules,\n}: UseFormInput<Values> = {}): UseFormReturnType<Values> {\n const [values, _setValues] = useState(initialValues);\n const [errors, _setErrors] = useState(filterErrors(initialErrors));\n\n const setErrors: SetErrors = useCallback(\n (errs) =>\n _setErrors((current) => filterErrors(typeof errs === 'function' ? errs(current) : errs)),\n []\n );\n\n const clearErrors: ClearErrors = useCallback(() => _setErrors({}), []);\n const reset: Reset = useCallback(() => {\n _setValues(initialValues);\n clearErrors();\n }, []);\n\n const setFieldError: SetFieldError<Values> = useCallback(\n (path, error) => setErrors((current) => ({ ...current, [path]: error })),\n []\n );\n\n const clearFieldError: ClearFieldError = useCallback(\n (path) =>\n setErrors((current) => {\n if (typeof path !== 'string') {\n return current;\n }\n\n const clone = { ...current };\n delete clone[path];\n return clone;\n }),\n []\n );\n\n const setFieldValue: SetFieldValue<Values> = useCallback((path, value) => {\n const shouldValidate = shouldValidateOnChange(path, validateInputOnChange);\n _setValues((current) => {\n const result = setPath(path, value, current);\n if (shouldValidate) {\n const validationResults = validateFieldValue(path, rules, result);\n validationResults.hasError\n ? setFieldError(path, validationResults.error)\n : clearFieldError(path);\n }\n return result;\n });\n\n !shouldValidate && clearInputErrorOnChange && setFieldError(path, null);\n }, []);\n\n const setValues: SetValues<Values> = useCallback((payload) => {\n _setValues(payload);\n clearInputErrorOnChange && clearErrors();\n }, []);\n\n const reorderListItem: ReorderListItem<Values> = useCallback(\n (path, payload) => _setValues((current) => reorderPath(path, payload, current)),\n []\n );\n\n const removeListItem: RemoveListItem<Values> = useCallback((path, index) => {\n _setValues((current) => removePath(path, index, current));\n _setErrors((errs) => clearListErrors(path, errs));\n }, []);\n\n const insertListItem: InsertListItem<Values> = useCallback(\n (path, item, index) => _setValues((current) => insertPath(path, item, index, current)),\n []\n );\n\n const validate: Validate = useCallback(() => {\n const results = validateValues(rules, values);\n _setErrors(results.errors);\n return results;\n }, [values, rules]);\n\n const validateField: ValidateField<Values> = useCallback(\n (path) => {\n const results = validateFieldValue(path, rules, values);\n results.hasError ? setFieldError(path, results.error) : clearFieldError(path);\n return results;\n },\n [values, rules]\n );\n\n const getInputProps: GetInputProps<Values> = (\n path,\n { type = 'input', withError = type === 'input' } = {}\n ) => {\n const onChange = getInputOnChange((value) => setFieldValue(path, value as any));\n const withOptionalError = (payload: Record<string, unknown>) => {\n if (withError) {\n // eslint-disable-next-line no-param-reassign\n payload.error = errors[path];\n }\n return payload;\n };\n\n return type === 'checkbox'\n ? withOptionalError({ checked: getPath(path, values), onChange })\n : withOptionalError({ value: getPath(path, values), onChange });\n };\n\n const onSubmit: OnSubmit<Values> = (handleSubmit, handleValidationFailure) => (event) => {\n event.preventDefault();\n const results = validate();\n\n if (results.hasErrors) {\n handleValidationFailure?.(results.errors, values, event);\n } else {\n handleSubmit(values, event);\n }\n };\n\n const onReset: OnReset = useCallback((event) => {\n event.preventDefault();\n reset();\n }, []);\n\n return {\n values,\n errors,\n setValues,\n setErrors,\n setFieldValue,\n setFieldError,\n clearFieldError,\n clearErrors,\n reset,\n validate,\n validateField,\n reorderListItem,\n removeListItem,\n insertListItem,\n getInputProps,\n onSubmit,\n onReset,\n };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -13,14 +13,18 @@ function validateRulesRecord(rules, values, path = "", errors = {}) {
|
|
|
13
13
|
const rule = rules[ruleKey];
|
|
14
14
|
const rulePath = `${path === "" ? "" : `${path}.`}${ruleKey}`;
|
|
15
15
|
const value = getPath(rulePath, values);
|
|
16
|
+
let arrayValidation = false;
|
|
16
17
|
if (typeof rule === "function") {
|
|
17
18
|
acc[rulePath] = rule(value, values);
|
|
18
19
|
}
|
|
19
20
|
if (typeof rule === "object" && Array.isArray(value)) {
|
|
21
|
+
arrayValidation = true;
|
|
20
22
|
value.forEach((_item, index) => validateRulesRecord(rule, values, `${rulePath}.${index}`, acc));
|
|
21
23
|
}
|
|
22
24
|
if (typeof rule === "object" && typeof value === "object" && value !== null) {
|
|
23
|
-
|
|
25
|
+
if (!arrayValidation) {
|
|
26
|
+
validateRulesRecord(rule, values, rulePath, acc);
|
|
27
|
+
}
|
|
24
28
|
}
|
|
25
29
|
return acc;
|
|
26
30
|
}, errors);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-values.js","sources":["../../src/validate/validate-values.ts"],"sourcesContent":["import { filterErrors } from '../filter-errors';\nimport { getPath } from '../paths';\nimport { FormValidateInput, FormErrors, FormRulesRecord } from '../types';\n\nfunction getValidationResults(errors: FormErrors) {\n const filteredErrors = filterErrors(errors);\n return { hasErrors: Object.keys(filteredErrors).length > 0, errors: filteredErrors };\n}\n\nfunction validateRulesRecord<T>(\n rules: FormRulesRecord<T>,\n values: T,\n path = '',\n errors: FormErrors = {}\n) {\n if (typeof rules !== 'object' || rules === null) {\n return errors;\n }\n\n return Object.keys(rules).reduce((acc, ruleKey) => {\n const rule = rules[ruleKey];\n const rulePath = `${path === '' ? '' : `${path}.`}${ruleKey}`;\n const value = getPath(rulePath, values);\n\n if (typeof rule === 'function') {\n acc[rulePath] = rule(value, values);\n }\n\n if (typeof rule === 'object' && Array.isArray(value)) {\n value.forEach((_item, index) =>\n validateRulesRecord(rule, values, `${rulePath}.${index}`, acc)\n );\n }\n\n if (typeof rule === 'object' && typeof value === 'object' && value !== null) {\n validateRulesRecord(rule, values, rulePath, acc);\n }\n\n return acc;\n }, errors);\n}\n\nexport function validateValues<T>(validate: FormValidateInput<T>, values: T) {\n if (typeof validate === 'function') {\n return getValidationResults(validate(values));\n }\n\n return getValidationResults(validateRulesRecord(validate, values));\n}\n"],"names":[],"mappings":";;;AAEA,SAAS,oBAAoB,CAAC,MAAM,EAAE;AACtC,EAAE,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9C,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AACvF,CAAC;AACD,SAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE;AACpE,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AACnD,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK;AACrD,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AAChC,IAAI,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAClE,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC5C,IAAI,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AACpC,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC1D,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACtG,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AACjF,MAAM,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"validate-values.js","sources":["../../src/validate/validate-values.ts"],"sourcesContent":["import { filterErrors } from '../filter-errors';\nimport { getPath } from '../paths';\nimport { FormValidateInput, FormErrors, FormRulesRecord } from '../types';\n\nfunction getValidationResults(errors: FormErrors) {\n const filteredErrors = filterErrors(errors);\n return { hasErrors: Object.keys(filteredErrors).length > 0, errors: filteredErrors };\n}\n\nfunction validateRulesRecord<T>(\n rules: FormRulesRecord<T>,\n values: T,\n path = '',\n errors: FormErrors = {}\n) {\n if (typeof rules !== 'object' || rules === null) {\n return errors;\n }\n\n return Object.keys(rules).reduce((acc, ruleKey) => {\n const rule = rules[ruleKey];\n const rulePath = `${path === '' ? '' : `${path}.`}${ruleKey}`;\n const value = getPath(rulePath, values);\n let arrayValidation = false;\n\n if (typeof rule === 'function') {\n acc[rulePath] = rule(value, values);\n }\n\n if (typeof rule === 'object' && Array.isArray(value)) {\n arrayValidation = true;\n value.forEach((_item, index) =>\n validateRulesRecord(rule, values, `${rulePath}.${index}`, acc)\n );\n }\n\n if (typeof rule === 'object' && typeof value === 'object' && value !== null) {\n if (!arrayValidation) {\n validateRulesRecord(rule, values, rulePath, acc);\n }\n }\n\n return acc;\n }, errors);\n}\n\nexport function validateValues<T>(validate: FormValidateInput<T>, values: T) {\n if (typeof validate === 'function') {\n return getValidationResults(validate(values));\n }\n\n return getValidationResults(validateRulesRecord(validate, values));\n}\n"],"names":[],"mappings":";;;AAEA,SAAS,oBAAoB,CAAC,MAAM,EAAE;AACtC,EAAE,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9C,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AACvF,CAAC;AACD,SAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE;AACpE,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AACnD,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK;AACrD,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AAChC,IAAI,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAClE,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC5C,IAAI,IAAI,eAAe,GAAG,KAAK,CAAC;AAChC,IAAI,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AACpC,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC1D,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACtG,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AACjF,MAAM,IAAI,CAAC,eAAe,EAAE;AAC5B,QAAQ,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;AACzD,OAAO;AACP,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,EAAE,MAAM,CAAC,CAAC;AACb,CAAC;AACM,SAAS,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE;AACjD,EAAE,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACtC,IAAI,OAAO,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,OAAO,oBAAoB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACrE;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clear-list-errors.d.ts","sourceRoot":"","sources":["../../src/filter-errors/clear-list-errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU;;EAarE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/filter-errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/filter-errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-values.d.ts","sourceRoot":"","sources":["../../src/validate/validate-values.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAmB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"validate-values.d.ts","sourceRoot":"","sources":["../../src/validate/validate-values.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAmB,MAAM,UAAU,CAAC;AA4C1E,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;;;EAM1E"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mantine/form",
|
|
3
3
|
"description": "Mantine form management library",
|
|
4
|
-
"version": "5.0.
|
|
4
|
+
"version": "5.0.3",
|
|
5
5
|
"main": "cjs/index.js",
|
|
6
6
|
"module": "esm/index.js",
|
|
7
7
|
"types": "lib/index.d.ts",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"react": ">=16.8.0"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"
|
|
21
|
+
"klona": "^2.0.5"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {}
|
|
24
24
|
}
|