@dnb/eufemia 10.54.0 → 10.55.0

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 (1121) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/cjs/components/ListFormat.d.ts +12 -0
  3. package/cjs/components/ListFormat.js +24 -0
  4. package/cjs/components/ListFormat.js.map +1 -0
  5. package/cjs/components/anchor/Anchor.js +1 -1
  6. package/cjs/components/anchor/Anchor.js.map +1 -1
  7. package/cjs/components/autocomplete/Autocomplete.js +3 -3
  8. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  9. package/cjs/components/card/Card.js +14 -5
  10. package/cjs/components/card/Card.js.map +1 -1
  11. package/cjs/components/card/CardContext.d.ts +6 -0
  12. package/cjs/components/card/CardContext.js +12 -0
  13. package/cjs/components/card/CardContext.js.map +1 -0
  14. package/cjs/components/card/CardDocs.js +2 -2
  15. package/cjs/components/card/CardDocs.js.map +1 -1
  16. package/cjs/components/card/style/dnb-card.css +3 -0
  17. package/cjs/components/card/style/dnb-card.min.css +1 -1
  18. package/cjs/components/card/style/dnb-card.scss +5 -0
  19. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.css +3 -0
  20. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -1
  21. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.scss +5 -0
  22. package/cjs/components/card/style/themes/dnb-card-theme-ui.css +5 -0
  23. package/cjs/components/card/style/themes/dnb-card-theme-ui.min.css +1 -1
  24. package/cjs/components/card/style/themes/dnb-card-theme-ui.scss +7 -0
  25. package/cjs/components/country-flag/CountryFlagDocs.js +5 -0
  26. package/cjs/components/country-flag/CountryFlagDocs.js.map +1 -1
  27. package/cjs/components/date-picker/DatePicker.d.ts +261 -291
  28. package/cjs/components/date-picker/DatePicker.js +346 -482
  29. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  30. package/cjs/components/date-picker/DatePickerAddon.d.ts +21 -20
  31. package/cjs/components/date-picker/DatePickerAddon.js +66 -84
  32. package/cjs/components/date-picker/DatePickerAddon.js.map +1 -1
  33. package/cjs/components/date-picker/DatePickerCalc.d.ts +19 -21
  34. package/cjs/components/date-picker/DatePickerCalc.js +44 -44
  35. package/cjs/components/date-picker/DatePickerCalc.js.map +1 -1
  36. package/cjs/components/date-picker/DatePickerCalendar.d.ts +73 -39
  37. package/cjs/components/date-picker/DatePickerCalendar.js +391 -535
  38. package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
  39. package/cjs/components/date-picker/DatePickerContext.d.ts +26 -2
  40. package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
  41. package/cjs/components/date-picker/DatePickerFooter.d.ts +20 -18
  42. package/cjs/components/date-picker/DatePickerFooter.js +92 -117
  43. package/cjs/components/date-picker/DatePickerFooter.js.map +1 -1
  44. package/cjs/components/date-picker/DatePickerInput.d.ts +56 -64
  45. package/cjs/components/date-picker/DatePickerInput.js +515 -533
  46. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  47. package/cjs/components/date-picker/DatePickerOld.d.ts +334 -0
  48. package/cjs/components/date-picker/DatePickerOld.js +538 -0
  49. package/cjs/components/date-picker/DatePickerOld.js.map +1 -0
  50. package/cjs/components/date-picker/DatePickerProvider.d.ts +40 -17
  51. package/cjs/components/date-picker/DatePickerProvider.js +125 -236
  52. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  53. package/cjs/components/date-picker/DatePickerRange.d.ts +22 -20
  54. package/cjs/components/date-picker/DatePickerRange.js +61 -144
  55. package/cjs/components/date-picker/DatePickerRange.js.map +1 -1
  56. package/cjs/components/date-picker/hooks/useDates.d.ts +45 -0
  57. package/cjs/components/date-picker/hooks/useDates.js +182 -0
  58. package/cjs/components/date-picker/hooks/useDates.js.map +1 -0
  59. package/cjs/components/date-picker/hooks/useLastEventCallCache.d.ts +9 -0
  60. package/cjs/components/date-picker/hooks/useLastEventCallCache.js +16 -0
  61. package/cjs/components/date-picker/hooks/useLastEventCallCache.js.map +1 -0
  62. package/cjs/components/date-picker/hooks/useViews.d.ts +20 -0
  63. package/cjs/components/date-picker/hooks/useViews.js +84 -0
  64. package/cjs/components/date-picker/hooks/useViews.js.map +1 -0
  65. package/cjs/components/date-picker/style/dnb-date-picker.css +12 -1
  66. package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
  67. package/cjs/components/dropdown/Dropdown.js +3 -3
  68. package/cjs/components/dropdown/Dropdown.js.map +1 -1
  69. package/cjs/components/flex/StackDocs.d.ts +2 -0
  70. package/cjs/components/flex/StackDocs.js +30 -0
  71. package/cjs/components/flex/StackDocs.js.map +1 -0
  72. package/cjs/components/form-row/FormRow.js +3 -3
  73. package/cjs/components/form-row/FormRow.js.map +1 -1
  74. package/cjs/components/form-row/style/dnb-form-row.css +12 -1
  75. package/cjs/components/form-row/style/dnb-form-row.min.css +1 -1
  76. package/cjs/components/form-status/FormStatus.d.ts +4 -1
  77. package/cjs/components/icon/style/dnb-icon.scss +1 -1
  78. package/cjs/components/index.d.ts +2 -1
  79. package/cjs/components/index.js +7 -0
  80. package/cjs/components/index.js.map +1 -1
  81. package/cjs/components/input-masked/TextMask.d.ts +2 -1
  82. package/cjs/components/input-masked/style/dnb-input-masked.css +12 -1
  83. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  84. package/cjs/components/lib.d.ts +3 -1
  85. package/cjs/components/lib.js +8 -0
  86. package/cjs/components/lib.js.map +1 -1
  87. package/cjs/components/list-format/ListFormat.d.ts +40 -0
  88. package/cjs/components/list-format/ListFormat.js +122 -0
  89. package/cjs/components/list-format/ListFormat.js.map +1 -0
  90. package/cjs/components/list-format/ListFormatDocs.d.ts +2 -0
  91. package/cjs/components/list-format/ListFormatDocs.js +35 -0
  92. package/cjs/components/list-format/ListFormatDocs.js.map +1 -0
  93. package/cjs/components/list-format/index.d.ts +7 -0
  94. package/cjs/components/list-format/index.js +24 -0
  95. package/cjs/components/list-format/index.js.map +1 -0
  96. package/cjs/components/number-format/NumberUtils.js +1 -1
  97. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  98. package/cjs/components/radio/style/dnb-radio.css +12 -1
  99. package/cjs/components/radio/style/dnb-radio.min.css +1 -1
  100. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js +1 -1
  101. package/cjs/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  102. package/cjs/components/textarea/Textarea.js +3 -3
  103. package/cjs/components/textarea/Textarea.js.map +1 -1
  104. package/cjs/components/toggle-button/ToggleButton.js +3 -3
  105. package/cjs/components/toggle-button/ToggleButton.js.map +1 -1
  106. package/cjs/components/toggle-button/style/dnb-toggle-button.css +12 -1
  107. package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  108. package/cjs/components/upload/Upload.js +2 -1
  109. package/cjs/components/upload/Upload.js.map +1 -1
  110. package/cjs/components/upload/UploadContext.d.ts +1 -0
  111. package/cjs/components/upload/UploadContext.js +2 -1
  112. package/cjs/components/upload/UploadContext.js.map +1 -1
  113. package/cjs/components/upload/UploadDocs.js +5 -0
  114. package/cjs/components/upload/UploadDocs.js.map +1 -1
  115. package/cjs/components/upload/UploadDropzone.js.map +1 -1
  116. package/cjs/components/upload/UploadFileList.js +3 -1
  117. package/cjs/components/upload/UploadFileList.js.map +1 -1
  118. package/cjs/components/upload/UploadFileListCell.d.ts +22 -3
  119. package/cjs/components/upload/UploadFileListCell.js +17 -8
  120. package/cjs/components/upload/UploadFileListCell.js.map +1 -1
  121. package/cjs/components/upload/UploadInfo.js +7 -4
  122. package/cjs/components/upload/UploadInfo.js.map +1 -1
  123. package/cjs/components/upload/UploadVerify.d.ts +2 -2
  124. package/cjs/components/upload/UploadVerify.js.map +1 -1
  125. package/cjs/components/upload/style/dnb-upload.css +1 -1
  126. package/cjs/components/upload/style/dnb-upload.min.css +1 -1
  127. package/cjs/components/upload/style/dnb-upload.scss +1 -1
  128. package/cjs/components/upload/types.d.ts +11 -5
  129. package/cjs/components/upload/types.js.map +1 -1
  130. package/cjs/components/upload/useUpload.d.ts +6 -6
  131. package/cjs/components/upload/useUpload.js.map +1 -1
  132. package/cjs/elements/lists/style/lists-mixins.scss +1 -0
  133. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +1 -1
  134. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  135. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +11 -14
  136. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  137. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +3 -4
  138. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  139. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +4 -4
  140. package/cjs/extensions/forms/Field/Boolean/Boolean.d.ts +3 -2
  141. package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  142. package/cjs/extensions/forms/Field/Composition/CompositionDocs.js +1 -1
  143. package/cjs/extensions/forms/Field/Composition/CompositionDocs.js.map +1 -1
  144. package/cjs/extensions/forms/Field/Date/Date.js +4 -12
  145. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  146. package/cjs/extensions/forms/Field/Expiry/Expiry.js +6 -14
  147. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  148. package/cjs/extensions/forms/Field/FieldDocs.d.ts +2 -2
  149. package/cjs/extensions/forms/Field/FieldDocs.js +10 -10
  150. package/cjs/extensions/forms/Field/FieldDocs.js.map +1 -1
  151. package/cjs/extensions/forms/Field/Number/Number.d.ts +2 -1
  152. package/cjs/extensions/forms/Field/Number/Number.js +7 -19
  153. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  154. package/cjs/extensions/forms/Field/Number/style/dnb-number.css +0 -3
  155. package/cjs/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  156. package/cjs/extensions/forms/Field/Number/style/dnb-number.scss +0 -2
  157. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -2
  158. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +9 -10
  159. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  160. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +1 -1
  161. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +3 -3
  162. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  163. package/cjs/extensions/forms/Field/Provider/FieldProviderDocs.js +6 -3
  164. package/cjs/extensions/forms/Field/Provider/FieldProviderDocs.js.map +1 -1
  165. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +10 -3
  166. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -1
  167. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +14 -12
  168. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  169. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +2 -1
  170. package/cjs/extensions/forms/Field/Selection/Selection.js +5 -13
  171. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  172. package/cjs/extensions/forms/Field/Slider/Slider.d.ts +2 -1
  173. package/cjs/extensions/forms/Field/Slider/Slider.js +0 -13
  174. package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -1
  175. package/cjs/extensions/forms/Field/String/String.d.ts +2 -1
  176. package/cjs/extensions/forms/Field/String/String.js +7 -20
  177. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  178. package/cjs/extensions/forms/Field/Toggle/Toggle.d.ts +1 -1
  179. package/cjs/extensions/forms/Field/Toggle/Toggle.js +6 -18
  180. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  181. package/cjs/extensions/forms/Field/Upload/Upload.d.ts +4 -3
  182. package/cjs/extensions/forms/Field/Upload/Upload.js +2 -12
  183. package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
  184. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +45 -6
  185. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +39 -20
  186. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  187. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -0
  188. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  189. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +3 -2
  190. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +20 -5
  191. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  192. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +34 -11
  193. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  194. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +56 -13
  195. package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.css +7 -0
  196. package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.min.css +1 -0
  197. package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.scss +10 -0
  198. package/cjs/extensions/forms/Form/Section/EditContainer/CancelButton.d.ts +1 -0
  199. package/cjs/extensions/forms/Form/Section/EditContainer/{EditToolbarTools.js → CancelButton.js} +15 -41
  200. package/cjs/extensions/forms/Form/Section/EditContainer/CancelButton.js.map +1 -0
  201. package/cjs/extensions/forms/Form/Section/EditContainer/DoneButton.d.ts +1 -0
  202. package/cjs/extensions/forms/Form/Section/EditContainer/DoneButton.js +52 -0
  203. package/cjs/extensions/forms/Form/Section/EditContainer/DoneButton.js.map +1 -0
  204. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
  205. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js +11 -4
  206. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  207. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +1 -1
  208. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
  209. package/cjs/extensions/forms/Form/Section/Section.d.ts +4 -2
  210. package/cjs/extensions/forms/Form/Section/Section.js +2 -0
  211. package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
  212. package/cjs/extensions/forms/Form/Section/Toolbar/Toolbar.d.ts +7 -0
  213. package/cjs/extensions/forms/Form/Section/Toolbar/Toolbar.js +68 -0
  214. package/cjs/extensions/forms/Form/Section/Toolbar/Toolbar.js.map +1 -0
  215. package/cjs/extensions/forms/Form/Section/Toolbar/ToolbarContext.d.ts +9 -0
  216. package/cjs/extensions/forms/Form/Section/Toolbar/ToolbarContext.js +12 -0
  217. package/cjs/extensions/forms/Form/Section/Toolbar/ToolbarContext.js.map +1 -0
  218. package/cjs/extensions/forms/Form/Section/Toolbar/ToolbarDocs.d.ts +3 -0
  219. package/cjs/extensions/forms/Form/Section/Toolbar/ToolbarDocs.js +11 -0
  220. package/cjs/extensions/forms/Form/Section/Toolbar/ToolbarDocs.js.map +1 -0
  221. package/cjs/extensions/forms/Form/Section/Toolbar/index.d.ts +2 -0
  222. package/cjs/extensions/forms/Form/Section/Toolbar/index.js +27 -0
  223. package/cjs/extensions/forms/Form/Section/Toolbar/index.js.map +1 -0
  224. package/cjs/extensions/forms/Form/Section/ViewContainer/EditButton.d.ts +1 -0
  225. package/cjs/extensions/forms/Form/Section/ViewContainer/{ViewToolbarTools.js → EditButton.js} +12 -13
  226. package/cjs/extensions/forms/Form/Section/ViewContainer/EditButton.js.map +1 -0
  227. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
  228. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +9 -4
  229. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
  230. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +1 -1
  231. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
  232. package/cjs/extensions/forms/Form/Section/containers/SectionContainer.js +3 -2
  233. package/cjs/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
  234. package/cjs/extensions/forms/Form/Section/style/dnb-form-section.css +6 -13
  235. package/cjs/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
  236. package/cjs/extensions/forms/Form/Section/style/dnb-form-section.scss +11 -24
  237. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js +5 -5
  238. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  239. package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js +3 -2
  240. package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  241. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.d.ts +1 -1
  242. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js +2 -2
  243. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  244. package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +1 -1
  245. package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  246. package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.d.ts +1 -1
  247. package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js +2 -2
  248. package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  249. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +1 -1
  250. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  251. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +2 -25
  252. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js +16 -49
  253. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
  254. package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +7 -17
  255. package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -1
  256. package/cjs/extensions/forms/Value/Composition/CompositionDocs.js +3 -1
  257. package/cjs/extensions/forms/Value/Composition/CompositionDocs.js.map +1 -1
  258. package/cjs/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -1
  259. package/cjs/extensions/forms/Value/SummaryList/SummaryListDocs.js +5 -5
  260. package/cjs/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -1
  261. package/cjs/extensions/forms/Value/Upload/Upload.d.ts +11 -0
  262. package/cjs/extensions/forms/Value/Upload/Upload.js +99 -0
  263. package/cjs/extensions/forms/Value/Upload/Upload.js.map +1 -0
  264. package/cjs/extensions/forms/Value/Upload/UploadDocs.d.ts +2 -0
  265. package/cjs/extensions/forms/Value/Upload/UploadDocs.js +26 -0
  266. package/cjs/extensions/forms/Value/Upload/UploadDocs.js.map +1 -0
  267. package/cjs/extensions/forms/Value/Upload/index.d.ts +2 -0
  268. package/cjs/extensions/forms/Value/Upload/index.js +27 -0
  269. package/cjs/extensions/forms/Value/Upload/index.js.map +1 -0
  270. package/cjs/extensions/forms/Value/index.d.ts +1 -0
  271. package/cjs/extensions/forms/Value/index.js +7 -0
  272. package/cjs/extensions/forms/Value/index.js.map +1 -1
  273. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +8 -3
  274. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  275. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +0 -7
  276. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  277. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +0 -10
  278. package/cjs/extensions/forms/Wizard/Step/StepDocs.js +1 -1
  279. package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  280. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +2 -0
  281. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  282. package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.d.ts +3 -0
  283. package/cjs/extensions/forms/hooks/{DataValueDocs.js → DataValueWritePropsDocs.js} +6 -6
  284. package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -0
  285. package/cjs/extensions/forms/hooks/useDataValue.js +6 -1
  286. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  287. package/cjs/extensions/forms/hooks/useFieldProps.js +8 -3
  288. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  289. package/cjs/extensions/forms/hooks/useValueProps.js +1 -6
  290. package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
  291. package/cjs/extensions/forms/style/dnb-forms.css +45 -38
  292. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  293. package/cjs/extensions/forms/types.d.ts +6 -28
  294. package/cjs/extensions/forms/types.js.map +1 -1
  295. package/cjs/extensions/forms/utils/TestElement/style/dnb-test-element.css +2 -0
  296. package/cjs/extensions/forms/utils/TestElement/style/dnb-test-element.min.css +1 -1
  297. package/cjs/extensions/forms/utils/TestElement/style/dnb-test-element.scss +2 -0
  298. package/cjs/index.d.ts +2 -1
  299. package/cjs/index.js +7 -0
  300. package/cjs/index.js.map +1 -1
  301. package/cjs/shared/Context.d.ts +4 -0
  302. package/cjs/shared/Context.js.map +1 -1
  303. package/cjs/shared/Eufemia.d.ts +1 -1
  304. package/cjs/shared/Eufemia.js +2 -2
  305. package/cjs/shared/Eufemia.js.map +1 -1
  306. package/cjs/shared/component-helper.d.ts +1 -1
  307. package/cjs/shared/component-helper.js.map +1 -1
  308. package/cjs/style/core/reset.scss +0 -8
  309. package/cjs/style/core/scopes.scss +1 -1
  310. package/cjs/style/core/utilities.scss +12 -16
  311. package/cjs/style/dnb-ui-basis.css +1 -7
  312. package/cjs/style/dnb-ui-basis.min.css +1 -1
  313. package/cjs/style/dnb-ui-body.css +1 -7
  314. package/cjs/style/dnb-ui-body.min.css +1 -1
  315. package/cjs/style/dnb-ui-components.css +109 -43
  316. package/cjs/style/dnb-ui-components.min.css +3 -3
  317. package/cjs/style/dnb-ui-core.css +1 -8
  318. package/cjs/style/dnb-ui-core.min.css +1 -1
  319. package/cjs/style/dnb-ui-elements.css +1 -0
  320. package/cjs/style/dnb-ui-elements.min.css +1 -1
  321. package/cjs/style/dnb-ui-extensions.css +45 -38
  322. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  323. package/cjs/style/dnb-ui-forms.css +45 -38
  324. package/cjs/style/dnb-ui-forms.min.css +1 -1
  325. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -0
  326. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  327. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +159 -80
  328. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  329. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -0
  330. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  331. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +45 -38
  332. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  333. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +45 -38
  334. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  335. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -0
  336. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  337. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +164 -83
  338. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +5 -5
  339. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -0
  340. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  341. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +50 -41
  342. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +2 -2
  343. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -1
  344. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +52 -41
  345. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +2 -2
  346. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -1
  347. package/cjs/style/themes/theme-ui/ui-theme-basis.css +1 -0
  348. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  349. package/cjs/style/themes/theme-ui/ui-theme-components.css +159 -80
  350. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  351. package/cjs/style/themes/theme-ui/ui-theme-elements.css +1 -0
  352. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  353. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +45 -38
  354. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  355. package/cjs/style/themes/theme-ui/ui-theme-forms.css +45 -38
  356. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  357. package/cjs/style/themes/theme-ui/ui-theme-tags.css +1 -0
  358. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  359. package/components/ListFormat.d.ts +12 -0
  360. package/components/ListFormat.js +4 -0
  361. package/components/ListFormat.js.map +1 -0
  362. package/components/anchor/Anchor.js +1 -1
  363. package/components/anchor/Anchor.js.map +1 -1
  364. package/components/autocomplete/Autocomplete.js +3 -3
  365. package/components/autocomplete/Autocomplete.js.map +1 -1
  366. package/components/card/Card.js +13 -5
  367. package/components/card/Card.js.map +1 -1
  368. package/components/card/CardContext.d.ts +6 -0
  369. package/components/card/CardContext.js +4 -0
  370. package/components/card/CardContext.js.map +1 -0
  371. package/components/card/CardDocs.js +2 -2
  372. package/components/card/CardDocs.js.map +1 -1
  373. package/components/card/style/dnb-card.css +3 -0
  374. package/components/card/style/dnb-card.min.css +1 -1
  375. package/components/card/style/dnb-card.scss +5 -0
  376. package/components/card/style/themes/dnb-card-theme-sbanken.css +3 -0
  377. package/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -1
  378. package/components/card/style/themes/dnb-card-theme-sbanken.scss +5 -0
  379. package/components/card/style/themes/dnb-card-theme-ui.css +5 -0
  380. package/components/card/style/themes/dnb-card-theme-ui.min.css +1 -1
  381. package/components/card/style/themes/dnb-card-theme-ui.scss +7 -0
  382. package/components/country-flag/CountryFlagDocs.js +5 -0
  383. package/components/country-flag/CountryFlagDocs.js.map +1 -1
  384. package/components/date-picker/DatePicker.d.ts +261 -291
  385. package/components/date-picker/DatePicker.js +343 -481
  386. package/components/date-picker/DatePicker.js.map +1 -1
  387. package/components/date-picker/DatePickerAddon.d.ts +21 -20
  388. package/components/date-picker/DatePickerAddon.js +64 -81
  389. package/components/date-picker/DatePickerAddon.js.map +1 -1
  390. package/components/date-picker/DatePickerCalc.d.ts +19 -21
  391. package/components/date-picker/DatePickerCalc.js +35 -34
  392. package/components/date-picker/DatePickerCalc.js.map +1 -1
  393. package/components/date-picker/DatePickerCalendar.d.ts +73 -39
  394. package/components/date-picker/DatePickerCalendar.js +389 -534
  395. package/components/date-picker/DatePickerCalendar.js.map +1 -1
  396. package/components/date-picker/DatePickerContext.d.ts +26 -2
  397. package/components/date-picker/DatePickerContext.js.map +1 -1
  398. package/components/date-picker/DatePickerFooter.d.ts +20 -18
  399. package/components/date-picker/DatePickerFooter.js +90 -116
  400. package/components/date-picker/DatePickerFooter.js.map +1 -1
  401. package/components/date-picker/DatePickerInput.d.ts +56 -64
  402. package/components/date-picker/DatePickerInput.js +515 -532
  403. package/components/date-picker/DatePickerInput.js.map +1 -1
  404. package/components/date-picker/DatePickerOld.d.ts +334 -0
  405. package/components/date-picker/DatePickerOld.js +528 -0
  406. package/components/date-picker/DatePickerOld.js.map +1 -0
  407. package/components/date-picker/DatePickerProvider.d.ts +40 -17
  408. package/components/date-picker/DatePickerProvider.js +123 -235
  409. package/components/date-picker/DatePickerProvider.js.map +1 -1
  410. package/components/date-picker/DatePickerRange.d.ts +22 -20
  411. package/components/date-picker/DatePickerRange.js +58 -140
  412. package/components/date-picker/DatePickerRange.js.map +1 -1
  413. package/components/date-picker/hooks/useDates.d.ts +45 -0
  414. package/components/date-picker/hooks/useDates.js +173 -0
  415. package/components/date-picker/hooks/useDates.js.map +1 -0
  416. package/components/date-picker/hooks/useLastEventCallCache.d.ts +9 -0
  417. package/components/date-picker/hooks/useLastEventCallCache.js +11 -0
  418. package/components/date-picker/hooks/useLastEventCallCache.js.map +1 -0
  419. package/components/date-picker/hooks/useViews.d.ts +20 -0
  420. package/components/date-picker/hooks/useViews.js +74 -0
  421. package/components/date-picker/hooks/useViews.js.map +1 -0
  422. package/components/date-picker/style/dnb-date-picker.css +12 -1
  423. package/components/date-picker/style/dnb-date-picker.min.css +1 -1
  424. package/components/dropdown/Dropdown.js +3 -3
  425. package/components/dropdown/Dropdown.js.map +1 -1
  426. package/components/flex/StackDocs.d.ts +2 -0
  427. package/components/flex/StackDocs.js +23 -0
  428. package/components/flex/StackDocs.js.map +1 -0
  429. package/components/form-row/FormRow.js +3 -3
  430. package/components/form-row/FormRow.js.map +1 -1
  431. package/components/form-row/style/dnb-form-row.css +12 -1
  432. package/components/form-row/style/dnb-form-row.min.css +1 -1
  433. package/components/form-status/FormStatus.d.ts +4 -1
  434. package/components/icon/style/dnb-icon.scss +1 -1
  435. package/components/index.d.ts +2 -1
  436. package/components/index.js +2 -1
  437. package/components/index.js.map +1 -1
  438. package/components/input-masked/TextMask.d.ts +2 -1
  439. package/components/input-masked/style/dnb-input-masked.css +12 -1
  440. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  441. package/components/lib.d.ts +3 -1
  442. package/components/lib.js +3 -1
  443. package/components/lib.js.map +1 -1
  444. package/components/list-format/ListFormat.d.ts +40 -0
  445. package/components/list-format/ListFormat.js +112 -0
  446. package/components/list-format/ListFormat.js.map +1 -0
  447. package/components/list-format/ListFormatDocs.d.ts +2 -0
  448. package/components/list-format/ListFormatDocs.js +28 -0
  449. package/components/list-format/ListFormatDocs.js.map +1 -0
  450. package/components/list-format/index.d.ts +7 -0
  451. package/components/list-format/index.js +4 -0
  452. package/components/list-format/index.js.map +1 -0
  453. package/components/number-format/NumberUtils.js +1 -1
  454. package/components/number-format/NumberUtils.js.map +1 -1
  455. package/components/radio/style/dnb-radio.css +12 -1
  456. package/components/radio/style/dnb-radio.min.css +1 -1
  457. package/components/step-indicator/StepIndicatorTriggerButton.js +1 -1
  458. package/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  459. package/components/textarea/Textarea.js +3 -3
  460. package/components/textarea/Textarea.js.map +1 -1
  461. package/components/toggle-button/ToggleButton.js +3 -3
  462. package/components/toggle-button/ToggleButton.js.map +1 -1
  463. package/components/toggle-button/style/dnb-toggle-button.css +12 -1
  464. package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  465. package/components/upload/Upload.js +2 -1
  466. package/components/upload/Upload.js.map +1 -1
  467. package/components/upload/UploadContext.d.ts +1 -0
  468. package/components/upload/UploadContext.js +2 -1
  469. package/components/upload/UploadContext.js.map +1 -1
  470. package/components/upload/UploadDocs.js +5 -0
  471. package/components/upload/UploadDocs.js.map +1 -1
  472. package/components/upload/UploadDropzone.js.map +1 -1
  473. package/components/upload/UploadFileList.js +3 -1
  474. package/components/upload/UploadFileList.js.map +1 -1
  475. package/components/upload/UploadFileListCell.d.ts +22 -3
  476. package/components/upload/UploadFileListCell.js +16 -8
  477. package/components/upload/UploadFileListCell.js.map +1 -1
  478. package/components/upload/UploadInfo.js +7 -4
  479. package/components/upload/UploadInfo.js.map +1 -1
  480. package/components/upload/UploadVerify.d.ts +2 -2
  481. package/components/upload/UploadVerify.js.map +1 -1
  482. package/components/upload/style/dnb-upload.css +1 -1
  483. package/components/upload/style/dnb-upload.min.css +1 -1
  484. package/components/upload/style/dnb-upload.scss +1 -1
  485. package/components/upload/types.d.ts +11 -5
  486. package/components/upload/types.js.map +1 -1
  487. package/components/upload/useUpload.d.ts +6 -6
  488. package/components/upload/useUpload.js.map +1 -1
  489. package/elements/lists/style/lists-mixins.scss +1 -0
  490. package/es/components/ListFormat.d.ts +12 -0
  491. package/es/components/ListFormat.js +4 -0
  492. package/es/components/ListFormat.js.map +1 -0
  493. package/es/components/anchor/Anchor.js +1 -1
  494. package/es/components/anchor/Anchor.js.map +1 -1
  495. package/es/components/autocomplete/Autocomplete.js +3 -3
  496. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  497. package/es/components/card/Card.js +13 -5
  498. package/es/components/card/Card.js.map +1 -1
  499. package/es/components/card/CardContext.d.ts +6 -0
  500. package/es/components/card/CardContext.js +4 -0
  501. package/es/components/card/CardContext.js.map +1 -0
  502. package/es/components/card/CardDocs.js +2 -2
  503. package/es/components/card/CardDocs.js.map +1 -1
  504. package/es/components/card/style/dnb-card.css +3 -0
  505. package/es/components/card/style/dnb-card.min.css +1 -1
  506. package/es/components/card/style/dnb-card.scss +5 -0
  507. package/es/components/card/style/themes/dnb-card-theme-sbanken.css +3 -0
  508. package/es/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -1
  509. package/es/components/card/style/themes/dnb-card-theme-sbanken.scss +5 -0
  510. package/es/components/card/style/themes/dnb-card-theme-ui.css +5 -0
  511. package/es/components/card/style/themes/dnb-card-theme-ui.min.css +1 -1
  512. package/es/components/card/style/themes/dnb-card-theme-ui.scss +7 -0
  513. package/es/components/country-flag/CountryFlagDocs.js +5 -0
  514. package/es/components/country-flag/CountryFlagDocs.js.map +1 -1
  515. package/es/components/date-picker/DatePicker.d.ts +261 -291
  516. package/es/components/date-picker/DatePicker.js +342 -481
  517. package/es/components/date-picker/DatePicker.js.map +1 -1
  518. package/es/components/date-picker/DatePickerAddon.d.ts +21 -20
  519. package/es/components/date-picker/DatePickerAddon.js +65 -82
  520. package/es/components/date-picker/DatePickerAddon.js.map +1 -1
  521. package/es/components/date-picker/DatePickerCalc.d.ts +19 -21
  522. package/es/components/date-picker/DatePickerCalc.js +38 -37
  523. package/es/components/date-picker/DatePickerCalc.js.map +1 -1
  524. package/es/components/date-picker/DatePickerCalendar.d.ts +73 -39
  525. package/es/components/date-picker/DatePickerCalendar.js +387 -531
  526. package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
  527. package/es/components/date-picker/DatePickerContext.d.ts +26 -2
  528. package/es/components/date-picker/DatePickerContext.js.map +1 -1
  529. package/es/components/date-picker/DatePickerFooter.d.ts +20 -18
  530. package/es/components/date-picker/DatePickerFooter.js +89 -116
  531. package/es/components/date-picker/DatePickerFooter.js.map +1 -1
  532. package/es/components/date-picker/DatePickerInput.d.ts +56 -64
  533. package/es/components/date-picker/DatePickerInput.js +508 -525
  534. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  535. package/es/components/date-picker/DatePickerOld.d.ts +334 -0
  536. package/es/components/date-picker/DatePickerOld.js +528 -0
  537. package/es/components/date-picker/DatePickerOld.js.map +1 -0
  538. package/es/components/date-picker/DatePickerProvider.d.ts +40 -17
  539. package/es/components/date-picker/DatePickerProvider.js +122 -230
  540. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  541. package/es/components/date-picker/DatePickerRange.d.ts +22 -20
  542. package/es/components/date-picker/DatePickerRange.js +57 -138
  543. package/es/components/date-picker/DatePickerRange.js.map +1 -1
  544. package/es/components/date-picker/hooks/useDates.d.ts +45 -0
  545. package/es/components/date-picker/hooks/useDates.js +169 -0
  546. package/es/components/date-picker/hooks/useDates.js.map +1 -0
  547. package/es/components/date-picker/hooks/useLastEventCallCache.d.ts +9 -0
  548. package/es/components/date-picker/hooks/useLastEventCallCache.js +11 -0
  549. package/es/components/date-picker/hooks/useLastEventCallCache.js.map +1 -0
  550. package/es/components/date-picker/hooks/useViews.d.ts +20 -0
  551. package/es/components/date-picker/hooks/useViews.js +72 -0
  552. package/es/components/date-picker/hooks/useViews.js.map +1 -0
  553. package/es/components/date-picker/style/dnb-date-picker.css +12 -1
  554. package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
  555. package/es/components/dropdown/Dropdown.js +3 -3
  556. package/es/components/dropdown/Dropdown.js.map +1 -1
  557. package/es/components/flex/StackDocs.d.ts +2 -0
  558. package/es/components/flex/StackDocs.js +23 -0
  559. package/es/components/flex/StackDocs.js.map +1 -0
  560. package/es/components/form-row/FormRow.js +3 -3
  561. package/es/components/form-row/FormRow.js.map +1 -1
  562. package/es/components/form-row/style/dnb-form-row.css +12 -1
  563. package/es/components/form-row/style/dnb-form-row.min.css +1 -1
  564. package/es/components/form-status/FormStatus.d.ts +4 -1
  565. package/es/components/icon/style/dnb-icon.scss +1 -1
  566. package/es/components/index.d.ts +2 -1
  567. package/es/components/index.js +2 -1
  568. package/es/components/index.js.map +1 -1
  569. package/es/components/input-masked/TextMask.d.ts +2 -1
  570. package/es/components/input-masked/style/dnb-input-masked.css +12 -1
  571. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  572. package/es/components/lib.d.ts +3 -1
  573. package/es/components/lib.js +3 -1
  574. package/es/components/lib.js.map +1 -1
  575. package/es/components/list-format/ListFormat.d.ts +40 -0
  576. package/es/components/list-format/ListFormat.js +111 -0
  577. package/es/components/list-format/ListFormat.js.map +1 -0
  578. package/es/components/list-format/ListFormatDocs.d.ts +2 -0
  579. package/es/components/list-format/ListFormatDocs.js +28 -0
  580. package/es/components/list-format/ListFormatDocs.js.map +1 -0
  581. package/es/components/list-format/index.d.ts +7 -0
  582. package/es/components/list-format/index.js +4 -0
  583. package/es/components/list-format/index.js.map +1 -0
  584. package/es/components/number-format/NumberUtils.js +1 -1
  585. package/es/components/number-format/NumberUtils.js.map +1 -1
  586. package/es/components/radio/style/dnb-radio.css +12 -1
  587. package/es/components/radio/style/dnb-radio.min.css +1 -1
  588. package/es/components/step-indicator/StepIndicatorTriggerButton.js +1 -1
  589. package/es/components/step-indicator/StepIndicatorTriggerButton.js.map +1 -1
  590. package/es/components/textarea/Textarea.js +3 -3
  591. package/es/components/textarea/Textarea.js.map +1 -1
  592. package/es/components/toggle-button/ToggleButton.js +3 -3
  593. package/es/components/toggle-button/ToggleButton.js.map +1 -1
  594. package/es/components/toggle-button/style/dnb-toggle-button.css +12 -1
  595. package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  596. package/es/components/upload/Upload.js +2 -1
  597. package/es/components/upload/Upload.js.map +1 -1
  598. package/es/components/upload/UploadContext.d.ts +1 -0
  599. package/es/components/upload/UploadContext.js +2 -1
  600. package/es/components/upload/UploadContext.js.map +1 -1
  601. package/es/components/upload/UploadDocs.js +5 -0
  602. package/es/components/upload/UploadDocs.js.map +1 -1
  603. package/es/components/upload/UploadDropzone.js.map +1 -1
  604. package/es/components/upload/UploadFileList.js +3 -1
  605. package/es/components/upload/UploadFileList.js.map +1 -1
  606. package/es/components/upload/UploadFileListCell.d.ts +22 -3
  607. package/es/components/upload/UploadFileListCell.js +16 -8
  608. package/es/components/upload/UploadFileListCell.js.map +1 -1
  609. package/es/components/upload/UploadInfo.js +7 -4
  610. package/es/components/upload/UploadInfo.js.map +1 -1
  611. package/es/components/upload/UploadVerify.d.ts +2 -2
  612. package/es/components/upload/UploadVerify.js.map +1 -1
  613. package/es/components/upload/style/dnb-upload.css +1 -1
  614. package/es/components/upload/style/dnb-upload.min.css +1 -1
  615. package/es/components/upload/style/dnb-upload.scss +1 -1
  616. package/es/components/upload/types.d.ts +11 -5
  617. package/es/components/upload/types.js.map +1 -1
  618. package/es/components/upload/useUpload.d.ts +6 -6
  619. package/es/components/upload/useUpload.js.map +1 -1
  620. package/es/elements/lists/style/lists-mixins.scss +1 -0
  621. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +1 -1
  622. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  623. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +11 -14
  624. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  625. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +3 -4
  626. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  627. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +4 -4
  628. package/es/extensions/forms/Field/Boolean/Boolean.d.ts +3 -2
  629. package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  630. package/es/extensions/forms/Field/Composition/CompositionDocs.js +2 -2
  631. package/es/extensions/forms/Field/Composition/CompositionDocs.js.map +1 -1
  632. package/es/extensions/forms/Field/Date/Date.js +4 -12
  633. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  634. package/es/extensions/forms/Field/Expiry/Expiry.js +6 -14
  635. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  636. package/es/extensions/forms/Field/FieldDocs.d.ts +2 -2
  637. package/es/extensions/forms/Field/FieldDocs.js +8 -8
  638. package/es/extensions/forms/Field/FieldDocs.js.map +1 -1
  639. package/es/extensions/forms/Field/Number/Number.d.ts +2 -1
  640. package/es/extensions/forms/Field/Number/Number.js +8 -19
  641. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  642. package/es/extensions/forms/Field/Number/style/dnb-number.css +0 -3
  643. package/es/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  644. package/es/extensions/forms/Field/Number/style/dnb-number.scss +0 -2
  645. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -2
  646. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +9 -10
  647. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  648. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +1 -1
  649. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +1 -1
  650. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  651. package/es/extensions/forms/Field/Provider/FieldProviderDocs.js +6 -3
  652. package/es/extensions/forms/Field/Provider/FieldProviderDocs.js.map +1 -1
  653. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +10 -3
  654. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -1
  655. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +14 -12
  656. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  657. package/es/extensions/forms/Field/Selection/Selection.d.ts +2 -1
  658. package/es/extensions/forms/Field/Selection/Selection.js +5 -13
  659. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  660. package/es/extensions/forms/Field/Slider/Slider.d.ts +2 -1
  661. package/es/extensions/forms/Field/Slider/Slider.js +0 -13
  662. package/es/extensions/forms/Field/Slider/Slider.js.map +1 -1
  663. package/es/extensions/forms/Field/String/String.d.ts +2 -1
  664. package/es/extensions/forms/Field/String/String.js +7 -20
  665. package/es/extensions/forms/Field/String/String.js.map +1 -1
  666. package/es/extensions/forms/Field/Toggle/Toggle.d.ts +1 -1
  667. package/es/extensions/forms/Field/Toggle/Toggle.js +6 -18
  668. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  669. package/es/extensions/forms/Field/Upload/Upload.d.ts +4 -3
  670. package/es/extensions/forms/Field/Upload/Upload.js +2 -12
  671. package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
  672. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +45 -6
  673. package/es/extensions/forms/FieldBlock/FieldBlock.js +39 -20
  674. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  675. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -0
  676. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  677. package/es/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +3 -2
  678. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +17 -2
  679. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  680. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +34 -11
  681. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  682. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +56 -13
  683. package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.css +7 -0
  684. package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.min.css +1 -0
  685. package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.scss +10 -0
  686. package/es/extensions/forms/Form/Section/EditContainer/CancelButton.d.ts +1 -0
  687. package/es/extensions/forms/Form/Section/EditContainer/CancelButton.js +51 -0
  688. package/es/extensions/forms/Form/Section/EditContainer/CancelButton.js.map +1 -0
  689. package/es/extensions/forms/Form/Section/EditContainer/DoneButton.d.ts +1 -0
  690. package/es/extensions/forms/Form/Section/EditContainer/DoneButton.js +44 -0
  691. package/es/extensions/forms/Form/Section/EditContainer/DoneButton.js.map +1 -0
  692. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
  693. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js +11 -4
  694. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  695. package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +1 -1
  696. package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
  697. package/es/extensions/forms/Form/Section/Section.d.ts +4 -2
  698. package/es/extensions/forms/Form/Section/Section.js +2 -0
  699. package/es/extensions/forms/Form/Section/Section.js.map +1 -1
  700. package/es/extensions/forms/Form/Section/Toolbar/Toolbar.d.ts +7 -0
  701. package/es/extensions/forms/Form/Section/Toolbar/Toolbar.js +59 -0
  702. package/es/extensions/forms/Form/Section/Toolbar/Toolbar.js.map +1 -0
  703. package/es/extensions/forms/Form/Section/Toolbar/ToolbarContext.d.ts +9 -0
  704. package/es/extensions/forms/Form/Section/Toolbar/ToolbarContext.js +4 -0
  705. package/es/extensions/forms/Form/Section/Toolbar/ToolbarContext.js.map +1 -0
  706. package/es/extensions/forms/Form/Section/Toolbar/ToolbarDocs.d.ts +3 -0
  707. package/es/extensions/forms/Form/Section/Toolbar/ToolbarDocs.js +3 -0
  708. package/es/extensions/forms/Form/Section/Toolbar/ToolbarDocs.js.map +1 -0
  709. package/es/extensions/forms/Form/Section/Toolbar/index.d.ts +2 -0
  710. package/es/extensions/forms/Form/Section/Toolbar/index.js +3 -0
  711. package/es/extensions/forms/Form/Section/Toolbar/index.js.map +1 -0
  712. package/es/extensions/forms/Form/Section/ViewContainer/EditButton.d.ts +1 -0
  713. package/es/extensions/forms/Form/Section/ViewContainer/{ViewToolbarTools.js → EditButton.js} +10 -11
  714. package/es/extensions/forms/Form/Section/ViewContainer/EditButton.js.map +1 -0
  715. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
  716. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +9 -4
  717. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
  718. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +1 -1
  719. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
  720. package/es/extensions/forms/Form/Section/containers/SectionContainer.js +4 -3
  721. package/es/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
  722. package/es/extensions/forms/Form/Section/style/dnb-form-section.css +6 -13
  723. package/es/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
  724. package/es/extensions/forms/Form/Section/style/dnb-form-section.scss +11 -24
  725. package/es/extensions/forms/Iterate/Array/ArrayDocs.js +5 -5
  726. package/es/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  727. package/es/extensions/forms/Iterate/Array/ArrayItemArea.js +4 -3
  728. package/es/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  729. package/es/extensions/forms/Iterate/EditContainer/CancelButton.d.ts +1 -1
  730. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js +1 -1
  731. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  732. package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +1 -1
  733. package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  734. package/es/extensions/forms/Iterate/ViewContainer/EditButton.d.ts +1 -1
  735. package/es/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
  736. package/es/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  737. package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +1 -1
  738. package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  739. package/es/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +2 -25
  740. package/es/extensions/forms/Value/ArraySelection/ArraySelection.js +14 -45
  741. package/es/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
  742. package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +5 -17
  743. package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -1
  744. package/es/extensions/forms/Value/Composition/CompositionDocs.js +3 -1
  745. package/es/extensions/forms/Value/Composition/CompositionDocs.js.map +1 -1
  746. package/es/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -1
  747. package/es/extensions/forms/Value/SummaryList/SummaryListDocs.js +5 -5
  748. package/es/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -1
  749. package/es/extensions/forms/Value/Upload/Upload.d.ts +11 -0
  750. package/es/extensions/forms/Value/Upload/Upload.js +88 -0
  751. package/es/extensions/forms/Value/Upload/Upload.js.map +1 -0
  752. package/es/extensions/forms/Value/Upload/UploadDocs.d.ts +2 -0
  753. package/es/extensions/forms/Value/Upload/UploadDocs.js +17 -0
  754. package/es/extensions/forms/Value/Upload/UploadDocs.js.map +1 -0
  755. package/es/extensions/forms/Value/Upload/index.d.ts +2 -0
  756. package/es/extensions/forms/Value/Upload/index.js +3 -0
  757. package/es/extensions/forms/Value/Upload/index.js.map +1 -0
  758. package/es/extensions/forms/Value/index.d.ts +1 -0
  759. package/es/extensions/forms/Value/index.js +1 -0
  760. package/es/extensions/forms/Value/index.js.map +1 -1
  761. package/es/extensions/forms/ValueBlock/ValueBlock.js +8 -3
  762. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  763. package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +0 -7
  764. package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  765. package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +0 -10
  766. package/es/extensions/forms/Wizard/Step/StepDocs.js +1 -1
  767. package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  768. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +2 -0
  769. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  770. package/es/extensions/forms/hooks/DataValueWritePropsDocs.d.ts +3 -0
  771. package/es/extensions/forms/hooks/{DataValueDocs.js → DataValueWritePropsDocs.js} +3 -3
  772. package/es/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -0
  773. package/es/extensions/forms/hooks/useDataValue.js +6 -1
  774. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  775. package/es/extensions/forms/hooks/useFieldProps.js +8 -3
  776. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  777. package/es/extensions/forms/hooks/useValueProps.js +1 -6
  778. package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
  779. package/es/extensions/forms/style/dnb-forms.css +45 -38
  780. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  781. package/es/extensions/forms/types.d.ts +6 -28
  782. package/es/extensions/forms/types.js.map +1 -1
  783. package/es/extensions/forms/utils/TestElement/style/dnb-test-element.css +2 -0
  784. package/es/extensions/forms/utils/TestElement/style/dnb-test-element.min.css +1 -1
  785. package/es/extensions/forms/utils/TestElement/style/dnb-test-element.scss +2 -0
  786. package/es/index.d.ts +2 -1
  787. package/es/index.js +2 -1
  788. package/es/index.js.map +1 -1
  789. package/es/shared/Context.d.ts +4 -0
  790. package/es/shared/Context.js.map +1 -1
  791. package/es/shared/Eufemia.d.ts +1 -1
  792. package/es/shared/Eufemia.js +2 -2
  793. package/es/shared/Eufemia.js.map +1 -1
  794. package/es/shared/component-helper.d.ts +1 -1
  795. package/es/shared/component-helper.js.map +1 -1
  796. package/es/style/core/reset.scss +0 -8
  797. package/es/style/core/scopes.scss +1 -1
  798. package/es/style/core/utilities.scss +12 -16
  799. package/es/style/dnb-ui-basis.css +1 -7
  800. package/es/style/dnb-ui-basis.min.css +1 -1
  801. package/es/style/dnb-ui-body.css +1 -7
  802. package/es/style/dnb-ui-body.min.css +1 -1
  803. package/es/style/dnb-ui-components.css +109 -43
  804. package/es/style/dnb-ui-components.min.css +3 -3
  805. package/es/style/dnb-ui-core.css +1 -8
  806. package/es/style/dnb-ui-core.min.css +1 -1
  807. package/es/style/dnb-ui-elements.css +1 -0
  808. package/es/style/dnb-ui-elements.min.css +1 -1
  809. package/es/style/dnb-ui-extensions.css +45 -38
  810. package/es/style/dnb-ui-extensions.min.css +1 -1
  811. package/es/style/dnb-ui-forms.css +45 -38
  812. package/es/style/dnb-ui-forms.min.css +1 -1
  813. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -0
  814. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  815. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +159 -80
  816. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  817. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -0
  818. package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  819. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +45 -38
  820. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  821. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +45 -38
  822. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  823. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -0
  824. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  825. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +164 -83
  826. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +5 -5
  827. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -0
  828. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  829. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +50 -41
  830. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +2 -2
  831. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -1
  832. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +52 -41
  833. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +2 -2
  834. package/es/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -1
  835. package/es/style/themes/theme-ui/ui-theme-basis.css +1 -0
  836. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  837. package/es/style/themes/theme-ui/ui-theme-components.css +159 -80
  838. package/es/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  839. package/es/style/themes/theme-ui/ui-theme-elements.css +1 -0
  840. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  841. package/es/style/themes/theme-ui/ui-theme-extensions.css +45 -38
  842. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  843. package/es/style/themes/theme-ui/ui-theme-forms.css +45 -38
  844. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  845. package/es/style/themes/theme-ui/ui-theme-tags.css +1 -0
  846. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  847. package/esm/dnb-ui-basis.min.mjs +1 -1
  848. package/esm/dnb-ui-components.min.mjs +1 -1
  849. package/esm/dnb-ui-elements.min.mjs +1 -1
  850. package/esm/dnb-ui-extensions.min.mjs +3 -3
  851. package/esm/dnb-ui-lib.min.mjs +1 -1
  852. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +1 -1
  853. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  854. package/extensions/forms/Field/ArraySelection/ArraySelection.js +11 -14
  855. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  856. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +3 -4
  857. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  858. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +4 -4
  859. package/extensions/forms/Field/Boolean/Boolean.d.ts +3 -2
  860. package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  861. package/extensions/forms/Field/Composition/CompositionDocs.js +2 -2
  862. package/extensions/forms/Field/Composition/CompositionDocs.js.map +1 -1
  863. package/extensions/forms/Field/Date/Date.js +4 -12
  864. package/extensions/forms/Field/Date/Date.js.map +1 -1
  865. package/extensions/forms/Field/Expiry/Expiry.js +6 -14
  866. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  867. package/extensions/forms/Field/FieldDocs.d.ts +2 -2
  868. package/extensions/forms/Field/FieldDocs.js +8 -8
  869. package/extensions/forms/Field/FieldDocs.js.map +1 -1
  870. package/extensions/forms/Field/Number/Number.d.ts +2 -1
  871. package/extensions/forms/Field/Number/Number.js +7 -19
  872. package/extensions/forms/Field/Number/Number.js.map +1 -1
  873. package/extensions/forms/Field/Number/style/dnb-number.css +0 -3
  874. package/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  875. package/extensions/forms/Field/Number/style/dnb-number.scss +0 -2
  876. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -2
  877. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +9 -10
  878. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  879. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +1 -1
  880. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +1 -1
  881. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  882. package/extensions/forms/Field/Provider/FieldProviderDocs.js +6 -3
  883. package/extensions/forms/Field/Provider/FieldProviderDocs.js.map +1 -1
  884. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +10 -3
  885. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -1
  886. package/extensions/forms/Field/SelectCountry/SelectCountry.js +14 -12
  887. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  888. package/extensions/forms/Field/Selection/Selection.d.ts +2 -1
  889. package/extensions/forms/Field/Selection/Selection.js +5 -13
  890. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  891. package/extensions/forms/Field/Slider/Slider.d.ts +2 -1
  892. package/extensions/forms/Field/Slider/Slider.js +0 -13
  893. package/extensions/forms/Field/Slider/Slider.js.map +1 -1
  894. package/extensions/forms/Field/String/String.d.ts +2 -1
  895. package/extensions/forms/Field/String/String.js +7 -20
  896. package/extensions/forms/Field/String/String.js.map +1 -1
  897. package/extensions/forms/Field/Toggle/Toggle.d.ts +1 -1
  898. package/extensions/forms/Field/Toggle/Toggle.js +6 -18
  899. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  900. package/extensions/forms/Field/Upload/Upload.d.ts +4 -3
  901. package/extensions/forms/Field/Upload/Upload.js +2 -12
  902. package/extensions/forms/Field/Upload/Upload.js.map +1 -1
  903. package/extensions/forms/FieldBlock/FieldBlock.d.ts +45 -6
  904. package/extensions/forms/FieldBlock/FieldBlock.js +39 -20
  905. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  906. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -0
  907. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  908. package/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +3 -2
  909. package/extensions/forms/FieldBlock/FieldBlockDocs.js +17 -2
  910. package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  911. package/extensions/forms/FieldBlock/style/dnb-field-block.css +34 -11
  912. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  913. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +56 -13
  914. package/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.css +7 -0
  915. package/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.min.css +1 -0
  916. package/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-sbanken.scss +10 -0
  917. package/extensions/forms/Form/Section/EditContainer/CancelButton.d.ts +1 -0
  918. package/extensions/forms/Form/Section/EditContainer/CancelButton.js +51 -0
  919. package/extensions/forms/Form/Section/EditContainer/CancelButton.js.map +1 -0
  920. package/extensions/forms/Form/Section/EditContainer/DoneButton.d.ts +1 -0
  921. package/extensions/forms/Form/Section/EditContainer/DoneButton.js +44 -0
  922. package/extensions/forms/Form/Section/EditContainer/DoneButton.js.map +1 -0
  923. package/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
  924. package/extensions/forms/Form/Section/EditContainer/EditContainer.js +11 -4
  925. package/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  926. package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +1 -1
  927. package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
  928. package/extensions/forms/Form/Section/Section.d.ts +4 -2
  929. package/extensions/forms/Form/Section/Section.js +2 -0
  930. package/extensions/forms/Form/Section/Section.js.map +1 -1
  931. package/extensions/forms/Form/Section/Toolbar/Toolbar.d.ts +7 -0
  932. package/extensions/forms/Form/Section/Toolbar/Toolbar.js +59 -0
  933. package/extensions/forms/Form/Section/Toolbar/Toolbar.js.map +1 -0
  934. package/extensions/forms/Form/Section/Toolbar/ToolbarContext.d.ts +9 -0
  935. package/extensions/forms/Form/Section/Toolbar/ToolbarContext.js +4 -0
  936. package/extensions/forms/Form/Section/Toolbar/ToolbarContext.js.map +1 -0
  937. package/extensions/forms/Form/Section/Toolbar/ToolbarDocs.d.ts +3 -0
  938. package/extensions/forms/Form/Section/Toolbar/ToolbarDocs.js +3 -0
  939. package/extensions/forms/Form/Section/Toolbar/ToolbarDocs.js.map +1 -0
  940. package/extensions/forms/Form/Section/Toolbar/index.d.ts +2 -0
  941. package/extensions/forms/Form/Section/Toolbar/index.js +3 -0
  942. package/extensions/forms/Form/Section/Toolbar/index.js.map +1 -0
  943. package/extensions/forms/Form/Section/ViewContainer/EditButton.d.ts +1 -0
  944. package/extensions/forms/Form/Section/ViewContainer/{ViewToolbarTools.js → EditButton.js} +10 -11
  945. package/extensions/forms/Form/Section/ViewContainer/EditButton.js.map +1 -0
  946. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
  947. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +9 -4
  948. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
  949. package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +1 -1
  950. package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
  951. package/extensions/forms/Form/Section/containers/SectionContainer.js +4 -3
  952. package/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
  953. package/extensions/forms/Form/Section/style/dnb-form-section.css +6 -13
  954. package/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
  955. package/extensions/forms/Form/Section/style/dnb-form-section.scss +11 -24
  956. package/extensions/forms/Iterate/Array/ArrayDocs.js +5 -5
  957. package/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  958. package/extensions/forms/Iterate/Array/ArrayItemArea.js +4 -3
  959. package/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  960. package/extensions/forms/Iterate/EditContainer/CancelButton.d.ts +1 -1
  961. package/extensions/forms/Iterate/EditContainer/CancelButton.js +1 -1
  962. package/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  963. package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +1 -1
  964. package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  965. package/extensions/forms/Iterate/ViewContainer/EditButton.d.ts +1 -1
  966. package/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
  967. package/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  968. package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +1 -1
  969. package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  970. package/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +2 -25
  971. package/extensions/forms/Value/ArraySelection/ArraySelection.js +14 -46
  972. package/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
  973. package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +5 -17
  974. package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -1
  975. package/extensions/forms/Value/Composition/CompositionDocs.js +3 -1
  976. package/extensions/forms/Value/Composition/CompositionDocs.js.map +1 -1
  977. package/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -1
  978. package/extensions/forms/Value/SummaryList/SummaryListDocs.js +5 -5
  979. package/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -1
  980. package/extensions/forms/Value/Upload/Upload.d.ts +11 -0
  981. package/extensions/forms/Value/Upload/Upload.js +88 -0
  982. package/extensions/forms/Value/Upload/Upload.js.map +1 -0
  983. package/extensions/forms/Value/Upload/UploadDocs.d.ts +2 -0
  984. package/extensions/forms/Value/Upload/UploadDocs.js +17 -0
  985. package/extensions/forms/Value/Upload/UploadDocs.js.map +1 -0
  986. package/extensions/forms/Value/Upload/index.d.ts +2 -0
  987. package/extensions/forms/Value/Upload/index.js +3 -0
  988. package/extensions/forms/Value/Upload/index.js.map +1 -0
  989. package/extensions/forms/Value/index.d.ts +1 -0
  990. package/extensions/forms/Value/index.js +1 -0
  991. package/extensions/forms/Value/index.js.map +1 -1
  992. package/extensions/forms/ValueBlock/ValueBlock.js +8 -3
  993. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  994. package/extensions/forms/ValueBlock/style/dnb-value-block.css +0 -7
  995. package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  996. package/extensions/forms/ValueBlock/style/dnb-value-block.scss +0 -10
  997. package/extensions/forms/Wizard/Step/StepDocs.js +1 -1
  998. package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  999. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +2 -0
  1000. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  1001. package/extensions/forms/hooks/DataValueWritePropsDocs.d.ts +3 -0
  1002. package/extensions/forms/hooks/{DataValueDocs.js → DataValueWritePropsDocs.js} +3 -3
  1003. package/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -0
  1004. package/extensions/forms/hooks/useDataValue.js +6 -1
  1005. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  1006. package/extensions/forms/hooks/useFieldProps.js +8 -3
  1007. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  1008. package/extensions/forms/hooks/useValueProps.js +1 -6
  1009. package/extensions/forms/hooks/useValueProps.js.map +1 -1
  1010. package/extensions/forms/style/dnb-forms.css +45 -38
  1011. package/extensions/forms/style/dnb-forms.min.css +1 -1
  1012. package/extensions/forms/types.d.ts +6 -28
  1013. package/extensions/forms/types.js.map +1 -1
  1014. package/extensions/forms/utils/TestElement/style/dnb-test-element.css +2 -0
  1015. package/extensions/forms/utils/TestElement/style/dnb-test-element.min.css +1 -1
  1016. package/extensions/forms/utils/TestElement/style/dnb-test-element.scss +2 -0
  1017. package/index.d.ts +2 -1
  1018. package/index.js +2 -1
  1019. package/index.js.map +1 -1
  1020. package/package.json +1 -1
  1021. package/shared/Context.d.ts +4 -0
  1022. package/shared/Context.js.map +1 -1
  1023. package/shared/Eufemia.d.ts +1 -1
  1024. package/shared/Eufemia.js +2 -2
  1025. package/shared/Eufemia.js.map +1 -1
  1026. package/shared/component-helper.d.ts +1 -1
  1027. package/shared/component-helper.js.map +1 -1
  1028. package/style/core/reset.scss +0 -8
  1029. package/style/core/scopes.scss +1 -1
  1030. package/style/core/utilities.scss +12 -16
  1031. package/style/dnb-ui-basis.css +1 -7
  1032. package/style/dnb-ui-basis.min.css +1 -1
  1033. package/style/dnb-ui-body.css +1 -7
  1034. package/style/dnb-ui-body.min.css +1 -1
  1035. package/style/dnb-ui-components.css +109 -43
  1036. package/style/dnb-ui-components.min.css +3 -3
  1037. package/style/dnb-ui-core.css +1 -8
  1038. package/style/dnb-ui-core.min.css +1 -1
  1039. package/style/dnb-ui-elements.css +1 -0
  1040. package/style/dnb-ui-elements.min.css +1 -1
  1041. package/style/dnb-ui-extensions.css +45 -38
  1042. package/style/dnb-ui-extensions.min.css +1 -1
  1043. package/style/dnb-ui-forms.css +45 -38
  1044. package/style/dnb-ui-forms.min.css +1 -1
  1045. package/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -0
  1046. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  1047. package/style/themes/theme-eiendom/eiendom-theme-components.css +159 -80
  1048. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  1049. package/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -0
  1050. package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  1051. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +45 -38
  1052. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  1053. package/style/themes/theme-eiendom/eiendom-theme-forms.css +45 -38
  1054. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  1055. package/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -0
  1056. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  1057. package/style/themes/theme-sbanken/sbanken-theme-components.css +164 -83
  1058. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +5 -5
  1059. package/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -0
  1060. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  1061. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +50 -41
  1062. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +2 -2
  1063. package/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -1
  1064. package/style/themes/theme-sbanken/sbanken-theme-forms.css +52 -41
  1065. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +2 -2
  1066. package/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -1
  1067. package/style/themes/theme-ui/ui-theme-basis.css +1 -0
  1068. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  1069. package/style/themes/theme-ui/ui-theme-components.css +159 -80
  1070. package/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  1071. package/style/themes/theme-ui/ui-theme-elements.css +1 -0
  1072. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  1073. package/style/themes/theme-ui/ui-theme-extensions.css +45 -38
  1074. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  1075. package/style/themes/theme-ui/ui-theme-forms.css +45 -38
  1076. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  1077. package/style/themes/theme-ui/ui-theme-tags.css +1 -0
  1078. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  1079. package/umd/dnb-ui-basis.min.js +1 -1
  1080. package/umd/dnb-ui-components.min.js +1 -1
  1081. package/umd/dnb-ui-elements.min.js +1 -1
  1082. package/umd/dnb-ui-extensions.min.js +3 -3
  1083. package/umd/dnb-ui-lib.min.js +1 -1
  1084. package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.css +0 -4
  1085. package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.min.css +0 -1
  1086. package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.scss +0 -6
  1087. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +0 -5
  1088. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +0 -1
  1089. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +0 -4
  1090. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +0 -1
  1091. package/cjs/extensions/forms/Form/Section/containers/Toolbar.d.ts +0 -7
  1092. package/cjs/extensions/forms/Form/Section/containers/Toolbar.js +0 -35
  1093. package/cjs/extensions/forms/Form/Section/containers/Toolbar.js.map +0 -1
  1094. package/cjs/extensions/forms/hooks/DataValueDocs.d.ts +0 -3
  1095. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +0 -1
  1096. package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.css +0 -4
  1097. package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.min.css +0 -1
  1098. package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.scss +0 -6
  1099. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +0 -5
  1100. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +0 -77
  1101. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +0 -1
  1102. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +0 -4
  1103. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +0 -1
  1104. package/es/extensions/forms/Form/Section/containers/Toolbar.d.ts +0 -7
  1105. package/es/extensions/forms/Form/Section/containers/Toolbar.js +0 -27
  1106. package/es/extensions/forms/Form/Section/containers/Toolbar.js.map +0 -1
  1107. package/es/extensions/forms/hooks/DataValueDocs.d.ts +0 -3
  1108. package/es/extensions/forms/hooks/DataValueDocs.js.map +0 -1
  1109. package/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.css +0 -4
  1110. package/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.min.css +0 -1
  1111. package/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.scss +0 -6
  1112. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +0 -5
  1113. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +0 -77
  1114. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +0 -1
  1115. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +0 -4
  1116. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +0 -1
  1117. package/extensions/forms/Form/Section/containers/Toolbar.d.ts +0 -7
  1118. package/extensions/forms/Form/Section/containers/Toolbar.js +0 -27
  1119. package/extensions/forms/Form/Section/containers/Toolbar.js.map +0 -1
  1120. package/extensions/forms/hooks/DataValueDocs.d.ts +0 -3
  1121. package/extensions/forms/hooks/DataValueDocs.js.map +0 -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","_SnapshotContext","_useProcessManager","_usePath","_useSharedState","_isAsync","_useTranslation","_useExternalValue","_useDataValue","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","useLayoutEffect","window","React","useEffect","useFieldProps","localProps","_dataContext$props","_transformers$current","_localErrorRef$curren","_ref3","_prepareError","_this","_dataContext$props3","_props$path","_props$autoComplete","executeOnChangeRegardlessOfError","updateContextDataInSync","omitMultiplePathWarning","forceUpdateWhenContextDataIsSet","extend","useContext","FieldProviderContext","props","path","pathProp","valueProp","defaultValue","itemPath","emptyValue","required","requiredProp","disabled","disabledProp","info","warning","error","errorProp","errorMessages","onFocus","onBlur","onChange","onBlurValidator","validator","exportValidators","schema","validateInitially","validateUnchanged","continuousValidation","transformIn","transformOut","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","IterateElementContext","sectionContext","SectionContext","fieldBoundaryContext","FieldBoundaryContext","wizardContext","WizardContext","setMountedField","setMountedFieldSnapshot","SnapshotContext","isVisible","VisibilityContext","translation","useTranslation","formatMessage","translationRef","transformers","handlePathChangeUnvalidated","handlePathChangeUnvalidatedDataContext","handlePathChange","handlePathChangeDataContext","updateDataValue","updateDataValueDataContext","validateData","validateDataDataContext","setFieldState","setFieldStateDataContext","setFieldError","setFieldErrorDataContext","setFieldProps","setFieldPropsDataContext","setFieldConnection","setFieldConnectionDataContext","setVisibleError","setVisibleErrorDataContext","setMountedFieldState","setMountedFieldStateDataContext","setFieldEventListener","errors","dataContextErrors","showAllErrors","contextErrorMessages","fieldDisplayValueRef","existingFieldsRef","onChangeContext","readOnly","inFieldBlock","Boolean","setFieldStateFieldBlock","showFieldError","showFieldErrorFieldBlock","mountedFieldsRef","mountedFieldsRefFieldBlock","handleChange","handleChangeIterateContext","index","iterateIndex","arrayValue","iterateArrayValue","sectionPath","errorPrioritization","setFieldErrorBoundary","setVisibleErrorBoundary","showBoundaryErrors","hasPath","hasItemPath","identifier","makeIteratePath","joinPath","cleanPath","usePath","defaultValueRef","externalValue","useExternalValue","valueRef","changedRef","hasFocusRef","paths","split","requiredInSchema","pathWithoutLast","slice","join","schemaPart","pointer","requiredSchemaList","Array","isArray","rootPath","replace","requiredList","map","startsWith","collected","flatMap","some","revealErrorRef","errorMethodRef","localErrorRef","localErrorInitiatorRef","dataContextError","contextErrorRef","onChangeValidatorRef","useUpdateEffect","onBlurValidatorRef","schemaValidatorRef","_dataContext$ajvInsta","ajvInstance","compile","asyncBehaviorIsEnabled","isAsync","validatedValue","changeEventResultRef","asyncProcessRef","defineAsyncProcess","useCallback","name","asyncBufferRef","resolve","validateProcesses","requestAnimationFrame","eventPool","onChangeLocal","addToPool","fn","runAsync","runPool","cb","pending","fieldStateRef","state","resolveValidatingState","revealError","hideError","getErrorMessages","messages","extendErrorMessagesWithTranslationMessages","overwriteErrorMessagesWithGivenAjvKeys","prepareError","FormError","prepare","message","ajvKeyword","ajvMessage","validationRule","messageValues","entries","reduce","msg","_ref2","includes","errorChanged","hasVisibleError","hasErrorProp","hasError","_ref4","connectWithPathListenerRef","runOnChangeValidator","runOnBlurValidator","getValueByPath","useDataValue","exportValidatorsRef","args","validators","connectWithPath","getValue","callStackRef","hasBeenCalledRef","result","callValidatorFnAsync","Error","callValidatorFnSync","hasAsyncValidator","Promise","then","stateId","persistErrorState","method","initiator","errorArg","type","content","showInitially","clearErrorState","_schemaValidatorRef$c","removeError","validatorCacheRef","onChangeValidator","revealOnChangeValidatorResult","_ref5","unchangedValue","callOnChangeValidator","tmpValue","startOnChangeValidatorValidation","callOnBlurValidator","overrideValue","revealOnBlurValidatorResult","_ref6","startOnBlurValidatorProcess","prioritizeContextSchema","schemaPath","hasContextSchema","indexOf","validateValue","isProcessActive","requiredError","isChanged","ajvErrorsToOneFormError","handleError","getEventArgs","_ref7","eventName","transformedValue","setHasFocus","hasFocus","isFocused","yieldAsyncProcess","_ref8","waitFor","_ref9","processName","withStates","hasValue","hasMatchingValue","handleChangeEventResult","warningRef","infoRef","success","setEventResult","callOnChangeContext","updateValue","newValue","_transformers$current2","currentValue","contextValue","setChanged","setDisplayValue","argFromInput","handleFocus","handleBlur","activeIndex","activeIndexRef","activeIndexTmpRef","isPreMounted","wasStepChange","isMounted","process","env","NODE_ENV","existingFields","warn","delete","_dataContext$ajvInsta2","externalValueDidChangeRef","tmpTransValueRef","setContextData","_dataContext$internal","preventUpdate","valueToStore","data","prerenderFieldProps","internalDataRef","existingValue","sharedState","createSharedState","sharedValue","hasDefaultValue","skipEqualCheck","clearedData","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","fieldBlockProps","labelSuffix","fieldState","sharedData","useSharedState","autoComplete"],"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 AdditionalEventArgs,\n SubmitState,\n EventReturnWithStateObjectAndSuccess,\n EventStateObjectWithSuccess,\n ValidatorAdditionalArgs,\n Validator,\n Identifier,\n} from '../types'\nimport { Context as DataContext, ContextState } from '../DataContext'\nimport { clearedData } from '../DataContext/Provider/Provider'\nimport FieldProviderContext from '../Field/Provider/FieldProviderContext'\nimport { combineDescribedBy, warn } from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport useUpdateEffect from '../../../shared/helpers/useUpdateEffect'\nimport FieldBlockContext from '../FieldBlock/FieldBlockContext'\nimport IterateElementContext 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 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 | 'validator'\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 | '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 } = {}\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,\n warning,\n error: errorProp,\n errorMessages,\n onFocus,\n onBlur,\n onChange,\n onBlurValidator,\n validator,\n exportValidators,\n schema,\n validateInitially,\n validateUnchanged,\n continuousValidation,\n transformIn = (value: Value) => value,\n transformOut = (value: Value) => value,\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: AdditionalEventArgs\n ) => additionalArgs,\n fromExternal = (value: Value) => value,\n validateRequired = (value, { emptyValue, required, error }) => {\n const res =\n required &&\n ((value as unknown) === emptyValue ||\n (typeof emptyValue === 'undefined' && value === ''))\n ? error\n : undefined\n\n return res\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(IterateElementContext)\n const sectionContext = useContext(SectionContext)\n const fieldBoundaryContext = useContext(FieldBoundaryContext)\n const wizardContext = useContext(WizardContext)\n const { setMountedField: setMountedFieldSnapshot } =\n useContext(SnapshotContext) || {}\n const { isVisible } = useContext(VisibilityContext) || {}\n\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 setFieldProps: setFieldPropsDataContext,\n setFieldConnection: setFieldConnectionDataContext,\n setVisibleError: setVisibleErrorDataContext,\n setMountedFieldState: setMountedFieldStateDataContext,\n setFieldEventListener,\n errors: dataContextErrors,\n showAllErrors,\n contextErrorMessages,\n fieldDisplayValueRef,\n existingFieldsRef,\n } = dataContext || {}\n const onChangeContext = dataContext?.props?.onChange\n\n const disabled = disabledProp ?? props.readOnly\n const inFieldBlock = Boolean(fieldBlockContext)\n const {\n setFieldState: setFieldStateFieldBlock,\n showFieldError: showFieldErrorFieldBlock,\n mountedFieldsRef: mountedFieldsRefFieldBlock,\n } = fieldBlockContext || {}\n const {\n handleChange: handleChangeIterateContext,\n index: iterateIndex,\n arrayValue: iterateArrayValue,\n } = iterateItemContext || {}\n const { path: sectionPath, errorPrioritization } = sectionContext || {}\n const {\n setFieldError: setFieldErrorBoundary,\n setVisibleError: setVisibleErrorBoundary,\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 })\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 externalValue =\n transformers.current.transformIn(\n useExternalValue<Value>({\n path,\n itemPath,\n value: valueProp,\n transformers,\n emptyValue,\n })\n ) ?? defaultValueRef.current\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 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 // Error handling\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>(\n 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 dataContextError = useMemo(() => {\n return path ? dataContextErrors?.[identifier] : undefined\n }, [dataContextErrors, identifier, path])\n const contextErrorRef = useRef<Error | FormError | undefined>(\n dataContextError\n )\n\n const onChangeValidatorRef = useRef(validator)\n useUpdateEffect(() => {\n onChangeValidatorRef.current = validator\n }, [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 validatedValue = 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 validator: 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] || eventPool.current[key].pending) {\n continue\n }\n\n const { fn, runAsync } = eventPool.current[key] || {}\n if (fn) {\n eventPool.current[key].pending = true\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 if (!validateInitially) {\n forceUpdate()\n }\n },\n [setFieldStateDataContext, identifier, validateInitially]\n )\n\n const revealError = useCallback(() => {\n // To support \"validateInitially={false}\" prop, we need to make sure that the error is not shown initially\n if (revealErrorRef.current === false && validateInitially === false) {\n revealErrorRef.current = undefined\n return // stop here\n }\n\n if (!revealErrorRef.current) {\n revealErrorRef.current = true\n showFieldErrorFieldBlock?.(identifier, true)\n setVisibleErrorBoundary?.(identifier, !!localErrorRef.current)\n setVisibleErrorDataContext?.(identifier, !!localErrorRef.current)\n }\n }, [\n identifier,\n setVisibleErrorDataContext,\n setVisibleErrorBoundary,\n showFieldErrorFieldBlock,\n validateInitially,\n ])\n\n const hideError = useCallback(() => {\n if (revealErrorRef.current) {\n revealErrorRef.current = undefined\n showFieldErrorFieldBlock?.(identifier, false)\n setVisibleErrorBoundary?.(identifier, false)\n setVisibleErrorDataContext?.(identifier, false)\n }\n }, [\n identifier,\n setVisibleErrorBoundary,\n setVisibleErrorDataContext,\n showFieldErrorFieldBlock,\n ])\n\n const getErrorMessages = useCallback(() => {\n const messages = {\n ...contextErrorMessages,\n ...contextErrorMessages?.[identifier],\n ...errorMessages,\n }\n\n return extendErrorMessagesWithTranslationMessages(\n overwriteErrorMessagesWithGivenAjvKeys(messages),\n translationRef.current\n )\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: Error | FormError | undefined): FormError | undefined => {\n if (error instanceof FormError) {\n const prepare = (error: FormError) => {\n let message = error.message\n const errorMessages = getErrorMessages()\n\n const { ajvKeyword } = error\n if (typeof ajvKeyword === 'string') {\n const ajvMessage = errorMessages?.[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 = errorMessages?.[validationRule]\n if (ajvMessage) {\n message = ajvMessage\n }\n }\n\n if (errorMessages[message]) {\n // - For when the message is e.g. Field.errorRequired or Custom.key, but delivered in the `errorMessages` object\n message = errorMessages[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 error.message = message\n\n return error\n }\n\n if (Array.isArray(error.errors)) {\n error.errors = error.errors.map(prepare)\n return error\n }\n\n return prepare(error)\n }\n\n return error\n },\n [getErrorMessages, formatMessage]\n )\n\n contextErrorRef.current = useMemo(() => {\n if (!dataContextError) {\n return undefined\n }\n const error = prepareError(dataContextError)\n if (errorChanged(error, contextErrorRef.current)) {\n return error\n }\n }, [dataContextError, prepareError])\n\n // If the error is a type error, we want to show it even if the field as not been used\n if (localErrorRef.current?.['ajvKeyword'] === 'type') {\n revealErrorRef.current = true\n }\n\n const error = revealErrorRef.current\n ? prepareError(errorProp) ??\n localErrorRef.current ??\n contextErrorRef.current\n : undefined\n\n const hasVisibleError =\n Boolean(error) || (inFieldBlock && fieldBlockContext.hasErrorProp)\n const hasError = useCallback(() => {\n return Boolean(\n errorProp ?? localErrorRef.current ?? contextErrorRef.current\n )\n }, [errorProp])\n\n const connectWithPathListenerRef = useRef(async () => {\n if (\n localErrorRef.current ||\n validateUnchanged ||\n continuousValidation\n ) {\n if (onChangeValidatorRef.current) {\n runOnChangeValidator()\n }\n }\n\n if (localErrorRef.current && onBlurValidatorRef.current) {\n runOnBlurValidator()\n }\n })\n\n const { getValueByPath } = useDataValue()\n const exportValidatorsRef = useRef(exportValidators)\n exportValidatorsRef.current = exportValidators\n const additionalArgs = useMemo(() => {\n const errorMessages = getErrorMessages()\n\n const args: ValidatorAdditionalArgs<Value> = {\n /** @deprecated – can be removed in v11 */\n ...errorMessages,\n\n errorMessages,\n validators: exportValidatorsRef.current,\n connectWithPath: (path) => {\n setFieldEventListener?.(\n path,\n 'onPathChange',\n connectWithPathListenerRef.current\n )\n\n return {\n getValue: () => getValueByPath(path),\n }\n },\n }\n\n return args\n }, [getErrorMessages, getValueByPath, setFieldEventListener])\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 for (const validator of result) {\n if (!hasBeenCalledRef(validator)) {\n const result = await callValidatorFnAsync(validator, value)\n if (result instanceof Error) {\n callStackRef.current = []\n return result\n }\n }\n }\n\n callStackRef.current = []\n } else {\n return result\n }\n },\n [additionalArgs, hasBeenCalledRef]\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 for (const validator of result) {\n if (!hasBeenCalledRef(validator)) {\n const result = callValidatorFnSync(validator, value)\n if (result instanceof Error) {\n callStackRef.current = []\n return result\n }\n }\n }\n\n callStackRef.current = []\n } else {\n return result\n }\n },\n [additionalArgs, callValidatorFnAsync, hasBeenCalledRef]\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: Error | FormError | 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 Object.keys(errorMethodRef.current).filter(Boolean).length > 0\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 localErrorRef.current = error\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, error)\n setFieldErrorBoundary?.(identifier, error)\n\n // Set the visual states\n setFieldStateFieldBlock?.({\n stateId,\n identifier,\n type: 'error',\n content: error,\n showInitially: Boolean(inFieldBlock && validateInitially),\n })\n setFieldStateDataContext?.(identifier, error ? 'error' : undefined)\n\n forceUpdate()\n },\n [\n identifier,\n inFieldBlock,\n prepareError,\n setFieldErrorBoundary,\n setFieldErrorDataContext,\n setFieldStateDataContext,\n setFieldStateFieldBlock,\n stateId,\n validateInitially,\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 removeError = useCallback(() => {\n changedRef.current = false\n hideError()\n clearErrorState()\n }, [clearErrorState, hideError])\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 'gracefully',\n 'onChangeValidator',\n result as Error\n )\n\n if (\n (validateInitially && !changedRef.current) ||\n validateUnchanged ||\n continuousValidation ||\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 revealError()\n forceUpdate()\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 continuousValidation,\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('validator')\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 as Error)\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 [\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 validatedValue.current = null\n let initiator: ErrorInitiator = null\n\n try {\n const requiredError = transformers.current.validateRequired(value, {\n emptyValue,\n required: requiredProp ?? 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 // 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 callOnBlurValidator()\n\n if (result instanceof Error) {\n initiator = 'onBlurValidator'\n throw result\n }\n }\n\n if (isProcessActive()) {\n clearErrorState()\n }\n\n validatedValue.current = value\n } catch (error) {\n if (isProcessActive()) {\n persistErrorState('weak', initiator, error)\n }\n }\n }, [\n callOnBlurValidator,\n clearErrorState,\n disabled,\n emptyValue,\n hideError,\n persistErrorState,\n prioritizeContextSchema,\n required,\n requiredProp,\n setFieldState,\n startOnChangeValidatorValidation,\n startProcess,\n validateInitially,\n validateUnchanged,\n ])\n\n const handleError = useCallback(() => {\n if (\n continuousValidation ||\n (continuousValidation !== 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 continuousValidation 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 }, [continuousValidation, hideError, revealError])\n\n const getEventArgs = useCallback(\n ({\n eventName,\n additionalArgs,\n overrideValue = undefined,\n }): [Value] | [Value, AdditionalEventArgs] => {\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 additionalArgs?: AdditionalEventArgs\n ) => {\n const args = getEventArgs({\n eventName: hasFocus ? 'onFocus' : 'onBlur',\n overrideValue,\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 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 === validatedValue.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\n\n if (typeof result?.error !== 'undefined') {\n if (result?.error === null) {\n removeError()\n } else {\n persistErrorState('gracefully', 'onChangeValidator', result.error)\n revealError()\n }\n }\n if (typeof result?.warning !== 'undefined') {\n warningRef.current = result.warning\n }\n if (typeof result?.info !== 'undefined') {\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: 'validator',\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 {\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) {\n handlePathChangeUnvalidatedDataContext(identifier, contextValue)\n }\n\n if (itemPath) {\n handleChangeIterateContext?.(\n makeIteratePath(itemPath, ''),\n contextValue\n )\n }\n\n addToPool(\n 'validator',\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 identifier,\n handleChangeIterateContext,\n makeIteratePath,\n handleError,\n ]\n )\n\n const setChanged = (state: boolean) => {\n changedRef.current = state\n }\n\n const setDisplayValue = useCallback(\n (path: Identifier, content: React.ReactNode) => {\n if (!path || !fieldDisplayValueRef?.current) {\n return // stop here\n }\n fieldDisplayValueRef.current[path] =\n valueRef.current === (emptyValue as unknown as Value)\n ? undefined\n : content\n },\n [emptyValue, fieldDisplayValueRef]\n )\n\n const handleChange = useCallback(\n async (\n argFromInput: Value | unknown,\n additionalArgs: AdditionalEventArgs = 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 changedRef.current = 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,\n })\n\n await yieldAsyncProcess({\n name: 'onChangeLocal',\n waitFor: [\n {\n processName: 'validator',\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,\n })\n setEventResult(onChange?.apply(this, args))\n }\n\n await runPool()\n },\n [\n asyncBehaviorIsEnabled,\n onChange,\n runPool,\n hideError,\n updateValue,\n addToPool,\n getEventArgs,\n yieldAsyncProcess,\n defineAsyncProcess,\n hasError,\n setEventResult,\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 setFieldPropsDataContext?.(identifier, props)\n\n const { activeIndex, activeIndexRef } = wizardContext || {}\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 (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 setMountedFieldStateDataContext,\n ])\n\n useEffect(() => {\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 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 return () => {\n setFieldErrorDataContext?.(identifier, undefined)\n setFieldErrorBoundary?.(identifier, undefined)\n localErrorRef.current = undefined\n }\n }, [\n identifier,\n setFieldErrorBoundary,\n setFieldErrorDataContext,\n setMountedFieldStateDataContext,\n ])\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 }, [externalValue, 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 validateValue()\n forceUpdate()\n }\n }, [externalValue]) // 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 = prepareError(dataContextError)\n if (error) {\n persistErrorState('weak', 'dataContextError', error)\n if (validateInitially) {\n handleError()\n }\n } else {\n clearErrorState()\n }\n }\n }, [\n clearErrorState,\n dataContextError,\n handleError,\n persistErrorState,\n prepareError,\n validateInitially,\n ])\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 const tmpTransValueRef = useRef<Record<Identifier, unknown>>({})\n const setContextData = useCallback(\n ({ preventUpdate = undefined } = {}) => {\n if (!hasPath && !hasItemPath) {\n return // stop here\n }\n\n let valueToStore: Value | unknown = valueProp ?? emptyValue\n\n const data = wizardContext?.prerenderFieldProps\n ? dataContext.data\n : dataContext.internalDataRef?.current\n\n // First, look for existing data in the context\n const hasValue = pointer.has(data, identifier) || identifier === '/'\n const existingValue = transformers.current.transformIn(\n identifier === '/'\n ? data\n : hasValue\n ? pointer.get(data, identifier)\n : undefined\n )\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, identifier)\n if (hasValue) {\n const sharedValue = transformers.current.transformIn(\n pointer.get(sharedState.data, identifier)\n )\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 valueToStore = defaultValueRef.current\n defaultValueRef.current = undefined\n }\n\n let skipEqualCheck = false\n\n if (hasItemPath) {\n if (existingValue === valueToStore) {\n return // stop here, don't store the same value again\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\n }\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 identifier in tmpTransValueRef.current &&\n tmpTransValueRef.current[identifier] === valueToStore\n ) {\n return // stop here, avoid infinite loop\n }\n\n const transformedValue = transformers.current.transformOut(\n valueToStore as Value,\n transformers.current.provideAdditionalArgs(valueToStore 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[identifier] = 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 (hasItemPath && iterateIndex < iterateArrayValue?.length - 1) {\n preventUpdate = true\n }\n\n // Update the data context when a pointer not exists,\n // but was given initially.\n updateDataValueDataContext?.(identifier, 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?.length,\n iterateIndex,\n updateContextDataInSync,\n updateDataValueDataContext,\n validateDataDataContext,\n valueProp,\n wizardContext?.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 externalValue, // 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 changedRef.current = false\n hideError()\n clearErrorState()\n }\n }, [clearErrorState, defaultValue, hideError, isEmptyData])\n\n useMemo(() => {\n if (updateContextDataInSync && !isEmptyData()) {\n setContextData({ preventUpdate: true })\n }\n }, [isEmptyData, updateContextDataInSync, setContextData])\n\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 'validator',\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, 'onSubmit', 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 setFieldStateFieldBlock?.({\n identifier,\n type: 'error',\n content: errorProp,\n showInitially: true,\n show: true,\n })\n setFieldStateFieldBlock?.({\n identifier,\n type: 'warning',\n content: warning,\n showInitially: true,\n show: true,\n })\n setFieldStateFieldBlock?.({\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[identifier] = true\n }\n }\n }\n }, [\n errorProp,\n identifier,\n inFieldBlock,\n info,\n mountedFieldsRefFieldBlock,\n setFieldStateFieldBlock,\n warning,\n ])\n\n const infoRef = useRef<React.ReactNode>(info)\n const warningRef = useRef<React.ReactNode>(warning)\n useUpdateEffect(() => {\n infoRef.current = info\n warningRef.current = warning\n forceUpdate()\n }, [info, warning])\n\n const connections = useMemo(() => {\n return {\n setEventResult,\n }\n }, [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 (error) {\n htmlAttributes['aria-invalid'] = error ? '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[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 error && stateIds.error,\n warning && stateIds.warning,\n info && stateIds.info,\n ].filter(Boolean)\n )\n }\n } else {\n const ids = [\n (error || errorProp) && `${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 fieldBlockProps = {\n /** Documented APIs */\n info: !inFieldBlock ? infoRef.current : undefined,\n warning: !inFieldBlock ? warningRef.current : undefined,\n error: !inFieldBlock ? error : undefined,\n required,\n labelSuffix: props.labelSuffix,\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 }\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: hasVisibleError,\n isChanged: Boolean(changedRef.current),\n props,\n htmlAttributes,\n setHasFocus,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n setChanged,\n setDisplayValue,\n forceUpdate,\n\n /** Internal */\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?: AdditionalEventArgs\n ) => void\n handleFocus: () => void\n handleBlur: () => void\n handleChange: (\n value: Value | unknown,\n additionalArgs?: AdditionalEventArgs\n ) => void\n updateValue: (value: Value) => void\n setChanged: (state: boolean) => void\n setDisplayValue: (path: Identifier, value: React.ReactNode) => void\n forceUpdate: () => void\n hasError?: boolean\n\n /** Internal */\n dataContext: ContextState\n fieldState: SubmitState\n}\n\nfunction resolveValidatingState(state: SubmitStateWithValidating) {\n return state === 'validating' ? 'pending' : state\n}\n"],"mappings":"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"}
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","_SnapshotContext","_useProcessManager","_usePath","_useSharedState","_isAsync","_useTranslation","_useExternalValue","_useDataValue","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","useLayoutEffect","window","React","useEffect","useFieldProps","localProps","_dataContext$props","_transformers$current","_localErrorRef$curren","_ref3","_prepareError","_this","_dataContext$props3","_props$path","_props$autoComplete","executeOnChangeRegardlessOfError","updateContextDataInSync","omitMultiplePathWarning","forceUpdateWhenContextDataIsSet","extend","useContext","FieldProviderContext","props","path","pathProp","valueProp","defaultValue","itemPath","emptyValue","required","requiredProp","disabled","disabledProp","info","warning","error","errorProp","errorMessages","onFocus","onBlur","onChange","onBlurValidator","validator","exportValidators","schema","validateInitially","validateUnchanged","continuousValidation","transformIn","transformOut","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","IterateElementContext","sectionContext","SectionContext","fieldBoundaryContext","FieldBoundaryContext","wizardContext","WizardContext","setMountedField","setMountedFieldSnapshot","SnapshotContext","isVisible","VisibilityContext","translation","useTranslation","formatMessage","translationRef","transformers","handlePathChangeUnvalidated","handlePathChangeUnvalidatedDataContext","handlePathChange","handlePathChangeDataContext","updateDataValue","updateDataValueDataContext","validateData","validateDataDataContext","setFieldState","setFieldStateDataContext","setFieldError","setFieldErrorDataContext","setFieldProps","setFieldPropsDataContext","setFieldConnection","setFieldConnectionDataContext","setVisibleError","setVisibleErrorDataContext","setMountedFieldState","setMountedFieldStateDataContext","setFieldEventListener","errors","dataContextErrors","showAllErrors","contextErrorMessages","fieldDisplayValueRef","existingFieldsRef","onChangeContext","readOnly","inFieldBlock","Boolean","disableStatusSummary","setFieldStateFieldBlock","showFieldError","showFieldErrorFieldBlock","mountedFieldsRef","mountedFieldsRefFieldBlock","handleChange","handleChangeIterateContext","index","iterateIndex","arrayValue","iterateArrayValue","sectionPath","errorPrioritization","setFieldErrorBoundary","setVisibleErrorBoundary","showBoundaryErrors","hasPath","hasItemPath","identifier","makeIteratePath","joinPath","cleanPath","usePath","defaultValueRef","externalValue","useExternalValue","valueRef","changedRef","hasFocusRef","paths","split","requiredInSchema","pathWithoutLast","slice","join","schemaPart","pointer","requiredSchemaList","Array","isArray","rootPath","replace","requiredList","map","startsWith","collected","flatMap","some","revealErrorRef","errorMethodRef","localErrorRef","localErrorInitiatorRef","dataContextError","contextErrorRef","onChangeValidatorRef","useUpdateEffect","onBlurValidatorRef","schemaValidatorRef","_dataContext$ajvInsta","ajvInstance","compile","asyncBehaviorIsEnabled","isAsync","validatedValue","changeEventResultRef","asyncProcessRef","defineAsyncProcess","useCallback","name","asyncBufferRef","resolve","validateProcesses","requestAnimationFrame","eventPool","onChangeLocal","addToPool","fn","runAsync","runPool","cb","pending","fieldStateRef","state","resolveValidatingState","revealError","hideError","getErrorMessages","messages","extendErrorMessagesWithTranslationMessages","overwriteErrorMessagesWithGivenAjvKeys","prepareError","FormError","prepare","message","ajvKeyword","ajvMessage","validationRule","messageValues","entries","reduce","msg","_ref2","includes","errorChanged","hasVisibleError","hasErrorProp","hasError","_ref4","connectWithPathListenerRef","runOnChangeValidator","runOnBlurValidator","getValueByPath","useDataValue","exportValidatorsRef","args","validators","connectWithPath","getValue","callStackRef","hasBeenCalledRef","result","callValidatorFnAsync","Error","callValidatorFnSync","hasAsyncValidator","Promise","then","stateId","persistErrorState","method","initiator","errorArg","type","content","showInitially","clearErrorState","_schemaValidatorRef$c","removeError","validatorCacheRef","onChangeValidator","revealOnChangeValidatorResult","_ref5","unchangedValue","callOnChangeValidator","tmpValue","startOnChangeValidatorValidation","callOnBlurValidator","overrideValue","revealOnBlurValidatorResult","_ref6","startOnBlurValidatorProcess","prioritizeContextSchema","schemaPath","hasContextSchema","indexOf","validateValue","isProcessActive","requiredError","isChanged","ajvErrorsToOneFormError","handleError","getEventArgs","_ref7","eventName","transformedValue","setHasFocus","hasFocus","isFocused","yieldAsyncProcess","_ref8","waitFor","_ref9","processName","withStates","hasValue","hasMatchingValue","handleChangeEventResult","warningRef","infoRef","success","setEventResult","callOnChangeContext","updateValue","newValue","_transformers$current2","currentValue","contextValue","setChanged","setDisplayValue","argFromInput","handleFocus","handleBlur","activeIndex","activeIndexRef","activeIndexTmpRef","isPreMounted","wasStepChange","isMounted","process","env","NODE_ENV","existingFields","warn","delete","_dataContext$ajvInsta2","externalValueDidChangeRef","tmpTransValueRef","setContextData","_dataContext$internal","preventUpdate","valueToStore","data","prerenderFieldProps","internalDataRef","existingValue","sharedState","createSharedState","sharedValue","hasDefaultValue","skipEqualCheck","clearedData","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","fieldBlockProps","label","labelDescription","labelSuffix","layout","layoutOptions","fieldState","labelHeight","sharedData","useSharedState","autoComplete"],"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 AdditionalEventArgs,\n SubmitState,\n EventReturnWithStateObjectAndSuccess,\n EventStateObjectWithSuccess,\n ValidatorAdditionalArgs,\n Validator,\n Identifier,\n} from '../types'\nimport { Context as DataContext, ContextState } from '../DataContext'\nimport { clearedData } from '../DataContext/Provider/Provider'\nimport FieldProviderContext from '../Field/Provider/FieldProviderContext'\nimport { combineDescribedBy, warn } 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 IterateElementContext 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 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 | 'validator'\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 | '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 } = {}\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,\n warning,\n error: errorProp,\n errorMessages,\n onFocus,\n onBlur,\n onChange,\n onBlurValidator,\n validator,\n exportValidators,\n schema,\n validateInitially,\n validateUnchanged,\n continuousValidation,\n transformIn = (value: Value) => value,\n transformOut = (value: Value) => value,\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: AdditionalEventArgs\n ) => additionalArgs,\n fromExternal = (value: Value) => value,\n validateRequired = (value, { emptyValue, required, error }) => {\n const res =\n required &&\n ((value as unknown) === emptyValue ||\n (typeof emptyValue === 'undefined' && value === ''))\n ? error\n : undefined\n\n return res\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(IterateElementContext)\n const sectionContext = useContext(SectionContext)\n const fieldBoundaryContext = useContext(FieldBoundaryContext)\n const wizardContext = useContext(WizardContext)\n const { setMountedField: setMountedFieldSnapshot } =\n useContext(SnapshotContext) || {}\n const { isVisible } = useContext(VisibilityContext) || {}\n\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 setFieldProps: setFieldPropsDataContext,\n setFieldConnection: setFieldConnectionDataContext,\n setVisibleError: setVisibleErrorDataContext,\n setMountedFieldState: setMountedFieldStateDataContext,\n setFieldEventListener,\n errors: dataContextErrors,\n showAllErrors,\n contextErrorMessages,\n fieldDisplayValueRef,\n existingFieldsRef,\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 setFieldState: setFieldStateFieldBlock,\n showFieldError: showFieldErrorFieldBlock,\n mountedFieldsRef: mountedFieldsRefFieldBlock,\n } = inFieldBlock ? fieldBlockContext : ({} as FieldBlockContextProps)\n const {\n handleChange: handleChangeIterateContext,\n index: iterateIndex,\n arrayValue: iterateArrayValue,\n } = iterateItemContext || {}\n const { path: sectionPath, errorPrioritization } = sectionContext || {}\n const {\n setFieldError: setFieldErrorBoundary,\n setVisibleError: setVisibleErrorBoundary,\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 })\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 externalValue =\n transformers.current.transformIn(\n useExternalValue<Value>({\n path,\n itemPath,\n value: valueProp,\n transformers,\n emptyValue,\n })\n ) ?? defaultValueRef.current\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 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 // Error handling\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>(\n 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 dataContextError = useMemo(() => {\n return path ? dataContextErrors?.[identifier] : undefined\n }, [dataContextErrors, identifier, path])\n const contextErrorRef = useRef<Error | FormError | undefined>(\n dataContextError\n )\n\n const onChangeValidatorRef = useRef(validator)\n useUpdateEffect(() => {\n onChangeValidatorRef.current = validator\n }, [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 validatedValue = 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 validator: 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] || eventPool.current[key].pending) {\n continue\n }\n\n const { fn, runAsync } = eventPool.current[key] || {}\n if (fn) {\n eventPool.current[key].pending = true\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 if (!validateInitially) {\n forceUpdate()\n }\n },\n [setFieldStateDataContext, identifier, validateInitially]\n )\n\n const revealError = useCallback(() => {\n // To support \"validateInitially={false}\" prop, we need to make sure that the error is not shown initially\n if (revealErrorRef.current === false && validateInitially === false) {\n revealErrorRef.current = undefined\n return // stop here\n }\n\n if (!revealErrorRef.current) {\n revealErrorRef.current = true\n showFieldErrorFieldBlock?.(identifier, true)\n setVisibleErrorBoundary?.(identifier, !!localErrorRef.current)\n setVisibleErrorDataContext?.(identifier, !!localErrorRef.current)\n }\n }, [\n identifier,\n setVisibleErrorDataContext,\n setVisibleErrorBoundary,\n showFieldErrorFieldBlock,\n validateInitially,\n ])\n\n const hideError = useCallback(() => {\n if (revealErrorRef.current) {\n revealErrorRef.current = undefined\n showFieldErrorFieldBlock?.(identifier, false)\n setVisibleErrorBoundary?.(identifier, false)\n setVisibleErrorDataContext?.(identifier, false)\n }\n }, [\n identifier,\n setVisibleErrorBoundary,\n setVisibleErrorDataContext,\n showFieldErrorFieldBlock,\n ])\n\n const getErrorMessages = useCallback(() => {\n const messages = {\n ...contextErrorMessages,\n ...contextErrorMessages?.[identifier],\n ...errorMessages,\n }\n\n return extendErrorMessagesWithTranslationMessages(\n overwriteErrorMessagesWithGivenAjvKeys(messages),\n translationRef.current\n )\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: Error | FormError | undefined): FormError | undefined => {\n if (error instanceof FormError) {\n const prepare = (error: FormError) => {\n let message = error.message\n const errorMessages = getErrorMessages()\n\n const { ajvKeyword } = error\n if (typeof ajvKeyword === 'string') {\n const ajvMessage = errorMessages?.[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 = errorMessages?.[validationRule]\n if (ajvMessage) {\n message = ajvMessage\n }\n }\n\n if (errorMessages[message]) {\n // - For when the message is e.g. Field.errorRequired or Custom.key, but delivered in the `errorMessages` object\n message = errorMessages[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 error.message = message\n\n return error\n }\n\n if (Array.isArray(error.errors)) {\n error.errors = error.errors.map(prepare)\n return error\n }\n\n return prepare(error)\n }\n\n return error\n },\n [getErrorMessages, formatMessage]\n )\n\n contextErrorRef.current = useMemo(() => {\n if (!dataContextError) {\n return undefined\n }\n const error = prepareError(dataContextError)\n if (errorChanged(error, contextErrorRef.current)) {\n return error\n }\n }, [dataContextError, prepareError])\n\n // If the error is a type error, we want to show it even if the field as not been used\n if (localErrorRef.current?.['ajvKeyword'] === 'type') {\n revealErrorRef.current = true\n }\n\n const error = revealErrorRef.current\n ? prepareError(errorProp) ??\n localErrorRef.current ??\n contextErrorRef.current\n : undefined\n\n const hasVisibleError =\n Boolean(error) || (inFieldBlock && fieldBlockContext.hasErrorProp)\n const hasError = useCallback(() => {\n return Boolean(\n errorProp ?? localErrorRef.current ?? contextErrorRef.current\n )\n }, [errorProp])\n\n const connectWithPathListenerRef = useRef(async () => {\n if (\n localErrorRef.current ||\n validateUnchanged ||\n continuousValidation\n ) {\n if (onChangeValidatorRef.current) {\n runOnChangeValidator()\n }\n }\n\n if (localErrorRef.current && onBlurValidatorRef.current) {\n runOnBlurValidator()\n }\n })\n\n const { getValueByPath } = useDataValue()\n const exportValidatorsRef = useRef(exportValidators)\n exportValidatorsRef.current = exportValidators\n const additionalArgs = useMemo(() => {\n const errorMessages = getErrorMessages()\n\n const args: ValidatorAdditionalArgs<Value> = {\n /** @deprecated – can be removed in v11 */\n ...errorMessages,\n\n errorMessages,\n validators: exportValidatorsRef.current,\n connectWithPath: (path) => {\n setFieldEventListener?.(\n path,\n 'onPathChange',\n connectWithPathListenerRef.current\n )\n\n return {\n getValue: () => getValueByPath(path),\n }\n },\n }\n\n return args\n }, [getErrorMessages, getValueByPath, setFieldEventListener])\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 for (const validator of result) {\n if (!hasBeenCalledRef(validator)) {\n const result = await callValidatorFnAsync(validator, value)\n if (result instanceof Error) {\n callStackRef.current = []\n return result\n }\n }\n }\n\n callStackRef.current = []\n } else {\n return result\n }\n },\n [additionalArgs, hasBeenCalledRef]\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 for (const validator of result) {\n if (!hasBeenCalledRef(validator)) {\n const result = callValidatorFnSync(validator, value)\n if (result instanceof Error) {\n callStackRef.current = []\n return result\n }\n }\n }\n\n callStackRef.current = []\n } else {\n return result\n }\n },\n [additionalArgs, callValidatorFnAsync, hasBeenCalledRef]\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: Error | FormError | 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 Object.keys(errorMethodRef.current).filter(Boolean).length > 0\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 localErrorRef.current = error\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, error)\n setFieldErrorBoundary?.(identifier, error)\n\n // Set the visual states\n setFieldStateFieldBlock?.({\n stateId,\n identifier,\n type: 'error',\n content: error,\n showInitially: Boolean(inFieldBlock && validateInitially),\n })\n setFieldStateDataContext?.(identifier, error ? 'error' : undefined)\n\n forceUpdate()\n },\n [\n identifier,\n inFieldBlock,\n prepareError,\n setFieldErrorBoundary,\n setFieldErrorDataContext,\n setFieldStateDataContext,\n setFieldStateFieldBlock,\n stateId,\n validateInitially,\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 removeError = useCallback(() => {\n changedRef.current = false\n hideError()\n clearErrorState()\n }, [clearErrorState, hideError])\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 'gracefully',\n 'onChangeValidator',\n result as Error\n )\n\n if (\n (validateInitially && !changedRef.current) ||\n validateUnchanged ||\n continuousValidation ||\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 revealError()\n forceUpdate()\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 continuousValidation,\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('validator')\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 as Error)\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 [\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 validatedValue.current = null\n let initiator: ErrorInitiator = null\n\n try {\n const requiredError = transformers.current.validateRequired(value, {\n emptyValue,\n required: requiredProp ?? 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 // 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 callOnBlurValidator()\n\n if (result instanceof Error) {\n initiator = 'onBlurValidator'\n throw result\n }\n }\n\n if (isProcessActive()) {\n clearErrorState()\n }\n\n validatedValue.current = value\n } catch (error) {\n if (isProcessActive()) {\n persistErrorState('weak', initiator, error)\n }\n }\n }, [\n callOnBlurValidator,\n clearErrorState,\n disabled,\n emptyValue,\n hideError,\n persistErrorState,\n prioritizeContextSchema,\n required,\n requiredProp,\n setFieldState,\n startOnChangeValidatorValidation,\n startProcess,\n validateInitially,\n validateUnchanged,\n ])\n\n const handleError = useCallback(() => {\n if (\n continuousValidation ||\n (continuousValidation !== 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 continuousValidation 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 }, [continuousValidation, hideError, revealError])\n\n const getEventArgs = useCallback(\n ({\n eventName,\n additionalArgs,\n overrideValue = undefined,\n }): [Value] | [Value, AdditionalEventArgs] => {\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 additionalArgs?: AdditionalEventArgs\n ) => {\n const args = getEventArgs({\n eventName: hasFocus ? 'onFocus' : 'onBlur',\n overrideValue,\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 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 === validatedValue.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\n\n if (typeof result?.error !== 'undefined') {\n if (result?.error === null) {\n removeError()\n } else {\n persistErrorState('gracefully', 'onChangeValidator', result.error)\n revealError()\n }\n }\n if (typeof result?.warning !== 'undefined') {\n warningRef.current = result.warning\n }\n if (typeof result?.info !== 'undefined') {\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: 'validator',\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 {\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) {\n handlePathChangeUnvalidatedDataContext(identifier, contextValue)\n }\n\n if (itemPath) {\n handleChangeIterateContext?.(\n makeIteratePath(itemPath, ''),\n contextValue\n )\n }\n\n addToPool(\n 'validator',\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 identifier,\n handleChangeIterateContext,\n makeIteratePath,\n handleError,\n ]\n )\n\n const setChanged = (state: boolean) => {\n changedRef.current = state\n }\n\n const setDisplayValue = useCallback(\n (path: Identifier, content: React.ReactNode) => {\n if (!path || !fieldDisplayValueRef?.current) {\n return // stop here\n }\n fieldDisplayValueRef.current[path] =\n valueRef.current === (emptyValue as unknown as Value)\n ? undefined\n : content\n },\n [emptyValue, fieldDisplayValueRef]\n )\n\n const handleChange = useCallback(\n async (\n argFromInput: Value | unknown,\n additionalArgs: AdditionalEventArgs = 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 changedRef.current = 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,\n })\n\n await yieldAsyncProcess({\n name: 'onChangeLocal',\n waitFor: [\n {\n processName: 'validator',\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,\n })\n setEventResult(onChange?.apply(this, args))\n }\n\n await runPool()\n },\n [\n asyncBehaviorIsEnabled,\n onChange,\n runPool,\n hideError,\n updateValue,\n addToPool,\n getEventArgs,\n yieldAsyncProcess,\n defineAsyncProcess,\n hasError,\n setEventResult,\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 setFieldPropsDataContext?.(identifier, props)\n\n const { activeIndex, activeIndexRef } = wizardContext || {}\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 (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 setMountedFieldStateDataContext,\n ])\n\n useEffect(() => {\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 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 return () => {\n setFieldErrorDataContext?.(identifier, undefined)\n setFieldErrorBoundary?.(identifier, undefined)\n localErrorRef.current = undefined\n }\n }, [\n identifier,\n setFieldErrorBoundary,\n setFieldErrorDataContext,\n setMountedFieldStateDataContext,\n ])\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 }, [externalValue, 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 validateValue()\n forceUpdate()\n }\n }, [externalValue]) // 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 = prepareError(dataContextError)\n if (error) {\n persistErrorState('weak', 'dataContextError', error)\n if (validateInitially) {\n handleError()\n }\n } else {\n clearErrorState()\n }\n }\n }, [\n clearErrorState,\n dataContextError,\n handleError,\n persistErrorState,\n prepareError,\n validateInitially,\n ])\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 const tmpTransValueRef = useRef<Record<Identifier, unknown>>({})\n const setContextData = useCallback(\n ({ preventUpdate = undefined } = {}) => {\n if (!hasPath && !hasItemPath) {\n return // stop here\n }\n\n let valueToStore: Value | unknown = valueProp ?? emptyValue\n\n const data = wizardContext?.prerenderFieldProps\n ? dataContext.data\n : dataContext.internalDataRef?.current\n\n // First, look for existing data in the context\n const hasValue = pointer.has(data, identifier) || identifier === '/'\n const existingValue = transformers.current.transformIn(\n identifier === '/'\n ? data\n : hasValue\n ? pointer.get(data, identifier)\n : undefined\n )\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, identifier)\n if (hasValue) {\n const sharedValue = transformers.current.transformIn(\n pointer.get(sharedState.data, identifier)\n )\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 valueToStore = defaultValueRef.current\n defaultValueRef.current = undefined\n }\n\n let skipEqualCheck = false\n\n if (hasItemPath) {\n if (existingValue === valueToStore) {\n return // stop here, don't store the same value again\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\n }\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 identifier in tmpTransValueRef.current &&\n tmpTransValueRef.current[identifier] === valueToStore\n ) {\n return // stop here, avoid infinite loop\n }\n\n const transformedValue = transformers.current.transformOut(\n valueToStore as Value,\n transformers.current.provideAdditionalArgs(valueToStore 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[identifier] = 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 (hasItemPath && iterateIndex < iterateArrayValue?.length - 1) {\n preventUpdate = true\n }\n\n // Update the data context when a pointer not exists,\n // but was given initially.\n updateDataValueDataContext?.(identifier, 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?.length,\n iterateIndex,\n updateContextDataInSync,\n updateDataValueDataContext,\n validateDataDataContext,\n valueProp,\n wizardContext?.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 externalValue, // 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 changedRef.current = false\n hideError()\n clearErrorState()\n }\n }, [clearErrorState, defaultValue, hideError, isEmptyData])\n\n useMemo(() => {\n if (updateContextDataInSync && !isEmptyData()) {\n setContextData({ preventUpdate: true })\n }\n }, [isEmptyData, updateContextDataInSync, setContextData])\n\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 'validator',\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, 'onSubmit', 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 setFieldStateFieldBlock?.({\n identifier,\n type: 'error',\n content: errorProp,\n showInitially: true,\n show: true,\n })\n setFieldStateFieldBlock?.({\n identifier,\n type: 'warning',\n content: warning,\n showInitially: true,\n show: true,\n })\n setFieldStateFieldBlock?.({\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[identifier] = true\n }\n }\n }\n }, [\n errorProp,\n identifier,\n inFieldBlock,\n info,\n mountedFieldsRefFieldBlock,\n setFieldStateFieldBlock,\n warning,\n ])\n\n const infoRef = useRef<React.ReactNode>(info)\n const warningRef = useRef<React.ReactNode>(warning)\n useUpdateEffect(() => {\n infoRef.current = info\n warningRef.current = warning\n forceUpdate()\n }, [info, warning])\n\n const connections = useMemo(() => {\n return {\n setEventResult,\n }\n }, [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 (error) {\n htmlAttributes['aria-invalid'] = error ? '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[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 error && stateIds.error,\n warning && stateIds.warning,\n info && stateIds.info,\n ].filter(Boolean)\n )\n }\n } else {\n const ids = [\n (error || errorProp) && `${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 fieldBlockProps = {\n /** Documented APIs */\n info: !inFieldBlock ? infoRef.current : undefined,\n warning: !inFieldBlock ? warningRef.current : undefined,\n error: !inFieldBlock ? error : undefined,\n required,\n label: props.label,\n labelDescription: props.labelDescription,\n labelSuffix: props.labelSuffix,\n layout: props.layout,\n layoutOptions: props.layoutOptions,\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: hasVisibleError,\n isChanged: Boolean(changedRef.current),\n props,\n htmlAttributes,\n setHasFocus,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n setChanged,\n setDisplayValue,\n forceUpdate,\n\n /** Internal */\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?: AdditionalEventArgs\n ) => void\n handleFocus: () => void\n handleBlur: () => void\n handleChange: (\n value: Value | unknown,\n additionalArgs?: AdditionalEventArgs\n ) => void\n updateValue: (value: Value) => void\n setChanged: (state: boolean) => void\n setDisplayValue: (path: Identifier, value: React.ReactNode) => void\n forceUpdate: () => void\n hasError?: boolean\n\n /** Internal */\n dataContext: ContextState\n fieldState: SubmitState\n}\n\nfunction resolveValidatingState(state: SubmitStateWithValidating) {\n return state === 'validating' ? 'pending' : state\n}\n"],"mappings":"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"}