@mantine/form 5.9.6 → 5.10.1

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.
Files changed (63) hide show
  1. package/cjs/get-status/get-status.js +1 -1
  2. package/cjs/get-status/get-status.js.map +1 -1
  3. package/cjs/index.js +11 -3
  4. package/cjs/index.js.map +1 -1
  5. package/cjs/resolvers/superstruct-resolver/superstruct-resolver.js +22 -0
  6. package/cjs/resolvers/superstruct-resolver/superstruct-resolver.js.map +1 -0
  7. package/cjs/use-form.js +8 -4
  8. package/cjs/use-form.js.map +1 -1
  9. package/cjs/validators/has-length/has-length.js +33 -0
  10. package/cjs/validators/has-length/has-length.js.map +1 -0
  11. package/cjs/validators/is-email/is-email.js +12 -0
  12. package/cjs/validators/is-email/is-email.js.map +1 -0
  13. package/cjs/validators/is-in-range/is-in-range.js +23 -0
  14. package/cjs/validators/is-in-range/is-in-range.js.map +1 -0
  15. package/cjs/validators/{not-empty.js → is-not-empty/is-not-empty.js} +6 -3
  16. package/cjs/validators/is-not-empty/is-not-empty.js.map +1 -0
  17. package/cjs/validators/{matches.js → matches/matches.js} +0 -0
  18. package/cjs/validators/matches/matches.js.map +1 -0
  19. package/esm/get-status/get-status.js +1 -1
  20. package/esm/get-status/get-status.js.map +1 -1
  21. package/esm/index.js +6 -2
  22. package/esm/index.js.map +1 -1
  23. package/esm/resolvers/superstruct-resolver/superstruct-resolver.js +18 -0
  24. package/esm/resolvers/superstruct-resolver/superstruct-resolver.js.map +1 -0
  25. package/esm/use-form.js +8 -4
  26. package/esm/use-form.js.map +1 -1
  27. package/esm/validators/has-length/has-length.js +29 -0
  28. package/esm/validators/has-length/has-length.js.map +1 -0
  29. package/esm/validators/is-email/is-email.js +8 -0
  30. package/esm/validators/is-email/is-email.js.map +1 -0
  31. package/esm/validators/is-in-range/is-in-range.js +19 -0
  32. package/esm/validators/is-in-range/is-in-range.js.map +1 -0
  33. package/esm/validators/{not-empty.js → is-not-empty/is-not-empty.js} +6 -3
  34. package/esm/validators/is-not-empty/is-not-empty.js.map +1 -0
  35. package/esm/validators/{matches.js → matches/matches.js} +0 -0
  36. package/esm/validators/matches/matches.js.map +1 -0
  37. package/lib/index.d.ts +2 -1
  38. package/lib/index.d.ts.map +1 -1
  39. package/lib/resolvers/superstruct-resolver/superstruct-resolver.d.ts +3 -0
  40. package/lib/resolvers/superstruct-resolver/superstruct-resolver.d.ts.map +1 -0
  41. package/lib/types.d.ts +39 -32
  42. package/lib/types.d.ts.map +1 -1
  43. package/lib/use-form.d.ts.map +1 -1
  44. package/lib/validators/has-length/has-length.d.ts +9 -0
  45. package/lib/validators/has-length/has-length.d.ts.map +1 -0
  46. package/lib/validators/index.d.ts +5 -2
  47. package/lib/validators/index.d.ts.map +1 -1
  48. package/lib/validators/is-email/is-email.d.ts +3 -0
  49. package/lib/validators/is-email/is-email.d.ts.map +1 -0
  50. package/lib/validators/is-in-range/is-in-range.d.ts +8 -0
  51. package/lib/validators/is-in-range/is-in-range.d.ts.map +1 -0
  52. package/lib/validators/is-not-empty/is-not-empty.d.ts +3 -0
  53. package/lib/validators/is-not-empty/is-not-empty.d.ts.map +1 -0
  54. package/lib/validators/{matches.d.ts → matches/matches.d.ts} +0 -0
  55. package/lib/validators/matches/matches.d.ts.map +1 -0
  56. package/package.json +1 -1
  57. package/cjs/validators/matches.js.map +0 -1
  58. package/cjs/validators/not-empty.js.map +0 -1
  59. package/esm/validators/matches.js.map +0 -1
  60. package/esm/validators/not-empty.js.map +0 -1
  61. package/lib/validators/matches.d.ts.map +0 -1
  62. package/lib/validators/not-empty.d.ts +0 -3
  63. package/lib/validators/not-empty.d.ts.map +0 -1
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  function getStatus(status, path) {
6
6
  const paths = Object.keys(status);
7
7
  if (typeof path === "string") {
8
- const nestedPaths = paths.filter((statusPath) => statusPath.includes(`${path}.`));
8
+ const nestedPaths = paths.filter((statusPath) => statusPath.startsWith(`${path}.`));
9
9
  return status[path] || nestedPaths.some((statusPath) => status[statusPath]) || false;
10
10
  }
11
11
  return paths.some((statusPath) => status[statusPath]);
@@ -1 +1 @@
1
- {"version":3,"file":"get-status.js","sources":["../../src/get-status/get-status.ts"],"sourcesContent":["import { FormStatus } from '../types';\n\nexport function getStatus(status: FormStatus, path?: unknown) {\n const paths = Object.keys(status);\n\n if (typeof path === 'string') {\n const nestedPaths = paths.filter((statusPath) => statusPath.includes(`${path}.`));\n return status[path] || nestedPaths.some((statusPath) => status[statusPath]) || false;\n }\n\n return paths.some((statusPath) => status[statusPath]);\n}\n"],"names":[],"mappings":";;;;AAAO,SAAS,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE;AACxC,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACpC,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,IAAI,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtF,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,CAAC;AACzF,GAAG;AACH,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACxD;;;;"}
1
+ {"version":3,"file":"get-status.js","sources":["../../src/get-status/get-status.ts"],"sourcesContent":["import { FormStatus } from '../types';\n\nexport function getStatus(status: FormStatus, path?: unknown) {\n const paths = Object.keys(status);\n\n if (typeof path === 'string') {\n const nestedPaths = paths.filter((statusPath) => statusPath.startsWith(`${path}.`));\n return status[path] || nestedPaths.some((statusPath) => status[statusPath]) || false;\n }\n\n return paths.some((statusPath) => status[statusPath]);\n}\n"],"names":[],"mappings":";;;;AAAO,SAAS,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE;AACxC,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACpC,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,IAAI,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxF,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,CAAC;AACzF,GAAG;AACH,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACxD;;;;"}
package/cjs/index.js CHANGED
@@ -6,10 +6,14 @@ var useForm = require('./use-form.js');
6
6
  var FormProvider = require('./FormProvider/FormProvider.js');
7
7
  var formIndex = require('./form-index.js');
8
8
  var zodResolver = require('./resolvers/zod-resolver/zod-resolver.js');
9
+ var superstructResolver = require('./resolvers/superstruct-resolver/superstruct-resolver.js');
9
10
  var yupResolver = require('./resolvers/yup-resolver/yup-resolver.js');
10
11
  var joiResolver = require('./resolvers/joi-resolver/joi-resolver.js');
11
- var notEmpty = require('./validators/not-empty.js');
12
- var matches = require('./validators/matches.js');
12
+ var isNotEmpty = require('./validators/is-not-empty/is-not-empty.js');
13
+ var matches = require('./validators/matches/matches.js');
14
+ var isEmail = require('./validators/is-email/is-email.js');
15
+ var hasLength = require('./validators/has-length/has-length.js');
16
+ var isInRange = require('./validators/is-in-range/is-in-range.js');
13
17
 
14
18
 
15
19
 
@@ -17,8 +21,12 @@ exports.useForm = useForm.useForm;
17
21
  exports.createFormContext = FormProvider.createFormContext;
18
22
  exports.FORM_INDEX = formIndex.FORM_INDEX;
19
23
  exports.zodResolver = zodResolver.zodResolver;
24
+ exports.superstructResolver = superstructResolver.superstructResolver;
20
25
  exports.yupResolver = yupResolver.yupResolver;
21
26
  exports.joiResolver = joiResolver.joiResolver;
22
- exports.notEmpty = notEmpty.notEmpty;
27
+ exports.isNotEmpty = isNotEmpty.isNotEmpty;
23
28
  exports.matches = matches.matches;
29
+ exports.isEmail = isEmail.isEmail;
30
+ exports.hasLength = hasLength.hasLength;
31
+ exports.isInRange = isInRange.isInRange;
24
32
  //# sourceMappingURL=index.js.map
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ function superstructResolver(schema) {
6
+ function structValidation(values) {
7
+ const formErrors = {};
8
+ const [err] = schema.validate(values);
9
+ if (!err) {
10
+ return formErrors;
11
+ }
12
+ err.failures().forEach((fieldFailure) => {
13
+ const fieldName = fieldFailure.path.join(" ");
14
+ formErrors[fieldFailure.path.join(".")] = `${fieldName}: ${fieldFailure.message}`;
15
+ });
16
+ return formErrors;
17
+ }
18
+ return structValidation;
19
+ }
20
+
21
+ exports.superstructResolver = superstructResolver;
22
+ //# sourceMappingURL=superstruct-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"superstruct-resolver.js","sources":["../../../src/resolvers/superstruct-resolver/superstruct-resolver.ts"],"sourcesContent":["import type { FormErrors } from '../../types';\n\ntype StructFailure = {\n value: any;\n key: any;\n type: string;\n refinement: string | undefined;\n message: string;\n explanation?: string;\n branch: Array<any>;\n path: Array<any>;\n};\n\ntype StructValidaationError = {\n failures: () => Array<StructFailure>;\n};\n\nexport function superstructResolver(schema: any) {\n function structValidation(values: Record<string, any>): FormErrors {\n const formErrors: FormErrors = {};\n\n const [err]: [StructValidaationError | null, unknown] = schema.validate(values);\n if (!err) {\n return formErrors;\n }\n\n err.failures().forEach((fieldFailure) => {\n const fieldName = fieldFailure.path.join(' ');\n formErrors[fieldFailure.path.join('.')] = `${fieldName}: ${fieldFailure.message}`;\n });\n\n return formErrors;\n }\n\n return structValidation;\n}\n"],"names":[],"mappings":";;;;AAAO,SAAS,mBAAmB,CAAC,MAAM,EAAE;AAC5C,EAAE,SAAS,gBAAgB,CAAC,MAAM,EAAE;AACpC,IAAI,MAAM,UAAU,GAAG,EAAE,CAAC;AAC1B,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1C,IAAI,IAAI,CAAC,GAAG,EAAE;AACd,MAAM,OAAO,UAAU,CAAC;AACxB,KAAK;AACL,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK;AAC7C,MAAM,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpD,MAAM,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AACxF,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,gBAAgB,CAAC;AAC1B;;;;"}
package/cjs/use-form.js CHANGED
@@ -169,15 +169,19 @@ function useForm({
169
169
  reset();
170
170
  }, []);
171
171
  const isDirty = (path) => {
172
- const isOverridden = Object.keys(dirty).length > 0;
173
- if (isOverridden) {
174
- return getStatus.getStatus(dirty, path);
175
- }
176
172
  if (path) {
173
+ const overridenValue = getPath.getPath(path, dirty);
174
+ if (typeof overridenValue === "boolean") {
175
+ return overridenValue;
176
+ }
177
177
  const sliceOfValues = getPath.getPath(path, values);
178
178
  const sliceOfInitialValues = getPath.getPath(path, _dirtyValues.current);
179
179
  return !isEqual__default(sliceOfValues, sliceOfInitialValues);
180
180
  }
181
+ const isOverridden = Object.keys(dirty).length > 0;
182
+ if (isOverridden) {
183
+ return getStatus.getStatus(dirty);
184
+ }
181
185
  return !isEqual__default(values, _dirtyValues.current);
182
186
  };
183
187
  const isTouched = React.useCallback((path) => getStatus.getStatus(touched, path), [touched]);
@@ -1 +1 @@
1
- {"version":3,"file":"use-form.js","sources":["../src/use-form.ts"],"sourcesContent":["import { useState, useCallback, useRef } from 'react';\nimport isEqual from 'fast-deep-equal';\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 { getStatus } from './get-status';\nimport { clearListState } from './clear-list-state';\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 GetFieldStatus,\n ResetDirty,\n IsValid,\n _TransformValues,\n ClearFieldDirty,\n} from './types';\n\nexport function useForm<\n Values = Record<string, unknown>,\n TransformValues extends _TransformValues<Values> = (values: Values) => Values\n>({\n initialValues = {} as Values,\n initialErrors = {},\n initialDirty = {},\n initialTouched = {},\n clearInputErrorOnChange = true,\n validateInputOnChange = false,\n validateInputOnBlur = false,\n transformValues = ((values: Values) => values) as any,\n validate: rules,\n}: UseFormInput<Values, TransformValues> = {}): UseFormReturnType<Values, TransformValues> {\n const [touched, setTouched] = useState(initialTouched);\n const [dirty, setDirty] = useState(initialDirty);\n const [values, _setValues] = useState(initialValues);\n const [errors, _setErrors] = useState(filterErrors(initialErrors));\n const _dirtyValues = useRef<Values>(initialValues);\n const _setDirtyValues = (_values: Values) => {\n _dirtyValues.current = _values;\n };\n\n const resetTouched = useCallback(() => setTouched({}), []);\n const resetDirty: ResetDirty<Values> = (_values) => {\n _setDirtyValues(_values || values);\n setDirty({});\n };\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 resetDirty(initialValues);\n resetTouched();\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 clearFieldDirty: ClearFieldDirty = useCallback(\n (path) =>\n setDirty((current) => {\n if (typeof path !== 'string') {\n return current;\n }\n\n const result = clearListState(path, current);\n delete result[path];\n return result;\n }),\n []\n );\n\n const setFieldValue: SetFieldValue<Values> = useCallback((path, value) => {\n const shouldValidate = shouldValidateOnChange(path, validateInputOnChange);\n clearFieldDirty(path);\n setTouched((currentTouched) => ({ ...currentTouched, [path]: true }));\n _setValues((current) => {\n const result = setPath(path, value, current);\n\n if (shouldValidate) {\n const validationResults = validateFieldValue(path, rules, result);\n validationResults.hasError\n ? setFieldError(path, validationResults.error)\n : clearFieldError(path);\n }\n\n return result;\n });\n\n !shouldValidate && clearInputErrorOnChange && setFieldError(path, null);\n }, []);\n\n const setValues: SetValues<Values> = useCallback((payload) => {\n _setValues((currentValues) => {\n const valuesPartial = typeof payload === 'function' ? payload(currentValues) : payload;\n return { ...currentValues, ...valuesPartial };\n });\n clearInputErrorOnChange && clearErrors();\n }, []);\n\n const reorderListItem: ReorderListItem<Values> = useCallback((path, payload) => {\n clearFieldDirty(path);\n _setValues((current) => reorderPath(path, payload, current));\n }, []);\n\n const removeListItem: RemoveListItem<Values> = useCallback((path, index) => {\n clearFieldDirty(path);\n _setValues((current) => removePath(path, index, current));\n _setErrors((errs) => clearListState(path, errs));\n }, []);\n\n const insertListItem: InsertListItem<Values> = useCallback((path, item, index) => {\n clearFieldDirty(path);\n _setValues((current) => insertPath(path, item, index, current));\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', withFocus = true } = {}\n ) => {\n const onChange = getInputOnChange((value) => setFieldValue(path, value as any));\n const payload: Record<string, any> = { onChange };\n\n if (withError) {\n payload.error = errors[path];\n }\n\n if (type === 'checkbox') {\n payload.checked = getPath(path, values);\n } else {\n payload.value = getPath(path, values);\n }\n\n if (withFocus) {\n payload.onFocus = () => setTouched((current) => ({ ...current, [path]: true }));\n payload.onBlur = () => {\n if (shouldValidateOnChange(path, validateInputOnBlur)) {\n const validationResults = validateFieldValue(path, rules, values);\n\n validationResults.hasError\n ? setFieldError(path, validationResults.error)\n : clearFieldError(path);\n }\n };\n }\n\n return payload;\n };\n\n const onSubmit: OnSubmit<Values, TransformValues> =\n (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(transformValues(values) as any, event);\n }\n };\n\n const onReset: OnReset = useCallback((event) => {\n event.preventDefault();\n reset();\n }, []);\n\n const isDirty: GetFieldStatus<Values> = (path) => {\n const isOverridden = Object.keys(dirty).length > 0;\n\n if (isOverridden) {\n return getStatus(dirty, path);\n }\n\n if (path) {\n const sliceOfValues = getPath(path, values);\n const sliceOfInitialValues = getPath(path, _dirtyValues.current);\n return !isEqual(sliceOfValues, sliceOfInitialValues);\n }\n\n return !isEqual(values, _dirtyValues.current);\n };\n\n const isTouched: GetFieldStatus<Values> = useCallback(\n (path) => getStatus(touched, path),\n [touched]\n );\n\n const isValid: IsValid<Values> = useCallback(\n (path) =>\n path\n ? !validateFieldValue(path, rules, values).hasError\n : !validateValues(rules, values).hasErrors,\n [values, rules]\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 isDirty,\n isTouched,\n setTouched,\n setDirty,\n resetTouched,\n resetDirty,\n isValid,\n };\n}\n"],"names":["useState","filterErrors","useRef","useCallback","clearListState","shouldValidateOnChange","setPath","validateFieldValue","reorderPath","removePath","insertPath","validateValues","getInputOnChange","getPath","getStatus","isEqual"],"mappings":"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"}
1
+ {"version":3,"file":"use-form.js","sources":["../src/use-form.ts"],"sourcesContent":["import { useState, useCallback, useRef } from 'react';\nimport isEqual from 'fast-deep-equal';\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 { getStatus } from './get-status';\nimport { clearListState } from './clear-list-state';\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 GetFieldStatus,\n ResetDirty,\n IsValid,\n _TransformValues,\n ClearFieldDirty,\n} from './types';\n\nexport function useForm<\n Values = Record<string, unknown>,\n TransformValues extends _TransformValues<Values> = (values: Values) => Values\n>({\n initialValues = {} as Values,\n initialErrors = {},\n initialDirty = {},\n initialTouched = {},\n clearInputErrorOnChange = true,\n validateInputOnChange = false,\n validateInputOnBlur = false,\n transformValues = ((values: Values) => values) as any,\n validate: rules,\n}: UseFormInput<Values, TransformValues> = {}): UseFormReturnType<Values, TransformValues> {\n const [touched, setTouched] = useState(initialTouched);\n const [dirty, setDirty] = useState(initialDirty);\n const [values, _setValues] = useState(initialValues);\n const [errors, _setErrors] = useState(filterErrors(initialErrors));\n const _dirtyValues = useRef<Values>(initialValues);\n const _setDirtyValues = (_values: Values) => {\n _dirtyValues.current = _values;\n };\n\n const resetTouched = useCallback(() => setTouched({}), []);\n const resetDirty: ResetDirty<Values> = (_values) => {\n _setDirtyValues(_values || values);\n setDirty({});\n };\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 resetDirty(initialValues);\n resetTouched();\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 clearFieldDirty: ClearFieldDirty = useCallback(\n (path) =>\n setDirty((current) => {\n if (typeof path !== 'string') {\n return current;\n }\n\n const result = clearListState(path, current);\n delete result[path];\n return result;\n }),\n []\n );\n\n const setFieldValue: SetFieldValue<Values> = useCallback((path, value) => {\n const shouldValidate = shouldValidateOnChange(path, validateInputOnChange);\n clearFieldDirty(path);\n setTouched((currentTouched) => ({ ...currentTouched, [path]: true }));\n _setValues((current) => {\n const result = setPath(path, value, current);\n\n if (shouldValidate) {\n const validationResults = validateFieldValue(path, rules, result);\n validationResults.hasError\n ? setFieldError(path, validationResults.error)\n : clearFieldError(path);\n }\n\n return result;\n });\n\n !shouldValidate && clearInputErrorOnChange && setFieldError(path, null);\n }, []);\n\n const setValues: SetValues<Values> = useCallback((payload) => {\n _setValues((currentValues) => {\n const valuesPartial = typeof payload === 'function' ? payload(currentValues) : payload;\n return { ...currentValues, ...valuesPartial };\n });\n clearInputErrorOnChange && clearErrors();\n }, []);\n\n const reorderListItem: ReorderListItem<Values> = useCallback((path, payload) => {\n clearFieldDirty(path);\n _setValues((current) => reorderPath(path, payload, current));\n }, []);\n\n const removeListItem: RemoveListItem<Values> = useCallback((path, index) => {\n clearFieldDirty(path);\n _setValues((current) => removePath(path, index, current));\n _setErrors((errs) => clearListState(path, errs));\n }, []);\n\n const insertListItem: InsertListItem<Values> = useCallback((path, item, index) => {\n clearFieldDirty(path);\n _setValues((current) => insertPath(path, item, index, current));\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', withFocus = true } = {}\n ) => {\n const onChange = getInputOnChange((value) => setFieldValue(path, value as any));\n const payload: any = { onChange };\n\n if (withError) {\n payload.error = errors[path];\n }\n\n if (type === 'checkbox') {\n payload.checked = getPath(path, values);\n } else {\n payload.value = getPath(path, values);\n }\n\n if (withFocus) {\n payload.onFocus = () => setTouched((current) => ({ ...current, [path]: true }));\n payload.onBlur = () => {\n if (shouldValidateOnChange(path, validateInputOnBlur)) {\n const validationResults = validateFieldValue(path, rules, values);\n\n validationResults.hasError\n ? setFieldError(path, validationResults.error)\n : clearFieldError(path);\n }\n };\n }\n\n return payload;\n };\n\n const onSubmit: OnSubmit<Values, TransformValues> =\n (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(transformValues(values) as any, event);\n }\n };\n\n const onReset: OnReset = useCallback((event) => {\n event.preventDefault();\n reset();\n }, []);\n\n const isDirty: GetFieldStatus<Values> = (path) => {\n if (path) {\n const overridenValue = getPath(path, dirty);\n if (typeof overridenValue === 'boolean') {\n return overridenValue;\n }\n\n const sliceOfValues = getPath(path, values);\n const sliceOfInitialValues = getPath(path, _dirtyValues.current);\n return !isEqual(sliceOfValues, sliceOfInitialValues);\n }\n\n const isOverridden = Object.keys(dirty).length > 0;\n if (isOverridden) {\n return getStatus(dirty);\n }\n\n return !isEqual(values, _dirtyValues.current);\n };\n\n const isTouched: GetFieldStatus<Values> = useCallback(\n (path) => getStatus(touched, path),\n [touched]\n );\n\n const isValid: IsValid<Values> = useCallback(\n (path) =>\n path\n ? !validateFieldValue(path, rules, values).hasError\n : !validateValues(rules, values).hasErrors,\n [values, rules]\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 isDirty,\n isTouched,\n setTouched,\n setDirty,\n resetTouched,\n resetDirty,\n isValid,\n };\n}\n"],"names":["useState","filterErrors","useRef","useCallback","clearListState","shouldValidateOnChange","setPath","validateFieldValue","reorderPath","removePath","insertPath","validateValues","getInputOnChange","getPath","isEqual","getStatus"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ function isLengthValid(payload, value) {
6
+ if (typeof payload === "number") {
7
+ return value.length === payload;
8
+ }
9
+ const { max, min } = payload;
10
+ let valid = true;
11
+ if (typeof max === "number" && value.length > max) {
12
+ valid = false;
13
+ }
14
+ if (typeof min === "number" && value.length < min) {
15
+ valid = false;
16
+ }
17
+ return valid;
18
+ }
19
+ function hasLength(payload, error) {
20
+ const _error = error || true;
21
+ return (value) => {
22
+ if (typeof value === "string") {
23
+ return isLengthValid(payload, value.trim()) ? null : _error;
24
+ }
25
+ if (typeof value === "object" && value !== null && "length" in value) {
26
+ return isLengthValid(payload, value) ? null : _error;
27
+ }
28
+ return _error;
29
+ };
30
+ }
31
+
32
+ exports.hasLength = hasLength;
33
+ //# sourceMappingURL=has-length.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-length.js","sources":["../../../src/validators/has-length/has-length.ts"],"sourcesContent":["import React from 'react';\n\ninterface 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) => {\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"],"names":[],"mappings":";;;;AAAA,SAAS,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE;AACvC,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACnC,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC;AACpC,GAAG;AACH,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AAC/B,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC;AACnB,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE;AACrD,IAAI,KAAK,GAAG,KAAK,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE;AACrD,IAAI,KAAK,GAAG,KAAK,CAAC;AAClB,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACM,SAAS,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE;AAC1C,EAAE,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC;AAC/B,EAAE,OAAO,CAAC,KAAK,KAAK;AACpB,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,OAAO,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;AAClE,KAAK;AACL,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,QAAQ,IAAI,KAAK,EAAE;AAC1E,MAAM,OAAO,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;AAC3D,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG,CAAC;AACJ;;;;"}
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var matches = require('../matches/matches.js');
6
+
7
+ function isEmail(error) {
8
+ return matches.matches(/^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/, error);
9
+ }
10
+
11
+ exports.isEmail = isEmail;
12
+ //# sourceMappingURL=is-email.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-email.js","sources":["../../../src/validators/is-email/is-email.ts"],"sourcesContent":["import React from 'react';\nimport { matches } from '../matches/matches';\n\nexport function isEmail(error?: React.ReactNode) {\n return matches(/^\\w+([.-]?\\w+)*@\\w+([.-]?\\w+)*(\\.\\w{2,3})+$/, error);\n}\n"],"names":["matches"],"mappings":";;;;;;AACO,SAAS,OAAO,CAAC,KAAK,EAAE;AAC/B,EAAE,OAAOA,eAAO,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAC;AACvE;;;;"}
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ function isInRange({ min, max }, error) {
6
+ const _error = error || true;
7
+ return (value) => {
8
+ if (typeof value !== "number") {
9
+ return _error;
10
+ }
11
+ let valid = true;
12
+ if (typeof min === "number" && value < min) {
13
+ valid = false;
14
+ }
15
+ if (typeof max === "number" && value > max) {
16
+ valid = false;
17
+ }
18
+ return valid ? null : _error;
19
+ };
20
+ }
21
+
22
+ exports.isInRange = isInRange;
23
+ //# sourceMappingURL=is-in-range.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-in-range.js","sources":["../../../src/validators/is-in-range/is-in-range.ts"],"sourcesContent":["import React from 'react';\n\ninterface 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) => {\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"],"names":[],"mappings":";;;;AAAO,SAAS,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE;AAC/C,EAAE,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC;AAC/B,EAAE,OAAO,CAAC,KAAK,KAAK;AACpB,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,GAAG,GAAG,EAAE;AAChD,MAAM,KAAK,GAAG,KAAK,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,GAAG,GAAG,EAAE;AAChD,MAAM,KAAK,GAAG,KAAK,CAAC;AACpB,KAAK;AACL,IAAI,OAAO,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;AACjC,GAAG,CAAC;AACJ;;;;"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- function notEmpty(error) {
5
+ function isNotEmpty(error) {
6
6
  const _error = error || true;
7
7
  return (value) => {
8
8
  if (typeof value === "string") {
@@ -14,9 +14,12 @@ function notEmpty(error) {
14
14
  if (value === null || value === void 0) {
15
15
  return _error;
16
16
  }
17
+ if (value === false) {
18
+ return _error;
19
+ }
17
20
  return null;
18
21
  };
19
22
  }
20
23
 
21
- exports.notEmpty = notEmpty;
22
- //# sourceMappingURL=not-empty.js.map
24
+ exports.isNotEmpty = isNotEmpty;
25
+ //# sourceMappingURL=is-not-empty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-not-empty.js","sources":["../../../src/validators/is-not-empty/is-not-empty.ts"],"sourcesContent":["import React from 'react';\n\nexport function isNotEmpty(error?: React.ReactNode) {\n const _error = error || true;\n\n return (value: unknown) => {\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"],"names":[],"mappings":";;;;AAAO,SAAS,UAAU,CAAC,KAAK,EAAE;AAClC,EAAE,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC;AAC/B,EAAE,OAAO,CAAC,KAAK,KAAK;AACpB,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;AACrD,KAAK;AACL,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC9B,MAAM,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;AAC9C,KAAK;AACL,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE;AAC5C,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE;AACzB,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,CAAC;AACJ;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matches.js","sources":["../../../src/validators/matches/matches.ts"],"sourcesContent":["import React from 'react';\n\nexport function matches(regexp: RegExp, error?: React.ReactNode) {\n const _error = error || true;\n\n return (value: unknown) => {\n if (typeof value !== 'string') {\n return _error;\n }\n\n return regexp.test(value) ? null : _error;\n };\n}\n"],"names":[],"mappings":";;;;AAAO,SAAS,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE;AACvC,EAAE,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC;AAC/B,EAAE,OAAO,CAAC,KAAK,KAAK;AACpB,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;AAC9C,GAAG,CAAC;AACJ;;;;"}
@@ -1,7 +1,7 @@
1
1
  function getStatus(status, path) {
2
2
  const paths = Object.keys(status);
3
3
  if (typeof path === "string") {
4
- const nestedPaths = paths.filter((statusPath) => statusPath.includes(`${path}.`));
4
+ const nestedPaths = paths.filter((statusPath) => statusPath.startsWith(`${path}.`));
5
5
  return status[path] || nestedPaths.some((statusPath) => status[statusPath]) || false;
6
6
  }
7
7
  return paths.some((statusPath) => status[statusPath]);
@@ -1 +1 @@
1
- {"version":3,"file":"get-status.js","sources":["../../src/get-status/get-status.ts"],"sourcesContent":["import { FormStatus } from '../types';\n\nexport function getStatus(status: FormStatus, path?: unknown) {\n const paths = Object.keys(status);\n\n if (typeof path === 'string') {\n const nestedPaths = paths.filter((statusPath) => statusPath.includes(`${path}.`));\n return status[path] || nestedPaths.some((statusPath) => status[statusPath]) || false;\n }\n\n return paths.some((statusPath) => status[statusPath]);\n}\n"],"names":[],"mappings":"AAAO,SAAS,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE;AACxC,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACpC,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,IAAI,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtF,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,CAAC;AACzF,GAAG;AACH,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACxD;;;;"}
1
+ {"version":3,"file":"get-status.js","sources":["../../src/get-status/get-status.ts"],"sourcesContent":["import { FormStatus } from '../types';\n\nexport function getStatus(status: FormStatus, path?: unknown) {\n const paths = Object.keys(status);\n\n if (typeof path === 'string') {\n const nestedPaths = paths.filter((statusPath) => statusPath.startsWith(`${path}.`));\n return status[path] || nestedPaths.some((statusPath) => status[statusPath]) || false;\n }\n\n return paths.some((statusPath) => status[statusPath]);\n}\n"],"names":[],"mappings":"AAAO,SAAS,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE;AACxC,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACpC,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,IAAI,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxF,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,CAAC;AACzF,GAAG;AACH,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACxD;;;;"}
package/esm/index.js CHANGED
@@ -2,8 +2,12 @@ export { useForm } from './use-form.js';
2
2
  export { createFormContext } from './FormProvider/FormProvider.js';
3
3
  export { FORM_INDEX } from './form-index.js';
4
4
  export { zodResolver } from './resolvers/zod-resolver/zod-resolver.js';
5
+ export { superstructResolver } from './resolvers/superstruct-resolver/superstruct-resolver.js';
5
6
  export { yupResolver } from './resolvers/yup-resolver/yup-resolver.js';
6
7
  export { joiResolver } from './resolvers/joi-resolver/joi-resolver.js';
7
- export { notEmpty } from './validators/not-empty.js';
8
- export { matches } from './validators/matches.js';
8
+ export { isNotEmpty } from './validators/is-not-empty/is-not-empty.js';
9
+ export { matches } from './validators/matches/matches.js';
10
+ export { isEmail } from './validators/is-email/is-email.js';
11
+ export { hasLength } from './validators/has-length/has-length.js';
12
+ export { isInRange } from './validators/is-in-range/is-in-range.js';
9
13
  //# sourceMappingURL=index.js.map
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -0,0 +1,18 @@
1
+ function superstructResolver(schema) {
2
+ function structValidation(values) {
3
+ const formErrors = {};
4
+ const [err] = schema.validate(values);
5
+ if (!err) {
6
+ return formErrors;
7
+ }
8
+ err.failures().forEach((fieldFailure) => {
9
+ const fieldName = fieldFailure.path.join(" ");
10
+ formErrors[fieldFailure.path.join(".")] = `${fieldName}: ${fieldFailure.message}`;
11
+ });
12
+ return formErrors;
13
+ }
14
+ return structValidation;
15
+ }
16
+
17
+ export { superstructResolver };
18
+ //# sourceMappingURL=superstruct-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"superstruct-resolver.js","sources":["../../../src/resolvers/superstruct-resolver/superstruct-resolver.ts"],"sourcesContent":["import type { FormErrors } from '../../types';\n\ntype StructFailure = {\n value: any;\n key: any;\n type: string;\n refinement: string | undefined;\n message: string;\n explanation?: string;\n branch: Array<any>;\n path: Array<any>;\n};\n\ntype StructValidaationError = {\n failures: () => Array<StructFailure>;\n};\n\nexport function superstructResolver(schema: any) {\n function structValidation(values: Record<string, any>): FormErrors {\n const formErrors: FormErrors = {};\n\n const [err]: [StructValidaationError | null, unknown] = schema.validate(values);\n if (!err) {\n return formErrors;\n }\n\n err.failures().forEach((fieldFailure) => {\n const fieldName = fieldFailure.path.join(' ');\n formErrors[fieldFailure.path.join('.')] = `${fieldName}: ${fieldFailure.message}`;\n });\n\n return formErrors;\n }\n\n return structValidation;\n}\n"],"names":[],"mappings":"AAAO,SAAS,mBAAmB,CAAC,MAAM,EAAE;AAC5C,EAAE,SAAS,gBAAgB,CAAC,MAAM,EAAE;AACpC,IAAI,MAAM,UAAU,GAAG,EAAE,CAAC;AAC1B,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1C,IAAI,IAAI,CAAC,GAAG,EAAE;AACd,MAAM,OAAO,UAAU,CAAC;AACxB,KAAK;AACL,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK;AAC7C,MAAM,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpD,MAAM,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AACxF,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,gBAAgB,CAAC;AAC1B;;;;"}
package/esm/use-form.js CHANGED
@@ -161,15 +161,19 @@ function useForm({
161
161
  reset();
162
162
  }, []);
163
163
  const isDirty = (path) => {
164
- const isOverridden = Object.keys(dirty).length > 0;
165
- if (isOverridden) {
166
- return getStatus(dirty, path);
167
- }
168
164
  if (path) {
165
+ const overridenValue = getPath(path, dirty);
166
+ if (typeof overridenValue === "boolean") {
167
+ return overridenValue;
168
+ }
169
169
  const sliceOfValues = getPath(path, values);
170
170
  const sliceOfInitialValues = getPath(path, _dirtyValues.current);
171
171
  return !isEqual(sliceOfValues, sliceOfInitialValues);
172
172
  }
173
+ const isOverridden = Object.keys(dirty).length > 0;
174
+ if (isOverridden) {
175
+ return getStatus(dirty);
176
+ }
173
177
  return !isEqual(values, _dirtyValues.current);
174
178
  };
175
179
  const isTouched = useCallback((path) => getStatus(touched, path), [touched]);
@@ -1 +1 @@
1
- {"version":3,"file":"use-form.js","sources":["../src/use-form.ts"],"sourcesContent":["import { useState, useCallback, useRef } from 'react';\nimport isEqual from 'fast-deep-equal';\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 { getStatus } from './get-status';\nimport { clearListState } from './clear-list-state';\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 GetFieldStatus,\n ResetDirty,\n IsValid,\n _TransformValues,\n ClearFieldDirty,\n} from './types';\n\nexport function useForm<\n Values = Record<string, unknown>,\n TransformValues extends _TransformValues<Values> = (values: Values) => Values\n>({\n initialValues = {} as Values,\n initialErrors = {},\n initialDirty = {},\n initialTouched = {},\n clearInputErrorOnChange = true,\n validateInputOnChange = false,\n validateInputOnBlur = false,\n transformValues = ((values: Values) => values) as any,\n validate: rules,\n}: UseFormInput<Values, TransformValues> = {}): UseFormReturnType<Values, TransformValues> {\n const [touched, setTouched] = useState(initialTouched);\n const [dirty, setDirty] = useState(initialDirty);\n const [values, _setValues] = useState(initialValues);\n const [errors, _setErrors] = useState(filterErrors(initialErrors));\n const _dirtyValues = useRef<Values>(initialValues);\n const _setDirtyValues = (_values: Values) => {\n _dirtyValues.current = _values;\n };\n\n const resetTouched = useCallback(() => setTouched({}), []);\n const resetDirty: ResetDirty<Values> = (_values) => {\n _setDirtyValues(_values || values);\n setDirty({});\n };\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 resetDirty(initialValues);\n resetTouched();\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 clearFieldDirty: ClearFieldDirty = useCallback(\n (path) =>\n setDirty((current) => {\n if (typeof path !== 'string') {\n return current;\n }\n\n const result = clearListState(path, current);\n delete result[path];\n return result;\n }),\n []\n );\n\n const setFieldValue: SetFieldValue<Values> = useCallback((path, value) => {\n const shouldValidate = shouldValidateOnChange(path, validateInputOnChange);\n clearFieldDirty(path);\n setTouched((currentTouched) => ({ ...currentTouched, [path]: true }));\n _setValues((current) => {\n const result = setPath(path, value, current);\n\n if (shouldValidate) {\n const validationResults = validateFieldValue(path, rules, result);\n validationResults.hasError\n ? setFieldError(path, validationResults.error)\n : clearFieldError(path);\n }\n\n return result;\n });\n\n !shouldValidate && clearInputErrorOnChange && setFieldError(path, null);\n }, []);\n\n const setValues: SetValues<Values> = useCallback((payload) => {\n _setValues((currentValues) => {\n const valuesPartial = typeof payload === 'function' ? payload(currentValues) : payload;\n return { ...currentValues, ...valuesPartial };\n });\n clearInputErrorOnChange && clearErrors();\n }, []);\n\n const reorderListItem: ReorderListItem<Values> = useCallback((path, payload) => {\n clearFieldDirty(path);\n _setValues((current) => reorderPath(path, payload, current));\n }, []);\n\n const removeListItem: RemoveListItem<Values> = useCallback((path, index) => {\n clearFieldDirty(path);\n _setValues((current) => removePath(path, index, current));\n _setErrors((errs) => clearListState(path, errs));\n }, []);\n\n const insertListItem: InsertListItem<Values> = useCallback((path, item, index) => {\n clearFieldDirty(path);\n _setValues((current) => insertPath(path, item, index, current));\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', withFocus = true } = {}\n ) => {\n const onChange = getInputOnChange((value) => setFieldValue(path, value as any));\n const payload: Record<string, any> = { onChange };\n\n if (withError) {\n payload.error = errors[path];\n }\n\n if (type === 'checkbox') {\n payload.checked = getPath(path, values);\n } else {\n payload.value = getPath(path, values);\n }\n\n if (withFocus) {\n payload.onFocus = () => setTouched((current) => ({ ...current, [path]: true }));\n payload.onBlur = () => {\n if (shouldValidateOnChange(path, validateInputOnBlur)) {\n const validationResults = validateFieldValue(path, rules, values);\n\n validationResults.hasError\n ? setFieldError(path, validationResults.error)\n : clearFieldError(path);\n }\n };\n }\n\n return payload;\n };\n\n const onSubmit: OnSubmit<Values, TransformValues> =\n (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(transformValues(values) as any, event);\n }\n };\n\n const onReset: OnReset = useCallback((event) => {\n event.preventDefault();\n reset();\n }, []);\n\n const isDirty: GetFieldStatus<Values> = (path) => {\n const isOverridden = Object.keys(dirty).length > 0;\n\n if (isOverridden) {\n return getStatus(dirty, path);\n }\n\n if (path) {\n const sliceOfValues = getPath(path, values);\n const sliceOfInitialValues = getPath(path, _dirtyValues.current);\n return !isEqual(sliceOfValues, sliceOfInitialValues);\n }\n\n return !isEqual(values, _dirtyValues.current);\n };\n\n const isTouched: GetFieldStatus<Values> = useCallback(\n (path) => getStatus(touched, path),\n [touched]\n );\n\n const isValid: IsValid<Values> = useCallback(\n (path) =>\n path\n ? !validateFieldValue(path, rules, values).hasError\n : !validateValues(rules, values).hasErrors,\n [values, rules]\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 isDirty,\n isTouched,\n setTouched,\n setDirty,\n resetTouched,\n resetDirty,\n isValid,\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, useRef } from 'react';\nimport isEqual from 'fast-deep-equal';\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 { getStatus } from './get-status';\nimport { clearListState } from './clear-list-state';\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 GetFieldStatus,\n ResetDirty,\n IsValid,\n _TransformValues,\n ClearFieldDirty,\n} from './types';\n\nexport function useForm<\n Values = Record<string, unknown>,\n TransformValues extends _TransformValues<Values> = (values: Values) => Values\n>({\n initialValues = {} as Values,\n initialErrors = {},\n initialDirty = {},\n initialTouched = {},\n clearInputErrorOnChange = true,\n validateInputOnChange = false,\n validateInputOnBlur = false,\n transformValues = ((values: Values) => values) as any,\n validate: rules,\n}: UseFormInput<Values, TransformValues> = {}): UseFormReturnType<Values, TransformValues> {\n const [touched, setTouched] = useState(initialTouched);\n const [dirty, setDirty] = useState(initialDirty);\n const [values, _setValues] = useState(initialValues);\n const [errors, _setErrors] = useState(filterErrors(initialErrors));\n const _dirtyValues = useRef<Values>(initialValues);\n const _setDirtyValues = (_values: Values) => {\n _dirtyValues.current = _values;\n };\n\n const resetTouched = useCallback(() => setTouched({}), []);\n const resetDirty: ResetDirty<Values> = (_values) => {\n _setDirtyValues(_values || values);\n setDirty({});\n };\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 resetDirty(initialValues);\n resetTouched();\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 clearFieldDirty: ClearFieldDirty = useCallback(\n (path) =>\n setDirty((current) => {\n if (typeof path !== 'string') {\n return current;\n }\n\n const result = clearListState(path, current);\n delete result[path];\n return result;\n }),\n []\n );\n\n const setFieldValue: SetFieldValue<Values> = useCallback((path, value) => {\n const shouldValidate = shouldValidateOnChange(path, validateInputOnChange);\n clearFieldDirty(path);\n setTouched((currentTouched) => ({ ...currentTouched, [path]: true }));\n _setValues((current) => {\n const result = setPath(path, value, current);\n\n if (shouldValidate) {\n const validationResults = validateFieldValue(path, rules, result);\n validationResults.hasError\n ? setFieldError(path, validationResults.error)\n : clearFieldError(path);\n }\n\n return result;\n });\n\n !shouldValidate && clearInputErrorOnChange && setFieldError(path, null);\n }, []);\n\n const setValues: SetValues<Values> = useCallback((payload) => {\n _setValues((currentValues) => {\n const valuesPartial = typeof payload === 'function' ? payload(currentValues) : payload;\n return { ...currentValues, ...valuesPartial };\n });\n clearInputErrorOnChange && clearErrors();\n }, []);\n\n const reorderListItem: ReorderListItem<Values> = useCallback((path, payload) => {\n clearFieldDirty(path);\n _setValues((current) => reorderPath(path, payload, current));\n }, []);\n\n const removeListItem: RemoveListItem<Values> = useCallback((path, index) => {\n clearFieldDirty(path);\n _setValues((current) => removePath(path, index, current));\n _setErrors((errs) => clearListState(path, errs));\n }, []);\n\n const insertListItem: InsertListItem<Values> = useCallback((path, item, index) => {\n clearFieldDirty(path);\n _setValues((current) => insertPath(path, item, index, current));\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', withFocus = true } = {}\n ) => {\n const onChange = getInputOnChange((value) => setFieldValue(path, value as any));\n const payload: any = { onChange };\n\n if (withError) {\n payload.error = errors[path];\n }\n\n if (type === 'checkbox') {\n payload.checked = getPath(path, values);\n } else {\n payload.value = getPath(path, values);\n }\n\n if (withFocus) {\n payload.onFocus = () => setTouched((current) => ({ ...current, [path]: true }));\n payload.onBlur = () => {\n if (shouldValidateOnChange(path, validateInputOnBlur)) {\n const validationResults = validateFieldValue(path, rules, values);\n\n validationResults.hasError\n ? setFieldError(path, validationResults.error)\n : clearFieldError(path);\n }\n };\n }\n\n return payload;\n };\n\n const onSubmit: OnSubmit<Values, TransformValues> =\n (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(transformValues(values) as any, event);\n }\n };\n\n const onReset: OnReset = useCallback((event) => {\n event.preventDefault();\n reset();\n }, []);\n\n const isDirty: GetFieldStatus<Values> = (path) => {\n if (path) {\n const overridenValue = getPath(path, dirty);\n if (typeof overridenValue === 'boolean') {\n return overridenValue;\n }\n\n const sliceOfValues = getPath(path, values);\n const sliceOfInitialValues = getPath(path, _dirtyValues.current);\n return !isEqual(sliceOfValues, sliceOfInitialValues);\n }\n\n const isOverridden = Object.keys(dirty).length > 0;\n if (isOverridden) {\n return getStatus(dirty);\n }\n\n return !isEqual(values, _dirtyValues.current);\n };\n\n const isTouched: GetFieldStatus<Values> = useCallback(\n (path) => getStatus(touched, path),\n [touched]\n );\n\n const isValid: IsValid<Values> = useCallback(\n (path) =>\n path\n ? !validateFieldValue(path, rules, values).hasError\n : !validateValues(rules, values).hasErrors,\n [values, rules]\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 isDirty,\n isTouched,\n setTouched,\n setDirty,\n resetTouched,\n resetDirty,\n isValid,\n };\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ function isLengthValid(payload, value) {
2
+ if (typeof payload === "number") {
3
+ return value.length === payload;
4
+ }
5
+ const { max, min } = payload;
6
+ let valid = true;
7
+ if (typeof max === "number" && value.length > max) {
8
+ valid = false;
9
+ }
10
+ if (typeof min === "number" && value.length < min) {
11
+ valid = false;
12
+ }
13
+ return valid;
14
+ }
15
+ function hasLength(payload, error) {
16
+ const _error = error || true;
17
+ return (value) => {
18
+ if (typeof value === "string") {
19
+ return isLengthValid(payload, value.trim()) ? null : _error;
20
+ }
21
+ if (typeof value === "object" && value !== null && "length" in value) {
22
+ return isLengthValid(payload, value) ? null : _error;
23
+ }
24
+ return _error;
25
+ };
26
+ }
27
+
28
+ export { hasLength };
29
+ //# sourceMappingURL=has-length.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-length.js","sources":["../../../src/validators/has-length/has-length.ts"],"sourcesContent":["import React from 'react';\n\ninterface 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) => {\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"],"names":[],"mappings":"AAAA,SAAS,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE;AACvC,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACnC,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC;AACpC,GAAG;AACH,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AAC/B,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC;AACnB,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE;AACrD,IAAI,KAAK,GAAG,KAAK,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE;AACrD,IAAI,KAAK,GAAG,KAAK,CAAC;AAClB,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACM,SAAS,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE;AAC1C,EAAE,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC;AAC/B,EAAE,OAAO,CAAC,KAAK,KAAK;AACpB,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,OAAO,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;AAClE,KAAK;AACL,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,QAAQ,IAAI,KAAK,EAAE;AAC1E,MAAM,OAAO,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;AAC3D,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG,CAAC;AACJ;;;;"}
@@ -0,0 +1,8 @@
1
+ import { matches } from '../matches/matches.js';
2
+
3
+ function isEmail(error) {
4
+ return matches(/^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/, error);
5
+ }
6
+
7
+ export { isEmail };
8
+ //# sourceMappingURL=is-email.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-email.js","sources":["../../../src/validators/is-email/is-email.ts"],"sourcesContent":["import React from 'react';\nimport { matches } from '../matches/matches';\n\nexport function isEmail(error?: React.ReactNode) {\n return matches(/^\\w+([.-]?\\w+)*@\\w+([.-]?\\w+)*(\\.\\w{2,3})+$/, error);\n}\n"],"names":[],"mappings":";;AACO,SAAS,OAAO,CAAC,KAAK,EAAE;AAC/B,EAAE,OAAO,OAAO,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAC;AACvE;;;;"}
@@ -0,0 +1,19 @@
1
+ function isInRange({ min, max }, error) {
2
+ const _error = error || true;
3
+ return (value) => {
4
+ if (typeof value !== "number") {
5
+ return _error;
6
+ }
7
+ let valid = true;
8
+ if (typeof min === "number" && value < min) {
9
+ valid = false;
10
+ }
11
+ if (typeof max === "number" && value > max) {
12
+ valid = false;
13
+ }
14
+ return valid ? null : _error;
15
+ };
16
+ }
17
+
18
+ export { isInRange };
19
+ //# sourceMappingURL=is-in-range.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-in-range.js","sources":["../../../src/validators/is-in-range/is-in-range.ts"],"sourcesContent":["import React from 'react';\n\ninterface 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) => {\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"],"names":[],"mappings":"AAAO,SAAS,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE;AAC/C,EAAE,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC;AAC/B,EAAE,OAAO,CAAC,KAAK,KAAK;AACpB,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,GAAG,GAAG,EAAE;AAChD,MAAM,KAAK,GAAG,KAAK,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,GAAG,GAAG,EAAE;AAChD,MAAM,KAAK,GAAG,KAAK,CAAC;AACpB,KAAK;AACL,IAAI,OAAO,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;AACjC,GAAG,CAAC;AACJ;;;;"}
@@ -1,4 +1,4 @@
1
- function notEmpty(error) {
1
+ function isNotEmpty(error) {
2
2
  const _error = error || true;
3
3
  return (value) => {
4
4
  if (typeof value === "string") {
@@ -10,9 +10,12 @@ function notEmpty(error) {
10
10
  if (value === null || value === void 0) {
11
11
  return _error;
12
12
  }
13
+ if (value === false) {
14
+ return _error;
15
+ }
13
16
  return null;
14
17
  };
15
18
  }
16
19
 
17
- export { notEmpty };
18
- //# sourceMappingURL=not-empty.js.map
20
+ export { isNotEmpty };
21
+ //# sourceMappingURL=is-not-empty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-not-empty.js","sources":["../../../src/validators/is-not-empty/is-not-empty.ts"],"sourcesContent":["import React from 'react';\n\nexport function isNotEmpty(error?: React.ReactNode) {\n const _error = error || true;\n\n return (value: unknown) => {\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"],"names":[],"mappings":"AAAO,SAAS,UAAU,CAAC,KAAK,EAAE;AAClC,EAAE,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC;AAC/B,EAAE,OAAO,CAAC,KAAK,KAAK;AACpB,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;AACrD,KAAK;AACL,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC9B,MAAM,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;AAC9C,KAAK;AACL,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE;AAC5C,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE;AACzB,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,CAAC;AACJ;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matches.js","sources":["../../../src/validators/matches/matches.ts"],"sourcesContent":["import React from 'react';\n\nexport function matches(regexp: RegExp, error?: React.ReactNode) {\n const _error = error || true;\n\n return (value: unknown) => {\n if (typeof value !== 'string') {\n return _error;\n }\n\n return regexp.test(value) ? null : _error;\n };\n}\n"],"names":[],"mappings":"AAAO,SAAS,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE;AACvC,EAAE,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC;AAC/B,EAAE,OAAO,CAAC,KAAK,KAAK;AACpB,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;AAC9C,GAAG,CAAC;AACJ;;;;"}
package/lib/index.d.ts CHANGED
@@ -3,7 +3,8 @@ export { createFormContext } from './FormProvider/FormProvider';
3
3
  export { FORM_INDEX } from './form-index';
4
4
  export * from './validators';
5
5
  export { zodResolver } from './resolvers/zod-resolver/zod-resolver';
6
+ export { superstructResolver } from './resolvers/superstruct-resolver/superstruct-resolver';
6
7
  export { yupResolver } from './resolvers/yup-resolver/yup-resolver';
7
8
  export { joiResolver } from './resolvers/joi-resolver/joi-resolver';
8
- export type { FormErrors, UseFormReturnType } from './types';
9
+ export type { FormErrors, UseFormReturnType, TransformedValues } from './types';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAEpE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAEpE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { FormErrors } from '../../types';
2
+ export declare function superstructResolver(schema: any): (values: Record<string, any>) => FormErrors;
3
+ //# sourceMappingURL=superstruct-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"superstruct-resolver.d.ts","sourceRoot":"","sources":["../../../src/resolvers/superstruct-resolver/superstruct-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAiB9C,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,GAAG,YACX,OAAO,MAAM,EAAE,GAAG,CAAC,KAAG,UAAU,CAiBnE"}
package/lib/types.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
- export declare type GetInputPropsType = 'input' | 'checkbox';
3
- export declare type FormStatus = Record<string, boolean>;
2
+ export type GetInputPropsType = 'input' | 'checkbox';
3
+ export type FormStatus = Record<string, boolean>;
4
4
  export interface FormFieldValidationResult {
5
5
  hasError: boolean;
6
6
  error: React.ReactNode;
@@ -9,46 +9,52 @@ export interface FormValidationResult {
9
9
  hasErrors: boolean;
10
10
  errors: FormErrors;
11
11
  }
12
- export declare type FormErrors = Record<string, React.ReactNode>;
12
+ export type FormErrors = Record<string, React.ReactNode>;
13
13
  export interface ReorderPayload {
14
14
  from: number;
15
15
  to: number;
16
16
  }
17
- declare type Rule<Value, Values> = (value: Value, values: Values, path: string) => React.ReactNode;
18
- declare type FormRule<Value, Values> = NonNullable<Value> extends Array<infer ListValue> ? Partial<{
17
+ type Rule<Value, Values> = (value: Value, values: Values, path: string) => React.ReactNode;
18
+ type FormRule<Value, Values> = NonNullable<Value> extends Array<infer ListValue> ? Partial<{
19
19
  [Key in keyof ListValue]: ListValue[Key] extends Array<infer NestedListItem> ? FormRulesRecord<NestedListItem> | Rule<ListValue[Key], Values> : FormRulesRecord<ListValue[Key]> | Rule<ListValue[Key], Values>;
20
20
  }> | Rule<Value, Values> : NonNullable<Value> extends Record<string, any> ? FormRulesRecord<Value, Values> | Rule<Value, Values> : Rule<Value, Values>;
21
- export declare type FormRulesRecord<Values, InitValues = Values> = Partial<{
21
+ export type FormRulesRecord<Values, InitValues = Values> = Partial<{
22
22
  [Key in keyof Values]: FormRule<Values[Key], InitValues>;
23
23
  }>;
24
- export declare type FormValidateInput<Values> = FormRulesRecord<Values> | ((values: Values) => FormErrors);
25
- export declare type LooseKeys<Values> = keyof Values | (string & {});
26
- export declare type SetValues<Values> = React.Dispatch<React.SetStateAction<Partial<Values>>>;
27
- export declare type SetErrors = React.Dispatch<React.SetStateAction<FormErrors>>;
28
- export declare type SetFormStatus = React.Dispatch<React.SetStateAction<FormStatus>>;
29
- export declare type OnSubmit<Values, TransformValues extends _TransformValues<Values>> = (handleSubmit: (values: ReturnType<TransformValues>, event: React.FormEvent<HTMLFormElement>) => void, handleValidationFailure?: (errors: FormErrors, values: Values, event: React.FormEvent<HTMLFormElement>) => void) => (event?: React.FormEvent<HTMLFormElement>) => void;
30
- export declare type OnReset = (event: React.FormEvent<HTMLFormElement>) => void;
31
- export declare type GetInputProps<Values> = <Field extends LooseKeys<Values>>(path: Field, options?: {
24
+ export type FormValidateInput<Values> = FormRulesRecord<Values> | ((values: Values) => FormErrors);
25
+ export type LooseKeys<Values> = keyof Values | (string & {});
26
+ export type SetValues<Values> = React.Dispatch<React.SetStateAction<Partial<Values>>>;
27
+ export type SetErrors = React.Dispatch<React.SetStateAction<FormErrors>>;
28
+ export type SetFormStatus = React.Dispatch<React.SetStateAction<FormStatus>>;
29
+ export type OnSubmit<Values, TransformValues extends _TransformValues<Values>> = (handleSubmit: (values: ReturnType<TransformValues>, event: React.FormEvent<HTMLFormElement>) => void, handleValidationFailure?: (errors: FormErrors, values: Values, event: React.FormEvent<HTMLFormElement>) => void) => (event?: React.FormEvent<HTMLFormElement>) => void;
30
+ export type OnReset = (event: React.FormEvent<HTMLFormElement>) => void;
31
+ export type GetInputProps<Values> = <Field extends LooseKeys<Values>>(path: Field, options?: {
32
32
  type?: GetInputPropsType;
33
33
  withError?: boolean;
34
34
  withFocus?: boolean;
35
- }) => any;
36
- export declare type SetFieldValue<Values> = <Field extends LooseKeys<Values>>(path: Field, value: Field extends keyof Values ? Values[Field] : unknown) => void;
37
- export declare type ClearFieldError = (path: unknown) => void;
38
- export declare type ClearFieldDirty = (path: unknown) => void;
39
- export declare type ClearErrors = () => void;
40
- export declare type Reset = () => void;
41
- export declare type Validate = () => FormValidationResult;
42
- export declare type ValidateField<Values> = <Field extends LooseKeys<Values>>(path: Field) => FormFieldValidationResult;
43
- export declare type SetFieldError<Values> = <Field extends LooseKeys<Values>>(path: Field, error: React.ReactNode) => void;
44
- export declare type ReorderListItem<Values> = <Field extends LooseKeys<Values>>(path: Field, payload: ReorderPayload) => void;
45
- export declare type InsertListItem<Values> = <Field extends LooseKeys<Values>>(path: Field, item: unknown, index?: number) => void;
46
- export declare type RemoveListItem<Values> = <Field extends LooseKeys<Values>>(path: Field, index: number) => void;
47
- export declare type GetFieldStatus<Values> = <Field extends LooseKeys<Values>>(path?: Field) => boolean;
48
- export declare type ResetStatus = () => void;
49
- export declare type ResetDirty<Values> = (values?: Values) => void;
50
- export declare type IsValid<Values> = <Field extends LooseKeys<Values>>(path?: Field) => boolean;
51
- export declare type _TransformValues<Values> = (values: Values) => unknown;
35
+ }) => {
36
+ value: any;
37
+ onChange: any;
38
+ checked?: any;
39
+ error?: any;
40
+ onFocus?: any;
41
+ };
42
+ export type SetFieldValue<Values> = <Field extends LooseKeys<Values>>(path: Field, value: Field extends keyof Values ? Values[Field] : unknown) => void;
43
+ export type ClearFieldError = (path: unknown) => void;
44
+ export type ClearFieldDirty = (path: unknown) => void;
45
+ export type ClearErrors = () => void;
46
+ export type Reset = () => void;
47
+ export type Validate = () => FormValidationResult;
48
+ export type ValidateField<Values> = <Field extends LooseKeys<Values>>(path: Field) => FormFieldValidationResult;
49
+ export type SetFieldError<Values> = <Field extends LooseKeys<Values>>(path: Field, error: React.ReactNode) => void;
50
+ export type ReorderListItem<Values> = <Field extends LooseKeys<Values>>(path: Field, payload: ReorderPayload) => void;
51
+ export type InsertListItem<Values> = <Field extends LooseKeys<Values>>(path: Field, item: unknown, index?: number) => void;
52
+ export type RemoveListItem<Values> = <Field extends LooseKeys<Values>>(path: Field, index: number) => void;
53
+ export type GetFieldStatus<Values> = <Field extends LooseKeys<Values>>(path?: Field) => boolean;
54
+ export type ResetStatus = () => void;
55
+ export type ResetDirty<Values> = (values?: Values) => void;
56
+ export type IsValid<Values> = <Field extends LooseKeys<Values>>(path?: Field) => boolean;
57
+ export type _TransformValues<Values> = (values: Values) => unknown;
52
58
  export interface UseFormInput<Values, TransformValues extends _TransformValues<Values> = (values: Values) => Values> {
53
59
  initialValues?: Values;
54
60
  initialErrors?: FormErrors;
@@ -86,6 +92,7 @@ export interface UseFormReturnType<Values, TransformValues extends _TransformVal
86
92
  resetDirty: ResetDirty<Values>;
87
93
  isValid: IsValid<Values>;
88
94
  }
89
- export declare type UseForm<Values = Record<string, unknown>, TransformValues extends _TransformValues<Values> = (values: Values) => Values> = (input?: UseFormInput<Values, TransformValues>) => UseFormReturnType<Values, TransformValues>;
95
+ export type UseForm<Values = Record<string, unknown>, TransformValues extends _TransformValues<Values> = (values: Values) => Values> = (input?: UseFormInput<Values, TransformValues>) => UseFormReturnType<Values, TransformValues>;
96
+ export type TransformedValues<Form extends UseFormReturnType<any>> = Parameters<Parameters<Form['onSubmit']>[0]>[0];
90
97
  export {};
91
98
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-form.d.ts","sourceRoot":"","sources":["../src/use-form.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,iBAAiB,EACjB,YAAY,EAmBZ,gBAAgB,EAEjB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,OAAO,CACrB,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,eAAe,SAAS,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,EAC7E,EACA,aAA4B,EAC5B,aAAkB,EAClB,YAAiB,EACjB,cAAmB,EACnB,uBAA8B,EAC9B,qBAA6B,EAC7B,mBAA2B,EAC3B,eAAqD,EACrD,QAAQ,EAAE,KAAK,GAChB,GAAE,YAAY,CAAC,MAAM,EAAE,eAAe,CAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,CAmOzF"}
1
+ {"version":3,"file":"use-form.d.ts","sourceRoot":"","sources":["../src/use-form.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,iBAAiB,EACjB,YAAY,EAmBZ,gBAAgB,EAEjB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,OAAO,CACrB,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,eAAe,SAAS,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,EAC7E,EACA,aAA4B,EAC5B,aAAkB,EAClB,YAAiB,EACjB,cAAmB,EACnB,uBAA8B,EAC9B,qBAA6B,EAC7B,mBAA2B,EAC3B,eAAqD,EACrD,QAAQ,EAAE,KAAK,GAChB,GAAE,YAAY,CAAC,MAAM,EAAE,eAAe,CAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,CAuOzF"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ interface HasLengthOptions {
3
+ max?: number;
4
+ min?: number;
5
+ }
6
+ type HasLengthPayload = HasLengthOptions | number;
7
+ export declare function hasLength(payload: HasLengthPayload, error?: React.ReactNode): (value: unknown) => string | number | true | React.ReactElement<any, string | React.JSXElementConstructor<any>> | React.ReactFragment;
8
+ export {};
9
+ //# sourceMappingURL=has-length.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-length.d.ts","sourceRoot":"","sources":["../../../src/validators/has-length/has-length.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,gBAAgB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,KAAK,gBAAgB,GAAG,gBAAgB,GAAG,MAAM,CAAC;AAqBlD,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,WAG3D,OAAO,uHAWvB"}
@@ -1,3 +1,6 @@
1
- export { notEmpty } from './not-empty';
2
- export { matches } from './matches';
1
+ export { isNotEmpty } from './is-not-empty/is-not-empty';
2
+ export { matches } from './matches/matches';
3
+ export { isEmail } from './is-email/is-email';
4
+ export { hasLength } from './has-length/has-length';
5
+ export { isInRange } from './is-in-range/is-in-range';
3
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare function isEmail(error?: React.ReactNode): (value: unknown) => string | number | true | React.ReactElement<any, string | React.JSXElementConstructor<any>> | React.ReactFragment;
3
+ //# sourceMappingURL=is-email.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-email.d.ts","sourceRoot":"","sources":["../../../src/validators/is-email/is-email.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,wBAAgB,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,yIAE9C"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ interface IsInRangePayload {
3
+ min?: number;
4
+ max?: number;
5
+ }
6
+ export declare function isInRange({ min, max }: IsInRangePayload, error?: React.ReactNode): (value: unknown) => string | number | true | React.ReactElement<any, string | React.JSXElementConstructor<any>> | React.ReactFragment;
7
+ export {};
8
+ //# sourceMappingURL=is-in-range.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-in-range.d.ts","sourceRoot":"","sources":["../../../src/validators/is-in-range/is-in-range.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,gBAAgB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,WAGhE,OAAO,uHAiBvB"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare function isNotEmpty(error?: React.ReactNode): (value: unknown) => string | number | true | React.ReactElement<any, string | React.JSXElementConstructor<any>> | React.ReactFragment;
3
+ //# sourceMappingURL=is-not-empty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-not-empty.d.ts","sourceRoot":"","sources":["../../../src/validators/is-not-empty/is-not-empty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,WAGjC,OAAO,uHAmBvB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matches.d.ts","sourceRoot":"","sources":["../../../src/validators/matches/matches.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,WAG9C,OAAO,uHAOvB"}
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.9.6",
4
+ "version": "5.10.1",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
7
7
  "types": "lib/index.d.ts",
@@ -1 +0,0 @@
1
- {"version":3,"file":"matches.js","sources":["../../src/validators/matches.ts"],"sourcesContent":["import React from 'react';\n\nexport function matches(regexp: RegExp, error?: React.ReactNode) {\n const _error = error || true;\n return (value: unknown) => {\n if (typeof value !== 'string') {\n return _error;\n }\n\n return regexp.test(value) ? null : _error;\n };\n}\n"],"names":[],"mappings":";;;;AAAO,SAAS,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE;AACvC,EAAE,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC;AAC/B,EAAE,OAAO,CAAC,KAAK,KAAK;AACpB,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;AAC9C,GAAG,CAAC;AACJ;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"not-empty.js","sources":["../../src/validators/not-empty.ts"],"sourcesContent":["import React from 'react';\n\nexport function notEmpty(error?: React.ReactNode) {\n const _error = error || true;\n\n return (value: unknown) => {\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 return null;\n };\n}\n"],"names":[],"mappings":";;;;AAAO,SAAS,QAAQ,CAAC,KAAK,EAAE;AAChC,EAAE,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC;AAC/B,EAAE,OAAO,CAAC,KAAK,KAAK;AACpB,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;AACrD,KAAK;AACL,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC9B,MAAM,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;AAC9C,KAAK;AACL,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE;AAC5C,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,CAAC;AACJ;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"matches.js","sources":["../../src/validators/matches.ts"],"sourcesContent":["import React from 'react';\n\nexport function matches(regexp: RegExp, error?: React.ReactNode) {\n const _error = error || true;\n return (value: unknown) => {\n if (typeof value !== 'string') {\n return _error;\n }\n\n return regexp.test(value) ? null : _error;\n };\n}\n"],"names":[],"mappings":"AAAO,SAAS,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE;AACvC,EAAE,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC;AAC/B,EAAE,OAAO,CAAC,KAAK,KAAK;AACpB,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;AAC9C,GAAG,CAAC;AACJ;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"not-empty.js","sources":["../../src/validators/not-empty.ts"],"sourcesContent":["import React from 'react';\n\nexport function notEmpty(error?: React.ReactNode) {\n const _error = error || true;\n\n return (value: unknown) => {\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 return null;\n };\n}\n"],"names":[],"mappings":"AAAO,SAAS,QAAQ,CAAC,KAAK,EAAE;AAChC,EAAE,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC;AAC/B,EAAE,OAAO,CAAC,KAAK,KAAK;AACpB,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;AACrD,KAAK;AACL,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC9B,MAAM,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;AAC9C,KAAK;AACL,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE;AAC5C,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,CAAC;AACJ;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"matches.d.ts","sourceRoot":"","sources":["../../src/validators/matches.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,WAE9C,OAAO,uHAOvB"}
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- export declare function notEmpty(error?: React.ReactNode): (value: unknown) => string | number | true | React.ReactElement<any, string | React.JSXElementConstructor<any>> | React.ReactFragment;
3
- //# sourceMappingURL=not-empty.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"not-empty.d.ts","sourceRoot":"","sources":["../../src/validators/not-empty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,WAG/B,OAAO,uHAevB"}