@dnb/eufemia 10.75.2 → 10.75.4

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 (452) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/cjs/components/accordion/Accordion.js +2 -3
  3. package/cjs/components/accordion/Accordion.js.map +1 -1
  4. package/cjs/components/accordion/AccordionContext.d.ts +0 -4
  5. package/cjs/components/accordion/AccordionContext.js.map +1 -1
  6. package/cjs/components/accordion/AccordionGroup.js +1 -3
  7. package/cjs/components/accordion/AccordionGroup.js.map +1 -1
  8. package/cjs/components/accordion/AccordionProviderContext.d.ts +0 -4
  9. package/cjs/components/accordion/AccordionProviderContext.js +3 -1
  10. package/cjs/components/accordion/AccordionProviderContext.js.map +1 -1
  11. package/cjs/components/accordion/AccordionStore.js +1 -2
  12. package/cjs/components/accordion/AccordionStore.js.map +1 -1
  13. package/cjs/components/accordion/style/dnb-accordion.css +0 -6
  14. package/cjs/components/accordion/style/dnb-accordion.min.css +1 -1
  15. package/cjs/components/accordion/style/dnb-accordion.scss +0 -5
  16. package/cjs/components/autocomplete/Autocomplete.d.ts +1 -1
  17. package/cjs/components/autocomplete/Autocomplete.js +2 -2
  18. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  19. package/cjs/components/autocomplete/AutocompleteDocs.js +1 -1
  20. package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -1
  21. package/cjs/components/button/Button.js +8 -7
  22. package/cjs/components/button/Button.js.map +1 -1
  23. package/cjs/components/date-picker/DatePickerDocs.js +3 -3
  24. package/cjs/components/date-picker/DatePickerDocs.js.map +1 -1
  25. package/cjs/components/date-picker/DatePickerInput.js +2 -2
  26. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  27. package/cjs/components/date-picker/style/dnb-date-picker.css +0 -1
  28. package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
  29. package/cjs/components/dialog/style/dnb-dialog.css +0 -4
  30. package/cjs/components/dialog/style/dnb-dialog.min.css +1 -1
  31. package/cjs/components/dialog/style/dnb-dialog.scss +0 -5
  32. package/cjs/components/drawer/DrawerDocs.js +2 -2
  33. package/cjs/components/drawer/DrawerDocs.js.map +1 -1
  34. package/cjs/components/drawer/style/dnb-drawer.css +0 -4
  35. package/cjs/components/drawer/style/dnb-drawer.min.css +1 -1
  36. package/cjs/components/drawer/style/dnb-drawer.scss +0 -5
  37. package/cjs/components/form-label/style/dnb-form-label.css +0 -1
  38. package/cjs/components/form-label/style/dnb-form-label.min.css +1 -1
  39. package/cjs/components/form-row/FormRow.d.ts +1 -1
  40. package/cjs/components/form-row/FormRowDocs.js +1 -1
  41. package/cjs/components/form-row/FormRowDocs.js.map +1 -1
  42. package/cjs/components/input-masked/style/dnb-input-masked.css +0 -1
  43. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  44. package/cjs/components/list-format/ListFormatDocs.js +2 -2
  45. package/cjs/components/list-format/ListFormatDocs.js.map +1 -1
  46. package/cjs/components/modal/style/dnb-modal.css +0 -4
  47. package/cjs/components/modal/style/dnb-modal.min.css +1 -1
  48. package/cjs/components/modal/style/dnb-modal.scss +0 -5
  49. package/cjs/components/pagination/PaginationDocs.js +2 -2
  50. package/cjs/components/pagination/PaginationDocs.js.map +1 -1
  51. package/cjs/components/slider/SliderDocs.js +1 -1
  52. package/cjs/components/slider/SliderDocs.js.map +1 -1
  53. package/cjs/components/step-indicator/StepIndicatorDocs.js +4 -4
  54. package/cjs/components/step-indicator/StepIndicatorDocs.js.map +1 -1
  55. package/cjs/components/timeline/TimelineItem.js +5 -5
  56. package/cjs/components/timeline/TimelineItem.js.map +1 -1
  57. package/cjs/components/toggle-button/ToggleButtonDocs.js +1 -1
  58. package/cjs/components/toggle-button/ToggleButtonDocs.js.map +1 -1
  59. package/cjs/components/upload/style/dnb-upload.css +0 -1
  60. package/cjs/components/upload/style/dnb-upload.min.css +1 -1
  61. package/cjs/core/jest/jestSetupScreenshots.css +6 -0
  62. package/cjs/extensions/forms/Field/Date/Date.js +10 -4
  63. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  64. package/cjs/extensions/forms/Field/Indeterminate/Indeterminate.js +4 -2
  65. package/cjs/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -1
  66. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.d.ts +1 -0
  67. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js +12 -5
  68. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
  69. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +1 -1
  70. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  71. package/cjs/extensions/forms/Field/Selection/style/dnb-selection.css +0 -2
  72. package/cjs/extensions/forms/Field/Selection/style/dnb-selection.min.css +1 -1
  73. package/cjs/extensions/forms/Field/Selection/style/dnb-selection.scss +0 -2
  74. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +1 -1
  75. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  76. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
  77. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  78. package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
  79. package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  80. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +1 -0
  81. package/cjs/extensions/forms/constants/locales/en-GB.js +2 -1
  82. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  83. package/cjs/extensions/forms/constants/locales/en-US.d.ts +1 -0
  84. package/cjs/extensions/forms/constants/locales/index.d.ts +2 -0
  85. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
  86. package/cjs/extensions/forms/constants/locales/nb-NO.js +2 -1
  87. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  88. package/cjs/extensions/forms/constants/locales/sv-SE.d.ts +1 -0
  89. package/cjs/extensions/forms/constants/locales/sv-SE.js +2 -1
  90. package/cjs/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  91. package/cjs/extensions/forms/hooks/useFieldProps.js +3 -3
  92. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  93. package/cjs/extensions/forms/style/dnb-forms.css +0 -2
  94. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  95. package/cjs/extensions/payment-card/PaymentCard.js +8 -1
  96. package/cjs/extensions/payment-card/PaymentCard.js.map +1 -1
  97. package/cjs/fragments/drawer-list/DrawerList.d.ts +2 -1
  98. package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
  99. package/cjs/shared/AlignmentHelper.d.ts +14 -8
  100. package/cjs/shared/AlignmentHelper.js +4 -8
  101. package/cjs/shared/AlignmentHelper.js.map +1 -1
  102. package/cjs/shared/Eufemia.d.ts +14 -1
  103. package/cjs/shared/Eufemia.js +28 -3
  104. package/cjs/shared/Eufemia.js.map +1 -1
  105. package/cjs/shared/build-info/BuildInfo.d.ts +2 -0
  106. package/cjs/shared/build-info/BuildInfo.js +16 -0
  107. package/cjs/shared/build-info/BuildInfo.js.map +1 -0
  108. package/cjs/shared/build-info/BuildInfoData.d.ts +2 -0
  109. package/cjs/shared/build-info/BuildInfoData.js +9 -0
  110. package/cjs/shared/build-info/BuildInfoData.js.map +1 -0
  111. package/cjs/shared/helpers/runCssVersionMismatchWarning.d.ts +0 -7
  112. package/cjs/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  113. package/cjs/shared/useMedia.js +66 -55
  114. package/cjs/shared/useMedia.js.map +1 -1
  115. package/cjs/style/core/helper-classes/helper-classes.scss +3 -0
  116. package/cjs/style/core/scopes.scss +1 -1
  117. package/cjs/style/core/utilities.scss +3 -1
  118. package/cjs/style/dnb-ui-basis.css +13 -2
  119. package/cjs/style/dnb-ui-basis.min.css +1 -1
  120. package/cjs/style/dnb-ui-body.css +1 -2
  121. package/cjs/style/dnb-ui-body.min.css +1 -1
  122. package/cjs/style/dnb-ui-components.css +0 -24
  123. package/cjs/style/dnb-ui-components.min.css +3 -3
  124. package/cjs/style/dnb-ui-core.css +13 -3
  125. package/cjs/style/dnb-ui-core.min.css +1 -1
  126. package/cjs/style/dnb-ui-extensions.css +0 -2
  127. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  128. package/cjs/style/dnb-ui-forms.css +0 -2
  129. package/cjs/style/dnb-ui-forms.min.css +1 -1
  130. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +0 -26
  131. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  132. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +0 -2
  133. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  134. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +0 -2
  135. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  136. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +0 -26
  137. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  138. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +0 -2
  139. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  140. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +0 -2
  141. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  142. package/cjs/style/themes/theme-ui/ui-theme-components.css +0 -26
  143. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  144. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +0 -2
  145. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  146. package/cjs/style/themes/theme-ui/ui-theme-forms.css +0 -2
  147. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  148. package/components/accordion/Accordion.js +2 -3
  149. package/components/accordion/Accordion.js.map +1 -1
  150. package/components/accordion/AccordionContext.d.ts +0 -4
  151. package/components/accordion/AccordionContext.js.map +1 -1
  152. package/components/accordion/AccordionGroup.js +1 -3
  153. package/components/accordion/AccordionGroup.js.map +1 -1
  154. package/components/accordion/AccordionProviderContext.d.ts +0 -4
  155. package/components/accordion/AccordionProviderContext.js +3 -1
  156. package/components/accordion/AccordionProviderContext.js.map +1 -1
  157. package/components/accordion/AccordionStore.js +1 -2
  158. package/components/accordion/AccordionStore.js.map +1 -1
  159. package/components/accordion/style/dnb-accordion.css +0 -6
  160. package/components/accordion/style/dnb-accordion.min.css +1 -1
  161. package/components/accordion/style/dnb-accordion.scss +0 -5
  162. package/components/autocomplete/Autocomplete.d.ts +1 -1
  163. package/components/autocomplete/Autocomplete.js +2 -2
  164. package/components/autocomplete/Autocomplete.js.map +1 -1
  165. package/components/autocomplete/AutocompleteDocs.js +1 -1
  166. package/components/autocomplete/AutocompleteDocs.js.map +1 -1
  167. package/components/button/Button.js +8 -7
  168. package/components/button/Button.js.map +1 -1
  169. package/components/date-picker/DatePickerDocs.js +3 -3
  170. package/components/date-picker/DatePickerDocs.js.map +1 -1
  171. package/components/date-picker/DatePickerInput.js +2 -2
  172. package/components/date-picker/DatePickerInput.js.map +1 -1
  173. package/components/date-picker/style/dnb-date-picker.css +0 -1
  174. package/components/date-picker/style/dnb-date-picker.min.css +1 -1
  175. package/components/dialog/style/dnb-dialog.css +0 -4
  176. package/components/dialog/style/dnb-dialog.min.css +1 -1
  177. package/components/dialog/style/dnb-dialog.scss +0 -5
  178. package/components/drawer/DrawerDocs.js +2 -2
  179. package/components/drawer/DrawerDocs.js.map +1 -1
  180. package/components/drawer/style/dnb-drawer.css +0 -4
  181. package/components/drawer/style/dnb-drawer.min.css +1 -1
  182. package/components/drawer/style/dnb-drawer.scss +0 -5
  183. package/components/form-label/style/dnb-form-label.css +0 -1
  184. package/components/form-label/style/dnb-form-label.min.css +1 -1
  185. package/components/form-row/FormRow.d.ts +1 -1
  186. package/components/form-row/FormRowDocs.js +1 -1
  187. package/components/form-row/FormRowDocs.js.map +1 -1
  188. package/components/input-masked/style/dnb-input-masked.css +0 -1
  189. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  190. package/components/list-format/ListFormatDocs.js +2 -2
  191. package/components/list-format/ListFormatDocs.js.map +1 -1
  192. package/components/modal/style/dnb-modal.css +0 -4
  193. package/components/modal/style/dnb-modal.min.css +1 -1
  194. package/components/modal/style/dnb-modal.scss +0 -5
  195. package/components/pagination/PaginationDocs.js +2 -2
  196. package/components/pagination/PaginationDocs.js.map +1 -1
  197. package/components/slider/SliderDocs.js +1 -1
  198. package/components/slider/SliderDocs.js.map +1 -1
  199. package/components/step-indicator/StepIndicatorDocs.js +4 -4
  200. package/components/step-indicator/StepIndicatorDocs.js.map +1 -1
  201. package/components/timeline/TimelineItem.js +5 -5
  202. package/components/timeline/TimelineItem.js.map +1 -1
  203. package/components/toggle-button/ToggleButtonDocs.js +1 -1
  204. package/components/toggle-button/ToggleButtonDocs.js.map +1 -1
  205. package/components/upload/style/dnb-upload.css +0 -1
  206. package/components/upload/style/dnb-upload.min.css +1 -1
  207. package/core/jest/jestSetupScreenshots.css +6 -0
  208. package/es/components/accordion/Accordion.js +2 -3
  209. package/es/components/accordion/Accordion.js.map +1 -1
  210. package/es/components/accordion/AccordionContext.d.ts +0 -4
  211. package/es/components/accordion/AccordionContext.js.map +1 -1
  212. package/es/components/accordion/AccordionGroup.js +1 -3
  213. package/es/components/accordion/AccordionGroup.js.map +1 -1
  214. package/es/components/accordion/AccordionProviderContext.d.ts +0 -4
  215. package/es/components/accordion/AccordionProviderContext.js +3 -1
  216. package/es/components/accordion/AccordionProviderContext.js.map +1 -1
  217. package/es/components/accordion/AccordionStore.js +1 -2
  218. package/es/components/accordion/AccordionStore.js.map +1 -1
  219. package/es/components/accordion/style/dnb-accordion.css +0 -6
  220. package/es/components/accordion/style/dnb-accordion.min.css +1 -1
  221. package/es/components/accordion/style/dnb-accordion.scss +0 -5
  222. package/es/components/autocomplete/Autocomplete.d.ts +1 -1
  223. package/es/components/autocomplete/Autocomplete.js +2 -2
  224. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  225. package/es/components/autocomplete/AutocompleteDocs.js +1 -1
  226. package/es/components/autocomplete/AutocompleteDocs.js.map +1 -1
  227. package/es/components/button/Button.js +8 -7
  228. package/es/components/button/Button.js.map +1 -1
  229. package/es/components/date-picker/DatePickerDocs.js +3 -3
  230. package/es/components/date-picker/DatePickerDocs.js.map +1 -1
  231. package/es/components/date-picker/DatePickerInput.js +2 -2
  232. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  233. package/es/components/date-picker/style/dnb-date-picker.css +0 -1
  234. package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
  235. package/es/components/dialog/style/dnb-dialog.css +0 -4
  236. package/es/components/dialog/style/dnb-dialog.min.css +1 -1
  237. package/es/components/dialog/style/dnb-dialog.scss +0 -5
  238. package/es/components/drawer/DrawerDocs.js +2 -2
  239. package/es/components/drawer/DrawerDocs.js.map +1 -1
  240. package/es/components/drawer/style/dnb-drawer.css +0 -4
  241. package/es/components/drawer/style/dnb-drawer.min.css +1 -1
  242. package/es/components/drawer/style/dnb-drawer.scss +0 -5
  243. package/es/components/form-label/style/dnb-form-label.css +0 -1
  244. package/es/components/form-label/style/dnb-form-label.min.css +1 -1
  245. package/es/components/form-row/FormRow.d.ts +1 -1
  246. package/es/components/form-row/FormRowDocs.js +1 -1
  247. package/es/components/form-row/FormRowDocs.js.map +1 -1
  248. package/es/components/input-masked/style/dnb-input-masked.css +0 -1
  249. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  250. package/es/components/list-format/ListFormatDocs.js +2 -2
  251. package/es/components/list-format/ListFormatDocs.js.map +1 -1
  252. package/es/components/modal/style/dnb-modal.css +0 -4
  253. package/es/components/modal/style/dnb-modal.min.css +1 -1
  254. package/es/components/modal/style/dnb-modal.scss +0 -5
  255. package/es/components/pagination/PaginationDocs.js +2 -2
  256. package/es/components/pagination/PaginationDocs.js.map +1 -1
  257. package/es/components/slider/SliderDocs.js +1 -1
  258. package/es/components/slider/SliderDocs.js.map +1 -1
  259. package/es/components/step-indicator/StepIndicatorDocs.js +4 -4
  260. package/es/components/step-indicator/StepIndicatorDocs.js.map +1 -1
  261. package/es/components/timeline/TimelineItem.js +5 -5
  262. package/es/components/timeline/TimelineItem.js.map +1 -1
  263. package/es/components/toggle-button/ToggleButtonDocs.js +1 -1
  264. package/es/components/toggle-button/ToggleButtonDocs.js.map +1 -1
  265. package/es/components/upload/style/dnb-upload.css +0 -1
  266. package/es/components/upload/style/dnb-upload.min.css +1 -1
  267. package/es/core/jest/jestSetupScreenshots.css +6 -0
  268. package/es/extensions/forms/Field/Date/Date.js +10 -4
  269. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  270. package/es/extensions/forms/Field/Indeterminate/Indeterminate.js +4 -2
  271. package/es/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -1
  272. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.d.ts +1 -0
  273. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js +12 -5
  274. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
  275. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +1 -1
  276. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  277. package/es/extensions/forms/Field/Selection/style/dnb-selection.css +0 -2
  278. package/es/extensions/forms/Field/Selection/style/dnb-selection.min.css +1 -1
  279. package/es/extensions/forms/Field/Selection/style/dnb-selection.scss +0 -2
  280. package/es/extensions/forms/Form/Isolation/IsolationDocs.js +1 -1
  281. package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  282. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
  283. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  284. package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
  285. package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  286. package/es/extensions/forms/constants/locales/en-GB.d.ts +1 -0
  287. package/es/extensions/forms/constants/locales/en-GB.js +2 -1
  288. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  289. package/es/extensions/forms/constants/locales/en-US.d.ts +1 -0
  290. package/es/extensions/forms/constants/locales/index.d.ts +2 -0
  291. package/es/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
  292. package/es/extensions/forms/constants/locales/nb-NO.js +2 -1
  293. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  294. package/es/extensions/forms/constants/locales/sv-SE.d.ts +1 -0
  295. package/es/extensions/forms/constants/locales/sv-SE.js +2 -1
  296. package/es/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  297. package/es/extensions/forms/hooks/useFieldProps.js +3 -3
  298. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  299. package/es/extensions/forms/style/dnb-forms.css +0 -2
  300. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  301. package/es/extensions/payment-card/PaymentCard.js +1 -0
  302. package/es/extensions/payment-card/PaymentCard.js.map +1 -1
  303. package/es/fragments/drawer-list/DrawerList.d.ts +2 -1
  304. package/es/fragments/drawer-list/DrawerList.js.map +1 -1
  305. package/es/shared/AlignmentHelper.d.ts +14 -8
  306. package/es/shared/AlignmentHelper.js +4 -8
  307. package/es/shared/AlignmentHelper.js.map +1 -1
  308. package/es/shared/Eufemia.d.ts +14 -1
  309. package/es/shared/Eufemia.js +27 -2
  310. package/es/shared/Eufemia.js.map +1 -1
  311. package/es/shared/build-info/BuildInfo.cjs +22 -0
  312. package/es/shared/build-info/BuildInfo.d.ts +2 -0
  313. package/es/shared/build-info/BuildInfo.js +8 -0
  314. package/es/shared/build-info/BuildInfo.js.map +1 -0
  315. package/es/shared/build-info/BuildInfoData.cjs +2 -0
  316. package/es/shared/build-info/BuildInfoData.d.ts +2 -0
  317. package/es/shared/build-info/BuildInfoData.js +3 -0
  318. package/es/shared/build-info/BuildInfoData.js.map +1 -0
  319. package/es/shared/helpers/runCssVersionMismatchWarning.d.ts +0 -7
  320. package/es/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  321. package/es/shared/useMedia.js +66 -55
  322. package/es/shared/useMedia.js.map +1 -1
  323. package/es/style/core/helper-classes/helper-classes.scss +3 -0
  324. package/es/style/core/scopes.scss +1 -1
  325. package/es/style/core/utilities.scss +3 -1
  326. package/es/style/dnb-ui-basis.css +13 -2
  327. package/es/style/dnb-ui-basis.min.css +1 -1
  328. package/es/style/dnb-ui-body.css +1 -2
  329. package/es/style/dnb-ui-body.min.css +1 -1
  330. package/es/style/dnb-ui-components.css +0 -24
  331. package/es/style/dnb-ui-components.min.css +3 -3
  332. package/es/style/dnb-ui-core.css +13 -3
  333. package/es/style/dnb-ui-core.min.css +1 -1
  334. package/es/style/dnb-ui-extensions.css +0 -2
  335. package/es/style/dnb-ui-extensions.min.css +1 -1
  336. package/es/style/dnb-ui-forms.css +0 -2
  337. package/es/style/dnb-ui-forms.min.css +1 -1
  338. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +0 -26
  339. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  340. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +0 -2
  341. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  342. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +0 -2
  343. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  344. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +0 -26
  345. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  346. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +0 -2
  347. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  348. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +0 -2
  349. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  350. package/es/style/themes/theme-ui/ui-theme-components.css +0 -26
  351. package/es/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  352. package/es/style/themes/theme-ui/ui-theme-extensions.css +0 -2
  353. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  354. package/es/style/themes/theme-ui/ui-theme-forms.css +0 -2
  355. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  356. package/esm/dnb-ui-components.min.mjs +1 -1
  357. package/esm/dnb-ui-elements.min.mjs +1 -1
  358. package/esm/dnb-ui-extensions.min.mjs +1 -1
  359. package/esm/dnb-ui-lib.min.mjs +1 -1
  360. package/extensions/forms/Field/Date/Date.js +10 -4
  361. package/extensions/forms/Field/Date/Date.js.map +1 -1
  362. package/extensions/forms/Field/Indeterminate/Indeterminate.js +4 -2
  363. package/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -1
  364. package/extensions/forms/Field/Indeterminate/useDependencePaths.d.ts +1 -0
  365. package/extensions/forms/Field/Indeterminate/useDependencePaths.js +12 -5
  366. package/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
  367. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +1 -1
  368. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  369. package/extensions/forms/Field/Selection/style/dnb-selection.css +0 -2
  370. package/extensions/forms/Field/Selection/style/dnb-selection.min.css +1 -1
  371. package/extensions/forms/Field/Selection/style/dnb-selection.scss +0 -2
  372. package/extensions/forms/Form/Isolation/IsolationDocs.js +1 -1
  373. package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  374. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
  375. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  376. package/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
  377. package/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  378. package/extensions/forms/constants/locales/en-GB.d.ts +1 -0
  379. package/extensions/forms/constants/locales/en-GB.js +2 -1
  380. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  381. package/extensions/forms/constants/locales/en-US.d.ts +1 -0
  382. package/extensions/forms/constants/locales/index.d.ts +2 -0
  383. package/extensions/forms/constants/locales/nb-NO.d.ts +1 -0
  384. package/extensions/forms/constants/locales/nb-NO.js +2 -1
  385. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  386. package/extensions/forms/constants/locales/sv-SE.d.ts +1 -0
  387. package/extensions/forms/constants/locales/sv-SE.js +2 -1
  388. package/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  389. package/extensions/forms/hooks/useFieldProps.js +3 -3
  390. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  391. package/extensions/forms/style/dnb-forms.css +0 -2
  392. package/extensions/forms/style/dnb-forms.min.css +1 -1
  393. package/extensions/payment-card/PaymentCard.js +1 -0
  394. package/extensions/payment-card/PaymentCard.js.map +1 -1
  395. package/fragments/drawer-list/DrawerList.d.ts +2 -1
  396. package/fragments/drawer-list/DrawerList.js.map +1 -1
  397. package/package.json +1 -1
  398. package/shared/AlignmentHelper.d.ts +14 -8
  399. package/shared/AlignmentHelper.js +4 -8
  400. package/shared/AlignmentHelper.js.map +1 -1
  401. package/shared/Eufemia.d.ts +14 -1
  402. package/shared/Eufemia.js +27 -2
  403. package/shared/Eufemia.js.map +1 -1
  404. package/shared/build-info/BuildInfo.cjs +22 -0
  405. package/shared/build-info/BuildInfo.d.ts +2 -0
  406. package/shared/build-info/BuildInfo.js +8 -0
  407. package/shared/build-info/BuildInfo.js.map +1 -0
  408. package/shared/build-info/BuildInfoData.cjs +2 -0
  409. package/shared/build-info/BuildInfoData.d.ts +2 -0
  410. package/shared/build-info/BuildInfoData.js +3 -0
  411. package/shared/build-info/BuildInfoData.js.map +1 -0
  412. package/shared/helpers/runCssVersionMismatchWarning.d.ts +0 -7
  413. package/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  414. package/shared/useMedia.js +67 -56
  415. package/shared/useMedia.js.map +1 -1
  416. package/style/core/helper-classes/helper-classes.scss +3 -0
  417. package/style/core/scopes.scss +1 -1
  418. package/style/core/utilities.scss +3 -1
  419. package/style/dnb-ui-basis.css +13 -2
  420. package/style/dnb-ui-basis.min.css +1 -1
  421. package/style/dnb-ui-body.css +1 -2
  422. package/style/dnb-ui-body.min.css +1 -1
  423. package/style/dnb-ui-components.css +0 -24
  424. package/style/dnb-ui-components.min.css +3 -3
  425. package/style/dnb-ui-core.css +13 -3
  426. package/style/dnb-ui-core.min.css +1 -1
  427. package/style/dnb-ui-extensions.css +0 -2
  428. package/style/dnb-ui-extensions.min.css +1 -1
  429. package/style/dnb-ui-forms.css +0 -2
  430. package/style/dnb-ui-forms.min.css +1 -1
  431. package/style/themes/theme-eiendom/eiendom-theme-components.css +0 -26
  432. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  433. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +0 -2
  434. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  435. package/style/themes/theme-eiendom/eiendom-theme-forms.css +0 -2
  436. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  437. package/style/themes/theme-sbanken/sbanken-theme-components.css +0 -26
  438. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  439. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +0 -2
  440. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  441. package/style/themes/theme-sbanken/sbanken-theme-forms.css +0 -2
  442. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  443. package/style/themes/theme-ui/ui-theme-components.css +0 -26
  444. package/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  445. package/style/themes/theme-ui/ui-theme-extensions.css +0 -2
  446. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  447. package/style/themes/theme-ui/ui-theme-forms.css +0 -2
  448. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  449. package/umd/dnb-ui-components.min.js +1 -1
  450. package/umd/dnb-ui-elements.min.js +1 -1
  451. package/umd/dnb-ui-extensions.min.js +1 -1
  452. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useFieldProps.js","names":["_react","_interopRequireWildcard","require","_jsonPointer","_interopRequireDefault","_utils","_DataContext","_Provider","_FieldProviderContext","_componentHelper","_useId","_useUpdateEffect","_FieldBlockContext","_IterateItemContext","_SectionContext","_FieldBoundaryContext","_VisibilityContext","_Context","_StepContext","_SnapshotContext","_useProcessManager","_usePath","_useSharedState","_isAsync","_useTranslation","_useExternalValue","_useDataValue","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","useLayoutEffect","window","React","useEffect","useFieldProps","localProps","_dataContext$props","_localErrorRef$curren","_this","_dataContext$props3","_props$path","_props$autoComplete","executeOnChangeRegardlessOfError","updateContextDataInSync","omitMultiplePathWarning","forceUpdateWhenContextDataIsSet","omitSectionPath","undefined","extend","useContext","FieldProviderContext","props","path","pathProp","valueProp","defaultValue","itemPath","emptyValue","required","requiredProp","disabled","disabledProp","info","infoProp","warning","warningProp","error","initialErrorProp","errorMessages","onFocus","onBlur","onChange","onBlurValidator","validator","onChangeValidator","exportValidators","schema","validateInitially","validateUnchanged","continuousValidation","validateContinuously","transformIn","external","transformOut","internal","toInput","fromInput","toEvent","transformValue","provideAdditionalArgs","additionalArgs","fromExternal","validateRequired","_ref","salt","forceUpdate","useReducer","isInternalRerenderRef","useRef","useMemo","current","startProcess","useProcessManager","id","useId","dataContext","DataContext","fieldBlockContext","FieldBlockContext","iterateItemContext","IterateItemContext","sectionContext","SectionContext","fieldBoundaryContext","FieldBoundaryContext","wizardContext","WizardContext","wizardStepContext","WizardStepContext","setMountedField","setMountedFieldSnapshot","SnapshotContext","isVisible","keepInDOM","VisibilityContext","handleFieldAsVisible","getValueByPath","getSourceValue","useDataValue","translation","useTranslation","formatMessage","translationRef","transformers","handlePathChangeUnvalidated","handlePathChangeUnvalidatedDataContext","handlePathChange","handlePathChangeDataContext","updateDataValue","updateDataValueDataContext","validateData","validateDataDataContext","setFieldState","setFieldStateDataContext","setFieldError","setFieldErrorDataContext","setFieldInternals","setFieldInternalsDataContext","setFieldConnection","setFieldConnectionDataContext","revealError","revealErrorDataContext","setMountedFieldState","setMountedFieldStateDataContext","setFieldEventListener","errors","dataContextErrors","showAllErrors","contextErrorMessages","fieldDisplayValueRef","existingFieldsRef","fieldInternalsRef","prerenderFieldProps","onChangeContext","readOnly","inFieldBlock","Boolean","disableStatusSummary","setBlockRecord","setFieldStateFieldBlock","showFieldError","showFieldErrorFieldBlock","mountedFieldsRef","mountedFieldsRefFieldBlock","activeIndex","activeIndexRef","setFieldErrorWizard","index","wizardIndex","handleChange","handleChangeIterateContext","iterateIndex","arrayValue","iterateArrayValue","nestedIteratePath","sectionPath","errorPrioritization","setFieldErrorBoundary","revealErrorBoundary","showBoundaryErrors","hasPath","hasItemPath","identifier","makeIteratePath","joinPath","cleanPath","usePath","defaultValueRef","tmpValue","useExternalValue","externalValueDeps","externalValue","valueRef","changedRef","hasFocusRef","revealErrorRef","paths","split","requiredInSchema","pathWithoutLast","slice","join","schemaPart","pointer","requiredSchemaList","Array","isArray","rootPath","replace","requiredList","map","startsWith","collected","flatMap","some","getFieldByPath","useCallback","_fieldInternalsRef$cu","errorMessageCacheRef","Map","ensureErrorMessageObject","key","returnValue","Error","isValidElement","convertJsxToString","FormError","formattedMessage","messageCacheRef","isSet","message","executeMessage","ALWAYS","INITIALLY","currentMode","msg","conditionally","callback","options","showInitially","isError","checkForError","errorProp","errorMethodRef","localErrorRef","localErrorInitiatorRef","contextErrorRef","onChangeValidatorRef","useUpdateEffect","onBlurValidatorRef","schemaValidatorRef","_dataContext$ajvInsta","ajvInstance","compile","asyncBehaviorIsEnabled","isAsync","validatedValueRef","changeEventResultRef","asyncProcessRef","defineAsyncProcess","name","asyncBufferRef","resolve","validateProcesses","requestAnimationFrame","eventPool","onChangeLocal","addToPool","fn","runAsync","runPool","cb","fieldStateRef","state","resolveValidatingState","setErrorState","hasError","hideError","errorMessagesCacheRef","extendedErrorMessages","combinedErrorMessages","cache","values","messages","extendErrorMessagesWithTranslationMessages","overwriteErrorMessagesWithGivenAjvKeys","prepareError","prepare","ajvKeyword","ajvMessage","validationRule","messageValues","entries","reduce","_ref2","includes","dataContextError","errorChanged","getBufferedError","_ref3","_prepareError","bufferedError","errorIsVisible","hasErrorProp","_ref4","connectWithPathListenerRef","runOnChangeValidator","runOnBlurValidator","handleConnectWithPath","getValue","additionalArgsRef","validators","args","connectWithPath","connectWithItemPath","callStackRef","hasBeenCalledRef","result","callValidatorFnAsync","validatorOrError","callValidatorFnSync","hasAsyncValidator","Promise","then","stateId","persistErrorState","method","initiator","_errorMethodRef$curre","_errorMethodRef$curre2","errorArg","weak","gracefully","currentError","type","content","clearErrorState","_schemaValidatorRef$c","setChanged","validatorCacheRef","revealOnChangeValidatorResult","_ref5","unchangedValue","callOnChangeValidator","startOnChangeValidatorValidation","callOnBlurValidator","overrideValue","revealOnBlurValidatorResult","_ref6","startOnBlurValidatorProcess","prioritizeContextSchema","schemaPath","hasContextSchema","indexOf","validateValue","isProcessActive","requiredError","isChanged","ajvErrorsToOneFormError","removeError","handleError","getEventArgs","_ref7","eventName","transformedValue","setHasFocus","hasFocus","localAdditionalArgs","isFocused","yieldAsyncProcess","_ref8","waitFor","_ref9","processName","withStates","hasValue","hasMatchingValue","handleChangeEventResult","warningRef","infoRef","success","setEventResult","callOnChangeContext","updateValue","newValue","_transformers$current","currentValue","contextValue","setDisplayValue","fieldPath","argFromInput","handleFocus","handleBlur","activeIndexTmpRef","isPreMounted","wasStepChange","isMounted","process","env","NODE_ENV","existingFields","warn","delete","_dataContext$ajvInsta2","externalValueDidChangeRef","tmpTransValueRef","setContextData","_dataContext$internal","preventUpdate","valueToStore","data","internalDataRef","storePath","existingValue","sharedState","createSharedState","sharedValue","hasDefaultValue","skipEqualCheck","clearedArray","clearedData","valueIn","isEmptyData","_dataContext$isEmptyD","_dataContext$internal2","_dataContext$props$em","_dataContext$props2","isEmptyDataRef","emptyData","formState","onSubmitHandler","show","connections","htmlAttributes","acc","cur","_fieldBlockContext$fi","stateIds","fieldStateIdsRef","combineDescribedBy","ids","help","title","fieldBlockProps","label","labelDescription","labelDescriptionInline","labelSuffix","labelSize","labelSrOnly","layout","layoutOptions","fieldState","labelHeight","sharedData","useSharedState","autoComplete","potentialErrors","exports"],"sources":["../../../../../src/extensions/forms/hooks/useFieldProps.ts"],"sourcesContent":["import React, {\n useRef,\n useEffect,\n useContext,\n useCallback,\n useMemo,\n useReducer,\n AriaAttributes,\n} from 'react'\nimport pointer from '../utils/json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n ajvErrorsToOneFormError,\n errorChanged,\n overwriteErrorMessagesWithGivenAjvKeys,\n extendErrorMessagesWithTranslationMessages,\n FormError,\n} from '../utils'\nimport {\n FieldPropsGeneric,\n ProvideAdditionalEventArgs,\n SubmitState,\n EventReturnWithStateObjectAndSuccess,\n EventStateObjectWithSuccess,\n ReceiveAdditionalEventArgs,\n Validator,\n Identifier,\n MessageProp,\n MessageTypes,\n MessagePropParams,\n UseFieldProps,\n ErrorProp,\n} from '../types'\nimport { Context as DataContext, ContextState } from '../DataContext'\nimport { clearedData } from '../DataContext/Provider/Provider'\nimport FieldProviderContext from '../Field/Provider/FieldProviderContext'\nimport {\n combineDescribedBy,\n convertJsxToString,\n warn,\n} from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport useUpdateEffect from '../../../shared/helpers/useUpdateEffect'\nimport FieldBlockContext, {\n FieldBlockContextProps,\n} from '../FieldBlock/FieldBlockContext'\nimport IterateItemContext from '../Iterate/IterateItemContext'\nimport SectionContext from '../Form/Section/SectionContext'\nimport FieldBoundaryContext from '../DataContext/FieldBoundary/FieldBoundaryContext'\nimport VisibilityContext from '../Form/Visibility/VisibilityContext'\nimport WizardContext from '../Wizard/Context'\nimport WizardStepContext from '../Wizard/Step/StepContext'\nimport SnapshotContext from '../Form/Snapshot/SnapshotContext'\nimport useProcessManager from './useProcessManager'\nimport usePath from './usePath'\nimport {\n createSharedState,\n useSharedState,\n} from '../../../shared/helpers/useSharedState'\nimport { isAsync } from '../../../shared/helpers/isAsync'\nimport useTranslation from './useTranslation'\nimport useExternalValue from './useExternalValue'\nimport useDataValue from './useDataValue'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\ntype SubmitStateWithValidating = SubmitState | 'validating'\ntype AsyncProcesses =\n | 'onChangeValidator'\n | 'onBlurValidator'\n | 'onChangeLocal'\n | 'onChangeContext'\ntype PersistErrorStateMethod =\n /**\n * Add or remove the error regardless\n */\n | 'weak'\n /**\n * Check if there is an existing error, and if so, keep it\n */\n | 'gracefully'\n /**\n * Remove the error, if any\n */\n | 'wipe'\ntype ErrorInitiator =\n | 'required'\n | 'schema'\n | 'errorProp'\n | 'onChangeValidator'\n | 'onBlurValidator'\n | 'dataContextError'\ntype AsyncProcessesBuffer = {\n resolve: () => void\n validateProcesses: () => boolean\n}\n\nexport type DataAttributes = {\n [property: `data-${string}`]: string | boolean | number\n}\n\n// Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n// useEffect depend on them (like the external `value`)\n\nexport default function useFieldProps<Value, EmptyValue, Props>(\n localProps: Props & FieldPropsGeneric<Value, EmptyValue>,\n {\n executeOnChangeRegardlessOfError = false,\n updateContextDataInSync = false,\n omitMultiplePathWarning = false,\n forceUpdateWhenContextDataIsSet = false,\n omitSectionPath = false,\n } = {}\n): typeof localProps & ReturnAdditional<Value> {\n const { extend } = useContext(FieldProviderContext)\n const props = extend(localProps)\n\n const {\n path: pathProp,\n value: valueProp,\n defaultValue,\n itemPath,\n emptyValue,\n required: requiredProp,\n disabled: disabledProp,\n info: infoProp,\n warning: warningProp,\n error: initialErrorProp = 'initial',\n errorMessages,\n onFocus,\n onBlur,\n onChange,\n onBlurValidator,\n // Deprecated – can be removed in v11\n validator,\n onChangeValidator = validator,\n exportValidators,\n schema,\n validateInitially,\n validateUnchanged,\n // Deprecated – can be removed in v11\n continuousValidation,\n validateContinuously = continuousValidation,\n transformIn = (external: unknown) => external as Value,\n transformOut = (internal: Value) => internal,\n toInput = (value: Value) => value,\n fromInput = (value: Value) => value,\n toEvent = (value: Value) => value,\n transformValue = (value: Value) => value,\n provideAdditionalArgs = (\n value: Value,\n additionalArgs: ProvideAdditionalEventArgs\n ) => additionalArgs,\n fromExternal = (value: Value) => value,\n validateRequired = (value, { emptyValue, required, error }) => {\n if (\n required &&\n ((value as unknown) === emptyValue ||\n (typeof emptyValue === 'undefined' && value === ''))\n ) {\n return error\n }\n },\n } = props\n\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n const isInternalRerenderRef = useRef(undefined)\n useMemo(() => {\n /**\n * This is currently not used, but we keep it here for future use.\n * It lets you check for isInternalRerenderRef.current !== undefined\n * inside a useUpdateEffect or useEffect to know if the component is rerendering from inside or outside.\n */\n isInternalRerenderRef.current = salt\n }, [salt])\n const { startProcess } = useProcessManager()\n const id = useId(props.id)\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const iterateItemContext = useContext(IterateItemContext)\n const sectionContext = useContext(SectionContext)\n const fieldBoundaryContext = useContext(FieldBoundaryContext)\n const wizardContext = useContext(WizardContext)\n const wizardStepContext = useContext(WizardStepContext)\n const { setMountedField: setMountedFieldSnapshot } =\n useContext(SnapshotContext) || {}\n const { isVisible, keepInDOM } = useContext(VisibilityContext) || {}\n const handleFieldAsVisible = isVisible || keepInDOM\n\n const { getValueByPath, getSourceValue } = useDataValue()\n const translation = useTranslation()\n const { formatMessage } = translation\n const translationRef = useRef(translation)\n translationRef.current = translation\n\n const transformers = useRef({\n transformIn,\n transformOut,\n provideAdditionalArgs,\n toInput,\n fromInput,\n toEvent,\n fromExternal,\n transformValue,\n validateRequired,\n })\n\n const {\n handlePathChangeUnvalidated: handlePathChangeUnvalidatedDataContext,\n handlePathChange: handlePathChangeDataContext,\n updateDataValue: updateDataValueDataContext,\n validateData: validateDataDataContext,\n setFieldState: setFieldStateDataContext,\n setFieldError: setFieldErrorDataContext,\n setFieldInternals: setFieldInternalsDataContext,\n setFieldConnection: setFieldConnectionDataContext,\n revealError: revealErrorDataContext,\n setMountedFieldState: setMountedFieldStateDataContext,\n setFieldEventListener,\n errors: dataContextErrors,\n showAllErrors,\n contextErrorMessages,\n fieldDisplayValueRef,\n existingFieldsRef,\n fieldInternalsRef,\n prerenderFieldProps,\n } = dataContext || {}\n const onChangeContext = dataContext?.props?.onChange\n\n const disabled = disabledProp ?? props.readOnly\n const inFieldBlock = Boolean(\n fieldBlockContext && fieldBlockContext.disableStatusSummary !== true\n )\n const {\n setBlockRecord,\n setFieldState: setFieldStateFieldBlock,\n showFieldError: showFieldErrorFieldBlock,\n mountedFieldsRef: mountedFieldsRefFieldBlock,\n } = (inFieldBlock ? fieldBlockContext : {}) as FieldBlockContextProps\n const {\n activeIndex,\n activeIndexRef,\n setFieldError: setFieldErrorWizard,\n } = wizardContext || {}\n const { index: wizardIndex } = wizardStepContext || {}\n const {\n handleChange: handleChangeIterateContext,\n index: iterateIndex,\n arrayValue: iterateArrayValue,\n nestedIteratePath,\n } = iterateItemContext || {}\n const { path: sectionPath, errorPrioritization } = sectionContext || {}\n const {\n setFieldError: setFieldErrorBoundary,\n revealError: revealErrorBoundary,\n showBoundaryErrors,\n } = fieldBoundaryContext || {}\n\n const hasPath = Boolean(pathProp)\n const hasItemPath = Boolean(itemPath)\n const { path, identifier, makeIteratePath, joinPath, cleanPath } =\n usePath({\n id,\n path: pathProp,\n itemPath,\n omitSectionPath,\n })\n\n const defaultValueRef = useRef(defaultValue)\n useLayoutEffect(() => {\n // To support React.StrictMode, we also need to add it from inside a useEffect\n defaultValueRef.current = defaultValue\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n const tmpValue = useExternalValue<Value>({\n path: identifier,\n itemPath,\n value: valueProp,\n transformers,\n emptyValue: defaultValue ? undefined : emptyValue,\n })\n const externalValueDeps = tmpValue\n const externalValue = transformers.current.transformIn(\n tmpValue ?? defaultValueRef.current\n )\n\n // Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n // useEffect depend on them (like the external `value`)\n\n // Hold an internal copy of the input value in case the input component is used uncontrolled,\n // and to handle errors in Eufemia on components that does not take updated callback functions into account.\n const valueRef = useRef<Value>(externalValue)\n const changedRef = useRef<boolean>()\n const hasFocusRef = useRef<boolean>()\n\n // - Should errors received through validation be shown initially. Assume that providing a direct prop to\n // the component means it is supposed to be shown initially.\n const revealErrorRef = useRef<boolean>(null)\n\n const required = useMemo(() => {\n if (typeof requiredProp !== 'undefined') {\n return requiredProp\n }\n\n if (schema || dataContext?.schema) {\n const paths = identifier.split('/')\n if (paths.length > 0) {\n const requiredInSchema = [schema?.['required']]\n\n // - Handle context schema\n if (paths.length > 1) {\n const schema = dataContext.schema\n const pathWithoutLast = paths.slice(0, -1).join('/properties/')\n const schemaPart = pointer.has(schema, pathWithoutLast)\n ? pointer.get(schema, pathWithoutLast)\n : schema\n\n const requiredSchemaList = schemaPart?.['required']\n if (Array.isArray(requiredSchemaList)) {\n const rootPath = pathWithoutLast.replace(/properties\\//g, '')\n const requiredList = requiredSchemaList.map((path) => {\n path = cleanPath('/' + path)\n return sectionPath && path.startsWith(sectionPath)\n ? path\n : joinPath([sectionPath || rootPath, path])\n })\n requiredInSchema.push(requiredList)\n }\n }\n\n const collected = requiredInSchema\n .flatMap((value) => value)\n .filter(Boolean)\n\n if (\n collected.filter(Boolean).some((path) => {\n path = cleanPath('/' + path)\n return identifier === path || sectionPath === path\n })\n ) {\n return true\n }\n }\n }\n }, [\n cleanPath,\n dataContext.schema,\n identifier,\n joinPath,\n requiredProp,\n schema,\n sectionPath,\n ])\n\n const getFieldByPath: MessagePropParams<\n Value,\n unknown\n >['getFieldByPath'] = useCallback(\n (path) => {\n return (\n fieldInternalsRef.current?.[path] || {\n props: undefined,\n id: undefined,\n }\n )\n },\n [fieldInternalsRef]\n )\n\n const errorMessageCacheRef = useRef<Map<string, ErrorProp<Value>>>(\n new Map()\n )\n const ensureErrorMessageObject = useCallback(<T>(error: T): T => {\n let key = null\n let returnValue: T | ErrorProp<Value> = error\n\n if (typeof error === 'string') {\n key = error\n returnValue = new Error(error)\n } else if (error && React.isValidElement(error)) {\n key = error.key || convertJsxToString(error)\n returnValue = new FormError('Error', {\n formattedMessage: error,\n })\n }\n\n // - Cache jsx errors to avoid rendering/infinite loop\n if (key) {\n if (errorMessageCacheRef.current.has(key)) {\n return errorMessageCacheRef.current.get(key) as T\n } else {\n errorMessageCacheRef.current.set(\n key,\n returnValue as ErrorProp<Value>\n )\n }\n }\n\n return returnValue as T\n }, [])\n\n const messageCacheRef = useRef<{\n isSet: boolean\n message: MessageTypes<Value>\n }>({ isSet: false, message: undefined })\n const executeMessage = useCallback(\n <ReturnValue extends MessageTypes<Value>>(\n message: MessageProp<Value, ReturnValue>\n ): ReturnValue => {\n if (typeof message === 'function') {\n const ALWAYS = 4\n const INITIALLY = 8\n\n let currentMode = ALWAYS\n\n const msg = message(valueRef.current, {\n conditionally: (callback, options) => {\n currentMode &= ~ALWAYS\n\n if (options?.showInitially) {\n currentMode |= INITIALLY\n }\n\n return executeMessage(callback())\n },\n getValueByPath,\n getFieldByPath,\n })\n\n if (msg === undefined) {\n messageCacheRef.current.message = undefined\n return null // hide the message\n }\n\n const isError =\n msg instanceof Error ||\n msg instanceof FormError ||\n (Array.isArray(msg) && checkForError(msg))\n\n if (\n (!messageCacheRef.current.isSet && currentMode & INITIALLY) ||\n currentMode & ALWAYS ||\n hasFocusRef.current === false ||\n // Ensure we don't remove the message when the value is e.g. empty string\n messageCacheRef.current.message\n ) {\n if (\n // Ensure to only update the message when component did re-render internally\n isInternalRerenderRef.current ||\n currentMode & ALWAYS ||\n (!messageCacheRef.current.isSet && currentMode & INITIALLY)\n ) {\n if (msg) {\n messageCacheRef.current.isSet = true\n }\n if (msg || !hasFocusRef.current || currentMode & ALWAYS) {\n messageCacheRef.current.message = msg\n }\n }\n\n message = messageCacheRef.current.message as ReturnValue\n\n if (isError && message) {\n revealErrorRef.current = true\n }\n\n if (!isError && !message) {\n return null // hide the message\n }\n } else {\n return undefined // no message\n }\n }\n\n return ensureErrorMessageObject(message)\n },\n [getFieldByPath, getValueByPath, ensureErrorMessageObject]\n )\n\n const errorProp =\n initialErrorProp === 'initial' ? undefined : initialErrorProp\n const error = executeMessage<UseFieldProps['error'] | 'initial'>(\n errorProp\n )\n const warning = executeMessage<UseFieldProps['warning']>(warningProp)\n const info = executeMessage<UseFieldProps['info']>(infoProp)\n\n if (revealErrorRef.current === null) {\n revealErrorRef.current = validateInitially ?? Boolean(errorProp)\n }\n\n // - Local errors are errors based on validation instructions received by\n const errorMethodRef = useRef<\n Partial<Record<PersistErrorStateMethod, Error | FormError>>\n >({})\n const localErrorRef = useRef<Error | FormError | undefined>()\n const localErrorInitiatorRef = useRef<ErrorInitiator>()\n\n // - Context errors are from outer contexts, like validation for this field as part of the whole data set\n const contextErrorRef = useRef<Error | FormError | undefined>()\n\n const onChangeValidatorRef = useRef(onChangeValidator)\n useUpdateEffect(() => {\n onChangeValidatorRef.current = onChangeValidator\n }, [onChangeValidator]) // Tobias, will this still work? now that we do onChangeValidator = validator?\n const onBlurValidatorRef = useRef(onBlurValidator)\n useUpdateEffect(() => {\n onBlurValidatorRef.current = onBlurValidator\n }, [onBlurValidator])\n\n const schemaValidatorRef = useRef<ValidateFunction>()\n if (!schemaValidatorRef.current && schema) {\n schemaValidatorRef.current = dataContext.ajvInstance?.compile(schema)\n }\n\n // - Async behavior\n const asyncBehaviorIsEnabled = useMemo(() => {\n return isAsync(onChange) || isAsync(onChangeContext)\n }, [onChangeContext, onChange])\n const validatedValueRef = useRef<Value>()\n const changeEventResultRef = useRef<EventStateObjectWithSuccess>(null)\n const asyncProcessRef = useRef<AsyncProcesses>(null)\n const defineAsyncProcess = useCallback((name: AsyncProcesses) => {\n asyncProcessRef.current = name\n }, [])\n\n // When both an async onChange and async validators are used,\n // we buffer the onChange calls to avoid race conditions.\n const asyncBufferRef = useRef<\n Record<AsyncProcesses, AsyncProcessesBuffer> | Record<string, unknown>\n >({})\n\n for (const key in asyncBufferRef.current) {\n const { resolve, validateProcesses } = (asyncBufferRef.current[key] ||\n {}) as AsyncProcessesBuffer\n if (validateProcesses?.() === false) {\n delete asyncBufferRef.current[key]\n if (typeof resolve === 'function') {\n window.requestAnimationFrame(resolve)\n }\n }\n }\n\n const eventPool = useRef({\n onChangeValidator: null,\n onBlurValidator: null,\n onChangeContext: null,\n onChangeLocal: null,\n })\n\n const addToPool = useCallback(\n (name: keyof typeof eventPool.current, fn, runAsync) => {\n if (!eventPool.current[name]) {\n eventPool.current[name] = { fn, runAsync }\n }\n },\n []\n )\n\n const runPool = useCallback(async (cb = null) => {\n for (const key in eventPool.current) {\n if (!eventPool.current[key]) {\n continue\n }\n\n const { fn, runAsync } = eventPool.current[key] || {}\n if (fn) {\n eventPool.current[key] = null\n\n if (runAsync) {\n await fn()\n } else {\n fn()\n }\n }\n }\n\n // use a callback in order to avoid any async/await,\n // because it will delay the execution of the following code\n cb?.()\n }, [])\n\n const fieldStateRef = useRef<SubmitStateWithValidating>()\n const setFieldState = useCallback(\n (state: SubmitStateWithValidating) => {\n fieldStateRef.current = state\n setFieldStateDataContext?.(identifier, resolveValidatingState(state))\n setFieldStateFieldBlock?.(identifier, resolveValidatingState(state))\n\n if (!validateInitially) {\n forceUpdate()\n }\n },\n [\n setFieldStateDataContext,\n identifier,\n setFieldStateFieldBlock,\n validateInitially,\n ]\n )\n\n const setErrorState = useCallback(\n (hasError: boolean) => {\n setFieldErrorWizard?.(\n wizardIndex,\n identifier,\n handleFieldAsVisible !== false ? hasError : undefined\n )\n\n showFieldErrorFieldBlock?.(identifier, hasError)\n revealErrorBoundary?.(identifier, hasError)\n revealErrorDataContext?.(identifier, hasError)\n },\n [\n identifier,\n handleFieldAsVisible,\n revealErrorBoundary,\n revealErrorDataContext,\n setFieldErrorWizard,\n showFieldErrorFieldBlock,\n wizardIndex,\n ]\n )\n\n // - Will reveal the error as a visible error (hasVisibleError)\n const revealError = useCallback(() => {\n // To support \"validateInitially={false}\" prop, we need to make sure that the error is not shown initially\n if (validateInitially === false && revealErrorRef.current === false) {\n revealErrorRef.current = undefined\n return // stop here\n }\n\n const hasError = Boolean(localErrorRef.current)\n revealErrorRef.current = true\n setErrorState(hasError)\n }, [validateInitially, setErrorState])\n\n const hideError = useCallback(() => {\n if (revealErrorRef.current) {\n revealErrorRef.current = undefined\n setErrorState(false)\n }\n }, [setErrorState])\n\n const errorMessagesCacheRef = useRef({\n errorMessages: null,\n extendedErrorMessages: null,\n })\n const combinedErrorMessages = useMemo(() => {\n // Compare the error messages with the previous ones,\n // in case \"errorMessages\" is not wrapped in useMemo.\n const cache = errorMessagesCacheRef.current\n if (\n errorMessages &&\n cache.extendedErrorMessages &&\n // We compare the \"errorMessages\" object with the cached version.\n // Ideally, this comparison would be unnecessary when using useMemo, as documented.\n // However, to safeguard against potential infinite loops, we perform this comparison.\n // Why can this happen? Because the \"errorMessages\" object is a reference, and when provided without useMemo,\n // it will come in as a new object every time it is used, so combinedErrorMessages as a hook dependency will be updated.\n // Using array.join('') is approximately twice as fast as concatenating strings in a loop.\n Object.values(cache.errorMessages || {}).join('') ===\n Object.values(errorMessages || {}).join('')\n ) {\n return cache.extendedErrorMessages\n }\n\n const messages = {\n ...contextErrorMessages,\n ...contextErrorMessages?.[identifier],\n ...errorMessages,\n }\n\n const extendedErrorMessages =\n extendErrorMessagesWithTranslationMessages(\n overwriteErrorMessagesWithGivenAjvKeys(messages),\n translationRef.current\n )\n\n errorMessagesCacheRef.current = {\n errorMessages,\n extendedErrorMessages,\n }\n\n return extendedErrorMessages\n }, [contextErrorMessages, errorMessages, identifier])\n\n /**\n * Prepare error from validation logic with correct error messages based on props\n */\n const prepareError = useCallback(\n (error: FieldPropsGeneric<Value>['error']): FormError | undefined => {\n const prepare = (error: FormError) => {\n if (error instanceof FormError) {\n let message = error.message\n\n const { ajvKeyword } = error\n if (typeof ajvKeyword === 'string') {\n const ajvMessage = combinedErrorMessages?.[ajvKeyword]\n if (ajvMessage) {\n message = ajvMessage\n }\n }\n\n /** @deprecated – can be removed in v11 */\n const { validationRule } = error\n if (typeof validationRule === 'string') {\n const ajvMessage = combinedErrorMessages?.[validationRule]\n if (ajvMessage) {\n message = ajvMessage\n }\n }\n\n if (combinedErrorMessages?.[message]) {\n // - For when the message is e.g. Field.errorRequired or Custom.key, but delivered in the `errorMessages` object\n message = combinedErrorMessages?.[message]\n\n if (error.messageValues) {\n message = Object.entries(error.messageValues || {}).reduce(\n (msg, [key, value]) => {\n return msg.replace(`{${key}}`, value)\n },\n message\n )\n }\n } else if (message.includes('.')) {\n // - For when the message is e.g. Field.errorRequired\n message = formatMessage(message, error.messageValues)\n }\n\n if (React.isValidElement(message)) {\n error.formattedMessage = message\n } else {\n error.message = message\n }\n }\n\n return ensureErrorMessageObject(error)\n }\n\n if (Array.isArray(error)) {\n return new FormError('Error', {\n errors: error.map(prepare),\n })\n }\n\n if (error instanceof FormError) {\n if (Array.isArray(error.errors)) {\n error.errors = error.errors.map(prepare)\n return error\n }\n return prepare(error)\n }\n\n return error as FormError\n },\n [combinedErrorMessages, ensureErrorMessageObject, formatMessage]\n )\n\n contextErrorRef.current = useMemo(() => {\n const dataContextError = dataContextErrors?.[identifier]\n if (!dataContextError) {\n return undefined\n }\n const error = prepareError(dataContextError)\n if (errorChanged(error, contextErrorRef.current)) {\n return error\n }\n return contextErrorRef.current\n }, [dataContextErrors, identifier, prepareError])\n\n // If the error is a type error, we want to show it even if the field has not been used\n if (localErrorRef.current?.['ajvKeyword'] === 'type') {\n revealErrorRef.current = true\n }\n\n const getBufferedError = useCallback(() => {\n if (\n initialErrorProp !== 'initial' &&\n typeof errorProp !== 'function'\n ) {\n return prepareError(errorProp)\n } else if (revealErrorRef.current) {\n return (\n prepareError(error as FormError) ??\n localErrorRef.current ??\n contextErrorRef.current\n )\n } else if (error === null) {\n return null\n }\n }, [error, errorProp, initialErrorProp, prepareError])\n\n const bufferedError = getBufferedError()\n\n const errorIsVisible =\n Boolean(bufferedError) ||\n (inFieldBlock && fieldBlockContext.hasErrorProp)\n const hasError = useCallback(() => {\n return Boolean(\n error ?? localErrorRef.current ?? contextErrorRef.current\n )\n }, [error])\n\n const connectWithPathListenerRef = useRef(() => {\n runOnChangeValidator()\n runOnBlurValidator()\n })\n\n const handleConnectWithPath = useCallback(\n (path: Identifier) => {\n setFieldEventListener?.(\n path,\n 'onPathChange',\n connectWithPathListenerRef.current\n )\n\n return {\n getValue: () => getValueByPath(path),\n }\n },\n [getValueByPath, setFieldEventListener]\n )\n\n const additionalArgsRef = useRef<\n Partial<ReceiveAdditionalEventArgs<Value>>\n >({\n validators: exportValidators,\n props,\n dataContext,\n getValueByPath,\n getSourceValue,\n setFieldEventListener,\n })\n additionalArgsRef.current.validators = exportValidators\n additionalArgsRef.current.props = props\n const additionalArgs = useMemo(() => {\n const args: ReceiveAdditionalEventArgs<Value> = {\n /** Deprecated – can be removed in v11 */\n ...combinedErrorMessages,\n\n errorMessages: combinedErrorMessages,\n ...additionalArgsRef.current,\n connectWithPath: (path) => {\n return handleConnectWithPath(path)\n },\n connectWithItemPath: (itemPath) => {\n return handleConnectWithPath(makeIteratePath(itemPath))\n },\n }\n\n return args\n }, [combinedErrorMessages, handleConnectWithPath, makeIteratePath])\n\n const callStackRef = useRef<Array<Validator<Value>>>([])\n const hasBeenCalledRef = useCallback((validator: Validator<Value>) => {\n const result = callStackRef.current.includes(validator)\n callStackRef.current.push(validator)\n return result\n }, [])\n\n const callValidatorFnAsync = useCallback(\n async (\n validator: Validator<Value>,\n value: Value = valueRef.current\n ): Promise<ReturnType<Validator<Value>>> => {\n if (typeof validator !== 'function') {\n return\n }\n\n const result = await validator(value, additionalArgs)\n\n if (Array.isArray(result)) {\n const errors = []\n\n for (const validatorOrError of result) {\n if (validatorOrError instanceof Error) {\n errors.push(validatorOrError)\n } else if (!hasBeenCalledRef(validatorOrError)) {\n const result = await callValidatorFnAsync(\n validatorOrError,\n value\n )\n if (result instanceof Error) {\n callStackRef.current = []\n return result\n }\n }\n }\n\n if (errors.length > 0) {\n return new FormError('Error', {\n errors,\n })\n }\n\n callStackRef.current = []\n } else {\n return ensureErrorMessageObject(result)\n }\n },\n [additionalArgs, hasBeenCalledRef, ensureErrorMessageObject]\n )\n\n const callValidatorFnSync = useCallback(\n (\n validator: Validator<Value>,\n value: Value = valueRef.current\n ): ReturnType<Validator<Value>> => {\n if (typeof validator !== 'function') {\n return // stop here\n }\n\n const result = validator(value, additionalArgs)\n\n if (Array.isArray(result)) {\n const hasAsyncValidator = result.some((validator) =>\n isAsync(validator)\n )\n if (hasAsyncValidator) {\n return new Promise((resolve) => {\n callValidatorFnAsync(validator, value).then((result) => {\n resolve(result)\n })\n })\n }\n\n const errors = []\n\n for (const validatorOrError of result) {\n if (validatorOrError instanceof Error) {\n errors.push(validatorOrError)\n } else if (!hasBeenCalledRef(validatorOrError)) {\n const result = callValidatorFnSync(validatorOrError, value)\n if (result instanceof Error) {\n callStackRef.current = []\n return result\n }\n }\n }\n\n if (errors.length > 0) {\n return new FormError('Error', {\n errors,\n })\n }\n\n callStackRef.current = []\n } else {\n return ensureErrorMessageObject(result)\n }\n },\n [\n additionalArgs,\n callValidatorFnAsync,\n hasBeenCalledRef,\n ensureErrorMessageObject,\n ]\n )\n\n /**\n * Based on validation, update error state, locally and relevant surrounding contexts\n */\n const stateId = useId()\n const persistErrorState = useCallback(\n (\n method: PersistErrorStateMethod,\n initiator: ErrorInitiator,\n errorArg:\n | Error\n | FormError\n | Array<Error | FormError>\n | undefined = undefined\n ) => {\n const error = prepareError(errorArg)\n\n if (!errorChanged(error, localErrorRef.current)) {\n // In case different triggers lead to validation with no changes in the result (like still no error, or the same error),\n // avoid unnecessary re-renders by letting the old error object stay in the state and skip re-rendering.\n return\n }\n\n if (initiator !== 'dataContextError') {\n localErrorInitiatorRef.current = initiator\n }\n\n if (method === 'wipe') {\n errorMethodRef.current = {}\n } else {\n errorMethodRef.current[method] = error\n }\n\n if (\n !error &&\n method === 'gracefully' &&\n (errorMethodRef.current?.weak ||\n errorMethodRef.current?.gracefully)\n ) {\n // If the error is removed, we need to check if there are other errors that still should be shown\n return\n }\n\n const currentError =\n handleFieldAsVisible !== false ? error : undefined\n localErrorRef.current = currentError\n\n // Tell the data context about the error, so it can stop the user from submitting the form until the error has been fixed\n setFieldErrorDataContext?.(identifier, currentError)\n setFieldErrorBoundary?.(identifier, currentError)\n\n // Set the visual states\n setBlockRecord?.({\n stateId,\n identifier,\n type: 'error',\n content: currentError,\n showInitially: Boolean(inFieldBlock && validateInitially),\n })\n setFieldStateDataContext?.(identifier, error ? 'error' : undefined)\n\n if (updateContextDataInSync) {\n setFieldErrorWizard?.(\n wizardIndex,\n identifier,\n Boolean(currentError)\n )\n }\n\n forceUpdate()\n },\n [\n handleFieldAsVisible,\n identifier,\n inFieldBlock,\n prepareError,\n setBlockRecord,\n setFieldErrorBoundary,\n setFieldErrorDataContext,\n setFieldErrorWizard,\n setFieldStateDataContext,\n stateId,\n updateContextDataInSync,\n validateInitially,\n wizardIndex,\n ]\n )\n\n const clearErrorState = useCallback(() => {\n persistErrorState('wipe', undefined)\n localErrorInitiatorRef.current = undefined\n if (Array.isArray(schemaValidatorRef.current?.errors)) {\n schemaValidatorRef.current.errors = []\n }\n }, [persistErrorState])\n\n const setChanged = useCallback((state: boolean) => {\n changedRef.current = state\n }, [])\n\n const validatorCacheRef = useRef({\n onChangeValidator: null,\n onBlurValidator: null,\n })\n\n const revealOnChangeValidatorResult = useCallback(\n ({ result, unchangedValue }) => {\n const runAsync = isAsync(onChangeValidatorRef.current)\n\n // Don't show the error if the value has changed in the meantime\n if (unchangedValue) {\n persistErrorState(\n runAsync ? 'gracefully' : 'weak',\n 'onChangeValidator',\n result\n )\n\n if (\n (validateInitially && !changedRef.current) ||\n validateUnchanged ||\n validateContinuously ||\n runAsync // Because it's a better UX to show the error when the validation is async/delayed\n ) {\n // Because we first need to throw the error to be able to display it, we delay the showError call\n window.requestAnimationFrame(() => {\n if (localErrorInitiatorRef.current === 'onChangeValidator') {\n revealError()\n forceUpdate()\n }\n })\n }\n }\n\n if (runAsync) {\n defineAsyncProcess(undefined)\n\n if (unchangedValue) {\n setFieldState(result instanceof Error ? 'error' : 'complete')\n } else {\n setFieldState('pending')\n }\n }\n },\n [\n validateContinuously,\n defineAsyncProcess,\n persistErrorState,\n revealError,\n setFieldState,\n validateInitially,\n validateUnchanged,\n ]\n )\n\n const callOnChangeValidator = useCallback(async () => {\n if (typeof onChangeValidatorRef.current !== 'function') {\n return {}\n }\n\n const tmpValue = valueRef.current\n\n let result = isAsync(onChangeValidatorRef.current)\n ? await callValidatorFnAsync(onChangeValidatorRef.current)\n : callValidatorFnSync(onChangeValidatorRef.current)\n if (result instanceof Promise) {\n result = await result\n }\n\n const unchangedValue = tmpValue === valueRef.current\n return { result, unchangedValue }\n }, [callValidatorFnAsync, callValidatorFnSync])\n\n const startOnChangeValidatorValidation = useCallback(async () => {\n if (typeof onChangeValidatorRef.current !== 'function') {\n return\n }\n\n if (isAsync(onChangeValidatorRef.current)) {\n defineAsyncProcess('onChangeValidator')\n setFieldState('validating')\n hideError()\n }\n\n // Ideally, we should rather call \"callOnChangeValidator\", but sadly it's not possible,\n // because we get an additional delay due to the async nature, which is too much.\n // So when a submit button is pressed, and there is a sync validator, it needs to be validated without a delay.\n const tmpValue = valueRef.current\n let result = isAsync(onChangeValidatorRef.current)\n ? await callValidatorFnAsync(onChangeValidatorRef.current)\n : callValidatorFnSync(onChangeValidatorRef.current)\n if (result instanceof Promise) {\n result = await result\n }\n const unchangedValue = tmpValue === valueRef.current\n\n revealOnChangeValidatorResult({ result, unchangedValue })\n\n return { result }\n }, [\n callValidatorFnAsync,\n callValidatorFnSync,\n defineAsyncProcess,\n hideError,\n revealOnChangeValidatorResult,\n setFieldState,\n ])\n\n const runOnChangeValidator = useCallback(async () => {\n if (!onChangeValidatorRef.current) {\n return // stop here\n }\n\n const { result, unchangedValue } = await callOnChangeValidator()\n\n if (\n String(result) !==\n String(validatorCacheRef.current.onChangeValidator)\n ) {\n if (result) {\n revealOnChangeValidatorResult({ result, unchangedValue })\n } else {\n hideError()\n clearErrorState()\n }\n }\n\n validatorCacheRef.current.onChangeValidator = result || null\n }, [\n callOnChangeValidator,\n clearErrorState,\n hideError,\n revealOnChangeValidatorResult,\n ])\n\n const callOnBlurValidator = useCallback(\n async ({\n overrideValue = null,\n }: {\n overrideValue?: Value\n } = {}) => {\n if (typeof onBlurValidatorRef.current !== 'function') {\n return {}\n }\n\n const value = transformers.current.toEvent(\n overrideValue ?? valueRef.current,\n 'onBlurValidator'\n )\n\n // Since the validator can return either a synchronous result or an asynchronous.\n let result = isAsync(onBlurValidatorRef.current)\n ? await callValidatorFnAsync(onBlurValidatorRef.current, value)\n : callValidatorFnSync(onBlurValidatorRef.current, value)\n if (result instanceof Promise) {\n result = await result\n }\n\n return { result }\n },\n [callValidatorFnAsync, callValidatorFnSync]\n )\n\n const revealOnBlurValidatorResult = useCallback(\n ({ result }) => {\n persistErrorState('gracefully', 'onBlurValidator', result)\n\n if (isAsync(onBlurValidatorRef.current)) {\n defineAsyncProcess(undefined)\n setFieldState(result instanceof Error ? 'error' : 'complete')\n }\n\n revealError()\n },\n [defineAsyncProcess, persistErrorState, revealError, setFieldState]\n )\n\n const startOnBlurValidatorProcess = useCallback(\n async ({\n overrideValue = null,\n }: {\n overrideValue?: Value\n } = {}) => {\n if (typeof onBlurValidatorRef.current !== 'function') {\n return // stop here\n }\n\n if (\n (localErrorInitiatorRef.current === 'required' ||\n localErrorInitiatorRef.current === 'schema') &&\n !asyncBehaviorIsEnabled && // Has async \"onChange\" event\n !isAsync(onChangeValidatorRef.current)\n ) {\n return // stop here\n }\n\n if (isAsync(onBlurValidatorRef.current)) {\n defineAsyncProcess('onBlurValidator')\n setFieldState('validating')\n }\n\n const value = transformers.current.toEvent(\n overrideValue ?? valueRef.current,\n 'onBlurValidator'\n )\n\n // Since the validator can return either a synchronous result or an asynchronous.\n // Ideally, we should rather call \"callOnBlurValidator\", but sadly it's not possible,\n // because we get an additional delay due to the async nature, which is too much.\n // So when a submit button is pressed, and there is a sync validator, it needs to be validated without a delay.\n let result = isAsync(onBlurValidatorRef.current)\n ? await callValidatorFnAsync(onBlurValidatorRef.current, value)\n : callValidatorFnSync(onBlurValidatorRef.current, value)\n if (result instanceof Promise) {\n result = await result\n }\n\n revealOnBlurValidatorResult({ result })\n\n return { result }\n },\n [\n asyncBehaviorIsEnabled,\n callValidatorFnAsync,\n callValidatorFnSync,\n defineAsyncProcess,\n revealOnBlurValidatorResult,\n setFieldState,\n ]\n )\n\n const runOnBlurValidator = useCallback(async () => {\n if (!onBlurValidatorRef.current) {\n return // stop here\n }\n\n const { result } = await callOnBlurValidator()\n\n if (\n String(result) !==\n String(validatorCacheRef.current.onBlurValidator) &&\n revealErrorRef.current\n ) {\n if (result) {\n revealOnBlurValidatorResult({ result })\n } else {\n hideError()\n clearErrorState()\n }\n }\n\n validatorCacheRef.current.onBlurValidator = result || null\n }, [\n callOnBlurValidator,\n clearErrorState,\n hideError,\n revealOnBlurValidatorResult,\n ])\n\n const prioritizeContextSchema = useMemo(() => {\n if (errorPrioritization) {\n const schemaPath = identifier.split('/').join('/properties/')\n const hasContextSchema = pointer.has(\n dataContext?.schema || {},\n schemaPath\n )\n return (\n hasContextSchema &&\n errorPrioritization?.indexOf('contextSchema') === 0\n )\n }\n }, [dataContext?.schema, errorPrioritization, identifier])\n\n /**\n * Validate the current state value by provided validator instructions\n */\n const validateValue = useCallback(async () => {\n const isProcessActive = startProcess()\n\n if (disabled) {\n if (isProcessActive()) {\n clearErrorState()\n }\n hideError()\n setFieldState(undefined)\n return // stop here\n }\n\n const value = valueRef.current\n changeEventResultRef.current = null\n validatedValueRef.current = null\n let initiator: ErrorInitiator = null\n\n try {\n const requiredError = transformers.current.validateRequired(value, {\n emptyValue,\n required,\n isChanged: changedRef.current,\n error: new FormError('Field.errorRequired'),\n })\n if (requiredError instanceof Error) {\n initiator = 'required'\n throw requiredError\n }\n\n if (error instanceof Error) {\n initiator = 'errorProp'\n throw error\n }\n\n // Validate by provided JSON Schema for this value\n if (\n value !== undefined &&\n !prioritizeContextSchema &&\n typeof schemaValidatorRef.current === 'function'\n ) {\n if (!schemaValidatorRef.current(value)) {\n const error = ajvErrorsToOneFormError(\n schemaValidatorRef.current.errors,\n value\n )\n initiator = 'schema'\n throw error\n }\n }\n\n // Validate by provided derivative validator\n if (\n onChangeValidatorRef.current &&\n (changedRef.current || validateInitially || validateUnchanged)\n ) {\n const { result } = await startOnChangeValidatorValidation()\n\n if (result instanceof Error) {\n initiator = 'onChangeValidator'\n throw result\n }\n }\n\n // Only for when \"validateInitially\" is set to true\n if (\n onBlurValidatorRef.current &&\n validateInitially &&\n !changedRef.current\n ) {\n const { result } = await startOnBlurValidatorProcess()\n\n if (result instanceof Error) {\n initiator = 'onBlurValidator'\n throw result\n }\n }\n\n if (isProcessActive()) {\n clearErrorState()\n }\n\n validatedValueRef.current = value\n } catch (error) {\n if (isProcessActive()) {\n persistErrorState('weak', initiator, error)\n }\n }\n }, [\n clearErrorState,\n disabled,\n emptyValue,\n error,\n hideError,\n persistErrorState,\n prioritizeContextSchema,\n required,\n setFieldState,\n startOnBlurValidatorProcess,\n startOnChangeValidatorValidation,\n startProcess,\n validateInitially,\n validateUnchanged,\n ])\n\n const removeError = useCallback(() => {\n // Mark as not changed,\n // so the field is considered \"fresh\" when the user starts typing again.\n setChanged(false)\n\n // Hide the error message.\n hideError()\n\n // Remove the local error states.\n clearErrorState()\n\n // To ensure this field will report back to the context if there are any errors.\n validateValue()\n }, [clearErrorState, hideError, setChanged, validateValue])\n\n const handleError = useCallback(() => {\n if (\n validateContinuously ||\n (validateContinuously !== false && !hasFocusRef.current)\n ) {\n // When there is a change to the value without there having been any focus callback beforehand, it is likely\n // to believe that the blur callback will not be called either, which would trigger the display of the error.\n // The error is therefore displayed immediately (unless instructed not to with validateContinuously set to false).\n revealError()\n } else {\n // When changing the value, hide errors to avoid annoying the user before they are finished filling in that value\n hideError()\n }\n }, [validateContinuously, hideError, revealError])\n\n const getEventArgs = useCallback(\n ({\n eventName,\n additionalArgs,\n overrideValue = undefined,\n }): [Value] | [Value, ProvideAdditionalEventArgs] => {\n const value = transformers.current.toEvent(\n overrideValue ?? valueRef.current,\n eventName\n )\n const args = transformers.current.provideAdditionalArgs(\n value,\n additionalArgs\n )\n const transformedValue = transformers.current.transformOut(\n value,\n args\n ) as Value\n\n if (typeof args !== 'undefined') {\n return [transformedValue, args]\n }\n\n return [transformedValue]\n },\n []\n )\n\n const setHasFocus = useCallback(\n async (\n hasFocus: boolean,\n overrideValue?: Value,\n localAdditionalArgs?: ProvideAdditionalEventArgs\n ) => {\n const args = getEventArgs({\n eventName: hasFocus ? 'onFocus' : 'onBlur',\n overrideValue,\n additionalArgs: localAdditionalArgs\n ? { ...additionalArgs, ...localAdditionalArgs }\n : additionalArgs,\n })\n\n if (hasFocus) {\n // Field was put in focus (like when clicking in a text field or opening a dropdown menu)\n hasFocusRef.current = true\n onFocus?.apply(this, args)\n setMountedFieldStateDataContext(identifier, {\n isFocused: true,\n })\n } else {\n // Field was removed from focus (like when tabbing out of a text field or closing a dropdown menu)\n hasFocusRef.current = false\n onBlur?.apply(this, args)\n setMountedFieldStateDataContext(identifier, {\n isFocused: false,\n })\n\n if (!changedRef.current && !validateUnchanged) {\n // Avoid showing errors when blurring without having changed the value, so tabbing through several\n // fields does not make errors pop up all over the place\n return\n }\n\n addToPool(\n 'onBlurValidator',\n async () => await startOnBlurValidatorProcess({ overrideValue }),\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool(() => {\n // Since the user left the field, show error (if any)\n revealError()\n forceUpdate()\n })\n }\n },\n [\n getEventArgs,\n additionalArgs,\n onFocus,\n setMountedFieldStateDataContext,\n identifier,\n onBlur,\n validateUnchanged,\n addToPool,\n runPool,\n startOnBlurValidatorProcess,\n revealError,\n ]\n )\n\n // Await an async operation to run after criteria are fulfilled\n const yieldAsyncProcess = useCallback(\n async ({\n name,\n waitFor,\n }: {\n name: 'onChangeLocal' | 'onChangeContext' | 'onSubmitContext'\n waitFor: Array<{\n processName?: AsyncProcesses\n withStates: Array<SubmitStateWithValidating>\n hasValue?: Value\n }>\n }) => {\n return new Promise<void>((resolve) => {\n const validateProcesses = () => {\n const result = waitFor.some(\n ({ processName, withStates, hasValue }) => {\n const hasMatchingValue =\n // If the value has changed during the async process, we don't want to resolve anymore\n hasValue === validatedValueRef.current\n\n const result =\n (typeof hasValue === 'undefined'\n ? false\n : !hasMatchingValue) ||\n ((processName\n ? processName === asyncProcessRef.current\n : true) &&\n withStates?.some((state) => {\n return state === fieldStateRef.current\n }))\n\n return result\n }\n )\n\n return result\n }\n\n if (validateProcesses() === true) {\n asyncBufferRef.current[name] = { resolve, validateProcesses }\n } else {\n resolve()\n setFieldState('pending')\n }\n })\n },\n [setFieldState]\n )\n\n const handleChangeEventResult = useCallback(async () => {\n const result: EventStateObjectWithSuccess =\n changeEventResultRef.current || ({} as EventStateObjectWithSuccess)\n\n if ('error' in result) {\n if (!result.error) {\n removeError()\n } else {\n persistErrorState('gracefully', 'onChangeValidator', result.error)\n revealError()\n }\n }\n if ('warning' in result) {\n warningRef.current = result.warning\n }\n if ('info' in result) {\n infoRef.current = result.info\n }\n\n if (asyncBehaviorIsEnabled) {\n await yieldAsyncProcess({\n name: 'onSubmitContext',\n waitFor: [{ withStates: ['validating'] }],\n })\n }\n\n defineAsyncProcess(undefined)\n\n if (result?.success === 'saved') {\n setFieldState('success')\n } else if (result?.error) {\n setFieldState('error')\n } else if (asyncBehaviorIsEnabled) {\n setFieldState('complete')\n }\n\n forceUpdate()\n }, [\n asyncBehaviorIsEnabled,\n defineAsyncProcess,\n removeError,\n persistErrorState,\n revealError,\n yieldAsyncProcess,\n setFieldState,\n ])\n\n const setEventResult = useCallback(\n async (result: EventReturnWithStateObjectAndSuccess) => {\n if (result instanceof Error) {\n result = { error: result }\n }\n changeEventResultRef.current = {\n ...changeEventResultRef.current,\n ...result,\n } as EventStateObjectWithSuccess\n\n await handleChangeEventResult()\n },\n [handleChangeEventResult]\n )\n\n const callOnChangeContext = useCallback(async () => {\n if (asyncBehaviorIsEnabled && !executeOnChangeRegardlessOfError) {\n await yieldAsyncProcess({\n name: 'onChangeContext',\n waitFor: [\n {\n processName: 'onChangeValidator',\n withStates: ['validating', 'error'],\n hasValue: valueRef.current,\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n hasValue: valueRef.current,\n },\n ],\n })\n }\n\n if (hasPath) {\n if (isAsync(onChangeContext)) {\n defineAsyncProcess('onChangeContext')\n\n // Skip sync errors, such as required\n if (!hasError() || executeOnChangeRegardlessOfError) {\n await setEventResult(\n (await handlePathChangeDataContext?.(\n identifier\n )) as EventReturnWithStateObjectAndSuccess\n )\n } else {\n await setEventResult(null)\n }\n } else if (onChangeContext || !asyncBehaviorIsEnabled) {\n setEventResult(\n handlePathChangeDataContext?.(\n identifier\n ) as EventReturnWithStateObjectAndSuccess\n )\n }\n }\n\n forceUpdate()\n }, [\n asyncBehaviorIsEnabled,\n executeOnChangeRegardlessOfError,\n hasPath,\n yieldAsyncProcess,\n onChangeContext,\n defineAsyncProcess,\n hasError,\n setEventResult,\n handlePathChangeDataContext,\n identifier,\n ])\n\n const updateValue = useCallback(\n async (newValue: Value) => {\n const currentValue = valueRef.current\n if (newValue === currentValue) {\n // Avoid triggering a change if the value was not actually changed. This may be caused by rendering components\n // calling onChange even if the actual value did not change.\n return\n }\n\n const transformedValue =\n transformers.current.transformValue(newValue, currentValue) ??\n (emptyValue as unknown as Value)\n const contextValue = transformers.current.transformOut(\n transformedValue,\n transformers.current.provideAdditionalArgs(\n transformedValue,\n additionalArgs\n )\n )\n\n valueRef.current = transformedValue\n\n if (hasPath || itemPath) {\n handlePathChangeUnvalidatedDataContext(\n nestedIteratePath || identifier,\n contextValue\n )\n }\n\n if (itemPath) {\n handleChangeIterateContext?.(\n makeIteratePath(itemPath, '', {\n omitSectionPath: true,\n }),\n contextValue\n )\n }\n\n addToPool(\n 'onChangeValidator',\n validateValue,\n isAsync(onChangeValidatorRef.current)\n )\n\n addToPool(\n 'onChangeContext',\n callOnChangeContext,\n isAsync(onChangeContext)\n )\n\n await runPool(() => {\n handleError()\n })\n },\n [\n emptyValue,\n additionalArgs,\n hasPath,\n itemPath,\n addToPool,\n validateValue,\n callOnChangeContext,\n onChangeContext,\n runPool,\n handlePathChangeUnvalidatedDataContext,\n nestedIteratePath,\n identifier,\n handleChangeIterateContext,\n makeIteratePath,\n handleError,\n ]\n )\n\n const setDisplayValue: ReturnAdditional<Value>['setDisplayValue'] =\n useCallback(\n (value, options) => {\n const {\n path: fieldPath = itemPath ? identifier : path,\n type = 'field',\n } = options || {}\n if (!fieldPath || !fieldDisplayValueRef?.current) {\n return // stop here\n }\n\n fieldDisplayValueRef.current[fieldPath] =\n valueRef.current === (emptyValue as unknown as Value)\n ? { type }\n : { value, type }\n },\n [identifier, emptyValue, fieldDisplayValueRef, itemPath, path]\n )\n\n const handleChange = useCallback(\n async (\n argFromInput: Value | unknown,\n localAdditionalArgs: ProvideAdditionalEventArgs = undefined\n ) => {\n const currentValue = valueRef.current\n const fromInput = transformers.current.fromInput(argFromInput)\n\n if (fromInput === currentValue) {\n // Avoid triggering a change if the value was not actually changed. This may be caused by rendering components\n // calling onChange even if the actual value did not change.\n return\n }\n\n // Must be set before validation\n setChanged(true)\n\n if (asyncBehaviorIsEnabled) {\n hideError()\n await updateValue(fromInput)\n } else {\n updateValue(fromInput)\n }\n\n if (isAsync(onChange)) {\n addToPool(\n 'onChangeLocal',\n async () => {\n const args = getEventArgs({\n eventName: 'onChange',\n additionalArgs: localAdditionalArgs\n ? { ...additionalArgs, ...localAdditionalArgs }\n : additionalArgs,\n })\n\n await yieldAsyncProcess({\n name: 'onChangeLocal',\n waitFor: [\n {\n processName: 'onChangeValidator',\n withStates: ['validating', 'error'],\n hasValue: args[0],\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n hasValue: args[0],\n },\n {\n processName: 'onChangeContext',\n withStates: ['pending', 'error'],\n hasValue: args[0],\n },\n ],\n })\n\n defineAsyncProcess('onChangeLocal')\n\n // Skip sync errors, such as required\n if (!hasError()) {\n // If the value has changed during the async process, we don't want to call the onChange anymore\n await setEventResult(await onChange?.apply(this, args))\n } else {\n await setEventResult(null)\n }\n },\n true\n )\n } else {\n const args = getEventArgs({\n eventName: 'onChange',\n additionalArgs: localAdditionalArgs\n ? { ...additionalArgs, ...localAdditionalArgs }\n : additionalArgs,\n })\n\n setEventResult(onChange?.apply(this, args))\n }\n\n await runPool()\n },\n [\n addToPool,\n additionalArgs,\n asyncBehaviorIsEnabled,\n defineAsyncProcess,\n getEventArgs,\n hasError,\n hideError,\n onChange,\n runPool,\n setChanged,\n setEventResult,\n updateValue,\n yieldAsyncProcess,\n ]\n )\n\n const handleFocus = useCallback(() => setHasFocus(true), [setHasFocus])\n const handleBlur = useCallback(() => setHasFocus(false), [setHasFocus])\n\n // Put props into the surrounding data context as early as possible\n setFieldInternalsDataContext?.(identifier, {\n id,\n props,\n })\n\n const activeIndexTmpRef = useRef(activeIndex)\n useEffect(() => {\n activeIndexTmpRef.current = activeIndex\n }, [activeIndex]) // We want to watch for step changes\n\n useMemo(() => {\n setMountedFieldStateDataContext(identifier, {\n isPreMounted: true,\n })\n\n if (typeof isVisible === 'boolean') {\n setMountedFieldStateDataContext(identifier, { isVisible })\n }\n }, [setMountedFieldStateDataContext, identifier, isVisible])\n\n useEffect(() => {\n if (prerenderFieldProps) {\n return // stop here, we don't want to set the state of the field\n }\n\n if (typeof activeIndexRef?.current === 'number') {\n setMountedFieldStateDataContext(identifier, {\n wasStepChange: false,\n })\n\n return () => {\n const wasStepChange =\n typeof activeIndex === 'number' &&\n // eslint-disable-next-line react-hooks/exhaustive-deps\n activeIndexRef.current !== activeIndexTmpRef.current\n\n setMountedFieldStateDataContext(identifier, {\n wasStepChange,\n })\n }\n }\n }, [\n activeIndex,\n activeIndexRef,\n identifier,\n prerenderFieldProps,\n setMountedFieldStateDataContext,\n ])\n\n useEffect(() => {\n if (prerenderFieldProps) {\n return // stop here, we don't want to set the state of the field\n }\n\n // Mount procedure.\n setMountedFieldStateDataContext(identifier, {\n isMounted: true,\n isPreMounted: true,\n })\n setMountedFieldSnapshot?.(identifier, { isMounted: true })\n\n // Unmount procedure.\n return () => {\n setMountedFieldStateDataContext(identifier, {\n isMounted: false,\n isPreMounted: false,\n })\n setMountedFieldSnapshot?.(identifier, { isMounted: false })\n }\n }, [\n identifier,\n prerenderFieldProps,\n setMountedFieldSnapshot,\n setMountedFieldStateDataContext,\n ])\n\n // - Warn when a field path is used multiple times\n useEffect(() => {\n if (\n !omitMultiplePathWarning &&\n process.env.NODE_ENV !== 'production' &&\n (hasPath || hasItemPath) &&\n (hasPath ? !iterateItemContext : true) &&\n existingFieldsRef?.current\n ) {\n const existingFields = existingFieldsRef.current\n if (existingFields.has(identifier)) {\n warn('Path declared multiple times:', identifier)\n } else {\n existingFields.set(identifier, true)\n return () => {\n existingFields.delete(identifier)\n }\n }\n }\n }, [\n existingFieldsRef,\n hasItemPath,\n hasPath,\n identifier,\n iterateItemContext,\n omitMultiplePathWarning,\n ])\n\n useEffect(() => {\n if (prerenderFieldProps) {\n return // stop here, we don't want to set the state of the field\n }\n\n // Unmount procedure.\n return () => {\n setFieldErrorDataContext?.(identifier, undefined)\n setFieldErrorBoundary?.(identifier, undefined)\n localErrorRef.current = undefined\n }\n }, [\n identifier,\n prerenderFieldProps,\n setFieldErrorBoundary,\n setFieldErrorDataContext,\n ])\n\n useEffect(() => {\n if (prerenderFieldProps) {\n return // stop here, we don't want to set the state of the field\n }\n\n // Unmount procedure.\n return () => {\n // Have this in a separate useEffect to avoid calling unmount when a step changes\n setFieldErrorWizard?.(wizardIndex, identifier, undefined)\n }\n }, [identifier, prerenderFieldProps, setFieldErrorWizard, wizardIndex])\n\n useEffect(() => {\n validateValue()\n }, [validateValue])\n\n useUpdateEffect(() => {\n schemaValidatorRef.current = schema\n ? dataContext.ajvInstance?.compile(schema)\n : undefined\n validateValue()\n }, [schema])\n\n // Use \"useLayoutEffect\" and \"externalValueDidChangeRef\"\n // to cooperate with the the data context \"updateDataValueDataContext\" routine further down,\n // which also uses useLayoutEffect.\n const externalValueDidChangeRef = useRef(false)\n useLayoutEffect(() => {\n if (valueRef.current !== externalValue) {\n valueRef.current = externalValue\n externalValueDidChangeRef.current = true\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [externalValueDeps, hasItemPath])\n\n useUpdateEffect(() => {\n // Error or removed error for this field from the surrounding data context (by path)\n if (externalValueDidChangeRef.current) {\n externalValueDidChangeRef.current = false\n\n // Hide error when the external value has changed, but is the same as the empty value.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n if (!validateContinuously && valueRef.current === emptyValue) {\n hideError()\n }\n\n validateValue()\n forceUpdate()\n }\n }, [externalValueDeps, emptyValue, validateContinuously]) // Keep \"externalValue\" in the dependency list, so it will be updated when it changes\n\n useEffect(() => {\n // Check against the local error state,\n // so we prioritize the local error state over the context error state\n if (!localErrorInitiatorRef.current) {\n const error = contextErrorRef.current\n if (error) {\n persistErrorState('weak', 'dataContextError', error)\n if (validateInitially) {\n handleError()\n }\n } else {\n clearErrorState()\n }\n }\n }, [\n dataContextErrors, // Is needed in order to trigger a re-render when the error state changes.\n clearErrorState,\n handleError,\n persistErrorState,\n prepareError,\n validateInitially,\n ])\n\n const tmpTransValueRef = useRef<Record<Identifier, unknown>>({\n // Use an unique (per field) starting value (id) for the itemPath, so we later can check if the valueToStore is the same as the current value.\n itemPath: id,\n })\n const setContextData = useCallback(\n ({ preventUpdate = undefined } = {}) => {\n if (!hasPath && !hasItemPath) {\n return // stop here\n }\n\n let valueToStore: Value | unknown = valueProp\n\n const data = prerenderFieldProps\n ? dataContext.data\n : dataContext.internalDataRef?.current\n\n const storePath = nestedIteratePath\n ? makeIteratePath(itemPath, nestedIteratePath)\n : identifier\n\n // First, look for existing data in the context\n const hasValue = pointer.has(data, storePath) || storePath === '/'\n const existingValue =\n storePath === '/'\n ? data\n : hasValue\n ? pointer.get(data, storePath)\n : undefined\n\n // If no data where found in the dataContext, look for shared data\n if (\n dataContext.id &&\n !hasValue &&\n typeof existingValue === 'undefined' &&\n typeof valueToStore === 'undefined'\n ) {\n const sharedState = createSharedState(dataContext.id)\n const hasValue = pointer.has(sharedState.data, storePath)\n if (hasValue) {\n const sharedValue = pointer.get(sharedState.data, storePath)\n if (sharedValue) {\n valueToStore = sharedValue as Value\n }\n }\n }\n\n const hasDefaultValue =\n typeof defaultValueRef.current !== 'undefined' &&\n typeof valueToStore === 'undefined'\n\n if (hasDefaultValue) {\n // Set the default value if it's not set yet.\n // This takes precedence over the valueToStore.\n valueToStore = defaultValueRef.current\n defaultValueRef.current = undefined\n } else if (!hasValue && typeof valueToStore === 'undefined') {\n valueToStore = emptyValue\n }\n\n let skipEqualCheck = false\n\n if (hasItemPath) {\n if (existingValue === valueToStore) {\n if (hasValue) {\n return // stop here, don't store the same value again\n } else {\n // Because the valueToStore is not a part of the data context,\n // we need to check if the valueToStore is the same as the current value,\n // to avoid infinite rerenders.\n if (tmpTransValueRef.current['itemPath'] === valueToStore) {\n return // stop here to avoid infinite rerenders\n }\n }\n }\n\n // We need to store the valueToStore in a ref, so we can check if it is the same as the current value later.\n tmpTransValueRef.current['itemPath'] = valueToStore\n\n if (iterateArrayValue === clearedArray) {\n return // stop here, because the array was cleared by handleRemove in the Iterate.Array component\n }\n\n if (\n typeof valueToStore === 'undefined' &&\n typeof existingValue !== 'undefined'\n ) {\n // On the rerender (after defaultValue was set) and the data context was given, but as \"undefined\",\n // then we want to use the current value (the defaultValue from the previous render),\n // because else the comparison \"valueRef.current !== existingValue\" is true and we will set undefined as the new data context value.\n valueToStore = existingValue\n }\n\n if (itemPath === '/') {\n // The push container uses an object as the default value for the array.\n // But when a root slash is used, we want to make sure the field don't gets the object.\n if (existingValue === clearedData) {\n valueRef.current = undefined\n }\n\n if (hasDefaultValue && Array.isArray(existingValue)) {\n // Ensures support to have a field with a defaultValue and a itemPath of \"/\"\n // This way, we ensure the defaultValue is actually set in the data context.\n skipEqualCheck = true\n }\n }\n }\n\n // Used by e.g. Iterate.Array\n if (updateContextDataInSync) {\n // When an array is given (iterate), we don't want to overwrite the existing array\n if (hasDefaultValue && hasValue) {\n return // stop here, we don't want to overwrite the existing array\n }\n\n // React.StrictMode will come with \"undefined\" on the second render,\n // because \"defaultValueRef.current\" was removed.\n // But because we run \"useMemo\" on the first render when updateContextDataInSync is true,\n // we have still a valid value/array.\n if (!Array.isArray(valueToStore)) {\n return // stop here, never use a non-array value when in \"updateContextDataInSync\"\n }\n\n if (Array.isArray(existingValue)) {\n if (valueToStore.length !== existingValue.length) {\n skipEqualCheck = true // in order to update the items\n }\n\n // Keep Iterate.Array in sync with the data context\n valueRef.current = existingValue as Value\n }\n }\n\n // When an Array or Object is used as the value,\n // and the field uses transformIn, the instance may have been changed.\n // The \"valueToStore\" can be undefined,\n // we then need to ensure we don't overwrite the existing data context value with \"undefined\".\n if (\n typeof valueToStore === 'undefined' &&\n typeof existingValue !== 'undefined'\n ) {\n valueToStore = existingValue\n }\n\n if (\n !skipEqualCheck &&\n hasValue &&\n (valueToStore === existingValue ||\n // Prevents an infinite loop by skipping the update if the value hasn't changed\n valueRef.current === existingValue)\n ) {\n return // stop here, we don't want to set same value twice\n }\n\n if (\n storePath in tmpTransValueRef.current &&\n tmpTransValueRef.current[storePath] === valueToStore\n ) {\n return // stop here, avoid infinite loop\n }\n\n const valueIn = transformers.current.transformIn(valueToStore)\n const transformedValue = transformers.current.transformOut(\n valueIn,\n transformers.current.provideAdditionalArgs(valueIn as Value)\n )\n if (transformedValue !== valueToStore) {\n // When the value got transformed, we want to update the internal value, and avoid an infinite loop\n tmpTransValueRef.current[storePath] = valueToStore\n valueToStore = transformedValue\n }\n\n // When an itemPath is given, we don't want to rerender the context on every iteration because of performance reasons.\n // We know when the last item is reached, so we can prevent rerenders during the iteration.\n if (\n hasItemPath &&\n !nestedIteratePath && // Ensure we still rerender when absolutePath is set\n iterateIndex < iterateArrayValue?.length - 1\n ) {\n preventUpdate = true\n }\n\n // Update the data context when a pointer not exists,\n // but was given initially.\n updateDataValueDataContext?.(storePath, valueToStore, {\n preventUpdate,\n })\n\n if (!preventUpdate) {\n validateDataDataContext?.()\n }\n },\n [\n dataContext.data,\n dataContext.id,\n dataContext.internalDataRef,\n emptyValue,\n hasItemPath,\n hasPath,\n identifier,\n itemPath,\n iterateArrayValue,\n iterateIndex,\n makeIteratePath,\n nestedIteratePath,\n updateContextDataInSync,\n updateDataValueDataContext,\n validateDataDataContext,\n valueProp,\n prerenderFieldProps,\n ]\n )\n\n const isEmptyData = useCallback(\n () => {\n return (\n dataContext.isEmptyDataRef?.current ||\n dataContext.internalDataRef?.current ===\n (dataContext.props?.emptyData ?? clearedData)\n )\n },\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n dataContext.internalDataRef,\n dataContext.props?.emptyData,\n externalValueDeps, // ensure to include \"externalValue\" in order to properly remove errors\n ]\n )\n\n // Use \"useLayoutEffect\" to be in sync with the data context \"updateDataValueDataContext\".\n useLayoutEffect(() => {\n if (isEmptyData()) {\n defaultValueRef.current = defaultValue\n setChanged(false)\n hideError()\n clearErrorState()\n }\n }, [clearErrorState, defaultValue, hideError, isEmptyData, setChanged])\n\n useMemo(() => {\n if (updateContextDataInSync && !isEmptyData()) {\n setContextData({ preventUpdate: true })\n }\n }, [isEmptyData, updateContextDataInSync, setContextData])\n\n // Use \"useLayoutEffect\" to avoid flickering when value/defaultValue gets set, and other fields dependent on it.\n // Form.Visibility is an example of a logic, where a field value/defaultValue can be used to set the set state of a path,\n // where again other fields depend on it.\n useLayoutEffect(() => {\n if (!updateContextDataInSync && !isEmptyData()) {\n setContextData()\n }\n\n // In order to render Iterate.Array with \"countPath\" immediately\n if (forceUpdateWhenContextDataIsSet) {\n forceUpdate()\n }\n }, [\n forceUpdateWhenContextDataIsSet,\n isEmptyData,\n setContextData,\n updateContextDataInSync,\n ])\n\n useEffect(() => {\n if (isEmptyData()) {\n setContextData()\n validateValue()\n }\n }, [isEmptyData, setContextData, validateValue])\n\n useEffect(() => {\n if (showAllErrors || showBoundaryErrors) {\n // In case of async validation, we don't want to show existing errors before the validation has been completed\n if (fieldStateRef.current !== 'validating') {\n // If showError on a surrounding data context was changed and set to true, it is because the user clicked next, submit or\n // something else that should lead to showing the user all errors.\n revealError()\n }\n } else if (showBoundaryErrors === false) {\n hideError()\n }\n }, [hideError, revealError, showAllErrors, showBoundaryErrors])\n\n useEffect(() => {\n if (\n dataContext.formState === 'pending' &&\n (onChangeValidatorRef.current || onBlurValidatorRef.current)\n ) {\n hideError()\n forceUpdate()\n }\n }, [dataContext.formState, hideError])\n\n const onSubmitHandler = useCallback(async () => {\n if (hasError()) {\n return // stop here\n }\n\n addToPool(\n 'onChangeValidator',\n startOnChangeValidatorValidation,\n isAsync(onChangeValidatorRef.current)\n )\n\n addToPool(\n 'onBlurValidator',\n startOnBlurValidatorProcess,\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool()\n }, [\n addToPool,\n startOnBlurValidatorProcess,\n hasError,\n runPool,\n startOnChangeValidatorValidation,\n ])\n\n // Validate/call validator functions during submit of the form\n useEffect(() => {\n setFieldEventListener?.(identifier, 'onSubmitCall', onSubmitHandler)\n }, [identifier, onSubmitHandler, setFieldEventListener])\n\n // Set the error in the field block context if this field is inside a field block\n useEffect(() => {\n if (inFieldBlock) {\n setBlockRecord?.({\n identifier,\n type: 'error',\n content: error,\n showInitially: true,\n show: true,\n })\n setBlockRecord?.({\n identifier,\n type: 'warning',\n content: warning,\n showInitially: true,\n show: true,\n })\n setBlockRecord?.({\n identifier,\n type: 'info',\n content: info,\n showInitially: true,\n show: true,\n })\n\n return () => {\n // Unmount procedure\n if (mountedFieldsRefFieldBlock) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n mountedFieldsRefFieldBlock.current.set(identifier, true)\n }\n }\n }\n }, [\n error,\n identifier,\n inFieldBlock,\n info,\n mountedFieldsRefFieldBlock,\n setBlockRecord,\n warning,\n ])\n\n const infoRef = useRef<UseFieldProps['info']>(info)\n const warningRef = useRef<UseFieldProps['warning']>(warning)\n useMemo(() => {\n infoRef.current = info\n }, [info])\n useMemo(() => {\n warningRef.current = warning\n }, [warning])\n\n const connections = useMemo(() => {\n return {\n setEventResult,\n emptyValue,\n }\n }, [emptyValue, setEventResult])\n setFieldConnectionDataContext?.(identifier, connections)\n\n // - Handle htmlAttributes\n const htmlAttributes = useMemo(() => {\n return Object.keys(props).reduce<AriaAttributes>(\n (acc, cur) => {\n if (cur.startsWith('aria-') || cur.startsWith('data-')) {\n acc[cur] = props[cur]\n }\n return acc\n },\n { ...props.htmlAttributes }\n )\n }, [props])\n\n if (bufferedError) {\n htmlAttributes['aria-invalid'] = bufferedError ? 'true' : 'false'\n }\n if (required) {\n htmlAttributes['aria-required'] = 'true'\n }\n if (inFieldBlock) {\n // Mount the field in the field block context\n if (mountedFieldsRefFieldBlock) {\n mountedFieldsRefFieldBlock.current.set(identifier, true)\n }\n\n // Check if there are any state IDs to be added to the aria-describedby attribute\n const stateIds = fieldBlockContext.fieldStateIdsRef?.current\n\n if (stateIds) {\n htmlAttributes['aria-describedby'] = combineDescribedBy(\n htmlAttributes,\n [\n bufferedError && stateIds.error,\n warning && stateIds.warning,\n info && stateIds.info,\n ].filter(Boolean)\n )\n }\n } else {\n const ids = [\n (bufferedError || error) && `${id}-form-status--error`,\n warning && `${id}-form-status--warning`,\n info && `${id}-form-status--info`,\n ].filter(Boolean)\n\n if (ids.length) {\n htmlAttributes['aria-describedby'] = combineDescribedBy(\n htmlAttributes,\n ids\n )\n }\n }\n\n const help = props.help\n if (help?.title || help?.content) {\n htmlAttributes['aria-describedby'] = combineDescribedBy(\n htmlAttributes,\n `${id}-help`\n )\n }\n\n const fieldBlockProps = {\n /** Documented APIs */\n info: !inFieldBlock ? infoRef.current : undefined,\n warning: !inFieldBlock ? warningRef.current : undefined,\n error: !inFieldBlock ? bufferedError : undefined,\n required,\n label: props.label,\n labelDescription: props.labelDescription,\n labelDescriptionInline: props.labelDescriptionInline,\n labelSuffix: props.labelSuffix,\n labelSize: props.labelSize,\n labelSrOnly: props.labelSrOnly,\n layout: props.layout,\n layoutOptions: props.layoutOptions,\n help: props.help,\n\n /** HTML Attributes */\n disabled:\n onBlurValidator &&\n asyncProcessRef.current === 'onBlurValidator' &&\n fieldStateRef.current === 'validating'\n ? true\n : disabled,\n\n /** Internal */\n fieldState: resolveValidatingState(fieldStateRef.current),\n labelHeight:\n typeof props['size'] === 'string' ? props['size'] : undefined, // component/field size\n }\n\n const sharedData = useSharedState('field-block-props-' + id)\n sharedData.set(fieldBlockProps)\n\n useEffect(() => {\n isInternalRerenderRef.current = undefined\n })\n\n return {\n ...props,\n ...fieldBlockProps,\n\n /** HTML Attributes */\n name: props.name || props.path?.replace('/', '') || id,\n autoComplete:\n props.autoComplete ??\n (typeof dataContext.autoComplete === 'boolean'\n ? dataContext.autoComplete\n ? 'on'\n : 'off'\n : undefined),\n\n /** Documented APIs */\n id,\n value: transformers.current.toInput(valueRef.current),\n hasError: errorIsVisible,\n isChanged: Boolean(changedRef.current),\n props,\n htmlAttributes,\n setHasFocus,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n setChanged,\n setDisplayValue,\n validateValue,\n revealError,\n forceUpdate,\n\n /** Internal */\n additionalArgs,\n dataContext,\n }\n}\n\nexport interface ReturnAdditional<Value> {\n /** Documented APIs */\n value: Value\n isChanged: boolean\n htmlAttributes: AriaAttributes | DataAttributes\n setHasFocus: (\n hasFocus: boolean,\n overrideValue?: Value,\n additionalArgs?: ProvideAdditionalEventArgs\n ) => void\n handleFocus: () => void\n handleBlur: () => void\n handleChange: (\n value: Value | unknown,\n additionalArgs?: ProvideAdditionalEventArgs\n ) => void\n updateValue: (value: Value) => void\n setChanged: (state: boolean) => void\n setDisplayValue: (\n value: React.ReactNode,\n { path, type }?: { path?: Identifier; type?: 'field' }\n ) => void\n forceUpdate: () => void\n hasError?: boolean\n\n /** Internal */\n dataContext: ContextState\n fieldState: SubmitState\n additionalArgs: ReceiveAdditionalEventArgs<Value>\n}\n\nfunction resolveValidatingState(state: SubmitStateWithValidating) {\n return state === 'validating' ? 'pending' : state\n}\n\nexport function checkForError(\n potentialErrors: Array<\n | FieldPropsGeneric['error']\n | FieldPropsGeneric['warning']\n | FieldPropsGeneric['info']\n >\n) {\n return potentialErrors.some((error) => {\n return error instanceof Error || error instanceof FormError\n })\n}\n\nexport const clearedArray = []\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useFieldProps.js","names":["_react","_interopRequireWildcard","require","_jsonPointer","_interopRequireDefault","_utils","_DataContext","_Provider","_FieldProviderContext","_componentHelper","_useId","_useUpdateEffect","_FieldBlockContext","_IterateItemContext","_SectionContext","_FieldBoundaryContext","_VisibilityContext","_Context","_StepContext","_SnapshotContext","_useProcessManager","_usePath","_useSharedState","_isAsync","_useTranslation","_useExternalValue","_useDataValue","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","useLayoutEffect","window","React","useEffect","useFieldProps","localProps","_dataContext$props","_localErrorRef$curren","_this","_dataContext$props3","_props$path","_props$autoComplete","executeOnChangeRegardlessOfError","updateContextDataInSync","omitMultiplePathWarning","forceUpdateWhenContextDataIsSet","omitSectionPath","undefined","extend","useContext","FieldProviderContext","props","path","pathProp","valueProp","defaultValue","itemPath","emptyValue","required","requiredProp","disabled","disabledProp","info","infoProp","warning","warningProp","error","initialErrorProp","errorMessages","onFocus","onBlur","onChange","onBlurValidator","validator","onChangeValidator","exportValidators","schema","validateInitially","validateUnchanged","continuousValidation","validateContinuously","transformIn","external","transformOut","internal","toInput","fromInput","toEvent","transformValue","provideAdditionalArgs","additionalArgs","fromExternal","validateRequired","_ref","salt","forceUpdate","useReducer","isInternalRerenderRef","useRef","useMemo","current","startProcess","useProcessManager","id","useId","dataContext","DataContext","fieldBlockContext","FieldBlockContext","iterateItemContext","IterateItemContext","sectionContext","SectionContext","fieldBoundaryContext","FieldBoundaryContext","wizardContext","WizardContext","wizardStepContext","WizardStepContext","setMountedField","setMountedFieldSnapshot","SnapshotContext","isVisible","keepInDOM","VisibilityContext","handleFieldAsVisible","getValueByPath","getSourceValue","useDataValue","translation","useTranslation","formatMessage","translationRef","transformers","handlePathChangeUnvalidated","handlePathChangeUnvalidatedDataContext","handlePathChange","handlePathChangeDataContext","updateDataValue","updateDataValueDataContext","validateData","validateDataDataContext","setFieldState","setFieldStateDataContext","setFieldError","setFieldErrorDataContext","setFieldInternals","setFieldInternalsDataContext","setFieldConnection","setFieldConnectionDataContext","revealError","revealErrorDataContext","setMountedFieldState","setMountedFieldStateDataContext","setFieldEventListener","errors","dataContextErrors","showAllErrors","contextErrorMessages","fieldDisplayValueRef","existingFieldsRef","fieldInternalsRef","prerenderFieldProps","onChangeContext","readOnly","inFieldBlock","Boolean","disableStatusSummary","setBlockRecord","setFieldStateFieldBlock","showFieldError","showFieldErrorFieldBlock","mountedFieldsRef","mountedFieldsRefFieldBlock","activeIndex","activeIndexRef","setFieldErrorWizard","index","wizardIndex","handleChange","handleChangeIterateContext","iterateIndex","arrayValue","iterateArrayValue","nestedIteratePath","sectionPath","errorPrioritization","setFieldErrorBoundary","revealErrorBoundary","showBoundaryErrors","hasPath","hasItemPath","identifier","makeIteratePath","joinPath","cleanPath","usePath","defaultValueRef","tmpValue","useExternalValue","externalValueDeps","externalValue","valueRef","changedRef","hasFocusRef","revealErrorRef","paths","split","requiredInSchema","pathWithoutLast","slice","join","schemaPart","pointer","requiredSchemaList","Array","isArray","rootPath","replace","requiredList","map","startsWith","collected","flatMap","some","getFieldByPath","useCallback","_fieldInternalsRef$cu","errorMessageCacheRef","Map","ensureErrorMessageObject","key","returnValue","Error","isValidElement","convertJsxToString","FormError","formattedMessage","messageCacheRef","isSet","message","executeMessage","forceReturnErrorMessageObject","ALWAYS","INITIALLY","currentMode","msg","conditionally","callback","options","showInitially","isError","checkForError","errorProp","errorMethodRef","localErrorRef","localErrorInitiatorRef","contextErrorRef","onChangeValidatorRef","useUpdateEffect","onBlurValidatorRef","schemaValidatorRef","_dataContext$ajvInsta","ajvInstance","compile","asyncBehaviorIsEnabled","isAsync","validatedValueRef","changeEventResultRef","asyncProcessRef","defineAsyncProcess","name","asyncBufferRef","resolve","validateProcesses","requestAnimationFrame","eventPool","onChangeLocal","addToPool","fn","runAsync","runPool","cb","fieldStateRef","state","resolveValidatingState","setErrorState","hasError","hideError","errorMessagesCacheRef","extendedErrorMessages","combinedErrorMessages","cache","values","messages","extendErrorMessagesWithTranslationMessages","overwriteErrorMessagesWithGivenAjvKeys","prepareError","prepare","ajvKeyword","ajvMessage","validationRule","messageValues","entries","reduce","_ref2","includes","dataContextError","errorChanged","getBufferedError","_ref3","_prepareError","bufferedError","errorIsVisible","hasErrorProp","_ref4","connectWithPathListenerRef","runOnChangeValidator","runOnBlurValidator","handleConnectWithPath","getValue","additionalArgsRef","validators","args","connectWithPath","connectWithItemPath","callStackRef","hasBeenCalledRef","result","callValidatorFnAsync","validatorOrError","callValidatorFnSync","hasAsyncValidator","Promise","then","stateId","persistErrorState","method","initiator","_errorMethodRef$curre","_errorMethodRef$curre2","errorArg","weak","gracefully","currentError","type","content","clearErrorState","_schemaValidatorRef$c","setChanged","validatorCacheRef","revealOnChangeValidatorResult","_ref5","unchangedValue","callOnChangeValidator","startOnChangeValidatorValidation","callOnBlurValidator","overrideValue","revealOnBlurValidatorResult","_ref6","startOnBlurValidatorProcess","prioritizeContextSchema","schemaPath","hasContextSchema","indexOf","validateValue","isProcessActive","requiredError","isChanged","ajvErrorsToOneFormError","removeError","handleError","getEventArgs","_ref7","eventName","transformedValue","setHasFocus","hasFocus","localAdditionalArgs","isFocused","yieldAsyncProcess","_ref8","waitFor","_ref9","processName","withStates","hasValue","hasMatchingValue","handleChangeEventResult","warningRef","infoRef","success","setEventResult","callOnChangeContext","updateValue","newValue","_transformers$current","currentValue","contextValue","setDisplayValue","fieldPath","argFromInput","handleFocus","handleBlur","activeIndexTmpRef","isPreMounted","wasStepChange","isMounted","process","env","NODE_ENV","existingFields","warn","delete","_dataContext$ajvInsta2","externalValueDidChangeRef","tmpTransValueRef","setContextData","_dataContext$internal","preventUpdate","valueToStore","data","internalDataRef","storePath","existingValue","sharedState","createSharedState","sharedValue","hasDefaultValue","skipEqualCheck","clearedArray","clearedData","valueIn","isEmptyData","_dataContext$isEmptyD","_dataContext$internal2","_dataContext$props$em","_dataContext$props2","isEmptyDataRef","emptyData","formState","onSubmitHandler","show","connections","htmlAttributes","acc","cur","_fieldBlockContext$fi","stateIds","fieldStateIdsRef","combineDescribedBy","ids","help","title","fieldBlockProps","label","labelDescription","labelDescriptionInline","labelSuffix","labelSize","labelSrOnly","layout","layoutOptions","fieldState","labelHeight","sharedData","useSharedState","autoComplete","potentialErrors","exports"],"sources":["../../../../../src/extensions/forms/hooks/useFieldProps.ts"],"sourcesContent":["import React, {\n useRef,\n useEffect,\n useContext,\n useCallback,\n useMemo,\n useReducer,\n AriaAttributes,\n} from 'react'\nimport pointer from '../utils/json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n ajvErrorsToOneFormError,\n errorChanged,\n overwriteErrorMessagesWithGivenAjvKeys,\n extendErrorMessagesWithTranslationMessages,\n FormError,\n} from '../utils'\nimport {\n FieldPropsGeneric,\n ProvideAdditionalEventArgs,\n SubmitState,\n EventReturnWithStateObjectAndSuccess,\n EventStateObjectWithSuccess,\n ReceiveAdditionalEventArgs,\n Validator,\n Identifier,\n MessageProp,\n MessageTypes,\n MessagePropParams,\n UseFieldProps,\n ErrorProp,\n} from '../types'\nimport { Context as DataContext, ContextState } from '../DataContext'\nimport { clearedData } from '../DataContext/Provider/Provider'\nimport FieldProviderContext from '../Field/Provider/FieldProviderContext'\nimport {\n combineDescribedBy,\n convertJsxToString,\n warn,\n} from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport useUpdateEffect from '../../../shared/helpers/useUpdateEffect'\nimport FieldBlockContext, {\n FieldBlockContextProps,\n} from '../FieldBlock/FieldBlockContext'\nimport IterateItemContext from '../Iterate/IterateItemContext'\nimport SectionContext from '../Form/Section/SectionContext'\nimport FieldBoundaryContext from '../DataContext/FieldBoundary/FieldBoundaryContext'\nimport VisibilityContext from '../Form/Visibility/VisibilityContext'\nimport WizardContext from '../Wizard/Context'\nimport WizardStepContext from '../Wizard/Step/StepContext'\nimport SnapshotContext from '../Form/Snapshot/SnapshotContext'\nimport useProcessManager from './useProcessManager'\nimport usePath from './usePath'\nimport {\n createSharedState,\n useSharedState,\n} from '../../../shared/helpers/useSharedState'\nimport { isAsync } from '../../../shared/helpers/isAsync'\nimport useTranslation from './useTranslation'\nimport useExternalValue from './useExternalValue'\nimport useDataValue from './useDataValue'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\ntype SubmitStateWithValidating = SubmitState | 'validating'\ntype AsyncProcesses =\n | 'onChangeValidator'\n | 'onBlurValidator'\n | 'onChangeLocal'\n | 'onChangeContext'\ntype PersistErrorStateMethod =\n /**\n * Add or remove the error regardless\n */\n | 'weak'\n /**\n * Check if there is an existing error, and if so, keep it\n */\n | 'gracefully'\n /**\n * Remove the error, if any\n */\n | 'wipe'\ntype ErrorInitiator =\n | 'required'\n | 'schema'\n | 'errorProp'\n | 'onChangeValidator'\n | 'onBlurValidator'\n | 'dataContextError'\ntype AsyncProcessesBuffer = {\n resolve: () => void\n validateProcesses: () => boolean\n}\n\nexport type DataAttributes = {\n [property: `data-${string}`]: string | boolean | number\n}\n\n// Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n// useEffect depend on them (like the external `value`)\n\nexport default function useFieldProps<Value, EmptyValue, Props>(\n localProps: Props & FieldPropsGeneric<Value, EmptyValue>,\n {\n executeOnChangeRegardlessOfError = false,\n updateContextDataInSync = false,\n omitMultiplePathWarning = false,\n forceUpdateWhenContextDataIsSet = false,\n omitSectionPath = false,\n } = {}\n): typeof localProps & ReturnAdditional<Value> {\n const { extend } = useContext(FieldProviderContext)\n const props = extend(localProps)\n\n const {\n path: pathProp,\n value: valueProp,\n defaultValue,\n itemPath,\n emptyValue,\n required: requiredProp,\n disabled: disabledProp,\n info: infoProp,\n warning: warningProp,\n error: initialErrorProp = 'initial',\n errorMessages,\n onFocus,\n onBlur,\n onChange,\n onBlurValidator,\n // Deprecated – can be removed in v11\n validator,\n onChangeValidator = validator,\n exportValidators,\n schema,\n validateInitially,\n validateUnchanged,\n // Deprecated – can be removed in v11\n continuousValidation,\n validateContinuously = continuousValidation,\n transformIn = (external: unknown) => external as Value,\n transformOut = (internal: Value) => internal,\n toInput = (value: Value) => value,\n fromInput = (value: Value) => value,\n toEvent = (value: Value) => value,\n transformValue = (value: Value) => value,\n provideAdditionalArgs = (\n value: Value,\n additionalArgs: ProvideAdditionalEventArgs\n ) => additionalArgs,\n fromExternal = (value: Value) => value,\n validateRequired = (value, { emptyValue, required, error }) => {\n if (\n required &&\n ((value as unknown) === emptyValue ||\n (typeof emptyValue === 'undefined' && value === ''))\n ) {\n return error\n }\n },\n } = props\n\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n const isInternalRerenderRef = useRef(undefined)\n useMemo(() => {\n /**\n * This is currently not used, but we keep it here for future use.\n * It lets you check for isInternalRerenderRef.current !== undefined\n * inside a useUpdateEffect or useEffect to know if the component is rerendering from inside or outside.\n */\n isInternalRerenderRef.current = salt\n }, [salt])\n const { startProcess } = useProcessManager()\n const id = useId(props.id)\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const iterateItemContext = useContext(IterateItemContext)\n const sectionContext = useContext(SectionContext)\n const fieldBoundaryContext = useContext(FieldBoundaryContext)\n const wizardContext = useContext(WizardContext)\n const wizardStepContext = useContext(WizardStepContext)\n const { setMountedField: setMountedFieldSnapshot } =\n useContext(SnapshotContext) || {}\n const { isVisible, keepInDOM } = useContext(VisibilityContext) || {}\n const handleFieldAsVisible = isVisible || keepInDOM\n\n const { getValueByPath, getSourceValue } = useDataValue()\n const translation = useTranslation()\n const { formatMessage } = translation\n const translationRef = useRef(translation)\n translationRef.current = translation\n\n const transformers = useRef({\n transformIn,\n transformOut,\n provideAdditionalArgs,\n toInput,\n fromInput,\n toEvent,\n fromExternal,\n transformValue,\n validateRequired,\n })\n\n const {\n handlePathChangeUnvalidated: handlePathChangeUnvalidatedDataContext,\n handlePathChange: handlePathChangeDataContext,\n updateDataValue: updateDataValueDataContext,\n validateData: validateDataDataContext,\n setFieldState: setFieldStateDataContext,\n setFieldError: setFieldErrorDataContext,\n setFieldInternals: setFieldInternalsDataContext,\n setFieldConnection: setFieldConnectionDataContext,\n revealError: revealErrorDataContext,\n setMountedFieldState: setMountedFieldStateDataContext,\n setFieldEventListener,\n errors: dataContextErrors,\n showAllErrors,\n contextErrorMessages,\n fieldDisplayValueRef,\n existingFieldsRef,\n fieldInternalsRef,\n prerenderFieldProps,\n } = dataContext || {}\n const onChangeContext = dataContext?.props?.onChange\n\n const disabled = disabledProp ?? props.readOnly\n const inFieldBlock = Boolean(\n fieldBlockContext && fieldBlockContext.disableStatusSummary !== true\n )\n const {\n setBlockRecord,\n setFieldState: setFieldStateFieldBlock,\n showFieldError: showFieldErrorFieldBlock,\n mountedFieldsRef: mountedFieldsRefFieldBlock,\n } = (inFieldBlock ? fieldBlockContext : {}) as FieldBlockContextProps\n const {\n activeIndex,\n activeIndexRef,\n setFieldError: setFieldErrorWizard,\n } = wizardContext || {}\n const { index: wizardIndex } = wizardStepContext || {}\n const {\n handleChange: handleChangeIterateContext,\n index: iterateIndex,\n arrayValue: iterateArrayValue,\n nestedIteratePath,\n } = iterateItemContext || {}\n const { path: sectionPath, errorPrioritization } = sectionContext || {}\n const {\n setFieldError: setFieldErrorBoundary,\n revealError: revealErrorBoundary,\n showBoundaryErrors,\n } = fieldBoundaryContext || {}\n\n const hasPath = Boolean(pathProp)\n const hasItemPath = Boolean(itemPath)\n const { path, identifier, makeIteratePath, joinPath, cleanPath } =\n usePath({\n id,\n path: pathProp,\n itemPath,\n omitSectionPath,\n })\n\n const defaultValueRef = useRef(defaultValue)\n useLayoutEffect(() => {\n // To support React.StrictMode, we also need to add it from inside a useEffect\n defaultValueRef.current = defaultValue\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n const tmpValue = useExternalValue<Value>({\n path: identifier,\n itemPath,\n value: valueProp,\n transformers,\n emptyValue: defaultValue ? undefined : emptyValue,\n })\n const externalValueDeps = tmpValue\n const externalValue = transformers.current.transformIn(\n tmpValue ?? defaultValueRef.current\n )\n\n // Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n // useEffect depend on them (like the external `value`)\n\n // Hold an internal copy of the input value in case the input component is used uncontrolled,\n // and to handle errors in Eufemia on components that does not take updated callback functions into account.\n const valueRef = useRef<Value>(externalValue)\n const changedRef = useRef<boolean>()\n const hasFocusRef = useRef<boolean>()\n\n // - Should errors received through validation be shown initially. Assume that providing a direct prop to\n // the component means it is supposed to be shown initially.\n const revealErrorRef = useRef<boolean>(null)\n\n const required = useMemo(() => {\n if (typeof requiredProp !== 'undefined') {\n return requiredProp\n }\n\n if (schema || dataContext?.schema) {\n const paths = identifier.split('/')\n if (paths.length > 0) {\n const requiredInSchema = [schema?.['required']]\n\n // - Handle context schema\n if (paths.length > 1) {\n const schema = dataContext.schema\n const pathWithoutLast = paths.slice(0, -1).join('/properties/')\n const schemaPart = pointer.has(schema, pathWithoutLast)\n ? pointer.get(schema, pathWithoutLast)\n : schema\n\n const requiredSchemaList = schemaPart?.['required']\n if (Array.isArray(requiredSchemaList)) {\n const rootPath = pathWithoutLast.replace(/properties\\//g, '')\n const requiredList = requiredSchemaList.map((path) => {\n path = cleanPath('/' + path)\n return sectionPath && path.startsWith(sectionPath)\n ? path\n : joinPath([sectionPath || rootPath, path])\n })\n requiredInSchema.push(requiredList)\n }\n }\n\n const collected = requiredInSchema\n .flatMap((value) => value)\n .filter(Boolean)\n\n if (\n collected.filter(Boolean).some((path) => {\n path = cleanPath('/' + path)\n return identifier === path || sectionPath === path\n })\n ) {\n return true\n }\n }\n }\n }, [\n cleanPath,\n dataContext.schema,\n identifier,\n joinPath,\n requiredProp,\n schema,\n sectionPath,\n ])\n\n const getFieldByPath: MessagePropParams<\n Value,\n unknown\n >['getFieldByPath'] = useCallback(\n (path) => {\n return (\n fieldInternalsRef.current?.[path] || {\n props: undefined,\n id: undefined,\n }\n )\n },\n [fieldInternalsRef]\n )\n\n const errorMessageCacheRef = useRef<Map<string, ErrorProp<Value>>>(\n new Map()\n )\n const ensureErrorMessageObject = useCallback(<T>(error: T): T => {\n let key = null\n let returnValue: T | ErrorProp<Value> = error\n\n if (typeof error === 'string') {\n key = error\n returnValue = new Error(error)\n } else if (error && React.isValidElement(error)) {\n key = error.key || convertJsxToString(error)\n returnValue = new FormError('Error', {\n formattedMessage: error,\n })\n }\n\n // - Cache jsx errors to avoid rendering/infinite loop\n if (key) {\n if (errorMessageCacheRef.current.has(key)) {\n return errorMessageCacheRef.current.get(key) as T\n } else {\n errorMessageCacheRef.current.set(\n key,\n returnValue as ErrorProp<Value>\n )\n }\n }\n\n return returnValue as T\n }, [])\n\n const messageCacheRef = useRef<{\n isSet: boolean\n message: MessageTypes<Value>\n }>({ isSet: false, message: undefined })\n const executeMessage = useCallback(\n <ReturnValue extends MessageTypes<Value>>(\n message: MessageProp<Value, ReturnValue>,\n forceReturnErrorMessageObject?: boolean\n ): ReturnValue => {\n if (typeof message === 'function') {\n const ALWAYS = 4\n const INITIALLY = 8\n\n let currentMode = ALWAYS\n\n const msg = message(valueRef.current, {\n conditionally: (callback, options) => {\n currentMode &= ~ALWAYS\n\n if (options?.showInitially) {\n currentMode |= INITIALLY\n }\n\n return executeMessage(callback())\n },\n getValueByPath,\n getFieldByPath,\n })\n\n if (msg === undefined) {\n messageCacheRef.current.message = undefined\n return null // hide the message\n }\n\n const isError =\n msg instanceof Error ||\n msg instanceof FormError ||\n (Array.isArray(msg) && checkForError(msg))\n\n if (\n (!messageCacheRef.current.isSet && currentMode & INITIALLY) ||\n currentMode & ALWAYS ||\n hasFocusRef.current === false ||\n // Ensure we don't remove the message when the value is e.g. empty string\n messageCacheRef.current.message\n ) {\n if (\n // Ensure to only update the message when component did re-render internally\n isInternalRerenderRef.current ||\n currentMode & ALWAYS ||\n (!messageCacheRef.current.isSet && currentMode & INITIALLY)\n ) {\n if (msg) {\n messageCacheRef.current.isSet = true\n }\n if (msg || !hasFocusRef.current || currentMode & ALWAYS) {\n messageCacheRef.current.message = msg\n }\n }\n\n message = messageCacheRef.current.message as ReturnValue\n\n if (isError && message) {\n revealErrorRef.current = true\n }\n\n if (!isError && !message) {\n return null // hide the message\n }\n } else {\n return undefined // no message\n }\n }\n\n return forceReturnErrorMessageObject\n ? ensureErrorMessageObject(message)\n : message\n },\n [getFieldByPath, getValueByPath, ensureErrorMessageObject]\n )\n\n const errorProp =\n initialErrorProp === 'initial' ? undefined : initialErrorProp\n const error = executeMessage<UseFieldProps['error'] | 'initial'>(\n errorProp,\n true\n )\n const warning = executeMessage<UseFieldProps['warning']>(warningProp)\n const info = executeMessage<UseFieldProps['info']>(infoProp)\n\n if (revealErrorRef.current === null) {\n revealErrorRef.current = validateInitially ?? Boolean(errorProp)\n }\n\n // - Local errors are errors based on validation instructions received by\n const errorMethodRef = useRef<\n Partial<Record<PersistErrorStateMethod, Error | FormError>>\n >({})\n const localErrorRef = useRef<Error | FormError | undefined>()\n const localErrorInitiatorRef = useRef<ErrorInitiator>()\n\n // - Context errors are from outer contexts, like validation for this field as part of the whole data set\n const contextErrorRef = useRef<Error | FormError | undefined>()\n\n const onChangeValidatorRef = useRef(onChangeValidator)\n useUpdateEffect(() => {\n onChangeValidatorRef.current = onChangeValidator\n }, [onChangeValidator]) // Tobias, will this still work? now that we do onChangeValidator = validator?\n const onBlurValidatorRef = useRef(onBlurValidator)\n useUpdateEffect(() => {\n onBlurValidatorRef.current = onBlurValidator\n }, [onBlurValidator])\n\n const schemaValidatorRef = useRef<ValidateFunction>()\n if (!schemaValidatorRef.current && schema) {\n schemaValidatorRef.current = dataContext.ajvInstance?.compile(schema)\n }\n\n // - Async behavior\n const asyncBehaviorIsEnabled = useMemo(() => {\n return isAsync(onChange) || isAsync(onChangeContext)\n }, [onChangeContext, onChange])\n const validatedValueRef = useRef<Value>()\n const changeEventResultRef = useRef<EventStateObjectWithSuccess>(null)\n const asyncProcessRef = useRef<AsyncProcesses>(null)\n const defineAsyncProcess = useCallback((name: AsyncProcesses) => {\n asyncProcessRef.current = name\n }, [])\n\n // When both an async onChange and async validators are used,\n // we buffer the onChange calls to avoid race conditions.\n const asyncBufferRef = useRef<\n Record<AsyncProcesses, AsyncProcessesBuffer> | Record<string, unknown>\n >({})\n\n for (const key in asyncBufferRef.current) {\n const { resolve, validateProcesses } = (asyncBufferRef.current[key] ||\n {}) as AsyncProcessesBuffer\n if (validateProcesses?.() === false) {\n delete asyncBufferRef.current[key]\n if (typeof resolve === 'function') {\n window.requestAnimationFrame(resolve)\n }\n }\n }\n\n const eventPool = useRef({\n onChangeValidator: null,\n onBlurValidator: null,\n onChangeContext: null,\n onChangeLocal: null,\n })\n\n const addToPool = useCallback(\n (name: keyof typeof eventPool.current, fn, runAsync) => {\n if (!eventPool.current[name]) {\n eventPool.current[name] = { fn, runAsync }\n }\n },\n []\n )\n\n const runPool = useCallback(async (cb = null) => {\n for (const key in eventPool.current) {\n if (!eventPool.current[key]) {\n continue\n }\n\n const { fn, runAsync } = eventPool.current[key] || {}\n if (fn) {\n eventPool.current[key] = null\n\n if (runAsync) {\n await fn()\n } else {\n fn()\n }\n }\n }\n\n // use a callback in order to avoid any async/await,\n // because it will delay the execution of the following code\n cb?.()\n }, [])\n\n const fieldStateRef = useRef<SubmitStateWithValidating>()\n const setFieldState = useCallback(\n (state: SubmitStateWithValidating) => {\n fieldStateRef.current = state\n setFieldStateDataContext?.(identifier, resolveValidatingState(state))\n setFieldStateFieldBlock?.(identifier, resolveValidatingState(state))\n\n if (!validateInitially) {\n forceUpdate()\n }\n },\n [\n setFieldStateDataContext,\n identifier,\n setFieldStateFieldBlock,\n validateInitially,\n ]\n )\n\n const setErrorState = useCallback(\n (hasError: boolean) => {\n setFieldErrorWizard?.(\n wizardIndex,\n identifier,\n handleFieldAsVisible !== false ? hasError : undefined\n )\n\n showFieldErrorFieldBlock?.(identifier, hasError)\n revealErrorBoundary?.(identifier, hasError)\n revealErrorDataContext?.(identifier, hasError)\n },\n [\n identifier,\n handleFieldAsVisible,\n revealErrorBoundary,\n revealErrorDataContext,\n setFieldErrorWizard,\n showFieldErrorFieldBlock,\n wizardIndex,\n ]\n )\n\n // - Will reveal the error as a visible error (hasVisibleError)\n const revealError = useCallback(() => {\n // To support \"validateInitially={false}\" prop, we need to make sure that the error is not shown initially\n if (validateInitially === false && revealErrorRef.current === false) {\n revealErrorRef.current = undefined\n return // stop here\n }\n\n const hasError = Boolean(localErrorRef.current)\n revealErrorRef.current = true\n setErrorState(hasError)\n }, [validateInitially, setErrorState])\n\n const hideError = useCallback(() => {\n if (revealErrorRef.current) {\n revealErrorRef.current = undefined\n setErrorState(false)\n }\n }, [setErrorState])\n\n const errorMessagesCacheRef = useRef({\n errorMessages: null,\n extendedErrorMessages: null,\n })\n const combinedErrorMessages = useMemo(() => {\n // Compare the error messages with the previous ones,\n // in case \"errorMessages\" is not wrapped in useMemo.\n const cache = errorMessagesCacheRef.current\n if (\n errorMessages &&\n cache.extendedErrorMessages &&\n // We compare the \"errorMessages\" object with the cached version.\n // Ideally, this comparison would be unnecessary when using useMemo, as documented.\n // However, to safeguard against potential infinite loops, we perform this comparison.\n // Why can this happen? Because the \"errorMessages\" object is a reference, and when provided without useMemo,\n // it will come in as a new object every time it is used, so combinedErrorMessages as a hook dependency will be updated.\n // Using array.join('') is approximately twice as fast as concatenating strings in a loop.\n Object.values(cache.errorMessages || {}).join('') ===\n Object.values(errorMessages || {}).join('')\n ) {\n return cache.extendedErrorMessages\n }\n\n const messages = {\n ...contextErrorMessages,\n ...contextErrorMessages?.[identifier],\n ...errorMessages,\n }\n\n const extendedErrorMessages =\n extendErrorMessagesWithTranslationMessages(\n overwriteErrorMessagesWithGivenAjvKeys(messages),\n translationRef.current\n )\n\n errorMessagesCacheRef.current = {\n errorMessages,\n extendedErrorMessages,\n }\n\n return extendedErrorMessages\n }, [contextErrorMessages, errorMessages, identifier])\n\n /**\n * Prepare error from validation logic with correct error messages based on props\n */\n const prepareError = useCallback(\n (error: FieldPropsGeneric<Value>['error']): FormError | undefined => {\n const prepare = (error: FormError) => {\n if (error instanceof FormError) {\n let message = error.message\n\n const { ajvKeyword } = error\n if (typeof ajvKeyword === 'string') {\n const ajvMessage = combinedErrorMessages?.[ajvKeyword]\n if (ajvMessage) {\n message = ajvMessage\n }\n }\n\n /** @deprecated – can be removed in v11 */\n const { validationRule } = error\n if (typeof validationRule === 'string') {\n const ajvMessage = combinedErrorMessages?.[validationRule]\n if (ajvMessage) {\n message = ajvMessage\n }\n }\n\n if (combinedErrorMessages?.[message]) {\n // - For when the message is e.g. Field.errorRequired or Custom.key, but delivered in the `errorMessages` object\n message = combinedErrorMessages?.[message]\n\n if (error.messageValues) {\n message = Object.entries(error.messageValues || {}).reduce(\n (msg, [key, value]) => {\n return msg.replace(`{${key}}`, value)\n },\n message\n )\n }\n } else if (message.includes('.')) {\n // - For when the message is e.g. Field.errorRequired\n message = formatMessage(message, error.messageValues)\n }\n\n if (React.isValidElement(message)) {\n error.formattedMessage = message\n } else {\n error.message = message\n }\n }\n\n return ensureErrorMessageObject(error)\n }\n\n if (Array.isArray(error)) {\n return new FormError('Error', {\n errors: error.map(prepare),\n })\n }\n\n if (error instanceof FormError) {\n if (Array.isArray(error.errors)) {\n error.errors = error.errors.map(prepare)\n return error\n }\n return prepare(error)\n }\n\n return error as FormError\n },\n [combinedErrorMessages, ensureErrorMessageObject, formatMessage]\n )\n\n contextErrorRef.current = useMemo(() => {\n const dataContextError = dataContextErrors?.[identifier]\n if (!dataContextError) {\n return undefined\n }\n const error = prepareError(dataContextError)\n if (errorChanged(error, contextErrorRef.current)) {\n return error\n }\n return contextErrorRef.current\n }, [dataContextErrors, identifier, prepareError])\n\n // If the error is a type error, we want to show it even if the field has not been used\n if (localErrorRef.current?.['ajvKeyword'] === 'type') {\n revealErrorRef.current = true\n }\n\n const getBufferedError = useCallback(() => {\n if (\n initialErrorProp !== 'initial' &&\n typeof errorProp !== 'function'\n ) {\n return prepareError(errorProp)\n } else if (revealErrorRef.current) {\n return (\n prepareError(error as FormError) ??\n localErrorRef.current ??\n contextErrorRef.current\n )\n } else if (error === null) {\n return null\n }\n }, [error, errorProp, initialErrorProp, prepareError])\n\n const bufferedError = getBufferedError()\n\n const errorIsVisible =\n Boolean(bufferedError) ||\n (inFieldBlock && fieldBlockContext.hasErrorProp)\n const hasError = useCallback(() => {\n return Boolean(\n error ?? localErrorRef.current ?? contextErrorRef.current\n )\n }, [error])\n\n const connectWithPathListenerRef = useRef(() => {\n runOnChangeValidator()\n runOnBlurValidator()\n })\n\n const handleConnectWithPath = useCallback(\n (path: Identifier) => {\n setFieldEventListener?.(\n path,\n 'onPathChange',\n connectWithPathListenerRef.current\n )\n\n return {\n getValue: () => getValueByPath(path),\n }\n },\n [getValueByPath, setFieldEventListener]\n )\n\n const additionalArgsRef = useRef<\n Partial<ReceiveAdditionalEventArgs<Value>>\n >({\n validators: exportValidators,\n props,\n dataContext,\n getValueByPath,\n getSourceValue,\n setFieldEventListener,\n })\n additionalArgsRef.current.validators = exportValidators\n additionalArgsRef.current.props = props\n const additionalArgs = useMemo(() => {\n const args: ReceiveAdditionalEventArgs<Value> = {\n /** Deprecated – can be removed in v11 */\n ...combinedErrorMessages,\n\n errorMessages: combinedErrorMessages,\n ...additionalArgsRef.current,\n connectWithPath: (path) => {\n return handleConnectWithPath(path)\n },\n connectWithItemPath: (itemPath) => {\n return handleConnectWithPath(makeIteratePath(itemPath))\n },\n }\n\n return args\n }, [combinedErrorMessages, handleConnectWithPath, makeIteratePath])\n\n const callStackRef = useRef<Array<Validator<Value>>>([])\n const hasBeenCalledRef = useCallback((validator: Validator<Value>) => {\n const result = callStackRef.current.includes(validator)\n callStackRef.current.push(validator)\n return result\n }, [])\n\n const callValidatorFnAsync = useCallback(\n async (\n validator: Validator<Value>,\n value: Value = valueRef.current\n ): Promise<ReturnType<Validator<Value>>> => {\n if (typeof validator !== 'function') {\n return\n }\n\n const result = await validator(value, additionalArgs)\n\n if (Array.isArray(result)) {\n const errors = []\n\n for (const validatorOrError of result) {\n if (validatorOrError instanceof Error) {\n errors.push(validatorOrError)\n } else if (!hasBeenCalledRef(validatorOrError)) {\n const result = await callValidatorFnAsync(\n validatorOrError,\n value\n )\n if (result instanceof Error) {\n callStackRef.current = []\n return result\n }\n }\n }\n\n if (errors.length > 0) {\n return new FormError('Error', {\n errors,\n })\n }\n\n callStackRef.current = []\n } else {\n return ensureErrorMessageObject(result)\n }\n },\n [additionalArgs, hasBeenCalledRef, ensureErrorMessageObject]\n )\n\n const callValidatorFnSync = useCallback(\n (\n validator: Validator<Value>,\n value: Value = valueRef.current\n ): ReturnType<Validator<Value>> => {\n if (typeof validator !== 'function') {\n return // stop here\n }\n\n const result = validator(value, additionalArgs)\n\n if (Array.isArray(result)) {\n const hasAsyncValidator = result.some((validator) =>\n isAsync(validator)\n )\n if (hasAsyncValidator) {\n return new Promise((resolve) => {\n callValidatorFnAsync(validator, value).then((result) => {\n resolve(result)\n })\n })\n }\n\n const errors = []\n\n for (const validatorOrError of result) {\n if (validatorOrError instanceof Error) {\n errors.push(validatorOrError)\n } else if (!hasBeenCalledRef(validatorOrError)) {\n const result = callValidatorFnSync(validatorOrError, value)\n if (result instanceof Error) {\n callStackRef.current = []\n return result\n }\n }\n }\n\n if (errors.length > 0) {\n return new FormError('Error', {\n errors,\n })\n }\n\n callStackRef.current = []\n } else {\n return ensureErrorMessageObject(result)\n }\n },\n [\n additionalArgs,\n callValidatorFnAsync,\n hasBeenCalledRef,\n ensureErrorMessageObject,\n ]\n )\n\n /**\n * Based on validation, update error state, locally and relevant surrounding contexts\n */\n const stateId = useId()\n const persistErrorState = useCallback(\n (\n method: PersistErrorStateMethod,\n initiator: ErrorInitiator,\n errorArg:\n | Error\n | FormError\n | Array<Error | FormError>\n | undefined = undefined\n ) => {\n const error = prepareError(errorArg)\n\n if (!errorChanged(error, localErrorRef.current)) {\n // In case different triggers lead to validation with no changes in the result (like still no error, or the same error),\n // avoid unnecessary re-renders by letting the old error object stay in the state and skip re-rendering.\n return\n }\n\n if (initiator !== 'dataContextError') {\n localErrorInitiatorRef.current = initiator\n }\n\n if (method === 'wipe') {\n errorMethodRef.current = {}\n } else {\n errorMethodRef.current[method] = error\n }\n\n if (\n !error &&\n method === 'gracefully' &&\n (errorMethodRef.current?.weak ||\n errorMethodRef.current?.gracefully)\n ) {\n // If the error is removed, we need to check if there are other errors that still should be shown\n return\n }\n\n const currentError =\n handleFieldAsVisible !== false ? error : undefined\n localErrorRef.current = currentError\n\n // Tell the data context about the error, so it can stop the user from submitting the form until the error has been fixed\n setFieldErrorDataContext?.(identifier, currentError)\n setFieldErrorBoundary?.(identifier, currentError)\n\n // Set the visual states\n setBlockRecord?.({\n stateId,\n identifier,\n type: 'error',\n content: currentError,\n showInitially: Boolean(inFieldBlock && validateInitially),\n })\n setFieldStateDataContext?.(identifier, error ? 'error' : undefined)\n\n if (updateContextDataInSync) {\n setFieldErrorWizard?.(\n wizardIndex,\n identifier,\n Boolean(currentError)\n )\n }\n\n forceUpdate()\n },\n [\n handleFieldAsVisible,\n identifier,\n inFieldBlock,\n prepareError,\n setBlockRecord,\n setFieldErrorBoundary,\n setFieldErrorDataContext,\n setFieldErrorWizard,\n setFieldStateDataContext,\n stateId,\n updateContextDataInSync,\n validateInitially,\n wizardIndex,\n ]\n )\n\n const clearErrorState = useCallback(() => {\n persistErrorState('wipe', undefined)\n localErrorInitiatorRef.current = undefined\n if (Array.isArray(schemaValidatorRef.current?.errors)) {\n schemaValidatorRef.current.errors = []\n }\n }, [persistErrorState])\n\n const setChanged = useCallback((state: boolean) => {\n changedRef.current = state\n }, [])\n\n const validatorCacheRef = useRef({\n onChangeValidator: null,\n onBlurValidator: null,\n })\n\n const revealOnChangeValidatorResult = useCallback(\n ({ result, unchangedValue }) => {\n const runAsync = isAsync(onChangeValidatorRef.current)\n\n // Don't show the error if the value has changed in the meantime\n if (unchangedValue) {\n persistErrorState(\n runAsync ? 'gracefully' : 'weak',\n 'onChangeValidator',\n result\n )\n\n if (\n (validateInitially && !changedRef.current) ||\n validateUnchanged ||\n validateContinuously ||\n runAsync // Because it's a better UX to show the error when the validation is async/delayed\n ) {\n // Because we first need to throw the error to be able to display it, we delay the showError call\n window.requestAnimationFrame(() => {\n if (localErrorInitiatorRef.current === 'onChangeValidator') {\n revealError()\n forceUpdate()\n }\n })\n }\n }\n\n if (runAsync) {\n defineAsyncProcess(undefined)\n\n if (unchangedValue) {\n setFieldState(result instanceof Error ? 'error' : 'complete')\n } else {\n setFieldState('pending')\n }\n }\n },\n [\n validateContinuously,\n defineAsyncProcess,\n persistErrorState,\n revealError,\n setFieldState,\n validateInitially,\n validateUnchanged,\n ]\n )\n\n const callOnChangeValidator = useCallback(async () => {\n if (typeof onChangeValidatorRef.current !== 'function') {\n return {}\n }\n\n const tmpValue = valueRef.current\n\n let result = isAsync(onChangeValidatorRef.current)\n ? await callValidatorFnAsync(onChangeValidatorRef.current)\n : callValidatorFnSync(onChangeValidatorRef.current)\n if (result instanceof Promise) {\n result = await result\n }\n\n const unchangedValue = tmpValue === valueRef.current\n return { result, unchangedValue }\n }, [callValidatorFnAsync, callValidatorFnSync])\n\n const startOnChangeValidatorValidation = useCallback(async () => {\n if (typeof onChangeValidatorRef.current !== 'function') {\n return\n }\n\n if (isAsync(onChangeValidatorRef.current)) {\n defineAsyncProcess('onChangeValidator')\n setFieldState('validating')\n hideError()\n }\n\n // Ideally, we should rather call \"callOnChangeValidator\", but sadly it's not possible,\n // because we get an additional delay due to the async nature, which is too much.\n // So when a submit button is pressed, and there is a sync validator, it needs to be validated without a delay.\n const tmpValue = valueRef.current\n let result = isAsync(onChangeValidatorRef.current)\n ? await callValidatorFnAsync(onChangeValidatorRef.current)\n : callValidatorFnSync(onChangeValidatorRef.current)\n if (result instanceof Promise) {\n result = await result\n }\n const unchangedValue = tmpValue === valueRef.current\n\n revealOnChangeValidatorResult({ result, unchangedValue })\n\n return { result }\n }, [\n callValidatorFnAsync,\n callValidatorFnSync,\n defineAsyncProcess,\n hideError,\n revealOnChangeValidatorResult,\n setFieldState,\n ])\n\n const runOnChangeValidator = useCallback(async () => {\n if (!onChangeValidatorRef.current) {\n return // stop here\n }\n\n const { result, unchangedValue } = await callOnChangeValidator()\n\n if (\n String(result) !==\n String(validatorCacheRef.current.onChangeValidator)\n ) {\n if (result) {\n revealOnChangeValidatorResult({ result, unchangedValue })\n } else {\n hideError()\n clearErrorState()\n }\n }\n\n validatorCacheRef.current.onChangeValidator = result || null\n }, [\n callOnChangeValidator,\n clearErrorState,\n hideError,\n revealOnChangeValidatorResult,\n ])\n\n const callOnBlurValidator = useCallback(\n async ({\n overrideValue = null,\n }: {\n overrideValue?: Value\n } = {}) => {\n if (typeof onBlurValidatorRef.current !== 'function') {\n return {}\n }\n\n const value = transformers.current.toEvent(\n overrideValue ?? valueRef.current,\n 'onBlurValidator'\n )\n\n // Since the validator can return either a synchronous result or an asynchronous.\n let result = isAsync(onBlurValidatorRef.current)\n ? await callValidatorFnAsync(onBlurValidatorRef.current, value)\n : callValidatorFnSync(onBlurValidatorRef.current, value)\n if (result instanceof Promise) {\n result = await result\n }\n\n return { result }\n },\n [callValidatorFnAsync, callValidatorFnSync]\n )\n\n const revealOnBlurValidatorResult = useCallback(\n ({ result }) => {\n persistErrorState('gracefully', 'onBlurValidator', result)\n\n if (isAsync(onBlurValidatorRef.current)) {\n defineAsyncProcess(undefined)\n setFieldState(result instanceof Error ? 'error' : 'complete')\n }\n\n revealError()\n },\n [defineAsyncProcess, persistErrorState, revealError, setFieldState]\n )\n\n const startOnBlurValidatorProcess = useCallback(\n async ({\n overrideValue = null,\n }: {\n overrideValue?: Value\n } = {}) => {\n if (typeof onBlurValidatorRef.current !== 'function') {\n return // stop here\n }\n\n if (\n (localErrorInitiatorRef.current === 'required' ||\n localErrorInitiatorRef.current === 'schema') &&\n !asyncBehaviorIsEnabled && // Has async \"onChange\" event\n !isAsync(onChangeValidatorRef.current)\n ) {\n return // stop here\n }\n\n if (isAsync(onBlurValidatorRef.current)) {\n defineAsyncProcess('onBlurValidator')\n setFieldState('validating')\n }\n\n const value = transformers.current.toEvent(\n overrideValue ?? valueRef.current,\n 'onBlurValidator'\n )\n\n // Since the validator can return either a synchronous result or an asynchronous.\n // Ideally, we should rather call \"callOnBlurValidator\", but sadly it's not possible,\n // because we get an additional delay due to the async nature, which is too much.\n // So when a submit button is pressed, and there is a sync validator, it needs to be validated without a delay.\n let result = isAsync(onBlurValidatorRef.current)\n ? await callValidatorFnAsync(onBlurValidatorRef.current, value)\n : callValidatorFnSync(onBlurValidatorRef.current, value)\n if (result instanceof Promise) {\n result = await result\n }\n\n revealOnBlurValidatorResult({ result })\n\n return { result }\n },\n [\n asyncBehaviorIsEnabled,\n callValidatorFnAsync,\n callValidatorFnSync,\n defineAsyncProcess,\n revealOnBlurValidatorResult,\n setFieldState,\n ]\n )\n\n const runOnBlurValidator = useCallback(async () => {\n if (!onBlurValidatorRef.current) {\n return // stop here\n }\n\n const { result } = await callOnBlurValidator()\n\n if (\n String(result) !==\n String(validatorCacheRef.current.onBlurValidator) &&\n revealErrorRef.current\n ) {\n if (result) {\n revealOnBlurValidatorResult({ result })\n } else {\n hideError()\n clearErrorState()\n }\n }\n\n validatorCacheRef.current.onBlurValidator = result || null\n }, [\n callOnBlurValidator,\n clearErrorState,\n hideError,\n revealOnBlurValidatorResult,\n ])\n\n const prioritizeContextSchema = useMemo(() => {\n if (errorPrioritization) {\n const schemaPath = identifier.split('/').join('/properties/')\n const hasContextSchema = pointer.has(\n dataContext?.schema || {},\n schemaPath\n )\n return (\n hasContextSchema &&\n errorPrioritization?.indexOf('contextSchema') === 0\n )\n }\n }, [dataContext?.schema, errorPrioritization, identifier])\n\n /**\n * Validate the current state value by provided validator instructions\n */\n const validateValue = useCallback(async () => {\n const isProcessActive = startProcess()\n\n if (disabled) {\n if (isProcessActive()) {\n clearErrorState()\n }\n hideError()\n setFieldState(undefined)\n return // stop here\n }\n\n const value = valueRef.current\n changeEventResultRef.current = null\n validatedValueRef.current = null\n let initiator: ErrorInitiator = null\n\n try {\n const requiredError = transformers.current.validateRequired(value, {\n emptyValue,\n required,\n isChanged: changedRef.current,\n error: new FormError('Field.errorRequired'),\n })\n if (requiredError instanceof Error) {\n initiator = 'required'\n throw requiredError\n }\n\n if (error instanceof Error) {\n initiator = 'errorProp'\n throw error\n }\n\n // Validate by provided JSON Schema for this value\n if (\n value !== undefined &&\n !prioritizeContextSchema &&\n typeof schemaValidatorRef.current === 'function'\n ) {\n if (!schemaValidatorRef.current(value)) {\n const error = ajvErrorsToOneFormError(\n schemaValidatorRef.current.errors,\n value\n )\n initiator = 'schema'\n throw error\n }\n }\n\n // Validate by provided derivative validator\n if (\n onChangeValidatorRef.current &&\n (changedRef.current || validateInitially || validateUnchanged)\n ) {\n const { result } = await startOnChangeValidatorValidation()\n\n if (result instanceof Error) {\n initiator = 'onChangeValidator'\n throw result\n }\n }\n\n // Only for when \"validateInitially\" is set to true\n if (\n onBlurValidatorRef.current &&\n validateInitially &&\n !changedRef.current\n ) {\n const { result } = await startOnBlurValidatorProcess()\n\n if (result instanceof Error) {\n initiator = 'onBlurValidator'\n throw result\n }\n }\n\n if (isProcessActive()) {\n clearErrorState()\n }\n\n validatedValueRef.current = value\n } catch (error) {\n if (isProcessActive()) {\n persistErrorState('weak', initiator, error)\n }\n }\n }, [\n clearErrorState,\n disabled,\n emptyValue,\n error,\n hideError,\n persistErrorState,\n prioritizeContextSchema,\n required,\n setFieldState,\n startOnBlurValidatorProcess,\n startOnChangeValidatorValidation,\n startProcess,\n validateInitially,\n validateUnchanged,\n ])\n\n const removeError = useCallback(() => {\n // Mark as not changed,\n // so the field is considered \"fresh\" when the user starts typing again.\n setChanged(false)\n\n // Hide the error message.\n hideError()\n\n // Remove the local error states.\n clearErrorState()\n\n // To ensure this field will report back to the context if there are any errors.\n validateValue()\n }, [clearErrorState, hideError, setChanged, validateValue])\n\n const handleError = useCallback(() => {\n if (\n validateContinuously ||\n (validateContinuously !== false && !hasFocusRef.current)\n ) {\n // When there is a change to the value without there having been any focus callback beforehand, it is likely\n // to believe that the blur callback will not be called either, which would trigger the display of the error.\n // The error is therefore displayed immediately (unless instructed not to with validateContinuously set to false).\n revealError()\n } else {\n // When changing the value, hide errors to avoid annoying the user before they are finished filling in that value\n hideError()\n }\n }, [validateContinuously, hideError, revealError])\n\n const getEventArgs = useCallback(\n ({\n eventName,\n additionalArgs,\n overrideValue = undefined,\n }): [Value] | [Value, ProvideAdditionalEventArgs] => {\n const value = transformers.current.toEvent(\n overrideValue ?? valueRef.current,\n eventName\n )\n const args = transformers.current.provideAdditionalArgs(\n value,\n additionalArgs\n )\n const transformedValue = transformers.current.transformOut(\n value,\n args\n ) as Value\n\n if (typeof args !== 'undefined') {\n return [transformedValue, args]\n }\n\n return [transformedValue]\n },\n []\n )\n\n const setHasFocus = useCallback(\n async (\n hasFocus: boolean,\n overrideValue?: Value,\n localAdditionalArgs?: ProvideAdditionalEventArgs\n ) => {\n const args = getEventArgs({\n eventName: hasFocus ? 'onFocus' : 'onBlur',\n overrideValue,\n additionalArgs: localAdditionalArgs\n ? { ...additionalArgs, ...localAdditionalArgs }\n : additionalArgs,\n })\n\n if (hasFocus) {\n // Field was put in focus (like when clicking in a text field or opening a dropdown menu)\n hasFocusRef.current = true\n onFocus?.apply(this, args)\n setMountedFieldStateDataContext(identifier, {\n isFocused: true,\n })\n } else {\n // Field was removed from focus (like when tabbing out of a text field or closing a dropdown menu)\n hasFocusRef.current = false\n onBlur?.apply(this, args)\n setMountedFieldStateDataContext(identifier, {\n isFocused: false,\n })\n\n if (!changedRef.current && !validateUnchanged) {\n // Avoid showing errors when blurring without having changed the value, so tabbing through several\n // fields does not make errors pop up all over the place\n return\n }\n\n addToPool(\n 'onBlurValidator',\n async () => await startOnBlurValidatorProcess({ overrideValue }),\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool(() => {\n // Since the user left the field, show error (if any)\n revealError()\n forceUpdate()\n })\n }\n },\n [\n getEventArgs,\n additionalArgs,\n onFocus,\n setMountedFieldStateDataContext,\n identifier,\n onBlur,\n validateUnchanged,\n addToPool,\n runPool,\n startOnBlurValidatorProcess,\n revealError,\n ]\n )\n\n // Await an async operation to run after criteria are fulfilled\n const yieldAsyncProcess = useCallback(\n async ({\n name,\n waitFor,\n }: {\n name: 'onChangeLocal' | 'onChangeContext' | 'onSubmitContext'\n waitFor: Array<{\n processName?: AsyncProcesses\n withStates: Array<SubmitStateWithValidating>\n hasValue?: Value\n }>\n }) => {\n return new Promise<void>((resolve) => {\n const validateProcesses = () => {\n const result = waitFor.some(\n ({ processName, withStates, hasValue }) => {\n const hasMatchingValue =\n // If the value has changed during the async process, we don't want to resolve anymore\n hasValue === validatedValueRef.current\n\n const result =\n (typeof hasValue === 'undefined'\n ? false\n : !hasMatchingValue) ||\n ((processName\n ? processName === asyncProcessRef.current\n : true) &&\n withStates?.some((state) => {\n return state === fieldStateRef.current\n }))\n\n return result\n }\n )\n\n return result\n }\n\n if (validateProcesses() === true) {\n asyncBufferRef.current[name] = { resolve, validateProcesses }\n } else {\n resolve()\n setFieldState('pending')\n }\n })\n },\n [setFieldState]\n )\n\n const handleChangeEventResult = useCallback(async () => {\n const result: EventStateObjectWithSuccess =\n changeEventResultRef.current || ({} as EventStateObjectWithSuccess)\n\n if ('error' in result) {\n if (!result.error) {\n removeError()\n } else {\n persistErrorState('gracefully', 'onChangeValidator', result.error)\n revealError()\n }\n }\n if ('warning' in result) {\n warningRef.current = result.warning\n }\n if ('info' in result) {\n infoRef.current = result.info\n }\n\n if (asyncBehaviorIsEnabled) {\n await yieldAsyncProcess({\n name: 'onSubmitContext',\n waitFor: [{ withStates: ['validating'] }],\n })\n }\n\n defineAsyncProcess(undefined)\n\n if (result?.success === 'saved') {\n setFieldState('success')\n } else if (result?.error) {\n setFieldState('error')\n } else if (asyncBehaviorIsEnabled) {\n setFieldState('complete')\n }\n\n forceUpdate()\n }, [\n asyncBehaviorIsEnabled,\n defineAsyncProcess,\n removeError,\n persistErrorState,\n revealError,\n yieldAsyncProcess,\n setFieldState,\n ])\n\n const setEventResult = useCallback(\n async (result: EventReturnWithStateObjectAndSuccess) => {\n if (result instanceof Error) {\n result = { error: result }\n }\n changeEventResultRef.current = {\n ...changeEventResultRef.current,\n ...result,\n } as EventStateObjectWithSuccess\n\n await handleChangeEventResult()\n },\n [handleChangeEventResult]\n )\n\n const callOnChangeContext = useCallback(async () => {\n if (asyncBehaviorIsEnabled && !executeOnChangeRegardlessOfError) {\n await yieldAsyncProcess({\n name: 'onChangeContext',\n waitFor: [\n {\n processName: 'onChangeValidator',\n withStates: ['validating', 'error'],\n hasValue: valueRef.current,\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n hasValue: valueRef.current,\n },\n ],\n })\n }\n\n if (hasPath) {\n if (isAsync(onChangeContext)) {\n defineAsyncProcess('onChangeContext')\n\n // Skip sync errors, such as required\n if (!hasError() || executeOnChangeRegardlessOfError) {\n await setEventResult(\n (await handlePathChangeDataContext?.(\n identifier\n )) as EventReturnWithStateObjectAndSuccess\n )\n } else {\n await setEventResult(null)\n }\n } else if (onChangeContext || !asyncBehaviorIsEnabled) {\n setEventResult(\n handlePathChangeDataContext?.(\n identifier\n ) as EventReturnWithStateObjectAndSuccess\n )\n }\n }\n\n forceUpdate()\n }, [\n asyncBehaviorIsEnabled,\n executeOnChangeRegardlessOfError,\n hasPath,\n yieldAsyncProcess,\n onChangeContext,\n defineAsyncProcess,\n hasError,\n setEventResult,\n handlePathChangeDataContext,\n identifier,\n ])\n\n const updateValue = useCallback(\n async (newValue: Value) => {\n const currentValue = valueRef.current\n if (newValue === currentValue) {\n // Avoid triggering a change if the value was not actually changed. This may be caused by rendering components\n // calling onChange even if the actual value did not change.\n return\n }\n\n const transformedValue =\n transformers.current.transformValue(newValue, currentValue) ??\n (emptyValue as unknown as Value)\n const contextValue = transformers.current.transformOut(\n transformedValue,\n transformers.current.provideAdditionalArgs(\n transformedValue,\n additionalArgs\n )\n )\n\n valueRef.current = transformedValue\n\n if (hasPath || itemPath) {\n handlePathChangeUnvalidatedDataContext(\n nestedIteratePath || identifier,\n contextValue\n )\n }\n\n if (itemPath) {\n handleChangeIterateContext?.(\n makeIteratePath(itemPath, '', {\n omitSectionPath: true,\n }),\n contextValue\n )\n }\n\n addToPool(\n 'onChangeValidator',\n validateValue,\n isAsync(onChangeValidatorRef.current)\n )\n\n addToPool(\n 'onChangeContext',\n callOnChangeContext,\n isAsync(onChangeContext)\n )\n\n await runPool(() => {\n handleError()\n })\n },\n [\n emptyValue,\n additionalArgs,\n hasPath,\n itemPath,\n addToPool,\n validateValue,\n callOnChangeContext,\n onChangeContext,\n runPool,\n handlePathChangeUnvalidatedDataContext,\n nestedIteratePath,\n identifier,\n handleChangeIterateContext,\n makeIteratePath,\n handleError,\n ]\n )\n\n const setDisplayValue: ReturnAdditional<Value>['setDisplayValue'] =\n useCallback(\n (value, options) => {\n const {\n path: fieldPath = itemPath ? identifier : path,\n type = 'field',\n } = options || {}\n if (!fieldPath || !fieldDisplayValueRef?.current) {\n return // stop here\n }\n\n fieldDisplayValueRef.current[fieldPath] =\n valueRef.current === (emptyValue as unknown as Value)\n ? { type }\n : { value, type }\n },\n [identifier, emptyValue, fieldDisplayValueRef, itemPath, path]\n )\n\n const handleChange = useCallback(\n async (\n argFromInput: Value | unknown,\n localAdditionalArgs: ProvideAdditionalEventArgs = undefined\n ) => {\n const currentValue = valueRef.current\n const fromInput = transformers.current.fromInput(argFromInput)\n\n if (fromInput === currentValue) {\n // Avoid triggering a change if the value was not actually changed. This may be caused by rendering components\n // calling onChange even if the actual value did not change.\n return\n }\n\n // Must be set before validation\n setChanged(true)\n\n if (asyncBehaviorIsEnabled) {\n hideError()\n await updateValue(fromInput)\n } else {\n updateValue(fromInput)\n }\n\n if (isAsync(onChange)) {\n addToPool(\n 'onChangeLocal',\n async () => {\n const args = getEventArgs({\n eventName: 'onChange',\n additionalArgs: localAdditionalArgs\n ? { ...additionalArgs, ...localAdditionalArgs }\n : additionalArgs,\n })\n\n await yieldAsyncProcess({\n name: 'onChangeLocal',\n waitFor: [\n {\n processName: 'onChangeValidator',\n withStates: ['validating', 'error'],\n hasValue: args[0],\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n hasValue: args[0],\n },\n {\n processName: 'onChangeContext',\n withStates: ['pending', 'error'],\n hasValue: args[0],\n },\n ],\n })\n\n defineAsyncProcess('onChangeLocal')\n\n // Skip sync errors, such as required\n if (!hasError()) {\n // If the value has changed during the async process, we don't want to call the onChange anymore\n await setEventResult(await onChange?.apply(this, args))\n } else {\n await setEventResult(null)\n }\n },\n true\n )\n } else {\n const args = getEventArgs({\n eventName: 'onChange',\n additionalArgs: localAdditionalArgs\n ? { ...additionalArgs, ...localAdditionalArgs }\n : additionalArgs,\n })\n\n setEventResult(onChange?.apply(this, args))\n }\n\n await runPool()\n },\n [\n addToPool,\n additionalArgs,\n asyncBehaviorIsEnabled,\n defineAsyncProcess,\n getEventArgs,\n hasError,\n hideError,\n onChange,\n runPool,\n setChanged,\n setEventResult,\n updateValue,\n yieldAsyncProcess,\n ]\n )\n\n const handleFocus = useCallback(() => setHasFocus(true), [setHasFocus])\n const handleBlur = useCallback(() => setHasFocus(false), [setHasFocus])\n\n // Put props into the surrounding data context as early as possible\n setFieldInternalsDataContext?.(identifier, {\n id,\n props,\n })\n\n const activeIndexTmpRef = useRef(activeIndex)\n useEffect(() => {\n activeIndexTmpRef.current = activeIndex\n }, [activeIndex]) // We want to watch for step changes\n\n useMemo(() => {\n setMountedFieldStateDataContext(identifier, {\n isPreMounted: true,\n })\n\n if (typeof isVisible === 'boolean') {\n setMountedFieldStateDataContext(identifier, { isVisible })\n }\n }, [setMountedFieldStateDataContext, identifier, isVisible])\n\n useEffect(() => {\n if (prerenderFieldProps) {\n return // stop here, we don't want to set the state of the field\n }\n\n if (typeof activeIndexRef?.current === 'number') {\n setMountedFieldStateDataContext(identifier, {\n wasStepChange: false,\n })\n\n return () => {\n const wasStepChange =\n typeof activeIndex === 'number' &&\n // eslint-disable-next-line react-hooks/exhaustive-deps\n activeIndexRef.current !== activeIndexTmpRef.current\n\n setMountedFieldStateDataContext(identifier, {\n wasStepChange,\n })\n }\n }\n }, [\n activeIndex,\n activeIndexRef,\n identifier,\n prerenderFieldProps,\n setMountedFieldStateDataContext,\n ])\n\n useEffect(() => {\n if (prerenderFieldProps) {\n return // stop here, we don't want to set the state of the field\n }\n\n // Mount procedure.\n setMountedFieldStateDataContext(identifier, {\n isMounted: true,\n isPreMounted: true,\n })\n setMountedFieldSnapshot?.(identifier, { isMounted: true })\n\n // Unmount procedure.\n return () => {\n setMountedFieldStateDataContext(identifier, {\n isMounted: false,\n isPreMounted: false,\n })\n setMountedFieldSnapshot?.(identifier, { isMounted: false })\n }\n }, [\n identifier,\n prerenderFieldProps,\n setMountedFieldSnapshot,\n setMountedFieldStateDataContext,\n ])\n\n // - Warn when a field path is used multiple times\n useEffect(() => {\n if (\n !omitMultiplePathWarning &&\n process.env.NODE_ENV !== 'production' &&\n (hasPath || hasItemPath) &&\n (hasPath ? !iterateItemContext : true) &&\n existingFieldsRef?.current\n ) {\n const existingFields = existingFieldsRef.current\n if (existingFields.has(identifier)) {\n warn('Path declared multiple times:', identifier)\n } else {\n existingFields.set(identifier, true)\n return () => {\n existingFields.delete(identifier)\n }\n }\n }\n }, [\n existingFieldsRef,\n hasItemPath,\n hasPath,\n identifier,\n iterateItemContext,\n omitMultiplePathWarning,\n ])\n\n useEffect(() => {\n if (prerenderFieldProps) {\n return // stop here, we don't want to set the state of the field\n }\n\n // Unmount procedure.\n return () => {\n setFieldErrorDataContext?.(identifier, undefined)\n setFieldErrorBoundary?.(identifier, undefined)\n localErrorRef.current = undefined\n }\n }, [\n identifier,\n prerenderFieldProps,\n setFieldErrorBoundary,\n setFieldErrorDataContext,\n ])\n\n useEffect(() => {\n if (prerenderFieldProps) {\n return // stop here, we don't want to set the state of the field\n }\n\n // Unmount procedure.\n return () => {\n // Have this in a separate useEffect to avoid calling unmount when a step changes\n setFieldErrorWizard?.(wizardIndex, identifier, undefined)\n }\n }, [identifier, prerenderFieldProps, setFieldErrorWizard, wizardIndex])\n\n useEffect(() => {\n validateValue()\n }, [validateValue])\n\n useUpdateEffect(() => {\n schemaValidatorRef.current = schema\n ? dataContext.ajvInstance?.compile(schema)\n : undefined\n validateValue()\n }, [schema])\n\n // Use \"useLayoutEffect\" and \"externalValueDidChangeRef\"\n // to cooperate with the the data context \"updateDataValueDataContext\" routine further down,\n // which also uses useLayoutEffect.\n const externalValueDidChangeRef = useRef(false)\n useLayoutEffect(() => {\n if (valueRef.current !== externalValue) {\n valueRef.current = externalValue\n externalValueDidChangeRef.current = true\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [externalValueDeps, hasItemPath])\n\n useUpdateEffect(() => {\n // Error or removed error for this field from the surrounding data context (by path)\n if (externalValueDidChangeRef.current) {\n externalValueDidChangeRef.current = false\n\n // Hide error when the external value has changed, but is the same as the empty value.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n if (!validateContinuously && valueRef.current === emptyValue) {\n hideError()\n }\n\n validateValue()\n forceUpdate()\n }\n }, [externalValueDeps, emptyValue, validateContinuously]) // Keep \"externalValue\" in the dependency list, so it will be updated when it changes\n\n useEffect(() => {\n // Check against the local error state,\n // so we prioritize the local error state over the context error state\n if (!localErrorInitiatorRef.current) {\n const error = contextErrorRef.current\n if (error) {\n persistErrorState('weak', 'dataContextError', error)\n if (validateInitially) {\n handleError()\n }\n } else {\n clearErrorState()\n }\n }\n }, [\n dataContextErrors, // Is needed in order to trigger a re-render when the error state changes.\n clearErrorState,\n handleError,\n persistErrorState,\n prepareError,\n validateInitially,\n ])\n\n const tmpTransValueRef = useRef<Record<Identifier, unknown>>({\n // Use an unique (per field) starting value (id) for the itemPath, so we later can check if the valueToStore is the same as the current value.\n itemPath: id,\n })\n const setContextData = useCallback(\n ({ preventUpdate = undefined } = {}) => {\n if (!hasPath && !hasItemPath) {\n return // stop here\n }\n\n let valueToStore: Value | unknown = valueProp\n\n const data = prerenderFieldProps\n ? dataContext.data\n : dataContext.internalDataRef?.current\n\n const storePath = nestedIteratePath\n ? makeIteratePath(itemPath, nestedIteratePath)\n : identifier\n\n // First, look for existing data in the context\n const hasValue = pointer.has(data, storePath) || storePath === '/'\n const existingValue =\n storePath === '/'\n ? data\n : hasValue\n ? pointer.get(data, storePath)\n : undefined\n\n // If no data where found in the dataContext, look for shared data\n if (\n dataContext.id &&\n !hasValue &&\n typeof existingValue === 'undefined' &&\n typeof valueToStore === 'undefined'\n ) {\n const sharedState = createSharedState(dataContext.id)\n const hasValue = pointer.has(sharedState.data, storePath)\n if (hasValue) {\n const sharedValue = pointer.get(sharedState.data, storePath)\n if (sharedValue) {\n valueToStore = sharedValue as Value\n }\n }\n }\n\n const hasDefaultValue =\n typeof defaultValueRef.current !== 'undefined' &&\n typeof valueToStore === 'undefined'\n\n if (hasDefaultValue) {\n // Set the default value if it's not set yet.\n // This takes precedence over the valueToStore.\n valueToStore = defaultValueRef.current\n defaultValueRef.current = undefined\n } else if (!hasValue && typeof valueToStore === 'undefined') {\n valueToStore = emptyValue\n }\n\n let skipEqualCheck = false\n\n if (hasItemPath) {\n if (existingValue === valueToStore) {\n if (hasValue) {\n return // stop here, don't store the same value again\n } else {\n // Because the valueToStore is not a part of the data context,\n // we need to check if the valueToStore is the same as the current value,\n // to avoid infinite rerenders.\n if (tmpTransValueRef.current['itemPath'] === valueToStore) {\n return // stop here to avoid infinite rerenders\n }\n }\n }\n\n // We need to store the valueToStore in a ref, so we can check if it is the same as the current value later.\n tmpTransValueRef.current['itemPath'] = valueToStore\n\n if (iterateArrayValue === clearedArray) {\n return // stop here, because the array was cleared by handleRemove in the Iterate.Array component\n }\n\n if (\n typeof valueToStore === 'undefined' &&\n typeof existingValue !== 'undefined'\n ) {\n // On the rerender (after defaultValue was set) and the data context was given, but as \"undefined\",\n // then we want to use the current value (the defaultValue from the previous render),\n // because else the comparison \"valueRef.current !== existingValue\" is true and we will set undefined as the new data context value.\n valueToStore = existingValue\n }\n\n if (itemPath === '/') {\n // The push container uses an object as the default value for the array.\n // But when a root slash is used, we want to make sure the field don't gets the object.\n if (existingValue === clearedData) {\n valueRef.current = undefined\n }\n\n if (hasDefaultValue && Array.isArray(existingValue)) {\n // Ensures support to have a field with a defaultValue and a itemPath of \"/\"\n // This way, we ensure the defaultValue is actually set in the data context.\n skipEqualCheck = true\n }\n }\n }\n\n // Used by e.g. Iterate.Array\n if (updateContextDataInSync) {\n // When an array is given (iterate), we don't want to overwrite the existing array\n if (hasDefaultValue && hasValue) {\n return // stop here, we don't want to overwrite the existing array\n }\n\n // React.StrictMode will come with \"undefined\" on the second render,\n // because \"defaultValueRef.current\" was removed.\n // But because we run \"useMemo\" on the first render when updateContextDataInSync is true,\n // we have still a valid value/array.\n if (!Array.isArray(valueToStore)) {\n return // stop here, never use a non-array value when in \"updateContextDataInSync\"\n }\n\n if (Array.isArray(existingValue)) {\n if (valueToStore.length !== existingValue.length) {\n skipEqualCheck = true // in order to update the items\n }\n\n // Keep Iterate.Array in sync with the data context\n valueRef.current = existingValue as Value\n }\n }\n\n // When an Array or Object is used as the value,\n // and the field uses transformIn, the instance may have been changed.\n // The \"valueToStore\" can be undefined,\n // we then need to ensure we don't overwrite the existing data context value with \"undefined\".\n if (\n typeof valueToStore === 'undefined' &&\n typeof existingValue !== 'undefined'\n ) {\n valueToStore = existingValue\n }\n\n if (\n !skipEqualCheck &&\n hasValue &&\n (valueToStore === existingValue ||\n // Prevents an infinite loop by skipping the update if the value hasn't changed\n valueRef.current === existingValue)\n ) {\n return // stop here, we don't want to set same value twice\n }\n\n if (\n storePath in tmpTransValueRef.current &&\n tmpTransValueRef.current[storePath] === valueToStore\n ) {\n return // stop here, avoid infinite loop\n }\n\n const valueIn = transformers.current.transformIn(valueToStore)\n const transformedValue = transformers.current.transformOut(\n valueIn,\n transformers.current.provideAdditionalArgs(valueIn as Value)\n )\n if (transformedValue !== valueToStore) {\n // When the value got transformed, we want to update the internal value, and avoid an infinite loop\n tmpTransValueRef.current[storePath] = valueToStore\n valueToStore = transformedValue\n }\n\n // When an itemPath is given, we don't want to rerender the context on every iteration because of performance reasons.\n // We know when the last item is reached, so we can prevent rerenders during the iteration.\n if (\n hasItemPath &&\n !nestedIteratePath && // Ensure we still rerender when absolutePath is set\n iterateIndex < iterateArrayValue?.length - 1\n ) {\n preventUpdate = true\n }\n\n // Update the data context when a pointer not exists,\n // but was given initially.\n updateDataValueDataContext?.(storePath, valueToStore, {\n preventUpdate,\n })\n\n if (!preventUpdate) {\n validateDataDataContext?.()\n }\n },\n [\n dataContext.data,\n dataContext.id,\n dataContext.internalDataRef,\n emptyValue,\n hasItemPath,\n hasPath,\n identifier,\n itemPath,\n iterateArrayValue,\n iterateIndex,\n makeIteratePath,\n nestedIteratePath,\n updateContextDataInSync,\n updateDataValueDataContext,\n validateDataDataContext,\n valueProp,\n prerenderFieldProps,\n ]\n )\n\n const isEmptyData = useCallback(\n () => {\n return (\n dataContext.isEmptyDataRef?.current ||\n dataContext.internalDataRef?.current ===\n (dataContext.props?.emptyData ?? clearedData)\n )\n },\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n dataContext.internalDataRef,\n dataContext.props?.emptyData,\n externalValueDeps, // ensure to include \"externalValue\" in order to properly remove errors\n ]\n )\n\n // Use \"useLayoutEffect\" to be in sync with the data context \"updateDataValueDataContext\".\n useLayoutEffect(() => {\n if (isEmptyData()) {\n defaultValueRef.current = defaultValue\n setChanged(false)\n hideError()\n clearErrorState()\n }\n }, [clearErrorState, defaultValue, hideError, isEmptyData, setChanged])\n\n useMemo(() => {\n if (updateContextDataInSync && !isEmptyData()) {\n setContextData({ preventUpdate: true })\n }\n }, [isEmptyData, updateContextDataInSync, setContextData])\n\n // Use \"useLayoutEffect\" to avoid flickering when value/defaultValue gets set, and other fields dependent on it.\n // Form.Visibility is an example of a logic, where a field value/defaultValue can be used to set the set state of a path,\n // where again other fields depend on it.\n useLayoutEffect(() => {\n if (!updateContextDataInSync && !isEmptyData()) {\n setContextData()\n }\n\n // In order to render Iterate.Array with \"countPath\" immediately\n if (forceUpdateWhenContextDataIsSet) {\n forceUpdate()\n }\n }, [\n forceUpdateWhenContextDataIsSet,\n isEmptyData,\n setContextData,\n updateContextDataInSync,\n ])\n\n useEffect(() => {\n if (isEmptyData()) {\n setContextData()\n validateValue()\n }\n }, [isEmptyData, setContextData, validateValue])\n\n useEffect(() => {\n if (showAllErrors || showBoundaryErrors) {\n // In case of async validation, we don't want to show existing errors before the validation has been completed\n if (fieldStateRef.current !== 'validating') {\n // If showError on a surrounding data context was changed and set to true, it is because the user clicked next, submit or\n // something else that should lead to showing the user all errors.\n revealError()\n }\n } else if (showBoundaryErrors === false) {\n hideError()\n }\n }, [hideError, revealError, showAllErrors, showBoundaryErrors])\n\n useEffect(() => {\n if (\n dataContext.formState === 'pending' &&\n (onChangeValidatorRef.current || onBlurValidatorRef.current)\n ) {\n hideError()\n forceUpdate()\n }\n }, [dataContext.formState, hideError])\n\n const onSubmitHandler = useCallback(async () => {\n if (hasError()) {\n return // stop here\n }\n\n addToPool(\n 'onChangeValidator',\n startOnChangeValidatorValidation,\n isAsync(onChangeValidatorRef.current)\n )\n\n addToPool(\n 'onBlurValidator',\n startOnBlurValidatorProcess,\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool()\n }, [\n addToPool,\n startOnBlurValidatorProcess,\n hasError,\n runPool,\n startOnChangeValidatorValidation,\n ])\n\n // Validate/call validator functions during submit of the form\n useEffect(() => {\n setFieldEventListener?.(identifier, 'onSubmitCall', onSubmitHandler)\n }, [identifier, onSubmitHandler, setFieldEventListener])\n\n // Set the error in the field block context if this field is inside a field block\n useEffect(() => {\n if (inFieldBlock) {\n setBlockRecord?.({\n identifier,\n type: 'error',\n content: error,\n showInitially: true,\n show: true,\n })\n setBlockRecord?.({\n identifier,\n type: 'warning',\n content: warning,\n showInitially: true,\n show: true,\n })\n setBlockRecord?.({\n identifier,\n type: 'info',\n content: info,\n showInitially: true,\n show: true,\n })\n\n return () => {\n // Unmount procedure\n if (mountedFieldsRefFieldBlock) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n mountedFieldsRefFieldBlock.current.set(identifier, true)\n }\n }\n }\n }, [\n error,\n identifier,\n inFieldBlock,\n info,\n mountedFieldsRefFieldBlock,\n setBlockRecord,\n warning,\n ])\n\n const infoRef = useRef<UseFieldProps['info']>(info)\n const warningRef = useRef<UseFieldProps['warning']>(warning)\n useMemo(() => {\n infoRef.current = info\n }, [info])\n useMemo(() => {\n warningRef.current = warning\n }, [warning])\n\n const connections = useMemo(() => {\n return {\n setEventResult,\n emptyValue,\n }\n }, [emptyValue, setEventResult])\n setFieldConnectionDataContext?.(identifier, connections)\n\n // - Handle htmlAttributes\n const htmlAttributes = useMemo(() => {\n return Object.keys(props).reduce<AriaAttributes>(\n (acc, cur) => {\n if (cur.startsWith('aria-') || cur.startsWith('data-')) {\n acc[cur] = props[cur]\n }\n return acc\n },\n { ...props.htmlAttributes }\n )\n }, [props])\n\n if (bufferedError) {\n htmlAttributes['aria-invalid'] = bufferedError ? 'true' : 'false'\n }\n if (required) {\n htmlAttributes['aria-required'] = 'true'\n }\n if (inFieldBlock) {\n // Mount the field in the field block context\n if (mountedFieldsRefFieldBlock) {\n mountedFieldsRefFieldBlock.current.set(identifier, true)\n }\n\n // Check if there are any state IDs to be added to the aria-describedby attribute\n const stateIds = fieldBlockContext.fieldStateIdsRef?.current\n\n if (stateIds) {\n htmlAttributes['aria-describedby'] = combineDescribedBy(\n htmlAttributes,\n [\n bufferedError && stateIds.error,\n warning && stateIds.warning,\n info && stateIds.info,\n ].filter(Boolean)\n )\n }\n } else {\n const ids = [\n (bufferedError || error) && `${id}-form-status--error`,\n warning && `${id}-form-status--warning`,\n info && `${id}-form-status--info`,\n ].filter(Boolean)\n\n if (ids.length) {\n htmlAttributes['aria-describedby'] = combineDescribedBy(\n htmlAttributes,\n ids\n )\n }\n }\n\n const help = props.help\n if (help?.title || help?.content) {\n htmlAttributes['aria-describedby'] = combineDescribedBy(\n htmlAttributes,\n `${id}-help`\n )\n }\n\n const fieldBlockProps = {\n /** Documented APIs */\n info: !inFieldBlock ? infoRef.current : undefined,\n warning: !inFieldBlock ? warningRef.current : undefined,\n error: !inFieldBlock ? bufferedError : undefined,\n required,\n label: props.label,\n labelDescription: props.labelDescription,\n labelDescriptionInline: props.labelDescriptionInline,\n labelSuffix: props.labelSuffix,\n labelSize: props.labelSize,\n labelSrOnly: props.labelSrOnly,\n layout: props.layout,\n layoutOptions: props.layoutOptions,\n help: props.help,\n\n /** HTML Attributes */\n disabled:\n onBlurValidator &&\n asyncProcessRef.current === 'onBlurValidator' &&\n fieldStateRef.current === 'validating'\n ? true\n : disabled,\n\n /** Internal */\n fieldState: resolveValidatingState(fieldStateRef.current),\n labelHeight:\n typeof props['size'] === 'string' ? props['size'] : undefined, // component/field size\n }\n\n const sharedData = useSharedState('field-block-props-' + id)\n sharedData.set(fieldBlockProps)\n\n useEffect(() => {\n isInternalRerenderRef.current = undefined\n })\n\n return {\n ...props,\n ...fieldBlockProps,\n\n /** HTML Attributes */\n name: props.name || props.path?.replace('/', '') || id,\n autoComplete:\n props.autoComplete ??\n (typeof dataContext.autoComplete === 'boolean'\n ? dataContext.autoComplete\n ? 'on'\n : 'off'\n : undefined),\n\n /** Documented APIs */\n id,\n value: transformers.current.toInput(valueRef.current),\n hasError: errorIsVisible,\n isChanged: Boolean(changedRef.current),\n props,\n htmlAttributes,\n setHasFocus,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n setChanged,\n setDisplayValue,\n validateValue,\n revealError,\n forceUpdate,\n\n /** Internal */\n additionalArgs,\n dataContext,\n }\n}\n\nexport interface ReturnAdditional<Value> {\n /** Documented APIs */\n value: Value\n isChanged: boolean\n htmlAttributes: AriaAttributes | DataAttributes\n setHasFocus: (\n hasFocus: boolean,\n overrideValue?: Value,\n additionalArgs?: ProvideAdditionalEventArgs\n ) => void\n handleFocus: () => void\n handleBlur: () => void\n handleChange: (\n value: Value | unknown,\n additionalArgs?: ProvideAdditionalEventArgs\n ) => void\n updateValue: (value: Value) => void\n setChanged: (state: boolean) => void\n setDisplayValue: (\n value: React.ReactNode,\n { path, type }?: { path?: Identifier; type?: 'field' }\n ) => void\n forceUpdate: () => void\n hasError?: boolean\n\n /** Internal */\n dataContext: ContextState\n fieldState: SubmitState\n additionalArgs: ReceiveAdditionalEventArgs<Value>\n}\n\nfunction resolveValidatingState(state: SubmitStateWithValidating) {\n return state === 'validating' ? 'pending' : state\n}\n\nexport function checkForError(\n potentialErrors: Array<\n | FieldPropsGeneric['error']\n | FieldPropsGeneric['warning']\n | FieldPropsGeneric['info']\n >\n) {\n return potentialErrors.some((error) => {\n return error instanceof Error || error instanceof FormError\n })\n}\n\nexport const clearedArray = []\n"],"mappings":"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","ignoreList":[]}