@dnb/eufemia 10.28.0 → 10.30.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 (828) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/cjs/components/aria-live/useAriaLive.d.ts +1 -1
  3. package/cjs/components/autocomplete/Autocomplete.d.ts +19 -5
  4. package/cjs/components/dropdown/Dropdown.d.ts +22 -5
  5. package/cjs/components/height-animation/HeightAnimationInstance.js +5 -0
  6. package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
  7. package/cjs/components/icon/style/dnb-icon.css +1 -0
  8. package/cjs/components/icon/style/dnb-icon.min.css +1 -1
  9. package/cjs/components/icon/style/dnb-icon.scss +1 -0
  10. package/cjs/components/progress-indicator/ProgressIndicator.d.ts +2 -52
  11. package/cjs/components/progress-indicator/ProgressIndicator.js +27 -14
  12. package/cjs/components/progress-indicator/ProgressIndicator.js.map +1 -1
  13. package/cjs/components/progress-indicator/ProgressIndicatorCircular.d.ts +2 -23
  14. package/cjs/components/progress-indicator/ProgressIndicatorCircular.js +63 -27
  15. package/cjs/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
  16. package/cjs/components/progress-indicator/ProgressIndicatorDocs.d.ts +1 -0
  17. package/cjs/components/progress-indicator/ProgressIndicatorDocs.js +45 -11
  18. package/cjs/components/progress-indicator/ProgressIndicatorDocs.js.map +1 -1
  19. package/cjs/components/progress-indicator/ProgressIndicatorLinear.d.ts +2 -22
  20. package/cjs/components/progress-indicator/ProgressIndicatorLinear.js +18 -10
  21. package/cjs/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
  22. package/cjs/components/progress-indicator/style/dnb-progress-indicator.css +52 -55
  23. package/cjs/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  24. package/cjs/components/progress-indicator/style/dnb-progress-indicator.scss +65 -69
  25. package/cjs/components/progress-indicator/types.d.ts +95 -0
  26. package/cjs/components/progress-indicator/types.js +11 -0
  27. package/cjs/components/progress-indicator/types.js.map +1 -0
  28. package/cjs/extensions/forms/DataContext/Context.d.ts +7 -2
  29. package/cjs/extensions/forms/DataContext/Context.js +0 -2
  30. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  31. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +30 -5
  32. package/cjs/extensions/forms/DataContext/Provider/Provider.js +69 -35
  33. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  34. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +27 -2
  35. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  36. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +1 -1
  37. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  38. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +5 -2
  39. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  40. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +5 -2
  41. package/cjs/extensions/forms/Field/Name/Name.d.ts +10 -0
  42. package/cjs/extensions/forms/Field/Name/Name.js +73 -0
  43. package/cjs/extensions/forms/Field/Name/Name.js.map +1 -0
  44. package/cjs/extensions/forms/Field/Name/NameDocs.d.ts +2 -0
  45. package/cjs/extensions/forms/Field/Name/NameDocs.js +15 -0
  46. package/cjs/extensions/forms/Field/Name/NameDocs.js.map +1 -0
  47. package/cjs/extensions/forms/Field/Name/index.d.ts +2 -0
  48. package/cjs/extensions/forms/Field/Name/index.js +27 -0
  49. package/cjs/extensions/forms/Field/Name/index.js.map +1 -0
  50. package/cjs/extensions/forms/Field/Number/Number.d.ts +2 -2
  51. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  52. package/cjs/extensions/forms/Field/Option/Option.d.ts +2 -0
  53. package/cjs/extensions/forms/Field/Option/Option.js +21 -0
  54. package/cjs/extensions/forms/Field/Option/Option.js.map +1 -1
  55. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  56. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +25 -0
  57. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  58. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  59. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  60. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +11 -4
  61. package/cjs/extensions/forms/Field/Selection/Selection.js +20 -32
  62. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  63. package/cjs/extensions/forms/Field/Selection/SelectionDocs.d.ts +2 -0
  64. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js +45 -0
  65. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -0
  66. package/cjs/extensions/forms/Field/String/String.d.ts +2 -2
  67. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  68. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  69. package/cjs/extensions/forms/Field/index.js +7 -0
  70. package/cjs/extensions/forms/Field/index.js.map +1 -1
  71. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -3
  72. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  73. package/cjs/extensions/forms/Form/FieldProps/FieldProps.d.ts +13 -0
  74. package/cjs/extensions/forms/Form/FieldProps/FieldProps.js +80 -0
  75. package/cjs/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -0
  76. package/cjs/extensions/forms/Form/FieldProps/FieldPropsContext.d.ts +8 -0
  77. package/cjs/extensions/forms/Form/FieldProps/FieldPropsContext.js +15 -0
  78. package/cjs/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +1 -0
  79. package/cjs/extensions/forms/Form/FieldProps/FieldPropsDocs.d.ts +2 -0
  80. package/cjs/extensions/forms/Form/FieldProps/FieldPropsDocs.js +18 -0
  81. package/cjs/extensions/forms/Form/FieldProps/FieldPropsDocs.js.map +1 -0
  82. package/cjs/extensions/forms/Form/FieldProps/index.d.ts +2 -0
  83. package/cjs/extensions/forms/Form/FieldProps/index.js +27 -0
  84. package/cjs/extensions/forms/Form/FieldProps/index.js.map +1 -0
  85. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  86. package/cjs/extensions/forms/Form/Handler/Handler.js +18 -4
  87. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  88. package/cjs/extensions/forms/Form/MainHeading/MainHeading.js +1 -1
  89. package/cjs/extensions/forms/Form/MainHeading/MainHeading.js.map +1 -1
  90. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +3 -3
  91. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  92. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.scss +1 -1
  93. package/cjs/extensions/forms/Form/SubHeading/SubHeading.js +1 -1
  94. package/cjs/extensions/forms/Form/SubHeading/SubHeading.js.map +1 -1
  95. package/cjs/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.css +2 -2
  96. package/cjs/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.min.css +1 -1
  97. package/cjs/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.scss +1 -1
  98. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +2 -2
  99. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -1
  100. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +13 -13
  101. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -1
  102. package/cjs/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +1 -1
  103. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +4 -1
  104. package/cjs/extensions/forms/Form/Visibility/Visibility.js +7 -4
  105. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  106. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +5 -0
  107. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  108. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  109. package/cjs/extensions/forms/Form/index.js +7 -0
  110. package/cjs/extensions/forms/Form/index.js.map +1 -1
  111. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -4
  112. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  113. package/cjs/extensions/forms/Iterate/Array/Array.js +2 -2
  114. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  115. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -1
  116. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  117. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js +1 -1
  118. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  119. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  120. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  121. package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  122. package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  123. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +1 -1
  124. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  125. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.css +14 -14
  126. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  127. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.scss +1 -1
  128. package/cjs/extensions/forms/Value/Boolean/Boolean.js +8 -3
  129. package/cjs/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  130. package/cjs/extensions/forms/Value/Name/Name.d.ts +10 -0
  131. package/cjs/extensions/forms/Value/Name/Name.js +50 -0
  132. package/cjs/extensions/forms/Value/Name/Name.js.map +1 -0
  133. package/cjs/extensions/forms/Value/Name/index.d.ts +2 -0
  134. package/cjs/extensions/forms/Value/Name/index.js +27 -0
  135. package/cjs/extensions/forms/Value/Name/index.js.map +1 -0
  136. package/cjs/extensions/forms/Value/OrganizationNumber/OrganizationNumber.d.ts +7 -0
  137. package/cjs/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js +36 -0
  138. package/cjs/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js.map +1 -0
  139. package/cjs/extensions/forms/Value/OrganizationNumber/index.d.ts +2 -0
  140. package/cjs/extensions/forms/Value/OrganizationNumber/index.js +27 -0
  141. package/cjs/extensions/forms/Value/OrganizationNumber/index.js.map +1 -0
  142. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.d.ts +7 -0
  143. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +41 -0
  144. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -0
  145. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  146. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +20 -0
  147. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  148. package/cjs/extensions/forms/Value/PostalCodeAndCity/index.d.ts +2 -0
  149. package/cjs/extensions/forms/Value/PostalCodeAndCity/index.js +27 -0
  150. package/cjs/extensions/forms/Value/PostalCodeAndCity/index.js.map +1 -0
  151. package/cjs/extensions/forms/Value/String/String.js +8 -3
  152. package/cjs/extensions/forms/Value/String/String.js.map +1 -1
  153. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js +1 -1
  154. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  155. package/cjs/extensions/forms/Value/ValueDocs.js +6 -1
  156. package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -1
  157. package/cjs/extensions/forms/Value/index.d.ts +3 -0
  158. package/cjs/extensions/forms/Value/index.js +21 -0
  159. package/cjs/extensions/forms/Value/index.js.map +1 -1
  160. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +2 -1
  161. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  162. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +11 -6
  163. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  164. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +11 -3
  165. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +17 -52
  166. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  167. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +9 -0
  168. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +53 -0
  169. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -0
  170. package/cjs/extensions/forms/Wizard/Container/useStepAnimation.d.ts +4 -0
  171. package/cjs/extensions/forms/Wizard/Container/useStepAnimation.js +37 -0
  172. package/cjs/extensions/forms/Wizard/Container/useStepAnimation.js.map +1 -0
  173. package/cjs/extensions/forms/Wizard/Step/Step.js +13 -1
  174. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  175. package/cjs/extensions/forms/Wizard/hooks/useStep.js +5 -2
  176. package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  177. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +29 -2
  178. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  179. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss +35 -2
  180. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +9 -0
  181. package/cjs/extensions/forms/constants/locales/en-GB.js +12 -3
  182. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  183. package/cjs/extensions/forms/constants/locales/en-US.d.ts +9 -0
  184. package/cjs/extensions/forms/constants/locales/index.d.ts +18 -0
  185. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +9 -0
  186. package/cjs/extensions/forms/constants/locales/nb-NO.js +11 -2
  187. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  188. package/cjs/extensions/forms/hooks/useFieldProps.js +8 -4
  189. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  190. package/cjs/extensions/forms/hooks/useTranslation.js +3 -1
  191. package/cjs/extensions/forms/hooks/useTranslation.js.map +1 -1
  192. package/cjs/extensions/forms/style/dnb-forms.css +77 -43
  193. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  194. package/cjs/extensions/forms/types.d.ts +3 -2
  195. package/cjs/extensions/forms/types.js.map +1 -1
  196. package/cjs/fragments/drawer-list/DrawerList.d.ts +8 -4
  197. package/cjs/shared/Context.d.ts +4 -4
  198. package/cjs/shared/Context.js.map +1 -1
  199. package/cjs/shared/Eufemia.d.ts +1 -1
  200. package/cjs/shared/Eufemia.js +2 -2
  201. package/cjs/shared/Eufemia.js.map +1 -1
  202. package/cjs/shared/component-helper.d.ts +1 -0
  203. package/cjs/shared/component-helper.js +8 -1
  204. package/cjs/shared/component-helper.js.map +1 -1
  205. package/cjs/shared/helpers/assignPropsWithContext.d.ts +1 -0
  206. package/cjs/shared/helpers/assignPropsWithContext.js +22 -0
  207. package/cjs/shared/helpers/assignPropsWithContext.js.map +1 -0
  208. package/cjs/shared/helpers/extendPropsWithContext.d.ts +1 -0
  209. package/cjs/shared/helpers/extendPropsWithContext.js +1 -0
  210. package/cjs/shared/helpers/extendPropsWithContext.js.map +1 -1
  211. package/cjs/shared/helpers/filterValidProps.d.ts +1 -0
  212. package/cjs/shared/helpers/filterValidProps.js.map +1 -1
  213. package/cjs/shared/helpers/runCssVersionMismatchWarning.js +14 -3
  214. package/cjs/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  215. package/cjs/style/core/scopes.scss +1 -1
  216. package/cjs/style/dnb-ui-basis.css +1 -1
  217. package/cjs/style/dnb-ui-basis.min.css +1 -1
  218. package/cjs/style/dnb-ui-body.css +1 -1
  219. package/cjs/style/dnb-ui-body.min.css +1 -1
  220. package/cjs/style/dnb-ui-components.css +129 -98
  221. package/cjs/style/dnb-ui-components.min.css +2 -2
  222. package/cjs/style/dnb-ui-core.css +1 -1
  223. package/cjs/style/dnb-ui-core.min.css +1 -1
  224. package/cjs/style/dnb-ui-extensions.css +77 -43
  225. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  226. package/cjs/style/dnb-ui-forms.css +77 -43
  227. package/cjs/style/dnb-ui-forms.min.css +1 -1
  228. package/cjs/style/dnb-ui-forms.scss +1 -1
  229. package/cjs/style/themes/eiendom/basis.js +4 -0
  230. package/cjs/style/themes/eiendom/basis.js.map +1 -0
  231. package/cjs/style/themes/eiendom/index.js +5 -0
  232. package/cjs/style/themes/eiendom/index.js.map +1 -0
  233. package/cjs/style/themes/sbanken/basis.js +4 -0
  234. package/cjs/style/themes/sbanken/basis.js.map +1 -0
  235. package/cjs/style/themes/sbanken/index.js +5 -0
  236. package/cjs/style/themes/sbanken/index.js.map +1 -0
  237. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +205 -141
  238. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  239. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +77 -43
  240. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  241. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +77 -43
  242. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  243. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +205 -141
  244. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  245. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +77 -43
  246. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  247. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +77 -43
  248. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  249. package/cjs/style/themes/theme-ui/ui-theme-components.css +205 -141
  250. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  251. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +77 -43
  252. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  253. package/cjs/style/themes/theme-ui/ui-theme-forms.css +77 -43
  254. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  255. package/cjs/style/themes/ui/basis.js +4 -0
  256. package/cjs/style/themes/ui/basis.js.map +1 -0
  257. package/cjs/style/themes/ui/index.js +5 -0
  258. package/cjs/style/themes/ui/index.js.map +1 -0
  259. package/components/aria-live/useAriaLive.d.ts +1 -1
  260. package/components/autocomplete/Autocomplete.d.ts +19 -5
  261. package/components/dropdown/Dropdown.d.ts +22 -5
  262. package/components/height-animation/HeightAnimationInstance.js +5 -0
  263. package/components/height-animation/HeightAnimationInstance.js.map +1 -1
  264. package/components/icon/style/dnb-icon.css +1 -0
  265. package/components/icon/style/dnb-icon.min.css +1 -1
  266. package/components/icon/style/dnb-icon.scss +1 -0
  267. package/components/progress-indicator/ProgressIndicator.d.ts +2 -52
  268. package/components/progress-indicator/ProgressIndicator.js +27 -14
  269. package/components/progress-indicator/ProgressIndicator.js.map +1 -1
  270. package/components/progress-indicator/ProgressIndicatorCircular.d.ts +2 -23
  271. package/components/progress-indicator/ProgressIndicatorCircular.js +63 -27
  272. package/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
  273. package/components/progress-indicator/ProgressIndicatorDocs.d.ts +1 -0
  274. package/components/progress-indicator/ProgressIndicatorDocs.js +43 -10
  275. package/components/progress-indicator/ProgressIndicatorDocs.js.map +1 -1
  276. package/components/progress-indicator/ProgressIndicatorLinear.d.ts +2 -22
  277. package/components/progress-indicator/ProgressIndicatorLinear.js +18 -10
  278. package/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
  279. package/components/progress-indicator/style/dnb-progress-indicator.css +52 -55
  280. package/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  281. package/components/progress-indicator/style/dnb-progress-indicator.scss +65 -69
  282. package/components/progress-indicator/types.d.ts +95 -0
  283. package/components/progress-indicator/types.js +5 -0
  284. package/components/progress-indicator/types.js.map +1 -0
  285. package/es/components/aria-live/useAriaLive.d.ts +1 -1
  286. package/es/components/autocomplete/Autocomplete.d.ts +19 -5
  287. package/es/components/dropdown/Dropdown.d.ts +22 -5
  288. package/es/components/height-animation/HeightAnimationInstance.js +5 -0
  289. package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
  290. package/es/components/icon/style/dnb-icon.css +1 -0
  291. package/es/components/icon/style/dnb-icon.min.css +1 -1
  292. package/es/components/icon/style/dnb-icon.scss +1 -0
  293. package/es/components/progress-indicator/ProgressIndicator.d.ts +2 -52
  294. package/es/components/progress-indicator/ProgressIndicator.js +27 -14
  295. package/es/components/progress-indicator/ProgressIndicator.js.map +1 -1
  296. package/es/components/progress-indicator/ProgressIndicatorCircular.d.ts +2 -23
  297. package/es/components/progress-indicator/ProgressIndicatorCircular.js +62 -27
  298. package/es/components/progress-indicator/ProgressIndicatorCircular.js.map +1 -1
  299. package/es/components/progress-indicator/ProgressIndicatorDocs.d.ts +1 -0
  300. package/es/components/progress-indicator/ProgressIndicatorDocs.js +43 -10
  301. package/es/components/progress-indicator/ProgressIndicatorDocs.js.map +1 -1
  302. package/es/components/progress-indicator/ProgressIndicatorLinear.d.ts +2 -22
  303. package/es/components/progress-indicator/ProgressIndicatorLinear.js +18 -10
  304. package/es/components/progress-indicator/ProgressIndicatorLinear.js.map +1 -1
  305. package/es/components/progress-indicator/style/dnb-progress-indicator.css +52 -55
  306. package/es/components/progress-indicator/style/dnb-progress-indicator.min.css +1 -1
  307. package/es/components/progress-indicator/style/dnb-progress-indicator.scss +65 -69
  308. package/es/components/progress-indicator/types.d.ts +95 -0
  309. package/es/components/progress-indicator/types.js +5 -0
  310. package/es/components/progress-indicator/types.js.map +1 -0
  311. package/es/extensions/forms/DataContext/Context.d.ts +7 -2
  312. package/es/extensions/forms/DataContext/Context.js +0 -2
  313. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  314. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +30 -5
  315. package/es/extensions/forms/DataContext/Provider/Provider.js +67 -34
  316. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  317. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +27 -2
  318. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  319. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +1 -1
  320. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  321. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +5 -2
  322. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  323. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +5 -2
  324. package/es/extensions/forms/Field/Name/Name.d.ts +10 -0
  325. package/es/extensions/forms/Field/Name/Name.js +63 -0
  326. package/es/extensions/forms/Field/Name/Name.js.map +1 -0
  327. package/es/extensions/forms/Field/Name/NameDocs.d.ts +2 -0
  328. package/es/extensions/forms/Field/Name/NameDocs.js +8 -0
  329. package/es/extensions/forms/Field/Name/NameDocs.js.map +1 -0
  330. package/es/extensions/forms/Field/Name/index.d.ts +2 -0
  331. package/es/extensions/forms/Field/Name/index.js +3 -0
  332. package/es/extensions/forms/Field/Name/index.js.map +1 -0
  333. package/es/extensions/forms/Field/Number/Number.d.ts +2 -2
  334. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  335. package/es/extensions/forms/Field/Option/Option.d.ts +2 -0
  336. package/es/extensions/forms/Field/Option/Option.js +20 -0
  337. package/es/extensions/forms/Field/Option/Option.js.map +1 -1
  338. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  339. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +18 -0
  340. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  341. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  342. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  343. package/es/extensions/forms/Field/Selection/Selection.d.ts +11 -4
  344. package/es/extensions/forms/Field/Selection/Selection.js +20 -32
  345. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  346. package/es/extensions/forms/Field/Selection/SelectionDocs.d.ts +2 -0
  347. package/es/extensions/forms/Field/Selection/SelectionDocs.js +38 -0
  348. package/es/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -0
  349. package/es/extensions/forms/Field/String/String.d.ts +2 -2
  350. package/es/extensions/forms/Field/String/String.js.map +1 -1
  351. package/es/extensions/forms/Field/index.d.ts +1 -0
  352. package/es/extensions/forms/Field/index.js +1 -0
  353. package/es/extensions/forms/Field/index.js.map +1 -1
  354. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -3
  355. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  356. package/es/extensions/forms/Form/FieldProps/FieldProps.d.ts +13 -0
  357. package/es/extensions/forms/Form/FieldProps/FieldProps.js +71 -0
  358. package/es/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -0
  359. package/es/extensions/forms/Form/FieldProps/FieldPropsContext.d.ts +8 -0
  360. package/es/extensions/forms/Form/FieldProps/FieldPropsContext.js +7 -0
  361. package/es/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +1 -0
  362. package/es/extensions/forms/Form/FieldProps/FieldPropsDocs.d.ts +2 -0
  363. package/es/extensions/forms/Form/FieldProps/FieldPropsDocs.js +11 -0
  364. package/es/extensions/forms/Form/FieldProps/FieldPropsDocs.js.map +1 -0
  365. package/es/extensions/forms/Form/FieldProps/index.d.ts +2 -0
  366. package/es/extensions/forms/Form/FieldProps/index.js +3 -0
  367. package/es/extensions/forms/Form/FieldProps/index.js.map +1 -0
  368. package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  369. package/es/extensions/forms/Form/Handler/Handler.js +18 -4
  370. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  371. package/es/extensions/forms/Form/MainHeading/MainHeading.js +1 -1
  372. package/es/extensions/forms/Form/MainHeading/MainHeading.js.map +1 -1
  373. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +3 -3
  374. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  375. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.scss +1 -1
  376. package/es/extensions/forms/Form/SubHeading/SubHeading.js +1 -1
  377. package/es/extensions/forms/Form/SubHeading/SubHeading.js.map +1 -1
  378. package/es/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.css +2 -2
  379. package/es/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.min.css +1 -1
  380. package/es/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.scss +1 -1
  381. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +2 -2
  382. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -1
  383. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +13 -13
  384. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -1
  385. package/es/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +1 -1
  386. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +4 -1
  387. package/es/extensions/forms/Form/Visibility/Visibility.js +7 -4
  388. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  389. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +5 -0
  390. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  391. package/es/extensions/forms/Form/index.d.ts +1 -0
  392. package/es/extensions/forms/Form/index.js +1 -0
  393. package/es/extensions/forms/Form/index.js.map +1 -1
  394. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -4
  395. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  396. package/es/extensions/forms/Iterate/Array/Array.js +2 -2
  397. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  398. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -1
  399. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  400. package/es/extensions/forms/Iterate/PushButton/PushButton.js +1 -1
  401. package/es/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  402. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  403. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  404. package/es/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  405. package/es/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  406. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +1 -1
  407. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  408. package/es/extensions/forms/Iterate/style/dnb-form-iterate.css +14 -14
  409. package/es/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  410. package/es/extensions/forms/Iterate/style/dnb-form-iterate.scss +1 -1
  411. package/es/extensions/forms/Value/Boolean/Boolean.js +8 -3
  412. package/es/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  413. package/es/extensions/forms/Value/Name/Name.d.ts +10 -0
  414. package/es/extensions/forms/Value/Name/Name.js +40 -0
  415. package/es/extensions/forms/Value/Name/Name.js.map +1 -0
  416. package/es/extensions/forms/Value/Name/index.d.ts +2 -0
  417. package/es/extensions/forms/Value/Name/index.js +3 -0
  418. package/es/extensions/forms/Value/Name/index.js.map +1 -0
  419. package/es/extensions/forms/Value/OrganizationNumber/OrganizationNumber.d.ts +7 -0
  420. package/es/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js +24 -0
  421. package/es/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js.map +1 -0
  422. package/es/extensions/forms/Value/OrganizationNumber/index.d.ts +2 -0
  423. package/es/extensions/forms/Value/OrganizationNumber/index.js +3 -0
  424. package/es/extensions/forms/Value/OrganizationNumber/index.js.map +1 -0
  425. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.d.ts +7 -0
  426. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +31 -0
  427. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -0
  428. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  429. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +13 -0
  430. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  431. package/es/extensions/forms/Value/PostalCodeAndCity/index.d.ts +2 -0
  432. package/es/extensions/forms/Value/PostalCodeAndCity/index.js +3 -0
  433. package/es/extensions/forms/Value/PostalCodeAndCity/index.js.map +1 -0
  434. package/es/extensions/forms/Value/String/String.js +8 -3
  435. package/es/extensions/forms/Value/String/String.js.map +1 -1
  436. package/es/extensions/forms/Value/SummaryList/SummaryList.js +1 -1
  437. package/es/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  438. package/es/extensions/forms/Value/ValueDocs.js +6 -1
  439. package/es/extensions/forms/Value/ValueDocs.js.map +1 -1
  440. package/es/extensions/forms/Value/index.d.ts +3 -0
  441. package/es/extensions/forms/Value/index.js +3 -0
  442. package/es/extensions/forms/Value/index.js.map +1 -1
  443. package/es/extensions/forms/ValueBlock/ValueBlock.js +2 -1
  444. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  445. package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +11 -6
  446. package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  447. package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +11 -3
  448. package/es/extensions/forms/Wizard/Container/WizardContainer.js +17 -51
  449. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  450. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +9 -0
  451. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +46 -0
  452. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -0
  453. package/es/extensions/forms/Wizard/Container/useStepAnimation.d.ts +4 -0
  454. package/es/extensions/forms/Wizard/Container/useStepAnimation.js +29 -0
  455. package/es/extensions/forms/Wizard/Container/useStepAnimation.js.map +1 -0
  456. package/es/extensions/forms/Wizard/Step/Step.js +14 -2
  457. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  458. package/es/extensions/forms/Wizard/hooks/useStep.js +3 -2
  459. package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  460. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +29 -2
  461. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  462. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.scss +35 -2
  463. package/es/extensions/forms/constants/locales/en-GB.d.ts +9 -0
  464. package/es/extensions/forms/constants/locales/en-GB.js +12 -3
  465. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  466. package/es/extensions/forms/constants/locales/en-US.d.ts +9 -0
  467. package/es/extensions/forms/constants/locales/index.d.ts +18 -0
  468. package/es/extensions/forms/constants/locales/nb-NO.d.ts +9 -0
  469. package/es/extensions/forms/constants/locales/nb-NO.js +11 -2
  470. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  471. package/es/extensions/forms/hooks/useFieldProps.js +8 -3
  472. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  473. package/es/extensions/forms/hooks/useTranslation.js +3 -1
  474. package/es/extensions/forms/hooks/useTranslation.js.map +1 -1
  475. package/es/extensions/forms/style/dnb-forms.css +77 -43
  476. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  477. package/es/extensions/forms/types.d.ts +3 -2
  478. package/es/extensions/forms/types.js.map +1 -1
  479. package/es/fragments/drawer-list/DrawerList.d.ts +8 -4
  480. package/es/shared/Context.d.ts +4 -4
  481. package/es/shared/Context.js.map +1 -1
  482. package/es/shared/Eufemia.d.ts +1 -1
  483. package/es/shared/Eufemia.js +2 -2
  484. package/es/shared/Eufemia.js.map +1 -1
  485. package/es/shared/component-helper.d.ts +1 -0
  486. package/es/shared/component-helper.js +2 -1
  487. package/es/shared/component-helper.js.map +1 -1
  488. package/es/shared/helpers/assignPropsWithContext.d.ts +1 -0
  489. package/es/shared/helpers/assignPropsWithContext.js +12 -0
  490. package/es/shared/helpers/assignPropsWithContext.js.map +1 -0
  491. package/es/shared/helpers/extendPropsWithContext.d.ts +1 -0
  492. package/es/shared/helpers/extendPropsWithContext.js +1 -1
  493. package/es/shared/helpers/extendPropsWithContext.js.map +1 -1
  494. package/es/shared/helpers/filterValidProps.d.ts +1 -0
  495. package/es/shared/helpers/filterValidProps.js.map +1 -1
  496. package/es/shared/helpers/runCssVersionMismatchWarning.js +14 -3
  497. package/es/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  498. package/es/style/core/scopes.scss +1 -1
  499. package/es/style/dnb-ui-basis.css +1 -1
  500. package/es/style/dnb-ui-basis.min.css +1 -1
  501. package/es/style/dnb-ui-body.css +1 -1
  502. package/es/style/dnb-ui-body.min.css +1 -1
  503. package/es/style/dnb-ui-components.css +129 -98
  504. package/es/style/dnb-ui-components.min.css +2 -2
  505. package/es/style/dnb-ui-core.css +1 -1
  506. package/es/style/dnb-ui-core.min.css +1 -1
  507. package/es/style/dnb-ui-extensions.css +77 -43
  508. package/es/style/dnb-ui-extensions.min.css +1 -1
  509. package/es/style/dnb-ui-forms.css +77 -43
  510. package/es/style/dnb-ui-forms.min.css +1 -1
  511. package/es/style/dnb-ui-forms.scss +1 -1
  512. package/es/style/themes/eiendom/basis.js +1 -0
  513. package/es/style/themes/eiendom/basis.js.map +1 -0
  514. package/es/style/themes/eiendom/index.js +3 -0
  515. package/es/style/themes/eiendom/index.js.map +1 -0
  516. package/es/style/themes/sbanken/basis.js +1 -0
  517. package/es/style/themes/sbanken/basis.js.map +1 -0
  518. package/es/style/themes/sbanken/index.d.ts +1 -0
  519. package/es/style/themes/sbanken/index.js +3 -0
  520. package/es/style/themes/sbanken/index.js.map +1 -0
  521. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +205 -141
  522. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  523. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +77 -43
  524. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  525. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +77 -43
  526. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  527. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +205 -141
  528. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  529. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +77 -43
  530. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  531. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +77 -43
  532. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  533. package/es/style/themes/theme-ui/ui-theme-components.css +205 -141
  534. package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  535. package/es/style/themes/theme-ui/ui-theme-extensions.css +77 -43
  536. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  537. package/es/style/themes/theme-ui/ui-theme-forms.css +77 -43
  538. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  539. package/es/style/themes/ui/basis.d.ts +1 -0
  540. package/es/style/themes/ui/basis.js +1 -0
  541. package/es/style/themes/ui/basis.js.map +1 -0
  542. package/es/style/themes/ui/index.d.ts +1 -0
  543. package/es/style/themes/ui/index.js +3 -0
  544. package/es/style/themes/ui/index.js.map +1 -0
  545. package/esm/dnb-ui-basis.min.mjs +1 -1
  546. package/esm/dnb-ui-components.min.mjs +1 -1
  547. package/esm/dnb-ui-elements.min.mjs +1 -1
  548. package/esm/dnb-ui-extensions.min.mjs +3 -3
  549. package/esm/dnb-ui-lib.min.mjs +1 -1
  550. package/extensions/forms/DataContext/Context.d.ts +7 -2
  551. package/extensions/forms/DataContext/Context.js +0 -2
  552. package/extensions/forms/DataContext/Context.js.map +1 -1
  553. package/extensions/forms/DataContext/Provider/Provider.d.ts +30 -5
  554. package/extensions/forms/DataContext/Provider/Provider.js +69 -35
  555. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  556. package/extensions/forms/DataContext/Provider/ProviderDocs.js +27 -2
  557. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  558. package/extensions/forms/Field/ArraySelection/ArraySelection.js +1 -1
  559. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  560. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +5 -2
  561. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  562. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +5 -2
  563. package/extensions/forms/Field/Name/Name.d.ts +10 -0
  564. package/extensions/forms/Field/Name/Name.js +63 -0
  565. package/extensions/forms/Field/Name/Name.js.map +1 -0
  566. package/extensions/forms/Field/Name/NameDocs.d.ts +2 -0
  567. package/extensions/forms/Field/Name/NameDocs.js +8 -0
  568. package/extensions/forms/Field/Name/NameDocs.js.map +1 -0
  569. package/extensions/forms/Field/Name/index.d.ts +2 -0
  570. package/extensions/forms/Field/Name/index.js +3 -0
  571. package/extensions/forms/Field/Name/index.js.map +1 -0
  572. package/extensions/forms/Field/Number/Number.d.ts +2 -2
  573. package/extensions/forms/Field/Number/Number.js.map +1 -1
  574. package/extensions/forms/Field/Option/Option.d.ts +2 -0
  575. package/extensions/forms/Field/Option/Option.js +20 -0
  576. package/extensions/forms/Field/Option/Option.js.map +1 -1
  577. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  578. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +18 -0
  579. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  580. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  581. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  582. package/extensions/forms/Field/Selection/Selection.d.ts +11 -4
  583. package/extensions/forms/Field/Selection/Selection.js +20 -32
  584. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  585. package/extensions/forms/Field/Selection/SelectionDocs.d.ts +2 -0
  586. package/extensions/forms/Field/Selection/SelectionDocs.js +38 -0
  587. package/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -0
  588. package/extensions/forms/Field/String/String.d.ts +2 -2
  589. package/extensions/forms/Field/String/String.js.map +1 -1
  590. package/extensions/forms/Field/index.d.ts +1 -0
  591. package/extensions/forms/Field/index.js +1 -0
  592. package/extensions/forms/Field/index.js.map +1 -1
  593. package/extensions/forms/FieldBlock/FieldBlock.d.ts +3 -3
  594. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  595. package/extensions/forms/Form/FieldProps/FieldProps.d.ts +13 -0
  596. package/extensions/forms/Form/FieldProps/FieldProps.js +71 -0
  597. package/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -0
  598. package/extensions/forms/Form/FieldProps/FieldPropsContext.d.ts +8 -0
  599. package/extensions/forms/Form/FieldProps/FieldPropsContext.js +7 -0
  600. package/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +1 -0
  601. package/extensions/forms/Form/FieldProps/FieldPropsDocs.d.ts +2 -0
  602. package/extensions/forms/Form/FieldProps/FieldPropsDocs.js +11 -0
  603. package/extensions/forms/Form/FieldProps/FieldPropsDocs.js.map +1 -0
  604. package/extensions/forms/Form/FieldProps/index.d.ts +2 -0
  605. package/extensions/forms/Form/FieldProps/index.js +3 -0
  606. package/extensions/forms/Form/FieldProps/index.js.map +1 -0
  607. package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  608. package/extensions/forms/Form/Handler/Handler.js +18 -4
  609. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  610. package/extensions/forms/Form/MainHeading/MainHeading.js +1 -1
  611. package/extensions/forms/Form/MainHeading/MainHeading.js.map +1 -1
  612. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +3 -3
  613. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  614. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.scss +1 -1
  615. package/extensions/forms/Form/SubHeading/SubHeading.js +1 -1
  616. package/extensions/forms/Form/SubHeading/SubHeading.js.map +1 -1
  617. package/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.css +2 -2
  618. package/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.min.css +1 -1
  619. package/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.scss +1 -1
  620. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +2 -2
  621. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -1
  622. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.css +13 -13
  623. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.min.css +1 -1
  624. package/extensions/forms/Form/SubmitIndicator/style/dnb-form-submit-indicator.scss +1 -1
  625. package/extensions/forms/Form/Visibility/Visibility.d.ts +4 -1
  626. package/extensions/forms/Form/Visibility/Visibility.js +7 -4
  627. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  628. package/extensions/forms/Form/Visibility/VisibilityDocs.js +5 -0
  629. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  630. package/extensions/forms/Form/index.d.ts +1 -0
  631. package/extensions/forms/Form/index.js +1 -0
  632. package/extensions/forms/Form/index.js.map +1 -1
  633. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -4
  634. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  635. package/extensions/forms/Iterate/Array/Array.js +2 -2
  636. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  637. package/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -1
  638. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  639. package/extensions/forms/Iterate/PushButton/PushButton.js +1 -1
  640. package/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  641. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  642. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  643. package/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  644. package/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  645. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +1 -1
  646. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  647. package/extensions/forms/Iterate/style/dnb-form-iterate.css +14 -14
  648. package/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  649. package/extensions/forms/Iterate/style/dnb-form-iterate.scss +1 -1
  650. package/extensions/forms/Value/Boolean/Boolean.js +8 -3
  651. package/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  652. package/extensions/forms/Value/Name/Name.d.ts +10 -0
  653. package/extensions/forms/Value/Name/Name.js +40 -0
  654. package/extensions/forms/Value/Name/Name.js.map +1 -0
  655. package/extensions/forms/Value/Name/index.d.ts +2 -0
  656. package/extensions/forms/Value/Name/index.js +3 -0
  657. package/extensions/forms/Value/Name/index.js.map +1 -0
  658. package/extensions/forms/Value/OrganizationNumber/OrganizationNumber.d.ts +7 -0
  659. package/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js +24 -0
  660. package/extensions/forms/Value/OrganizationNumber/OrganizationNumber.js.map +1 -0
  661. package/extensions/forms/Value/OrganizationNumber/index.d.ts +2 -0
  662. package/extensions/forms/Value/OrganizationNumber/index.js +3 -0
  663. package/extensions/forms/Value/OrganizationNumber/index.js.map +1 -0
  664. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.d.ts +7 -0
  665. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +31 -0
  666. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -0
  667. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.d.ts +2 -0
  668. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +13 -0
  669. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -0
  670. package/extensions/forms/Value/PostalCodeAndCity/index.d.ts +2 -0
  671. package/extensions/forms/Value/PostalCodeAndCity/index.js +3 -0
  672. package/extensions/forms/Value/PostalCodeAndCity/index.js.map +1 -0
  673. package/extensions/forms/Value/String/String.js +8 -3
  674. package/extensions/forms/Value/String/String.js.map +1 -1
  675. package/extensions/forms/Value/SummaryList/SummaryList.js +1 -1
  676. package/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  677. package/extensions/forms/Value/ValueDocs.js +6 -1
  678. package/extensions/forms/Value/ValueDocs.js.map +1 -1
  679. package/extensions/forms/Value/index.d.ts +3 -0
  680. package/extensions/forms/Value/index.js +3 -0
  681. package/extensions/forms/Value/index.js.map +1 -1
  682. package/extensions/forms/ValueBlock/ValueBlock.js +2 -1
  683. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  684. package/extensions/forms/ValueBlock/style/dnb-value-block.css +11 -6
  685. package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  686. package/extensions/forms/ValueBlock/style/dnb-value-block.scss +11 -3
  687. package/extensions/forms/Wizard/Container/WizardContainer.js +17 -52
  688. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  689. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +9 -0
  690. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +47 -0
  691. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -0
  692. package/extensions/forms/Wizard/Container/useStepAnimation.d.ts +4 -0
  693. package/extensions/forms/Wizard/Container/useStepAnimation.js +30 -0
  694. package/extensions/forms/Wizard/Container/useStepAnimation.js.map +1 -0
  695. package/extensions/forms/Wizard/Step/Step.js +14 -2
  696. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  697. package/extensions/forms/Wizard/hooks/useStep.js +3 -2
  698. package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  699. package/extensions/forms/Wizard/style/dnb-wizard-layout.css +29 -2
  700. package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  701. package/extensions/forms/Wizard/style/dnb-wizard-layout.scss +35 -2
  702. package/extensions/forms/constants/locales/en-GB.d.ts +9 -0
  703. package/extensions/forms/constants/locales/en-GB.js +12 -3
  704. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  705. package/extensions/forms/constants/locales/en-US.d.ts +9 -0
  706. package/extensions/forms/constants/locales/index.d.ts +18 -0
  707. package/extensions/forms/constants/locales/nb-NO.d.ts +9 -0
  708. package/extensions/forms/constants/locales/nb-NO.js +11 -2
  709. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  710. package/extensions/forms/hooks/useFieldProps.js +8 -4
  711. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  712. package/extensions/forms/hooks/useTranslation.js +3 -1
  713. package/extensions/forms/hooks/useTranslation.js.map +1 -1
  714. package/extensions/forms/style/dnb-forms.css +77 -43
  715. package/extensions/forms/style/dnb-forms.min.css +1 -1
  716. package/extensions/forms/types.d.ts +3 -2
  717. package/extensions/forms/types.js.map +1 -1
  718. package/fragments/drawer-list/DrawerList.d.ts +8 -4
  719. package/package.json +1 -1
  720. package/shared/Context.d.ts +4 -4
  721. package/shared/Context.js.map +1 -1
  722. package/shared/Eufemia.d.ts +1 -1
  723. package/shared/Eufemia.js +2 -2
  724. package/shared/Eufemia.js.map +1 -1
  725. package/shared/component-helper.d.ts +1 -0
  726. package/shared/component-helper.js +2 -1
  727. package/shared/component-helper.js.map +1 -1
  728. package/shared/helpers/assignPropsWithContext.d.ts +1 -0
  729. package/shared/helpers/assignPropsWithContext.js +16 -0
  730. package/shared/helpers/assignPropsWithContext.js.map +1 -0
  731. package/shared/helpers/extendPropsWithContext.d.ts +1 -0
  732. package/shared/helpers/extendPropsWithContext.js +1 -1
  733. package/shared/helpers/extendPropsWithContext.js.map +1 -1
  734. package/shared/helpers/filterValidProps.d.ts +1 -0
  735. package/shared/helpers/filterValidProps.js.map +1 -1
  736. package/shared/helpers/runCssVersionMismatchWarning.js +14 -3
  737. package/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  738. package/style/core/scopes.scss +1 -1
  739. package/style/dnb-ui-basis.css +1 -1
  740. package/style/dnb-ui-basis.min.css +1 -1
  741. package/style/dnb-ui-body.css +1 -1
  742. package/style/dnb-ui-body.min.css +1 -1
  743. package/style/dnb-ui-components.css +129 -98
  744. package/style/dnb-ui-components.min.css +2 -2
  745. package/style/dnb-ui-core.css +1 -1
  746. package/style/dnb-ui-core.min.css +1 -1
  747. package/style/dnb-ui-extensions.css +77 -43
  748. package/style/dnb-ui-extensions.min.css +1 -1
  749. package/style/dnb-ui-forms.css +77 -43
  750. package/style/dnb-ui-forms.min.css +1 -1
  751. package/style/dnb-ui-forms.scss +1 -1
  752. package/style/themes/eiendom/basis.d.ts +1 -0
  753. package/style/themes/eiendom/basis.js +1 -0
  754. package/style/themes/eiendom/basis.js.map +1 -0
  755. package/style/themes/eiendom/index.d.ts +1 -0
  756. package/style/themes/eiendom/index.js +3 -0
  757. package/style/themes/eiendom/index.js.map +1 -0
  758. package/style/themes/sbanken/basis.d.ts +1 -0
  759. package/style/themes/sbanken/basis.js +1 -0
  760. package/style/themes/sbanken/basis.js.map +1 -0
  761. package/style/themes/sbanken/index.d.ts +1 -0
  762. package/style/themes/sbanken/index.js +3 -0
  763. package/style/themes/sbanken/index.js.map +1 -0
  764. package/style/themes/theme-eiendom/eiendom-theme-components.css +205 -141
  765. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  766. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +77 -43
  767. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  768. package/style/themes/theme-eiendom/eiendom-theme-forms.css +77 -43
  769. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  770. package/style/themes/theme-sbanken/sbanken-theme-components.css +205 -141
  771. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  772. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +77 -43
  773. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  774. package/style/themes/theme-sbanken/sbanken-theme-forms.css +77 -43
  775. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  776. package/style/themes/theme-ui/ui-theme-components.css +205 -141
  777. package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  778. package/style/themes/theme-ui/ui-theme-extensions.css +77 -43
  779. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  780. package/style/themes/theme-ui/ui-theme-forms.css +77 -43
  781. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  782. package/style/themes/ui/basis.d.ts +1 -0
  783. package/style/themes/ui/basis.js +1 -0
  784. package/style/themes/ui/basis.js.map +1 -0
  785. package/style/themes/ui/index.d.ts +1 -0
  786. package/style/themes/ui/index.js +3 -0
  787. package/style/themes/ui/index.js.map +1 -0
  788. package/umd/dnb-ui-basis.min.js +1 -1
  789. package/umd/dnb-ui-components.min.js +1 -1
  790. package/umd/dnb-ui-elements.min.js +1 -1
  791. package/umd/dnb-ui-extensions.min.js +3 -3
  792. package/umd/dnb-ui-lib.min.js +1 -1
  793. package/cjs/style/themes/eiendom.js +0 -5
  794. package/cjs/style/themes/eiendom.js.map +0 -1
  795. package/cjs/style/themes/sbanken.js +0 -5
  796. package/cjs/style/themes/sbanken.js.map +0 -1
  797. package/cjs/style/themes/ui.js +0 -5
  798. package/cjs/style/themes/ui.js.map +0 -1
  799. package/es/style/themes/eiendom.js +0 -3
  800. package/es/style/themes/eiendom.js.map +0 -1
  801. package/es/style/themes/sbanken.js +0 -3
  802. package/es/style/themes/sbanken.js.map +0 -1
  803. package/es/style/themes/ui.js +0 -3
  804. package/es/style/themes/ui.js.map +0 -1
  805. package/style/themes/eiendom.js +0 -3
  806. package/style/themes/eiendom.js.map +0 -1
  807. package/style/themes/sbanken.js +0 -3
  808. package/style/themes/sbanken.js.map +0 -1
  809. package/style/themes/ui.js +0 -3
  810. package/style/themes/ui.js.map +0 -1
  811. /package/cjs/extensions/forms/Form/Element/style/{dnb-forms-element.css → dnb-form-element.css} +0 -0
  812. /package/cjs/extensions/forms/Form/Element/style/{dnb-forms-element.min.css → dnb-form-element.min.css} +0 -0
  813. /package/cjs/extensions/forms/Form/Element/style/{dnb-forms-element.scss → dnb-form-element.scss} +0 -0
  814. /package/cjs/style/themes/{eiendom.d.ts → eiendom/basis.d.ts} +0 -0
  815. /package/cjs/style/themes/{sbanken.d.ts → eiendom/index.d.ts} +0 -0
  816. /package/cjs/style/themes/{ui.d.ts → sbanken/basis.d.ts} +0 -0
  817. /package/{es/style/themes/eiendom.d.ts → cjs/style/themes/sbanken/index.d.ts} +0 -0
  818. /package/{es/style/themes/sbanken.d.ts → cjs/style/themes/ui/basis.d.ts} +0 -0
  819. /package/{es/style/themes/ui.d.ts → cjs/style/themes/ui/index.d.ts} +0 -0
  820. /package/es/extensions/forms/Form/Element/style/{dnb-forms-element.css → dnb-form-element.css} +0 -0
  821. /package/es/extensions/forms/Form/Element/style/{dnb-forms-element.min.css → dnb-form-element.min.css} +0 -0
  822. /package/es/extensions/forms/Form/Element/style/{dnb-forms-element.scss → dnb-form-element.scss} +0 -0
  823. /package/{style/themes/eiendom.d.ts → es/style/themes/eiendom/basis.d.ts} +0 -0
  824. /package/{style/themes/sbanken.d.ts → es/style/themes/eiendom/index.d.ts} +0 -0
  825. /package/{style/themes/ui.d.ts → es/style/themes/sbanken/basis.d.ts} +0 -0
  826. /package/extensions/forms/Form/Element/style/{dnb-forms-element.css → dnb-form-element.css} +0 -0
  827. /package/extensions/forms/Form/Element/style/{dnb-forms-element.min.css → dnb-form-element.min.css} +0 -0
  828. /package/extensions/forms/Form/Element/style/{dnb-forms-element.scss → dnb-form-element.scss} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"useFieldProps.js","names":["_react","require","_jsonPointer","_interopRequireDefault","_utils","_ajv","_types","_DataContext","_componentHelper","_useId","_useUpdateEffect","_useMountEffect","_useUnmountEffect","_FieldBlockContext","_IterateElementContext","_FieldBoundaryContext","_useProcessManager","_useSharedState","_isAsync","_useTranslation","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","useFieldProps","props","_props$disabled","_dataContext$props","_dataContext$ajvInsta","_localErrorRef$curren","_ref2","_this","_props$path","_props$autoComplete","path","itemPath","emptyValue","required","info","warning","error","errorProp","errorMessages","onFocus","onBlur","onChange","onBlurValidator","validator","schema","validateInitially","validateUnchanged","continuousValidation","transformIn","transformOut","toInput","fromInput","toEvent","transformValue","fromExternal","validateRequired","_ref","disabled","readOnly","forceUpdate","useReducer","startProcess","useProcessManager","id","useId","dataContext","useContext","DataContext","fieldBlockContext","FieldBlockContext","iterateElementContext","IterateElementContext","fieldBoundaryContext","FieldBoundaryContext","translation","useTranslation","transformers","useRef","handlePathChangeUnvalidated","handlePathChangeUnvalidatedDataContext","handlePathChange","handlePathChangeDataContext","updateDataValue","updateDataValueDataContext","validateData","validateDataDataContext","setFieldState","setFieldStateDataContext","setFieldError","setFieldErrorDataContext","setProps","setPropsDataContext","errors","dataContextErrors","contextErrorMessages","onChangeContext","dataContextError","inFieldBlock","Boolean","setFieldStateFieldBlock","showFieldError","showFieldErrorFieldBlock","inIterate","index","iterateElementIndex","iteratePath","handleChange","handleChangeIterateContext","substring","Error","identifier","useMemo","iterateValuePath","externalValue","useExternalValue","valueRef","changedRef","hasFocusRef","showErrorRef","errorMethodRef","localErrorRef","contextErrorRef","validatorRef","useUpdateEffect","current","onBlurValidatorRef","schemaValidatorRef","ajvInstance","compile","asyncBehaviorIsEnabled","isAsync","validatedValue","changeEventResultRef","asyncProcessRef","defineAsyncProcess","useCallback","name","asyncBufferRef","resolve","validateProcesses","window","requestAnimationFrame","eventPool","onChangeLocal","addToPool","fn","runAsync","runPool","cb","pending","fieldStateRef","state","resolveValidatingState","showError","hideError","hasVisibleError","hasErrorProp","hasError","_ref3","errorMessagesRef","Field","errorRequired","prepareError","FormError","_error$messageValues","message","validationRule","_errorMessagesRef$cur","fieldMessage","messageWithValues","entries","messageValues","reduce","_ref4","replace","stateId","persistErrorState","method","errorArg","errorChanged","type","content","showInitially","clearErrorState","callValidator","opts","tmpValue","result","unchangedValue","callOnBlurValidator","valueOverride","validateValue","isProcessActive","requiredError","isChanged","ajvErrorsToOneFormError","handleError","setHasFocus","hasFocus","yieldAsyncProcess","_ref5","waitFor","Promise","some","_ref6","processName","withStates","withValue","hasMatchingValue","handleChangeEventResult","warningRef","infoRef","success","setEventResult","callOnChangeContext","updateValue","newValue","argFromInput","additionalArgs","currentValue","transformedValue","getArgs","args","handleFocus","handleBlur","useMountEffect","handleMountField","useUnmountEffect","handleUnMountField","_dataContext$ajvInsta2","useEffect","hasValue","pointer","has","data","existingValue","get","sharedState","createSharedState","sharedValue","showAllErrors","formState","onSubmitHandler","_dataContext$setField","setFieldEventListener","show","mountedFieldsRef","htmlAttributes","acc","cur","startsWith","_fieldBlockContext$fi","stateIds","fieldStateIdsRef","combineDescribedBy","ids","fieldBlockProps","fieldState","sharedData","useSharedState","set","autoComplete","_ref7","iterateElementValue"],"sources":["../../../../../src/extensions/forms/hooks/useFieldProps.ts"],"sourcesContent":["import {\n useRef,\n useEffect,\n useContext,\n useCallback,\n useMemo,\n useReducer,\n AriaAttributes,\n} from 'react'\nimport pointer from 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport { errorChanged } from '../utils'\nimport { ajvErrorsToOneFormError } from '../utils/ajv'\nimport {\n FormError,\n FieldProps,\n AdditionalEventArgs,\n SubmitState,\n EventReturnWithStateObjectAndSuccess,\n EventStateObjectWithSuccess,\n Path,\n} from '../types'\nimport { Context as DataContext, ContextState } from '../DataContext'\nimport { combineDescribedBy } from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport useUpdateEffect from '../../../shared/helpers/useUpdateEffect'\nimport useMountEffect from '../../../shared/helpers/useMountEffect'\nimport useUnmountEffect from '../../../shared/helpers/useUnmountEffect'\nimport FieldBlockContext from '../FieldBlock/FieldBlockContext'\nimport IterateElementContext from '../Iterate/IterateElementContext'\nimport FieldBoundaryContext from '../DataContext/FieldBoundary/FieldBoundaryContext'\nimport useProcessManager from './useProcessManager'\nimport {\n createSharedState,\n useSharedState,\n} from '../../../shared/helpers/useSharedState'\nimport { isAsync } from '../../../shared/helpers/isAsync'\nimport useTranslation from './useTranslation'\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 AsyncProcessesBuffer = {\n resolve: () => void\n validateProcesses: () => boolean\n}\n\nexport type DataAttributes = {\n [property: `data-${string}`]: string\n}\n\nexport default function useFieldProps<\n Value = unknown,\n Props extends FieldProps<Value> = FieldProps<Value>,\n>(props: Props): Props & FieldProps<Value> & ReturnAdditional<Value> {\n const {\n path,\n itemPath,\n emptyValue,\n required,\n info,\n warning,\n error: errorProp,\n errorMessages,\n onFocus,\n onBlur,\n onChange,\n onBlurValidator,\n validator,\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 fromExternal = (value: Value) => value,\n validateRequired = (value: Value, { emptyValue, required, error }) => {\n const res =\n required &&\n (value === emptyValue ||\n (typeof emptyValue === 'undefined' && value === ''))\n ? error\n : undefined\n\n return res\n },\n } = props\n\n const disabled = props.disabled ?? props.readOnly\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const { startProcess } = useProcessManager()\n const id = useId(props.id)\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const iterateElementContext = useContext(IterateElementContext)\n const fieldBoundaryContext = useContext(FieldBoundaryContext)\n const translation = useTranslation()\n\n const transformers = useRef({\n transformIn,\n transformOut,\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 setProps: setPropsDataContext,\n errors: dataContextErrors,\n contextErrorMessages,\n } = dataContext ?? {}\n const onChangeContext = dataContext?.props?.onChange\n\n const dataContextError = path ? dataContextErrors?.[path] : undefined\n const inFieldBlock = Boolean(fieldBlockContext)\n const {\n setFieldState: setFieldStateFieldBlock,\n showFieldError: showFieldErrorFieldBlock,\n } = fieldBlockContext ?? {}\n const inIterate = Boolean(iterateElementContext)\n const {\n index: iterateElementIndex,\n path: iteratePath,\n handleChange: handleChangeIterateContext,\n } = iterateElementContext ?? {}\n const { setFieldError } = fieldBoundaryContext ?? {}\n\n if (path && path.substring(0, 1) !== '/') {\n throw new Error(\n 'Invalid path. Data value path JSON Pointers must be from root (starting with a /).'\n )\n }\n if (itemPath && itemPath.substring(0, 1) !== '/') {\n throw new Error(\n 'Invalid itemPath. Item pathJSON Pointers must be from root of iterate element (starting with a /).'\n )\n }\n if (itemPath && !inIterate) {\n throw new Error(\n 'itemPath cannot be used when not inside an iterate context. Wrap the component in an Iterate.Array.'\n )\n }\n\n const identifier = useMemo(() => {\n if (itemPath) {\n const iterateValuePath = `${iteratePath}/${iterateElementIndex}${\n itemPath && itemPath !== '/' ? itemPath : ''\n }`\n return iterateValuePath\n }\n\n // Identifier is used is registries of multiple fields, like in the DataContext keeping track of errors\n return path ?? id\n }, [itemPath, path, id, iteratePath, iterateElementIndex])\n\n const externalValue = useExternalValue<Value>({\n path,\n itemPath,\n props,\n transformers,\n emptyValue,\n })\n\n // Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n // useEffect depend on them (like the external `value`)\n\n // Hold an internal copy of the input value in case the input component is used uncontrolled,\n // and to handle errors in Eufemia on components that does not take updated callback functions into account.\n const valueRef = useRef<Value>(externalValue)\n const changedRef = useRef<boolean>(false)\n const hasFocusRef = useRef<boolean>(false)\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 showErrorRef = useRef<boolean>(\n Boolean(validateInitially || errorProp)\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 // - Context errors are from outer contexts, like validation for this field as part of the whole data set\n const contextErrorRef = useRef<Error | FormError | undefined>(\n dataContextError\n )\n\n const validatorRef = useRef(validator)\n useUpdateEffect(() => {\n validatorRef.current = validator\n }, [validator])\n const onBlurValidatorRef = useRef(onBlurValidator)\n useUpdateEffect(() => {\n onBlurValidatorRef.current = onBlurValidator\n }, [onBlurValidator])\n\n const schemaValidatorRef = useRef<ValidateFunction>(\n schema ? dataContext.ajvInstance?.compile(schema) : undefined\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 // Put props into the surrounding data context\n setPropsDataContext?.(identifier, props)\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 showError = useCallback(() => {\n showErrorRef.current = true\n showFieldErrorFieldBlock?.(identifier, true)\n }, [showFieldErrorFieldBlock, identifier])\n\n const hideError = useCallback(() => {\n showErrorRef.current = false\n showFieldErrorFieldBlock?.(identifier, false)\n }, [showFieldErrorFieldBlock, identifier])\n\n const error =\n showErrorRef.current ||\n // If the error is a type error, we want to show it even if the field as not been used\n localErrorRef.current?.['validationRule'] === 'type'\n ? errorProp ?? localErrorRef.current ?? 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 errorMessagesRef = useRef(null)\n errorMessagesRef.current = useMemo(() => {\n return {\n required: translation.Field.errorRequired,\n ...errorMessages,\n }\n }, [errorMessages, translation.Field.errorRequired])\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 let message = error.message\n\n const { validationRule } = error\n if (typeof validationRule === 'string') {\n const fieldMessage = errorMessagesRef.current?.[validationRule]\n if (fieldMessage) {\n message = fieldMessage\n }\n }\n\n const messageWithValues = Object.entries(\n error.messageValues ?? {}\n ).reduce((message, [key, value]) => {\n return message.replace(`{${key}}`, value)\n }, message)\n\n error.message = messageWithValues\n\n return error\n }\n\n return error\n },\n []\n )\n\n /**\n * Based on validation, update error state, locally and relevant surrounding contexts\n */\n const stateId = useId()\n const persistErrorState = useCallback(\n (\n method: PersistErrorStateMethod,\n 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 (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 setFieldError?.(identifier, error)\n\n // Set the visual states\n setFieldStateDataContext?.(identifier, error ? 'error' : undefined)\n setFieldStateFieldBlock?.({\n stateId,\n identifier,\n type: 'error',\n content: error,\n showInitially: Boolean(inFieldBlock && validateInitially),\n })\n\n forceUpdate()\n },\n [\n prepareError,\n setFieldErrorDataContext,\n identifier,\n setFieldError,\n setFieldStateDataContext,\n setFieldStateFieldBlock,\n stateId,\n inFieldBlock,\n validateInitially,\n ]\n )\n\n const clearErrorState = useCallback(() => {\n persistErrorState('wipe')\n }, [persistErrorState])\n\n const callValidator = useCallback(async () => {\n if (typeof validatorRef.current !== 'function') {\n return\n }\n\n const runAsync = isAsync(validatorRef.current)\n\n if (runAsync) {\n defineAsyncProcess('validator')\n setFieldState('validating')\n hideError()\n }\n\n const opts = {\n ...contextErrorMessages,\n ...errorMessagesRef.current,\n }\n\n const tmpValue = valueRef.current\n\n // Run async regardless to support Promise based validators\n const result = await validatorRef.current(valueRef.current, opts)\n\n const unchangedValue = tmpValue === valueRef.current\n\n // Don't show the error if the value has changed in the meantime\n if (unchangedValue) {\n persistErrorState('gracefully', result as Error)\n\n // Because its a better UX to show the error when the validation is async/delayed\n if (continuousValidation || runAsync) {\n // Because we first need to throw the error to be able to display it, we delay the showError call\n window.requestAnimationFrame(() => {\n showError()\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 return result\n }, [\n contextErrorMessages,\n continuousValidation,\n hideError,\n persistErrorState,\n defineAsyncProcess,\n setFieldState,\n showError,\n ])\n\n const callOnBlurValidator = useCallback(\n async ({ valueOverride = null } = {}) => {\n if (typeof onBlurValidatorRef.current !== 'function') {\n return\n }\n // External blur validators makes it possible to validate values but not on every character change in case of\n // expensive validation calling external services etc.\n\n // Since the validator can return either a synchronous result or an asynchronous\n const value = transformers.current.toEvent(\n valueOverride ?? valueRef.current,\n 'onBlurValidator'\n )\n\n const runAsync = isAsync(onBlurValidatorRef.current)\n\n if (runAsync) {\n defineAsyncProcess('onBlurValidator')\n setFieldState('validating')\n }\n\n // Run async regardless to support Promise based validators\n const result = await onBlurValidatorRef.current(value)\n\n persistErrorState('gracefully', result as Error)\n\n if (runAsync) {\n defineAsyncProcess(undefined)\n setFieldState(result instanceof Error ? 'error' : 'complete')\n }\n\n showError()\n forceUpdate()\n },\n [persistErrorState, defineAsyncProcess, setFieldState, showError]\n )\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\n try {\n // Validate required\n const requiredError = transformers.current.validateRequired(value, {\n emptyValue,\n required,\n isChanged: changedRef.current,\n error: new FormError('The value is required', {\n validationRule: 'required',\n }),\n })\n if (requiredError instanceof Error) {\n throw requiredError\n }\n\n // Validate by provided JSON Schema for this value\n if (\n schemaValidatorRef.current &&\n value !== undefined &&\n !schemaValidatorRef.current(value)\n ) {\n const error = ajvErrorsToOneFormError(\n schemaValidatorRef.current.errors,\n valueRef.current\n )\n throw error\n }\n\n // Validate by provided derivative validator\n if (\n validatorRef.current &&\n (changedRef.current || validateInitially)\n ) {\n const result = await callValidator()\n\n if (result instanceof Error) {\n throw result\n }\n }\n\n if (isProcessActive()) {\n clearErrorState()\n }\n\n validatedValue.current = value\n } catch (error: unknown) {\n if (isProcessActive()) {\n persistErrorState('weak', error as Error)\n }\n }\n }, [\n startProcess,\n disabled,\n hideError,\n setFieldState,\n clearErrorState,\n emptyValue,\n required,\n validateInitially,\n callValidator,\n persistErrorState,\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 showError()\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, showError])\n\n const setHasFocus = useCallback(\n async (hasFocus: boolean, valueOverride?: Value) => {\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 const value = transformers.current.toEvent(\n valueOverride ?? valueRef.current,\n 'onFocus'\n )\n onFocus?.(value)\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 const value = transformers.current.toEvent(\n valueOverride ?? valueRef.current,\n 'onBlur'\n )\n onBlur?.(value)\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 callOnBlurValidator({ valueOverride }),\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool(() => {\n // Since the user left the field, show error (if any)\n showError()\n forceUpdate()\n })\n }\n },\n [\n addToPool,\n callOnBlurValidator,\n onBlur,\n onFocus,\n runPool,\n showError,\n validateUnchanged,\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 withValue?: Value\n }>\n }) => {\n return new Promise<void>((resolve) => {\n const validateProcesses = () => {\n const result = waitFor.some(\n ({ processName, withStates, withValue }) => {\n const hasMatchingValue =\n // If the value has changed during the async process, we don't want to resolve anymore\n withValue === validatedValue.current\n\n const result =\n (typeof withValue === '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 persistErrorState('gracefully', result.error)\n showError()\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 asyncBehaviorIsEnabled,\n defineAsyncProcess,\n persistErrorState,\n setFieldState,\n showError,\n yieldAsyncProcess,\n ])\n\n const setEventResult = useCallback(\n (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 handleChangeEventResult()\n },\n [handleChangeEventResult]\n )\n\n const callOnChangeContext = useCallback(async () => {\n if (asyncBehaviorIsEnabled) {\n await yieldAsyncProcess({\n name: 'onChangeContext',\n waitFor: [\n {\n processName: 'validator',\n withStates: ['validating', 'error'],\n withValue: valueRef.current,\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n withValue: valueRef.current,\n },\n ],\n })\n }\n\n if (path) {\n if (isAsync(onChangeContext)) {\n defineAsyncProcess('onChangeContext')\n\n // Skip sync errors, such as required\n if (!hasError()) {\n setEventResult(\n (await handlePathChangeDataContext?.(\n path\n )) as EventReturnWithStateObjectAndSuccess\n )\n } else {\n setEventResult(null)\n }\n } else {\n setEventResult(\n handlePathChangeDataContext?.(\n path\n ) as EventReturnWithStateObjectAndSuccess\n )\n }\n }\n\n forceUpdate()\n }, [\n asyncBehaviorIsEnabled,\n path,\n hasError,\n yieldAsyncProcess,\n onChangeContext,\n defineAsyncProcess,\n setEventResult,\n handlePathChangeDataContext,\n ])\n\n const updateValue = useCallback(\n async (newValue: Value) => {\n if (newValue === valueRef.current) {\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 valueRef.current = newValue\n\n handlePathChangeUnvalidatedDataContext(path, newValue)\n\n addToPool('validator', validateValue, isAsync(validatorRef.current))\n\n addToPool(\n 'onChangeContext',\n callOnChangeContext,\n isAsync(onChangeContext)\n )\n\n await runPool(() => {\n handleError()\n })\n },\n [\n handlePathChangeUnvalidatedDataContext,\n path,\n addToPool,\n validateValue,\n callOnChangeContext,\n onChangeContext,\n runPool,\n handleError,\n ]\n )\n\n const handleChange = useCallback(\n async (\n argFromInput: Value,\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 const transformedValue = transformers.current.transformOut(\n transformers.current.transformValue(fromInput, currentValue)\n )\n\n // Must be set before validation\n changedRef.current = true\n\n // Run in sync, before any async operations to avoid lag in UX\n if (itemPath) {\n const iterateValuePath = `/${iterateElementIndex}${\n itemPath && itemPath !== '/' ? itemPath : ''\n }`\n handleChangeIterateContext?.(iterateValuePath, transformedValue)\n }\n\n if (asyncBehaviorIsEnabled) {\n hideError()\n await updateValue(transformedValue)\n } else {\n updateValue(transformedValue)\n }\n\n const getArgs = (): [Value] | [Value, AdditionalEventArgs] => {\n const value = transformers.current.toEvent(\n valueRef.current,\n 'onChange'\n )\n\n return typeof additionalArgs !== 'undefined'\n ? [value, additionalArgs]\n : [value]\n }\n\n if (isAsync(onChange)) {\n addToPool(\n 'onChangeLocal',\n async () => {\n const args = getArgs()\n\n await yieldAsyncProcess({\n name: 'onChangeLocal',\n waitFor: [\n {\n processName: 'validator',\n withStates: ['validating', 'error'],\n withValue: args[0],\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n withValue: args[0],\n },\n {\n processName: 'onChangeContext',\n withStates: ['pending', 'error'],\n withValue: 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 setEventResult(await onChange?.apply(this, args))\n } else {\n setEventResult(null)\n }\n },\n true\n )\n } else {\n setEventResult(onChange?.apply(this, getArgs()))\n }\n\n await runPool()\n },\n [\n addToPool,\n asyncBehaviorIsEnabled,\n handleChangeIterateContext,\n hasError,\n hideError,\n itemPath,\n iterateElementIndex,\n onChange,\n runPool,\n defineAsyncProcess,\n setEventResult,\n updateValue,\n yieldAsyncProcess,\n ]\n )\n\n const handleFocus = useCallback(() => setHasFocus(true), [setHasFocus])\n const handleBlur = useCallback(() => setHasFocus(false), [setHasFocus])\n\n useMountEffect(() => {\n dataContext?.handleMountField(identifier)\n\n validateValue()\n })\n useUnmountEffect(() => {\n dataContext?.handleUnMountField(identifier)\n setFieldErrorDataContext?.(identifier, undefined)\n setFieldError?.(identifier, undefined)\n localErrorRef.current = undefined\n })\n\n useUpdateEffect(() => {\n schemaValidatorRef.current = schema\n ? dataContext.ajvInstance?.compile(schema)\n : undefined\n validateValue()\n }, [schema, validateValue])\n\n useUpdateEffect(() => {\n // Error or removed error for this field from the surrounding data context (by path)\n if (valueRef.current !== externalValue) {\n valueRef.current = externalValue\n validateValue()\n }\n forceUpdate()\n }, [externalValue, validateValue])\n\n useEffect(() => {\n const error = prepareError(dataContextError)\n if (errorChanged(error, contextErrorRef.current)) {\n contextErrorRef.current = error\n forceUpdate()\n }\n }, [dataContextError, prepareError])\n\n useEffect(() => {\n if (path) {\n let value = props.value\n\n // First, look for existing data in the context\n const hasValue = pointer.has(dataContext.data, path)\n const existingValue = hasValue\n ? pointer.get(dataContext.data, path)\n : undefined\n\n // If no data where found in the dataContext, look for shared data\n if (\n dataContext.id &&\n !hasValue &&\n typeof existingValue === 'undefined' &&\n typeof value === 'undefined'\n ) {\n const sharedState = createSharedState(dataContext.id)\n const hasValue = pointer.has(sharedState.data, path)\n if (hasValue) {\n const sharedValue = pointer.get(sharedState.data, path)\n if (sharedValue) {\n value = sharedValue\n }\n }\n }\n\n if (\n !hasValue ||\n (value !== existingValue &&\n // Prevents an infinite loop by skipping the update if the value hasn't changed\n valueRef.current !== existingValue)\n ) {\n // Update the data context when a pointer not exists,\n // but was given initially.\n updateDataValueDataContext?.(path, value)\n validateDataDataContext?.()\n }\n }\n }, [\n dataContext.data,\n dataContext.id,\n path,\n props.value,\n updateDataValueDataContext,\n validateDataDataContext,\n ])\n\n useEffect(() => {\n if (dataContext.showAllErrors) {\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 showError()\n forceUpdate()\n }\n }\n }, [dataContext.showAllErrors, showError])\n\n useEffect(() => {\n if (\n dataContext.formState === 'pending' &&\n (validatorRef.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('validator', callValidator, isAsync(validatorRef.current))\n addToPool(\n 'onBlurValidator',\n callOnBlurValidator,\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool()\n }, [addToPool, callOnBlurValidator, callValidator, hasError, runPool])\n\n // Validate/call validator functions during submit of the form\n useMountEffect(() => {\n dataContext?.setFieldEventListener?.(\n identifier,\n 'onSubmit',\n onSubmitHandler\n )\n })\n\n // Set the error in the field block context if this field is inside a field block\n useMountEffect(() => {\n if (inFieldBlock) {\n if (errorProp) {\n setFieldStateFieldBlock?.({\n identifier,\n type: 'error',\n content: errorProp,\n showInitially: true,\n show: true,\n })\n }\n if (warning) {\n setFieldStateFieldBlock?.({\n identifier,\n type: 'warning',\n content: warning,\n showInitially: true,\n show: true,\n })\n }\n if (info) {\n setFieldStateFieldBlock?.({\n identifier,\n type: 'info',\n content: info,\n showInitially: true,\n show: true,\n })\n }\n\n return () => {\n // Unmount procedure\n if (fieldBlockContext.mountedFieldsRef) {\n fieldBlockContext.mountedFieldsRef.current[identifier] = true\n }\n }\n }\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 // - Handle htmlAttributes\n const htmlAttributes = useMemo(() => {\n return Object.keys(props).reduce<AriaAttributes>((acc, cur) => {\n if (cur.startsWith('aria-') || cur.startsWith('data-')) {\n acc[cur] = props[cur]\n }\n return acc\n }, {})\n }, [props])\n\n if (error) {\n htmlAttributes['aria-invalid'] = error ? 'true' : 'false'\n }\n if (required) {\n htmlAttributes['aria-required'] = required ? 'true' : 'false'\n }\n if (inFieldBlock) {\n // Mount the field in the field block context\n if (fieldBlockContext.mountedFieldsRef) {\n fieldBlockContext.mountedFieldsRef.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\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(id)\n sharedData.set(fieldBlockProps)\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 (dataContext.autoComplete === true ? 'on' : undefined),\n\n /** Documented APIs */\n id,\n value: transformers.current.transformIn(\n transformers.current.toInput(valueRef.current)\n ),\n hasError: hasVisibleError,\n isChanged: changedRef.current,\n htmlAttributes,\n setHasFocus,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\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: (hasFocus: boolean, valueOverride?: unknown) => void\n handleFocus: () => void\n handleBlur: () => void\n handleChange: (\n value: Value,\n additionalArgs?: AdditionalEventArgs\n ) => void\n updateValue: (value: Value) => 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\nexport function useExternalValue<Value>({\n path,\n itemPath,\n props,\n transformers,\n emptyValue = undefined,\n}: {\n path?: Path\n itemPath?: Path\n props: FieldProps<Value>\n transformers: React.MutableRefObject<{\n fromExternal: FieldProps<Value>['fromExternal']\n }>\n emptyValue?: FieldProps<Value>['emptyValue']\n}) {\n const dataContext = useContext(DataContext)\n const iterateElementContext = useContext(IterateElementContext)\n const inIterate = Boolean(iterateElementContext)\n const { value: iterateElementValue } = iterateElementContext ?? {}\n\n return useMemo(() => {\n if (props.value !== emptyValue) {\n // Value-prop sent directly to the field has highest priority, overriding any surrounding source\n return transformers.current.fromExternal(props.value)\n }\n\n if (inIterate && itemPath) {\n // This field is inside an iterate, and has a pointer from the base of the element being iterated\n if (itemPath === '/') {\n return iterateElementValue\n }\n\n return pointer.has(iterateElementValue, itemPath)\n ? pointer.get(iterateElementValue, itemPath)\n : emptyValue\n }\n\n if (dataContext.data && path) {\n // There is a surrounding data context and a path for where in the source to find the data\n if (path === '/') {\n return dataContext.data\n }\n\n return pointer.has(dataContext.data, path)\n ? pointer.get(dataContext.data, path)\n : emptyValue\n }\n\n return emptyValue\n }, [\n props.value,\n emptyValue,\n inIterate,\n itemPath,\n dataContext.data,\n path,\n transformers,\n iterateElementValue,\n ])\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useFieldProps.js","names":["_react","require","_jsonPointer","_interopRequireDefault","_utils","_ajv","_types","_DataContext","_FieldPropsContext","_componentHelper","_useId","_useUpdateEffect","_useMountEffect","_useUnmountEffect","_FieldBlockContext","_IterateElementContext","_FieldBoundaryContext","_useProcessManager","_useSharedState","_isAsync","_useTranslation","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","useFieldProps","props","_dataContext$props","_dataContext$ajvInsta","_localErrorRef$curren","_ref2","_this","_props$path","_props$autoComplete","extend","useContext","FieldPropsContext","path","itemPath","emptyValue","required","disabled","disabledProp","info","warning","error","errorProp","errorMessages","onFocus","onBlur","onChange","onBlurValidator","validator","schema","validateInitially","validateUnchanged","continuousValidation","transformIn","transformOut","toInput","fromInput","toEvent","transformValue","fromExternal","validateRequired","_ref","forceUpdate","useReducer","startProcess","useProcessManager","id","useId","dataContext","DataContext","fieldBlockContext","FieldBlockContext","iterateElementContext","IterateElementContext","fieldBoundaryContext","FieldBoundaryContext","translation","useTranslation","transformers","useRef","handlePathChangeUnvalidated","handlePathChangeUnvalidatedDataContext","handlePathChange","handlePathChangeDataContext","updateDataValue","updateDataValueDataContext","validateData","validateDataDataContext","setFieldState","setFieldStateDataContext","setFieldError","setFieldErrorDataContext","setProps","setPropsDataContext","errors","dataContextErrors","contextErrorMessages","onChangeContext","readOnly","dataContextError","inFieldBlock","Boolean","setFieldStateFieldBlock","showFieldError","showFieldErrorFieldBlock","inIterate","index","iterateElementIndex","iteratePath","handleChange","handleChangeIterateContext","substring","Error","identifier","useMemo","iterateValuePath","externalValue","useExternalValue","valueRef","changedRef","hasFocusRef","showErrorRef","errorMethodRef","localErrorRef","contextErrorRef","validatorRef","useUpdateEffect","current","onBlurValidatorRef","schemaValidatorRef","ajvInstance","compile","asyncBehaviorIsEnabled","isAsync","validatedValue","changeEventResultRef","asyncProcessRef","defineAsyncProcess","useCallback","name","asyncBufferRef","resolve","validateProcesses","window","requestAnimationFrame","eventPool","onChangeLocal","addToPool","fn","runAsync","runPool","cb","pending","fieldStateRef","state","resolveValidatingState","showError","hideError","hasVisibleError","hasErrorProp","hasError","_ref3","errorMessagesRef","Field","errorRequired","prepareError","FormError","_error$messageValues","message","validationRule","_errorMessagesRef$cur","fieldMessage","messageWithValues","entries","messageValues","reduce","_ref4","replace","stateId","persistErrorState","method","errorArg","errorChanged","type","content","showInitially","clearErrorState","callValidator","opts","tmpValue","result","unchangedValue","callOnBlurValidator","valueOverride","validateValue","isProcessActive","requiredError","isChanged","ajvErrorsToOneFormError","handleError","setHasFocus","hasFocus","yieldAsyncProcess","_ref5","waitFor","Promise","some","_ref6","processName","withStates","withValue","hasMatchingValue","handleChangeEventResult","warningRef","infoRef","success","setEventResult","callOnChangeContext","updateValue","newValue","argFromInput","additionalArgs","currentValue","transformedValue","getArgs","args","handleFocus","handleBlur","useMountEffect","handleMountField","useUnmountEffect","handleUnMountField","_dataContext$ajvInsta2","useEffect","hasValue","pointer","has","data","existingValue","get","sharedState","createSharedState","sharedValue","showAllErrors","formState","onSubmitHandler","_dataContext$setField","setFieldEventListener","show","mountedFieldsRef","htmlAttributes","acc","cur","startsWith","_fieldBlockContext$fi","stateIds","fieldStateIdsRef","combineDescribedBy","ids","fieldBlockProps","fieldState","sharedData","useSharedState","set","autoComplete","_ref7","iterateElementValue"],"sources":["../../../../../src/extensions/forms/hooks/useFieldProps.ts"],"sourcesContent":["import {\n useRef,\n useEffect,\n useContext,\n useCallback,\n useMemo,\n useReducer,\n AriaAttributes,\n} from 'react'\nimport pointer from 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport { errorChanged } from '../utils'\nimport { ajvErrorsToOneFormError } from '../utils/ajv'\nimport {\n FormError,\n FieldProps,\n AdditionalEventArgs,\n SubmitState,\n EventReturnWithStateObjectAndSuccess,\n EventStateObjectWithSuccess,\n Path,\n} from '../types'\nimport { Context as DataContext, ContextState } from '../DataContext'\nimport FieldPropsContext from '../Form/FieldProps/FieldPropsContext'\nimport { combineDescribedBy } from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport useUpdateEffect from '../../../shared/helpers/useUpdateEffect'\nimport useMountEffect from '../../../shared/helpers/useMountEffect'\nimport useUnmountEffect from '../../../shared/helpers/useUnmountEffect'\nimport FieldBlockContext from '../FieldBlock/FieldBlockContext'\nimport IterateElementContext from '../Iterate/IterateElementContext'\nimport FieldBoundaryContext from '../DataContext/FieldBoundary/FieldBoundaryContext'\nimport useProcessManager from './useProcessManager'\nimport {\n createSharedState,\n useSharedState,\n} from '../../../shared/helpers/useSharedState'\nimport { isAsync } from '../../../shared/helpers/isAsync'\nimport useTranslation from './useTranslation'\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 AsyncProcessesBuffer = {\n resolve: () => void\n validateProcesses: () => boolean\n}\n\nexport type DataAttributes = {\n [property: `data-${string}`]: string\n}\n\nexport default function useFieldProps<\n Value = unknown,\n Props extends FieldProps<Value> = FieldProps<Value>,\n>(props: Props): Props & FieldProps<Value> & ReturnAdditional<Value> {\n const { extend } = useContext(FieldPropsContext)\n\n const {\n path,\n itemPath,\n emptyValue,\n required,\n disabled: disabledProp,\n info,\n warning,\n error: errorProp,\n errorMessages,\n onFocus,\n onBlur,\n onChange,\n onBlurValidator,\n validator,\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 fromExternal = (value: Value) => value,\n validateRequired = (value: Value, { emptyValue, required, error }) => {\n const res =\n required &&\n (value === emptyValue ||\n (typeof emptyValue === 'undefined' && value === ''))\n ? error\n : undefined\n\n return res\n },\n } = extend<Props>(props)\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const { startProcess } = useProcessManager()\n const id = useId(props.id)\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const iterateElementContext = useContext(IterateElementContext)\n const fieldBoundaryContext = useContext(FieldBoundaryContext)\n const translation = useTranslation()\n\n const transformers = useRef({\n transformIn,\n transformOut,\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 setProps: setPropsDataContext,\n errors: dataContextErrors,\n contextErrorMessages,\n } = dataContext ?? {}\n const onChangeContext = dataContext?.props?.onChange\n\n const disabled = disabledProp ?? props.readOnly\n const dataContextError = path ? dataContextErrors?.[path] : undefined\n const inFieldBlock = Boolean(fieldBlockContext)\n const {\n setFieldState: setFieldStateFieldBlock,\n showFieldError: showFieldErrorFieldBlock,\n } = fieldBlockContext ?? {}\n const inIterate = Boolean(iterateElementContext)\n const {\n index: iterateElementIndex,\n path: iteratePath,\n handleChange: handleChangeIterateContext,\n } = iterateElementContext ?? {}\n const { setFieldError } = fieldBoundaryContext ?? {}\n\n if (path && path.substring(0, 1) !== '/') {\n throw new Error(\n 'Invalid path. Data value path JSON Pointers must be from root (starting with a /).'\n )\n }\n if (itemPath && itemPath.substring(0, 1) !== '/') {\n throw new Error(\n 'Invalid itemPath. Item pathJSON Pointers must be from root of iterate element (starting with a /).'\n )\n }\n if (itemPath && !inIterate) {\n throw new Error(\n 'itemPath cannot be used when not inside an iterate context. Wrap the component in an Iterate.Array.'\n )\n }\n\n const identifier = useMemo(() => {\n if (itemPath) {\n const iterateValuePath = `${iteratePath}/${iterateElementIndex}${\n itemPath && itemPath !== '/' ? itemPath : ''\n }`\n return iterateValuePath\n }\n\n // Identifier is used is registries of multiple fields, like in the DataContext keeping track of errors\n return path ?? id\n }, [itemPath, path, id, iteratePath, iterateElementIndex])\n\n const externalValue = useExternalValue<Value>({\n path,\n itemPath,\n props,\n transformers,\n emptyValue,\n })\n\n // Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n // useEffect depend on them (like the external `value`)\n\n // Hold an internal copy of the input value in case the input component is used uncontrolled,\n // and to handle errors in Eufemia on components that does not take updated callback functions into account.\n const valueRef = useRef<Value>(externalValue)\n const changedRef = useRef<boolean>(false)\n const hasFocusRef = useRef<boolean>(false)\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 showErrorRef = useRef<boolean>(\n Boolean(validateInitially || errorProp)\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 // - Context errors are from outer contexts, like validation for this field as part of the whole data set\n const contextErrorRef = useRef<Error | FormError | undefined>(\n dataContextError\n )\n\n const validatorRef = useRef(validator)\n useUpdateEffect(() => {\n validatorRef.current = validator\n }, [validator])\n const onBlurValidatorRef = useRef(onBlurValidator)\n useUpdateEffect(() => {\n onBlurValidatorRef.current = onBlurValidator\n }, [onBlurValidator])\n\n const schemaValidatorRef = useRef<ValidateFunction>(\n schema ? dataContext.ajvInstance?.compile(schema) : undefined\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 // Put props into the surrounding data context\n setPropsDataContext?.(identifier, props)\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 showError = useCallback(() => {\n showErrorRef.current = true\n showFieldErrorFieldBlock?.(identifier, true)\n }, [showFieldErrorFieldBlock, identifier])\n\n const hideError = useCallback(() => {\n showErrorRef.current = false\n showFieldErrorFieldBlock?.(identifier, false)\n }, [showFieldErrorFieldBlock, identifier])\n\n const error =\n showErrorRef.current ||\n // If the error is a type error, we want to show it even if the field as not been used\n localErrorRef.current?.['validationRule'] === 'type'\n ? errorProp ?? localErrorRef.current ?? 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 errorMessagesRef = useRef(null)\n errorMessagesRef.current = useMemo(() => {\n return {\n required: translation.Field.errorRequired,\n ...errorMessages,\n }\n }, [errorMessages, translation.Field.errorRequired])\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 let message = error.message\n\n const { validationRule } = error\n if (typeof validationRule === 'string') {\n const fieldMessage = errorMessagesRef.current?.[validationRule]\n if (fieldMessage) {\n message = fieldMessage\n }\n }\n\n const messageWithValues = Object.entries(\n error.messageValues ?? {}\n ).reduce((message, [key, value]) => {\n return message.replace(`{${key}}`, value)\n }, message)\n\n error.message = messageWithValues\n\n return error\n }\n\n return error\n },\n []\n )\n\n /**\n * Based on validation, update error state, locally and relevant surrounding contexts\n */\n const stateId = useId()\n const persistErrorState = useCallback(\n (\n method: PersistErrorStateMethod,\n 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 (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 setFieldError?.(identifier, error)\n\n // Set the visual states\n setFieldStateDataContext?.(identifier, error ? 'error' : undefined)\n setFieldStateFieldBlock?.({\n stateId,\n identifier,\n type: 'error',\n content: error,\n showInitially: Boolean(inFieldBlock && validateInitially),\n })\n\n forceUpdate()\n },\n [\n prepareError,\n setFieldErrorDataContext,\n identifier,\n setFieldError,\n setFieldStateDataContext,\n setFieldStateFieldBlock,\n stateId,\n inFieldBlock,\n validateInitially,\n ]\n )\n\n const clearErrorState = useCallback(() => {\n persistErrorState('wipe')\n }, [persistErrorState])\n\n const callValidator = useCallback(async () => {\n if (typeof validatorRef.current !== 'function') {\n return\n }\n\n const runAsync = isAsync(validatorRef.current)\n\n if (runAsync) {\n defineAsyncProcess('validator')\n setFieldState('validating')\n hideError()\n }\n\n const opts = {\n ...contextErrorMessages,\n ...errorMessagesRef.current,\n }\n\n const tmpValue = valueRef.current\n\n // Run async regardless to support Promise based validators\n const result = await validatorRef.current(valueRef.current, opts)\n\n const unchangedValue = tmpValue === valueRef.current\n\n // Don't show the error if the value has changed in the meantime\n if (unchangedValue) {\n persistErrorState('gracefully', result as Error)\n\n // Because its a better UX to show the error when the validation is async/delayed\n if (continuousValidation || runAsync) {\n // Because we first need to throw the error to be able to display it, we delay the showError call\n window.requestAnimationFrame(() => {\n showError()\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 return result\n }, [\n contextErrorMessages,\n continuousValidation,\n hideError,\n persistErrorState,\n defineAsyncProcess,\n setFieldState,\n showError,\n ])\n\n const callOnBlurValidator = useCallback(\n async ({ valueOverride = null } = {}) => {\n if (typeof onBlurValidatorRef.current !== 'function') {\n return\n }\n // External blur validators makes it possible to validate values but not on every character change in case of\n // expensive validation calling external services etc.\n\n // Since the validator can return either a synchronous result or an asynchronous\n const value = transformers.current.toEvent(\n valueOverride ?? valueRef.current,\n 'onBlurValidator'\n )\n\n const runAsync = isAsync(onBlurValidatorRef.current)\n\n if (runAsync) {\n defineAsyncProcess('onBlurValidator')\n setFieldState('validating')\n }\n\n // Run async regardless to support Promise based validators\n const result = await onBlurValidatorRef.current(value)\n\n persistErrorState('gracefully', result as Error)\n\n if (runAsync) {\n defineAsyncProcess(undefined)\n setFieldState(result instanceof Error ? 'error' : 'complete')\n }\n\n showError()\n forceUpdate()\n },\n [persistErrorState, defineAsyncProcess, setFieldState, showError]\n )\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\n try {\n // Validate required\n const requiredError = transformers.current.validateRequired(value, {\n emptyValue,\n required,\n isChanged: changedRef.current,\n error: new FormError('The value is required', {\n validationRule: 'required',\n }),\n })\n if (requiredError instanceof Error) {\n throw requiredError\n }\n\n // Validate by provided JSON Schema for this value\n if (\n schemaValidatorRef.current &&\n value !== undefined &&\n !schemaValidatorRef.current(value)\n ) {\n const error = ajvErrorsToOneFormError(\n schemaValidatorRef.current.errors,\n valueRef.current\n )\n throw error\n }\n\n // Validate by provided derivative validator\n if (\n validatorRef.current &&\n (changedRef.current || validateInitially)\n ) {\n const result = await callValidator()\n\n if (result instanceof Error) {\n throw result\n }\n }\n\n if (isProcessActive()) {\n clearErrorState()\n }\n\n validatedValue.current = value\n } catch (error: unknown) {\n if (isProcessActive()) {\n persistErrorState('weak', error as Error)\n }\n }\n }, [\n startProcess,\n disabled,\n hideError,\n setFieldState,\n clearErrorState,\n emptyValue,\n required,\n validateInitially,\n callValidator,\n persistErrorState,\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 showError()\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, showError])\n\n const setHasFocus = useCallback(\n async (hasFocus: boolean, valueOverride?: Value) => {\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 const value = transformers.current.toEvent(\n valueOverride ?? valueRef.current,\n 'onFocus'\n )\n onFocus?.(value)\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 const value = transformers.current.toEvent(\n valueOverride ?? valueRef.current,\n 'onBlur'\n )\n onBlur?.(value)\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 callOnBlurValidator({ valueOverride }),\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool(() => {\n // Since the user left the field, show error (if any)\n showError()\n forceUpdate()\n })\n }\n },\n [\n addToPool,\n callOnBlurValidator,\n onBlur,\n onFocus,\n runPool,\n showError,\n validateUnchanged,\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 withValue?: Value\n }>\n }) => {\n return new Promise<void>((resolve) => {\n const validateProcesses = () => {\n const result = waitFor.some(\n ({ processName, withStates, withValue }) => {\n const hasMatchingValue =\n // If the value has changed during the async process, we don't want to resolve anymore\n withValue === validatedValue.current\n\n const result =\n (typeof withValue === '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 persistErrorState('gracefully', result.error)\n showError()\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 asyncBehaviorIsEnabled,\n defineAsyncProcess,\n persistErrorState,\n setFieldState,\n showError,\n yieldAsyncProcess,\n ])\n\n const setEventResult = useCallback(\n (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 handleChangeEventResult()\n },\n [handleChangeEventResult]\n )\n\n const callOnChangeContext = useCallback(async () => {\n if (asyncBehaviorIsEnabled) {\n await yieldAsyncProcess({\n name: 'onChangeContext',\n waitFor: [\n {\n processName: 'validator',\n withStates: ['validating', 'error'],\n withValue: valueRef.current,\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n withValue: valueRef.current,\n },\n ],\n })\n }\n\n if (path) {\n if (isAsync(onChangeContext)) {\n defineAsyncProcess('onChangeContext')\n\n // Skip sync errors, such as required\n if (!hasError()) {\n setEventResult(\n (await handlePathChangeDataContext?.(\n path\n )) as EventReturnWithStateObjectAndSuccess\n )\n } else {\n setEventResult(null)\n }\n } else {\n setEventResult(\n handlePathChangeDataContext?.(\n path\n ) as EventReturnWithStateObjectAndSuccess\n )\n }\n }\n\n forceUpdate()\n }, [\n asyncBehaviorIsEnabled,\n path,\n hasError,\n yieldAsyncProcess,\n onChangeContext,\n defineAsyncProcess,\n setEventResult,\n handlePathChangeDataContext,\n ])\n\n const updateValue = useCallback(\n async (newValue: Value) => {\n if (newValue === valueRef.current) {\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 valueRef.current = newValue\n\n handlePathChangeUnvalidatedDataContext(path, newValue)\n\n addToPool('validator', validateValue, isAsync(validatorRef.current))\n\n addToPool(\n 'onChangeContext',\n callOnChangeContext,\n isAsync(onChangeContext)\n )\n\n await runPool(() => {\n handleError()\n })\n },\n [\n handlePathChangeUnvalidatedDataContext,\n path,\n addToPool,\n validateValue,\n callOnChangeContext,\n onChangeContext,\n runPool,\n handleError,\n ]\n )\n\n const handleChange = useCallback(\n async (\n argFromInput: Value,\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 const transformedValue = transformers.current.transformOut(\n transformers.current.transformValue(fromInput, currentValue)\n )\n\n // Must be set before validation\n changedRef.current = true\n\n // Run in sync, before any async operations to avoid lag in UX\n if (itemPath) {\n const iterateValuePath = `/${iterateElementIndex}${\n itemPath && itemPath !== '/' ? itemPath : ''\n }`\n handleChangeIterateContext?.(iterateValuePath, transformedValue)\n }\n\n if (asyncBehaviorIsEnabled) {\n hideError()\n await updateValue(transformedValue)\n } else {\n updateValue(transformedValue)\n }\n\n const getArgs = (): [Value] | [Value, AdditionalEventArgs] => {\n const value = transformers.current.toEvent(\n valueRef.current,\n 'onChange'\n )\n\n return typeof additionalArgs !== 'undefined'\n ? [value, additionalArgs]\n : [value]\n }\n\n if (isAsync(onChange)) {\n addToPool(\n 'onChangeLocal',\n async () => {\n const args = getArgs()\n\n await yieldAsyncProcess({\n name: 'onChangeLocal',\n waitFor: [\n {\n processName: 'validator',\n withStates: ['validating', 'error'],\n withValue: args[0],\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n withValue: args[0],\n },\n {\n processName: 'onChangeContext',\n withStates: ['pending', 'error'],\n withValue: 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 setEventResult(await onChange?.apply(this, args))\n } else {\n setEventResult(null)\n }\n },\n true\n )\n } else {\n setEventResult(onChange?.apply(this, getArgs()))\n }\n\n await runPool()\n },\n [\n addToPool,\n asyncBehaviorIsEnabled,\n handleChangeIterateContext,\n hasError,\n hideError,\n itemPath,\n iterateElementIndex,\n onChange,\n runPool,\n defineAsyncProcess,\n setEventResult,\n updateValue,\n yieldAsyncProcess,\n ]\n )\n\n const handleFocus = useCallback(() => setHasFocus(true), [setHasFocus])\n const handleBlur = useCallback(() => setHasFocus(false), [setHasFocus])\n\n useMountEffect(() => {\n dataContext?.handleMountField(identifier)\n\n validateValue()\n })\n useUnmountEffect(() => {\n dataContext?.handleUnMountField(identifier)\n setFieldErrorDataContext?.(identifier, undefined)\n setFieldError?.(identifier, undefined)\n localErrorRef.current = undefined\n })\n\n useUpdateEffect(() => {\n schemaValidatorRef.current = schema\n ? dataContext.ajvInstance?.compile(schema)\n : undefined\n validateValue()\n }, [schema, validateValue])\n\n useUpdateEffect(() => {\n // Error or removed error for this field from the surrounding data context (by path)\n if (valueRef.current !== externalValue) {\n valueRef.current = externalValue\n validateValue()\n }\n forceUpdate()\n }, [externalValue, validateValue])\n\n useEffect(() => {\n const error = prepareError(dataContextError)\n if (errorChanged(error, contextErrorRef.current)) {\n contextErrorRef.current = error\n forceUpdate()\n }\n }, [dataContextError, prepareError])\n\n useEffect(() => {\n if (path) {\n let value = props.value\n\n // First, look for existing data in the context\n const hasValue = pointer.has(dataContext.data, path)\n const existingValue = hasValue\n ? pointer.get(dataContext.data, path)\n : undefined\n\n // If no data where found in the dataContext, look for shared data\n if (\n dataContext.id &&\n !hasValue &&\n typeof existingValue === 'undefined' &&\n typeof value === 'undefined'\n ) {\n const sharedState = createSharedState(dataContext.id)\n const hasValue = pointer.has(sharedState.data, path)\n if (hasValue) {\n const sharedValue = pointer.get(sharedState.data, path)\n if (sharedValue) {\n value = sharedValue\n }\n }\n }\n\n if (\n !hasValue ||\n (value !== existingValue &&\n // Prevents an infinite loop by skipping the update if the value hasn't changed\n valueRef.current !== existingValue)\n ) {\n // Update the data context when a pointer not exists,\n // but was given initially.\n updateDataValueDataContext?.(path, value)\n validateDataDataContext?.()\n }\n }\n }, [\n dataContext.data,\n dataContext.id,\n path,\n props.value,\n updateDataValueDataContext,\n validateDataDataContext,\n ])\n\n useEffect(() => {\n if (dataContext.showAllErrors) {\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 showError()\n forceUpdate()\n }\n }\n }, [dataContext.showAllErrors, showError])\n\n useEffect(() => {\n if (\n dataContext.formState === 'pending' &&\n (validatorRef.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('validator', callValidator, isAsync(validatorRef.current))\n addToPool(\n 'onBlurValidator',\n callOnBlurValidator,\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool()\n }, [addToPool, callOnBlurValidator, callValidator, hasError, runPool])\n\n // Validate/call validator functions during submit of the form\n useMountEffect(() => {\n dataContext?.setFieldEventListener?.(\n identifier,\n 'onSubmit',\n onSubmitHandler\n )\n })\n\n // Set the error in the field block context if this field is inside a field block\n useMountEffect(() => {\n if (inFieldBlock) {\n if (errorProp) {\n setFieldStateFieldBlock?.({\n identifier,\n type: 'error',\n content: errorProp,\n showInitially: true,\n show: true,\n })\n }\n if (warning) {\n setFieldStateFieldBlock?.({\n identifier,\n type: 'warning',\n content: warning,\n showInitially: true,\n show: true,\n })\n }\n if (info) {\n setFieldStateFieldBlock?.({\n identifier,\n type: 'info',\n content: info,\n showInitially: true,\n show: true,\n })\n }\n\n return () => {\n // Unmount procedure\n if (fieldBlockContext.mountedFieldsRef) {\n fieldBlockContext.mountedFieldsRef.current[identifier] = true\n }\n }\n }\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 // - Handle htmlAttributes\n const htmlAttributes = useMemo(() => {\n return Object.keys(props).reduce<AriaAttributes>((acc, cur) => {\n if (cur.startsWith('aria-') || cur.startsWith('data-')) {\n acc[cur] = props[cur]\n }\n return acc\n }, {})\n }, [props])\n\n if (error) {\n htmlAttributes['aria-invalid'] = error ? 'true' : 'false'\n }\n if (required) {\n htmlAttributes['aria-required'] = required ? 'true' : 'false'\n }\n if (inFieldBlock) {\n // Mount the field in the field block context\n if (fieldBlockContext.mountedFieldsRef) {\n fieldBlockContext.mountedFieldsRef.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\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(id)\n sharedData.set(fieldBlockProps)\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 (dataContext.autoComplete === true ? 'on' : undefined),\n\n /** Documented APIs */\n id,\n value: transformers.current.transformIn(\n transformers.current.toInput(valueRef.current)\n ),\n hasError: hasVisibleError,\n isChanged: changedRef.current,\n htmlAttributes,\n setHasFocus,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\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: (hasFocus: boolean, valueOverride?: unknown) => void\n handleFocus: () => void\n handleBlur: () => void\n handleChange: (\n value: Value,\n additionalArgs?: AdditionalEventArgs\n ) => void\n updateValue: (value: Value) => 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\nexport function useExternalValue<Value>({\n path,\n itemPath,\n props,\n transformers,\n emptyValue = undefined,\n}: {\n path?: Path\n itemPath?: Path\n props: FieldProps<Value>\n transformers: React.MutableRefObject<{\n fromExternal: FieldProps<Value>['fromExternal']\n }>\n emptyValue?: FieldProps<Value>['emptyValue']\n}) {\n const dataContext = useContext(DataContext)\n const iterateElementContext = useContext(IterateElementContext)\n const inIterate = Boolean(iterateElementContext)\n const { value: iterateElementValue } = iterateElementContext ?? {}\n\n return useMemo(() => {\n if (props.value !== emptyValue) {\n // Value-prop sent directly to the field has highest priority, overriding any surrounding source\n return transformers.current.fromExternal(props.value)\n }\n\n if (inIterate && itemPath) {\n // This field is inside an iterate, and has a pointer from the base of the element being iterated\n if (itemPath === '/') {\n return iterateElementValue\n }\n\n return pointer.has(iterateElementValue, itemPath)\n ? pointer.get(iterateElementValue, itemPath)\n : emptyValue\n }\n\n if (dataContext.data && path) {\n // There is a surrounding data context and a path for where in the source to find the data\n if (path === '/') {\n return dataContext.data\n }\n\n return pointer.has(dataContext.data, path)\n ? pointer.get(dataContext.data, path)\n : emptyValue\n }\n\n return emptyValue\n }, [\n props.value,\n emptyValue,\n inIterate,\n itemPath,\n dataContext.data,\n path,\n transformers,\n iterateElementValue,\n ])\n}\n"],"mappings":"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"}
@@ -20,7 +20,9 @@ function useTranslation(messages) {
20
20
  const tr = _locales.default[locale] || _locales.default[_defaults.LOCALE];
21
21
  const Forms = translation === null || translation === void 0 ? void 0 : translation.Forms;
22
22
  if (Forms) {
23
- Object.assign(tr, Forms);
23
+ for (const key in Forms) {
24
+ tr[key] = Object.assign((tr === null || tr === void 0 ? void 0 : tr[key]) || {}, Forms[key]);
25
+ }
24
26
  }
25
27
  return (0, _useTranslation.combineTranslations)({
26
28
  translation: tr,
@@ -1 +1 @@
1
- {"version":3,"file":"useTranslation.js","names":["_react","require","_Context","_interopRequireDefault","_useTranslation","_defaults","_locales","obj","__esModule","default","useTranslation","messages","locale","translation","useContext","SharedContext","useMemo","tr","formsLocales","LOCALE","Forms","Object","assign","combineTranslations"],"sources":["../../../../../src/extensions/forms/hooks/useTranslation.tsx"],"sourcesContent":["import { useMemo, useContext } from 'react'\nimport SharedContext from '../../../shared/Context'\nimport { combineTranslations } from '../../../shared/useTranslation'\nimport { DeepPartial } from '../../../shared/types'\nimport { LOCALE } from '../../../shared/defaults'\nimport formsLocales from '../constants/locales'\n\nexport type FormsTranslationDefaultLocales = typeof formsLocales\nexport type FormsTranslationLocale = keyof FormsTranslationDefaultLocales\nexport type FormsTranslationKeys =\n keyof FormsTranslationDefaultLocales[FormsTranslationLocale]\nexport type FormsTranslationValues =\n FormsTranslationDefaultLocales[FormsTranslationLocale]\nexport type FormsTranslation = DeepPartial<\n FormsTranslationDefaultLocales[FormsTranslationLocale]\n>\n\ntype CustomLocales = Partial<\n Record<FormsTranslationLocale, FormsTranslation>\n>\n\nexport default function useTranslation<T = FormsTranslation>(\n messages?:\n | FormsTranslation\n | CustomLocales\n | Record<FormsTranslationLocale, T>\n) {\n const { locale, translation } = useContext(SharedContext)\n\n return useMemo(() => {\n const tr = formsLocales[locale] || formsLocales[LOCALE]\n\n const Forms = translation?.Forms\n if (Forms) {\n Object.assign(tr, Forms)\n }\n\n return combineTranslations({\n translation: tr,\n messages,\n locale,\n }) as T\n }, [locale, messages, translation])\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AAEA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAH,sBAAA,CAAAF,OAAA;AAA+C,SAAAE,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAgBhC,SAASG,cAAcA,CACpCC,QAGqC,EACrC;EACA,MAAM;IAAEC,MAAM;IAAEC;EAAY,CAAC,GAAG,IAAAC,iBAAU,EAACC,gBAAa,CAAC;EAEzD,OAAO,IAAAC,cAAO,EAAC,MAAM;IACnB,MAAMC,EAAE,GAAGC,gBAAY,CAACN,MAAM,CAAC,IAAIM,gBAAY,CAACC,gBAAM,CAAC;IAEvD,MAAMC,KAAK,GAAGP,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEO,KAAK;IAChC,IAAIA,KAAK,EAAE;MACTC,MAAM,CAACC,MAAM,CAACL,EAAE,EAAEG,KAAK,CAAC;IAC1B;IAEA,OAAO,IAAAG,mCAAmB,EAAC;MACzBV,WAAW,EAAEI,EAAE;MACfN,QAAQ;MACRC;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CAACA,MAAM,EAAED,QAAQ,EAAEE,WAAW,CAAC,CAAC;AACrC"}
1
+ {"version":3,"file":"useTranslation.js","names":["_react","require","_Context","_interopRequireDefault","_useTranslation","_defaults","_locales","obj","__esModule","default","useTranslation","messages","locale","translation","useContext","SharedContext","useMemo","tr","formsLocales","LOCALE","Forms","key","Object","assign","combineTranslations"],"sources":["../../../../../src/extensions/forms/hooks/useTranslation.tsx"],"sourcesContent":["import { useMemo, useContext } from 'react'\nimport SharedContext from '../../../shared/Context'\nimport { combineTranslations } from '../../../shared/useTranslation'\nimport { DeepPartial } from '../../../shared/types'\nimport { LOCALE } from '../../../shared/defaults'\nimport formsLocales from '../constants/locales'\n\nexport type FormsTranslationDefaultLocales = typeof formsLocales\nexport type FormsTranslationLocale = keyof FormsTranslationDefaultLocales\nexport type FormsTranslationKeys =\n keyof FormsTranslationDefaultLocales[FormsTranslationLocale]\nexport type FormsTranslationValues =\n FormsTranslationDefaultLocales[FormsTranslationLocale]\nexport type FormsTranslation = DeepPartial<\n FormsTranslationDefaultLocales[FormsTranslationLocale]\n>\n\ntype CustomLocales = Partial<\n Record<FormsTranslationLocale, FormsTranslation>\n>\n\nexport default function useTranslation<T = FormsTranslation>(\n messages?:\n | FormsTranslation\n | CustomLocales\n | Record<FormsTranslationLocale, T>\n) {\n const { locale, translation } = useContext(SharedContext)\n\n return useMemo(() => {\n const tr = formsLocales[locale] || formsLocales[LOCALE]\n\n const Forms = translation?.Forms\n if (Forms) {\n for (const key in Forms) {\n tr[key] = Object.assign(tr?.[key] || {}, Forms[key])\n }\n }\n\n return combineTranslations({\n translation: tr,\n messages,\n locale,\n }) as T\n }, [locale, messages, translation])\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AAEA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAH,sBAAA,CAAAF,OAAA;AAA+C,SAAAE,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAgBhC,SAASG,cAAcA,CACpCC,QAGqC,EACrC;EACA,MAAM;IAAEC,MAAM;IAAEC;EAAY,CAAC,GAAG,IAAAC,iBAAU,EAACC,gBAAa,CAAC;EAEzD,OAAO,IAAAC,cAAO,EAAC,MAAM;IACnB,MAAMC,EAAE,GAAGC,gBAAY,CAACN,MAAM,CAAC,IAAIM,gBAAY,CAACC,gBAAM,CAAC;IAEvD,MAAMC,KAAK,GAAGP,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEO,KAAK;IAChC,IAAIA,KAAK,EAAE;MACT,KAAK,MAAMC,GAAG,IAAID,KAAK,EAAE;QACvBH,EAAE,CAACI,GAAG,CAAC,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAAN,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAGI,GAAG,CAAC,KAAI,CAAC,CAAC,EAAED,KAAK,CAACC,GAAG,CAAC,CAAC;MACtD;IACF;IAEA,OAAO,IAAAG,mCAAmB,EAAC;MACzBX,WAAW,EAAEI,EAAE;MACfN,QAAQ;MACRC;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CAACA,MAAM,EAAED,QAAQ,EAAEE,WAAW,CAAC,CAAC;AACrC"}