@mantine/form 9.0.0-alpha.5 → 9.0.0-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/cjs/FormProvider/FormProvider.cjs +26 -21
  2. package/cjs/FormProvider/FormProvider.cjs.map +1 -1
  3. package/cjs/_virtual/_rolldown/runtime.cjs +24 -0
  4. package/cjs/actions/actions.cjs +86 -117
  5. package/cjs/actions/actions.cjs.map +1 -1
  6. package/cjs/form-index.cjs +5 -5
  7. package/cjs/form-index.cjs.map +1 -1
  8. package/cjs/get-input-on-change/get-input-on-change.cjs +15 -25
  9. package/cjs/get-input-on-change/get-input-on-change.cjs.map +1 -1
  10. package/cjs/get-status/get-status.cjs +11 -11
  11. package/cjs/get-status/get-status.cjs.map +1 -1
  12. package/cjs/hooks/use-form-errors/filter-errors/filter-errors.cjs +11 -15
  13. package/cjs/hooks/use-form-errors/filter-errors/filter-errors.cjs.map +1 -1
  14. package/cjs/hooks/use-form-errors/use-form-errors.cjs +39 -48
  15. package/cjs/hooks/use-form-errors/use-form-errors.cjs.map +1 -1
  16. package/cjs/hooks/use-form-list/use-form-list.cjs +47 -51
  17. package/cjs/hooks/use-form-list/use-form-list.cjs.map +1 -1
  18. package/cjs/hooks/use-form-status/use-form-status.cjs +95 -128
  19. package/cjs/hooks/use-form-status/use-form-status.cjs.map +1 -1
  20. package/cjs/hooks/use-form-validating/use-form-validating.cjs +49 -51
  21. package/cjs/hooks/use-form-validating/use-form-validating.cjs.map +1 -1
  22. package/cjs/hooks/use-form-values/use-form-values.cjs +92 -107
  23. package/cjs/hooks/use-form-values/use-form-values.cjs.map +1 -1
  24. package/cjs/hooks/use-form-watch/use-form-watch.cjs +41 -57
  25. package/cjs/hooks/use-form-watch/use-form-watch.cjs.map +1 -1
  26. package/cjs/index.cjs +35 -38
  27. package/cjs/lists/change-error-indices.cjs +34 -41
  28. package/cjs/lists/change-error-indices.cjs.map +1 -1
  29. package/cjs/lists/clear-list-state.cjs +11 -15
  30. package/cjs/lists/clear-list-state.cjs.map +1 -1
  31. package/cjs/lists/reorder-errors.cjs +30 -32
  32. package/cjs/lists/reorder-errors.cjs.map +1 -1
  33. package/cjs/paths/get-data-path.cjs +6 -6
  34. package/cjs/paths/get-data-path.cjs.map +1 -1
  35. package/cjs/paths/get-path.cjs +14 -19
  36. package/cjs/paths/get-path.cjs.map +1 -1
  37. package/cjs/paths/get-splitted-path.cjs +7 -9
  38. package/cjs/paths/get-splitted-path.cjs.map +1 -1
  39. package/cjs/paths/insert-path.cjs +12 -15
  40. package/cjs/paths/insert-path.cjs.map +1 -1
  41. package/cjs/paths/remove-path.cjs +10 -17
  42. package/cjs/paths/remove-path.cjs.map +1 -1
  43. package/cjs/paths/reorder-path.cjs +14 -17
  44. package/cjs/paths/reorder-path.cjs.map +1 -1
  45. package/cjs/paths/replace-path.cjs +13 -18
  46. package/cjs/paths/replace-path.cjs.map +1 -1
  47. package/cjs/paths/set-path.cjs +22 -26
  48. package/cjs/paths/set-path.cjs.map +1 -1
  49. package/cjs/schema-resolver.cjs +24 -0
  50. package/cjs/schema-resolver.cjs.map +1 -0
  51. package/cjs/use-field.cjs +94 -131
  52. package/cjs/use-field.cjs.map +1 -1
  53. package/cjs/use-form.cjs +316 -379
  54. package/cjs/use-form.cjs.map +1 -1
  55. package/cjs/validate/get-rule-for-path.cjs +16 -24
  56. package/cjs/validate/get-rule-for-path.cjs.map +1 -1
  57. package/cjs/validate/should-validate-on-change.cjs +10 -17
  58. package/cjs/validate/should-validate-on-change.cjs.map +1 -1
  59. package/cjs/validate/validate-field-value.cjs +58 -54
  60. package/cjs/validate/validate-field-value.cjs.map +1 -1
  61. package/cjs/validate/validate-values.cjs +77 -108
  62. package/cjs/validate/validate-values.cjs.map +1 -1
  63. package/cjs/validators/has-length/has-length.cjs +17 -27
  64. package/cjs/validators/has-length/has-length.cjs.map +1 -1
  65. package/cjs/validators/is-email/is-email.cjs +7 -8
  66. package/cjs/validators/is-email/is-email.cjs.map +1 -1
  67. package/cjs/validators/is-in-range/is-in-range.cjs +13 -19
  68. package/cjs/validators/is-in-range/is-in-range.cjs.map +1 -1
  69. package/cjs/validators/is-json-string/is-json-string.cjs +15 -17
  70. package/cjs/validators/is-json-string/is-json-string.cjs.map +1 -1
  71. package/cjs/validators/is-not-empty/is-not-empty.cjs +13 -21
  72. package/cjs/validators/is-not-empty/is-not-empty.cjs.map +1 -1
  73. package/cjs/validators/is-not-empty-html/is-not-empty-html.cjs +11 -13
  74. package/cjs/validators/is-not-empty-html/is-not-empty-html.cjs.map +1 -1
  75. package/cjs/validators/is-one-of/is-one-of.cjs +9 -9
  76. package/cjs/validators/is-one-of/is-one-of.cjs.map +1 -1
  77. package/cjs/validators/is-url/is-url.cjs +25 -33
  78. package/cjs/validators/is-url/is-url.cjs.map +1 -1
  79. package/cjs/validators/matches/matches.cjs +10 -12
  80. package/cjs/validators/matches/matches.cjs.map +1 -1
  81. package/cjs/validators/matches-field/matches-field.cjs +10 -12
  82. package/cjs/validators/matches-field/matches-field.cjs.map +1 -1
  83. package/esm/FormProvider/FormProvider.mjs +25 -19
  84. package/esm/FormProvider/FormProvider.mjs.map +1 -1
  85. package/esm/actions/actions.mjs +85 -114
  86. package/esm/actions/actions.mjs.map +1 -1
  87. package/esm/form-index.mjs +5 -3
  88. package/esm/form-index.mjs.map +1 -1
  89. package/esm/get-input-on-change/get-input-on-change.mjs +15 -23
  90. package/esm/get-input-on-change/get-input-on-change.mjs.map +1 -1
  91. package/esm/get-status/get-status.mjs +11 -9
  92. package/esm/get-status/get-status.mjs.map +1 -1
  93. package/esm/hooks/use-form-errors/filter-errors/filter-errors.mjs +11 -13
  94. package/esm/hooks/use-form-errors/filter-errors/filter-errors.mjs.map +1 -1
  95. package/esm/hooks/use-form-errors/use-form-errors.mjs +38 -46
  96. package/esm/hooks/use-form-errors/use-form-errors.mjs.map +1 -1
  97. package/esm/hooks/use-form-list/use-form-list.mjs +46 -49
  98. package/esm/hooks/use-form-list/use-form-list.mjs.map +1 -1
  99. package/esm/hooks/use-form-status/use-form-status.mjs +93 -122
  100. package/esm/hooks/use-form-status/use-form-status.mjs.map +1 -1
  101. package/esm/hooks/use-form-validating/use-form-validating.mjs +48 -49
  102. package/esm/hooks/use-form-validating/use-form-validating.mjs.map +1 -1
  103. package/esm/hooks/use-form-values/use-form-values.mjs +91 -105
  104. package/esm/hooks/use-form-values/use-form-values.mjs.map +1 -1
  105. package/esm/hooks/use-form-watch/use-form-watch.mjs +40 -55
  106. package/esm/hooks/use-form-watch/use-form-watch.mjs.map +1 -1
  107. package/esm/index.mjs +18 -17
  108. package/esm/lists/change-error-indices.mjs +34 -39
  109. package/esm/lists/change-error-indices.mjs.map +1 -1
  110. package/esm/lists/clear-list-state.mjs +11 -13
  111. package/esm/lists/clear-list-state.mjs.map +1 -1
  112. package/esm/lists/reorder-errors.mjs +30 -30
  113. package/esm/lists/reorder-errors.mjs.map +1 -1
  114. package/esm/paths/get-data-path.mjs +6 -4
  115. package/esm/paths/get-data-path.mjs.map +1 -1
  116. package/esm/paths/get-path.mjs +14 -17
  117. package/esm/paths/get-path.mjs.map +1 -1
  118. package/esm/paths/get-splitted-path.mjs +7 -7
  119. package/esm/paths/get-splitted-path.mjs.map +1 -1
  120. package/esm/paths/insert-path.mjs +12 -13
  121. package/esm/paths/insert-path.mjs.map +1 -1
  122. package/esm/paths/remove-path.mjs +10 -15
  123. package/esm/paths/remove-path.mjs.map +1 -1
  124. package/esm/paths/reorder-path.mjs +14 -15
  125. package/esm/paths/reorder-path.mjs.map +1 -1
  126. package/esm/paths/replace-path.mjs +13 -16
  127. package/esm/paths/replace-path.mjs.map +1 -1
  128. package/esm/paths/set-path.mjs +21 -24
  129. package/esm/paths/set-path.mjs.map +1 -1
  130. package/esm/schema-resolver.mjs +24 -0
  131. package/esm/schema-resolver.mjs.map +1 -0
  132. package/esm/use-field.mjs +93 -129
  133. package/esm/use-field.mjs.map +1 -1
  134. package/esm/use-form.mjs +315 -377
  135. package/esm/use-form.mjs.map +1 -1
  136. package/esm/validate/get-rule-for-path.mjs +16 -22
  137. package/esm/validate/get-rule-for-path.mjs.map +1 -1
  138. package/esm/validate/should-validate-on-change.mjs +10 -15
  139. package/esm/validate/should-validate-on-change.mjs.map +1 -1
  140. package/esm/validate/validate-field-value.mjs +58 -52
  141. package/esm/validate/validate-field-value.mjs.map +1 -1
  142. package/esm/validate/validate-values.mjs +77 -106
  143. package/esm/validate/validate-values.mjs.map +1 -1
  144. package/esm/validators/has-length/has-length.mjs +17 -25
  145. package/esm/validators/has-length/has-length.mjs.map +1 -1
  146. package/esm/validators/is-email/is-email.mjs +7 -6
  147. package/esm/validators/is-email/is-email.mjs.map +1 -1
  148. package/esm/validators/is-in-range/is-in-range.mjs +13 -17
  149. package/esm/validators/is-in-range/is-in-range.mjs.map +1 -1
  150. package/esm/validators/is-json-string/is-json-string.mjs +15 -15
  151. package/esm/validators/is-json-string/is-json-string.mjs.map +1 -1
  152. package/esm/validators/is-not-empty/is-not-empty.mjs +13 -19
  153. package/esm/validators/is-not-empty/is-not-empty.mjs.map +1 -1
  154. package/esm/validators/is-not-empty-html/is-not-empty-html.mjs +11 -11
  155. package/esm/validators/is-not-empty-html/is-not-empty-html.mjs.map +1 -1
  156. package/esm/validators/is-one-of/is-one-of.mjs +9 -7
  157. package/esm/validators/is-one-of/is-one-of.mjs.map +1 -1
  158. package/esm/validators/is-url/is-url.mjs +25 -31
  159. package/esm/validators/is-url/is-url.mjs.map +1 -1
  160. package/esm/validators/matches/matches.mjs +10 -10
  161. package/esm/validators/matches/matches.mjs.map +1 -1
  162. package/esm/validators/matches-field/matches-field.mjs +10 -10
  163. package/esm/validators/matches-field/matches-field.mjs.map +1 -1
  164. package/lib/hooks/use-form-status/use-form-status.d.ts +2 -2
  165. package/lib/hooks/use-form-values/use-form-values.d.ts +9 -9
  166. package/lib/hooks/use-form-watch/use-form-watch.d.ts +5 -5
  167. package/lib/index.d.mts +1 -0
  168. package/lib/index.d.ts +1 -0
  169. package/lib/schema-resolver.d.ts +5 -0
  170. package/lib/types.d.ts +19 -18
  171. package/package.json +5 -1
  172. package/cjs/index.cjs.map +0 -1
  173. package/esm/index.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"get-status.mjs","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":";AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,GAAoB,IAAA,CAAA,CAAgB,CAAA;AAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,KAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,MAAM,CAAA,CAAA;AAEhC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,MAAS,QAAA,CAAA,CAAU,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,WAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,WAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,IAAI,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA;AAClF,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK,WAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,UAAU,CAAC,CAAA,IAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACjF,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,EAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA;AACtD,CAAA;;"}
1
+ {"version":3,"file":"get-status.mjs","names":[],"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"],"mappings":";;AAEA,SAAgB,UAAU,QAAoB,MAAgB;CAC5D,MAAM,QAAQ,OAAO,KAAK,OAAO;AAEjC,KAAI,OAAO,SAAS,UAAU;EAC5B,MAAM,cAAc,MAAM,QAAQ,eAAe,WAAW,WAAW,GAAG,KAAK,GAAG,CAAC;AACnF,SAAO,OAAO,SAAS,YAAY,MAAM,eAAe,OAAO,YAAY,IAAI;;AAGjF,QAAO,MAAM,MAAM,eAAe,OAAO,YAAY"}
@@ -1,16 +1,14 @@
1
- 'use client';
1
+ "use client";
2
+ //#region packages/@mantine/form/src/hooks/use-form-errors/filter-errors/filter-errors.ts
2
3
  function filterErrors(errors) {
3
- if (errors === null || typeof errors !== "object") {
4
- return {};
5
- }
6
- return Object.keys(errors).reduce((acc, key) => {
7
- const errorValue = errors[key];
8
- if (errorValue !== void 0 && errorValue !== null && errorValue !== false) {
9
- acc[key] = errorValue;
10
- }
11
- return acc;
12
- }, {});
4
+ if (errors === null || typeof errors !== "object") return {};
5
+ return Object.keys(errors).reduce((acc, key) => {
6
+ const errorValue = errors[key];
7
+ if (errorValue !== void 0 && errorValue !== null && errorValue !== false) acc[key] = errorValue;
8
+ return acc;
9
+ }, {});
13
10
  }
14
-
11
+ //#endregion
15
12
  export { filterErrors };
16
- //# sourceMappingURL=filter-errors.mjs.map
13
+
14
+ //# sourceMappingURL=filter-errors.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter-errors.mjs","sources":["../../../../src/hooks/use-form-errors/filter-errors/filter-errors.ts"],"sourcesContent":["import type { FormErrors } from '../../../types';\n\nexport function filterErrors(errors: FormErrors): FormErrors {\n if (errors === null || typeof errors !== 'object') {\n return {};\n }\n\n return Object.keys(errors).reduce<FormErrors>((acc, key) => {\n const errorValue = errors[key];\n\n if (errorValue !== undefined && errorValue !== null && errorValue !== false) {\n acc[key] = errorValue;\n }\n\n return acc;\n }, {});\n}\n"],"names":[],"mappings":";AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgC,CAAA;AAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,MAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,IAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA;AACjD,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAC,CAAA;AAAA,CAAA,CACV,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAC,CAAA,CAAA,GAAK,GAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA;AAC1D,CAAA,CAAA,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,GAAG,CAAA,CAAA;AAE7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA;AAC3E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACb,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACT,CAAA,CAAA,CAAG,CAAA,CAAE,CAAA,CAAA;AACP,CAAA;;"}
1
+ {"version":3,"file":"filter-errors.mjs","names":[],"sources":["../../../../src/hooks/use-form-errors/filter-errors/filter-errors.ts"],"sourcesContent":["import type { FormErrors } from '../../../types';\n\nexport function filterErrors(errors: FormErrors): FormErrors {\n if (errors === null || typeof errors !== 'object') {\n return {};\n }\n\n return Object.keys(errors).reduce<FormErrors>((acc, key) => {\n const errorValue = errors[key];\n\n if (errorValue !== undefined && errorValue !== null && errorValue !== false) {\n acc[key] = errorValue;\n }\n\n return acc;\n }, {});\n}\n"],"mappings":";;AAEA,SAAgB,aAAa,QAAgC;AAC3D,KAAI,WAAW,QAAQ,OAAO,WAAW,SACvC,QAAO,EAAE;AAGX,QAAO,OAAO,KAAK,OAAO,CAAC,QAAoB,KAAK,QAAQ;EAC1D,MAAM,aAAa,OAAO;AAE1B,MAAI,eAAe,KAAA,KAAa,eAAe,QAAQ,eAAe,MACpE,KAAI,OAAO;AAGb,SAAO;IACN,EAAE,CAAC"}
@@ -1,49 +1,41 @@
1
- 'use client';
2
- import { useState, useRef, useCallback } from 'react';
3
- import { filterErrors } from './filter-errors/filter-errors.mjs';
4
-
1
+ "use client";
2
+ import { filterErrors } from "./filter-errors/filter-errors.mjs";
3
+ import { useCallback, useRef, useState } from "react";
4
+ //#region packages/@mantine/form/src/hooks/use-form-errors/use-form-errors.ts
5
5
  function useFormErrors(initialErrors) {
6
- const [errorsState, setErrorsState] = useState(filterErrors(initialErrors));
7
- const errorsRef = useRef(errorsState);
8
- const setErrors = useCallback((errors) => {
9
- setErrorsState((current) => {
10
- const newErrors = filterErrors(typeof errors === "function" ? errors(current) : errors);
11
- errorsRef.current = newErrors;
12
- return newErrors;
13
- });
14
- }, []);
15
- const clearErrors = useCallback(() => setErrors({}), []);
16
- const clearFieldError = useCallback(
17
- (path) => {
18
- if (errorsRef.current[path] === void 0) {
19
- return;
20
- }
21
- setErrors((current) => {
22
- const errors = { ...current };
23
- delete errors[path];
24
- return errors;
25
- });
26
- },
27
- [errorsState]
28
- );
29
- const setFieldError = useCallback(
30
- (path, error) => {
31
- if (error == null || error === false) {
32
- clearFieldError(path);
33
- } else if (errorsRef.current[path] !== error) {
34
- setErrors((current) => ({ ...current, [path]: error }));
35
- }
36
- },
37
- [errorsState]
38
- );
39
- return {
40
- errorsState,
41
- setErrors,
42
- clearErrors,
43
- setFieldError,
44
- clearFieldError
45
- };
6
+ const [errorsState, setErrorsState] = useState(filterErrors(initialErrors));
7
+ const errorsRef = useRef(errorsState);
8
+ const setErrors = useCallback((errors) => {
9
+ setErrorsState((current) => {
10
+ const newErrors = filterErrors(typeof errors === "function" ? errors(current) : errors);
11
+ errorsRef.current = newErrors;
12
+ return newErrors;
13
+ });
14
+ }, []);
15
+ const clearErrors = useCallback(() => setErrors({}), []);
16
+ const clearFieldError = useCallback((path) => {
17
+ if (errorsRef.current[path] === void 0) return;
18
+ setErrors((current) => {
19
+ const errors = { ...current };
20
+ delete errors[path];
21
+ return errors;
22
+ });
23
+ }, [errorsState]);
24
+ return {
25
+ errorsState,
26
+ setErrors,
27
+ clearErrors,
28
+ setFieldError: useCallback((path, error) => {
29
+ if (error == null || error === false) clearFieldError(path);
30
+ else if (errorsRef.current[path] !== error) setErrors((current) => ({
31
+ ...current,
32
+ [path]: error
33
+ }));
34
+ }, [errorsState]),
35
+ clearFieldError
36
+ };
46
37
  }
47
-
38
+ //#endregion
48
39
  export { useFormErrors };
49
- //# sourceMappingURL=use-form-errors.mjs.map
40
+
41
+ //# sourceMappingURL=use-form-errors.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-form-errors.mjs","sources":["../../../src/hooks/use-form-errors/use-form-errors.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\nimport { ClearErrors, ClearFieldError, FormErrors, SetErrors, SetFieldError } from '../../types';\nimport { filterErrors } from './filter-errors/filter-errors';\n\nexport interface $FormErrors<Values extends Record<string, any>> {\n errorsState: FormErrors;\n setErrors: SetErrors;\n clearErrors: ClearErrors;\n setFieldError: SetFieldError<Values>;\n clearFieldError: ClearFieldError;\n}\n\nexport function useFormErrors<Values extends Record<string, any>>(\n initialErrors: FormErrors\n): $FormErrors<Values> {\n const [errorsState, setErrorsState] = useState(filterErrors(initialErrors));\n const errorsRef = useRef(errorsState);\n\n const setErrors: SetErrors = useCallback((errors) => {\n setErrorsState((current) => {\n const newErrors = filterErrors(typeof errors === 'function' ? errors(current) : errors);\n errorsRef.current = newErrors;\n return newErrors;\n });\n }, []);\n\n const clearErrors: ClearErrors = useCallback(() => setErrors({}), []);\n\n const clearFieldError: ClearFieldError = useCallback(\n (path) => {\n if (errorsRef.current[path as string] === undefined) {\n return;\n }\n\n setErrors((current) => {\n const errors = { ...current };\n delete errors[path as string];\n return errors;\n });\n },\n [errorsState]\n );\n\n const setFieldError: SetFieldError<Values> = useCallback(\n (path, error) => {\n if (error == null || error === false) {\n clearFieldError(path);\n } else if (errorsRef.current[path as string] !== error) {\n setErrors((current) => ({ ...current, [path]: error }));\n }\n },\n [errorsState]\n );\n\n return {\n errorsState,\n setErrors,\n clearErrors,\n setFieldError,\n clearFieldError,\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-form-errors.mjs","names":[],"sources":["../../../src/hooks/use-form-errors/use-form-errors.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\nimport { ClearErrors, ClearFieldError, FormErrors, SetErrors, SetFieldError } from '../../types';\nimport { filterErrors } from './filter-errors/filter-errors';\n\nexport interface $FormErrors<Values extends Record<string, any>> {\n errorsState: FormErrors;\n setErrors: SetErrors;\n clearErrors: ClearErrors;\n setFieldError: SetFieldError<Values>;\n clearFieldError: ClearFieldError;\n}\n\nexport function useFormErrors<Values extends Record<string, any>>(\n initialErrors: FormErrors\n): $FormErrors<Values> {\n const [errorsState, setErrorsState] = useState(filterErrors(initialErrors));\n const errorsRef = useRef(errorsState);\n\n const setErrors: SetErrors = useCallback((errors) => {\n setErrorsState((current) => {\n const newErrors = filterErrors(typeof errors === 'function' ? errors(current) : errors);\n errorsRef.current = newErrors;\n return newErrors;\n });\n }, []);\n\n const clearErrors: ClearErrors = useCallback(() => setErrors({}), []);\n\n const clearFieldError: ClearFieldError = useCallback(\n (path) => {\n if (errorsRef.current[path as string] === undefined) {\n return;\n }\n\n setErrors((current) => {\n const errors = { ...current };\n delete errors[path as string];\n return errors;\n });\n },\n [errorsState]\n );\n\n const setFieldError: SetFieldError<Values> = useCallback(\n (path, error) => {\n if (error == null || error === false) {\n clearFieldError(path);\n } else if (errorsRef.current[path as string] !== error) {\n setErrors((current) => ({ ...current, [path]: error }));\n }\n },\n [errorsState]\n );\n\n return {\n errorsState,\n setErrors,\n clearErrors,\n setFieldError,\n clearFieldError,\n };\n}\n"],"mappings":";;;;AAYA,SAAgB,cACd,eACqB;CACrB,MAAM,CAAC,aAAa,kBAAkB,SAAS,aAAa,cAAc,CAAC;CAC3E,MAAM,YAAY,OAAO,YAAY;CAErC,MAAM,YAAuB,aAAa,WAAW;AACnD,kBAAgB,YAAY;GAC1B,MAAM,YAAY,aAAa,OAAO,WAAW,aAAa,OAAO,QAAQ,GAAG,OAAO;AACvF,aAAU,UAAU;AACpB,UAAO;IACP;IACD,EAAE,CAAC;CAEN,MAAM,cAA2B,kBAAkB,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;CAErE,MAAM,kBAAmC,aACtC,SAAS;AACR,MAAI,UAAU,QAAQ,UAAoB,KAAA,EACxC;AAGF,aAAW,YAAY;GACrB,MAAM,SAAS,EAAE,GAAG,SAAS;AAC7B,UAAO,OAAO;AACd,UAAO;IACP;IAEJ,CAAC,YAAY,CACd;AAaD,QAAO;EACL;EACA;EACA;EACA,eAf2C,aAC1C,MAAM,UAAU;AACf,OAAI,SAAS,QAAQ,UAAU,MAC7B,iBAAgB,KAAK;YACZ,UAAU,QAAQ,UAAoB,MAC/C,YAAW,aAAa;IAAE,GAAG;KAAU,OAAO;IAAO,EAAE;KAG3D,CAAC,YAAY,CACd;EAOC;EACD"}
@@ -1,51 +1,48 @@
1
- 'use client';
2
- import { useCallback } from 'react';
3
- import { changeErrorIndices } from '../../lists/change-error-indices.mjs';
4
- import { reorderErrors } from '../../lists/reorder-errors.mjs';
5
- import 'klona/full';
6
- import { reorderPath } from '../../paths/reorder-path.mjs';
7
- import { insertPath } from '../../paths/insert-path.mjs';
8
- import { removePath } from '../../paths/remove-path.mjs';
9
- import { replacePath } from '../../paths/replace-path.mjs';
10
-
11
- function useFormList({
12
- $values,
13
- $errors,
14
- $status
15
- }) {
16
- const reorderListItem = useCallback((path, payload) => {
17
- $status.clearFieldDirty(path);
18
- $errors.setErrors((errs) => reorderErrors(path, payload, errs));
19
- $values.setValues({
20
- values: reorderPath(path, payload, $values.refValues.current),
21
- updateState: true
22
- });
23
- }, []);
24
- const removeListItem = useCallback((path, index) => {
25
- $status.clearFieldDirty(path);
26
- $errors.setErrors((errs) => changeErrorIndices(path, index, errs, -1));
27
- $values.setValues({
28
- values: removePath(path, index, $values.refValues.current),
29
- updateState: true
30
- });
31
- }, []);
32
- const insertListItem = useCallback((path, item, index) => {
33
- $status.clearFieldDirty(path);
34
- $errors.setErrors((errs) => changeErrorIndices(path, index, errs, 1));
35
- $values.setValues({
36
- values: insertPath(path, item, index, $values.refValues.current),
37
- updateState: true
38
- });
39
- }, []);
40
- const replaceListItem = useCallback((path, index, item) => {
41
- $status.clearFieldDirty(path);
42
- $values.setValues({
43
- values: replacePath(path, item, index, $values.refValues.current),
44
- updateState: true
45
- });
46
- }, []);
47
- return { reorderListItem, removeListItem, insertListItem, replaceListItem };
1
+ "use client";
2
+ import { changeErrorIndices } from "../../lists/change-error-indices.mjs";
3
+ import { reorderErrors } from "../../lists/reorder-errors.mjs";
4
+ import { reorderPath } from "../../paths/reorder-path.mjs";
5
+ import { insertPath } from "../../paths/insert-path.mjs";
6
+ import { removePath } from "../../paths/remove-path.mjs";
7
+ import { replacePath } from "../../paths/replace-path.mjs";
8
+ import { useCallback } from "react";
9
+ //#region packages/@mantine/form/src/hooks/use-form-list/use-form-list.ts
10
+ function useFormList({ $values, $errors, $status }) {
11
+ return {
12
+ reorderListItem: useCallback((path, payload) => {
13
+ $status.clearFieldDirty(path);
14
+ $errors.setErrors((errs) => reorderErrors(path, payload, errs));
15
+ $values.setValues({
16
+ values: reorderPath(path, payload, $values.refValues.current),
17
+ updateState: true
18
+ });
19
+ }, []),
20
+ removeListItem: useCallback((path, index) => {
21
+ $status.clearFieldDirty(path);
22
+ $errors.setErrors((errs) => changeErrorIndices(path, index, errs, -1));
23
+ $values.setValues({
24
+ values: removePath(path, index, $values.refValues.current),
25
+ updateState: true
26
+ });
27
+ }, []),
28
+ insertListItem: useCallback((path, item, index) => {
29
+ $status.clearFieldDirty(path);
30
+ $errors.setErrors((errs) => changeErrorIndices(path, index, errs, 1));
31
+ $values.setValues({
32
+ values: insertPath(path, item, index, $values.refValues.current),
33
+ updateState: true
34
+ });
35
+ }, []),
36
+ replaceListItem: useCallback((path, index, item) => {
37
+ $status.clearFieldDirty(path);
38
+ $values.setValues({
39
+ values: replacePath(path, item, index, $values.refValues.current),
40
+ updateState: true
41
+ });
42
+ }, [])
43
+ };
48
44
  }
49
-
45
+ //#endregion
50
46
  export { useFormList };
51
- //# sourceMappingURL=use-form-list.mjs.map
47
+
48
+ //# sourceMappingURL=use-form-list.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-form-list.mjs","sources":["../../../src/hooks/use-form-list/use-form-list.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { changeErrorIndices, reorderErrors } from '../../lists';\nimport { insertPath, removePath, reorderPath, replacePath } from '../../paths';\nimport { InsertListItem, RemoveListItem, ReorderListItem, ReplaceListItem } from '../../types';\nimport type { $FormErrors } from '../use-form-errors/use-form-errors';\nimport type { $FormStatus } from '../use-form-status/use-form-status';\nimport type { $FormValues } from '../use-form-values/use-form-values';\n\ninterface UseFormListInput<Values extends Record<string, any>> {\n $values: $FormValues<Values>;\n $errors: $FormErrors<Values>;\n $status: $FormStatus<Values>;\n}\n\nexport function useFormList<Values extends Record<string, any>>({\n $values,\n $errors,\n $status,\n}: UseFormListInput<Values>) {\n const reorderListItem: ReorderListItem<Values> = useCallback((path, payload) => {\n $status.clearFieldDirty(path);\n $errors.setErrors((errs) => reorderErrors(path, payload, errs));\n $values.setValues({\n values: reorderPath(path, payload, $values.refValues.current),\n updateState: true,\n });\n }, []);\n\n const removeListItem: RemoveListItem<Values> = useCallback((path, index) => {\n $status.clearFieldDirty(path);\n $errors.setErrors((errs) => changeErrorIndices(path, index, errs, -1));\n $values.setValues({\n values: removePath(path, index, $values.refValues.current),\n updateState: true,\n });\n }, []);\n\n const insertListItem: InsertListItem<Values> = useCallback((path, item, index) => {\n $status.clearFieldDirty(path);\n $errors.setErrors((errs) => changeErrorIndices(path, index, errs, 1));\n $values.setValues({\n values: insertPath(path, item, index, $values.refValues.current),\n updateState: true,\n });\n }, []);\n\n const replaceListItem: ReplaceListItem<Values> = useCallback((path, index, item) => {\n $status.clearFieldDirty(path);\n $values.setValues({\n values: replacePath(path, item, index, $values.refValues.current),\n updateState: true,\n });\n }, []);\n\n return { reorderListItem, removeListItem, insertListItem, replaceListItem };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-form-list.mjs","names":[],"sources":["../../../src/hooks/use-form-list/use-form-list.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { changeErrorIndices, reorderErrors } from '../../lists';\nimport { insertPath, removePath, reorderPath, replacePath } from '../../paths';\nimport { InsertListItem, RemoveListItem, ReorderListItem, ReplaceListItem } from '../../types';\nimport type { $FormErrors } from '../use-form-errors/use-form-errors';\nimport type { $FormStatus } from '../use-form-status/use-form-status';\nimport type { $FormValues } from '../use-form-values/use-form-values';\n\ninterface UseFormListInput<Values extends Record<string, any>> {\n $values: $FormValues<Values>;\n $errors: $FormErrors<Values>;\n $status: $FormStatus<Values>;\n}\n\nexport function useFormList<Values extends Record<string, any>>({\n $values,\n $errors,\n $status,\n}: UseFormListInput<Values>) {\n const reorderListItem: ReorderListItem<Values> = useCallback((path, payload) => {\n $status.clearFieldDirty(path);\n $errors.setErrors((errs) => reorderErrors(path, payload, errs));\n $values.setValues({\n values: reorderPath(path, payload, $values.refValues.current),\n updateState: true,\n });\n }, []);\n\n const removeListItem: RemoveListItem<Values> = useCallback((path, index) => {\n $status.clearFieldDirty(path);\n $errors.setErrors((errs) => changeErrorIndices(path, index, errs, -1));\n $values.setValues({\n values: removePath(path, index, $values.refValues.current),\n updateState: true,\n });\n }, []);\n\n const insertListItem: InsertListItem<Values> = useCallback((path, item, index) => {\n $status.clearFieldDirty(path);\n $errors.setErrors((errs) => changeErrorIndices(path, index, errs, 1));\n $values.setValues({\n values: insertPath(path, item, index, $values.refValues.current),\n updateState: true,\n });\n }, []);\n\n const replaceListItem: ReplaceListItem<Values> = useCallback((path, index, item) => {\n $status.clearFieldDirty(path);\n $values.setValues({\n values: replacePath(path, item, index, $values.refValues.current),\n updateState: true,\n });\n }, []);\n\n return { reorderListItem, removeListItem, insertListItem, replaceListItem };\n}\n"],"mappings":";;;;;;;;;AAcA,SAAgB,YAAgD,EAC9D,SACA,SACA,WAC2B;AAoC3B,QAAO;EAAE,iBAnCwC,aAAa,MAAM,YAAY;AAC9E,WAAQ,gBAAgB,KAAK;AAC7B,WAAQ,WAAW,SAAS,cAAc,MAAM,SAAS,KAAK,CAAC;AAC/D,WAAQ,UAAU;IAChB,QAAQ,YAAY,MAAM,SAAS,QAAQ,UAAU,QAAQ;IAC7D,aAAa;IACd,CAAC;KACD,EAAE,CAAC;EA4BoB,gBA1BqB,aAAa,MAAM,UAAU;AAC1E,WAAQ,gBAAgB,KAAK;AAC7B,WAAQ,WAAW,SAAS,mBAAmB,MAAM,OAAO,MAAM,GAAG,CAAC;AACtE,WAAQ,UAAU;IAChB,QAAQ,WAAW,MAAM,OAAO,QAAQ,UAAU,QAAQ;IAC1D,aAAa;IACd,CAAC;KACD,EAAE,CAAC;EAmBoC,gBAjBK,aAAa,MAAM,MAAM,UAAU;AAChF,WAAQ,gBAAgB,KAAK;AAC7B,WAAQ,WAAW,SAAS,mBAAmB,MAAM,OAAO,MAAM,EAAE,CAAC;AACrE,WAAQ,UAAU;IAChB,QAAQ,WAAW,MAAM,MAAM,OAAO,QAAQ,UAAU,QAAQ;IAChE,aAAa;IACd,CAAC;KACD,EAAE,CAAC;EAUoD,iBART,aAAa,MAAM,OAAO,SAAS;AAClF,WAAQ,gBAAgB,KAAK;AAC7B,WAAQ,UAAU;IAChB,QAAQ,YAAY,MAAM,MAAM,OAAO,QAAQ,UAAU,QAAQ;IACjE,aAAa;IACd,CAAC;KACD,EAAE,CAAC;EAEqE"}
@@ -1,124 +1,95 @@
1
- 'use client';
2
- import { useState, useRef, useCallback } from 'react';
3
- import isEqual from 'fast-deep-equal';
4
- import { getStatus } from '../../get-status/get-status.mjs';
5
- import { clearListState } from '../../lists/clear-list-state.mjs';
6
- import { getPath } from '../../paths/get-path.mjs';
7
- import 'klona/full';
8
-
9
- function useFormStatus({
10
- initialDirty,
11
- initialTouched,
12
- mode,
13
- $values
14
- }) {
15
- const [touchedState, setTouchedState] = useState(initialTouched);
16
- const [dirtyState, setDirtyState] = useState(initialDirty);
17
- const touchedRef = useRef(initialTouched);
18
- const dirtyRef = useRef(initialDirty);
19
- const setTouched = useCallback((values) => {
20
- const resolvedValues = typeof values === "function" ? values(touchedRef.current) : values;
21
- touchedRef.current = resolvedValues;
22
- if (mode === "controlled") {
23
- setTouchedState(resolvedValues);
24
- }
25
- }, []);
26
- const setDirty = useCallback(
27
- (values, forceUpdate = false) => {
28
- const resolvedValues = typeof values === "function" ? values(dirtyRef.current) : values;
29
- dirtyRef.current = resolvedValues;
30
- if (mode === "controlled" || forceUpdate) {
31
- setDirtyState(resolvedValues);
32
- }
33
- },
34
- []
35
- );
36
- const resetTouched = useCallback(() => setTouched({}), []);
37
- const resetDirty = useCallback((values) => {
38
- const newSnapshot = values ? { ...$values.refValues.current, ...values } : $values.refValues.current;
39
- $values.setValuesSnapshot(newSnapshot);
40
- setDirty({});
41
- }, []);
42
- const setFieldTouched = useCallback((path, touched) => {
43
- setTouched((currentTouched) => {
44
- if (getStatus(currentTouched, path) === touched) {
45
- return currentTouched;
46
- }
47
- return { ...currentTouched, [path]: touched };
48
- });
49
- }, []);
50
- const setFieldDirty = useCallback((path, dirty, forceUpdate) => {
51
- setDirty((currentDirty) => {
52
- if (getStatus(currentDirty, path) === dirty) {
53
- return currentDirty;
54
- }
55
- return { ...currentDirty, [path]: dirty };
56
- }, forceUpdate);
57
- }, []);
58
- const setCalculatedFieldDirty = useCallback((path, value) => {
59
- const currentDirty = getStatus(dirtyRef.current, path);
60
- const dirty = !isEqual(getPath(path, $values.getValuesSnapshot()), value);
61
- const clearedState = clearListState(path, dirtyRef.current);
62
- clearedState[path] = dirty;
63
- setDirty(clearedState, currentDirty !== dirty);
64
- }, []);
65
- const isTouched = useCallback(
66
- (path) => getStatus(touchedRef.current, path),
67
- []
68
- );
69
- const clearFieldDirty = useCallback(
70
- (path) => setDirty((current) => {
71
- if (typeof path !== "string") {
72
- return current;
73
- }
74
- const result = clearListState(path, current);
75
- delete result[path];
76
- if (isEqual(result, current)) {
77
- return current;
78
- }
79
- return result;
80
- }),
81
- []
82
- );
83
- const isDirty = useCallback((path) => {
84
- if (path) {
85
- const overriddenValue = getPath(path, dirtyRef.current);
86
- if (typeof overriddenValue === "boolean") {
87
- return overriddenValue;
88
- }
89
- const sliceOfValues = getPath(path, $values.refValues.current);
90
- const sliceOfInitialValues = getPath(path, $values.valuesSnapshot.current);
91
- return !isEqual(sliceOfValues, sliceOfInitialValues);
92
- }
93
- const isOverridden = Object.keys(dirtyRef.current).length > 0;
94
- if (isOverridden) {
95
- return getStatus(dirtyRef.current);
96
- }
97
- return !isEqual($values.refValues.current, $values.valuesSnapshot.current);
98
- }, []);
99
- const getDirty = useCallback(() => dirtyRef.current, []);
100
- const getTouched = useCallback(() => touchedRef.current, []);
101
- return {
102
- touchedState,
103
- dirtyState,
104
- touchedRef,
105
- dirtyRef,
106
- setTouched,
107
- setDirty,
108
- resetDirty,
109
- resetTouched,
110
- isTouched,
111
- setFieldTouched,
112
- setFieldDirty,
113
- setTouchedState,
114
- setDirtyState,
115
- clearFieldDirty,
116
- isDirty,
117
- getDirty,
118
- getTouched,
119
- setCalculatedFieldDirty
120
- };
1
+ "use client";
2
+ import { clearListState } from "../../lists/clear-list-state.mjs";
3
+ import { getPath } from "../../paths/get-path.mjs";
4
+ import { getStatus } from "../../get-status/get-status.mjs";
5
+ import { useCallback, useRef, useState } from "react";
6
+ import isEqual from "fast-deep-equal";
7
+ //#region packages/@mantine/form/src/hooks/use-form-status/use-form-status.ts
8
+ function useFormStatus({ initialDirty, initialTouched, mode, $values }) {
9
+ const [touchedState, setTouchedState] = useState(initialTouched);
10
+ const [dirtyState, setDirtyState] = useState(initialDirty);
11
+ const touchedRef = useRef(initialTouched);
12
+ const dirtyRef = useRef(initialDirty);
13
+ const setTouched = useCallback((values) => {
14
+ const resolvedValues = typeof values === "function" ? values(touchedRef.current) : values;
15
+ touchedRef.current = resolvedValues;
16
+ if (mode === "controlled") setTouchedState(resolvedValues);
17
+ }, []);
18
+ const setDirty = useCallback((values, forceUpdate = false) => {
19
+ const resolvedValues = typeof values === "function" ? values(dirtyRef.current) : values;
20
+ dirtyRef.current = resolvedValues;
21
+ if (mode === "controlled" || forceUpdate) setDirtyState(resolvedValues);
22
+ }, []);
23
+ const resetTouched = useCallback(() => setTouched({}), []);
24
+ const resetDirty = useCallback((values) => {
25
+ const newSnapshot = values ? {
26
+ ...$values.refValues.current,
27
+ ...values
28
+ } : $values.refValues.current;
29
+ $values.setValuesSnapshot(newSnapshot);
30
+ setDirty({});
31
+ }, []);
32
+ const setFieldTouched = useCallback((path, touched) => {
33
+ setTouched((currentTouched) => {
34
+ if (getStatus(currentTouched, path) === touched) return currentTouched;
35
+ return {
36
+ ...currentTouched,
37
+ [path]: touched
38
+ };
39
+ });
40
+ }, []);
41
+ const setFieldDirty = useCallback((path, dirty, forceUpdate) => {
42
+ setDirty((currentDirty) => {
43
+ if (getStatus(currentDirty, path) === dirty) return currentDirty;
44
+ return {
45
+ ...currentDirty,
46
+ [path]: dirty
47
+ };
48
+ }, forceUpdate);
49
+ }, []);
50
+ const setCalculatedFieldDirty = useCallback((path, value) => {
51
+ const currentDirty = getStatus(dirtyRef.current, path);
52
+ const dirty = !isEqual(getPath(path, $values.getValuesSnapshot()), value);
53
+ const clearedState = clearListState(path, dirtyRef.current);
54
+ clearedState[path] = dirty;
55
+ setDirty(clearedState, currentDirty !== dirty);
56
+ }, []);
57
+ return {
58
+ touchedState,
59
+ dirtyState,
60
+ touchedRef,
61
+ dirtyRef,
62
+ setTouched,
63
+ setDirty,
64
+ resetDirty,
65
+ resetTouched,
66
+ isTouched: useCallback((path) => getStatus(touchedRef.current, path), []),
67
+ setFieldTouched,
68
+ setFieldDirty,
69
+ setTouchedState,
70
+ setDirtyState,
71
+ clearFieldDirty: useCallback((path) => setDirty((current) => {
72
+ if (typeof path !== "string") return current;
73
+ const result = clearListState(path, current);
74
+ delete result[path];
75
+ if (isEqual(result, current)) return current;
76
+ return result;
77
+ }), []),
78
+ isDirty: useCallback((path) => {
79
+ if (path) {
80
+ const overriddenValue = getPath(path, dirtyRef.current);
81
+ if (typeof overriddenValue === "boolean") return overriddenValue;
82
+ return !isEqual(getPath(path, $values.refValues.current), getPath(path, $values.valuesSnapshot.current));
83
+ }
84
+ if (Object.keys(dirtyRef.current).length > 0) return getStatus(dirtyRef.current);
85
+ return !isEqual($values.refValues.current, $values.valuesSnapshot.current);
86
+ }, []),
87
+ getDirty: useCallback(() => dirtyRef.current, []),
88
+ getTouched: useCallback(() => touchedRef.current, []),
89
+ setCalculatedFieldDirty
90
+ };
121
91
  }
122
-
92
+ //#endregion
123
93
  export { useFormStatus };
124
- //# sourceMappingURL=use-form-status.mjs.map
94
+
95
+ //# sourceMappingURL=use-form-status.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-form-status.mjs","sources":["../../../src/hooks/use-form-status/use-form-status.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\nimport isEqual from 'fast-deep-equal';\nimport { getStatus } from '../../get-status';\nimport { clearListState } from '../../lists';\nimport { getPath } from '../../paths';\nimport {\n ClearFieldDirty,\n FormMode,\n FormStatus,\n GetFieldStatus,\n ResetDirty,\n ResetStatus,\n SetCalculatedFieldDirty,\n SetFieldDirty,\n SetFieldTouched,\n} from '../../types';\nimport type { $FormValues } from '../use-form-values/use-form-values';\n\nexport interface $FormStatus<Values extends Record<string, any>> {\n touchedState: FormStatus;\n dirtyState: FormStatus;\n touchedRef: React.RefObject<FormStatus>;\n dirtyRef: React.RefObject<FormStatus>;\n setTouched: React.Dispatch<React.SetStateAction<FormStatus>>;\n setDirty: React.Dispatch<React.SetStateAction<FormStatus>>;\n resetDirty: ResetStatus;\n resetTouched: ResetStatus;\n isTouched: GetFieldStatus<Values>;\n setFieldTouched: SetFieldTouched<Values>;\n setFieldDirty: SetFieldDirty<Values>;\n setTouchedState: React.Dispatch<React.SetStateAction<FormStatus>>;\n setDirtyState: React.Dispatch<React.SetStateAction<FormStatus>>;\n clearFieldDirty: ClearFieldDirty;\n isDirty: GetFieldStatus<Values>;\n getDirty: () => FormStatus;\n getTouched: () => FormStatus;\n setCalculatedFieldDirty: SetCalculatedFieldDirty<Values>;\n}\n\ninterface UseFormStatusInput<Values extends Record<string, any>> {\n initialDirty: FormStatus;\n initialTouched: FormStatus;\n mode: FormMode;\n $values: $FormValues<Values>;\n}\n\nexport function useFormStatus<Values extends Record<string, any>>({\n initialDirty,\n initialTouched,\n mode,\n $values,\n}: UseFormStatusInput<Values>): $FormStatus<Values> {\n const [touchedState, setTouchedState] = useState(initialTouched);\n const [dirtyState, setDirtyState] = useState(initialDirty);\n\n const touchedRef = useRef(initialTouched);\n const dirtyRef = useRef(initialDirty);\n\n const setTouched = useCallback((values: FormStatus | ((current: FormStatus) => FormStatus)) => {\n const resolvedValues = typeof values === 'function' ? values(touchedRef.current) : values;\n touchedRef.current = resolvedValues;\n\n if (mode === 'controlled') {\n setTouchedState(resolvedValues);\n }\n }, []);\n\n const setDirty = useCallback(\n (values: FormStatus | ((current: FormStatus) => FormStatus), forceUpdate = false) => {\n const resolvedValues = typeof values === 'function' ? values(dirtyRef.current) : values;\n dirtyRef.current = resolvedValues;\n\n if (mode === 'controlled' || forceUpdate) {\n setDirtyState(resolvedValues);\n }\n },\n []\n );\n\n const resetTouched: ResetStatus = useCallback(() => setTouched({}), []);\n\n const resetDirty: ResetDirty<Values> = useCallback((values) => {\n const newSnapshot = values\n ? { ...$values.refValues.current, ...values }\n : $values.refValues.current;\n $values.setValuesSnapshot(newSnapshot);\n setDirty({});\n }, []);\n\n const setFieldTouched: SetFieldTouched<Values> = useCallback((path, touched) => {\n setTouched((currentTouched) => {\n if (getStatus(currentTouched, path) === touched) {\n return currentTouched;\n }\n\n return { ...currentTouched, [path]: touched };\n });\n }, []);\n\n const setFieldDirty: SetFieldDirty<Values> = useCallback((path, dirty, forceUpdate) => {\n setDirty((currentDirty) => {\n if (getStatus(currentDirty, path) === dirty) {\n return currentDirty;\n }\n\n return { ...currentDirty, [path]: dirty };\n }, forceUpdate);\n }, []);\n\n const setCalculatedFieldDirty: SetCalculatedFieldDirty<Values> = useCallback((path, value) => {\n const currentDirty = getStatus(dirtyRef.current, path);\n const dirty = !isEqual(getPath(path, $values.getValuesSnapshot()), value);\n const clearedState = clearListState(path, dirtyRef.current);\n clearedState[path as string] = dirty;\n setDirty(clearedState, currentDirty !== dirty);\n }, []);\n\n const isTouched: GetFieldStatus<Values> = useCallback(\n (path) => getStatus(touchedRef.current, path),\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\n if (isEqual(result, current)) {\n return current;\n }\n\n return result;\n }),\n []\n );\n\n const isDirty: GetFieldStatus<Values> = useCallback((path) => {\n if (path) {\n const overriddenValue = getPath(path, dirtyRef.current);\n if (typeof overriddenValue === 'boolean') {\n return overriddenValue;\n }\n\n const sliceOfValues = getPath(path, $values.refValues.current);\n const sliceOfInitialValues = getPath(path, $values.valuesSnapshot.current);\n return !isEqual(sliceOfValues, sliceOfInitialValues);\n }\n\n const isOverridden = Object.keys(dirtyRef.current).length > 0;\n if (isOverridden) {\n return getStatus(dirtyRef.current);\n }\n\n return !isEqual($values.refValues.current, $values.valuesSnapshot.current);\n }, []);\n\n const getDirty = useCallback(() => dirtyRef.current, []);\n const getTouched = useCallback(() => touchedRef.current, []);\n\n return {\n touchedState,\n dirtyState,\n touchedRef,\n dirtyRef,\n setTouched,\n setDirty,\n resetDirty,\n resetTouched,\n isTouched,\n setFieldTouched,\n setFieldDirty,\n setTouchedState,\n setDirtyState,\n clearFieldDirty,\n isDirty,\n getDirty,\n getTouched,\n setCalculatedFieldDirty,\n };\n}\n"],"names":[],"mappings":"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A,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CACF,CAAA;AACF,CAAA;;"}
1
+ {"version":3,"file":"use-form-status.mjs","names":[],"sources":["../../../src/hooks/use-form-status/use-form-status.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\nimport isEqual from 'fast-deep-equal';\nimport { getStatus } from '../../get-status';\nimport { clearListState } from '../../lists';\nimport { getPath } from '../../paths';\nimport {\n ClearFieldDirty,\n FormMode,\n FormStatus,\n GetFieldStatus,\n ResetDirty,\n ResetStatus,\n SetCalculatedFieldDirty,\n SetFieldDirty,\n SetFieldTouched,\n} from '../../types';\nimport type { $FormValues } from '../use-form-values/use-form-values';\n\nexport interface $FormStatus<out Values extends Record<string, any>> {\n touchedState: FormStatus;\n dirtyState: FormStatus;\n touchedRef: React.RefObject<FormStatus>;\n dirtyRef: React.RefObject<FormStatus>;\n setTouched: React.Dispatch<React.SetStateAction<FormStatus>>;\n setDirty: React.Dispatch<React.SetStateAction<FormStatus>>;\n resetDirty: ResetStatus;\n resetTouched: ResetStatus;\n isTouched: GetFieldStatus<Values>;\n setFieldTouched: SetFieldTouched<Values>;\n setFieldDirty: SetFieldDirty<Values>;\n setTouchedState: React.Dispatch<React.SetStateAction<FormStatus>>;\n setDirtyState: React.Dispatch<React.SetStateAction<FormStatus>>;\n clearFieldDirty: ClearFieldDirty;\n isDirty: GetFieldStatus<Values>;\n getDirty: () => FormStatus;\n getTouched: () => FormStatus;\n setCalculatedFieldDirty: SetCalculatedFieldDirty<Values>;\n}\n\ninterface UseFormStatusInput<out Values extends Record<string, any>> {\n initialDirty: FormStatus;\n initialTouched: FormStatus;\n mode: FormMode;\n $values: $FormValues<Values>;\n}\n\nexport function useFormStatus<Values extends Record<string, any>>({\n initialDirty,\n initialTouched,\n mode,\n $values,\n}: UseFormStatusInput<Values>): $FormStatus<Values> {\n const [touchedState, setTouchedState] = useState(initialTouched);\n const [dirtyState, setDirtyState] = useState(initialDirty);\n\n const touchedRef = useRef(initialTouched);\n const dirtyRef = useRef(initialDirty);\n\n const setTouched = useCallback((values: FormStatus | ((current: FormStatus) => FormStatus)) => {\n const resolvedValues = typeof values === 'function' ? values(touchedRef.current) : values;\n touchedRef.current = resolvedValues;\n\n if (mode === 'controlled') {\n setTouchedState(resolvedValues);\n }\n }, []);\n\n const setDirty = useCallback(\n (values: FormStatus | ((current: FormStatus) => FormStatus), forceUpdate = false) => {\n const resolvedValues = typeof values === 'function' ? values(dirtyRef.current) : values;\n dirtyRef.current = resolvedValues;\n\n if (mode === 'controlled' || forceUpdate) {\n setDirtyState(resolvedValues);\n }\n },\n []\n );\n\n const resetTouched: ResetStatus = useCallback(() => setTouched({}), []);\n\n const resetDirty: ResetDirty<Values> = useCallback((values) => {\n const newSnapshot = values\n ? { ...$values.refValues.current, ...values }\n : $values.refValues.current;\n $values.setValuesSnapshot(newSnapshot);\n setDirty({});\n }, []);\n\n const setFieldTouched: SetFieldTouched<Values> = useCallback((path, touched) => {\n setTouched((currentTouched) => {\n if (getStatus(currentTouched, path) === touched) {\n return currentTouched;\n }\n\n return { ...currentTouched, [path]: touched };\n });\n }, []);\n\n const setFieldDirty: SetFieldDirty<Values> = useCallback((path, dirty, forceUpdate) => {\n setDirty((currentDirty) => {\n if (getStatus(currentDirty, path) === dirty) {\n return currentDirty;\n }\n\n return { ...currentDirty, [path]: dirty };\n }, forceUpdate);\n }, []);\n\n const setCalculatedFieldDirty: SetCalculatedFieldDirty<Values> = useCallback((path, value) => {\n const currentDirty = getStatus(dirtyRef.current, path);\n const dirty = !isEqual(getPath(path, $values.getValuesSnapshot()), value);\n const clearedState = clearListState(path, dirtyRef.current);\n clearedState[path as string] = dirty;\n setDirty(clearedState, currentDirty !== dirty);\n }, []);\n\n const isTouched: GetFieldStatus<Values> = useCallback(\n (path) => getStatus(touchedRef.current, path),\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\n if (isEqual(result, current)) {\n return current;\n }\n\n return result;\n }),\n []\n );\n\n const isDirty: GetFieldStatus<Values> = useCallback((path) => {\n if (path) {\n const overriddenValue = getPath(path, dirtyRef.current);\n if (typeof overriddenValue === 'boolean') {\n return overriddenValue;\n }\n\n const sliceOfValues = getPath(path, $values.refValues.current);\n const sliceOfInitialValues = getPath(path, $values.valuesSnapshot.current);\n return !isEqual(sliceOfValues, sliceOfInitialValues);\n }\n\n const isOverridden = Object.keys(dirtyRef.current).length > 0;\n if (isOverridden) {\n return getStatus(dirtyRef.current);\n }\n\n return !isEqual($values.refValues.current, $values.valuesSnapshot.current);\n }, []);\n\n const getDirty = useCallback(() => dirtyRef.current, []);\n const getTouched = useCallback(() => touchedRef.current, []);\n\n return {\n touchedState,\n dirtyState,\n touchedRef,\n dirtyRef,\n setTouched,\n setDirty,\n resetDirty,\n resetTouched,\n isTouched,\n setFieldTouched,\n setFieldDirty,\n setTouchedState,\n setDirtyState,\n clearFieldDirty,\n isDirty,\n getDirty,\n getTouched,\n setCalculatedFieldDirty,\n };\n}\n"],"mappings":";;;;;;;AA8CA,SAAgB,cAAkD,EAChE,cACA,gBACA,MACA,WACkD;CAClD,MAAM,CAAC,cAAc,mBAAmB,SAAS,eAAe;CAChE,MAAM,CAAC,YAAY,iBAAiB,SAAS,aAAa;CAE1D,MAAM,aAAa,OAAO,eAAe;CACzC,MAAM,WAAW,OAAO,aAAa;CAErC,MAAM,aAAa,aAAa,WAA+D;EAC7F,MAAM,iBAAiB,OAAO,WAAW,aAAa,OAAO,WAAW,QAAQ,GAAG;AACnF,aAAW,UAAU;AAErB,MAAI,SAAS,aACX,iBAAgB,eAAe;IAEhC,EAAE,CAAC;CAEN,MAAM,WAAW,aACd,QAA4D,cAAc,UAAU;EACnF,MAAM,iBAAiB,OAAO,WAAW,aAAa,OAAO,SAAS,QAAQ,GAAG;AACjF,WAAS,UAAU;AAEnB,MAAI,SAAS,gBAAgB,YAC3B,eAAc,eAAe;IAGjC,EAAE,CACH;CAED,MAAM,eAA4B,kBAAkB,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;CAEvE,MAAM,aAAiC,aAAa,WAAW;EAC7D,MAAM,cAAc,SAChB;GAAE,GAAG,QAAQ,UAAU;GAAS,GAAG;GAAQ,GAC3C,QAAQ,UAAU;AACtB,UAAQ,kBAAkB,YAAY;AACtC,WAAS,EAAE,CAAC;IACX,EAAE,CAAC;CAEN,MAAM,kBAA2C,aAAa,MAAM,YAAY;AAC9E,cAAY,mBAAmB;AAC7B,OAAI,UAAU,gBAAgB,KAAK,KAAK,QACtC,QAAO;AAGT,UAAO;IAAE,GAAG;KAAiB,OAAO;IAAS;IAC7C;IACD,EAAE,CAAC;CAEN,MAAM,gBAAuC,aAAa,MAAM,OAAO,gBAAgB;AACrF,YAAU,iBAAiB;AACzB,OAAI,UAAU,cAAc,KAAK,KAAK,MACpC,QAAO;AAGT,UAAO;IAAE,GAAG;KAAe,OAAO;IAAO;KACxC,YAAY;IACd,EAAE,CAAC;CAEN,MAAM,0BAA2D,aAAa,MAAM,UAAU;EAC5F,MAAM,eAAe,UAAU,SAAS,SAAS,KAAK;EACtD,MAAM,QAAQ,CAAC,QAAQ,QAAQ,MAAM,QAAQ,mBAAmB,CAAC,EAAE,MAAM;EACzE,MAAM,eAAe,eAAe,MAAM,SAAS,QAAQ;AAC3D,eAAa,QAAkB;AAC/B,WAAS,cAAc,iBAAiB,MAAM;IAC7C,EAAE,CAAC;AAiDN,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,WAxDwC,aACvC,SAAS,UAAU,WAAW,SAAS,KAAK,EAC7C,EAAE,CACH;EAsDC;EACA;EACA;EACA;EACA,iBAxDuC,aACtC,SACC,UAAU,YAAY;AACpB,OAAI,OAAO,SAAS,SAClB,QAAO;GAGT,MAAM,SAAS,eAAe,MAAM,QAAQ;AAC5C,UAAO,OAAO;AAEd,OAAI,QAAQ,QAAQ,QAAQ,CAC1B,QAAO;AAGT,UAAO;IACP,EACJ,EAAE,CACH;EAwCC,SAtCsC,aAAa,SAAS;AAC5D,OAAI,MAAM;IACR,MAAM,kBAAkB,QAAQ,MAAM,SAAS,QAAQ;AACvD,QAAI,OAAO,oBAAoB,UAC7B,QAAO;AAKT,WAAO,CAAC,QAFc,QAAQ,MAAM,QAAQ,UAAU,QAAQ,EACjC,QAAQ,MAAM,QAAQ,eAAe,QAAQ,CACtB;;AAItD,OADqB,OAAO,KAAK,SAAS,QAAQ,CAAC,SAAS,EAE1D,QAAO,UAAU,SAAS,QAAQ;AAGpC,UAAO,CAAC,QAAQ,QAAQ,UAAU,SAAS,QAAQ,eAAe,QAAQ;KACzE,EAAE,CAAC;EAqBJ,UAnBe,kBAAkB,SAAS,SAAS,EAAE,CAAC;EAoBtD,YAnBiB,kBAAkB,WAAW,SAAS,EAAE,CAAC;EAoB1D;EACD"}