@dnb/eufemia 10.68.1 → 10.69.1

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 (540) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/cjs/components/autocomplete/Autocomplete.js +1 -1
  3. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  4. package/cjs/components/global-error/GlobalError.d.ts +1 -1
  5. package/cjs/components/global-error/GlobalError.js +1 -1
  6. package/cjs/components/global-error/GlobalError.js.map +1 -1
  7. package/cjs/components/global-error/GlobalErrorDocs.d.ts +2 -0
  8. package/cjs/components/global-error/GlobalErrorDocs.js +64 -0
  9. package/cjs/components/global-error/GlobalErrorDocs.js.map +1 -0
  10. package/cjs/components/info-card/InfoCard.d.ts +4 -0
  11. package/cjs/components/info-card/InfoCard.js +29 -25
  12. package/cjs/components/info-card/InfoCard.js.map +1 -1
  13. package/cjs/components/info-card/InfoCardDocs.d.ts +3 -0
  14. package/cjs/components/info-card/InfoCardDocs.js +101 -0
  15. package/cjs/components/info-card/InfoCardDocs.js.map +1 -0
  16. package/cjs/components/info-card/style/dnb-info-card.css +5 -0
  17. package/cjs/components/info-card/style/dnb-info-card.min.css +1 -1
  18. package/cjs/components/info-card/style/dnb-info-card.scss +7 -0
  19. package/cjs/components/number-format/NumberFormat.js +4 -2
  20. package/cjs/components/number-format/NumberFormat.js.map +1 -1
  21. package/cjs/components/number-format/NumberUtils.d.ts +3 -0
  22. package/cjs/components/number-format/NumberUtils.js +5 -4
  23. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  24. package/cjs/components/table/TableClickableHead.js +14 -3
  25. package/cjs/components/table/TableClickableHead.js.map +1 -1
  26. package/cjs/components/table/TableTr.js +4 -4
  27. package/cjs/components/table/TableTr.js.map +1 -1
  28. package/cjs/components/table/table-accordion/TableAccordionHead.d.ts +5 -0
  29. package/cjs/components/table/table-accordion/TableAccordionHead.js +27 -20
  30. package/cjs/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  31. package/cjs/components/table/table-navigation/TableNavigationHead.js +7 -4
  32. package/cjs/components/table/table-navigation/TableNavigationHead.js.map +1 -1
  33. package/cjs/components/tabs/Tabs.js +2 -2
  34. package/cjs/components/tabs/Tabs.js.map +1 -1
  35. package/cjs/components/upload/UploadFileList.js +2 -3
  36. package/cjs/components/upload/UploadFileList.js.map +1 -1
  37. package/cjs/extensions/forms/DataContext/Context.d.ts +2 -2
  38. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  39. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +4 -4
  40. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  41. package/cjs/extensions/forms/DataContext/Provider/Provider.js +35 -41
  42. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  43. package/cjs/extensions/forms/Field/Currency/Currency.d.ts +9 -1
  44. package/cjs/extensions/forms/Field/Currency/Currency.js +8 -3
  45. package/cjs/extensions/forms/Field/Currency/Currency.js.map +1 -1
  46. package/cjs/extensions/forms/Field/Currency/CurrencyDocs.js +1 -1
  47. package/cjs/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -1
  48. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +61 -3
  49. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -4
  50. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -2
  51. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  52. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrency.d.ts +51 -0
  53. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrency.js +289 -0
  54. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrency.js.map +1 -0
  55. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.d.ts +3 -0
  56. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +36 -0
  57. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -0
  58. package/cjs/extensions/forms/Field/SelectCurrency/index.d.ts +2 -0
  59. package/cjs/extensions/forms/Field/SelectCurrency/index.js +28 -0
  60. package/cjs/extensions/forms/Field/SelectCurrency/index.js.map +1 -0
  61. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  62. package/cjs/extensions/forms/Field/index.js +7 -0
  63. package/cjs/extensions/forms/Field/index.js.map +1 -1
  64. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -2
  65. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +2 -2
  66. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  67. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  68. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  69. package/cjs/extensions/forms/Form/Isolation/Isolation.js +3 -4
  70. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  71. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +1 -10
  72. package/cjs/extensions/forms/Form/Visibility/Visibility.js +1 -0
  73. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  74. package/cjs/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -1
  75. package/cjs/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
  76. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +1 -1
  77. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  78. package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
  79. package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  80. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -2
  81. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  82. package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js +1 -1
  83. package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
  84. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
  85. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  86. package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js +1 -1
  87. package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
  88. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +9 -2
  89. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  90. package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
  91. package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  92. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
  93. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  94. package/cjs/extensions/forms/Value/Currency/Currency.d.ts +7 -1
  95. package/cjs/extensions/forms/Value/Currency/Currency.js.map +1 -1
  96. package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +2 -1
  97. package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -1
  98. package/cjs/extensions/forms/Value/SelectCurrency/SelectCurrency.d.ts +9 -0
  99. package/cjs/extensions/forms/Value/SelectCurrency/SelectCurrency.js +37 -0
  100. package/cjs/extensions/forms/Value/SelectCurrency/SelectCurrency.js.map +1 -0
  101. package/cjs/extensions/forms/Value/SelectCurrency/index.d.ts +2 -0
  102. package/cjs/extensions/forms/Value/SelectCurrency/index.js +28 -0
  103. package/cjs/extensions/forms/Value/SelectCurrency/index.js.map +1 -0
  104. package/cjs/extensions/forms/Value/SelectCurrency/useCurrency.d.ts +4 -0
  105. package/cjs/extensions/forms/Value/SelectCurrency/useCurrency.js +32 -0
  106. package/cjs/extensions/forms/Value/SelectCurrency/useCurrency.js.map +1 -0
  107. package/cjs/extensions/forms/Value/index.d.ts +1 -0
  108. package/cjs/extensions/forms/Value/index.js +7 -0
  109. package/cjs/extensions/forms/Value/index.js.map +1 -1
  110. package/cjs/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
  111. package/cjs/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
  112. package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js +10 -5
  113. package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
  114. package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +4 -3
  115. package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js +38 -32
  116. package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
  117. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +106 -57
  118. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  119. package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.d.ts +10 -0
  120. package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.js +66 -0
  121. package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -0
  122. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +18 -4
  123. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  124. package/cjs/extensions/forms/Wizard/Context/types.d.ts +9 -6
  125. package/cjs/extensions/forms/Wizard/Context/types.js.map +1 -1
  126. package/cjs/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  127. package/cjs/extensions/forms/Wizard/Step/Step.js +65 -22
  128. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  129. package/cjs/extensions/forms/Wizard/Step/StepDocs.js +2 -2
  130. package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  131. package/cjs/extensions/forms/Wizard/hooks/useStep.js +10 -18
  132. package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  133. package/cjs/extensions/forms/constants/allCurrencies.d.ts +1786 -0
  134. package/cjs/extensions/forms/constants/allCurrencies.js +1447 -0
  135. package/cjs/extensions/forms/constants/allCurrencies.js.map +1 -0
  136. package/cjs/extensions/forms/constants/countries.d.ts +4023 -4
  137. package/cjs/extensions/forms/constants/countries.js.map +1 -1
  138. package/cjs/extensions/forms/constants/currencies.d.ts +716 -0
  139. package/cjs/extensions/forms/constants/currencies.js +12 -0
  140. package/cjs/extensions/forms/constants/currencies.js.map +1 -0
  141. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +5 -0
  142. package/cjs/extensions/forms/constants/locales/en-GB.js +5 -0
  143. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  144. package/cjs/extensions/forms/constants/locales/en-US.d.ts +5 -0
  145. package/cjs/extensions/forms/constants/locales/index.d.ts +10 -0
  146. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +5 -0
  147. package/cjs/extensions/forms/constants/locales/nb-NO.js +5 -0
  148. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  149. package/cjs/extensions/forms/constants/locales/sv-SE.d.ts +5 -0
  150. package/cjs/extensions/forms/constants/locales/sv-SE.js +5 -0
  151. package/cjs/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  152. package/cjs/extensions/forms/hooks/useFieldProps.js +32 -23
  153. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  154. package/cjs/extensions/forms/hooks/useValueProps.js +1 -1
  155. package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
  156. package/cjs/extensions/forms/types.d.ts +4 -4
  157. package/cjs/extensions/forms/types.js.map +1 -1
  158. package/cjs/shared/Eufemia.d.ts +1 -1
  159. package/cjs/shared/Eufemia.js +2 -2
  160. package/cjs/shared/Eufemia.js.map +1 -1
  161. package/cjs/shared/component-helper.js +1 -1
  162. package/cjs/shared/component-helper.js.map +1 -1
  163. package/cjs/style/core/scopes.scss +1 -1
  164. package/cjs/style/dnb-ui-basis.css +1 -1
  165. package/cjs/style/dnb-ui-basis.min.css +1 -1
  166. package/cjs/style/dnb-ui-body.css +1 -1
  167. package/cjs/style/dnb-ui-body.min.css +1 -1
  168. package/cjs/style/dnb-ui-components.css +5 -0
  169. package/cjs/style/dnb-ui-components.min.css +1 -1
  170. package/cjs/style/dnb-ui-core.css +1 -1
  171. package/cjs/style/dnb-ui-core.min.css +1 -1
  172. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +5 -0
  173. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  174. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +5 -0
  175. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  176. package/cjs/style/themes/theme-ui/ui-theme-components.css +5 -0
  177. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  178. package/components/autocomplete/Autocomplete.js +1 -1
  179. package/components/autocomplete/Autocomplete.js.map +1 -1
  180. package/components/global-error/GlobalError.d.ts +1 -1
  181. package/components/global-error/GlobalError.js +1 -1
  182. package/components/global-error/GlobalError.js.map +1 -1
  183. package/components/global-error/GlobalErrorDocs.d.ts +2 -0
  184. package/components/global-error/GlobalErrorDocs.js +58 -0
  185. package/components/global-error/GlobalErrorDocs.js.map +1 -0
  186. package/components/info-card/InfoCard.d.ts +4 -0
  187. package/components/info-card/InfoCard.js +26 -25
  188. package/components/info-card/InfoCard.js.map +1 -1
  189. package/components/info-card/InfoCardDocs.d.ts +3 -0
  190. package/components/info-card/InfoCardDocs.js +95 -0
  191. package/components/info-card/InfoCardDocs.js.map +1 -0
  192. package/components/info-card/style/dnb-info-card.css +5 -0
  193. package/components/info-card/style/dnb-info-card.min.css +1 -1
  194. package/components/info-card/style/dnb-info-card.scss +7 -0
  195. package/components/number-format/NumberFormat.js +4 -2
  196. package/components/number-format/NumberFormat.js.map +1 -1
  197. package/components/number-format/NumberUtils.d.ts +3 -0
  198. package/components/number-format/NumberUtils.js +5 -4
  199. package/components/number-format/NumberUtils.js.map +1 -1
  200. package/components/table/TableClickableHead.js +12 -3
  201. package/components/table/TableClickableHead.js.map +1 -1
  202. package/components/table/TableTr.js +4 -4
  203. package/components/table/TableTr.js.map +1 -1
  204. package/components/table/table-accordion/TableAccordionHead.d.ts +5 -0
  205. package/components/table/table-accordion/TableAccordionHead.js +28 -21
  206. package/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  207. package/components/table/table-navigation/TableNavigationHead.js +4 -4
  208. package/components/table/table-navigation/TableNavigationHead.js.map +1 -1
  209. package/components/tabs/Tabs.js +2 -2
  210. package/components/tabs/Tabs.js.map +1 -1
  211. package/components/upload/UploadFileList.js +2 -3
  212. package/components/upload/UploadFileList.js.map +1 -1
  213. package/es/components/autocomplete/Autocomplete.js +1 -1
  214. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  215. package/es/components/global-error/GlobalError.d.ts +1 -1
  216. package/es/components/global-error/GlobalError.js +1 -1
  217. package/es/components/global-error/GlobalError.js.map +1 -1
  218. package/es/components/global-error/GlobalErrorDocs.d.ts +2 -0
  219. package/es/components/global-error/GlobalErrorDocs.js +58 -0
  220. package/es/components/global-error/GlobalErrorDocs.js.map +1 -0
  221. package/es/components/info-card/InfoCard.d.ts +4 -0
  222. package/es/components/info-card/InfoCard.js +26 -25
  223. package/es/components/info-card/InfoCard.js.map +1 -1
  224. package/es/components/info-card/InfoCardDocs.d.ts +3 -0
  225. package/es/components/info-card/InfoCardDocs.js +95 -0
  226. package/es/components/info-card/InfoCardDocs.js.map +1 -0
  227. package/es/components/info-card/style/dnb-info-card.css +5 -0
  228. package/es/components/info-card/style/dnb-info-card.min.css +1 -1
  229. package/es/components/info-card/style/dnb-info-card.scss +7 -0
  230. package/es/components/number-format/NumberFormat.js +4 -2
  231. package/es/components/number-format/NumberFormat.js.map +1 -1
  232. package/es/components/number-format/NumberUtils.d.ts +3 -0
  233. package/es/components/number-format/NumberUtils.js +5 -4
  234. package/es/components/number-format/NumberUtils.js.map +1 -1
  235. package/es/components/table/TableClickableHead.js +12 -3
  236. package/es/components/table/TableClickableHead.js.map +1 -1
  237. package/es/components/table/TableTr.js +4 -4
  238. package/es/components/table/TableTr.js.map +1 -1
  239. package/es/components/table/table-accordion/TableAccordionHead.d.ts +5 -0
  240. package/es/components/table/table-accordion/TableAccordionHead.js +28 -21
  241. package/es/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  242. package/es/components/table/table-navigation/TableNavigationHead.js +4 -4
  243. package/es/components/table/table-navigation/TableNavigationHead.js.map +1 -1
  244. package/es/components/tabs/Tabs.js +2 -2
  245. package/es/components/tabs/Tabs.js.map +1 -1
  246. package/es/components/upload/UploadFileList.js +2 -3
  247. package/es/components/upload/UploadFileList.js.map +1 -1
  248. package/es/extensions/forms/DataContext/Context.d.ts +2 -2
  249. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  250. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +4 -4
  251. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  252. package/es/extensions/forms/DataContext/Provider/Provider.js +21 -29
  253. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  254. package/es/extensions/forms/Field/Currency/Currency.d.ts +9 -1
  255. package/es/extensions/forms/Field/Currency/Currency.js +8 -3
  256. package/es/extensions/forms/Field/Currency/Currency.js.map +1 -1
  257. package/es/extensions/forms/Field/Currency/CurrencyDocs.js +1 -1
  258. package/es/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -1
  259. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +61 -3
  260. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -4
  261. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -2
  262. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  263. package/es/extensions/forms/Field/SelectCurrency/SelectCurrency.d.ts +51 -0
  264. package/es/extensions/forms/Field/SelectCurrency/SelectCurrency.js +263 -0
  265. package/es/extensions/forms/Field/SelectCurrency/SelectCurrency.js.map +1 -0
  266. package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.d.ts +3 -0
  267. package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +28 -0
  268. package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -0
  269. package/es/extensions/forms/Field/SelectCurrency/index.d.ts +2 -0
  270. package/es/extensions/forms/Field/SelectCurrency/index.js +3 -0
  271. package/es/extensions/forms/Field/SelectCurrency/index.js.map +1 -0
  272. package/es/extensions/forms/Field/index.d.ts +1 -0
  273. package/es/extensions/forms/Field/index.js +1 -0
  274. package/es/extensions/forms/Field/index.js.map +1 -1
  275. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -2
  276. package/es/extensions/forms/FieldBlock/FieldBlock.js +2 -2
  277. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  278. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  279. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  280. package/es/extensions/forms/Form/Isolation/Isolation.js +3 -4
  281. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  282. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +1 -10
  283. package/es/extensions/forms/Form/Visibility/Visibility.js +1 -0
  284. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  285. package/es/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -1
  286. package/es/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
  287. package/es/extensions/forms/Form/Visibility/useVisibility.js +1 -1
  288. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  289. package/es/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
  290. package/es/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  291. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -2
  292. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  293. package/es/extensions/forms/Iterate/EditContainer/DoneButton.js +1 -1
  294. package/es/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
  295. package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
  296. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  297. package/es/extensions/forms/Iterate/PushContainer/OpenButton.js +1 -1
  298. package/es/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
  299. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +9 -2
  300. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  301. package/es/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
  302. package/es/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  303. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
  304. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  305. package/es/extensions/forms/Value/Currency/Currency.d.ts +7 -1
  306. package/es/extensions/forms/Value/Currency/Currency.js.map +1 -1
  307. package/es/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +2 -1
  308. package/es/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -1
  309. package/es/extensions/forms/Value/SelectCurrency/SelectCurrency.d.ts +9 -0
  310. package/es/extensions/forms/Value/SelectCurrency/SelectCurrency.js +29 -0
  311. package/es/extensions/forms/Value/SelectCurrency/SelectCurrency.js.map +1 -0
  312. package/es/extensions/forms/Value/SelectCurrency/index.d.ts +2 -0
  313. package/es/extensions/forms/Value/SelectCurrency/index.js +3 -0
  314. package/es/extensions/forms/Value/SelectCurrency/index.js.map +1 -0
  315. package/es/extensions/forms/Value/SelectCurrency/useCurrency.d.ts +4 -0
  316. package/es/extensions/forms/Value/SelectCurrency/useCurrency.js +26 -0
  317. package/es/extensions/forms/Value/SelectCurrency/useCurrency.js.map +1 -0
  318. package/es/extensions/forms/Value/index.d.ts +1 -0
  319. package/es/extensions/forms/Value/index.js +1 -0
  320. package/es/extensions/forms/Value/index.js.map +1 -1
  321. package/es/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
  322. package/es/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
  323. package/es/extensions/forms/Wizard/Container/DisplaySteps.js +10 -5
  324. package/es/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
  325. package/es/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +4 -3
  326. package/es/extensions/forms/Wizard/Container/IterateOverSteps.js +37 -31
  327. package/es/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
  328. package/es/extensions/forms/Wizard/Container/WizardContainer.js +103 -58
  329. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  330. package/es/extensions/forms/Wizard/Container/useCollectStepsData.d.ts +10 -0
  331. package/es/extensions/forms/Wizard/Container/useCollectStepsData.js +59 -0
  332. package/es/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -0
  333. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +18 -4
  334. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  335. package/es/extensions/forms/Wizard/Context/types.d.ts +9 -6
  336. package/es/extensions/forms/Wizard/Context/types.js.map +1 -1
  337. package/es/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  338. package/es/extensions/forms/Wizard/Step/Step.js +64 -22
  339. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  340. package/es/extensions/forms/Wizard/Step/StepDocs.js +2 -2
  341. package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  342. package/es/extensions/forms/Wizard/hooks/useStep.js +10 -18
  343. package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  344. package/es/extensions/forms/constants/allCurrencies.d.ts +1786 -0
  345. package/es/extensions/forms/constants/allCurrencies.js +1440 -0
  346. package/es/extensions/forms/constants/allCurrencies.js.map +1 -0
  347. package/es/extensions/forms/constants/countries.d.ts +4023 -4
  348. package/es/extensions/forms/constants/countries.js.map +1 -1
  349. package/es/extensions/forms/constants/currencies.d.ts +716 -0
  350. package/es/extensions/forms/constants/currencies.js +5 -0
  351. package/es/extensions/forms/constants/currencies.js.map +1 -0
  352. package/es/extensions/forms/constants/locales/en-GB.d.ts +5 -0
  353. package/es/extensions/forms/constants/locales/en-GB.js +5 -0
  354. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  355. package/es/extensions/forms/constants/locales/en-US.d.ts +5 -0
  356. package/es/extensions/forms/constants/locales/index.d.ts +10 -0
  357. package/es/extensions/forms/constants/locales/nb-NO.d.ts +5 -0
  358. package/es/extensions/forms/constants/locales/nb-NO.js +5 -0
  359. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  360. package/es/extensions/forms/constants/locales/sv-SE.d.ts +5 -0
  361. package/es/extensions/forms/constants/locales/sv-SE.js +5 -0
  362. package/es/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  363. package/es/extensions/forms/hooks/useFieldProps.js +32 -23
  364. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  365. package/es/extensions/forms/hooks/useValueProps.js +1 -1
  366. package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
  367. package/es/extensions/forms/types.d.ts +4 -4
  368. package/es/extensions/forms/types.js.map +1 -1
  369. package/es/shared/Eufemia.d.ts +1 -1
  370. package/es/shared/Eufemia.js +2 -2
  371. package/es/shared/Eufemia.js.map +1 -1
  372. package/es/shared/component-helper.js +1 -1
  373. package/es/shared/component-helper.js.map +1 -1
  374. package/es/style/core/scopes.scss +1 -1
  375. package/es/style/dnb-ui-basis.css +1 -1
  376. package/es/style/dnb-ui-basis.min.css +1 -1
  377. package/es/style/dnb-ui-body.css +1 -1
  378. package/es/style/dnb-ui-body.min.css +1 -1
  379. package/es/style/dnb-ui-components.css +5 -0
  380. package/es/style/dnb-ui-components.min.css +1 -1
  381. package/es/style/dnb-ui-core.css +1 -1
  382. package/es/style/dnb-ui-core.min.css +1 -1
  383. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +5 -0
  384. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  385. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +5 -0
  386. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  387. package/es/style/themes/theme-ui/ui-theme-components.css +5 -0
  388. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  389. package/esm/dnb-ui-basis.min.mjs +1 -1
  390. package/esm/dnb-ui-components.min.mjs +1 -1
  391. package/esm/dnb-ui-elements.min.mjs +1 -1
  392. package/esm/dnb-ui-extensions.min.mjs +1 -1
  393. package/esm/dnb-ui-lib.min.mjs +1 -1
  394. package/extensions/forms/DataContext/Context.d.ts +2 -2
  395. package/extensions/forms/DataContext/Context.js.map +1 -1
  396. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +4 -4
  397. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  398. package/extensions/forms/DataContext/Provider/Provider.js +35 -41
  399. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  400. package/extensions/forms/Field/Currency/Currency.d.ts +9 -1
  401. package/extensions/forms/Field/Currency/Currency.js +8 -3
  402. package/extensions/forms/Field/Currency/Currency.js.map +1 -1
  403. package/extensions/forms/Field/Currency/CurrencyDocs.js +1 -1
  404. package/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -1
  405. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +61 -3
  406. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -4
  407. package/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -2
  408. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  409. package/extensions/forms/Field/SelectCurrency/SelectCurrency.d.ts +51 -0
  410. package/extensions/forms/Field/SelectCurrency/SelectCurrency.js +275 -0
  411. package/extensions/forms/Field/SelectCurrency/SelectCurrency.js.map +1 -0
  412. package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.d.ts +3 -0
  413. package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +28 -0
  414. package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -0
  415. package/extensions/forms/Field/SelectCurrency/index.d.ts +2 -0
  416. package/extensions/forms/Field/SelectCurrency/index.js +3 -0
  417. package/extensions/forms/Field/SelectCurrency/index.js.map +1 -0
  418. package/extensions/forms/Field/index.d.ts +1 -0
  419. package/extensions/forms/Field/index.js +1 -0
  420. package/extensions/forms/Field/index.js.map +1 -1
  421. package/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -2
  422. package/extensions/forms/FieldBlock/FieldBlock.js +2 -2
  423. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  424. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  425. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  426. package/extensions/forms/Form/Isolation/Isolation.js +3 -4
  427. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  428. package/extensions/forms/Form/Visibility/Visibility.d.ts +1 -10
  429. package/extensions/forms/Form/Visibility/Visibility.js +1 -0
  430. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  431. package/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -1
  432. package/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
  433. package/extensions/forms/Form/Visibility/useVisibility.js +1 -1
  434. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  435. package/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
  436. package/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  437. package/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -2
  438. package/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  439. package/extensions/forms/Iterate/EditContainer/DoneButton.js +1 -1
  440. package/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
  441. package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
  442. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  443. package/extensions/forms/Iterate/PushContainer/OpenButton.js +1 -1
  444. package/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
  445. package/extensions/forms/Iterate/PushContainer/PushContainer.js +9 -2
  446. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  447. package/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
  448. package/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  449. package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
  450. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  451. package/extensions/forms/Value/Currency/Currency.d.ts +7 -1
  452. package/extensions/forms/Value/Currency/Currency.js.map +1 -1
  453. package/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +2 -1
  454. package/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -1
  455. package/extensions/forms/Value/SelectCurrency/SelectCurrency.d.ts +9 -0
  456. package/extensions/forms/Value/SelectCurrency/SelectCurrency.js +29 -0
  457. package/extensions/forms/Value/SelectCurrency/SelectCurrency.js.map +1 -0
  458. package/extensions/forms/Value/SelectCurrency/index.d.ts +2 -0
  459. package/extensions/forms/Value/SelectCurrency/index.js +3 -0
  460. package/extensions/forms/Value/SelectCurrency/index.js.map +1 -0
  461. package/extensions/forms/Value/SelectCurrency/useCurrency.d.ts +4 -0
  462. package/extensions/forms/Value/SelectCurrency/useCurrency.js +26 -0
  463. package/extensions/forms/Value/SelectCurrency/useCurrency.js.map +1 -0
  464. package/extensions/forms/Value/index.d.ts +1 -0
  465. package/extensions/forms/Value/index.js +1 -0
  466. package/extensions/forms/Value/index.js.map +1 -1
  467. package/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
  468. package/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
  469. package/extensions/forms/Wizard/Container/DisplaySteps.js +10 -5
  470. package/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
  471. package/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +4 -3
  472. package/extensions/forms/Wizard/Container/IterateOverSteps.js +38 -31
  473. package/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
  474. package/extensions/forms/Wizard/Container/WizardContainer.js +107 -58
  475. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  476. package/extensions/forms/Wizard/Container/useCollectStepsData.d.ts +10 -0
  477. package/extensions/forms/Wizard/Container/useCollectStepsData.js +60 -0
  478. package/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -0
  479. package/extensions/forms/Wizard/Context/WizardContext.d.ts +18 -4
  480. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  481. package/extensions/forms/Wizard/Context/types.d.ts +9 -6
  482. package/extensions/forms/Wizard/Context/types.js.map +1 -1
  483. package/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  484. package/extensions/forms/Wizard/Step/Step.js +66 -22
  485. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  486. package/extensions/forms/Wizard/Step/StepDocs.js +2 -2
  487. package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  488. package/extensions/forms/Wizard/hooks/useStep.js +10 -18
  489. package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  490. package/extensions/forms/constants/allCurrencies.d.ts +1786 -0
  491. package/extensions/forms/constants/allCurrencies.js +1441 -0
  492. package/extensions/forms/constants/allCurrencies.js.map +1 -0
  493. package/extensions/forms/constants/countries.d.ts +4023 -4
  494. package/extensions/forms/constants/countries.js.map +1 -1
  495. package/extensions/forms/constants/currencies.d.ts +716 -0
  496. package/extensions/forms/constants/currencies.js +6 -0
  497. package/extensions/forms/constants/currencies.js.map +1 -0
  498. package/extensions/forms/constants/locales/en-GB.d.ts +5 -0
  499. package/extensions/forms/constants/locales/en-GB.js +5 -0
  500. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  501. package/extensions/forms/constants/locales/en-US.d.ts +5 -0
  502. package/extensions/forms/constants/locales/index.d.ts +10 -0
  503. package/extensions/forms/constants/locales/nb-NO.d.ts +5 -0
  504. package/extensions/forms/constants/locales/nb-NO.js +5 -0
  505. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  506. package/extensions/forms/constants/locales/sv-SE.d.ts +5 -0
  507. package/extensions/forms/constants/locales/sv-SE.js +5 -0
  508. package/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  509. package/extensions/forms/hooks/useFieldProps.js +32 -23
  510. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  511. package/extensions/forms/hooks/useValueProps.js +1 -1
  512. package/extensions/forms/hooks/useValueProps.js.map +1 -1
  513. package/extensions/forms/types.d.ts +4 -4
  514. package/extensions/forms/types.js.map +1 -1
  515. package/package.json +1 -1
  516. package/shared/Eufemia.d.ts +1 -1
  517. package/shared/Eufemia.js +2 -2
  518. package/shared/Eufemia.js.map +1 -1
  519. package/shared/component-helper.js +1 -1
  520. package/shared/component-helper.js.map +1 -1
  521. package/style/core/scopes.scss +1 -1
  522. package/style/dnb-ui-basis.css +1 -1
  523. package/style/dnb-ui-basis.min.css +1 -1
  524. package/style/dnb-ui-body.css +1 -1
  525. package/style/dnb-ui-body.min.css +1 -1
  526. package/style/dnb-ui-components.css +5 -0
  527. package/style/dnb-ui-components.min.css +1 -1
  528. package/style/dnb-ui-core.css +1 -1
  529. package/style/dnb-ui-core.min.css +1 -1
  530. package/style/themes/theme-eiendom/eiendom-theme-components.css +5 -0
  531. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  532. package/style/themes/theme-sbanken/sbanken-theme-components.css +5 -0
  533. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  534. package/style/themes/theme-ui/ui-theme-components.css +5 -0
  535. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  536. package/umd/dnb-ui-basis.min.js +1 -1
  537. package/umd/dnb-ui-components.min.js +1 -1
  538. package/umd/dnb-ui-elements.min.js +1 -1
  539. package/umd/dnb-ui-extensions.min.js +1 -1
  540. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","useContext","pointer","makeAjvInstance","ajvErrorsToFormErrors","debounce","FieldPropsProvider","useUpdateEffect","isAsync","createReferenceKey","useSharedState","SharedContext","useTranslation","DataContext","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","forceUpdate","id","globalStatusId","defaultData","emptyData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onCommit","onClear","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","countryCode","locale","translations","required","errorMessages","isolate","children","rest","_objectWithoutProperties","_excluded","undefined","Error","hasContext","formElementRef","sharedLocale","translation","Field","ajvRef","mountedFieldsRef","snapshotsRef","Map","existingFieldsRef","hasVisibleErrorRef","errorsRef","addSetShowAllErrorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","Date","now","forEach","fn","revealError","path","hasError","submitStateRef","setSubmitState","state","_objectSpread","formStateRef","keepPending","setFormState","formState","options","arguments","length","fieldErrorRef","fieldStateRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","isEmptyDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","call","errors","validateData","checkFieldStateFor","_errorsRef$current","Boolean","hasFieldState","item","isMounted","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","getDataPathHandlerParameters","_fieldInternalsRef$cu","value","has","get","displayValue","fieldDisplayValueRef","fieldInternalsRef","label","internal","mutateDataHandler","handler","remove","mutate","fireHandlerWhen","freshData","mutateEntry","result","set","Object","keys","exists","type","runFilter","_ref","condition","wildcardPaths","entries","_ref2","includes","parts","split","traverse","subData","subPath","idx","push","list","Array","isArray","_","i","visibleDataHandler","keepPaths","removePaths","visibleData","isVisible","isPreMounted","wasStepChange","filterDataHandler","filter","filterData","fieldConnectionsRef","setFieldConnection","connections","setFieldInternals","assign","valueInternalsRef","setValueInternals","hasFieldWithAsyncValidator","_mountedFieldsRef$cur","_fieldInternalsRef$cu2","onChangeValidator","onBlurValidator","sharedData","sharedAttachments","sharedDataContext","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","clearedData","clearData","_ref3","_requestAnimationFram","requestAnimationFrame","storeInSession","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","setData","newData","preventUpdate","preventSyncOfSameInstance","updateDataValue","_internalDataRef$curr","givenData","match","e","handlePathChangeUnvalidated","itm","fieldEventListenersRef","callback","handlePathChange","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","some","setMountedFieldState","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehavior","skipFieldValidation","skipErrorCheck","customStatus","asyncBehaviorIsEnabled","_mountedFieldsRef$cur2","_result2","_result4","_result5","_result6","_result7","submitResult","_result","_result3","warning","info","onSubmitContinueRef","getErrors","map","_ref4","handleSubmitListenersRef","setHandleSubmit","listeners","handleSubmitListeners","stop","preventSubmit","getSubmitData","mutatedData","filteredData","getSubmitParams","reduceToVisibleFields","transformData","_ref5","formElement","params","resetForm","_formElement$reset","reset","removeItem","handleSubmit","completeResult","setFieldEventListener","_ref6","t","c","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","contextErrorMessages","getSourceValue","String","startsWith","contextValue","hasVisibleError","createElement","FormStatus","globalStatus","title","errorSummaryTitle","show","stateRef","nowRef","timeoutRef","setState","clear","key","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout","freeze"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n useContext,\n} from 'react'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n FormError,\n} from '../../utils'\nimport {\n GlobalErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n ValueProps,\n OnSubmitParams,\n OnSubmitReturn,\n OnSubmitRequest,\n CountryCode,\n PathStrict,\n} from '../../types'\nimport type { IsolationProviderProps } from '../../Form/Isolation/Isolation'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Field/Provider'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport {\n SharedStateId,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport SharedContext, { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport DataContext, {\n ContextState,\n EventListenerCall,\n FieldInternalsRef,\n ValueInternalsRef,\n FilterData,\n FilterDataHandler,\n HandleSubmitCallback,\n MountState,\n TransformData,\n VisibleDataHandler,\n FieldInternalsRefProps,\n DataPathHandlerParameters,\n} from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type SharedAttachments<Data = unknown> = {\n visibleDataHandler?: VisibleDataHandler<Data>\n filterDataHandler?: FilterDataHandler<Data>\n hasErrors?: ContextState['hasErrors']\n hasFieldError?: ContextState['hasFieldError']\n setShowAllErrors?: ContextState['setShowAllErrors']\n setSubmitState?: ContextState['setSubmitState']\n rerenderUseDataHook?: () => void\n updateDataValue?: ContextState['updateDataValue']\n clearData?: () => void\n setData?: ContextState['setData']\n fieldConnectionsRef?: ContextState['fieldConnectionsRef']\n internalDataRef?: ContextState['internalDataRef']\n}\n\nexport type Props<Data extends JsonObject> =\n IsolationProviderProps<Data> & {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: SharedStateId\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Data\n /**\n * Empty data, used to clear the data set.\n */\n emptyData?: unknown\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions<Data>\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: GlobalErrorMessagesWithPaths\n /**\n * @deprecated Use the `filterData` in the second event parameter in the `onSubmit` or `onChange` events.\n */\n filterSubmitData?: FilterData\n /**\n * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformIn?: TransformData\n /**\n * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformOut?: TransformData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit<Data>\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: OnSubmitRequest\n /**\n * Will be called when the onSubmit is finished and had not errors\n */\n onSubmitComplete?: (\n data: Data,\n /**\n * The result of the onSubmit function\n */\n result: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Minimum time to display the submit indicator.\n */\n minimumAsyncBehaviorTime?: number\n /**\n * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.\n */\n asyncSubmitTimeout?: number\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n /**\n * Will change the country code for fields supporting `countryCode`.\n * You can also set a path as the value, e.g. `/myCountryCodePath`.\n */\n countryCode?: ContextState['countryCode']\n /**\n * Locale to use for all nested Eufemia components\n */\n locale?: ContextProps['locale']\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: ContextProps['translations']\n /**\n * Make all fields required\n */\n required?: boolean\n /**\n * The children of the context provider\n */\n children: React.ReactNode\n }\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n globalStatusId = 'main',\n defaultData,\n emptyData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onCommit,\n onClear,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n countryCode,\n locale,\n translations,\n required,\n errorMessages,\n isolate,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n throw new Error(\n 'Use \"defaultData\" instead of \"data\" when using sessionStorageId'\n )\n }\n\n const { hasContext } = useContext(DataContext) || {}\n\n if (hasContext && !isolate) {\n throw new Error('DataContext (Form.Handler) cannot be nested')\n }\n\n // - Element\n const formElementRef = useRef<HTMLFormElement>(null)\n\n // - Locale\n const { locale: sharedLocale } = useContext(SharedContext) || {}\n const translation = useTranslation().Field\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldsRef: ContextState['mountedFieldsRef'] = useRef({})\n\n // - Snapshots\n const snapshotsRef: ContextState['snapshotsRef'] = useRef(new Map())\n const existingFieldsRef: ContextState['existingFieldsRef'] = useRef(\n new Map()\n )\n\n // - Errors from provider validation (the whole data set)\n const hasVisibleErrorRef = useRef<Record<Path, boolean>>({})\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const addSetShowAllErrorsRef = useRef<\n Array<(showAllErrors: boolean) => void>\n >([])\n const showAllErrorsRef = useRef<number | boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors ? Date.now() : showAllErrors\n forceUpdate()\n addSetShowAllErrorsRef.current.forEach((fn) => fn?.(showAllErrors))\n }, [])\n const revealError = useCallback((path: Path, hasError: boolean) => {\n if (hasError) {\n hasVisibleErrorRef.current[path] = hasError\n } else {\n delete hasVisibleErrorRef.current[path]\n }\n forceUpdate() // Will rerender the whole form initially\n }, [])\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n submitStateRef.current = { ...submitStateRef.current, ...state }\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const keepPending = useRef(false)\n const setFormState = useCallback<ContextState['setFormState']>(\n (formState: SubmitState, options = {}) => {\n if (typeof options?.keepPending === 'boolean') {\n keepPending.current = options?.keepPending\n }\n formStateRef.current = formState\n forceUpdate()\n },\n []\n )\n\n // - States (e.g. error) reported by fields, based on their direct validation rules\n const fieldErrorRef = useRef<Record<Path, Error>>({})\n const fieldStateRef = useRef<Record<Path, SubmitState>>({})\n\n // - Data\n const initialData = useMemo<Data>(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Data>(initialData)\n const isEmptyDataRef = useRef(false)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const executeAjvValidator = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors,\n internalDataRef.current\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n executeAjvValidator()\n forceUpdate()\n }, [executeAjvValidator])\n\n // - Error handling\n const checkFieldStateFor = useCallback(\n (path: Path, state: SubmitState) => {\n return Boolean(\n state === 'error'\n ? errorsRef.current?.[path] instanceof Error ||\n fieldErrorRef.current[path] instanceof Error\n : fieldStateRef.current[path] === state\n )\n },\n []\n )\n const hasFieldState = useCallback(\n (state: SubmitState) => {\n for (const path in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (item.isMounted && checkFieldStateFor(path, state)) {\n return true\n }\n }\n\n return false\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n for (const p in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (\n item.isMounted &&\n p === path &&\n checkFieldStateFor(path, 'error')\n ) {\n return true\n }\n }\n\n return false\n },\n [checkFieldStateFor]\n )\n const hasErrors = useCallback(() => {\n return hasFieldState('error')\n }, [hasFieldState])\n\n /**\n * Sets the error state for a specific path\n */\n const setFieldError: ContextState['setFieldError'] = useCallback(\n (path, error) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState: ContextState['setFieldState'] = useCallback(\n (path, fieldState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n const getDataPathHandlerParameters = useCallback(\n (\n path: Path,\n data: Data = internalDataRef.current\n ): DataPathHandlerParameters => {\n const value = pointer.has(data, path)\n ? pointer.get(data, path)\n : undefined\n const { value: displayValue } =\n fieldDisplayValueRef.current[path] || {}\n const props = fieldInternalsRef.current[path]?.props\n const label = props?.label\n const error = fieldErrorRef.current[path]\n\n return {\n path,\n value,\n displayValue,\n label,\n props,\n data: internalDataRef.current, // always use the internal data\n error,\n\n /** @deprecated – can be removed in v11 */\n internal: { error },\n }\n },\n []\n )\n\n /**\n * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (\n data: Data,\n handler: TransformData | FilterData,\n { remove = false, mutate = true, fireHandlerWhen = null } = {}\n ) => {\n const freshData = {} as Data\n const mutateEntry = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n if (mutate) {\n data = structuredClone(data)\n pointer.set(data, path, result)\n } else {\n pointer.set(freshData, path, result)\n }\n }\n }\n }\n\n if (typeof handler === 'function') {\n Object.keys(fieldInternalsRef.current).forEach((path) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const { type } = fieldDisplayValueRef.current[path] || {}\n if (fireHandlerWhen?.({ type }) !== false) {\n const result = handler(\n getDataPathHandlerParameters(path, data)\n )\n mutateEntry(path, result)\n }\n }\n })\n\n if (!mutate) {\n return freshData\n }\n\n return data\n } else if (handler) {\n const runFilter = ({ path, condition }) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const result =\n typeof condition === 'function'\n ? condition(getDataPathHandlerParameters(path, data))\n : condition\n mutateEntry(path, result)\n }\n }\n\n const wildcardPaths = []\n\n Object.entries(handler).forEach(([path, condition]) => {\n if (path.includes('*')) {\n const parts = path.split(/\\/\\*/g)\n const exists = pointer.has(data, parts[0])\n if (exists) {\n const traverse = (\n subData: unknown,\n subPath: string,\n idx: number\n ) => {\n if (idx === parts.length - 1) {\n wildcardPaths.push({ path: subPath, condition })\n return\n }\n const list = pointer.get(subData, subPath)\n if (Array.isArray(list)) {\n list.forEach((_, i) => {\n traverse(\n list[i],\n `${subPath}/${i}${parts[idx + 1]}`,\n idx + 1\n )\n })\n }\n }\n traverse(data, parts[0], 0)\n }\n } else {\n runFilter({ path, condition })\n }\n })\n\n wildcardPaths.forEach(runFilter)\n\n return data\n }\n\n return data\n },\n [getDataPathHandlerParameters]\n )\n\n /**\n * Ensure only visible data is returned\n */\n const visibleDataHandler: VisibleDataHandler<Data> = useCallback(\n (data = internalDataRef.current, { keepPaths, removePaths } = {}) => {\n const visibleData = {} as Partial<Data>\n\n for (const path in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (\n item &&\n item.isVisible !== false &&\n (item.isPreMounted !== false || item.wasStepChange === true) &&\n (removePaths ? !removePaths.includes(path) : true) &&\n pointer.has(data, path)\n ) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n }\n\n if (keepPaths) {\n keepPaths.forEach((path) => {\n if (pointer.has(data, path)) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n })\n }\n\n return visibleData\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter: FilterData) => {\n if (filter) {\n return mutateDataHandler(data, filter, { remove: true })\n }\n\n return data\n },\n [mutateDataHandler]\n )\n\n const filterData = useCallback(\n (filter: FilterData, data = internalDataRef.current) => {\n return filterDataHandler(data, filter)\n },\n [filterDataHandler]\n )\n\n const fieldDisplayValueRef: ContextState['fieldDisplayValueRef'] =\n useRef({})\n\n const fieldConnectionsRef = useRef<\n Record<Path, Record<string, unknown>>\n >({})\n const setFieldConnection = useCallback(\n (path: Path, connections: Record<string, unknown>) => {\n fieldConnectionsRef.current[path] = connections\n },\n []\n )\n\n const fieldInternalsRef = useRef<FieldInternalsRef>({})\n const setFieldInternals = useCallback(\n (path: Path, props: FieldInternalsRefProps, id: string) => {\n fieldInternalsRef.current[path] = Object.assign(\n fieldInternalsRef.current[path] || {},\n { props, id }\n )\n },\n []\n )\n\n const valueInternalsRef = useRef<ValueInternalsRef>({})\n const setValueInternals = useCallback(\n (path: Path, props: ValueProps) => {\n valueInternalsRef.current[path] = Object.assign(\n valueInternalsRef.current[path] || {},\n { props }\n )\n },\n []\n )\n\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldInternalsRef.current) {\n if (mountedFieldsRef.current[path]?.isMounted) {\n const props = fieldInternalsRef.current[path]?.props\n if (\n isAsync(props?.onChangeValidator) ||\n isAsync(props?.onBlurValidator)\n ) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<SharedAttachments<Data>>(\n createReferenceKey(id, 'attachments')\n )\n const sharedDataContext = useSharedState<ContextState>(\n createReferenceKey(id, 'data-context')\n )\n\n const setSharedData = sharedData.set\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n const internalData = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData &&\n typeof internalDataRef.current === 'object'\n ) {\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current &&\n typeof internalDataRef.current === 'object'\n ) {\n cacheRef.current.shared = sharedData.data\n\n if (isEmptyDataRef.current) {\n return (\n Array.isArray(internalDataRef.current) ? [] : clearedData\n ) as Data\n }\n\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [id, initialData, sharedData, data])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n const clearData = useCallback(() => {\n isEmptyDataRef.current = true\n internalDataRef.current = ((typeof emptyData === 'function'\n ? emptyData(internalDataRef.current)\n : emptyData) ??\n (Array.isArray(internalDataRef.current) ? [] : clearedData)) as Data\n\n if (id) {\n setSharedData(internalDataRef.current)\n }\n\n forceUpdate()\n onClear?.()\n\n requestAnimationFrame?.(() => {\n isEmptyDataRef.current = false\n }) // Delay so the field validation error message are not shown\n }, [emptyData, id, onClear, setSharedData])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n const setData = useCallback(\n (newData: Data, preventUpdate = false) => {\n // - Mutate the data context\n if (transformIn) {\n newData = mutateDataHandler(newData, transformIn)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData(newData, { preventSyncOfSameInstance: true })\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n if (!preventUpdate) {\n forceUpdate() // Will rerender the whole form initially\n }\n },\n [\n extendSharedData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\n ]\n )\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value, { preventUpdate } = {}) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n setData(newData, preventUpdate)\n },\n [setData]\n )\n\n /**\n * Update the data set on user interaction (unvalidated)\n */\n const handlePathChangeUnvalidated: ContextState['handlePathChange'] =\n useCallback(\n async (path, value) => {\n if (!path) {\n return null\n }\n\n updateDataValue(path, value)\n\n if (isAsync(onPathChange)) {\n await onPathChange?.(path, value)\n } else {\n onPathChange?.(path, value)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onPathChange' && itm.path === path) {\n const { callback } = itm\n if (isAsync(callback)) {\n await callback({ value })\n } else {\n callback({ value })\n }\n }\n }\n },\n [onPathChange, updateDataValue]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value = '_undefined_') => {\n if (!path) {\n return null\n }\n\n if (value !== '_undefined_') {\n handlePathChangeUnvalidated(path, value)\n }\n\n showAllErrorsRef.current = false\n\n validateData()\n\n const data = internalDataRef.current as Data\n const options = { filterData }\n const transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData, options)\n } else {\n cb(transformedData, options)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData, options)\n }\n\n return onChange?.(transformedData, options)\n },\n [\n filterData,\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback((callback: OnChange<Data>) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n }, [])\n\n // - Mounted fields\n const setMountedFieldState = useCallback(\n (path: Path, state: MountState) => {\n if (!mountedFieldsRef.current[path]) {\n mountedFieldsRef.current[path] = { ...state }\n } else {\n Object.assign(mountedFieldsRef.current[path], state)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onMount' && itm.path === path) {\n const { callback } = itm\n callback()\n }\n }\n },\n []\n )\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined, customStatus: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behavior if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehavior || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const item of fieldEventListenersRef.current) {\n const { path, type, callback } = item\n if (\n type === 'onSubmit' &&\n mountedFieldsRef.current[path]?.isMounted\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n let result: EventStateObject\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let submitResult: OnSubmitReturn\n try {\n if (isolate) {\n submitResult = await onCommit?.(internalDataRef.current, {\n clearData,\n })\n } else {\n submitResult = await onSubmit()\n }\n\n if (submitResult instanceof Error) {\n throw submitResult\n }\n } catch (error) {\n submitResult = { error }\n }\n\n result = submitResult as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n if (result?.error) {\n setFormState('abort')\n } else if (keepPending.current !== true) {\n setFormState('complete')\n }\n }\n\n // Force the state to be set by a custom status\n if (result?.['status']) {\n setFormState(result?.['status'])\n }\n\n if (\n result?.error ||\n result?.warning ||\n result?.info ||\n result?.customStatus\n ) {\n setSubmitState(result)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n window.requestAnimationFrame(() => {\n setFormState(undefined)\n })\n\n if (!skipFieldValidation) {\n // Add a event listener to continue the submit after the pending state is resolved\n onSubmitContinueRef.current = () => {\n window.requestAnimationFrame(() => {\n // Do not call the validators again,\n // because we already did it in the first call\n // If they are async, we wait for them to finish anyway\n handleSubmitCall({ ...args, skipFieldValidation: true })\n })\n }\n }\n }\n\n setShowAllErrors(true)\n\n onSubmitRequest?.({\n getErrors: () =>\n Object.keys(fieldErrorRef.current)\n .map((path) => {\n return getDataPathHandlerParameters(path)\n })\n .filter(({ error }) => error),\n })\n }\n\n return result\n },\n [\n clearData,\n getDataPathHandlerParameters,\n hasErrors,\n hasFieldState,\n hasFieldWithAsyncValidator,\n isolate,\n onCommit,\n onSubmitRequest,\n setFormState,\n setShowAllErrors,\n setSubmitState,\n ]\n )\n\n const handleSubmitListenersRef = useRef<Array<HandleSubmitCallback>>([])\n const setHandleSubmit: ContextState['setHandleSubmit'] = useCallback(\n (callback, { remove = false } = {}) => {\n const listeners = handleSubmitListenersRef.current\n if (remove) {\n handleSubmitListenersRef.current = listeners.filter(\n (item) => item !== callback\n )\n } else if (!listeners.includes(callback)) {\n listeners.push(callback)\n }\n },\n []\n )\n const handleSubmitListeners = useCallback(() => {\n let stop = false\n const preventSubmit = () => (stop = true)\n handleSubmitListenersRef.current.forEach((cb) => {\n cb({ preventSubmit })\n })\n return stop\n }, [])\n\n const getSubmitData = useCallback(() => {\n // - Mutate the data context\n const data = internalDataRef.current\n const mutatedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n // @deprecated – can be removed in v11 (use only mutatedData instead)\n const filteredData = filterSubmitData\n ? filterDataHandler(mutatedData, filterSubmitData)\n : mutatedData\n\n return filteredData\n }, [\n filterDataHandler,\n filterSubmitData,\n mutateDataHandler,\n transformOut,\n ])\n\n const getSubmitParams = useCallback(() => {\n const reduceToVisibleFields: VisibleDataHandler<Data> = (\n data,\n options\n ) => {\n return visibleDataHandler(\n transformOut ? mutateDataHandler(data, transformOut) : data,\n options\n )\n }\n\n const transformData = (data: Data, handler: TransformData) => {\n return mutateDataHandler(data, handler, {\n mutate: false,\n fireHandlerWhen: ({ type }) => type === 'field',\n })\n }\n\n const formElement = formElementRef.current\n const params: OnSubmitParams<Data> = {\n filterData,\n reduceToVisibleFields,\n transformData,\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData,\n }\n\n return params\n }, [\n clearData,\n filterData,\n mutateDataHandler,\n sessionStorageId,\n transformOut,\n visibleDataHandler,\n ])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<\n ContextState['handleSubmit']\n >(async () => {\n return await handleSubmitCall({\n enableAsyncBehavior: isAsync(onSubmit),\n onSubmit: async () => {\n if (handleSubmitListeners()) {\n return // stop here\n }\n\n const data = getSubmitData()\n const options = getSubmitParams()\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(data, options)\n } else {\n result = onSubmit?.(data, options)\n }\n\n const completeResult = await onSubmitComplete?.(data, result)\n if (completeResult) {\n result =\n Object.keys(result).length > 0\n ? { ...result, ...completeResult }\n : completeResult\n }\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n\n return result\n },\n })\n }, [\n getSubmitData,\n getSubmitParams,\n handleSubmitCall,\n handleSubmitListeners,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n ])\n\n // Collect listeners to be called during form submit\n const fieldEventListenersRef = useRef<Array<EventListenerCall>>([])\n const setFieldEventListener = useCallback(\n (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(\n ({ path: p, type: t, callback: c }) => {\n return !(p === path && t === type && c === callback)\n }\n )\n fieldEventListenersRef.current.push({ path, type, callback })\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n }, [schema, validateData])\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n customStatus: undefined,\n })\n }, [setFormState, setSubmitState])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id) {\n if (initialData && !sharedData.data) {\n extendSharedData(initialData, { preventSyncOfSameInstance: true })\n }\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment(\n {\n visibleDataHandler,\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n clearData,\n setData,\n updateDataValue,\n fieldConnectionsRef,\n internalDataRef,\n },\n { preventSyncOfSameInstance: true }\n )\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n clearData,\n extendAttachment,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setData,\n setShowAllErrors,\n setSubmitState,\n updateDataValue,\n visibleDataHandler,\n ])\n\n const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n const contextErrorMessages =\n errorMessages?.[locale ?? sharedLocale] || errorMessages\n\n const getSourceValue = useCallback(\n <Return extends string>(value: PathStrict | unknown): Return => {\n const data = internalDataRef.current\n if (\n String(value).startsWith('/') &&\n pointer.has(data, String(value))\n ) {\n return pointer.get(data, String(value)) as unknown as Return\n }\n return value as Return\n },\n []\n )\n\n const contextValue: ContextState = {\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n setMountedFieldState,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n revealError,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldConnection,\n setFieldInternals,\n setValueInternals,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n clearData,\n visibleDataHandler,\n filterDataHandler,\n getSubmitData,\n getSubmitParams,\n addOnChangeHandler,\n setHandleSubmit,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n required,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n hasVisibleError: Object.keys(hasVisibleErrorRef.current).length > 0,\n addSetShowAllErrorsRef,\n fieldConnectionsRef,\n fieldDisplayValueRef,\n fieldInternalsRef,\n valueInternalsRef,\n mountedFieldsRef,\n snapshotsRef,\n existingFieldsRef,\n formElementRef,\n isEmptyDataRef,\n fieldErrorRef,\n ajvInstance: ajvRef.current,\n countryCode: countryCode\n ? getSourceValue<CountryCode>(countryCode)\n : undefined,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n internalDataRef,\n props,\n ...rest,\n }\n\n if (id) {\n sharedDataContext.set(contextValue)\n }\n\n return (\n <DataContext.Provider value={contextValue}>\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: Boolean(showAllErrorsRef.current),\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </DataContext.Provider>\n )\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<JsonObject>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<JsonObject>['asyncSubmitTimeout']\n formState: ContextState['formState']\n waitFor: boolean\n onTimeout: () => void\n}\n\nfunction useFormStatusBuffer(props: FormStatusBufferProps) {\n const {\n formState,\n waitFor,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n } = props || {}\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const stateRef = useRef<SubmitState>()\n const nowRef = useRef<number | null>(null)\n const timeoutRef = useRef<{\n complete?: NodeJS.Timeout | null\n reset?: NodeJS.Timeout | null\n timeout?: NodeJS.Timeout | null\n }>({})\n\n const setState = useCallback(\n (state: SubmitState) => {\n stateRef.current = state\n forceUpdate()\n },\n [forceUpdate]\n )\n\n const clear = useCallback(() => {\n for (const key in timeoutRef.current) {\n clearTimeout(timeoutRef.current[key])\n }\n }, [])\n\n const hadCompleteRef = useRef(false)\n const activeElementRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending' && stateRef.current !== 'pending') {\n activeElementRef.current = document.activeElement as HTMLElement\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n window.requestAnimationFrame(() => {\n activeElementRef.current?.focus?.()\n })\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n }\n\n if (stateRef.current === 'pending') {\n timeoutRef.current.timeout = setTimeout(() => {\n clear()\n setState(undefined)\n onTimeout?.()\n }, asyncSubmitTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncSubmitTimeout,\n onTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n\nexport const clearedData = Object.freeze({})\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","useContext","pointer","makeAjvInstance","ajvErrorsToFormErrors","debounce","FieldPropsProvider","useUpdateEffect","isAsync","createReferenceKey","useSharedState","SharedContext","useTranslation","DataContext","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","forceUpdate","id","globalStatusId","defaultData","emptyData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onCommit","onClear","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","countryCode","locale","translations","required","errorMessages","isolate","children","rest","_objectWithoutProperties","_excluded","undefined","Error","hasContext","formElementRef","sharedLocale","translation","Field","ajvRef","mountedFieldsRef","Map","snapshotsRef","existingFieldsRef","hasVisibleErrorRef","errorsRef","addSetShowAllErrorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","Date","now","forEach","fn","revealError","path","hasError","set","delete","submitStateRef","setSubmitState","state","_objectSpread","formStateRef","keepPending","setFormState","formState","options","arguments","length","fieldErrorRef","fieldStateRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","isEmptyDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","call","errors","validateData","checkFieldStateFor","_errorsRef$current","Boolean","hasFieldState","Array","from","entries","some","_ref","item","isMounted","hasFieldError","_ref2","p","hasErrors","setFieldError","error","setFieldState","fieldState","getDataPathHandlerParameters","_fieldInternalsRef$cu","value","has","get","displayValue","fieldDisplayValueRef","fieldInternalsRef","label","internal","mutateDataHandler","handler","remove","mutate","fireHandlerWhen","freshData","mutateEntry","result","Object","keys","exists","type","runFilter","_ref3","condition","wildcardPaths","_ref4","includes","parts","split","traverse","subData","subPath","idx","push","list","isArray","_","i","visibleDataHandler","keepPaths","removePaths","visibleData","isVisible","isPreMounted","wasStepChange","filterDataHandler","filter","filterData","fieldConnectionsRef","setFieldConnection","connections","setFieldInternals","assign","valueInternalsRef","setValueInternals","hasFieldWithAsyncValidator","_mountedFieldsRef$cur","_fieldInternalsRef$cu2","onChangeValidator","onBlurValidator","sharedData","sharedAttachments","sharedDataContext","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","clearedData","clearData","_ref5","_requestAnimationFram","requestAnimationFrame","storeInSession","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","setData","newData","preventUpdate","preventSyncOfSameInstance","updateDataValue","_internalDataRef$curr","givenData","match","e","handlePathChangeUnvalidated","itm","fieldEventListenersRef","callback","handlePathChange","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","setMountedFieldState","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehavior","skipFieldValidation","skipErrorCheck","customStatus","asyncBehaviorIsEnabled","_mountedFieldsRef$cur2","_result2","_result4","_result5","_result6","_result7","submitResult","_result","_result3","warning","info","onSubmitContinueRef","getErrors","map","_ref6","handleSubmitListenersRef","setHandleSubmit","listeners","handleSubmitListeners","stop","preventSubmit","getSubmitData","mutatedData","filteredData","getSubmitParams","reduceToVisibleFields","transformData","_ref7","formElement","params","resetForm","_formElement$reset","reset","removeItem","handleSubmit","completeResult","setFieldEventListener","_ref8","t","c","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","contextErrorMessages","getSourceValue","String","startsWith","contextValue","hasVisibleError","size","createElement","FormStatus","globalStatus","title","errorSummaryTitle","show","stateRef","nowRef","timeoutRef","setState","clear","key","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout","freeze"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n useContext,\n} from 'react'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n FormError,\n} from '../../utils'\nimport {\n GlobalErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n ValueProps,\n OnSubmitParams,\n OnSubmitReturn,\n OnSubmitRequest,\n CountryCode,\n PathStrict,\n} from '../../types'\nimport type { IsolationProviderProps } from '../../Form/Isolation/Isolation'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Field/Provider'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport {\n SharedStateId,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport SharedContext, { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport DataContext, {\n ContextState,\n EventListenerCall,\n FieldInternalsRef,\n ValueInternalsRef,\n FilterData,\n FilterDataHandler,\n HandleSubmitCallback,\n MountState,\n TransformData,\n VisibleDataHandler,\n FieldInternalsRefProps,\n DataPathHandlerParameters,\n} from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type SharedAttachments<Data = unknown> = {\n visibleDataHandler?: VisibleDataHandler<Data>\n filterDataHandler?: FilterDataHandler<Data>\n hasErrors?: ContextState['hasErrors']\n hasFieldError?: ContextState['hasFieldError']\n setShowAllErrors?: ContextState['setShowAllErrors']\n setSubmitState?: ContextState['setSubmitState']\n rerenderUseDataHook?: () => void\n updateDataValue?: ContextState['updateDataValue']\n clearData?: () => void\n setData?: ContextState['setData']\n fieldConnectionsRef?: ContextState['fieldConnectionsRef']\n internalDataRef?: ContextState['internalDataRef']\n}\n\nexport type Props<Data extends JsonObject> =\n IsolationProviderProps<Data> & {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: SharedStateId\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Data\n /**\n * Empty data, used to clear the data set.\n */\n emptyData?: unknown\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions<Data>\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: GlobalErrorMessagesWithPaths\n /**\n * @deprecated Use the `filterData` in the second event parameter in the `onSubmit` or `onChange` events.\n */\n filterSubmitData?: FilterData\n /**\n * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformIn?: TransformData\n /**\n * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformOut?: TransformData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit<Data>\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: OnSubmitRequest\n /**\n * Will be called when the onSubmit is finished and had not errors\n */\n onSubmitComplete?: (\n data: Data,\n /**\n * The result of the onSubmit function\n */\n result: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Minimum time to display the submit indicator.\n */\n minimumAsyncBehaviorTime?: number\n /**\n * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.\n */\n asyncSubmitTimeout?: number\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n /**\n * Will change the country code for fields supporting `countryCode`.\n * You can also set a path as the value, e.g. `/myCountryCodePath`.\n */\n countryCode?: ContextState['countryCode']\n /**\n * Locale to use for all nested Eufemia components\n */\n locale?: ContextProps['locale']\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: ContextProps['translations']\n /**\n * Make all fields required\n */\n required?: boolean\n /**\n * The children of the context provider\n */\n children: React.ReactNode\n }\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n globalStatusId = 'main',\n defaultData,\n emptyData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onCommit,\n onClear,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n countryCode,\n locale,\n translations,\n required,\n errorMessages,\n isolate,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n throw new Error(\n 'Use \"defaultData\" instead of \"data\" when using sessionStorageId'\n )\n }\n\n const { hasContext } = useContext(DataContext) || {}\n\n if (hasContext && !isolate) {\n throw new Error('DataContext (Form.Handler) cannot be nested')\n }\n\n // - Element\n const formElementRef = useRef<HTMLFormElement>(null)\n\n // - Locale\n const { locale: sharedLocale } = useContext(SharedContext) || {}\n const translation = useTranslation().Field\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldsRef: ContextState['mountedFieldsRef'] = useRef(\n new Map()\n )\n\n // - Snapshots\n const snapshotsRef: ContextState['snapshotsRef'] = useRef(new Map())\n const existingFieldsRef: ContextState['existingFieldsRef'] = useRef(\n new Map()\n )\n\n // - Errors from provider validation (the whole data set)\n const hasVisibleErrorRef = useRef<Map<Path, boolean>>(new Map())\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const addSetShowAllErrorsRef = useRef<\n Array<(showAllErrors: boolean) => void>\n >([])\n const showAllErrorsRef = useRef<number | boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors ? Date.now() : showAllErrors\n forceUpdate()\n addSetShowAllErrorsRef.current.forEach((fn) => fn?.(showAllErrors))\n }, [])\n const revealError = useCallback((path: Path, hasError: boolean) => {\n if (hasError) {\n hasVisibleErrorRef.current.set(path, hasError)\n } else {\n hasVisibleErrorRef.current.delete(path)\n }\n forceUpdate() // Will rerender the whole form initially\n }, [])\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n submitStateRef.current = { ...submitStateRef.current, ...state }\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const keepPending = useRef(false)\n const setFormState = useCallback<ContextState['setFormState']>(\n (formState: SubmitState, options = {}) => {\n if (typeof options?.keepPending === 'boolean') {\n keepPending.current = options?.keepPending\n }\n formStateRef.current = formState\n forceUpdate()\n },\n []\n )\n\n // - States (e.g. error) reported by fields, based on their direct validation rules\n const fieldErrorRef = useRef<Record<Path, Error>>({})\n const fieldStateRef = useRef<Record<Path, SubmitState>>({})\n\n // - Data\n const initialData = useMemo<Data>(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Data>(initialData)\n const isEmptyDataRef = useRef(false)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const executeAjvValidator = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors,\n internalDataRef.current\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n executeAjvValidator()\n forceUpdate()\n }, [executeAjvValidator])\n\n // - Error handling\n const checkFieldStateFor = useCallback(\n (path: Path, state: SubmitState) => {\n return Boolean(\n state === 'error'\n ? errorsRef.current?.[path] instanceof Error ||\n fieldErrorRef.current[path] instanceof Error\n : fieldStateRef.current[path] === state\n )\n },\n []\n )\n const hasFieldState = useCallback(\n (state: SubmitState) => {\n return Array.from(mountedFieldsRef.current.entries()).some(\n ([path, item]) => {\n return item.isMounted && checkFieldStateFor(path, state)\n }\n )\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n return Array.from(mountedFieldsRef.current.entries()).some(\n ([p, item]) => {\n return (\n item.isMounted &&\n p === path &&\n checkFieldStateFor(path, 'error')\n )\n }\n )\n },\n [checkFieldStateFor]\n )\n const hasErrors = useCallback(() => {\n return hasFieldState('error')\n }, [hasFieldState])\n\n /**\n * Sets the error state for a specific path\n */\n const setFieldError: ContextState['setFieldError'] = useCallback(\n (path, error) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState: ContextState['setFieldState'] = useCallback(\n (path, fieldState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n const getDataPathHandlerParameters = useCallback(\n (\n path: Path,\n data: Data = internalDataRef.current\n ): DataPathHandlerParameters => {\n const value = pointer.has(data, path)\n ? pointer.get(data, path)\n : undefined\n const { value: displayValue } =\n fieldDisplayValueRef.current[path] || {}\n const props = fieldInternalsRef.current[path]?.props\n const label = props?.label\n const error = fieldErrorRef.current[path]\n\n return {\n path,\n value,\n displayValue,\n label,\n props,\n data: internalDataRef.current, // always use the internal data\n error,\n\n /** @deprecated – can be removed in v11 */\n internal: { error },\n }\n },\n []\n )\n\n /**\n * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (\n data: Data,\n handler: TransformData | FilterData,\n { remove = false, mutate = true, fireHandlerWhen = null } = {}\n ) => {\n const freshData = {} as Data\n const mutateEntry = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n if (mutate) {\n data = structuredClone(data)\n pointer.set(data, path, result)\n } else {\n pointer.set(freshData, path, result)\n }\n }\n }\n }\n\n if (typeof handler === 'function') {\n Object.keys(fieldInternalsRef.current).forEach((path) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const { type } = fieldDisplayValueRef.current[path] || {}\n if (fireHandlerWhen?.({ type }) !== false) {\n const result = handler(\n getDataPathHandlerParameters(path, data)\n )\n mutateEntry(path, result)\n }\n }\n })\n\n if (!mutate) {\n return freshData\n }\n\n return data\n } else if (handler) {\n const runFilter = ({ path, condition }) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const result =\n typeof condition === 'function'\n ? condition(getDataPathHandlerParameters(path, data))\n : condition\n mutateEntry(path, result)\n }\n }\n\n const wildcardPaths = []\n\n Object.entries(handler).forEach(([path, condition]) => {\n if (path.includes('*')) {\n const parts = path.split(/\\/\\*/g)\n const exists = pointer.has(data, parts[0])\n if (exists) {\n const traverse = (\n subData: unknown,\n subPath: string,\n idx: number\n ) => {\n if (idx === parts.length - 1) {\n wildcardPaths.push({ path: subPath, condition })\n return\n }\n const list = pointer.get(subData, subPath)\n if (Array.isArray(list)) {\n list.forEach((_, i) => {\n traverse(\n list[i],\n `${subPath}/${i}${parts[idx + 1]}`,\n idx + 1\n )\n })\n }\n }\n traverse(data, parts[0], 0)\n }\n } else {\n runFilter({ path, condition })\n }\n })\n\n wildcardPaths.forEach(runFilter)\n\n return data\n }\n\n return data\n },\n [getDataPathHandlerParameters]\n )\n\n /**\n * Ensure only visible data is returned\n */\n const visibleDataHandler: VisibleDataHandler<Data> = useCallback(\n (data = internalDataRef.current, { keepPaths, removePaths } = {}) => {\n const visibleData = {} as Partial<Data>\n\n mountedFieldsRef.current.forEach((item, path) => {\n if (\n item &&\n item.isVisible !== false &&\n (item.isPreMounted !== false || item.wasStepChange === true) &&\n (removePaths ? !removePaths.includes(path) : true) &&\n pointer.has(data, path)\n ) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n })\n\n if (keepPaths) {\n keepPaths.forEach((path) => {\n if (pointer.has(data, path)) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n })\n }\n\n return visibleData\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter: FilterData) => {\n if (filter) {\n return mutateDataHandler(data, filter, { remove: true })\n }\n\n return data\n },\n [mutateDataHandler]\n )\n\n const filterData = useCallback(\n (filter: FilterData, data = internalDataRef.current) => {\n return filterDataHandler(data, filter)\n },\n [filterDataHandler]\n )\n\n const fieldDisplayValueRef: ContextState['fieldDisplayValueRef'] =\n useRef({})\n\n const fieldConnectionsRef = useRef<\n Record<Path, Record<string, unknown>>\n >({})\n const setFieldConnection = useCallback(\n (path: Path, connections: Record<string, unknown>) => {\n fieldConnectionsRef.current[path] = connections\n },\n []\n )\n\n const fieldInternalsRef = useRef<FieldInternalsRef>({})\n const setFieldInternals = useCallback(\n (path: Path, props: FieldInternalsRefProps, id: string) => {\n fieldInternalsRef.current[path] = Object.assign(\n fieldInternalsRef.current[path] || {},\n { props, id }\n )\n },\n []\n )\n\n const valueInternalsRef = useRef<ValueInternalsRef>({})\n const setValueInternals = useCallback(\n (path: Path, props: ValueProps) => {\n valueInternalsRef.current[path] = Object.assign(\n valueInternalsRef.current[path] || {},\n { props }\n )\n },\n []\n )\n\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldInternalsRef.current) {\n if (mountedFieldsRef.current.get(path)?.isMounted) {\n const props = fieldInternalsRef.current[path]?.props\n if (\n isAsync(props?.onChangeValidator) ||\n isAsync(props?.onBlurValidator)\n ) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<SharedAttachments<Data>>(\n createReferenceKey(id, 'attachments')\n )\n const sharedDataContext = useSharedState<ContextState>(\n createReferenceKey(id, 'data-context')\n )\n\n const setSharedData = sharedData.set\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n const internalData = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData &&\n typeof internalDataRef.current === 'object'\n ) {\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current &&\n typeof internalDataRef.current === 'object'\n ) {\n cacheRef.current.shared = sharedData.data\n\n if (isEmptyDataRef.current) {\n return (\n Array.isArray(internalDataRef.current) ? [] : clearedData\n ) as Data\n }\n\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [id, initialData, sharedData, data])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n const clearData = useCallback(() => {\n isEmptyDataRef.current = true\n internalDataRef.current = ((typeof emptyData === 'function'\n ? emptyData(internalDataRef.current)\n : emptyData) ??\n (Array.isArray(internalDataRef.current) ? [] : clearedData)) as Data\n\n if (id) {\n setSharedData(internalDataRef.current)\n }\n\n forceUpdate()\n onClear?.()\n\n requestAnimationFrame?.(() => {\n isEmptyDataRef.current = false\n }) // Delay so the field validation error message are not shown\n }, [emptyData, id, onClear, setSharedData])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n const setData = useCallback(\n (newData: Data, preventUpdate = false) => {\n // - Mutate the data context\n if (transformIn) {\n newData = mutateDataHandler(newData, transformIn)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData(newData, { preventSyncOfSameInstance: true })\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n if (!preventUpdate) {\n forceUpdate() // Will rerender the whole form initially\n }\n },\n [\n extendSharedData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\n ]\n )\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value, { preventUpdate } = {}) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n setData(newData, preventUpdate)\n },\n [setData]\n )\n\n /**\n * Update the data set on user interaction (unvalidated)\n */\n const handlePathChangeUnvalidated: ContextState['handlePathChange'] =\n useCallback(\n async (path, value) => {\n if (!path) {\n return null\n }\n\n updateDataValue(path, value)\n\n if (isAsync(onPathChange)) {\n await onPathChange?.(path, value)\n } else {\n onPathChange?.(path, value)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onPathChange' && itm.path === path) {\n const { callback } = itm\n if (isAsync(callback)) {\n await callback({ value })\n } else {\n callback({ value })\n }\n }\n }\n },\n [onPathChange, updateDataValue]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value = '_undefined_') => {\n if (!path) {\n return null\n }\n\n if (value !== '_undefined_') {\n handlePathChangeUnvalidated(path, value)\n }\n\n showAllErrorsRef.current = false\n\n validateData()\n\n const data = internalDataRef.current as Data\n const options = { filterData }\n const transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData, options)\n } else {\n cb(transformedData, options)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData, options)\n }\n\n return onChange?.(transformedData, options)\n },\n [\n filterData,\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback((callback: OnChange<Data>) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n }, [])\n\n // - Mounted fields\n const setMountedFieldState = useCallback(\n (path: Path, state: MountState) => {\n mountedFieldsRef.current.set(path, {\n ...mountedFieldsRef.current.get(path),\n ...state,\n })\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onMount' && itm.path === path) {\n const { callback } = itm\n callback()\n }\n }\n },\n []\n )\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined, customStatus: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behavior if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehavior || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const item of fieldEventListenersRef.current) {\n const { path, type, callback } = item\n if (\n type === 'onSubmit' &&\n mountedFieldsRef.current.get(path)?.isMounted\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n let result: EventStateObject\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let submitResult: OnSubmitReturn\n try {\n if (isolate) {\n submitResult = await onCommit?.(internalDataRef.current, {\n clearData,\n })\n } else {\n submitResult = await onSubmit()\n }\n\n if (submitResult instanceof Error) {\n throw submitResult\n }\n } catch (error) {\n submitResult = { error }\n }\n\n result = submitResult as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n if (result?.error) {\n setFormState('abort')\n } else if (keepPending.current !== true) {\n setFormState('complete')\n }\n }\n\n // Force the state to be set by a custom status\n if (result?.['status']) {\n setFormState(result?.['status'])\n }\n\n if (\n result?.error ||\n result?.warning ||\n result?.info ||\n result?.customStatus\n ) {\n setSubmitState(result)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n window.requestAnimationFrame(() => {\n setFormState(undefined)\n })\n\n if (!skipFieldValidation) {\n // Add a event listener to continue the submit after the pending state is resolved\n onSubmitContinueRef.current = () => {\n window.requestAnimationFrame(() => {\n // Do not call the validators again,\n // because we already did it in the first call\n // If they are async, we wait for them to finish anyway\n handleSubmitCall({ ...args, skipFieldValidation: true })\n })\n }\n }\n }\n\n setShowAllErrors(true)\n\n onSubmitRequest?.({\n getErrors: () =>\n Object.keys(fieldErrorRef.current)\n .map((path) => {\n return getDataPathHandlerParameters(path)\n })\n .filter(({ error }) => error),\n })\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onSubmitRequest') {\n itm.callback()\n }\n }\n }\n\n return result\n },\n [\n clearData,\n getDataPathHandlerParameters,\n hasErrors,\n hasFieldState,\n hasFieldWithAsyncValidator,\n isolate,\n onCommit,\n onSubmitRequest,\n setFormState,\n setShowAllErrors,\n setSubmitState,\n ]\n )\n\n const handleSubmitListenersRef = useRef<Array<HandleSubmitCallback>>([])\n const setHandleSubmit: ContextState['setHandleSubmit'] = useCallback(\n (callback, { remove = false } = {}) => {\n const listeners = handleSubmitListenersRef.current\n if (remove) {\n handleSubmitListenersRef.current = listeners.filter(\n (item) => item !== callback\n )\n } else if (!listeners.includes(callback)) {\n listeners.push(callback)\n }\n },\n []\n )\n const handleSubmitListeners = useCallback(() => {\n let stop = false\n const preventSubmit = () => (stop = true)\n handleSubmitListenersRef.current.forEach((cb) => {\n cb({ preventSubmit })\n })\n return stop\n }, [])\n\n const getSubmitData = useCallback(() => {\n // - Mutate the data context\n const data = internalDataRef.current\n const mutatedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n // @deprecated – can be removed in v11 (use only mutatedData instead)\n const filteredData = filterSubmitData\n ? filterDataHandler(mutatedData, filterSubmitData)\n : mutatedData\n\n return filteredData\n }, [\n filterDataHandler,\n filterSubmitData,\n mutateDataHandler,\n transformOut,\n ])\n\n const getSubmitParams = useCallback(() => {\n const reduceToVisibleFields: VisibleDataHandler<Data> = (\n data,\n options\n ) => {\n return visibleDataHandler(\n transformOut ? mutateDataHandler(data, transformOut) : data,\n options\n )\n }\n\n const transformData = (data: Data, handler: TransformData) => {\n return mutateDataHandler(data, handler, {\n mutate: false,\n fireHandlerWhen: ({ type }) => type === 'field',\n })\n }\n\n const formElement = formElementRef.current\n const params: OnSubmitParams<Data> = {\n filterData,\n reduceToVisibleFields,\n transformData,\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData,\n }\n\n return params\n }, [\n clearData,\n filterData,\n mutateDataHandler,\n sessionStorageId,\n transformOut,\n visibleDataHandler,\n ])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<\n ContextState['handleSubmit']\n >(async () => {\n return await handleSubmitCall({\n enableAsyncBehavior: isAsync(onSubmit),\n onSubmit: async () => {\n if (handleSubmitListeners()) {\n return // stop here\n }\n\n const data = getSubmitData()\n const options = getSubmitParams()\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(data, options)\n } else {\n result = onSubmit?.(data, options)\n }\n\n const completeResult = await onSubmitComplete?.(data, result)\n if (completeResult) {\n result =\n Object.keys(result).length > 0\n ? { ...result, ...completeResult }\n : completeResult\n }\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n\n return result\n },\n })\n }, [\n getSubmitData,\n getSubmitParams,\n handleSubmitCall,\n handleSubmitListeners,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n ])\n\n // Collect listeners to be called during form submit\n const fieldEventListenersRef = useRef<Array<EventListenerCall>>([])\n const setFieldEventListener = useCallback(\n (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(\n ({ path: p, type: t, callback: c }) => {\n return !(p === path && t === type && c === callback)\n }\n )\n fieldEventListenersRef.current.push({ path, type, callback })\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n }, [schema, validateData])\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n customStatus: undefined,\n })\n }, [setFormState, setSubmitState])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id) {\n if (initialData && !sharedData.data) {\n extendSharedData(initialData, { preventSyncOfSameInstance: true })\n }\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment(\n {\n visibleDataHandler,\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n clearData,\n setData,\n updateDataValue,\n fieldConnectionsRef,\n internalDataRef,\n },\n { preventSyncOfSameInstance: true }\n )\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n clearData,\n extendAttachment,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setData,\n setShowAllErrors,\n setSubmitState,\n updateDataValue,\n visibleDataHandler,\n ])\n\n const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n const contextErrorMessages =\n errorMessages?.[locale ?? sharedLocale] || errorMessages\n\n const getSourceValue = useCallback(\n <Return extends string>(value: PathStrict | unknown): Return => {\n const data = internalDataRef.current\n if (\n String(value).startsWith('/') &&\n pointer.has(data, String(value))\n ) {\n return pointer.get(data, String(value)) as unknown as Return\n }\n return value as Return\n },\n []\n )\n\n const contextValue: ContextState = {\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n setMountedFieldState,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n revealError,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldConnection,\n setFieldInternals,\n setValueInternals,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n clearData,\n visibleDataHandler,\n filterDataHandler,\n getSubmitData,\n getSubmitParams,\n addOnChangeHandler,\n setHandleSubmit,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n required,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n hasVisibleError: hasVisibleErrorRef.current.size > 0,\n addSetShowAllErrorsRef,\n fieldConnectionsRef,\n fieldDisplayValueRef,\n fieldInternalsRef,\n valueInternalsRef,\n mountedFieldsRef,\n snapshotsRef,\n existingFieldsRef,\n formElementRef,\n isEmptyDataRef,\n fieldErrorRef,\n ajvInstance: ajvRef.current,\n countryCode: countryCode\n ? getSourceValue<CountryCode>(countryCode)\n : undefined,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n internalDataRef,\n props,\n ...rest,\n }\n\n if (id) {\n sharedDataContext.set(contextValue)\n }\n\n return (\n <DataContext.Provider value={contextValue}>\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: Boolean(showAllErrorsRef.current),\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </DataContext.Provider>\n )\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<JsonObject>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<JsonObject>['asyncSubmitTimeout']\n formState: ContextState['formState']\n waitFor: boolean\n onTimeout: () => void\n}\n\nfunction useFormStatusBuffer(props: FormStatusBufferProps) {\n const {\n formState,\n waitFor,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n } = props || {}\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const stateRef = useRef<SubmitState>()\n const nowRef = useRef<number | null>(null)\n const timeoutRef = useRef<{\n complete?: NodeJS.Timeout | null\n reset?: NodeJS.Timeout | null\n timeout?: NodeJS.Timeout | null\n }>({})\n\n const setState = useCallback(\n (state: SubmitState) => {\n stateRef.current = state\n forceUpdate()\n },\n [forceUpdate]\n )\n\n const clear = useCallback(() => {\n for (const key in timeoutRef.current) {\n clearTimeout(timeoutRef.current[key])\n }\n }, [])\n\n const hadCompleteRef = useRef(false)\n const activeElementRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending' && stateRef.current !== 'pending') {\n activeElementRef.current = document.activeElement as HTMLElement\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n window.requestAnimationFrame(() => {\n activeElementRef.current?.focus?.()\n })\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n }\n\n if (stateRef.current === 'pending') {\n timeoutRef.current.timeout = setTimeout(() => {\n clear()\n setState(undefined)\n onTimeout?.()\n }, asyncSubmitTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncSubmitTimeout,\n onTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n\nexport const clearedData = Object.freeze({})\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,13 @@
1
+ import { CurrencyISO } from '../../constants/currencies';
1
2
  import { Props as NumberFieldProps } from '../Number';
2
- export type Props = NumberFieldProps;
3
+ import { PathStrict } from '../../types';
4
+ export type Props = NumberFieldProps & {
5
+ /**
6
+ * Will change the currency.
7
+ * You can also set a path as the value, e.g. `/myCurrencyPath`.
8
+ */
9
+ currency?: PathStrict | CurrencyISO;
10
+ };
3
11
  declare function Currency(props: Props): import("react/jsx-runtime").JSX.Element;
4
12
  declare namespace Currency {
5
13
  var _supportsSpacingProps: boolean;
@@ -9,13 +9,18 @@ import classnames from 'classnames';
9
9
  import SharedContext from '../../../../shared/Context';
10
10
  import { getCurrencySymbol } from '../../../../components/number-format/NumberUtils';
11
11
  import { CURRENCY } from '../../../../shared/defaults';
12
+ import useDataValue from '../../hooks/useDataValue';
12
13
  import NumberField from '../Number';
13
14
  function Currency(props) {
14
- var _props$currency, _props$placeholder;
15
+ var _props$placeholder;
15
16
  const sharedContext = useContext(SharedContext);
17
+ const {
18
+ getSourceValue
19
+ } = useDataValue();
20
+ const currencyValue = getSourceValue(props.currency);
16
21
  const preparedProps = _objectSpread(_objectSpread({}, props), {}, {
17
- currency: (_props$currency = props.currency) !== null && _props$currency !== void 0 ? _props$currency : CURRENCY,
18
- placeholder: (_props$placeholder = props.placeholder) !== null && _props$placeholder !== void 0 ? _props$placeholder : getCurrencySymbol(sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.locale, props.currency, props.currencyDisplay)
22
+ currency: currencyValue !== null && currencyValue !== void 0 ? currencyValue : CURRENCY,
23
+ placeholder: (_props$placeholder = props.placeholder) !== null && _props$placeholder !== void 0 ? _props$placeholder : getCurrencySymbol(sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.locale, currencyValue, props.currencyDisplay)
19
24
  });
20
25
  return React.createElement(NumberField, _extends({}, preparedProps, {
21
26
  className: classnames('dnb-forms-field-currency', props.className)
@@ -1 +1 @@
1
- {"version":3,"file":"Currency.js","names":["React","useContext","classnames","SharedContext","getCurrencySymbol","CURRENCY","NumberField","Currency","props","_props$currency","_props$placeholder","sharedContext","preparedProps","_objectSpread","currency","placeholder","locale","currencyDisplay","createElement","_extends","className","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Currency/Currency.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../../shared/Context'\nimport { getCurrencySymbol } from '../../../../components/number-format/NumberUtils'\nimport { CURRENCY } from '../../../../shared/defaults'\nimport NumberField, { Props as NumberFieldProps } from '../Number'\n\nexport type Props = NumberFieldProps\n\nfunction Currency(props: Props) {\n const sharedContext = useContext(SharedContext)\n\n const preparedProps = {\n ...props,\n currency: props.currency ?? CURRENCY,\n placeholder:\n props.placeholder ??\n getCurrencySymbol(\n sharedContext?.locale,\n props.currency,\n props.currencyDisplay\n ),\n }\n\n return (\n <NumberField\n {...preparedProps}\n className={classnames('dnb-forms-field-currency', props.className)}\n />\n )\n}\n\nCurrency._supportsSpacingProps = true\nexport default Currency\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,aAAa,MAAM,4BAA4B;AACtD,SAASC,iBAAiB,QAAQ,kDAAkD;AACpF,SAASC,QAAQ,QAAQ,6BAA6B;AACtD,OAAOC,WAAW,MAAqC,WAAW;AAIlE,SAASC,QAAQA,CAACC,KAAY,EAAE;EAAA,IAAAC,eAAA,EAAAC,kBAAA;EAC9B,MAAMC,aAAa,GAAGV,UAAU,CAACE,aAAa,CAAC;EAE/C,MAAMS,aAAa,GAAAC,aAAA,CAAAA,aAAA,KACdL,KAAK;IACRM,QAAQ,GAAAL,eAAA,GAAED,KAAK,CAACM,QAAQ,cAAAL,eAAA,cAAAA,eAAA,GAAIJ,QAAQ;IACpCU,WAAW,GAAAL,kBAAA,GACTF,KAAK,CAACO,WAAW,cAAAL,kBAAA,cAAAA,kBAAA,GACjBN,iBAAiB,CACfO,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEK,MAAM,EACrBR,KAAK,CAACM,QAAQ,EACdN,KAAK,CAACS,eACR;EAAC,EACJ;EAED,OACEjB,KAAA,CAAAkB,aAAA,CAACZ,WAAW,EAAAa,QAAA,KACNP,aAAa;IACjBQ,SAAS,EAAElB,UAAU,CAAC,0BAA0B,EAAEM,KAAK,CAACY,SAAS;EAAE,EACpE,CAAC;AAEN;AAEAb,QAAQ,CAACc,qBAAqB,GAAG,IAAI;AACrC,eAAed,QAAQ","ignoreList":[]}
1
+ {"version":3,"file":"Currency.js","names":["React","useContext","classnames","SharedContext","getCurrencySymbol","CURRENCY","useDataValue","NumberField","Currency","props","_props$placeholder","sharedContext","getSourceValue","currencyValue","currency","preparedProps","_objectSpread","placeholder","locale","currencyDisplay","createElement","_extends","className","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Currency/Currency.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../../shared/Context'\nimport { getCurrencySymbol } from '../../../../components/number-format/NumberUtils'\nimport { CURRENCY } from '../../../../shared/defaults'\nimport { CurrencyISO } from '../../constants/currencies'\nimport useDataValue from '../../hooks/useDataValue'\nimport NumberField, { Props as NumberFieldProps } from '../Number'\nimport { PathStrict } from '../../types'\n\nexport type Props = NumberFieldProps & {\n /**\n * Will change the currency.\n * You can also set a path as the value, e.g. `/myCurrencyPath`.\n */\n currency?: PathStrict | CurrencyISO\n}\n\nfunction Currency(props: Props) {\n const sharedContext = useContext(SharedContext)\n const { getSourceValue } = useDataValue()\n\n const currencyValue = getSourceValue(props.currency)\n\n const preparedProps = {\n ...props,\n currency: currencyValue ?? CURRENCY,\n placeholder:\n props.placeholder ??\n getCurrencySymbol(\n sharedContext?.locale,\n currencyValue,\n props.currencyDisplay\n ),\n }\n\n return (\n <NumberField\n {...preparedProps}\n className={classnames('dnb-forms-field-currency', props.className)}\n />\n )\n}\n\nCurrency._supportsSpacingProps = true\nexport default Currency\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,aAAa,MAAM,4BAA4B;AACtD,SAASC,iBAAiB,QAAQ,kDAAkD;AACpF,SAASC,QAAQ,QAAQ,6BAA6B;AAEtD,OAAOC,YAAY,MAAM,0BAA0B;AACnD,OAAOC,WAAW,MAAqC,WAAW;AAWlE,SAASC,QAAQA,CAACC,KAAY,EAAE;EAAA,IAAAC,kBAAA;EAC9B,MAAMC,aAAa,GAAGV,UAAU,CAACE,aAAa,CAAC;EAC/C,MAAM;IAAES;EAAe,CAAC,GAAGN,YAAY,CAAC,CAAC;EAEzC,MAAMO,aAAa,GAAGD,cAAc,CAACH,KAAK,CAACK,QAAQ,CAAC;EAEpD,MAAMC,aAAa,GAAAC,aAAA,CAAAA,aAAA,KACdP,KAAK;IACRK,QAAQ,EAAED,aAAa,aAAbA,aAAa,cAAbA,aAAa,GAAIR,QAAQ;IACnCY,WAAW,GAAAP,kBAAA,GACTD,KAAK,CAACQ,WAAW,cAAAP,kBAAA,cAAAA,kBAAA,GACjBN,iBAAiB,CACfO,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEO,MAAM,EACrBL,aAAa,EACbJ,KAAK,CAACU,eACR;EAAC,EACJ;EAED,OACEnB,KAAA,CAAAoB,aAAA,CAACb,WAAW,EAAAc,QAAA,KACNN,aAAa;IACjBO,SAAS,EAAEpB,UAAU,CAAC,0BAA0B,EAAEO,KAAK,CAACa,SAAS;EAAE,EACpE,CAAC;AAEN;AAEAd,QAAQ,CAACe,qBAAqB,GAAG,IAAI;AACrC,eAAef,QAAQ","ignoreList":[]}
@@ -4,7 +4,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
4
4
  import { numberProperties } from '../Number/NumberDocs';
5
5
  export const currencyProperties = _objectSpread({
6
6
  currency: {
7
- doc: 'Defines what format to show the currency value in I.e `NOK` or `USD`.',
7
+ doc: 'Defines what format to show the currency value in I.e `NOK` or `USD`. You can also set a path as the value, e.g. `/myCurrencyPath`.',
8
8
  type: 'string',
9
9
  status: 'optional'
10
10
  },
@@ -1 +1 @@
1
- {"version":3,"file":"CurrencyDocs.js","names":["numberProperties","currencyProperties","_objectSpread","currency","doc","type","status","currencyDisplay"],"sources":["../../../../../../src/extensions/forms/Field/Currency/CurrencyDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { numberProperties } from '../Number/NumberDocs'\n\nexport const currencyProperties: PropertiesTableProps = {\n currency: {\n doc: 'Defines what format to show the currency value in I.e `NOK` or `USD`.',\n type: 'string',\n status: 'optional',\n },\n currencyDisplay: {\n doc: 'Defined the currency display style. Defaults to `code`.',\n type: ['code', 'symbol', 'narrowSymbol', 'name'],\n status: 'optional',\n },\n ...numberProperties,\n}\n"],"mappings":";;;AACA,SAASA,gBAAgB,QAAQ,sBAAsB;AAEvD,OAAO,MAAMC,kBAAwC,GAAAC,aAAA;EACnDC,QAAQ,EAAE;IACRC,GAAG,EAAE,uEAAuE;IAC5EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,eAAe,EAAE;IACfH,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC;IAChDC,MAAM,EAAE;EACV;AAAC,GACEN,gBAAgB,CACpB","ignoreList":[]}
1
+ {"version":3,"file":"CurrencyDocs.js","names":["numberProperties","currencyProperties","_objectSpread","currency","doc","type","status","currencyDisplay"],"sources":["../../../../../../src/extensions/forms/Field/Currency/CurrencyDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { numberProperties } from '../Number/NumberDocs'\n\nexport const currencyProperties: PropertiesTableProps = {\n currency: {\n doc: 'Defines what format to show the currency value in I.e `NOK` or `USD`. You can also set a path as the value, e.g. `/myCurrencyPath`.',\n type: 'string',\n status: 'optional',\n },\n currencyDisplay: {\n doc: 'Defined the currency display style. Defaults to `code`.',\n type: ['code', 'symbol', 'narrowSymbol', 'name'],\n status: 'optional',\n },\n ...numberProperties,\n}\n"],"mappings":";;;AACA,SAASA,gBAAgB,QAAQ,sBAAsB;AAEvD,OAAO,MAAMC,kBAAwC,GAAAC,aAAA;EACnDC,QAAQ,EAAE;IACRC,GAAG,EAAE,qIAAqI;IAC1IC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,eAAe,EAAE;IACfH,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC;IAChDC,MAAM,EAAE;EACV;AAAC,GACEN,gBAAgB,CACpB","ignoreList":[]}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import { ContextState } from '../../DataContext/Context';
2
3
  import { ContextProps } from '../../../../shared/Context';
3
4
  import type { FieldProps } from '../../types';
4
5
  import { FieldProviderProps } from './FieldProvider';
@@ -74,9 +75,66 @@ declare function useFieldProvider(props?: Omit<FieldProviderProps, 'children'>):
74
75
  'aria-valuemin'?: number;
75
76
  'aria-valuenow'?: number;
76
77
  'aria-valuetext'?: string;
77
- onFocus?: (value: unknown, additionalArgs?: import("../../types").ReceiveAdditionalEventArgs<unknown, import("../../types").DefaultErrorMessages>) => void;
78
- onBlur?: (value: unknown, additionalArgs?: import("../../types").ReceiveAdditionalEventArgs<unknown, import("../../types").DefaultErrorMessages>) => void;
79
- onChange?: (value: unknown, additionalArgs?: import("../../types").ReceiveAdditionalEventArgs<unknown, import("../../types").DefaultErrorMessages>) => void | import("../../types").EventReturnWithStateObjectAndSuccess | Promise<void | import("../../types").EventReturnWithStateObjectAndSuccess>;
78
+ onFocus?: (value: unknown, additionalArgs?: import("../../types").ProvideAdditionalEventArgs & {
79
+ errorMessages: import("../../types").DefaultErrorMessages;
80
+ connectWithPath: (path: string) => {
81
+ getValue: () => unknown;
82
+ };
83
+ connectWithItemPath: (path: string) => {
84
+ getValue: () => unknown;
85
+ };
86
+ getValueByPath: import("../../hooks/useDataValue").GetValueByPath<unknown>;
87
+ getSourceValue: import("../../hooks/useDataValue").GetValueByPath<unknown>;
88
+ setFieldEventListener: (path: string, type: "onSubmit" | "onSubmitRequest" | "onPathChange" | "onMount", callback: (params?: {
89
+ value: unknown;
90
+ }) => void | Promise<void | Error>) => void;
91
+ validators: Record<string, import("../../types").Validator<unknown, import("../../types").DefaultErrorMessages>>;
92
+ props: import("../../types").UseFieldProps<unknown, unknown, import("../../types").DefaultErrorMessages>;
93
+ dataContext: ContextState;
94
+ } & {
95
+ pattern?: string;
96
+ required?: string;
97
+ }) => void;
98
+ onBlur?: (value: unknown, additionalArgs?: import("../../types").ProvideAdditionalEventArgs & {
99
+ errorMessages: import("../../types").DefaultErrorMessages;
100
+ connectWithPath: (path: string) => {
101
+ getValue: () => unknown;
102
+ };
103
+ connectWithItemPath: (path: string) => {
104
+ getValue: () => unknown;
105
+ };
106
+ getValueByPath: import("../../hooks/useDataValue").GetValueByPath<unknown>;
107
+ getSourceValue: import("../../hooks/useDataValue").GetValueByPath<unknown>;
108
+ setFieldEventListener: (path: string, type: "onSubmit" | "onSubmitRequest" | "onPathChange" | "onMount", callback: (params?: {
109
+ value: unknown;
110
+ }) => void | Promise<void | Error>) => void;
111
+ validators: Record<string, import("../../types").Validator<unknown, import("../../types").DefaultErrorMessages>>;
112
+ props: import("../../types").UseFieldProps<unknown, unknown, import("../../types").DefaultErrorMessages>;
113
+ dataContext: ContextState;
114
+ } & {
115
+ pattern?: string;
116
+ required?: string;
117
+ }) => void;
118
+ onChange?: (value: unknown, additionalArgs?: import("../../types").ProvideAdditionalEventArgs & {
119
+ errorMessages: import("../../types").DefaultErrorMessages;
120
+ connectWithPath: (path: string) => {
121
+ getValue: () => unknown;
122
+ };
123
+ connectWithItemPath: (path: string) => {
124
+ getValue: () => unknown;
125
+ };
126
+ getValueByPath: import("../../hooks/useDataValue").GetValueByPath<unknown>;
127
+ getSourceValue: import("../../hooks/useDataValue").GetValueByPath<unknown>;
128
+ setFieldEventListener: (path: string, type: "onSubmit" | "onSubmitRequest" | "onPathChange" | "onMount", callback: (params?: {
129
+ value: unknown;
130
+ }) => void | Promise<void | Error>) => void;
131
+ validators: Record<string, import("../../types").Validator<unknown, import("../../types").DefaultErrorMessages>>;
132
+ props: import("../../types").UseFieldProps<unknown, unknown, import("../../types").DefaultErrorMessages>;
133
+ dataContext: ContextState;
134
+ } & {
135
+ pattern?: string;
136
+ required?: string;
137
+ }) => void | import("../../types").EventReturnWithStateObjectAndSuccess | Promise<void | import("../../types").EventReturnWithStateObjectAndSuccess>;
80
138
  help?: import("../../../../components/help-button/HelpButtonInline").HelpProps;
81
139
  locale?: string;
82
140
  autoComplete?: AutoFill;