@dnb/eufemia 10.49.0 → 10.51.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 (1240) hide show
  1. package/CHANGELOG.md +75 -0
  2. package/cjs/components/accordion/style/dnb-accordion.css +3 -3
  3. package/cjs/components/accordion/style/dnb-accordion.min.css +1 -1
  4. package/cjs/components/autocomplete/style/dnb-autocomplete.css +1 -1
  5. package/cjs/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  6. package/cjs/components/breadcrumb/BreadcrumbItem.d.ts +1 -1
  7. package/cjs/components/breadcrumb/BreadcrumbItem.js +3 -3
  8. package/cjs/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  9. package/cjs/components/breadcrumb/BreadcrumbMultiple.js +2 -2
  10. package/cjs/components/breadcrumb/BreadcrumbMultiple.js.map +1 -1
  11. package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
  12. package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  13. package/cjs/components/button/Button.d.ts +2 -2
  14. package/cjs/components/card/style/dnb-card.css +1 -1
  15. package/cjs/components/card/style/dnb-card.min.css +1 -1
  16. package/cjs/components/checkbox/CheckboxDocs.js +1 -1
  17. package/cjs/components/checkbox/CheckboxDocs.js.map +1 -1
  18. package/cjs/components/date-picker/DatePicker.d.ts +13 -4
  19. package/cjs/components/drawer/style/dnb-drawer.css +3 -3
  20. package/cjs/components/drawer/style/dnb-drawer.min.css +1 -1
  21. package/cjs/components/dropdown/style/dnb-dropdown.css +1 -1
  22. package/cjs/components/dropdown/style/dnb-dropdown.min.css +1 -1
  23. package/cjs/components/form-row/style/dnb-form-row.css +1 -1
  24. package/cjs/components/form-row/style/dnb-form-row.min.css +1 -1
  25. package/cjs/components/form-status/FormStatus.d.ts +1 -1
  26. package/cjs/components/grid/style/dnb-grid.css +6 -6
  27. package/cjs/components/grid/style/dnb-grid.min.css +1 -1
  28. package/cjs/components/input-masked/InputMasked.d.ts +1 -1
  29. package/cjs/components/input-masked/InputMaskedDocs.js +1 -1
  30. package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -1
  31. package/cjs/components/number-format/NumberFormat.d.ts +14 -28
  32. package/cjs/components/number-format/NumberFormat.js +6 -2
  33. package/cjs/components/number-format/NumberFormat.js.map +1 -1
  34. package/cjs/components/number-format/NumberFormatDocs.d.ts +3 -0
  35. package/cjs/components/number-format/NumberFormatDocs.js +161 -0
  36. package/cjs/components/number-format/NumberFormatDocs.js.map +1 -0
  37. package/cjs/components/number-format/NumberUtils.d.ts +21 -1
  38. package/cjs/components/number-format/NumberUtils.js +33 -8
  39. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  40. package/cjs/components/pagination/Pagination.d.ts +1 -1
  41. package/cjs/components/section/style/dnb-section.css +2 -2
  42. package/cjs/components/section/style/dnb-section.min.css +2 -2
  43. package/cjs/components/space/style/dnb-space.css +2 -2
  44. package/cjs/components/space/style/dnb-space.min.css +1 -1
  45. package/cjs/components/switch/Switch.d.ts +100 -91
  46. package/cjs/components/switch/Switch.js +167 -239
  47. package/cjs/components/switch/Switch.js.map +1 -1
  48. package/cjs/components/switch/SwitchDocs.d.ts +3 -0
  49. package/cjs/components/switch/SwitchDocs.js +93 -0
  50. package/cjs/components/switch/SwitchDocs.js.map +1 -0
  51. package/cjs/components/tabs/style/dnb-tabs.css +1 -0
  52. package/cjs/components/tabs/style/dnb-tabs.min.css +1 -1
  53. package/cjs/components/tabs/style/dnb-tabs.scss +1 -0
  54. package/cjs/components/toggle-button/style/dnb-toggle-button.css +1 -1
  55. package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  56. package/cjs/elements/ElementDocs.d.ts +2 -0
  57. package/cjs/elements/ElementDocs.js +35 -0
  58. package/cjs/elements/ElementDocs.js.map +1 -0
  59. package/cjs/elements/blockquote/BlockquoteDocs.d.ts +2 -0
  60. package/cjs/elements/blockquote/BlockquoteDocs.js +25 -0
  61. package/cjs/elements/blockquote/BlockquoteDocs.js.map +1 -0
  62. package/cjs/elements/hr/HrDocs.d.ts +2 -0
  63. package/cjs/elements/hr/HrDocs.js +25 -0
  64. package/cjs/elements/hr/HrDocs.js.map +1 -0
  65. package/cjs/elements/img/ImgDocs.d.ts +2 -0
  66. package/cjs/elements/img/ImgDocs.js +40 -0
  67. package/cjs/elements/img/ImgDocs.js.map +1 -0
  68. package/cjs/elements/lists/DlDocs.d.ts +2 -0
  69. package/cjs/elements/lists/DlDocs.js +21 -0
  70. package/cjs/elements/lists/DlDocs.js.map +1 -0
  71. package/cjs/elements/lists/OlDocs.d.ts +2 -0
  72. package/cjs/elements/lists/OlDocs.js +31 -0
  73. package/cjs/elements/lists/OlDocs.js.map +1 -0
  74. package/cjs/elements/lists/UlDocs.d.ts +2 -0
  75. package/cjs/elements/lists/UlDocs.js +31 -0
  76. package/cjs/elements/lists/UlDocs.js.map +1 -0
  77. package/cjs/elements/typography/IngressDocs.d.ts +2 -0
  78. package/cjs/elements/typography/IngressDocs.js +15 -0
  79. package/cjs/elements/typography/IngressDocs.js.map +1 -0
  80. package/cjs/elements/typography/LeadDocs.d.ts +2 -0
  81. package/cjs/elements/typography/LeadDocs.js +15 -0
  82. package/cjs/elements/typography/LeadDocs.js.map +1 -0
  83. package/cjs/elements/typography/PDocs.d.ts +2 -0
  84. package/cjs/elements/typography/PDocs.js +40 -0
  85. package/cjs/elements/typography/PDocs.js.map +1 -0
  86. package/cjs/extensions/forms/DataContext/At/At.js +1 -1
  87. package/cjs/extensions/forms/DataContext/At/At.js.map +1 -1
  88. package/cjs/extensions/forms/DataContext/Context.d.ts +37 -15
  89. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  90. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +1 -1
  91. package/cjs/extensions/forms/DataContext/Provider/Provider.js +160 -78
  92. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  93. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  94. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  95. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +1 -1
  96. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  97. package/cjs/extensions/forms/Field/Date/Date.d.ts +6 -0
  98. package/cjs/extensions/forms/Field/Date/Date.js +20 -4
  99. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  100. package/{extensions/forms/Form/FieldProps/FieldPropsDocs.d.ts → cjs/extensions/forms/Field/Date/DateDocs.d.ts} +1 -1
  101. package/cjs/extensions/forms/Field/Date/DateDocs.js +20 -0
  102. package/cjs/extensions/forms/Field/Date/DateDocs.js.map +1 -0
  103. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js +1 -1
  104. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
  105. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +34 -5
  106. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  107. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -4
  108. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -3
  109. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  110. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +1 -0
  111. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +65 -2
  112. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  113. package/{es/extensions/forms/Form/FieldProps/FieldProps.d.ts → cjs/extensions/forms/Field/Provider/FieldProvider.d.ts} +5 -7
  114. package/cjs/extensions/forms/Field/Provider/FieldProvider.js +33 -0
  115. package/cjs/extensions/forms/Field/Provider/FieldProvider.js.map +1 -0
  116. package/cjs/extensions/forms/{Form/FieldProps/FieldPropsContext.d.ts → Field/Provider/FieldProviderContext.d.ts} +3 -3
  117. package/cjs/extensions/forms/{Form/FieldProps/FieldPropsContext.js → Field/Provider/FieldProviderContext.js} +3 -3
  118. package/cjs/extensions/forms/Field/Provider/FieldProviderContext.js.map +1 -0
  119. package/cjs/extensions/forms/Field/Provider/FieldProviderDocs.d.ts +2 -0
  120. package/cjs/extensions/forms/{Form/FieldProps/FieldPropsDocs.js → Field/Provider/FieldProviderDocs.js} +4 -4
  121. package/cjs/extensions/forms/Field/Provider/FieldProviderDocs.js.map +1 -0
  122. package/cjs/extensions/forms/Field/Provider/index.d.ts +2 -0
  123. package/cjs/extensions/forms/{Form/FieldProps → Field/Provider}/index.js +5 -5
  124. package/cjs/extensions/forms/Field/Provider/index.js.map +1 -0
  125. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +121 -0
  126. package/cjs/extensions/forms/{Form/FieldProps/FieldProps.js → Field/Provider/useFieldProvider.js} +34 -34
  127. package/cjs/extensions/forms/Field/Provider/useFieldProvider.js.map +1 -0
  128. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +10 -5
  129. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +59 -32
  130. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  131. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +5 -0
  132. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  133. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  134. package/cjs/extensions/forms/Field/index.js +7 -0
  135. package/cjs/extensions/forms/Field/index.js.map +1 -1
  136. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +13 -2
  137. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  138. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
  139. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  140. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +1 -1
  141. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  142. package/cjs/extensions/forms/Form/Element/Element.js +4 -4
  143. package/cjs/extensions/forms/Form/Element/Element.js.map +1 -1
  144. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +2 -2
  145. package/cjs/extensions/forms/Form/Handler/Handler.js +3 -1
  146. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  147. package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +2 -2
  148. package/cjs/extensions/forms/Form/Isolation/Isolation.js +11 -3
  149. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  150. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +1 -1
  151. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  152. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +0 -2
  153. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  154. package/cjs/extensions/forms/Form/Section/Section.d.ts +2 -1
  155. package/cjs/extensions/forms/Form/Section/Section.js +2 -2
  156. package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
  157. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.d.ts +25 -0
  158. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +153 -0
  159. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -0
  160. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.d.ts +2 -0
  161. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.js +30 -0
  162. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.js.map +1 -0
  163. package/cjs/extensions/forms/Form/SubmitConfirmation/index.d.ts +2 -0
  164. package/cjs/extensions/forms/Form/SubmitConfirmation/index.js +27 -0
  165. package/cjs/extensions/forms/Form/SubmitConfirmation/index.js.map +1 -0
  166. package/cjs/extensions/forms/Form/Visibility/Visibility.js +10 -4
  167. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  168. package/cjs/extensions/forms/Form/Visibility/VisibilityContext.d.ts +7 -0
  169. package/cjs/extensions/forms/Form/Visibility/VisibilityContext.js +12 -0
  170. package/cjs/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -0
  171. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  172. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  173. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +4 -4
  174. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  175. package/cjs/extensions/forms/Form/data-context/getData.d.ts +2 -1
  176. package/cjs/extensions/forms/Form/data-context/getData.js +7 -2
  177. package/cjs/extensions/forms/Form/data-context/getData.js.map +1 -1
  178. package/cjs/extensions/forms/Form/data-context/useData.d.ts +7 -3
  179. package/cjs/extensions/forms/Form/data-context/useData.js +40 -19
  180. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  181. package/{es/extensions/forms/Form/data-context/useError.d.ts → cjs/extensions/forms/Form/data-context/useValidation.d.ts} +3 -1
  182. package/cjs/extensions/forms/Form/data-context/useValidation.js +60 -0
  183. package/cjs/extensions/forms/Form/data-context/useValidation.js.map +1 -0
  184. package/cjs/extensions/forms/Form/index.d.ts +13 -2
  185. package/cjs/extensions/forms/Form/index.js +19 -9
  186. package/cjs/extensions/forms/Form/index.js.map +1 -1
  187. package/cjs/extensions/forms/Iterate/Array/Array.js +32 -23
  188. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  189. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js +5 -0
  190. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  191. package/cjs/extensions/forms/Iterate/Array/types.d.ts +1 -0
  192. package/cjs/extensions/forms/Iterate/Array/types.js.map +1 -1
  193. package/cjs/extensions/forms/Iterate/Count/Count.js +1 -1
  194. package/cjs/extensions/forms/Iterate/Count/Count.js.map +1 -1
  195. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js +19 -7
  196. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  197. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +2 -2
  198. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  199. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js +11 -1
  200. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  201. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +30 -10
  202. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  203. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +2 -2
  204. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  205. package/cjs/extensions/forms/Iterate/hooks/index.d.ts +1 -0
  206. package/cjs/extensions/forms/Iterate/hooks/index.js +7 -0
  207. package/cjs/extensions/forms/Iterate/hooks/index.js.map +1 -1
  208. package/cjs/extensions/forms/Iterate/hooks/useArrayLimit.d.ts +15 -0
  209. package/cjs/extensions/forms/Iterate/hooks/useArrayLimit.js +50 -0
  210. package/cjs/extensions/forms/Iterate/hooks/useArrayLimit.js.map +1 -0
  211. package/cjs/extensions/forms/Tools/GenerateSchema.d.ts +1 -1
  212. package/cjs/extensions/forms/Tools/GenerateSchema.js +1 -1
  213. package/cjs/extensions/forms/Tools/GenerateSchema.js.map +1 -1
  214. package/cjs/extensions/forms/Tools/ListAllProps.d.ts +1 -1
  215. package/cjs/extensions/forms/Tools/ListAllProps.js +1 -1
  216. package/cjs/extensions/forms/Tools/ListAllProps.js.map +1 -1
  217. package/cjs/extensions/forms/Tools/Log.js +1 -1
  218. package/cjs/extensions/forms/Tools/Log.js.map +1 -1
  219. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +12 -0
  220. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js +27 -10
  221. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
  222. package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +10 -0
  223. package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -1
  224. package/cjs/extensions/forms/Value/Currency/CurrencyDocs.d.ts +2 -0
  225. package/cjs/extensions/forms/Value/Currency/CurrencyDocs.js +28 -0
  226. package/cjs/extensions/forms/Value/Currency/CurrencyDocs.js.map +1 -0
  227. package/cjs/extensions/forms/Value/Date/Date.js +25 -16
  228. package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
  229. package/cjs/extensions/forms/Value/Number/Number.js +3 -2
  230. package/cjs/extensions/forms/Value/Number/Number.js.map +1 -1
  231. package/cjs/extensions/forms/Value/Number/NumberDocs.js +9 -2
  232. package/cjs/extensions/forms/Value/Number/NumberDocs.js.map +1 -1
  233. package/cjs/extensions/forms/Value/Provider/ValueProvider.d.ts +13 -0
  234. package/cjs/extensions/forms/Value/Provider/ValueProvider.js +27 -0
  235. package/cjs/extensions/forms/Value/Provider/ValueProvider.js.map +1 -0
  236. package/cjs/extensions/forms/Value/Provider/ValueProviderContext.d.ts +9 -0
  237. package/cjs/extensions/forms/Value/Provider/ValueProviderContext.js +15 -0
  238. package/cjs/extensions/forms/Value/Provider/ValueProviderContext.js.map +1 -0
  239. package/cjs/extensions/forms/Value/Provider/ValueProviderDocs.d.ts +3 -0
  240. package/cjs/extensions/forms/Value/Provider/ValueProviderDocs.js +23 -0
  241. package/cjs/extensions/forms/Value/Provider/ValueProviderDocs.js.map +1 -0
  242. package/cjs/extensions/forms/Value/Provider/index.d.ts +2 -0
  243. package/cjs/extensions/forms/Value/Provider/index.js +27 -0
  244. package/cjs/extensions/forms/Value/Provider/index.js.map +1 -0
  245. package/cjs/extensions/forms/Value/Provider/useValueProvider.d.ts +31 -0
  246. package/cjs/extensions/forms/Value/Provider/useValueProvider.js +50 -0
  247. package/cjs/extensions/forms/Value/Provider/useValueProvider.js.map +1 -0
  248. package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +1 -0
  249. package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.js +7 -23
  250. package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -1
  251. package/cjs/extensions/forms/Value/SelectCountry/useCountry.d.ts +4 -0
  252. package/cjs/extensions/forms/Value/SelectCountry/useCountry.js +33 -0
  253. package/cjs/extensions/forms/Value/SelectCountry/useCountry.js.map +1 -0
  254. package/cjs/extensions/forms/Value/Selection/Selection.js +2 -1
  255. package/cjs/extensions/forms/Value/Selection/Selection.js.map +1 -1
  256. package/cjs/extensions/forms/Value/SummaryList/SummaryList.d.ts +4 -1
  257. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js +11 -3
  258. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  259. package/cjs/extensions/forms/Value/SummaryList/SummaryListDocs.d.ts +3 -0
  260. package/cjs/extensions/forms/Value/SummaryList/SummaryListDocs.js +37 -0
  261. package/cjs/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -0
  262. package/cjs/extensions/forms/Value/ValueDocs.js +5 -0
  263. package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -1
  264. package/cjs/extensions/forms/Value/index.d.ts +3 -2
  265. package/cjs/extensions/forms/Value/index.js +9 -2
  266. package/cjs/extensions/forms/Value/index.js.map +1 -1
  267. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +8 -6
  268. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  269. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +2 -2
  270. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  271. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +2 -1
  272. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  273. package/cjs/extensions/forms/Wizard/Step/Step.js +2 -2
  274. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  275. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +2 -5
  276. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  277. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -4
  278. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.d.ts +2 -1
  279. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +35 -19
  280. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  281. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js +5 -0
  282. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js.map +1 -1
  283. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.d.ts +0 -2
  284. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +70 -70
  285. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
  286. package/cjs/extensions/forms/constants/countries.d.ts +1 -0
  287. package/cjs/extensions/forms/constants/countries.js.map +1 -1
  288. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +5 -4
  289. package/cjs/extensions/forms/constants/locales/en-GB.js +8 -7
  290. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  291. package/cjs/extensions/forms/constants/locales/en-US.d.ts +5 -4
  292. package/cjs/extensions/forms/constants/locales/index.d.ts +10 -8
  293. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +5 -4
  294. package/cjs/extensions/forms/constants/locales/nb-NO.js +8 -7
  295. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  296. package/cjs/extensions/forms/hooks/DataValueDocs.js +1 -1
  297. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  298. package/cjs/extensions/forms/hooks/useDataValue.d.ts +1 -1
  299. package/cjs/extensions/forms/hooks/useDataValue.js +1 -1
  300. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  301. package/cjs/extensions/forms/hooks/useExternalValue.js +1 -1
  302. package/cjs/extensions/forms/hooks/useExternalValue.js.map +1 -1
  303. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +2 -1
  304. package/cjs/extensions/forms/hooks/useFieldProps.js +234 -87
  305. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  306. package/cjs/extensions/forms/hooks/usePath.js +7 -4
  307. package/cjs/extensions/forms/hooks/usePath.js.map +1 -1
  308. package/cjs/extensions/forms/hooks/useValueProps.d.ts +1 -1
  309. package/cjs/extensions/forms/hooks/useValueProps.js +37 -9
  310. package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
  311. package/cjs/extensions/forms/style/dnb-forms.css +10 -21
  312. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  313. package/cjs/extensions/forms/types.d.ts +19 -8
  314. package/cjs/extensions/forms/types.js.map +1 -1
  315. package/cjs/extensions/forms/utils/ajv.d.ts +2 -1
  316. package/cjs/extensions/forms/utils/ajv.js +1 -1
  317. package/cjs/extensions/forms/utils/ajv.js.map +1 -1
  318. package/cjs/extensions/forms/utils/index.d.ts +1 -0
  319. package/cjs/extensions/forms/utils/index.js +12 -0
  320. package/cjs/extensions/forms/utils/index.js.map +1 -1
  321. package/cjs/extensions/forms/utils/json-pointer/export.d.ts +1 -0
  322. package/cjs/extensions/forms/utils/json-pointer/export.js +17 -0
  323. package/cjs/extensions/forms/utils/json-pointer/export.js.map +1 -0
  324. package/cjs/extensions/forms/utils/json-pointer/json-pointer.d.ts +43 -0
  325. package/cjs/extensions/forms/utils/json-pointer/json-pointer.js +139 -0
  326. package/cjs/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -0
  327. package/cjs/extensions/forms/utils/json-pointer.d.ts +3 -0
  328. package/cjs/extensions/forms/utils/json-pointer.js +24 -0
  329. package/cjs/extensions/forms/utils/json-pointer.js.map +1 -0
  330. package/cjs/shared/Context.d.ts +2 -0
  331. package/cjs/shared/Context.js +1 -1
  332. package/cjs/shared/Context.js.map +1 -1
  333. package/cjs/shared/Eufemia.d.ts +1 -1
  334. package/cjs/shared/Eufemia.js +2 -2
  335. package/cjs/shared/Eufemia.js.map +1 -1
  336. package/cjs/shared/MediaQueryUtils.d.ts +0 -1
  337. package/cjs/shared/MediaQueryUtils.js +17 -14
  338. package/cjs/shared/MediaQueryUtils.js.map +1 -1
  339. package/cjs/shared/helpers/extendPropsWithContext.js +3 -3
  340. package/cjs/shared/helpers/extendPropsWithContext.js.map +1 -1
  341. package/cjs/shared/helpers/withSnakeCaseProps.js.map +1 -1
  342. package/cjs/shared/locales/en-GB.js.map +1 -1
  343. package/cjs/shared/locales/en-US.d.ts +1 -1
  344. package/cjs/shared/locales/en-US.js +2 -2
  345. package/cjs/shared/locales/en-US.js.map +1 -1
  346. package/cjs/style/core/scopes.scss +1 -1
  347. package/cjs/style/core/utilities.scss +10 -5
  348. package/cjs/style/dnb-ui-basis.css +1 -1
  349. package/cjs/style/dnb-ui-basis.min.css +1 -1
  350. package/cjs/style/dnb-ui-body.css +1 -1
  351. package/cjs/style/dnb-ui-body.min.css +1 -1
  352. package/cjs/style/dnb-ui-components.css +35 -45
  353. package/cjs/style/dnb-ui-components.min.css +5 -5
  354. package/cjs/style/dnb-ui-core.css +1 -1
  355. package/cjs/style/dnb-ui-core.min.css +1 -1
  356. package/cjs/style/dnb-ui-elements.css +1 -1
  357. package/cjs/style/dnb-ui-elements.min.css +1 -1
  358. package/cjs/style/dnb-ui-extensions.css +10 -21
  359. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  360. package/cjs/style/dnb-ui-forms.css +10 -21
  361. package/cjs/style/dnb-ui-forms.min.css +1 -1
  362. package/cjs/style/dnb-ui-forms.scss +0 -1
  363. package/cjs/style/dnb-ui-fragments.css +2 -2
  364. package/cjs/style/dnb-ui-fragments.min.css +1 -1
  365. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -1
  366. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  367. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +46 -67
  368. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -6
  369. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
  370. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  371. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +10 -21
  372. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  373. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +10 -21
  374. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  375. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -1
  376. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  377. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +46 -67
  378. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
  379. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
  380. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  381. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +10 -21
  382. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  383. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +10 -21
  384. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  385. package/cjs/style/themes/theme-ui/ui-theme-basis.css +1 -1
  386. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  387. package/cjs/style/themes/theme-ui/ui-theme-components.css +46 -67
  388. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  389. package/cjs/style/themes/theme-ui/ui-theme-elements.css +1 -1
  390. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  391. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +10 -21
  392. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  393. package/cjs/style/themes/theme-ui/ui-theme-forms.css +10 -21
  394. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  395. package/cjs/style/themes/theme-ui/ui-theme-tags.css +1 -1
  396. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  397. package/components/accordion/style/dnb-accordion.css +3 -3
  398. package/components/accordion/style/dnb-accordion.min.css +1 -1
  399. package/components/autocomplete/style/dnb-autocomplete.css +1 -1
  400. package/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  401. package/components/breadcrumb/BreadcrumbItem.d.ts +1 -1
  402. package/components/breadcrumb/BreadcrumbItem.js +3 -3
  403. package/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  404. package/components/breadcrumb/BreadcrumbMultiple.js +2 -2
  405. package/components/breadcrumb/BreadcrumbMultiple.js.map +1 -1
  406. package/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
  407. package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  408. package/components/button/Button.d.ts +2 -2
  409. package/components/card/style/dnb-card.css +1 -1
  410. package/components/card/style/dnb-card.min.css +1 -1
  411. package/components/checkbox/CheckboxDocs.js +1 -1
  412. package/components/checkbox/CheckboxDocs.js.map +1 -1
  413. package/components/date-picker/DatePicker.d.ts +13 -4
  414. package/components/drawer/style/dnb-drawer.css +3 -3
  415. package/components/drawer/style/dnb-drawer.min.css +1 -1
  416. package/components/dropdown/style/dnb-dropdown.css +1 -1
  417. package/components/dropdown/style/dnb-dropdown.min.css +1 -1
  418. package/components/form-row/style/dnb-form-row.css +1 -1
  419. package/components/form-row/style/dnb-form-row.min.css +1 -1
  420. package/components/form-status/FormStatus.d.ts +1 -1
  421. package/components/grid/style/dnb-grid.css +6 -6
  422. package/components/grid/style/dnb-grid.min.css +1 -1
  423. package/components/input-masked/InputMasked.d.ts +1 -1
  424. package/components/input-masked/InputMaskedDocs.js +1 -1
  425. package/components/input-masked/InputMaskedDocs.js.map +1 -1
  426. package/components/number-format/NumberFormat.d.ts +14 -28
  427. package/components/number-format/NumberFormat.js +6 -2
  428. package/components/number-format/NumberFormat.js.map +1 -1
  429. package/components/number-format/NumberFormatDocs.d.ts +3 -0
  430. package/components/number-format/NumberFormatDocs.js +153 -0
  431. package/components/number-format/NumberFormatDocs.js.map +1 -0
  432. package/components/number-format/NumberUtils.d.ts +21 -1
  433. package/components/number-format/NumberUtils.js +32 -8
  434. package/components/number-format/NumberUtils.js.map +1 -1
  435. package/components/pagination/Pagination.d.ts +1 -1
  436. package/components/section/style/dnb-section.css +2 -2
  437. package/components/section/style/dnb-section.min.css +2 -2
  438. package/components/space/style/dnb-space.css +2 -2
  439. package/components/space/style/dnb-space.min.css +1 -1
  440. package/components/switch/Switch.d.ts +100 -91
  441. package/components/switch/Switch.js +165 -238
  442. package/components/switch/Switch.js.map +1 -1
  443. package/components/switch/SwitchDocs.d.ts +3 -0
  444. package/components/switch/SwitchDocs.js +85 -0
  445. package/components/switch/SwitchDocs.js.map +1 -0
  446. package/components/tabs/style/dnb-tabs.css +1 -0
  447. package/components/tabs/style/dnb-tabs.min.css +1 -1
  448. package/components/tabs/style/dnb-tabs.scss +1 -0
  449. package/components/toggle-button/style/dnb-toggle-button.css +1 -1
  450. package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  451. package/elements/ElementDocs.d.ts +2 -0
  452. package/elements/ElementDocs.js +28 -0
  453. package/elements/ElementDocs.js.map +1 -0
  454. package/elements/blockquote/BlockquoteDocs.d.ts +2 -0
  455. package/elements/blockquote/BlockquoteDocs.js +18 -0
  456. package/elements/blockquote/BlockquoteDocs.js.map +1 -0
  457. package/elements/hr/HrDocs.d.ts +2 -0
  458. package/elements/hr/HrDocs.js +18 -0
  459. package/elements/hr/HrDocs.js.map +1 -0
  460. package/elements/img/ImgDocs.d.ts +2 -0
  461. package/elements/img/ImgDocs.js +33 -0
  462. package/elements/img/ImgDocs.js.map +1 -0
  463. package/elements/lists/DlDocs.d.ts +2 -0
  464. package/elements/lists/DlDocs.js +12 -0
  465. package/elements/lists/DlDocs.js.map +1 -0
  466. package/elements/lists/OlDocs.d.ts +2 -0
  467. package/elements/lists/OlDocs.js +22 -0
  468. package/elements/lists/OlDocs.js.map +1 -0
  469. package/elements/lists/UlDocs.d.ts +2 -0
  470. package/elements/lists/UlDocs.js +22 -0
  471. package/elements/lists/UlDocs.js.map +1 -0
  472. package/elements/typography/IngressDocs.d.ts +2 -0
  473. package/elements/typography/IngressDocs.js +6 -0
  474. package/elements/typography/IngressDocs.js.map +1 -0
  475. package/elements/typography/LeadDocs.d.ts +2 -0
  476. package/elements/typography/LeadDocs.js +6 -0
  477. package/elements/typography/LeadDocs.js.map +1 -0
  478. package/elements/typography/PDocs.d.ts +2 -0
  479. package/elements/typography/PDocs.js +33 -0
  480. package/elements/typography/PDocs.js.map +1 -0
  481. package/es/components/accordion/style/dnb-accordion.css +3 -3
  482. package/es/components/accordion/style/dnb-accordion.min.css +1 -1
  483. package/es/components/autocomplete/style/dnb-autocomplete.css +1 -1
  484. package/es/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  485. package/es/components/breadcrumb/BreadcrumbItem.d.ts +1 -1
  486. package/es/components/breadcrumb/BreadcrumbItem.js +3 -3
  487. package/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  488. package/es/components/breadcrumb/BreadcrumbMultiple.js +2 -2
  489. package/es/components/breadcrumb/BreadcrumbMultiple.js.map +1 -1
  490. package/es/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
  491. package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  492. package/es/components/button/Button.d.ts +2 -2
  493. package/es/components/card/style/dnb-card.css +1 -1
  494. package/es/components/card/style/dnb-card.min.css +1 -1
  495. package/es/components/checkbox/CheckboxDocs.js +1 -1
  496. package/es/components/checkbox/CheckboxDocs.js.map +1 -1
  497. package/es/components/date-picker/DatePicker.d.ts +13 -4
  498. package/es/components/drawer/style/dnb-drawer.css +3 -3
  499. package/es/components/drawer/style/dnb-drawer.min.css +1 -1
  500. package/es/components/dropdown/style/dnb-dropdown.css +1 -1
  501. package/es/components/dropdown/style/dnb-dropdown.min.css +1 -1
  502. package/es/components/form-row/style/dnb-form-row.css +1 -1
  503. package/es/components/form-row/style/dnb-form-row.min.css +1 -1
  504. package/es/components/form-status/FormStatus.d.ts +1 -1
  505. package/es/components/grid/style/dnb-grid.css +6 -6
  506. package/es/components/grid/style/dnb-grid.min.css +1 -1
  507. package/es/components/input-masked/InputMasked.d.ts +1 -1
  508. package/es/components/input-masked/InputMaskedDocs.js +1 -1
  509. package/es/components/input-masked/InputMaskedDocs.js.map +1 -1
  510. package/es/components/number-format/NumberFormat.d.ts +14 -28
  511. package/es/components/number-format/NumberFormat.js +6 -2
  512. package/es/components/number-format/NumberFormat.js.map +1 -1
  513. package/es/components/number-format/NumberFormatDocs.d.ts +3 -0
  514. package/es/components/number-format/NumberFormatDocs.js +150 -0
  515. package/es/components/number-format/NumberFormatDocs.js.map +1 -0
  516. package/es/components/number-format/NumberUtils.d.ts +21 -1
  517. package/es/components/number-format/NumberUtils.js +31 -7
  518. package/es/components/number-format/NumberUtils.js.map +1 -1
  519. package/es/components/pagination/Pagination.d.ts +1 -1
  520. package/es/components/section/style/dnb-section.css +2 -2
  521. package/es/components/section/style/dnb-section.min.css +2 -2
  522. package/es/components/space/style/dnb-space.css +2 -2
  523. package/es/components/space/style/dnb-space.min.css +1 -1
  524. package/es/components/switch/Switch.d.ts +100 -91
  525. package/es/components/switch/Switch.js +164 -238
  526. package/es/components/switch/Switch.js.map +1 -1
  527. package/es/components/switch/SwitchDocs.d.ts +3 -0
  528. package/es/components/switch/SwitchDocs.js +85 -0
  529. package/es/components/switch/SwitchDocs.js.map +1 -0
  530. package/es/components/tabs/style/dnb-tabs.css +1 -0
  531. package/es/components/tabs/style/dnb-tabs.min.css +1 -1
  532. package/es/components/tabs/style/dnb-tabs.scss +1 -0
  533. package/es/components/toggle-button/style/dnb-toggle-button.css +1 -1
  534. package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  535. package/es/elements/ElementDocs.d.ts +2 -0
  536. package/es/elements/ElementDocs.js +28 -0
  537. package/es/elements/ElementDocs.js.map +1 -0
  538. package/es/elements/blockquote/BlockquoteDocs.d.ts +2 -0
  539. package/es/elements/blockquote/BlockquoteDocs.js +18 -0
  540. package/es/elements/blockquote/BlockquoteDocs.js.map +1 -0
  541. package/es/elements/hr/HrDocs.d.ts +2 -0
  542. package/es/elements/hr/HrDocs.js +18 -0
  543. package/es/elements/hr/HrDocs.js.map +1 -0
  544. package/es/elements/img/ImgDocs.d.ts +2 -0
  545. package/es/elements/img/ImgDocs.js +33 -0
  546. package/es/elements/img/ImgDocs.js.map +1 -0
  547. package/es/elements/lists/DlDocs.d.ts +2 -0
  548. package/es/elements/lists/DlDocs.js +12 -0
  549. package/es/elements/lists/DlDocs.js.map +1 -0
  550. package/es/elements/lists/OlDocs.d.ts +2 -0
  551. package/es/elements/lists/OlDocs.js +22 -0
  552. package/es/elements/lists/OlDocs.js.map +1 -0
  553. package/es/elements/lists/UlDocs.d.ts +2 -0
  554. package/es/elements/lists/UlDocs.js +22 -0
  555. package/es/elements/lists/UlDocs.js.map +1 -0
  556. package/es/elements/typography/IngressDocs.d.ts +2 -0
  557. package/es/elements/typography/IngressDocs.js +6 -0
  558. package/es/elements/typography/IngressDocs.js.map +1 -0
  559. package/es/elements/typography/LeadDocs.d.ts +2 -0
  560. package/es/elements/typography/LeadDocs.js +6 -0
  561. package/es/elements/typography/LeadDocs.js.map +1 -0
  562. package/es/elements/typography/PDocs.d.ts +2 -0
  563. package/es/elements/typography/PDocs.js +33 -0
  564. package/es/elements/typography/PDocs.js.map +1 -0
  565. package/es/extensions/forms/DataContext/At/At.js +1 -1
  566. package/es/extensions/forms/DataContext/At/At.js.map +1 -1
  567. package/es/extensions/forms/DataContext/Context.d.ts +37 -15
  568. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  569. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +1 -1
  570. package/es/extensions/forms/DataContext/Provider/Provider.js +153 -76
  571. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  572. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  573. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  574. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +1 -1
  575. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  576. package/es/extensions/forms/Field/Date/Date.d.ts +6 -0
  577. package/es/extensions/forms/Field/Date/Date.js +20 -4
  578. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  579. package/{cjs/extensions/forms/Form/FieldProps/FieldPropsDocs.d.ts → es/extensions/forms/Field/Date/DateDocs.d.ts} +1 -1
  580. package/es/extensions/forms/Field/Date/DateDocs.js +13 -0
  581. package/es/extensions/forms/Field/Date/DateDocs.js.map +1 -0
  582. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js +1 -1
  583. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
  584. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +35 -6
  585. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  586. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -4
  587. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +7 -4
  588. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  589. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +1 -0
  590. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +63 -1
  591. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  592. package/{extensions/forms/Form/FieldProps/FieldProps.d.ts → es/extensions/forms/Field/Provider/FieldProvider.d.ts} +5 -7
  593. package/es/extensions/forms/Field/Provider/FieldProvider.js +24 -0
  594. package/es/extensions/forms/Field/Provider/FieldProvider.js.map +1 -0
  595. package/{extensions/forms/Form/FieldProps/FieldPropsContext.d.ts → es/extensions/forms/Field/Provider/FieldProviderContext.d.ts} +3 -3
  596. package/es/extensions/forms/Field/Provider/FieldProviderContext.js +7 -0
  597. package/es/extensions/forms/Field/Provider/FieldProviderContext.js.map +1 -0
  598. package/es/extensions/forms/Field/Provider/FieldProviderDocs.d.ts +2 -0
  599. package/{extensions/forms/Form/FieldProps/FieldPropsDocs.js → es/extensions/forms/Field/Provider/FieldProviderDocs.js} +2 -2
  600. package/es/extensions/forms/Field/Provider/FieldProviderDocs.js.map +1 -0
  601. package/es/extensions/forms/Field/Provider/index.d.ts +2 -0
  602. package/es/extensions/forms/Field/Provider/index.js +3 -0
  603. package/es/extensions/forms/Field/Provider/index.js.map +1 -0
  604. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +121 -0
  605. package/es/extensions/forms/{Form/FieldProps/FieldProps.js → Field/Provider/useFieldProvider.js} +34 -32
  606. package/es/extensions/forms/Field/Provider/useFieldProvider.js.map +1 -0
  607. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +10 -5
  608. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +50 -21
  609. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  610. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +5 -0
  611. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  612. package/es/extensions/forms/Field/index.d.ts +1 -0
  613. package/es/extensions/forms/Field/index.js +1 -0
  614. package/es/extensions/forms/Field/index.js.map +1 -1
  615. package/es/extensions/forms/FieldBlock/FieldBlock.js +13 -2
  616. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  617. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
  618. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  619. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +1 -1
  620. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  621. package/es/extensions/forms/Form/Element/Element.js +4 -4
  622. package/es/extensions/forms/Form/Element/Element.js.map +1 -1
  623. package/es/extensions/forms/Form/Handler/Handler.d.ts +2 -2
  624. package/es/extensions/forms/Form/Handler/Handler.js +3 -1
  625. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  626. package/es/extensions/forms/Form/Isolation/Isolation.d.ts +2 -2
  627. package/es/extensions/forms/Form/Isolation/Isolation.js +11 -3
  628. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  629. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +1 -1
  630. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  631. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +0 -2
  632. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  633. package/es/extensions/forms/Form/Section/Section.d.ts +2 -1
  634. package/es/extensions/forms/Form/Section/Section.js +1 -1
  635. package/es/extensions/forms/Form/Section/Section.js.map +1 -1
  636. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.d.ts +25 -0
  637. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +140 -0
  638. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -0
  639. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.d.ts +2 -0
  640. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.js +23 -0
  641. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.js.map +1 -0
  642. package/es/extensions/forms/Form/SubmitConfirmation/index.d.ts +2 -0
  643. package/es/extensions/forms/Form/SubmitConfirmation/index.js +3 -0
  644. package/es/extensions/forms/Form/SubmitConfirmation/index.js.map +1 -0
  645. package/es/extensions/forms/Form/Visibility/Visibility.js +10 -4
  646. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  647. package/es/extensions/forms/Form/Visibility/VisibilityContext.d.ts +7 -0
  648. package/es/extensions/forms/Form/Visibility/VisibilityContext.js +6 -0
  649. package/es/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -0
  650. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  651. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  652. package/es/extensions/forms/Form/Visibility/useVisibility.js +4 -4
  653. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  654. package/es/extensions/forms/Form/data-context/getData.d.ts +2 -1
  655. package/es/extensions/forms/Form/data-context/getData.js +7 -2
  656. package/es/extensions/forms/Form/data-context/getData.js.map +1 -1
  657. package/es/extensions/forms/Form/data-context/useData.d.ts +7 -3
  658. package/es/extensions/forms/Form/data-context/useData.js +39 -19
  659. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  660. package/{extensions/forms/Form/data-context/useError.d.ts → es/extensions/forms/Form/data-context/useValidation.d.ts} +3 -1
  661. package/es/extensions/forms/Form/data-context/useValidation.js +52 -0
  662. package/es/extensions/forms/Form/data-context/useValidation.js.map +1 -0
  663. package/es/extensions/forms/Form/index.d.ts +13 -2
  664. package/es/extensions/forms/Form/index.js +5 -2
  665. package/es/extensions/forms/Form/index.js.map +1 -1
  666. package/es/extensions/forms/Iterate/Array/Array.js +33 -24
  667. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  668. package/es/extensions/forms/Iterate/Array/ArrayDocs.js +5 -0
  669. package/es/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  670. package/es/extensions/forms/Iterate/Array/types.d.ts +1 -0
  671. package/es/extensions/forms/Iterate/Array/types.js.map +1 -1
  672. package/es/extensions/forms/Iterate/Count/Count.js +1 -1
  673. package/es/extensions/forms/Iterate/Count/Count.js.map +1 -1
  674. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js +15 -5
  675. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  676. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +2 -2
  677. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  678. package/es/extensions/forms/Iterate/PushButton/PushButton.js +12 -2
  679. package/es/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  680. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +31 -11
  681. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  682. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +2 -2
  683. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  684. package/es/extensions/forms/Iterate/hooks/index.d.ts +1 -0
  685. package/es/extensions/forms/Iterate/hooks/index.js +1 -0
  686. package/es/extensions/forms/Iterate/hooks/index.js.map +1 -1
  687. package/es/extensions/forms/Iterate/hooks/useArrayLimit.d.ts +15 -0
  688. package/es/extensions/forms/Iterate/hooks/useArrayLimit.js +43 -0
  689. package/es/extensions/forms/Iterate/hooks/useArrayLimit.js.map +1 -0
  690. package/es/extensions/forms/Tools/GenerateSchema.d.ts +1 -1
  691. package/es/extensions/forms/Tools/GenerateSchema.js +1 -1
  692. package/es/extensions/forms/Tools/GenerateSchema.js.map +1 -1
  693. package/es/extensions/forms/Tools/ListAllProps.d.ts +1 -1
  694. package/es/extensions/forms/Tools/ListAllProps.js +1 -1
  695. package/es/extensions/forms/Tools/ListAllProps.js.map +1 -1
  696. package/es/extensions/forms/Tools/Log.js +1 -1
  697. package/es/extensions/forms/Tools/Log.js.map +1 -1
  698. package/es/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +12 -0
  699. package/es/extensions/forms/Value/ArraySelection/ArraySelection.js +26 -9
  700. package/es/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
  701. package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +10 -0
  702. package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -1
  703. package/es/extensions/forms/Value/Currency/CurrencyDocs.d.ts +2 -0
  704. package/es/extensions/forms/Value/Currency/CurrencyDocs.js +19 -0
  705. package/es/extensions/forms/Value/Currency/CurrencyDocs.js.map +1 -0
  706. package/es/extensions/forms/Value/Date/Date.js +25 -16
  707. package/es/extensions/forms/Value/Date/Date.js.map +1 -1
  708. package/es/extensions/forms/Value/Number/Number.js +3 -2
  709. package/es/extensions/forms/Value/Number/Number.js.map +1 -1
  710. package/es/extensions/forms/Value/Number/NumberDocs.js +7 -2
  711. package/es/extensions/forms/Value/Number/NumberDocs.js.map +1 -1
  712. package/es/extensions/forms/Value/Provider/ValueProvider.d.ts +13 -0
  713. package/es/extensions/forms/Value/Provider/ValueProvider.js +18 -0
  714. package/es/extensions/forms/Value/Provider/ValueProvider.js.map +1 -0
  715. package/es/extensions/forms/Value/Provider/ValueProviderContext.d.ts +9 -0
  716. package/es/extensions/forms/Value/Provider/ValueProviderContext.js +7 -0
  717. package/es/extensions/forms/Value/Provider/ValueProviderContext.js.map +1 -0
  718. package/es/extensions/forms/Value/Provider/ValueProviderDocs.d.ts +3 -0
  719. package/es/extensions/forms/Value/Provider/ValueProviderDocs.js +13 -0
  720. package/es/extensions/forms/Value/Provider/ValueProviderDocs.js.map +1 -0
  721. package/es/extensions/forms/Value/Provider/index.d.ts +2 -0
  722. package/es/extensions/forms/Value/Provider/index.js +3 -0
  723. package/es/extensions/forms/Value/Provider/index.js.map +1 -0
  724. package/es/extensions/forms/Value/Provider/useValueProvider.d.ts +31 -0
  725. package/es/extensions/forms/Value/Provider/useValueProvider.js +40 -0
  726. package/es/extensions/forms/Value/Provider/useValueProvider.js.map +1 -0
  727. package/es/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +1 -0
  728. package/es/extensions/forms/Value/SelectCountry/SelectCountry.js +7 -22
  729. package/es/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -1
  730. package/es/extensions/forms/Value/SelectCountry/useCountry.d.ts +4 -0
  731. package/es/extensions/forms/Value/SelectCountry/useCountry.js +27 -0
  732. package/es/extensions/forms/Value/SelectCountry/useCountry.js.map +1 -0
  733. package/es/extensions/forms/Value/Selection/Selection.js +2 -1
  734. package/es/extensions/forms/Value/Selection/Selection.js.map +1 -1
  735. package/es/extensions/forms/Value/SummaryList/SummaryList.d.ts +4 -1
  736. package/es/extensions/forms/Value/SummaryList/SummaryList.js +11 -3
  737. package/es/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  738. package/es/extensions/forms/Value/SummaryList/SummaryListDocs.d.ts +3 -0
  739. package/es/extensions/forms/Value/SummaryList/SummaryListDocs.js +29 -0
  740. package/es/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -0
  741. package/es/extensions/forms/Value/ValueDocs.js +5 -0
  742. package/es/extensions/forms/Value/ValueDocs.js.map +1 -1
  743. package/es/extensions/forms/Value/index.d.ts +3 -2
  744. package/es/extensions/forms/Value/index.js +3 -2
  745. package/es/extensions/forms/Value/index.js.map +1 -1
  746. package/es/extensions/forms/ValueBlock/ValueBlock.js +8 -6
  747. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  748. package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +2 -2
  749. package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  750. package/es/extensions/forms/Wizard/Container/WizardContainer.js +2 -1
  751. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  752. package/es/extensions/forms/Wizard/Step/Step.js +2 -2
  753. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  754. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +2 -5
  755. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  756. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -4
  757. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.d.ts +2 -1
  758. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +35 -19
  759. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  760. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js +5 -0
  761. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js.map +1 -1
  762. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.d.ts +0 -2
  763. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +70 -70
  764. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
  765. package/es/extensions/forms/constants/countries.d.ts +1 -0
  766. package/es/extensions/forms/constants/countries.js.map +1 -1
  767. package/es/extensions/forms/constants/locales/en-GB.d.ts +5 -4
  768. package/es/extensions/forms/constants/locales/en-GB.js +8 -7
  769. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  770. package/es/extensions/forms/constants/locales/en-US.d.ts +5 -4
  771. package/es/extensions/forms/constants/locales/index.d.ts +10 -8
  772. package/es/extensions/forms/constants/locales/nb-NO.d.ts +5 -4
  773. package/es/extensions/forms/constants/locales/nb-NO.js +8 -7
  774. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  775. package/es/extensions/forms/hooks/DataValueDocs.js +1 -1
  776. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  777. package/es/extensions/forms/hooks/useDataValue.d.ts +1 -1
  778. package/es/extensions/forms/hooks/useDataValue.js +1 -1
  779. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  780. package/es/extensions/forms/hooks/useExternalValue.js +1 -1
  781. package/es/extensions/forms/hooks/useExternalValue.js.map +1 -1
  782. package/es/extensions/forms/hooks/useFieldProps.d.ts +2 -1
  783. package/es/extensions/forms/hooks/useFieldProps.js +227 -83
  784. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  785. package/es/extensions/forms/hooks/usePath.js +7 -4
  786. package/es/extensions/forms/hooks/usePath.js.map +1 -1
  787. package/es/extensions/forms/hooks/useValueProps.d.ts +1 -1
  788. package/es/extensions/forms/hooks/useValueProps.js +38 -10
  789. package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
  790. package/es/extensions/forms/style/dnb-forms.css +10 -21
  791. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  792. package/es/extensions/forms/types.d.ts +19 -8
  793. package/es/extensions/forms/types.js.map +1 -1
  794. package/es/extensions/forms/utils/ajv.d.ts +2 -1
  795. package/es/extensions/forms/utils/ajv.js +1 -1
  796. package/es/extensions/forms/utils/ajv.js.map +1 -1
  797. package/es/extensions/forms/utils/index.d.ts +1 -0
  798. package/es/extensions/forms/utils/index.js +1 -0
  799. package/es/extensions/forms/utils/index.js.map +1 -1
  800. package/es/extensions/forms/utils/json-pointer/export.d.ts +1 -0
  801. package/es/extensions/forms/utils/json-pointer/export.js +1 -0
  802. package/es/extensions/forms/utils/json-pointer/export.js.map +1 -0
  803. package/es/extensions/forms/utils/json-pointer/json-pointer.d.ts +43 -0
  804. package/es/extensions/forms/utils/json-pointer/json-pointer.js +122 -0
  805. package/es/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -0
  806. package/es/extensions/forms/utils/json-pointer.d.ts +3 -0
  807. package/es/extensions/forms/utils/json-pointer.js +4 -0
  808. package/es/extensions/forms/utils/json-pointer.js.map +1 -0
  809. package/es/shared/Context.d.ts +2 -0
  810. package/es/shared/Context.js +1 -1
  811. package/es/shared/Context.js.map +1 -1
  812. package/es/shared/Eufemia.d.ts +1 -1
  813. package/es/shared/Eufemia.js +2 -2
  814. package/es/shared/Eufemia.js.map +1 -1
  815. package/es/shared/MediaQueryUtils.d.ts +0 -1
  816. package/es/shared/MediaQueryUtils.js +17 -14
  817. package/es/shared/MediaQueryUtils.js.map +1 -1
  818. package/es/shared/helpers/extendPropsWithContext.js +3 -3
  819. package/es/shared/helpers/extendPropsWithContext.js.map +1 -1
  820. package/es/shared/helpers/withSnakeCaseProps.js.map +1 -1
  821. package/es/shared/locales/en-GB.js.map +1 -1
  822. package/es/shared/locales/en-US.d.ts +1 -1
  823. package/es/shared/locales/en-US.js +2 -2
  824. package/es/shared/locales/en-US.js.map +1 -1
  825. package/es/style/core/scopes.scss +1 -1
  826. package/es/style/core/utilities.scss +10 -5
  827. package/es/style/dnb-ui-basis.css +1 -1
  828. package/es/style/dnb-ui-basis.min.css +1 -1
  829. package/es/style/dnb-ui-body.css +1 -1
  830. package/es/style/dnb-ui-body.min.css +1 -1
  831. package/es/style/dnb-ui-components.css +35 -45
  832. package/es/style/dnb-ui-components.min.css +5 -5
  833. package/es/style/dnb-ui-core.css +1 -1
  834. package/es/style/dnb-ui-core.min.css +1 -1
  835. package/es/style/dnb-ui-elements.css +1 -1
  836. package/es/style/dnb-ui-elements.min.css +1 -1
  837. package/es/style/dnb-ui-extensions.css +10 -21
  838. package/es/style/dnb-ui-extensions.min.css +1 -1
  839. package/es/style/dnb-ui-forms.css +10 -21
  840. package/es/style/dnb-ui-forms.min.css +1 -1
  841. package/es/style/dnb-ui-forms.scss +0 -1
  842. package/es/style/dnb-ui-fragments.css +2 -2
  843. package/es/style/dnb-ui-fragments.min.css +1 -1
  844. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -1
  845. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  846. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +46 -67
  847. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -6
  848. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
  849. package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  850. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +10 -21
  851. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  852. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +10 -21
  853. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  854. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -1
  855. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  856. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +46 -67
  857. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
  858. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
  859. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  860. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +10 -21
  861. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  862. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +10 -21
  863. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  864. package/es/style/themes/theme-ui/ui-theme-basis.css +1 -1
  865. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  866. package/es/style/themes/theme-ui/ui-theme-components.css +46 -67
  867. package/es/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  868. package/es/style/themes/theme-ui/ui-theme-elements.css +1 -1
  869. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  870. package/es/style/themes/theme-ui/ui-theme-extensions.css +10 -21
  871. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  872. package/es/style/themes/theme-ui/ui-theme-forms.css +10 -21
  873. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  874. package/es/style/themes/theme-ui/ui-theme-tags.css +1 -1
  875. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  876. package/esm/dnb-ui-basis.min.mjs +1 -1
  877. package/esm/dnb-ui-components.min.mjs +1 -1
  878. package/esm/dnb-ui-elements.min.mjs +1 -1
  879. package/esm/dnb-ui-extensions.min.mjs +5 -5
  880. package/esm/dnb-ui-lib.min.mjs +1 -1
  881. package/extensions/forms/DataContext/At/At.js +1 -1
  882. package/extensions/forms/DataContext/At/At.js.map +1 -1
  883. package/extensions/forms/DataContext/Context.d.ts +37 -15
  884. package/extensions/forms/DataContext/Context.js.map +1 -1
  885. package/extensions/forms/DataContext/Provider/Provider.d.ts +1 -1
  886. package/extensions/forms/DataContext/Provider/Provider.js +159 -77
  887. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  888. package/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  889. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  890. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +1 -1
  891. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  892. package/extensions/forms/Field/Date/Date.d.ts +6 -0
  893. package/extensions/forms/Field/Date/Date.js +20 -4
  894. package/extensions/forms/Field/Date/Date.js.map +1 -1
  895. package/{es/extensions/forms/Form/FieldProps/FieldPropsDocs.d.ts → extensions/forms/Field/Date/DateDocs.d.ts} +1 -1
  896. package/extensions/forms/Field/Date/DateDocs.js +13 -0
  897. package/extensions/forms/Field/Date/DateDocs.js.map +1 -0
  898. package/extensions/forms/Field/Indeterminate/useDependencePaths.js +1 -1
  899. package/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
  900. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +35 -6
  901. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  902. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -4
  903. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +7 -4
  904. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  905. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +1 -0
  906. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +63 -1
  907. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  908. package/{cjs/extensions/forms/Form/FieldProps/FieldProps.d.ts → extensions/forms/Field/Provider/FieldProvider.d.ts} +5 -7
  909. package/extensions/forms/Field/Provider/FieldProvider.js +24 -0
  910. package/extensions/forms/Field/Provider/FieldProvider.js.map +1 -0
  911. package/{es/extensions/forms/Form/FieldProps/FieldPropsContext.d.ts → extensions/forms/Field/Provider/FieldProviderContext.d.ts} +3 -3
  912. package/extensions/forms/Field/Provider/FieldProviderContext.js +7 -0
  913. package/extensions/forms/Field/Provider/FieldProviderContext.js.map +1 -0
  914. package/extensions/forms/Field/Provider/FieldProviderDocs.d.ts +2 -0
  915. package/{es/extensions/forms/Form/FieldProps/FieldPropsDocs.js → extensions/forms/Field/Provider/FieldProviderDocs.js} +2 -2
  916. package/extensions/forms/Field/Provider/FieldProviderDocs.js.map +1 -0
  917. package/extensions/forms/Field/Provider/index.d.ts +2 -0
  918. package/extensions/forms/Field/Provider/index.js +3 -0
  919. package/extensions/forms/Field/Provider/index.js.map +1 -0
  920. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +121 -0
  921. package/extensions/forms/{Form/FieldProps/FieldProps.js → Field/Provider/useFieldProvider.js} +34 -32
  922. package/extensions/forms/Field/Provider/useFieldProvider.js.map +1 -0
  923. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +10 -5
  924. package/extensions/forms/Field/SelectCountry/SelectCountry.js +59 -33
  925. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  926. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +5 -0
  927. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  928. package/extensions/forms/Field/index.d.ts +1 -0
  929. package/extensions/forms/Field/index.js +1 -0
  930. package/extensions/forms/Field/index.js.map +1 -1
  931. package/extensions/forms/FieldBlock/FieldBlock.js +13 -2
  932. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  933. package/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
  934. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  935. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +1 -1
  936. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  937. package/extensions/forms/Form/Element/Element.js +4 -4
  938. package/extensions/forms/Form/Element/Element.js.map +1 -1
  939. package/extensions/forms/Form/Handler/Handler.d.ts +2 -2
  940. package/extensions/forms/Form/Handler/Handler.js +3 -1
  941. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  942. package/extensions/forms/Form/Isolation/Isolation.d.ts +2 -2
  943. package/extensions/forms/Form/Isolation/Isolation.js +11 -3
  944. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  945. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +1 -1
  946. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  947. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +0 -2
  948. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  949. package/extensions/forms/Form/Section/Section.d.ts +2 -1
  950. package/extensions/forms/Form/Section/Section.js +1 -1
  951. package/extensions/forms/Form/Section/Section.js.map +1 -1
  952. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.d.ts +25 -0
  953. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +142 -0
  954. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -0
  955. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.d.ts +2 -0
  956. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.js +23 -0
  957. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.js.map +1 -0
  958. package/extensions/forms/Form/SubmitConfirmation/index.d.ts +2 -0
  959. package/extensions/forms/Form/SubmitConfirmation/index.js +3 -0
  960. package/extensions/forms/Form/SubmitConfirmation/index.js.map +1 -0
  961. package/extensions/forms/Form/Visibility/Visibility.js +10 -4
  962. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  963. package/extensions/forms/Form/Visibility/VisibilityContext.d.ts +7 -0
  964. package/extensions/forms/Form/Visibility/VisibilityContext.js +6 -0
  965. package/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -0
  966. package/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  967. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  968. package/extensions/forms/Form/Visibility/useVisibility.js +4 -4
  969. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  970. package/extensions/forms/Form/data-context/getData.d.ts +2 -1
  971. package/extensions/forms/Form/data-context/getData.js +7 -2
  972. package/extensions/forms/Form/data-context/getData.js.map +1 -1
  973. package/extensions/forms/Form/data-context/useData.d.ts +7 -3
  974. package/extensions/forms/Form/data-context/useData.js +40 -19
  975. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  976. package/{cjs/extensions/forms/Form/data-context/useError.d.ts → extensions/forms/Form/data-context/useValidation.d.ts} +3 -1
  977. package/extensions/forms/Form/data-context/useValidation.js +54 -0
  978. package/extensions/forms/Form/data-context/useValidation.js.map +1 -0
  979. package/extensions/forms/Form/index.d.ts +13 -2
  980. package/extensions/forms/Form/index.js +5 -2
  981. package/extensions/forms/Form/index.js.map +1 -1
  982. package/extensions/forms/Iterate/Array/Array.js +33 -24
  983. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  984. package/extensions/forms/Iterate/Array/ArrayDocs.js +5 -0
  985. package/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  986. package/extensions/forms/Iterate/Array/types.d.ts +1 -0
  987. package/extensions/forms/Iterate/Array/types.js.map +1 -1
  988. package/extensions/forms/Iterate/Count/Count.js +1 -1
  989. package/extensions/forms/Iterate/Count/Count.js.map +1 -1
  990. package/extensions/forms/Iterate/EditContainer/CancelButton.js +18 -7
  991. package/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  992. package/extensions/forms/Iterate/EditContainer/EditContainer.js +2 -2
  993. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  994. package/extensions/forms/Iterate/PushButton/PushButton.js +12 -2
  995. package/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  996. package/extensions/forms/Iterate/PushContainer/PushContainer.js +31 -11
  997. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  998. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +2 -2
  999. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  1000. package/extensions/forms/Iterate/hooks/index.d.ts +1 -0
  1001. package/extensions/forms/Iterate/hooks/index.js +1 -0
  1002. package/extensions/forms/Iterate/hooks/index.js.map +1 -1
  1003. package/extensions/forms/Iterate/hooks/useArrayLimit.d.ts +15 -0
  1004. package/extensions/forms/Iterate/hooks/useArrayLimit.js +44 -0
  1005. package/extensions/forms/Iterate/hooks/useArrayLimit.js.map +1 -0
  1006. package/extensions/forms/Tools/GenerateSchema.d.ts +1 -1
  1007. package/extensions/forms/Tools/GenerateSchema.js +1 -1
  1008. package/extensions/forms/Tools/GenerateSchema.js.map +1 -1
  1009. package/extensions/forms/Tools/ListAllProps.d.ts +1 -1
  1010. package/extensions/forms/Tools/ListAllProps.js +1 -1
  1011. package/extensions/forms/Tools/ListAllProps.js.map +1 -1
  1012. package/extensions/forms/Tools/Log.js +1 -1
  1013. package/extensions/forms/Tools/Log.js.map +1 -1
  1014. package/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +12 -0
  1015. package/extensions/forms/Value/ArraySelection/ArraySelection.js +27 -10
  1016. package/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
  1017. package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +10 -0
  1018. package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -1
  1019. package/extensions/forms/Value/Currency/CurrencyDocs.d.ts +2 -0
  1020. package/extensions/forms/Value/Currency/CurrencyDocs.js +19 -0
  1021. package/extensions/forms/Value/Currency/CurrencyDocs.js.map +1 -0
  1022. package/extensions/forms/Value/Date/Date.js +25 -16
  1023. package/extensions/forms/Value/Date/Date.js.map +1 -1
  1024. package/extensions/forms/Value/Number/Number.js +3 -2
  1025. package/extensions/forms/Value/Number/Number.js.map +1 -1
  1026. package/extensions/forms/Value/Number/NumberDocs.js +7 -2
  1027. package/extensions/forms/Value/Number/NumberDocs.js.map +1 -1
  1028. package/extensions/forms/Value/Provider/ValueProvider.d.ts +13 -0
  1029. package/extensions/forms/Value/Provider/ValueProvider.js +18 -0
  1030. package/extensions/forms/Value/Provider/ValueProvider.js.map +1 -0
  1031. package/extensions/forms/Value/Provider/ValueProviderContext.d.ts +9 -0
  1032. package/extensions/forms/Value/Provider/ValueProviderContext.js +7 -0
  1033. package/extensions/forms/Value/Provider/ValueProviderContext.js.map +1 -0
  1034. package/extensions/forms/Value/Provider/ValueProviderDocs.d.ts +3 -0
  1035. package/extensions/forms/Value/Provider/ValueProviderDocs.js +13 -0
  1036. package/extensions/forms/Value/Provider/ValueProviderDocs.js.map +1 -0
  1037. package/extensions/forms/Value/Provider/index.d.ts +2 -0
  1038. package/extensions/forms/Value/Provider/index.js +3 -0
  1039. package/extensions/forms/Value/Provider/index.js.map +1 -0
  1040. package/extensions/forms/Value/Provider/useValueProvider.d.ts +31 -0
  1041. package/extensions/forms/Value/Provider/useValueProvider.js +40 -0
  1042. package/extensions/forms/Value/Provider/useValueProvider.js.map +1 -0
  1043. package/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +1 -0
  1044. package/extensions/forms/Value/SelectCountry/SelectCountry.js +7 -22
  1045. package/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -1
  1046. package/extensions/forms/Value/SelectCountry/useCountry.d.ts +4 -0
  1047. package/extensions/forms/Value/SelectCountry/useCountry.js +27 -0
  1048. package/extensions/forms/Value/SelectCountry/useCountry.js.map +1 -0
  1049. package/extensions/forms/Value/Selection/Selection.js +2 -1
  1050. package/extensions/forms/Value/Selection/Selection.js.map +1 -1
  1051. package/extensions/forms/Value/SummaryList/SummaryList.d.ts +4 -1
  1052. package/extensions/forms/Value/SummaryList/SummaryList.js +11 -3
  1053. package/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  1054. package/extensions/forms/Value/SummaryList/SummaryListDocs.d.ts +3 -0
  1055. package/extensions/forms/Value/SummaryList/SummaryListDocs.js +29 -0
  1056. package/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -0
  1057. package/extensions/forms/Value/ValueDocs.js +5 -0
  1058. package/extensions/forms/Value/ValueDocs.js.map +1 -1
  1059. package/extensions/forms/Value/index.d.ts +3 -2
  1060. package/extensions/forms/Value/index.js +3 -2
  1061. package/extensions/forms/Value/index.js.map +1 -1
  1062. package/extensions/forms/ValueBlock/ValueBlock.js +8 -6
  1063. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  1064. package/extensions/forms/ValueBlock/style/dnb-value-block.css +2 -2
  1065. package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  1066. package/extensions/forms/Wizard/Container/WizardContainer.js +2 -1
  1067. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  1068. package/extensions/forms/Wizard/Step/Step.js +2 -2
  1069. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  1070. package/extensions/forms/Wizard/style/dnb-wizard-layout.css +2 -5
  1071. package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  1072. package/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -4
  1073. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.d.ts +2 -1
  1074. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +35 -19
  1075. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  1076. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js +5 -0
  1077. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js.map +1 -1
  1078. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.d.ts +0 -2
  1079. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +70 -70
  1080. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
  1081. package/extensions/forms/constants/countries.d.ts +1 -0
  1082. package/extensions/forms/constants/countries.js.map +1 -1
  1083. package/extensions/forms/constants/locales/en-GB.d.ts +5 -4
  1084. package/extensions/forms/constants/locales/en-GB.js +8 -7
  1085. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  1086. package/extensions/forms/constants/locales/en-US.d.ts +5 -4
  1087. package/extensions/forms/constants/locales/index.d.ts +10 -8
  1088. package/extensions/forms/constants/locales/nb-NO.d.ts +5 -4
  1089. package/extensions/forms/constants/locales/nb-NO.js +8 -7
  1090. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  1091. package/extensions/forms/hooks/DataValueDocs.js +1 -1
  1092. package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  1093. package/extensions/forms/hooks/useDataValue.d.ts +1 -1
  1094. package/extensions/forms/hooks/useDataValue.js +1 -1
  1095. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  1096. package/extensions/forms/hooks/useExternalValue.js +1 -1
  1097. package/extensions/forms/hooks/useExternalValue.js.map +1 -1
  1098. package/extensions/forms/hooks/useFieldProps.d.ts +2 -1
  1099. package/extensions/forms/hooks/useFieldProps.js +232 -87
  1100. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  1101. package/extensions/forms/hooks/usePath.js +7 -4
  1102. package/extensions/forms/hooks/usePath.js.map +1 -1
  1103. package/extensions/forms/hooks/useValueProps.d.ts +1 -1
  1104. package/extensions/forms/hooks/useValueProps.js +38 -10
  1105. package/extensions/forms/hooks/useValueProps.js.map +1 -1
  1106. package/extensions/forms/style/dnb-forms.css +10 -21
  1107. package/extensions/forms/style/dnb-forms.min.css +1 -1
  1108. package/extensions/forms/types.d.ts +19 -8
  1109. package/extensions/forms/types.js.map +1 -1
  1110. package/extensions/forms/utils/ajv.d.ts +2 -1
  1111. package/extensions/forms/utils/ajv.js +1 -1
  1112. package/extensions/forms/utils/ajv.js.map +1 -1
  1113. package/extensions/forms/utils/index.d.ts +1 -0
  1114. package/extensions/forms/utils/index.js +1 -0
  1115. package/extensions/forms/utils/index.js.map +1 -1
  1116. package/extensions/forms/utils/json-pointer/export.d.ts +1 -0
  1117. package/extensions/forms/utils/json-pointer/export.js +1 -0
  1118. package/extensions/forms/utils/json-pointer/export.js.map +1 -0
  1119. package/extensions/forms/utils/json-pointer/json-pointer.d.ts +43 -0
  1120. package/extensions/forms/utils/json-pointer/json-pointer.js +124 -0
  1121. package/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -0
  1122. package/extensions/forms/utils/json-pointer.d.ts +3 -0
  1123. package/extensions/forms/utils/json-pointer.js +4 -0
  1124. package/extensions/forms/utils/json-pointer.js.map +1 -0
  1125. package/package.json +1 -2
  1126. package/shared/Context.d.ts +2 -0
  1127. package/shared/Context.js +1 -1
  1128. package/shared/Context.js.map +1 -1
  1129. package/shared/Eufemia.d.ts +1 -1
  1130. package/shared/Eufemia.js +2 -2
  1131. package/shared/Eufemia.js.map +1 -1
  1132. package/shared/MediaQueryUtils.d.ts +0 -1
  1133. package/shared/MediaQueryUtils.js +17 -14
  1134. package/shared/MediaQueryUtils.js.map +1 -1
  1135. package/shared/helpers/extendPropsWithContext.js +3 -3
  1136. package/shared/helpers/extendPropsWithContext.js.map +1 -1
  1137. package/shared/helpers/withSnakeCaseProps.js.map +1 -1
  1138. package/shared/locales/en-GB.js.map +1 -1
  1139. package/shared/locales/en-US.d.ts +1 -1
  1140. package/shared/locales/en-US.js +2 -2
  1141. package/shared/locales/en-US.js.map +1 -1
  1142. package/style/core/scopes.scss +1 -1
  1143. package/style/core/utilities.scss +10 -5
  1144. package/style/dnb-ui-basis.css +1 -1
  1145. package/style/dnb-ui-basis.min.css +1 -1
  1146. package/style/dnb-ui-body.css +1 -1
  1147. package/style/dnb-ui-body.min.css +1 -1
  1148. package/style/dnb-ui-components.css +35 -45
  1149. package/style/dnb-ui-components.min.css +5 -5
  1150. package/style/dnb-ui-core.css +1 -1
  1151. package/style/dnb-ui-core.min.css +1 -1
  1152. package/style/dnb-ui-elements.css +1 -1
  1153. package/style/dnb-ui-elements.min.css +1 -1
  1154. package/style/dnb-ui-extensions.css +10 -21
  1155. package/style/dnb-ui-extensions.min.css +1 -1
  1156. package/style/dnb-ui-forms.css +10 -21
  1157. package/style/dnb-ui-forms.min.css +1 -1
  1158. package/style/dnb-ui-forms.scss +0 -1
  1159. package/style/dnb-ui-fragments.css +2 -2
  1160. package/style/dnb-ui-fragments.min.css +1 -1
  1161. package/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -1
  1162. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  1163. package/style/themes/theme-eiendom/eiendom-theme-components.css +46 -67
  1164. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -6
  1165. package/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
  1166. package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  1167. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +10 -21
  1168. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  1169. package/style/themes/theme-eiendom/eiendom-theme-forms.css +10 -21
  1170. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  1171. package/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -1
  1172. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  1173. package/style/themes/theme-sbanken/sbanken-theme-components.css +46 -67
  1174. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
  1175. package/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
  1176. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  1177. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +10 -21
  1178. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  1179. package/style/themes/theme-sbanken/sbanken-theme-forms.css +10 -21
  1180. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  1181. package/style/themes/theme-ui/ui-theme-basis.css +1 -1
  1182. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  1183. package/style/themes/theme-ui/ui-theme-components.css +46 -67
  1184. package/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  1185. package/style/themes/theme-ui/ui-theme-elements.css +1 -1
  1186. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  1187. package/style/themes/theme-ui/ui-theme-extensions.css +10 -21
  1188. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  1189. package/style/themes/theme-ui/ui-theme-forms.css +10 -21
  1190. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  1191. package/style/themes/theme-ui/ui-theme-tags.css +1 -1
  1192. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  1193. package/umd/dnb-ui-basis.min.js +1 -1
  1194. package/umd/dnb-ui-components.min.js +1 -1
  1195. package/umd/dnb-ui-elements.min.js +1 -1
  1196. package/umd/dnb-ui-extensions.min.js +5 -5
  1197. package/umd/dnb-ui-lib.min.js +1 -1
  1198. package/cjs/extensions/forms/Form/Element/style/dnb-form-element.css +0 -7
  1199. package/cjs/extensions/forms/Form/Element/style/dnb-form-element.min.css +0 -1
  1200. package/cjs/extensions/forms/Form/Element/style/dnb-form-element.scss +0 -9
  1201. package/cjs/extensions/forms/Form/FieldProps/FieldProps.js.map +0 -1
  1202. package/cjs/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +0 -1
  1203. package/cjs/extensions/forms/Form/FieldProps/FieldPropsDocs.js.map +0 -1
  1204. package/cjs/extensions/forms/Form/FieldProps/index.d.ts +0 -2
  1205. package/cjs/extensions/forms/Form/FieldProps/index.js.map +0 -1
  1206. package/cjs/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.d.ts +0 -1
  1207. package/cjs/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js +0 -25
  1208. package/cjs/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js.map +0 -1
  1209. package/cjs/extensions/forms/Form/data-context/useError.js +0 -33
  1210. package/cjs/extensions/forms/Form/data-context/useError.js.map +0 -1
  1211. package/es/extensions/forms/Form/Element/style/dnb-form-element.css +0 -7
  1212. package/es/extensions/forms/Form/Element/style/dnb-form-element.min.css +0 -1
  1213. package/es/extensions/forms/Form/Element/style/dnb-form-element.scss +0 -9
  1214. package/es/extensions/forms/Form/FieldProps/FieldProps.js.map +0 -1
  1215. package/es/extensions/forms/Form/FieldProps/FieldPropsContext.js +0 -7
  1216. package/es/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +0 -1
  1217. package/es/extensions/forms/Form/FieldProps/FieldPropsDocs.js.map +0 -1
  1218. package/es/extensions/forms/Form/FieldProps/index.d.ts +0 -2
  1219. package/es/extensions/forms/Form/FieldProps/index.js +0 -3
  1220. package/es/extensions/forms/Form/FieldProps/index.js.map +0 -1
  1221. package/es/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.d.ts +0 -1
  1222. package/es/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js +0 -19
  1223. package/es/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js.map +0 -1
  1224. package/es/extensions/forms/Form/data-context/useError.js +0 -26
  1225. package/es/extensions/forms/Form/data-context/useError.js.map +0 -1
  1226. package/extensions/forms/Form/Element/style/dnb-form-element.css +0 -7
  1227. package/extensions/forms/Form/Element/style/dnb-form-element.min.css +0 -1
  1228. package/extensions/forms/Form/Element/style/dnb-form-element.scss +0 -9
  1229. package/extensions/forms/Form/FieldProps/FieldProps.js.map +0 -1
  1230. package/extensions/forms/Form/FieldProps/FieldPropsContext.js +0 -7
  1231. package/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +0 -1
  1232. package/extensions/forms/Form/FieldProps/FieldPropsDocs.js.map +0 -1
  1233. package/extensions/forms/Form/FieldProps/index.d.ts +0 -2
  1234. package/extensions/forms/Form/FieldProps/index.js +0 -3
  1235. package/extensions/forms/Form/FieldProps/index.js.map +0 -1
  1236. package/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.d.ts +0 -1
  1237. package/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js +0 -19
  1238. package/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js.map +0 -1
  1239. package/extensions/forms/Form/data-context/useError.js +0 -27
  1240. package/extensions/forms/Form/data-context/useError.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useFieldProps.js","names":["useRef","useEffect","useContext","useCallback","useMemo","useReducer","pointer","errorChanged","ajvErrorsToOneFormError","FormError","Context","DataContext","clearedData","FieldPropsContext","combineDescribedBy","warn","useId","useUpdateEffect","FieldBlockContext","IterateElementContext","SectionContext","FieldBoundaryContext","useProcessManager","usePath","createSharedState","useSharedState","isAsync","useTranslation","useExternalValue","useDataValue","useFieldProps","localeProps","executeOnChangeRegardlessOfError","_dataContext$props","_useExternalValue","_dataContext$ajvInsta","_localErrorRef$curren","_ref","_dataContext$props3","_props$path","_props$autoComplete","extend","props","path","pathProp","value","valueProp","defaultValue","itemPath","emptyValue","required","requiredProp","disabled","disabledProp","info","warning","error","errorProp","errorMessages","onFocus","onBlur","onChange","onBlurValidator","validator","exportValidators","schema","validateInitially","validateUnchanged","continuousValidation","transformIn","transformOut","toInput","fromInput","toEvent","transformValue","transformAdditionalArgs","additionalArgs","fromExternal","validateRequired","res","undefined","salt","forceUpdate","isInternalRerenderRef","current","startProcess","id","dataContext","fieldBlockContext","iterateItemContext","sectionContext","fieldBoundaryContext","translation","transformers","handlePathChangeUnvalidated","handlePathChangeUnvalidatedDataContext","handlePathChange","handlePathChangeDataContext","updateDataValue","updateDataValueDataContext","validateData","validateDataDataContext","setFieldState","setFieldStateDataContext","setFieldError","setFieldErrorDataContext","setFieldProps","setPropsDataContext","setVisibleError","setVisibleErrorDataContext","setMountedFieldState","setMountedFieldStateDataContext","setFieldEventListener","errors","dataContextErrors","showAllErrors","contextErrorMessages","onChangeContext","readOnly","inFieldBlock","Boolean","setFieldStateFieldBlock","showFieldError","showFieldErrorFieldBlock","mountedFieldsRef","mountedFieldsRefFieldBlock","handleChange","handleChangeIterateContext","sectionPath","errorPrioritization","setFieldErrorBoundary","setVisibleErrorBoundary","showBoundaryErrors","hasPath","identifier","makeIteratePath","defaultValueRef","externalValue","valueRef","changedRef","hasFocusRef","paths","split","length","requiredList","schemaPath","slice","join","schemaPart","has","get","push","substring","collected","flatMap","v","filter","some","p","c","includes","revealErrorRef","errorMethodRef","localErrorRef","hasLocalErrorRef","dataContextError","contextErrorRef","onChangeValidatorRef","onBlurValidatorRef","schemaValidatorRef","ajvInstance","compile","errorMessagesRef","_objectSpread","Field","errorRequired","asyncBehaviorIsEnabled","validatedValue","changeEventResultRef","asyncProcessRef","defineAsyncProcess","name","asyncBufferRef","key","resolve","validateProcesses","window","requestAnimationFrame","eventPool","onChangeLocal","addToPool","fn","runAsync","runPool","cb","pending","fieldStateRef","state","resolveValidatingState","revealError","hideError","prepareError","message","validationRule","_errorMessagesRef$cur","fieldMessage","messageHasValues","Object","entries","messageValues","reduce","replace","hasVisibleError","hasErrorProp","hasError","_ref2","connectWithPathListenerRef","runOnChangeValidator","runOnBlurValidator","getValueByPath","exportValidatorsRef","args","validators","connectWithPath","getValue","extendWithExportedValidators","result","Array","isArray","values","callValidatorFnSync","Error","callValidatorFnAsync","stateId","persistErrorState","method","errorArg","keys","type","content","showInitially","clearErrorState","validatorCacheRef","onChangeValidator","revealOnChangeValidatorResult","unchangedValue","callOnChangeValidator","tmpValue","Promise","startOnChangeValidatorValidation","String","callOnBlurValidator","overrideValue","revealOnBlurValidatorResult","startOnBlurValidatorProcess","prioritizeContextSchema","hasContextSchema","indexOf","validateValue","isProcessActive","requiredError","isChanged","handleError","setHasFocus","hasFocus","getArgs","transformedAdditionalArgs","apply","yieldAsyncProcess","waitFor","processName","withStates","hasValue","hasMatchingValue","handleChangeEventResult","warningRef","infoRef","success","setEventResult","callOnChangeContext","updateValue","newValue","setChanged","argFromInput","currentValue","transformedValue","handleFocus","handleBlur","isMounted","_dataContext$ajvInsta2","isEmptyData","_dataContext$internal","_dataContext$props$em","_dataContext$props2","internalDataRef","emptyData","data","existingValue","sharedState","sharedValue","formState","onSubmitHandler","show","htmlAttributes","acc","cur","startsWith","_fieldBlockContext$fi","stateIds","fieldStateIdsRef","ids","fieldBlockProps","labelSuffix","fieldState","sharedData","set","autoComplete"],"sources":["../../../../../src/extensions/forms/hooks/useFieldProps.ts"],"sourcesContent":["import React, {\n useRef,\n useEffect,\n useContext,\n useCallback,\n useMemo,\n useReducer,\n AriaAttributes,\n} from 'react'\nimport pointer from 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport { errorChanged } from '../utils'\nimport { ajvErrorsToOneFormError } from '../utils/ajv'\nimport {\n FormError,\n FieldPropsGeneric,\n AdditionalEventArgs,\n SubmitState,\n EventReturnWithStateObjectAndSuccess,\n EventStateObjectWithSuccess,\n ValidatorAdditionalArgs,\n Validator,\n} from '../types'\nimport { Context as DataContext, ContextState } from '../DataContext'\nimport { clearedData } from '../DataContext/Provider/Provider'\nimport FieldPropsContext from '../Form/FieldProps/FieldPropsContext'\nimport { combineDescribedBy, warn } from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport useUpdateEffect from '../../../shared/helpers/useUpdateEffect'\nimport FieldBlockContext from '../FieldBlock/FieldBlockContext'\nimport IterateElementContext from '../Iterate/IterateItemContext'\nimport SectionContext from '../Form/Section/SectionContext'\nimport FieldBoundaryContext from '../DataContext/FieldBoundary/FieldBoundaryContext'\nimport useProcessManager from './useProcessManager'\nimport usePath from './usePath'\nimport {\n createSharedState,\n useSharedState,\n} from '../../../shared/helpers/useSharedState'\nimport { isAsync } from '../../../shared/helpers/isAsync'\nimport useTranslation from './useTranslation'\nimport useExternalValue from './useExternalValue'\nimport useDataValue from './useDataValue'\n\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 | boolean | number\n}\n\n// Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n// useEffect depend on them (like the external `value`)\n\nexport default function useFieldProps<Value, EmptyValue, Props>(\n localeProps: Props & FieldPropsGeneric<Value, EmptyValue>,\n { executeOnChangeRegardlessOfError = false } = {}\n): typeof localeProps & ReturnAdditional<Value> {\n const { extend } = useContext(FieldPropsContext)\n const props = extend(localeProps)\n\n const {\n path: pathProp,\n value: valueProp,\n defaultValue,\n itemPath,\n emptyValue,\n required: requiredProp,\n disabled: disabledProp,\n info,\n warning,\n error: errorProp,\n errorMessages,\n onFocus,\n onBlur,\n onChange,\n onBlurValidator,\n validator,\n exportValidators,\n schema,\n validateInitially,\n validateUnchanged,\n continuousValidation,\n transformIn = (value: Value) => value,\n transformOut = (value: Value) => value,\n toInput = (value: Value) => value,\n fromInput = (value: Value) => value,\n toEvent = (value: Value) => value,\n transformValue = (value: Value) => value,\n transformAdditionalArgs = (additionalArgs: AdditionalEventArgs) =>\n additionalArgs,\n fromExternal = (value: Value) => value,\n validateRequired = (value, { emptyValue, required, error }) => {\n const res =\n required &&\n ((value as any) === emptyValue ||\n (typeof emptyValue === 'undefined' && value === ''))\n ? error\n : undefined\n\n return res\n },\n } = props\n\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n const isInternalRerenderRef = useRef(undefined)\n useMemo(() => {\n /**\n * This is currently not used, but we keep it here for future use.\n * It lets you check for isInternalRerenderRef.current !== undefined\n * inside a useUpdateEffect or useEffect to know if the component is rerendering from inside or outside.\n */\n isInternalRerenderRef.current = salt\n }, [salt])\n const { startProcess } = useProcessManager()\n const id = useId(props.id)\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const iterateItemContext = useContext(IterateElementContext)\n const sectionContext = useContext(SectionContext)\n const fieldBoundaryContext = useContext(FieldBoundaryContext)\n const translation = useTranslation()\n\n const transformers = useRef({\n transformIn,\n transformOut,\n transformAdditionalArgs,\n toInput,\n fromInput,\n toEvent,\n fromExternal,\n transformValue,\n validateRequired,\n })\n\n const {\n handlePathChangeUnvalidated: handlePathChangeUnvalidatedDataContext,\n handlePathChange: handlePathChangeDataContext,\n updateDataValue: updateDataValueDataContext,\n validateData: validateDataDataContext,\n setFieldState: setFieldStateDataContext,\n setFieldError: setFieldErrorDataContext,\n setFieldProps: setPropsDataContext,\n setVisibleError: setVisibleErrorDataContext,\n setMountedFieldState: setMountedFieldStateDataContext,\n setFieldEventListener,\n errors: dataContextErrors,\n showAllErrors,\n contextErrorMessages,\n } = dataContext || {}\n const onChangeContext = dataContext?.props?.onChange\n\n const disabled = disabledProp ?? props.readOnly\n const inFieldBlock = Boolean(fieldBlockContext)\n const {\n setFieldState: setFieldStateFieldBlock,\n showFieldError: showFieldErrorFieldBlock,\n mountedFieldsRef: mountedFieldsRefFieldBlock,\n } = fieldBlockContext || {}\n const { handleChange: handleChangeIterateContext } =\n iterateItemContext || {}\n const { path: sectionPath, errorPrioritization } = sectionContext || {}\n const {\n setFieldError: setFieldErrorBoundary,\n setVisibleError: setVisibleErrorBoundary,\n showBoundaryErrors,\n } = fieldBoundaryContext || {}\n\n const hasPath = Boolean(pathProp)\n const { path, identifier, makeIteratePath } = usePath({\n id,\n path: pathProp,\n itemPath,\n })\n\n const defaultValueRef = useRef(defaultValue)\n const externalValue =\n useExternalValue<Value>({\n path,\n itemPath,\n value: valueProp,\n transformers,\n emptyValue,\n }) ?? defaultValueRef.current\n\n // Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n // useEffect depend on them (like the external `value`)\n\n // Hold an internal copy of the input value in case the input component is used uncontrolled,\n // and to handle errors in Eufemia on components that does not take updated callback functions into account.\n const valueRef = useRef<Value>(externalValue)\n const changedRef = useRef<boolean>()\n const hasFocusRef = useRef<boolean>()\n\n const required = useMemo(() => {\n if (typeof requiredProp !== 'undefined') {\n return requiredProp\n }\n\n const paths = identifier.split('/')\n if (paths.length > 0 && (schema || dataContext?.schema)) {\n const requiredList = [schema?.['required']]\n\n if (paths.length > 1) {\n const schema = dataContext.schema\n const schemaPath = paths.slice(0, -1).join('/properties/')\n const schemaPart = pointer.has(schema, schemaPath)\n ? pointer.get(schema, schemaPath)\n : schema\n\n requiredList.push(schemaPart?.required)\n }\n\n if (sectionPath) {\n paths.push(sectionPath.substring(1))\n }\n\n const collected = requiredList.flatMap((v) => v).filter(Boolean)\n if (\n paths\n .filter(Boolean)\n .some((p) => collected.some((c) => c.includes(p)))\n ) {\n return true\n }\n }\n }, [requiredProp, identifier, schema, dataContext.schema, sectionPath])\n\n // Error handling\n // - Should errors received through validation be shown initially. Assume that providing a direct prop to\n // the component means it is supposed to be shown initially.\n const revealErrorRef = useRef<boolean>(\n validateInitially ?? Boolean(errorProp)\n )\n // - Local errors are errors based on validation instructions received by\n const errorMethodRef = useRef<\n Partial<Record<PersistErrorStateMethod, Error | FormError>>\n >({})\n const localErrorRef = useRef<Error | FormError | undefined>()\n const hasLocalErrorRef = useRef(false)\n // - Context errors are from outer contexts, like validation for this field as part of the whole data set\n const dataContextError = useMemo(() => {\n return path ? dataContextErrors?.[identifier] : undefined\n }, [dataContextErrors, identifier, path])\n const contextErrorRef = useRef<Error | FormError | undefined>(\n dataContextError\n )\n\n const onChangeValidatorRef = useRef(validator)\n useUpdateEffect(() => {\n onChangeValidatorRef.current = validator\n }, [validator])\n const onBlurValidatorRef = useRef(onBlurValidator)\n useUpdateEffect(() => {\n onBlurValidatorRef.current = onBlurValidator\n }, [onBlurValidator])\n\n const schemaValidatorRef = useRef<ValidateFunction>(\n schema ? dataContext.ajvInstance?.compile(schema) : undefined\n )\n\n // Needs to be placed before \"prepareError\"\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 // - Async behavior\n const asyncBehaviorIsEnabled = useMemo(() => {\n return isAsync(onChange) || isAsync(onChangeContext)\n }, [onChangeContext, onChange])\n const validatedValue = useRef<Value>()\n const changeEventResultRef = useRef<EventStateObjectWithSuccess>(null)\n const asyncProcessRef = useRef<AsyncProcesses>(null)\n const defineAsyncProcess = useCallback((name: AsyncProcesses) => {\n asyncProcessRef.current = name\n }, [])\n\n // When both an async onChange and async validators are used,\n // we buffer the onChange calls to avoid race conditions.\n const asyncBufferRef = useRef<\n Record<AsyncProcesses, AsyncProcessesBuffer> | Record<string, unknown>\n >({})\n\n for (const key in asyncBufferRef.current) {\n const { resolve, validateProcesses } = (asyncBufferRef.current[key] ||\n {}) as AsyncProcessesBuffer\n if (validateProcesses?.() === false) {\n delete asyncBufferRef.current[key]\n if (typeof resolve === 'function') {\n window.requestAnimationFrame(resolve)\n }\n }\n }\n\n const eventPool = useRef({\n validator: null,\n onBlurValidator: null,\n onChangeContext: null,\n onChangeLocal: null,\n })\n\n const addToPool = useCallback(\n (name: keyof typeof eventPool.current, fn, runAsync) => {\n if (!eventPool.current[name]) {\n eventPool.current[name] = { fn, runAsync }\n }\n },\n []\n )\n\n const runPool = useCallback(async (cb = null) => {\n for (const key in eventPool.current) {\n if (!eventPool.current[key] || eventPool.current[key].pending) {\n continue\n }\n\n const { fn, runAsync } = eventPool.current[key] || {}\n if (fn) {\n eventPool.current[key].pending = true\n eventPool.current[key] = null\n\n if (runAsync) {\n await fn()\n } else {\n fn()\n }\n }\n }\n\n // use a callback in order to avoid any async/await,\n // because it will delay the execution of the following code\n cb?.()\n }, [])\n\n const fieldStateRef = useRef<SubmitStateWithValidating>()\n const setFieldState = useCallback(\n (state: SubmitStateWithValidating) => {\n fieldStateRef.current = state\n setFieldStateDataContext(identifier, resolveValidatingState(state))\n if (!validateInitially) {\n forceUpdate()\n }\n },\n [setFieldStateDataContext, identifier, validateInitially]\n )\n\n const revealError = useCallback(() => {\n // To support \"validateInitially={false}\" prop, we need to make sure that the error is not shown initially\n if (revealErrorRef.current === false && validateInitially === false) {\n revealErrorRef.current = undefined\n return // stop here\n }\n\n if (!revealErrorRef.current) {\n revealErrorRef.current = true\n showFieldErrorFieldBlock?.(identifier, true)\n setVisibleErrorBoundary?.(identifier, !!localErrorRef.current)\n setVisibleErrorDataContext?.(identifier, !!localErrorRef.current)\n }\n }, [\n identifier,\n setVisibleErrorDataContext,\n setVisibleErrorBoundary,\n showFieldErrorFieldBlock,\n validateInitially,\n ])\n\n const hideError = useCallback(() => {\n if (revealErrorRef.current) {\n revealErrorRef.current = undefined\n showFieldErrorFieldBlock?.(identifier, false)\n setVisibleErrorBoundary?.(identifier, false)\n setVisibleErrorDataContext?.(identifier, false)\n }\n }, [\n identifier,\n setVisibleErrorBoundary,\n setVisibleErrorDataContext,\n showFieldErrorFieldBlock,\n ])\n\n /**\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 messageHasValues = Object.entries(\n error.messageValues || {}\n ).reduce((message, [key, value]) => {\n return message.replace(`{${key}}`, value)\n }, message)\n\n error.message = messageHasValues\n\n return error\n }\n\n return error\n },\n []\n )\n\n contextErrorRef.current = useMemo(() => {\n if (!dataContextError) {\n return undefined\n }\n const error = prepareError(dataContextError)\n if (errorChanged(error, contextErrorRef.current)) {\n return error\n }\n }, [dataContextError, prepareError])\n\n const error =\n revealErrorRef.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 connectWithPathListenerRef = useRef(async () => {\n if (\n localErrorRef.current ||\n validateUnchanged ||\n continuousValidation\n ) {\n if (onChangeValidatorRef.current) {\n runOnChangeValidator()\n }\n }\n\n if (localErrorRef.current && onBlurValidatorRef.current) {\n runOnBlurValidator()\n }\n })\n\n const { getValueByPath } = useDataValue()\n const exportValidatorsRef = useRef(exportValidators)\n exportValidatorsRef.current = exportValidators\n const additionalArgs = useMemo(() => {\n const errorMessages = {\n ...contextErrorMessages,\n ...errorMessagesRef.current,\n }\n const args: ValidatorAdditionalArgs<Value> = {\n /** @deprecated – can be removed in v11 */\n ...errorMessages,\n\n errorMessages,\n validators: exportValidatorsRef.current,\n connectWithPath: (path) => {\n setFieldEventListener?.(\n path,\n 'onPathChange',\n connectWithPathListenerRef.current\n )\n\n return {\n getValue: () => getValueByPath(path),\n }\n },\n }\n\n return args\n }, [contextErrorMessages, getValueByPath, setFieldEventListener])\n const extendWithExportedValidators = useCallback(\n (\n validator: Validator<Value>,\n result: ReturnType<Validator<Value>>\n ) => {\n if (\n exportValidatorsRef.current &&\n !result &&\n (validator === onChangeValidatorRef.current ||\n validator === onBlurValidatorRef.current) &&\n !Array.isArray(result)\n ) {\n return Object.values(exportValidatorsRef.current)\n }\n\n return result\n },\n []\n )\n\n const callValidatorFnSync = useCallback(\n (\n validator: Validator<Value>,\n value: Value = valueRef.current\n ): ReturnType<Validator<Value>> => {\n if (typeof validator !== 'function') {\n return undefined\n }\n\n const result = extendWithExportedValidators(\n validator,\n validator(value, additionalArgs)\n )\n\n if (Array.isArray(result)) {\n for (const validator of result) {\n const result = callValidatorFnSync(validator, value)\n if (result instanceof Error) {\n return result\n }\n }\n\n return // stop here\n }\n\n return result\n },\n [additionalArgs, extendWithExportedValidators]\n )\n\n const callValidatorFnAsync = useCallback(\n async (\n validator: Validator<Value>,\n value: Value = valueRef.current\n ): Promise<ReturnType<Validator<Value>>> => {\n if (typeof validator !== 'function') {\n return undefined\n }\n\n const result = extendWithExportedValidators(\n validator,\n await validator(value, additionalArgs)\n )\n\n if (Array.isArray(result)) {\n for (const validator of result) {\n const result = await callValidatorFnAsync(validator, value)\n\n if (result instanceof Error) {\n return result\n }\n }\n\n return // stop here\n }\n\n return result\n },\n [additionalArgs, extendWithExportedValidators]\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 setFieldErrorBoundary?.(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 setFieldErrorBoundary,\n setFieldStateDataContext,\n setFieldStateFieldBlock,\n stateId,\n inFieldBlock,\n validateInitially,\n ]\n )\n\n const clearErrorState = useCallback(() => {\n persistErrorState('wipe')\n hasLocalErrorRef.current = false\n }, [persistErrorState])\n\n const validatorCacheRef = useRef({\n onChangeValidator: null,\n onBlurValidator: null,\n })\n\n const revealOnChangeValidatorResult = useCallback(\n ({ result, unchangedValue }) => {\n const runAsync = isAsync(onChangeValidatorRef.current)\n\n // Don't show the error if the value has changed in the meantime\n if (unchangedValue) {\n persistErrorState('gracefully', result as Error)\n\n if (\n (validateInitially && !changedRef.current) ||\n validateUnchanged ||\n continuousValidation ||\n runAsync // Because its a better UX to show the error when the validation is async/delayed\n ) {\n // Because we first need to throw the error to be able to display it, we delay the showError call\n window.requestAnimationFrame(() => {\n revealError()\n forceUpdate()\n })\n }\n }\n\n if (runAsync) {\n defineAsyncProcess(undefined)\n\n if (unchangedValue) {\n setFieldState(result instanceof Error ? 'error' : 'complete')\n } else {\n setFieldState('pending')\n }\n }\n },\n [\n continuousValidation,\n defineAsyncProcess,\n persistErrorState,\n revealError,\n setFieldState,\n validateInitially,\n validateUnchanged,\n ]\n )\n\n const callOnChangeValidator = useCallback(async () => {\n if (typeof onChangeValidatorRef.current !== 'function') {\n return {}\n }\n\n const tmpValue = valueRef.current\n\n let result = isAsync(onChangeValidatorRef.current)\n ? await callValidatorFnAsync(onChangeValidatorRef.current)\n : callValidatorFnSync(onChangeValidatorRef.current)\n if (result instanceof Promise) {\n result = await result\n }\n\n const unchangedValue = tmpValue === valueRef.current\n return { result, unchangedValue }\n }, [callValidatorFnAsync, callValidatorFnSync])\n\n const startOnChangeValidatorValidation = useCallback(async () => {\n if (typeof onChangeValidatorRef.current !== 'function') {\n return\n }\n\n if (isAsync(onChangeValidatorRef.current)) {\n defineAsyncProcess('validator')\n setFieldState('validating')\n hideError()\n }\n\n // Ideally, we should rather call \"callOnChangeValidator\", but sadly it's not possible,\n // because we get an additional delay due to the async nature, which is too much.\n // So when a submit button is pressed, and there is a sync validator, it needs to be validated without a delay.\n const tmpValue = valueRef.current\n let result = isAsync(onChangeValidatorRef.current)\n ? await callValidatorFnAsync(onChangeValidatorRef.current)\n : callValidatorFnSync(onChangeValidatorRef.current)\n if (result instanceof Promise) {\n result = await result\n }\n const unchangedValue = tmpValue === valueRef.current\n\n revealOnChangeValidatorResult({ result, unchangedValue })\n\n return { result }\n }, [\n callValidatorFnAsync,\n callValidatorFnSync,\n defineAsyncProcess,\n hideError,\n revealOnChangeValidatorResult,\n setFieldState,\n ])\n\n const runOnChangeValidator = useCallback(async () => {\n if (!onChangeValidatorRef.current) {\n return // stop here\n }\n\n const { result, unchangedValue } = await callOnChangeValidator()\n\n if (\n String(result) !==\n String(validatorCacheRef.current.onChangeValidator)\n ) {\n if (result) {\n revealOnChangeValidatorResult({ result, unchangedValue })\n } else {\n hideError()\n clearErrorState()\n }\n }\n\n validatorCacheRef.current.onChangeValidator = result || null\n }, [\n callOnChangeValidator,\n clearErrorState,\n hideError,\n revealOnChangeValidatorResult,\n ])\n\n const callOnBlurValidator = useCallback(\n async ({\n overrideValue = null,\n }: {\n overrideValue?: Value\n } = {}) => {\n if (typeof onBlurValidatorRef.current !== 'function') {\n return {}\n }\n\n const value = transformers.current.toEvent(\n overrideValue ?? valueRef.current,\n 'onBlurValidator'\n )\n\n // Since the validator can return either a synchronous result or an asynchronous.\n let result = isAsync(onBlurValidatorRef.current)\n ? await callValidatorFnAsync(onBlurValidatorRef.current, value)\n : callValidatorFnSync(onBlurValidatorRef.current, value)\n if (result instanceof Promise) {\n result = await result\n }\n\n return { result }\n },\n [callValidatorFnAsync, callValidatorFnSync]\n )\n\n const revealOnBlurValidatorResult = useCallback(\n ({ result }) => {\n persistErrorState('gracefully', result as Error)\n\n if (isAsync(onBlurValidatorRef.current)) {\n defineAsyncProcess(undefined)\n setFieldState(result instanceof Error ? 'error' : 'complete')\n }\n\n revealError()\n },\n [defineAsyncProcess, persistErrorState, revealError, setFieldState]\n )\n\n const startOnBlurValidatorProcess = useCallback(\n async ({\n overrideValue = null,\n }: {\n overrideValue?: Value\n } = {}) => {\n if (typeof onBlurValidatorRef.current !== 'function') {\n return\n }\n\n if (isAsync(onBlurValidatorRef.current)) {\n defineAsyncProcess('onBlurValidator')\n setFieldState('validating')\n }\n\n const value = transformers.current.toEvent(\n overrideValue ?? valueRef.current,\n 'onBlurValidator'\n )\n\n // Since the validator can return either a synchronous result or an asynchronous.\n // Ideally, we should rather call \"callOnBlurValidator\", but sadly it's not possible,\n // because we get an additional delay due to the async nature, which is too much.\n // So when a submit button is pressed, and there is a sync validator, it needs to be validated without a delay.\n let result = isAsync(onBlurValidatorRef.current)\n ? await callValidatorFnAsync(onBlurValidatorRef.current, value)\n : callValidatorFnSync(onBlurValidatorRef.current, value)\n if (result instanceof Promise) {\n result = await result\n }\n\n revealOnBlurValidatorResult({ result })\n },\n [\n callValidatorFnAsync,\n callValidatorFnSync,\n defineAsyncProcess,\n revealOnBlurValidatorResult,\n setFieldState,\n ]\n )\n\n const runOnBlurValidator = useCallback(async () => {\n if (!onBlurValidatorRef.current) {\n return // stop here\n }\n\n const { result } = await callOnBlurValidator()\n\n if (\n String(result) !==\n String(validatorCacheRef.current.onBlurValidator) &&\n revealErrorRef.current\n ) {\n if (result) {\n revealOnBlurValidatorResult({ result })\n } else {\n hideError()\n clearErrorState()\n }\n }\n\n validatorCacheRef.current.onBlurValidator = result || null\n }, [\n callOnBlurValidator,\n clearErrorState,\n hideError,\n revealOnBlurValidatorResult,\n ])\n\n const prioritizeContextSchema = useMemo(() => {\n if (errorPrioritization) {\n const schemaPath = identifier.split('/').join('/properties/')\n const hasContextSchema = pointer.has(\n dataContext?.schema || {},\n schemaPath\n )\n return (\n hasContextSchema &&\n errorPrioritization?.indexOf('contextSchema') === 0\n )\n }\n }, [dataContext?.schema, errorPrioritization, identifier])\n\n /**\n * Validate the current state value by provided validator instructions\n */\n const validateValue = useCallback(async () => {\n const isProcessActive = startProcess()\n\n if (disabled) {\n if (isProcessActive()) {\n clearErrorState()\n }\n hideError()\n setFieldState(undefined)\n return // stop here\n }\n\n const value = valueRef.current\n changeEventResultRef.current = null\n validatedValue.current = null\n\n try {\n const requiredError = transformers.current.validateRequired(value, {\n emptyValue,\n required: requiredProp ?? 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 !prioritizeContextSchema\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 onChangeValidatorRef.current &&\n (changedRef.current || validateInitially || validateUnchanged)\n ) {\n const { result } = await startOnChangeValidatorValidation()\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 hasLocalErrorRef.current = true\n persistErrorState('weak', error as Error)\n }\n }\n }, [\n startProcess,\n disabled,\n hideError,\n setFieldState,\n clearErrorState,\n emptyValue,\n requiredProp,\n required,\n prioritizeContextSchema,\n validateInitially,\n validateUnchanged,\n startOnChangeValidatorValidation,\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 revealError()\n } else {\n // When changing the value, hide errors to avoid annoying the user before they are finished filling in that value\n hideError()\n }\n }, [continuousValidation, hideError, revealError])\n\n const setHasFocus = useCallback(\n async (\n hasFocus: boolean,\n overrideValue?: Value,\n additionalArgs?: AdditionalEventArgs\n ) => {\n const getArgs = (\n type: Parameters<typeof transformers.current.toEvent>[1]\n ) => {\n const value = transformers.current.toEvent(\n overrideValue ?? valueRef.current,\n type\n )\n const transformedAdditionalArgs =\n transformers.current.transformAdditionalArgs(\n additionalArgs,\n value\n )\n\n return typeof transformedAdditionalArgs !== 'undefined'\n ? [value, transformedAdditionalArgs]\n : [value]\n }\n\n if (hasFocus) {\n // Field was put in focus (like when clicking in a text field or opening a dropdown menu)\n hasFocusRef.current = true\n const args = getArgs('onFocus')\n onFocus?.apply(this, args)\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 args = getArgs('onBlur')\n onBlur?.apply(this, args)\n\n if (!changedRef.current && !validateUnchanged) {\n // Avoid showing errors when blurring without having changed the value, so tabbing through several\n // fields does not make errors pop up all over the place\n return\n }\n\n addToPool(\n 'onBlurValidator',\n async () => await startOnBlurValidatorProcess({ overrideValue }),\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool(() => {\n // Since the user left the field, show error (if any)\n revealError()\n forceUpdate()\n })\n }\n },\n [\n onFocus,\n onBlur,\n validateUnchanged,\n addToPool,\n runPool,\n startOnBlurValidatorProcess,\n revealError,\n ]\n )\n\n // Await an async operation to run after criteria are fulfilled\n const yieldAsyncProcess = useCallback(\n async ({\n name,\n waitFor,\n }: {\n name: 'onChangeLocal' | 'onChangeContext' | 'onSubmitContext'\n waitFor: Array<{\n processName?: AsyncProcesses\n withStates: Array<SubmitStateWithValidating>\n hasValue?: Value\n }>\n }) => {\n return new Promise<void>((resolve) => {\n const validateProcesses = () => {\n const result = waitFor.some(\n ({ processName, withStates, hasValue }) => {\n const hasMatchingValue =\n // If the value has changed during the async process, we don't want to resolve anymore\n hasValue === validatedValue.current\n\n const result =\n (typeof hasValue === 'undefined'\n ? false\n : !hasMatchingValue) ||\n ((processName\n ? processName === asyncProcessRef.current\n : true) &&\n withStates?.some((state) => {\n return state === fieldStateRef.current\n }))\n\n return result\n }\n )\n\n return result\n }\n\n if (validateProcesses() === true) {\n asyncBufferRef.current[name] = { resolve, validateProcesses }\n } else {\n resolve()\n setFieldState('pending')\n }\n })\n },\n [setFieldState]\n )\n\n const handleChangeEventResult = useCallback(async () => {\n const result: EventStateObjectWithSuccess =\n changeEventResultRef.current\n\n if (typeof result?.error !== 'undefined') {\n persistErrorState('gracefully', result.error)\n revealError()\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 revealError,\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 && !executeOnChangeRegardlessOfError) {\n await yieldAsyncProcess({\n name: 'onChangeContext',\n waitFor: [\n {\n processName: 'validator',\n withStates: ['validating', 'error'],\n hasValue: valueRef.current,\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n hasValue: valueRef.current,\n },\n ],\n })\n }\n\n if (hasPath) {\n if (isAsync(onChangeContext)) {\n defineAsyncProcess('onChangeContext')\n\n // Skip sync errors, such as required\n if (!hasError() || executeOnChangeRegardlessOfError) {\n setEventResult(\n (await handlePathChangeDataContext?.(\n identifier\n )) as EventReturnWithStateObjectAndSuccess\n )\n } else {\n setEventResult(null)\n }\n } else {\n setEventResult(\n handlePathChangeDataContext?.(\n identifier\n ) as EventReturnWithStateObjectAndSuccess\n )\n }\n }\n\n forceUpdate()\n }, [\n asyncBehaviorIsEnabled,\n executeOnChangeRegardlessOfError,\n hasPath,\n yieldAsyncProcess,\n onChangeContext,\n defineAsyncProcess,\n hasError,\n setEventResult,\n handlePathChangeDataContext,\n identifier,\n ])\n\n const updateValue = useCallback(\n async (newValue: Value) => {\n 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 if (hasPath) {\n handlePathChangeUnvalidatedDataContext(identifier, newValue)\n }\n\n addToPool(\n 'validator',\n validateValue,\n isAsync(onChangeValidatorRef.current)\n )\n\n addToPool(\n 'onChangeContext',\n callOnChangeContext,\n isAsync(onChangeContext)\n )\n\n await runPool(() => {\n handleError()\n })\n },\n [\n hasPath,\n addToPool,\n validateValue,\n callOnChangeContext,\n onChangeContext,\n runPool,\n handlePathChangeUnvalidatedDataContext,\n identifier,\n handleError,\n ]\n )\n\n const setChanged = (state: boolean) => {\n changedRef.current = state\n }\n\n const handleChange = useCallback(\n async (\n argFromInput: Value | unknown,\n additionalArgs: AdditionalEventArgs = undefined\n ) => {\n const currentValue = valueRef.current\n const fromInput = transformers.current.fromInput(argFromInput)\n\n if (fromInput === currentValue) {\n // Avoid triggering a change if the value was not actually changed. This may be caused by rendering components\n // calling onChange even if the actual value did not change.\n return\n }\n\n 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 handleChangeIterateContext?.(\n makeIteratePath(itemPath, ''),\n transformedValue\n )\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 const transformedAdditionalArgs =\n transformers.current.transformAdditionalArgs(\n additionalArgs,\n value\n )\n\n return typeof transformedAdditionalArgs !== 'undefined'\n ? [value, transformedAdditionalArgs]\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 hasValue: args[0],\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n hasValue: args[0],\n },\n {\n processName: 'onChangeContext',\n withStates: ['pending', 'error'],\n hasValue: args[0],\n },\n ],\n })\n\n defineAsyncProcess('onChangeLocal')\n\n // Skip sync errors, such as required\n if (!hasError()) {\n // If the value has changed during the async process, we don't want to call the onChange anymore\n 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 itemPath,\n asyncBehaviorIsEnabled,\n onChange,\n runPool,\n handleChangeIterateContext,\n makeIteratePath,\n hideError,\n updateValue,\n addToPool,\n yieldAsyncProcess,\n defineAsyncProcess,\n hasError,\n setEventResult,\n ]\n )\n\n const handleFocus = useCallback(() => setHasFocus(true), [setHasFocus])\n const handleBlur = useCallback(() => setHasFocus(false), [setHasFocus])\n\n // Put props into the surrounding data context as early as possible\n setPropsDataContext?.(identifier, props)\n\n useEffect(() => {\n // Mount procedure.\n setMountedFieldStateDataContext(identifier, {\n isMounted: true,\n })\n\n // Unmount procedure.\n return () => {\n setMountedFieldStateDataContext(identifier, {\n isMounted: false,\n })\n setFieldErrorDataContext?.(identifier, undefined)\n setFieldErrorBoundary?.(identifier, undefined)\n localErrorRef.current = undefined\n }\n }, [\n identifier,\n setFieldErrorBoundary,\n setFieldErrorDataContext,\n setMountedFieldStateDataContext,\n ])\n\n useEffect(() => {\n validateValue()\n }, [validateValue])\n\n useUpdateEffect(() => {\n schemaValidatorRef.current = schema\n ? dataContext.ajvInstance?.compile(schema)\n : undefined\n validateValue()\n }, [schema, validateValue])\n\n const isEmptyData = useCallback(() => {\n return (\n dataContext.internalDataRef?.current ===\n (dataContext.props?.emptyData ?? clearedData)\n )\n }, [dataContext.internalDataRef, dataContext.props?.emptyData])\n\n useEffect(() => {\n if (isEmptyData()) {\n hideError()\n }\n }, [externalValue, hideError, isEmptyData])\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 forceUpdate()\n }\n }, [externalValue, validateValue])\n\n useEffect(() => {\n // Check against the local error state,\n // so we prioritize the local error state over the context error state\n if (!hasLocalErrorRef.current) {\n const error = prepareError(dataContextError)\n if (error) {\n persistErrorState('weak', error)\n if (validateInitially) {\n handleError()\n }\n } else {\n clearErrorState()\n }\n }\n }, [\n clearErrorState,\n dataContextError,\n handleError,\n persistErrorState,\n prepareError,\n validateInitially,\n ])\n\n useEffect(() => {\n if (itemPath && valueProp !== undefined) {\n warn(\n `Using value=\"${valueProp}\" prop inside Iterate is not supported yet`\n )\n }\n if (itemPath && defaultValue !== undefined) {\n warn(\n `Using defaultValue=\"${defaultValue}\" prop inside Iterate is not supported yet`\n )\n }\n }, [defaultValue, itemPath, valueProp])\n\n useEffect(() => {\n if (hasPath) {\n let value = valueProp\n\n // First, look for existing data in the context\n const hasValue =\n pointer.has(dataContext.data, identifier) || identifier === '/'\n const existingValue =\n identifier === '/'\n ? dataContext.data\n : hasValue\n ? pointer.get(dataContext.data, identifier)\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, identifier)\n if (hasValue) {\n const sharedValue = pointer.get(sharedState.data, identifier)\n if (sharedValue) {\n value = sharedValue\n }\n }\n }\n\n if (\n typeof defaultValueRef.current !== 'undefined' &&\n typeof value === 'undefined'\n ) {\n value = defaultValueRef.current\n defaultValueRef.current = undefined\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?.(identifier, value)\n validateDataDataContext?.()\n }\n }\n }, [\n dataContext.data,\n dataContext.id,\n defaultValue,\n hasPath,\n identifier,\n updateDataValueDataContext,\n validateDataDataContext,\n valueProp,\n ])\n\n useEffect(() => {\n if (showAllErrors || showBoundaryErrors) {\n // In case of async validation, we don't want to show existing errors before the validation has been completed\n if (fieldStateRef.current !== 'validating') {\n // If showError on a surrounding data context was changed and set to true, it is because the user clicked next, submit or\n // something else that should lead to showing the user all errors.\n revealError()\n }\n } else if (showBoundaryErrors === false) {\n hideError()\n }\n }, [hideError, revealError, showAllErrors, showBoundaryErrors])\n\n useEffect(() => {\n if (\n dataContext.formState === 'pending' &&\n (onChangeValidatorRef.current || onBlurValidatorRef.current)\n ) {\n hideError()\n forceUpdate()\n }\n }, [dataContext.formState, hideError])\n\n const onSubmitHandler = useCallback(async () => {\n if (hasError()) {\n return // stop here\n }\n\n addToPool(\n 'validator',\n startOnChangeValidatorValidation,\n isAsync(onChangeValidatorRef.current)\n )\n\n addToPool(\n 'onBlurValidator',\n startOnBlurValidatorProcess,\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool()\n }, [\n addToPool,\n startOnBlurValidatorProcess,\n hasError,\n runPool,\n startOnChangeValidatorValidation,\n ])\n\n // Validate/call validator functions during submit of the form\n useEffect(() => {\n setFieldEventListener?.(identifier, 'onSubmit', onSubmitHandler)\n }, [identifier, onSubmitHandler, setFieldEventListener])\n\n // Set the error in the field block context if this field is inside a field block\n useEffect(() => {\n if (inFieldBlock) {\n setFieldStateFieldBlock?.({\n identifier,\n type: 'error',\n content: errorProp,\n showInitially: true,\n show: true,\n })\n setFieldStateFieldBlock?.({\n identifier,\n type: 'warning',\n content: warning,\n showInitially: true,\n show: true,\n })\n setFieldStateFieldBlock?.({\n identifier,\n type: 'info',\n content: info,\n showInitially: true,\n show: true,\n })\n\n return () => {\n // Unmount procedure\n if (mountedFieldsRefFieldBlock) {\n mountedFieldsRefFieldBlock.current[identifier] = true\n }\n }\n }\n }, [\n errorProp,\n identifier,\n inFieldBlock,\n info,\n mountedFieldsRefFieldBlock,\n setFieldStateFieldBlock,\n warning,\n ])\n\n const infoRef = useRef<React.ReactNode>(info)\n const warningRef = useRef<React.ReactNode>(warning)\n useUpdateEffect(() => {\n infoRef.current = info\n warningRef.current = warning\n forceUpdate()\n }, [info, warning])\n\n // - Handle htmlAttributes\n const htmlAttributes = useMemo(() => {\n return Object.keys(props).reduce<AriaAttributes>(\n (acc, cur) => {\n if (cur.startsWith('aria-') || cur.startsWith('data-')) {\n acc[cur] = props[cur]\n }\n return acc\n },\n { ...props.htmlAttributes }\n )\n }, [props])\n\n if (error) {\n htmlAttributes['aria-invalid'] = error ? 'true' : 'false'\n }\n if (required) {\n htmlAttributes['aria-required'] = 'true'\n }\n if (inFieldBlock) {\n // Mount the field in the field block context\n if (mountedFieldsRefFieldBlock) {\n mountedFieldsRefFieldBlock.current[identifier] = true\n }\n\n // Check if there are any state IDs to be added to the aria-describedby attribute\n const stateIds = fieldBlockContext.fieldStateIdsRef?.current\n\n if (stateIds) {\n htmlAttributes['aria-describedby'] = combineDescribedBy(\n htmlAttributes,\n [\n error && stateIds.error,\n warning && stateIds.warning,\n info && stateIds.info,\n ].filter(Boolean)\n )\n }\n } else {\n const ids = [\n (error || errorProp) && `${id}-form-status--error`,\n warning && `${id}-form-status--warning`,\n info && `${id}-form-status--info`,\n ].filter(Boolean)\n\n if (ids.length) {\n htmlAttributes['aria-describedby'] = combineDescribedBy(\n htmlAttributes,\n ids\n )\n }\n }\n\n const fieldBlockProps = {\n /** Documented APIs */\n info: !inFieldBlock ? infoRef.current : undefined,\n warning: !inFieldBlock ? warningRef.current : undefined,\n error: !inFieldBlock ? error : undefined,\n required,\n labelSuffix: props.labelSuffix,\n\n /** HTML Attributes */\n disabled:\n onBlurValidator &&\n asyncProcessRef.current === 'onBlurValidator' &&\n fieldStateRef.current === 'validating'\n ? true\n : disabled,\n\n /** Internal */\n fieldState: resolveValidatingState(fieldStateRef.current),\n }\n\n const sharedData = useSharedState('field-block-props-' + id)\n sharedData.set(fieldBlockProps)\n\n useEffect(() => {\n isInternalRerenderRef.current = undefined\n })\n\n return {\n ...props,\n ...fieldBlockProps,\n\n /** HTML Attributes */\n name: props.name || props.path?.replace('/', '') || id,\n autoComplete:\n props.autoComplete ??\n (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: Boolean(changedRef.current),\n props,\n htmlAttributes,\n setHasFocus,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n setChanged,\n forceUpdate,\n\n /** Internal */\n dataContext,\n }\n}\n\nexport interface ReturnAdditional<Value> {\n /** Documented APIs */\n value: Value\n isChanged: boolean\n htmlAttributes: AriaAttributes | DataAttributes\n setHasFocus: (\n hasFocus: boolean,\n overrideValue?: Value,\n additionalArgs?: AdditionalEventArgs\n ) => void\n handleFocus: () => void\n handleBlur: () => void\n handleChange: (\n value: Value | unknown,\n additionalArgs?: AdditionalEventArgs\n ) => void\n setChanged: (state: boolean) => 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"],"mappings":"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"}
1
+ {"version":3,"file":"useFieldProps.js","names":["React","useRef","useEffect","useContext","useCallback","useMemo","useReducer","pointer","errorChanged","ajvErrorsToOneFormError","FormError","Context","DataContext","clearedData","FieldProviderContext","combineDescribedBy","warn","useId","useUpdateEffect","FieldBlockContext","IterateElementContext","SectionContext","FieldBoundaryContext","VisibilityContext","WizardContext","useProcessManager","usePath","createSharedState","useSharedState","isAsync","useTranslation","useExternalValue","useDataValue","useLayoutEffect","window","useFieldProps","localeProps","executeOnChangeRegardlessOfError","updateContextDataInSync","_dataContext$props","_useExternalValue","_dataContext$ajvInsta","_localErrorRef$curren","_ref","_dataContext$props3","_props$path","_props$autoComplete","extend","props","path","pathProp","value","valueProp","defaultValue","itemPath","emptyValue","required","requiredProp","disabled","disabledProp","info","warning","error","errorProp","errorMessages","onFocus","onBlur","onChange","onBlurValidator","validator","exportValidators","schema","validateInitially","validateUnchanged","continuousValidation","transformIn","transformOut","toInput","fromInput","toEvent","transformValue","provideAdditionalArgs","additionalArgs","fromExternal","validateRequired","res","undefined","salt","forceUpdate","isInternalRerenderRef","current","startProcess","id","dataContext","fieldBlockContext","iterateItemContext","sectionContext","fieldBoundaryContext","wizardContext","isVisible","translation","transformers","handlePathChangeUnvalidated","handlePathChangeUnvalidatedDataContext","handlePathChange","handlePathChangeDataContext","updateDataValue","updateDataValueDataContext","validateData","validateDataDataContext","setFieldState","setFieldStateDataContext","setFieldError","setFieldErrorDataContext","setFieldProps","setFieldPropsDataContext","setFieldConnection","setFieldConnectionDataContext","setVisibleError","setVisibleErrorDataContext","setMountedFieldState","setMountedFieldStateDataContext","setFieldEventListener","errors","dataContextErrors","showAllErrors","contextErrorMessages","onChangeContext","readOnly","inFieldBlock","Boolean","setFieldStateFieldBlock","showFieldError","showFieldErrorFieldBlock","mountedFieldsRef","mountedFieldsRefFieldBlock","handleChange","handleChangeIterateContext","sectionPath","errorPrioritization","setFieldErrorBoundary","setVisibleErrorBoundary","showBoundaryErrors","hasPath","identifier","makeIteratePath","defaultValueRef","externalValue","valueRef","changedRef","hasFocusRef","paths","split","length","requiredList","schemaPath","slice","join","schemaPart","has","get","push","substring","collected","flatMap","v","filter","some","p","c","includes","revealErrorRef","errorMethodRef","localErrorRef","hasLocalErrorRef","dataContextError","contextErrorRef","onChangeValidatorRef","onBlurValidatorRef","schemaValidatorRef","ajvInstance","compile","errorMessagesRef","_objectSpread","Field","errorRequired","asyncBehaviorIsEnabled","validatedValue","changeEventResultRef","asyncProcessRef","defineAsyncProcess","name","asyncBufferRef","key","resolve","validateProcesses","requestAnimationFrame","eventPool","onChangeLocal","addToPool","fn","runAsync","runPool","cb","pending","fieldStateRef","state","resolveValidatingState","revealError","hideError","prepareError","message","validationRule","_errorMessagesRef$cur","fieldMessage","messageHasValues","Object","entries","messageValues","reduce","replace","hasVisibleError","hasErrorProp","hasError","_ref2","connectWithPathListenerRef","runOnChangeValidator","runOnBlurValidator","getValueByPath","exportValidatorsRef","args","validators","connectWithPath","getValue","extendWithExportedValidators","result","values","callStackRef","hasBeenCalledRef","callValidatorFnSync","Array","isArray","Error","callValidatorFnAsync","stateId","persistErrorState","method","errorArg","keys","type","content","showInitially","clearErrorState","removeError","validatorCacheRef","onChangeValidator","revealOnChangeValidatorResult","unchangedValue","callOnChangeValidator","tmpValue","Promise","startOnChangeValidatorValidation","String","callOnBlurValidator","overrideValue","revealOnBlurValidatorResult","startOnBlurValidatorProcess","prioritizeContextSchema","hasContextSchema","indexOf","validateValue","isProcessActive","requiredError","isChanged","handleError","getEventArgs","eventName","setHasFocus","hasFocus","apply","yieldAsyncProcess","waitFor","processName","withStates","hasValue","hasMatchingValue","handleChangeEventResult","warningRef","infoRef","success","setEventResult","callOnChangeContext","updateValue","newValue","setChanged","argFromInput","currentValue","transformedValue","handleFocus","handleBlur","activeIndex","activeIndexRef","activeIndexTmpRef","isPreMounted","wasStepChange","isMounted","_dataContext$ajvInsta2","externalValueDidChangeRef","tmpTransValueRef","setContextData","_dataContext$internal","valueToStore","data","prerenderFieldProps","internalDataRef","existingValue","sharedState","sharedValue","hasDefaultValue","preventUpdate","isEmptyData","_dataContext$internal2","_dataContext$props$em","_dataContext$props2","emptyData","formState","onSubmitHandler","show","connections","htmlAttributes","acc","cur","startsWith","_fieldBlockContext$fi","stateIds","fieldStateIdsRef","ids","fieldBlockProps","labelSuffix","fieldState","sharedData","set","autoComplete"],"sources":["../../../../../src/extensions/forms/hooks/useFieldProps.ts"],"sourcesContent":["import React, {\n useRef,\n useEffect,\n useContext,\n useCallback,\n useMemo,\n useReducer,\n AriaAttributes,\n} from 'react'\nimport pointer from '../utils/json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport { errorChanged } from '../utils'\nimport { ajvErrorsToOneFormError } from '../utils/ajv'\nimport {\n FormError,\n FieldPropsGeneric,\n AdditionalEventArgs,\n SubmitState,\n EventReturnWithStateObjectAndSuccess,\n EventStateObjectWithSuccess,\n ValidatorAdditionalArgs,\n Validator,\n Identifier,\n} from '../types'\nimport { Context as DataContext, ContextState } from '../DataContext'\nimport { clearedData } from '../DataContext/Provider/Provider'\nimport FieldProviderContext from '../Field/Provider/FieldProviderContext'\nimport { combineDescribedBy, warn } from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport useUpdateEffect from '../../../shared/helpers/useUpdateEffect'\nimport FieldBlockContext from '../FieldBlock/FieldBlockContext'\nimport IterateElementContext from '../Iterate/IterateItemContext'\nimport SectionContext from '../Form/Section/SectionContext'\nimport FieldBoundaryContext from '../DataContext/FieldBoundary/FieldBoundaryContext'\nimport VisibilityContext from '../Form/Visibility/VisibilityContext'\nimport WizardContext from '../Wizard/Context'\nimport useProcessManager from './useProcessManager'\nimport usePath from './usePath'\nimport {\n createSharedState,\n useSharedState,\n} from '../../../shared/helpers/useSharedState'\nimport { isAsync } from '../../../shared/helpers/isAsync'\nimport useTranslation from './useTranslation'\nimport useExternalValue from './useExternalValue'\nimport useDataValue from './useDataValue'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\ntype SubmitStateWithValidating = SubmitState | 'validating'\ntype AsyncProcesses =\n | 'validator'\n | 'onBlurValidator'\n | 'onChangeLocal'\n | 'onChangeContext'\ntype PersistErrorStateMethod =\n /**\n * Add or remove the error regardless\n */\n | 'weak'\n /**\n * Check if there is an existing error, and if so, keep it\n */\n | 'gracefully'\n /**\n * Remove the error, if any\n */\n | 'wipe'\ntype AsyncProcessesBuffer = {\n resolve: () => void\n validateProcesses: () => boolean\n}\n\nexport type DataAttributes = {\n [property: `data-${string}`]: string | boolean | number\n}\n\n// Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n// useEffect depend on them (like the external `value`)\n\nexport default function useFieldProps<Value, EmptyValue, Props>(\n localeProps: Props & FieldPropsGeneric<Value, EmptyValue>,\n {\n executeOnChangeRegardlessOfError = false,\n updateContextDataInSync = false,\n } = {}\n): typeof localeProps & ReturnAdditional<Value> {\n const { extend } = useContext(FieldProviderContext)\n const props = extend(localeProps)\n\n const {\n path: pathProp,\n value: valueProp,\n defaultValue,\n itemPath,\n emptyValue,\n required: requiredProp,\n disabled: disabledProp,\n info,\n warning,\n error: errorProp,\n errorMessages,\n onFocus,\n onBlur,\n onChange,\n onBlurValidator,\n validator,\n exportValidators,\n schema,\n validateInitially,\n validateUnchanged,\n continuousValidation,\n transformIn = (value: Value) => value,\n transformOut = (value: Value) => value,\n toInput = (value: Value) => value,\n fromInput = (value: Value) => value,\n toEvent = (value: Value) => value,\n transformValue = (value: Value) => value,\n provideAdditionalArgs = (\n value: Value,\n additionalArgs: AdditionalEventArgs\n ) => additionalArgs,\n fromExternal = (value: Value) => value,\n validateRequired = (value, { emptyValue, required, error }) => {\n const res =\n required &&\n ((value as unknown) === emptyValue ||\n (typeof emptyValue === 'undefined' && value === ''))\n ? error\n : undefined\n\n return res\n },\n } = props\n\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n const isInternalRerenderRef = useRef(undefined)\n useMemo(() => {\n /**\n * This is currently not used, but we keep it here for future use.\n * It lets you check for isInternalRerenderRef.current !== undefined\n * inside a useUpdateEffect or useEffect to know if the component is rerendering from inside or outside.\n */\n isInternalRerenderRef.current = salt\n }, [salt])\n const { startProcess } = useProcessManager()\n const id = useId(props.id)\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const iterateItemContext = useContext(IterateElementContext)\n const sectionContext = useContext(SectionContext)\n const fieldBoundaryContext = useContext(FieldBoundaryContext)\n const wizardContext = useContext(WizardContext)\n const { isVisible } = useContext(VisibilityContext) || {}\n\n const translation = useTranslation()\n\n const transformers = useRef({\n transformIn,\n transformOut,\n provideAdditionalArgs,\n toInput,\n fromInput,\n toEvent,\n fromExternal,\n transformValue,\n validateRequired,\n })\n\n const {\n handlePathChangeUnvalidated: handlePathChangeUnvalidatedDataContext,\n handlePathChange: handlePathChangeDataContext,\n updateDataValue: updateDataValueDataContext,\n validateData: validateDataDataContext,\n setFieldState: setFieldStateDataContext,\n setFieldError: setFieldErrorDataContext,\n setFieldProps: setFieldPropsDataContext,\n setFieldConnection: setFieldConnectionDataContext,\n setVisibleError: setVisibleErrorDataContext,\n setMountedFieldState: setMountedFieldStateDataContext,\n setFieldEventListener,\n errors: dataContextErrors,\n showAllErrors,\n contextErrorMessages,\n } = dataContext || {}\n const onChangeContext = dataContext?.props?.onChange\n\n const disabled = disabledProp ?? props.readOnly\n const inFieldBlock = Boolean(fieldBlockContext)\n const {\n setFieldState: setFieldStateFieldBlock,\n showFieldError: showFieldErrorFieldBlock,\n mountedFieldsRef: mountedFieldsRefFieldBlock,\n } = fieldBlockContext || {}\n const { handleChange: handleChangeIterateContext } =\n iterateItemContext || {}\n const { path: sectionPath, errorPrioritization } = sectionContext || {}\n const {\n setFieldError: setFieldErrorBoundary,\n setVisibleError: setVisibleErrorBoundary,\n showBoundaryErrors,\n } = fieldBoundaryContext || {}\n\n const hasPath = Boolean(pathProp)\n const { path, identifier, makeIteratePath } = usePath({\n id,\n path: pathProp,\n itemPath,\n })\n\n const defaultValueRef = useRef(defaultValue)\n useLayoutEffect(() => {\n // To support ReactStrict mode, we also need to add it from inside a useEffect\n defaultValueRef.current = defaultValue\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n const externalValue =\n useExternalValue<Value>({\n path,\n itemPath,\n value: valueProp,\n transformers,\n emptyValue,\n }) ?? defaultValueRef.current\n\n // Many variables are kept in refs to avoid triggering unnecessary update loops because updates using\n // useEffect depend on them (like the external `value`)\n\n // Hold an internal copy of the input value in case the input component is used uncontrolled,\n // and to handle errors in Eufemia on components that does not take updated callback functions into account.\n const valueRef = useRef<Value>(externalValue)\n const changedRef = useRef<boolean>()\n const hasFocusRef = useRef<boolean>()\n\n const required = useMemo(() => {\n if (typeof requiredProp !== 'undefined') {\n return requiredProp\n }\n\n const paths = identifier.split('/')\n if (paths.length > 0 && (schema || dataContext?.schema)) {\n const requiredList = [schema?.['required']]\n\n if (paths.length > 1) {\n const schema = dataContext.schema\n const schemaPath = paths.slice(0, -1).join('/properties/')\n const schemaPart = pointer.has(schema, schemaPath)\n ? pointer.get(schema, schemaPath)\n : schema\n\n requiredList.push(schemaPart?.['required'])\n }\n\n if (sectionPath) {\n paths.push(sectionPath.substring(1))\n }\n\n const collected = requiredList.flatMap((v) => v).filter(Boolean)\n if (\n paths\n .filter(Boolean)\n .some((p) => collected.some((c) => c.includes(p)))\n ) {\n return true\n }\n }\n }, [requiredProp, identifier, schema, dataContext.schema, sectionPath])\n\n // Error handling\n // - Should errors received through validation be shown initially. Assume that providing a direct prop to\n // the component means it is supposed to be shown initially.\n const revealErrorRef = useRef<boolean>(\n validateInitially ?? Boolean(errorProp)\n )\n // - Local errors are errors based on validation instructions received by\n const errorMethodRef = useRef<\n Partial<Record<PersistErrorStateMethod, Error | FormError>>\n >({})\n const localErrorRef = useRef<Error | FormError | undefined>()\n const hasLocalErrorRef = useRef(false)\n // - Context errors are from outer contexts, like validation for this field as part of the whole data set\n const dataContextError = useMemo(() => {\n return path ? dataContextErrors?.[identifier] : undefined\n }, [dataContextErrors, identifier, path])\n const contextErrorRef = useRef<Error | FormError | undefined>(\n dataContextError\n )\n\n const onChangeValidatorRef = useRef(validator)\n useUpdateEffect(() => {\n onChangeValidatorRef.current = validator\n }, [validator])\n const onBlurValidatorRef = useRef(onBlurValidator)\n useUpdateEffect(() => {\n onBlurValidatorRef.current = onBlurValidator\n }, [onBlurValidator])\n\n const schemaValidatorRef = useRef<ValidateFunction>(\n schema ? dataContext.ajvInstance?.compile(schema) : undefined\n )\n\n // Needs to be placed before \"prepareError\"\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 // - Async behavior\n const asyncBehaviorIsEnabled = useMemo(() => {\n return isAsync(onChange) || isAsync(onChangeContext)\n }, [onChangeContext, onChange])\n const validatedValue = useRef<Value>()\n const changeEventResultRef = useRef<EventStateObjectWithSuccess>(null)\n const asyncProcessRef = useRef<AsyncProcesses>(null)\n const defineAsyncProcess = useCallback((name: AsyncProcesses) => {\n asyncProcessRef.current = name\n }, [])\n\n // When both an async onChange and async validators are used,\n // we buffer the onChange calls to avoid race conditions.\n const asyncBufferRef = useRef<\n Record<AsyncProcesses, AsyncProcessesBuffer> | Record<string, unknown>\n >({})\n\n for (const key in asyncBufferRef.current) {\n const { resolve, validateProcesses } = (asyncBufferRef.current[key] ||\n {}) as AsyncProcessesBuffer\n if (validateProcesses?.() === false) {\n delete asyncBufferRef.current[key]\n if (typeof resolve === 'function') {\n window.requestAnimationFrame(resolve)\n }\n }\n }\n\n const eventPool = useRef({\n validator: null,\n onBlurValidator: null,\n onChangeContext: null,\n onChangeLocal: null,\n })\n\n const addToPool = useCallback(\n (name: keyof typeof eventPool.current, fn, runAsync) => {\n if (!eventPool.current[name]) {\n eventPool.current[name] = { fn, runAsync }\n }\n },\n []\n )\n\n const runPool = useCallback(async (cb = null) => {\n for (const key in eventPool.current) {\n if (!eventPool.current[key] || eventPool.current[key].pending) {\n continue\n }\n\n const { fn, runAsync } = eventPool.current[key] || {}\n if (fn) {\n eventPool.current[key].pending = true\n eventPool.current[key] = null\n\n if (runAsync) {\n await fn()\n } else {\n fn()\n }\n }\n }\n\n // use a callback in order to avoid any async/await,\n // because it will delay the execution of the following code\n cb?.()\n }, [])\n\n const fieldStateRef = useRef<SubmitStateWithValidating>()\n const setFieldState = useCallback(\n (state: SubmitStateWithValidating) => {\n fieldStateRef.current = state\n setFieldStateDataContext(identifier, resolveValidatingState(state))\n if (!validateInitially) {\n forceUpdate()\n }\n },\n [setFieldStateDataContext, identifier, validateInitially]\n )\n\n const revealError = useCallback(() => {\n // To support \"validateInitially={false}\" prop, we need to make sure that the error is not shown initially\n if (revealErrorRef.current === false && validateInitially === false) {\n revealErrorRef.current = undefined\n return // stop here\n }\n\n if (!revealErrorRef.current) {\n revealErrorRef.current = true\n showFieldErrorFieldBlock?.(identifier, true)\n setVisibleErrorBoundary?.(identifier, !!localErrorRef.current)\n setVisibleErrorDataContext?.(identifier, !!localErrorRef.current)\n }\n }, [\n identifier,\n setVisibleErrorDataContext,\n setVisibleErrorBoundary,\n showFieldErrorFieldBlock,\n validateInitially,\n ])\n\n const hideError = useCallback(() => {\n if (revealErrorRef.current) {\n revealErrorRef.current = undefined\n showFieldErrorFieldBlock?.(identifier, false)\n setVisibleErrorBoundary?.(identifier, false)\n setVisibleErrorDataContext?.(identifier, false)\n }\n }, [\n identifier,\n setVisibleErrorBoundary,\n setVisibleErrorDataContext,\n showFieldErrorFieldBlock,\n ])\n\n /**\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 messageHasValues = Object.entries(\n error.messageValues || {}\n ).reduce((message, [key, value]) => {\n return message.replace(`{${key}}`, value)\n }, message)\n\n error.message = messageHasValues\n\n return error\n }\n\n return error\n },\n []\n )\n\n contextErrorRef.current = useMemo(() => {\n if (!dataContextError) {\n return undefined\n }\n const error = prepareError(dataContextError)\n if (errorChanged(error, contextErrorRef.current)) {\n return error\n }\n }, [dataContextError, prepareError])\n\n const error =\n revealErrorRef.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 connectWithPathListenerRef = useRef(async () => {\n if (\n localErrorRef.current ||\n validateUnchanged ||\n continuousValidation\n ) {\n if (onChangeValidatorRef.current) {\n runOnChangeValidator()\n }\n }\n\n if (localErrorRef.current && onBlurValidatorRef.current) {\n runOnBlurValidator()\n }\n })\n\n const { getValueByPath } = useDataValue()\n const exportValidatorsRef = useRef(exportValidators)\n exportValidatorsRef.current = exportValidators\n const additionalArgs = useMemo(() => {\n const errorMessages = {\n ...contextErrorMessages,\n ...errorMessagesRef.current,\n }\n const args: ValidatorAdditionalArgs<Value> = {\n /** @deprecated – can be removed in v11 */\n ...errorMessages,\n\n errorMessages,\n validators: exportValidatorsRef.current,\n connectWithPath: (path) => {\n setFieldEventListener?.(\n path,\n 'onPathChange',\n connectWithPathListenerRef.current\n )\n\n return {\n getValue: () => getValueByPath(path),\n }\n },\n }\n\n return args\n }, [contextErrorMessages, getValueByPath, setFieldEventListener])\n const extendWithExportedValidators = useCallback(\n (\n validator: Validator<Value>,\n result: ReturnType<Validator<Value>>\n ) => {\n if (\n exportValidatorsRef.current &&\n !result &&\n (validator === onChangeValidatorRef.current ||\n validator === onBlurValidatorRef.current)\n ) {\n return Object.values(exportValidatorsRef.current)\n }\n\n return result\n },\n []\n )\n\n const callStackRef = useRef<Array<Validator<Value>>>([])\n const hasBeenCalledRef = useCallback((validator: Validator<Value>) => {\n const result = callStackRef.current.includes(validator)\n callStackRef.current.push(validator)\n return result\n }, [])\n\n const callValidatorFnSync = useCallback(\n (\n validator: Validator<Value>,\n value: Value = valueRef.current\n ): ReturnType<Validator<Value>> => {\n if (typeof validator !== 'function') {\n return // stop here\n }\n\n const result = extendWithExportedValidators(\n validator,\n validator(value, additionalArgs)\n )\n\n if (Array.isArray(result)) {\n for (const validator of result) {\n if (!hasBeenCalledRef(validator)) {\n const result = callValidatorFnSync(validator, value)\n if (result instanceof Error) {\n return result\n }\n }\n }\n\n callStackRef.current = []\n } else {\n return result\n }\n },\n [additionalArgs, extendWithExportedValidators, hasBeenCalledRef]\n )\n\n const callValidatorFnAsync = useCallback(\n async (\n validator: Validator<Value>,\n value: Value = valueRef.current\n ): Promise<ReturnType<Validator<Value>>> => {\n if (typeof validator !== 'function') {\n return\n }\n\n const result = extendWithExportedValidators(\n validator,\n await validator(value, additionalArgs)\n )\n\n if (Array.isArray(result)) {\n for (const validator of result) {\n if (!hasBeenCalledRef(validator)) {\n const result = await callValidatorFnAsync(validator, value)\n if (result instanceof Error) {\n return result\n }\n }\n }\n\n callStackRef.current = []\n } else {\n return result\n }\n },\n [additionalArgs, extendWithExportedValidators, hasBeenCalledRef]\n )\n\n /**\n * Based on validation, update error state, locally and relevant surrounding contexts\n */\n const stateId = useId()\n const persistErrorState = useCallback(\n (\n method: PersistErrorStateMethod,\n 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 setFieldErrorBoundary?.(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 setFieldErrorBoundary,\n setFieldStateDataContext,\n setFieldStateFieldBlock,\n stateId,\n inFieldBlock,\n validateInitially,\n ]\n )\n\n const clearErrorState = useCallback(() => {\n persistErrorState('wipe')\n hasLocalErrorRef.current = false\n }, [persistErrorState])\n\n const removeError = useCallback(() => {\n changedRef.current = false\n hideError()\n clearErrorState()\n }, [clearErrorState, hideError])\n\n const validatorCacheRef = useRef({\n onChangeValidator: null,\n onBlurValidator: null,\n })\n\n const revealOnChangeValidatorResult = useCallback(\n ({ result, unchangedValue }) => {\n const runAsync = isAsync(onChangeValidatorRef.current)\n\n // Don't show the error if the value has changed in the meantime\n if (unchangedValue) {\n persistErrorState('gracefully', result as Error)\n\n if (\n (validateInitially && !changedRef.current) ||\n validateUnchanged ||\n continuousValidation ||\n runAsync // Because its a better UX to show the error when the validation is async/delayed\n ) {\n // Because we first need to throw the error to be able to display it, we delay the showError call\n window.requestAnimationFrame(() => {\n revealError()\n forceUpdate()\n })\n }\n }\n\n if (runAsync) {\n defineAsyncProcess(undefined)\n\n if (unchangedValue) {\n setFieldState(result instanceof Error ? 'error' : 'complete')\n } else {\n setFieldState('pending')\n }\n }\n },\n [\n continuousValidation,\n defineAsyncProcess,\n persistErrorState,\n revealError,\n setFieldState,\n validateInitially,\n validateUnchanged,\n ]\n )\n\n const callOnChangeValidator = useCallback(async () => {\n if (typeof onChangeValidatorRef.current !== 'function') {\n return {}\n }\n\n const tmpValue = valueRef.current\n\n let result = isAsync(onChangeValidatorRef.current)\n ? await callValidatorFnAsync(onChangeValidatorRef.current)\n : callValidatorFnSync(onChangeValidatorRef.current)\n if (result instanceof Promise) {\n result = await result\n }\n\n const unchangedValue = tmpValue === valueRef.current\n return { result, unchangedValue }\n }, [callValidatorFnAsync, callValidatorFnSync])\n\n const startOnChangeValidatorValidation = useCallback(async () => {\n if (typeof onChangeValidatorRef.current !== 'function') {\n return\n }\n\n if (isAsync(onChangeValidatorRef.current)) {\n defineAsyncProcess('validator')\n setFieldState('validating')\n hideError()\n }\n\n // Ideally, we should rather call \"callOnChangeValidator\", but sadly it's not possible,\n // because we get an additional delay due to the async nature, which is too much.\n // So when a submit button is pressed, and there is a sync validator, it needs to be validated without a delay.\n const tmpValue = valueRef.current\n let result = isAsync(onChangeValidatorRef.current)\n ? await callValidatorFnAsync(onChangeValidatorRef.current)\n : callValidatorFnSync(onChangeValidatorRef.current)\n if (result instanceof Promise) {\n result = await result\n }\n const unchangedValue = tmpValue === valueRef.current\n\n revealOnChangeValidatorResult({ result, unchangedValue })\n\n return { result }\n }, [\n callValidatorFnAsync,\n callValidatorFnSync,\n defineAsyncProcess,\n hideError,\n revealOnChangeValidatorResult,\n setFieldState,\n ])\n\n const runOnChangeValidator = useCallback(async () => {\n if (!onChangeValidatorRef.current) {\n return // stop here\n }\n\n const { result, unchangedValue } = await callOnChangeValidator()\n\n if (\n String(result) !==\n String(validatorCacheRef.current.onChangeValidator)\n ) {\n if (result) {\n revealOnChangeValidatorResult({ result, unchangedValue })\n } else {\n hideError()\n clearErrorState()\n }\n }\n\n validatorCacheRef.current.onChangeValidator = result || null\n }, [\n callOnChangeValidator,\n clearErrorState,\n hideError,\n revealOnChangeValidatorResult,\n ])\n\n const callOnBlurValidator = useCallback(\n async ({\n overrideValue = null,\n }: {\n overrideValue?: Value\n } = {}) => {\n if (typeof onBlurValidatorRef.current !== 'function') {\n return {}\n }\n\n const value = transformers.current.toEvent(\n overrideValue ?? valueRef.current,\n 'onBlurValidator'\n )\n\n // Since the validator can return either a synchronous result or an asynchronous.\n let result = isAsync(onBlurValidatorRef.current)\n ? await callValidatorFnAsync(onBlurValidatorRef.current, value)\n : callValidatorFnSync(onBlurValidatorRef.current, value)\n if (result instanceof Promise) {\n result = await result\n }\n\n return { result }\n },\n [callValidatorFnAsync, callValidatorFnSync]\n )\n\n const revealOnBlurValidatorResult = useCallback(\n ({ result }) => {\n persistErrorState('gracefully', result as Error)\n\n if (isAsync(onBlurValidatorRef.current)) {\n defineAsyncProcess(undefined)\n setFieldState(result instanceof Error ? 'error' : 'complete')\n }\n\n revealError()\n },\n [defineAsyncProcess, persistErrorState, revealError, setFieldState]\n )\n\n const startOnBlurValidatorProcess = useCallback(\n async ({\n overrideValue = null,\n }: {\n overrideValue?: Value\n } = {}) => {\n if (typeof onBlurValidatorRef.current !== 'function') {\n return\n }\n\n if (isAsync(onBlurValidatorRef.current)) {\n defineAsyncProcess('onBlurValidator')\n setFieldState('validating')\n }\n\n const value = transformers.current.toEvent(\n overrideValue ?? valueRef.current,\n 'onBlurValidator'\n )\n\n // Since the validator can return either a synchronous result or an asynchronous.\n // Ideally, we should rather call \"callOnBlurValidator\", but sadly it's not possible,\n // because we get an additional delay due to the async nature, which is too much.\n // So when a submit button is pressed, and there is a sync validator, it needs to be validated without a delay.\n let result = isAsync(onBlurValidatorRef.current)\n ? await callValidatorFnAsync(onBlurValidatorRef.current, value)\n : callValidatorFnSync(onBlurValidatorRef.current, value)\n if (result instanceof Promise) {\n result = await result\n }\n\n revealOnBlurValidatorResult({ result })\n },\n [\n callValidatorFnAsync,\n callValidatorFnSync,\n defineAsyncProcess,\n revealOnBlurValidatorResult,\n setFieldState,\n ]\n )\n\n const runOnBlurValidator = useCallback(async () => {\n if (!onBlurValidatorRef.current) {\n return // stop here\n }\n\n const { result } = await callOnBlurValidator()\n\n if (\n String(result) !==\n String(validatorCacheRef.current.onBlurValidator) &&\n revealErrorRef.current\n ) {\n if (result) {\n revealOnBlurValidatorResult({ result })\n } else {\n hideError()\n clearErrorState()\n }\n }\n\n validatorCacheRef.current.onBlurValidator = result || null\n }, [\n callOnBlurValidator,\n clearErrorState,\n hideError,\n revealOnBlurValidatorResult,\n ])\n\n const prioritizeContextSchema = useMemo(() => {\n if (errorPrioritization) {\n const schemaPath = identifier.split('/').join('/properties/')\n const hasContextSchema = pointer.has(\n dataContext?.schema || {},\n schemaPath\n )\n return (\n hasContextSchema &&\n errorPrioritization?.indexOf('contextSchema') === 0\n )\n }\n }, [dataContext?.schema, errorPrioritization, identifier])\n\n /**\n * Validate the current state value by provided validator instructions\n */\n const validateValue = useCallback(async () => {\n const isProcessActive = startProcess()\n\n if (disabled) {\n if (isProcessActive()) {\n clearErrorState()\n }\n hideError()\n setFieldState(undefined)\n return // stop here\n }\n\n const value = valueRef.current\n changeEventResultRef.current = null\n validatedValue.current = null\n\n try {\n const requiredError = transformers.current.validateRequired(value, {\n emptyValue,\n required: requiredProp ?? 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 !prioritizeContextSchema\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 onChangeValidatorRef.current &&\n (changedRef.current || validateInitially || validateUnchanged)\n ) {\n const { result } = await startOnChangeValidatorValidation()\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 hasLocalErrorRef.current = true\n persistErrorState('weak', error as Error)\n }\n }\n }, [\n startProcess,\n disabled,\n hideError,\n setFieldState,\n clearErrorState,\n emptyValue,\n requiredProp,\n required,\n prioritizeContextSchema,\n validateInitially,\n validateUnchanged,\n startOnChangeValidatorValidation,\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 revealError()\n } else {\n // When changing the value, hide errors to avoid annoying the user before they are finished filling in that value\n hideError()\n }\n }, [continuousValidation, hideError, revealError])\n\n const getEventArgs = useCallback(\n ({\n eventName,\n additionalArgs,\n overrideValue = undefined,\n }): [Value] | [Value, AdditionalEventArgs] => {\n const value = transformers.current.toEvent(\n overrideValue ?? valueRef.current,\n eventName\n )\n const args = transformers.current.provideAdditionalArgs(\n value,\n additionalArgs\n )\n\n if (typeof args !== 'undefined') {\n return [value, args]\n }\n\n return [value]\n },\n []\n )\n\n const setHasFocus = useCallback(\n async (\n hasFocus: boolean,\n overrideValue?: Value,\n additionalArgs?: AdditionalEventArgs\n ) => {\n const args = getEventArgs({\n eventName: hasFocus ? 'onFocus' : 'onBlur',\n overrideValue,\n additionalArgs,\n })\n\n if (hasFocus) {\n // Field was put in focus (like when clicking in a text field or opening a dropdown menu)\n hasFocusRef.current = true\n onFocus?.apply(this, args)\n } else {\n // Field was removed from focus (like when tabbing out of a text field or closing a dropdown menu)\n hasFocusRef.current = false\n onBlur?.apply(this, args)\n\n if (!changedRef.current && !validateUnchanged) {\n // Avoid showing errors when blurring without having changed the value, so tabbing through several\n // fields does not make errors pop up all over the place\n return\n }\n\n addToPool(\n 'onBlurValidator',\n async () => await startOnBlurValidatorProcess({ overrideValue }),\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool(() => {\n // Since the user left the field, show error (if any)\n revealError()\n forceUpdate()\n })\n }\n },\n [\n getEventArgs,\n onFocus,\n onBlur,\n validateUnchanged,\n addToPool,\n runPool,\n startOnBlurValidatorProcess,\n revealError,\n ]\n )\n\n // Await an async operation to run after criteria are fulfilled\n const yieldAsyncProcess = useCallback(\n async ({\n name,\n waitFor,\n }: {\n name: 'onChangeLocal' | 'onChangeContext' | 'onSubmitContext'\n waitFor: Array<{\n processName?: AsyncProcesses\n withStates: Array<SubmitStateWithValidating>\n hasValue?: Value\n }>\n }) => {\n return new Promise<void>((resolve) => {\n const validateProcesses = () => {\n const result = waitFor.some(\n ({ processName, withStates, hasValue }) => {\n const hasMatchingValue =\n // If the value has changed during the async process, we don't want to resolve anymore\n hasValue === validatedValue.current\n\n const result =\n (typeof hasValue === 'undefined'\n ? false\n : !hasMatchingValue) ||\n ((processName\n ? processName === asyncProcessRef.current\n : true) &&\n withStates?.some((state) => {\n return state === fieldStateRef.current\n }))\n\n return result\n }\n )\n\n return result\n }\n\n if (validateProcesses() === true) {\n asyncBufferRef.current[name] = { resolve, validateProcesses }\n } else {\n resolve()\n setFieldState('pending')\n }\n })\n },\n [setFieldState]\n )\n\n const handleChangeEventResult = useCallback(async () => {\n const result: EventStateObjectWithSuccess =\n changeEventResultRef.current\n\n if (typeof result?.error !== 'undefined') {\n if (result?.error === null) {\n removeError()\n } else {\n persistErrorState('gracefully', result.error)\n revealError()\n }\n }\n if (typeof result?.warning !== 'undefined') {\n warningRef.current = result.warning\n }\n if (typeof result?.info !== 'undefined') {\n infoRef.current = result.info\n }\n\n if (asyncBehaviorIsEnabled) {\n await yieldAsyncProcess({\n name: 'onSubmitContext',\n waitFor: [{ withStates: ['validating'] }],\n })\n }\n\n defineAsyncProcess(undefined)\n\n if (result?.success === 'saved') {\n setFieldState('success')\n } else if (result?.error) {\n setFieldState('error')\n } else if (asyncBehaviorIsEnabled) {\n setFieldState('complete')\n }\n\n forceUpdate()\n }, [\n asyncBehaviorIsEnabled,\n defineAsyncProcess,\n removeError,\n persistErrorState,\n revealError,\n yieldAsyncProcess,\n setFieldState,\n ])\n\n const setEventResult = useCallback(\n async (result: EventReturnWithStateObjectAndSuccess) => {\n if (result instanceof Error) {\n result = { error: result }\n }\n changeEventResultRef.current = {\n ...changeEventResultRef.current,\n ...result,\n } as EventStateObjectWithSuccess\n\n await handleChangeEventResult()\n },\n [handleChangeEventResult]\n )\n\n const callOnChangeContext = useCallback(async () => {\n if (asyncBehaviorIsEnabled && !executeOnChangeRegardlessOfError) {\n await yieldAsyncProcess({\n name: 'onChangeContext',\n waitFor: [\n {\n processName: 'validator',\n withStates: ['validating', 'error'],\n hasValue: valueRef.current,\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n hasValue: valueRef.current,\n },\n ],\n })\n }\n\n if (hasPath) {\n if (isAsync(onChangeContext)) {\n defineAsyncProcess('onChangeContext')\n\n // Skip sync errors, such as required\n if (!hasError() || executeOnChangeRegardlessOfError) {\n await setEventResult(\n (await handlePathChangeDataContext?.(\n identifier\n )) as EventReturnWithStateObjectAndSuccess\n )\n } else {\n await setEventResult(null)\n }\n } else {\n setEventResult(\n handlePathChangeDataContext?.(\n identifier\n ) as EventReturnWithStateObjectAndSuccess\n )\n }\n }\n\n forceUpdate()\n }, [\n asyncBehaviorIsEnabled,\n executeOnChangeRegardlessOfError,\n hasPath,\n yieldAsyncProcess,\n onChangeContext,\n defineAsyncProcess,\n hasError,\n setEventResult,\n handlePathChangeDataContext,\n identifier,\n ])\n\n const updateValue = useCallback(\n async (newValue: Value) => {\n 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 if (hasPath) {\n handlePathChangeUnvalidatedDataContext(identifier, newValue)\n }\n\n addToPool(\n 'validator',\n validateValue,\n isAsync(onChangeValidatorRef.current)\n )\n\n addToPool(\n 'onChangeContext',\n callOnChangeContext,\n isAsync(onChangeContext)\n )\n\n await runPool(() => {\n handleError()\n })\n },\n [\n hasPath,\n addToPool,\n validateValue,\n callOnChangeContext,\n onChangeContext,\n runPool,\n handlePathChangeUnvalidatedDataContext,\n identifier,\n handleError,\n ]\n )\n\n const setChanged = (state: boolean) => {\n changedRef.current = state\n }\n\n const handleChange = useCallback(\n async (\n argFromInput: Value | unknown,\n additionalArgs: AdditionalEventArgs = undefined\n ) => {\n const currentValue = valueRef.current\n const fromInput = transformers.current.fromInput(argFromInput)\n\n if (fromInput === currentValue) {\n // Avoid triggering a change if the value was not actually changed. This may be caused by rendering components\n // calling onChange even if the actual value did not change.\n return\n }\n\n const transformedValue = transformers.current.transformOut(\n transformers.current.transformValue(fromInput, currentValue),\n transformers.current.provideAdditionalArgs(\n fromInput,\n additionalArgs\n )\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 handleChangeIterateContext?.(\n makeIteratePath(itemPath, ''),\n transformedValue\n )\n }\n\n if (asyncBehaviorIsEnabled) {\n hideError()\n await updateValue(transformedValue)\n } else {\n updateValue(transformedValue)\n }\n\n if (isAsync(onChange)) {\n addToPool(\n 'onChangeLocal',\n async () => {\n const args = getEventArgs({\n eventName: 'onChange',\n additionalArgs,\n })\n\n await yieldAsyncProcess({\n name: 'onChangeLocal',\n waitFor: [\n {\n processName: 'validator',\n withStates: ['validating', 'error'],\n hasValue: args[0],\n },\n {\n processName: 'onBlurValidator',\n withStates: ['validating', 'error'],\n hasValue: args[0],\n },\n {\n processName: 'onChangeContext',\n withStates: ['pending', 'error'],\n hasValue: args[0],\n },\n ],\n })\n\n defineAsyncProcess('onChangeLocal')\n\n // Skip sync errors, such as required\n if (!hasError()) {\n // If the value has changed during the async process, we don't want to call the onChange anymore\n await setEventResult(await onChange?.apply(this, args))\n } else {\n await setEventResult(null)\n }\n },\n true\n )\n } else {\n const args = getEventArgs({\n eventName: 'onChange',\n additionalArgs,\n })\n setEventResult(onChange?.apply(this, args))\n }\n\n await runPool()\n },\n [\n itemPath,\n asyncBehaviorIsEnabled,\n onChange,\n runPool,\n handleChangeIterateContext,\n makeIteratePath,\n hideError,\n updateValue,\n addToPool,\n getEventArgs,\n yieldAsyncProcess,\n defineAsyncProcess,\n hasError,\n setEventResult,\n ]\n )\n\n const handleFocus = useCallback(() => setHasFocus(true), [setHasFocus])\n const handleBlur = useCallback(() => setHasFocus(false), [setHasFocus])\n\n // Put props into the surrounding data context as early as possible\n setFieldPropsDataContext?.(identifier, props)\n\n const { activeIndex, activeIndexRef } = wizardContext || {}\n const activeIndexTmpRef = useRef(activeIndex)\n useEffect(() => {\n activeIndexTmpRef.current = activeIndex\n }, [activeIndex]) // We want to watch for step changes\n\n useMemo(() => {\n setMountedFieldStateDataContext(identifier, {\n isPreMounted: true,\n })\n\n if (typeof isVisible === 'boolean') {\n setMountedFieldStateDataContext(identifier, { isVisible })\n }\n }, [setMountedFieldStateDataContext, identifier, isVisible])\n\n useEffect(() => {\n if (typeof activeIndexRef?.current === 'number') {\n setMountedFieldStateDataContext(identifier, {\n wasStepChange: false,\n })\n\n return () => {\n const wasStepChange =\n typeof activeIndex === 'number' &&\n // eslint-disable-next-line react-hooks/exhaustive-deps\n activeIndexRef.current !== activeIndexTmpRef.current\n\n setMountedFieldStateDataContext(identifier, {\n wasStepChange,\n })\n }\n }\n }, [\n activeIndex,\n activeIndexRef,\n identifier,\n setMountedFieldStateDataContext,\n ])\n\n useEffect(() => {\n // Mount procedure.\n setMountedFieldStateDataContext(identifier, {\n isMounted: true,\n isPreMounted: true,\n })\n\n // Unmount procedure.\n return () => {\n setMountedFieldStateDataContext(identifier, {\n isMounted: false,\n isPreMounted: false,\n })\n }\n }, [identifier, setMountedFieldStateDataContext])\n\n useEffect(() => {\n return () => {\n setFieldErrorDataContext?.(identifier, undefined)\n setFieldErrorBoundary?.(identifier, undefined)\n localErrorRef.current = undefined\n }\n }, [\n identifier,\n setFieldErrorBoundary,\n setFieldErrorDataContext,\n setMountedFieldStateDataContext,\n ])\n\n useEffect(() => {\n validateValue()\n }, [validateValue])\n\n useUpdateEffect(() => {\n schemaValidatorRef.current = schema\n ? dataContext.ajvInstance?.compile(schema)\n : undefined\n validateValue()\n }, [schema, validateValue])\n\n // Use \"useLayoutEffect\" and \"externalValueDidChangeRef\"\n // to cooperate with the the data context \"updateDataValueDataContext\" routine further down,\n // which also uses useLayoutEffect.\n const externalValueDidChangeRef = useRef(false)\n useLayoutEffect(() => {\n if (valueRef.current !== externalValue) {\n valueRef.current = externalValue\n externalValueDidChangeRef.current = true\n }\n }, [externalValue])\n\n useEffect(() => {\n // Error or removed error for this field from the surrounding data context (by path)\n if (externalValueDidChangeRef.current) {\n externalValueDidChangeRef.current = false\n validateValue()\n forceUpdate()\n }\n }, [externalValue, validateValue]) // Keep \"externalValue\" in the dependency list, so it will be updated when it changes\n\n useEffect(() => {\n // Check against the local error state,\n // so we prioritize the local error state over the context error state\n if (!hasLocalErrorRef.current) {\n const error = prepareError(dataContextError)\n if (error) {\n persistErrorState('weak', error)\n if (validateInitially) {\n handleError()\n }\n } else {\n clearErrorState()\n }\n }\n }, [\n clearErrorState,\n dataContextError,\n handleError,\n persistErrorState,\n prepareError,\n validateInitially,\n ])\n\n useEffect(() => {\n if (itemPath && valueProp !== undefined) {\n warn(\n `Using value=\"${valueProp}\" prop inside Iterate is not supported yet`\n )\n }\n if (itemPath && defaultValue !== undefined) {\n warn(\n `Using defaultValue=\"${defaultValue}\" prop inside Iterate is not supported yet`\n )\n }\n }, [defaultValue, itemPath, valueProp])\n\n // Use \"useLayoutEffect\" to avoid flickering when value/defaultValue gets set, and other fields dependent on it.\n // Form.Visibility is an example of a logic, where a field value/defaultValue can be used to set the set state of a path,\n // where again other fields depend on it.\n const tmpTransValueRef = useRef<Record<Identifier, unknown>>({})\n const setContextData = useCallback(() => {\n if (!hasPath) {\n return // stop here\n }\n\n let valueToStore = valueProp\n\n const data = wizardContext?.prerenderFieldProps\n ? dataContext.data\n : dataContext.internalDataRef?.current\n\n // First, look for existing data in the context\n const hasValue = pointer.has(data, identifier) || identifier === '/'\n const existingValue =\n identifier === '/'\n ? data\n : hasValue\n ? pointer.get(data, identifier)\n : undefined\n\n // If no data where found in the dataContext, look for shared data\n if (\n dataContext.id &&\n !hasValue &&\n typeof existingValue === 'undefined' &&\n typeof valueToStore === 'undefined'\n ) {\n const sharedState = createSharedState(dataContext.id)\n const hasValue = pointer.has(sharedState.data, identifier)\n if (hasValue) {\n const sharedValue = pointer.get(sharedState.data, identifier)\n if (sharedValue) {\n valueToStore = sharedValue as Value\n }\n }\n }\n\n const hasDefaultValue =\n typeof defaultValueRef.current !== 'undefined' &&\n typeof valueToStore === 'undefined'\n\n if (hasDefaultValue) {\n valueToStore = defaultValueRef.current\n defaultValueRef.current = undefined\n }\n\n // Used by e.g. Iterate.Array\n if (updateContextDataInSync) {\n // When an array is given (iterate), we don't want to overwrite the existing array\n if (hasDefaultValue && hasValue) {\n return // stop here, we don't want to overwrite the existing array\n }\n\n // React.StrictMode will come with \"undefined\" on the second render,\n // because \"defaultValueRef.current\" was removed.\n // But because we run \"useMemo\" on the first render when updateContextDataInSync is true,\n // we have still a valid value/array.\n if (!Array.isArray(valueToStore)) {\n return // stop here, never use a non-array value when in \"updateContextDataInSync\"\n }\n }\n\n if (\n hasValue &&\n (valueToStore === existingValue ||\n // Prevents an infinite loop by skipping the update if the value hasn't changed\n valueRef.current === existingValue)\n ) {\n return // stop here, we don't want to set same value twice\n }\n\n if (\n identifier in tmpTransValueRef.current &&\n tmpTransValueRef.current[identifier] === valueToStore\n ) {\n return // stop here, avoid infinite loop\n }\n\n const transformedValue = transformers.current.transformOut(\n valueToStore,\n transformers.current.provideAdditionalArgs(valueToStore)\n )\n if (transformedValue !== valueToStore) {\n // When the value got transformed, we want to update the internal value, and avoid an infinite loop\n tmpTransValueRef.current[identifier] = valueToStore\n valueToStore = transformedValue\n }\n\n // When an itemPath is given, we don't want to rerender the context on every iteration because of performance reasons.\n // We know when the last item is reached, so we can prevent rerenders during the iteration.\n const preventUpdate = updateContextDataInSync\n\n // Update the data context when a pointer not exists,\n // but was given initially.\n updateDataValueDataContext?.(identifier, valueToStore, {\n preventUpdate,\n })\n\n if (!preventUpdate) {\n validateDataDataContext?.()\n }\n }, [\n dataContext.data,\n dataContext.id,\n dataContext.internalDataRef,\n hasPath,\n identifier,\n updateContextDataInSync,\n updateDataValueDataContext,\n validateDataDataContext,\n valueProp,\n wizardContext?.prerenderFieldProps,\n ])\n\n const isEmptyData = useCallback(\n () => {\n return (\n dataContext.internalDataRef?.current ===\n (dataContext.props?.emptyData ?? clearedData)\n )\n },\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n dataContext.internalDataRef,\n dataContext.props?.emptyData,\n externalValue, // ensure to include \"externalValue\" in order to properly remove errors\n ]\n )\n\n // Use \"useLayoutEffect\" to be in sync with the data context \"updateDataValueDataContext\".\n useLayoutEffect(() => {\n if (isEmptyData()) {\n defaultValueRef.current = defaultValue\n changedRef.current = false\n hideError()\n clearErrorState()\n }\n }, [clearErrorState, defaultValue, hideError, isEmptyData])\n\n useMemo(() => {\n if (updateContextDataInSync && !isEmptyData()) {\n setContextData()\n }\n }, [isEmptyData, updateContextDataInSync, setContextData])\n\n useLayoutEffect(() => {\n if (!updateContextDataInSync && !isEmptyData()) {\n setContextData()\n }\n }, [isEmptyData, updateContextDataInSync, setContextData])\n\n useEffect(() => {\n if (isEmptyData()) {\n // Fill the data context with the default value after it has been cleared\n requestAnimationFrame(() => {\n setContextData()\n validateValue()\n })\n }\n }, [isEmptyData, setContextData, validateValue])\n\n useEffect(() => {\n if (showAllErrors || showBoundaryErrors) {\n // In case of async validation, we don't want to show existing errors before the validation has been completed\n if (fieldStateRef.current !== 'validating') {\n // If showError on a surrounding data context was changed and set to true, it is because the user clicked next, submit or\n // something else that should lead to showing the user all errors.\n revealError()\n }\n } else if (showBoundaryErrors === false) {\n hideError()\n }\n }, [hideError, revealError, showAllErrors, showBoundaryErrors])\n\n useEffect(() => {\n if (\n dataContext.formState === 'pending' &&\n (onChangeValidatorRef.current || onBlurValidatorRef.current)\n ) {\n hideError()\n forceUpdate()\n }\n }, [dataContext.formState, hideError])\n\n const onSubmitHandler = useCallback(async () => {\n if (hasError()) {\n return // stop here\n }\n\n addToPool(\n 'validator',\n startOnChangeValidatorValidation,\n isAsync(onChangeValidatorRef.current)\n )\n\n addToPool(\n 'onBlurValidator',\n startOnBlurValidatorProcess,\n isAsync(onBlurValidatorRef.current)\n )\n\n await runPool()\n }, [\n addToPool,\n startOnBlurValidatorProcess,\n hasError,\n runPool,\n startOnChangeValidatorValidation,\n ])\n\n // Validate/call validator functions during submit of the form\n useEffect(() => {\n setFieldEventListener?.(identifier, 'onSubmit', onSubmitHandler)\n }, [identifier, onSubmitHandler, setFieldEventListener])\n\n // Set the error in the field block context if this field is inside a field block\n useEffect(() => {\n if (inFieldBlock) {\n setFieldStateFieldBlock?.({\n identifier,\n type: 'error',\n content: errorProp,\n showInitially: true,\n show: true,\n })\n setFieldStateFieldBlock?.({\n identifier,\n type: 'warning',\n content: warning,\n showInitially: true,\n show: true,\n })\n setFieldStateFieldBlock?.({\n identifier,\n type: 'info',\n content: info,\n showInitially: true,\n show: true,\n })\n\n return () => {\n // Unmount procedure\n if (mountedFieldsRefFieldBlock) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n mountedFieldsRefFieldBlock.current[identifier] = true\n }\n }\n }\n }, [\n errorProp,\n identifier,\n inFieldBlock,\n info,\n mountedFieldsRefFieldBlock,\n setFieldStateFieldBlock,\n warning,\n ])\n\n const infoRef = useRef<React.ReactNode>(info)\n const warningRef = useRef<React.ReactNode>(warning)\n useUpdateEffect(() => {\n infoRef.current = info\n warningRef.current = warning\n forceUpdate()\n }, [info, warning])\n\n const connections = useMemo(() => {\n return {\n setEventResult,\n }\n }, [setEventResult])\n setFieldConnectionDataContext?.(identifier, connections)\n\n // - Handle htmlAttributes\n const htmlAttributes = useMemo(() => {\n return Object.keys(props).reduce<AriaAttributes>(\n (acc, cur) => {\n if (cur.startsWith('aria-') || cur.startsWith('data-')) {\n acc[cur] = props[cur]\n }\n return acc\n },\n { ...props.htmlAttributes }\n )\n }, [props])\n\n if (error) {\n htmlAttributes['aria-invalid'] = error ? 'true' : 'false'\n }\n if (required) {\n htmlAttributes['aria-required'] = 'true'\n }\n if (inFieldBlock) {\n // Mount the field in the field block context\n if (mountedFieldsRefFieldBlock) {\n mountedFieldsRefFieldBlock.current[identifier] = true\n }\n\n // Check if there are any state IDs to be added to the aria-describedby attribute\n const stateIds = fieldBlockContext.fieldStateIdsRef?.current\n\n if (stateIds) {\n htmlAttributes['aria-describedby'] = combineDescribedBy(\n htmlAttributes,\n [\n error && stateIds.error,\n warning && stateIds.warning,\n info && stateIds.info,\n ].filter(Boolean)\n )\n }\n } else {\n const ids = [\n (error || errorProp) && `${id}-form-status--error`,\n warning && `${id}-form-status--warning`,\n info && `${id}-form-status--info`,\n ].filter(Boolean)\n\n if (ids.length) {\n htmlAttributes['aria-describedby'] = combineDescribedBy(\n htmlAttributes,\n ids\n )\n }\n }\n\n const fieldBlockProps = {\n /** Documented APIs */\n info: !inFieldBlock ? infoRef.current : undefined,\n warning: !inFieldBlock ? warningRef.current : undefined,\n error: !inFieldBlock ? error : undefined,\n required,\n labelSuffix: props.labelSuffix,\n\n /** HTML Attributes */\n disabled:\n onBlurValidator &&\n asyncProcessRef.current === 'onBlurValidator' &&\n fieldStateRef.current === 'validating'\n ? true\n : disabled,\n\n /** Internal */\n fieldState: resolveValidatingState(fieldStateRef.current),\n }\n\n const sharedData = useSharedState('field-block-props-' + id)\n sharedData.set(fieldBlockProps)\n\n useEffect(() => {\n isInternalRerenderRef.current = undefined\n })\n\n return {\n ...props,\n ...fieldBlockProps,\n\n /** HTML Attributes */\n name: props.name || props.path?.replace('/', '') || id,\n autoComplete:\n props.autoComplete ??\n (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: Boolean(changedRef.current),\n props,\n htmlAttributes,\n setHasFocus,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n setChanged,\n forceUpdate,\n\n /** Internal */\n dataContext,\n }\n}\n\nexport interface ReturnAdditional<Value> {\n /** Documented APIs */\n value: Value\n isChanged: boolean\n htmlAttributes: AriaAttributes | DataAttributes\n setHasFocus: (\n hasFocus: boolean,\n overrideValue?: Value,\n additionalArgs?: AdditionalEventArgs\n ) => void\n handleFocus: () => void\n handleBlur: () => void\n handleChange: (\n value: Value | unknown,\n additionalArgs?: AdditionalEventArgs\n ) => void\n setChanged: (state: boolean) => 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"],"mappings":"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"}
@@ -25,18 +25,18 @@ export default function usePath(props = {}) {
25
25
  throw new Error(`itemPath="${itemPathProp}" must start with a slash`);
26
26
  }
27
27
  const joinPath = useCallback(paths => {
28
- return paths.reduce((acc, cur) => cur ? `${acc}/${cur}` : acc, '/').replace(/\/{2,}/g, '/').replace(/\/+$/, '');
28
+ return cleanPath(paths.reduce((acc, cur) => cur ? `${acc}/${cur}` : acc, '/'));
29
29
  }, []);
30
30
  const makeSectionPath = useCallback(path => {
31
- return `${sectionPath && sectionPath !== '/' ? sectionPath : ''}${path}`.replace(/\/$/, '');
31
+ return cleanPath(`${sectionPath && sectionPath !== '/' ? sectionPath : ''}${path}`);
32
32
  }, [sectionPath]);
33
33
  const makeIteratePath = useCallback((itemPath = itemPathProp, iteratePath = iteratePathProp) => {
34
34
  let root = '';
35
35
  if (sectionPath) {
36
36
  root = makeSectionPath('');
37
37
  }
38
- return `${root}${iteratePath || ''}/${iterateElementIndex}${itemPath && itemPath !== '/' ? itemPath : ''}`;
39
- }, [iteratePathProp, sectionPath, iterateElementIndex, itemPathProp, makeSectionPath]);
38
+ return cleanPath(`${root}${iteratePath || ''}/${iterateElementIndex}${itemPath || ''}`);
39
+ }, [itemPathProp, iteratePathProp, sectionPath, iterateElementIndex, makeSectionPath]);
40
40
  const itemPath = useMemo(() => {
41
41
  if (itemPathProp) {
42
42
  return makeIteratePath();
@@ -65,4 +65,7 @@ export default function usePath(props = {}) {
65
65
  makeSectionPath
66
66
  };
67
67
  }
68
+ function cleanPath(path) {
69
+ return path.replace(/\/+$|\/(\/)+/g, '$1');
70
+ }
68
71
  //# sourceMappingURL=usePath.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePath.js","names":["useCallback","useContext","useMemo","useId","SectionContext","IterateElementContext","usePath","props","_useContext","_useContext2","path","pathProp","itemPath","itemPathProp","id","sectionPath","iteratePathProp","index","iterateElementIndex","startsWith","Error","joinPath","paths","reduce","acc","cur","replace","makeSectionPath","makeIteratePath","iteratePath","root","makePath","identifier"],"sources":["../../../../../src/extensions/forms/hooks/usePath.ts"],"sourcesContent":["import { useCallback, useContext, useMemo } from 'react'\nimport { Path } from '../types'\nimport useId from '../../../shared/helpers/useId'\nimport SectionContext from '../Form/Section/SectionContext'\nimport IterateElementContext from '../Iterate/IterateItemContext'\n\nexport type Props = {\n id?: string\n path?: Path\n itemPath?: Path\n}\n\nexport default function usePath(props: Props = {}) {\n const { path: pathProp, itemPath: itemPathProp } = props\n const id = useId(props.id)\n const { path: sectionPath } = useContext(SectionContext) ?? {}\n const { path: iteratePathProp, index: iterateElementIndex } =\n useContext(IterateElementContext) ?? {}\n\n if (pathProp && !pathProp.startsWith('/')) {\n throw new Error(`path=\"${pathProp}\" must start with a slash`)\n }\n if (itemPathProp && !itemPathProp.startsWith('/')) {\n throw new Error(`itemPath=\"${itemPathProp}\" must start with a slash`)\n }\n\n const joinPath = useCallback((paths: Array<Path>) => {\n return paths\n .reduce((acc, cur) => (cur ? `${acc}/${cur}` : acc), '/')\n .replace(/\\/{2,}/g, '/')\n .replace(/\\/+$/, '')\n }, [])\n\n const makeSectionPath = useCallback(\n (path: Path) => {\n return `${\n sectionPath && sectionPath !== '/' ? sectionPath : ''\n }${path}`.replace(/\\/$/, '')\n },\n [sectionPath]\n )\n\n const makeIteratePath = useCallback(\n (\n itemPath: Path = itemPathProp,\n iteratePath: Path = iteratePathProp\n ) => {\n let root = ''\n\n if (sectionPath) {\n root = makeSectionPath('')\n }\n\n return `${root}${iteratePath || ''}/${iterateElementIndex}${\n itemPath && itemPath !== '/' ? itemPath : ''\n }`\n },\n [\n iteratePathProp,\n sectionPath,\n iterateElementIndex,\n itemPathProp,\n makeSectionPath,\n ]\n )\n\n const itemPath = useMemo(() => {\n if (itemPathProp) {\n return makeIteratePath()\n }\n }, [itemPathProp, makeIteratePath])\n\n const makePath = useCallback(\n (path: Path) => {\n if (itemPathProp) {\n return itemPath\n }\n\n if (sectionPath) {\n return makeSectionPath(path)\n }\n\n // Identifier is used is registries of multiple fields, like in the DataContext keeping track of errors\n return path\n },\n [itemPathProp, sectionPath, itemPath, makeSectionPath]\n )\n\n const path = useMemo(() => {\n return makePath(pathProp)\n }, [makePath, pathProp])\n\n const identifier = path ?? id\n return {\n identifier,\n path,\n itemPath,\n joinPath,\n makePath,\n makeIteratePath,\n makeSectionPath,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"usePath.js","names":["useCallback","useContext","useMemo","useId","SectionContext","IterateElementContext","usePath","props","_useContext","_useContext2","path","pathProp","itemPath","itemPathProp","id","sectionPath","iteratePathProp","index","iterateElementIndex","startsWith","Error","joinPath","paths","cleanPath","reduce","acc","cur","makeSectionPath","makeIteratePath","iteratePath","root","makePath","identifier","replace"],"sources":["../../../../../src/extensions/forms/hooks/usePath.ts"],"sourcesContent":["import { useCallback, useContext, useMemo } from 'react'\nimport { Path } from '../types'\nimport useId from '../../../shared/helpers/useId'\nimport SectionContext from '../Form/Section/SectionContext'\nimport IterateElementContext from '../Iterate/IterateItemContext'\n\nexport type Props = {\n id?: string\n path?: Path\n itemPath?: Path\n}\n\nexport default function usePath(props: Props = {}) {\n const { path: pathProp, itemPath: itemPathProp } = props\n const id = useId(props.id)\n const { path: sectionPath } = useContext(SectionContext) ?? {}\n const { path: iteratePathProp, index: iterateElementIndex } =\n useContext(IterateElementContext) ?? {}\n\n if (pathProp && !pathProp.startsWith('/')) {\n throw new Error(`path=\"${pathProp}\" must start with a slash`)\n }\n if (itemPathProp && !itemPathProp.startsWith('/')) {\n throw new Error(`itemPath=\"${itemPathProp}\" must start with a slash`)\n }\n\n const joinPath = useCallback((paths: Array<Path>) => {\n return cleanPath(\n paths.reduce((acc, cur) => (cur ? `${acc}/${cur}` : acc), '/')\n )\n }, [])\n\n const makeSectionPath = useCallback(\n (path: Path) => {\n return cleanPath(\n `${sectionPath && sectionPath !== '/' ? sectionPath : ''}${path}`\n )\n },\n [sectionPath]\n )\n\n const makeIteratePath = useCallback(\n (\n itemPath: Path = itemPathProp,\n iteratePath: Path = iteratePathProp\n ) => {\n let root = ''\n\n if (sectionPath) {\n root = makeSectionPath('')\n }\n\n return cleanPath(\n `${root}${iteratePath || ''}/${iterateElementIndex}${\n itemPath || ''\n }`\n )\n },\n [\n itemPathProp,\n iteratePathProp,\n sectionPath,\n iterateElementIndex,\n makeSectionPath,\n ]\n )\n\n const itemPath = useMemo(() => {\n if (itemPathProp) {\n return makeIteratePath()\n }\n }, [itemPathProp, makeIteratePath])\n\n const makePath = useCallback(\n (path: Path) => {\n if (itemPathProp) {\n return itemPath\n }\n\n if (sectionPath) {\n return makeSectionPath(path)\n }\n\n // Identifier is used is registries of multiple fields, like in the DataContext keeping track of errors\n return path\n },\n [itemPathProp, sectionPath, itemPath, makeSectionPath]\n )\n\n const path = useMemo(() => {\n return makePath(pathProp)\n }, [makePath, pathProp])\n\n const identifier = path ?? id\n return {\n identifier,\n path,\n itemPath,\n joinPath,\n makePath,\n makeIteratePath,\n makeSectionPath,\n }\n}\n\n// Will remove duplicate slashes and trailing slashes\n// /foo///bar/// => /foo/bar\nfunction cleanPath(path: Path) {\n return path.replace(/\\/+$|\\/(\\/)+/g, '$1')\n}\n"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { ValueProps } from '../types';
2
2
  export type Props<Value> = ValueProps<Value>;
3
- export default function useValueProps<Value = unknown, Props extends ValueProps<Value> = ValueProps<Value>>(props: Props): Props & ValueProps<Value>;
3
+ export default function useValueProps<Value = unknown, Props extends ValueProps<Value> = ValueProps<Value>>(localeProps: Props): Props & ValueProps<Value>;