@dnb/eufemia 10.25.0 → 10.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (827) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/cjs/components/autocomplete/Autocomplete.js +9 -2
  3. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  4. package/cjs/components/card/style/dnb-card.css +3 -0
  5. package/cjs/components/card/style/dnb-card.min.css +1 -1
  6. package/cjs/components/card/style/dnb-card.scss +4 -0
  7. package/cjs/components/input-masked/InputMaskedUtils.js +10 -7
  8. package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
  9. package/cjs/components/table/style/dnb-table.css +3 -0
  10. package/cjs/components/table/style/dnb-table.min.css +1 -1
  11. package/cjs/components/table/style/table-th.scss +4 -1
  12. package/cjs/components/textarea/Textarea.js +24 -17
  13. package/cjs/components/textarea/Textarea.js.map +1 -1
  14. package/cjs/extensions/forms/DataContext/Context.d.ts +2 -1
  15. package/cjs/extensions/forms/DataContext/Context.js +1 -0
  16. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  17. package/cjs/extensions/forms/DataContext/Provider/Provider.js +4 -2
  18. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  19. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +5 -7
  20. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  21. package/cjs/extensions/forms/Field/Boolean/Boolean.js +5 -8
  22. package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  23. package/cjs/extensions/forms/Field/Composition/Composition.d.ts +6 -0
  24. package/cjs/extensions/forms/Field/Composition/Composition.js +19 -0
  25. package/cjs/extensions/forms/Field/Composition/Composition.js.map +1 -0
  26. package/cjs/extensions/forms/Field/Composition/index.d.ts +2 -0
  27. package/cjs/extensions/forms/Field/Composition/index.js +27 -0
  28. package/cjs/extensions/forms/Field/Composition/index.js.map +1 -0
  29. package/cjs/extensions/forms/Field/Currency/Currency.js +6 -4
  30. package/cjs/extensions/forms/Field/Currency/Currency.js.map +1 -1
  31. package/cjs/extensions/forms/Field/Date/Date.js +5 -7
  32. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  33. package/cjs/extensions/forms/Field/Email/Email.js +6 -10
  34. package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
  35. package/cjs/extensions/forms/Field/Expiry/Expiry.js +24 -12
  36. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  37. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +4 -6
  38. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  39. package/cjs/extensions/forms/Field/Number/Number.js +8 -7
  40. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  41. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +5 -7
  42. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  43. package/cjs/extensions/forms/Field/Password/Password.js +5 -8
  44. package/cjs/extensions/forms/Field/Password/Password.js.map +1 -1
  45. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
  46. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -5
  47. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  48. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +1 -1
  49. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +15 -16
  50. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  51. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  52. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +6 -5
  53. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  54. package/cjs/extensions/forms/Field/String/String.js +9 -9
  55. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  56. package/cjs/extensions/forms/Field/Toggle/Toggle.js +6 -7
  57. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  58. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  59. package/cjs/extensions/forms/Field/index.js +7 -0
  60. package/cjs/extensions/forms/Field/index.js.map +1 -1
  61. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +3 -4
  62. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  63. package/cjs/extensions/forms/Form/Element/style/dnb-forms-element.css +7 -0
  64. package/cjs/extensions/forms/Form/Element/style/dnb-forms-element.min.css +1 -0
  65. package/cjs/extensions/forms/Form/Element/style/dnb-forms-element.scss +9 -0
  66. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +5 -5
  67. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  68. package/cjs/extensions/forms/Form/SubmitIndicator/style/index.d.ts +1 -1
  69. package/cjs/extensions/forms/Form/SubmitIndicator/style/index.js +1 -1
  70. package/cjs/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -1
  71. package/cjs/extensions/forms/Form/data-context/useData.js +6 -3
  72. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  73. package/cjs/extensions/forms/Form/data-context/useError.d.ts +1 -0
  74. package/cjs/extensions/forms/Form/data-context/useError.js +13 -5
  75. package/cjs/extensions/forms/Form/data-context/useError.js.map +1 -1
  76. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  77. package/cjs/extensions/forms/Form/index.js +7 -0
  78. package/cjs/extensions/forms/Form/index.js.map +1 -1
  79. package/cjs/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +4 -7
  80. package/cjs/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
  81. package/cjs/extensions/forms/Value/Boolean/Boolean.js +4 -7
  82. package/cjs/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  83. package/cjs/extensions/forms/Value/Date/Date.js +4 -7
  84. package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
  85. package/cjs/extensions/forms/Value/Email/Email.js +4 -7
  86. package/cjs/extensions/forms/Value/Email/Email.js.map +1 -1
  87. package/cjs/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +4 -7
  88. package/cjs/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  89. package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js +4 -7
  90. package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
  91. package/cjs/extensions/forms/Wizard/Buttons/Buttons.js +33 -0
  92. package/cjs/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -0
  93. package/cjs/extensions/forms/Wizard/Buttons/index.js.map +1 -0
  94. package/cjs/extensions/forms/Wizard/Container/WizardContainer.d.ts +19 -0
  95. package/cjs/extensions/forms/{StepsLayout/StepsLayout.js → Wizard/Container/WizardContainer.js} +53 -45
  96. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -0
  97. package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.d.ts +3 -0
  98. package/cjs/extensions/forms/{StepsLayout/StepsLayoutDocs.js → Wizard/Container/WizardContainerDocs.js} +8 -8
  99. package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -0
  100. package/cjs/extensions/forms/Wizard/Container/index.d.ts +2 -0
  101. package/cjs/extensions/forms/Wizard/Container/index.js +27 -0
  102. package/cjs/extensions/forms/Wizard/Container/index.js.map +1 -0
  103. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -0
  104. package/cjs/extensions/forms/{StepsLayout/StepsContext.js → Wizard/Context/WizardContext.js} +7 -4
  105. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -0
  106. package/cjs/extensions/forms/Wizard/Context/index.d.ts +2 -0
  107. package/cjs/extensions/forms/Wizard/Context/index.js +27 -0
  108. package/cjs/extensions/forms/Wizard/Context/index.js.map +1 -0
  109. package/cjs/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.js +6 -6
  110. package/cjs/extensions/forms/Wizard/NextButton/NextButton.js.map +1 -0
  111. package/cjs/extensions/forms/Wizard/NextButton/index.js.map +1 -0
  112. package/cjs/extensions/forms/{StepsLayout → Wizard}/PreviousButton/PreviousButton.js +7 -7
  113. package/cjs/extensions/forms/Wizard/PreviousButton/PreviousButton.js.map +1 -0
  114. package/cjs/extensions/forms/Wizard/PreviousButton/index.js.map +1 -0
  115. package/cjs/extensions/forms/{StepsLayout → Wizard}/Step/Step.js +3 -3
  116. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -0
  117. package/cjs/extensions/forms/Wizard/Step/index.js.map +1 -0
  118. package/cjs/extensions/forms/Wizard/hooks/useNextRouter.d.ts +7 -0
  119. package/cjs/extensions/forms/Wizard/hooks/useNextRouter.js +52 -0
  120. package/cjs/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -0
  121. package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.d.ts +3 -0
  122. package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.js +60 -0
  123. package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -0
  124. package/cjs/extensions/forms/Wizard/hooks/useReachRouter.d.ts +6 -0
  125. package/cjs/extensions/forms/Wizard/hooks/useReachRouter.js +56 -0
  126. package/cjs/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -0
  127. package/cjs/extensions/forms/Wizard/hooks/useReactRouter.d.ts +5 -0
  128. package/cjs/extensions/forms/Wizard/hooks/useReactRouter.js +47 -0
  129. package/cjs/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -0
  130. package/cjs/extensions/forms/Wizard/hooks/useStep.d.ts +5 -0
  131. package/cjs/extensions/forms/Wizard/hooks/useStep.js +30 -0
  132. package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -0
  133. package/cjs/extensions/forms/Wizard/index.d.ts +13 -0
  134. package/cjs/extensions/forms/Wizard/index.js +87 -0
  135. package/cjs/extensions/forms/Wizard/index.js.map +1 -0
  136. package/{extensions/forms/StepsLayout/style/dnb-steps-layout.css → cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css} +10 -9
  137. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -0
  138. package/{extensions/forms/StepsLayout/style/dnb-steps-layout.scss → cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss} +5 -4
  139. package/cjs/extensions/forms/Wizard/style/index.d.ts +5 -0
  140. package/cjs/extensions/forms/Wizard/style/index.js +4 -0
  141. package/cjs/extensions/forms/Wizard/style/index.js.map +1 -0
  142. package/cjs/extensions/forms/Wizard/style.js.map +1 -0
  143. package/cjs/extensions/forms/constants/countries.d.ts +1 -0
  144. package/cjs/extensions/forms/constants/countries.js.map +1 -1
  145. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +99 -0
  146. package/cjs/extensions/forms/constants/locales/en-GB.js +100 -0
  147. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -0
  148. package/cjs/extensions/forms/constants/locales/en-US.d.ts +93 -0
  149. package/cjs/extensions/forms/constants/locales/en-US.js +25 -0
  150. package/cjs/extensions/forms/constants/locales/en-US.js.map +1 -0
  151. package/cjs/extensions/forms/constants/locales/index.d.ts +183 -0
  152. package/cjs/extensions/forms/constants/locales/index.js +18 -0
  153. package/cjs/extensions/forms/constants/locales/index.js.map +1 -0
  154. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +99 -0
  155. package/cjs/extensions/forms/constants/locales/nb-NO.js +100 -0
  156. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -0
  157. package/cjs/extensions/forms/hooks/DataValueDocs.js +4 -4
  158. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  159. package/cjs/extensions/forms/hooks/useFieldProps.js +10 -7
  160. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  161. package/cjs/extensions/forms/hooks/useLocale.d.ts +10 -0
  162. package/cjs/extensions/forms/hooks/useLocale.js +32 -0
  163. package/cjs/extensions/forms/hooks/useLocale.js.map +1 -0
  164. package/cjs/extensions/forms/index.d.ts +14 -1
  165. package/cjs/extensions/forms/index.js +15 -15
  166. package/cjs/extensions/forms/index.js.map +1 -1
  167. package/cjs/extensions/forms/style/dnb-forms.css +35 -26
  168. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  169. package/cjs/extensions/forms/types.d.ts +2 -0
  170. package/cjs/extensions/forms/types.js.map +1 -1
  171. package/cjs/shared/Context.d.ts +7 -6
  172. package/cjs/shared/Context.js.map +1 -1
  173. package/cjs/shared/Eufemia.d.ts +1 -1
  174. package/cjs/shared/Eufemia.js +2 -2
  175. package/cjs/shared/Eufemia.js.map +1 -1
  176. package/cjs/shared/component-helper.d.ts +0 -1
  177. package/cjs/shared/component-helper.js +1 -9
  178. package/cjs/shared/component-helper.js.map +1 -1
  179. package/cjs/shared/helpers/useSharedState.d.ts +3 -1
  180. package/cjs/shared/helpers/useSharedState.js.map +1 -1
  181. package/cjs/shared/locales/en-GB.d.ts +0 -51
  182. package/cjs/shared/locales/en-GB.js +3 -54
  183. package/cjs/shared/locales/en-GB.js.map +1 -1
  184. package/cjs/shared/locales/en-US.d.ts +0 -51
  185. package/cjs/shared/locales/en-US.js.map +1 -1
  186. package/cjs/shared/locales/index.d.ts +0 -102
  187. package/cjs/shared/locales/nb-NO.d.ts +0 -51
  188. package/cjs/shared/locales/nb-NO.js +3 -54
  189. package/cjs/shared/locales/nb-NO.js.map +1 -1
  190. package/cjs/shared/types.d.ts +3 -0
  191. package/cjs/shared/types.js.map +1 -1
  192. package/cjs/shared/useLocale.d.ts +8 -1
  193. package/cjs/shared/useLocale.js +24 -11
  194. package/cjs/shared/useLocale.js.map +1 -1
  195. package/cjs/style/core/scopes.scss +1 -1
  196. package/cjs/style/dnb-ui-basis.css +1 -1
  197. package/cjs/style/dnb-ui-basis.min.css +1 -1
  198. package/cjs/style/dnb-ui-body.css +1 -1
  199. package/cjs/style/dnb-ui-body.min.css +1 -1
  200. package/cjs/style/dnb-ui-components.css +41 -26
  201. package/cjs/style/dnb-ui-components.min.css +3 -3
  202. package/cjs/style/dnb-ui-core.css +1 -1
  203. package/cjs/style/dnb-ui-core.min.css +1 -1
  204. package/cjs/style/dnb-ui-extensions.css +35 -26
  205. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  206. package/cjs/style/dnb-ui-forms.css +35 -26
  207. package/cjs/style/dnb-ui-forms.min.css +1 -1
  208. package/cjs/style/dnb-ui-forms.scss +2 -1
  209. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +76 -52
  210. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  211. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +35 -26
  212. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  213. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +35 -26
  214. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  215. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +76 -52
  216. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  217. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +35 -26
  218. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  219. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +35 -26
  220. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  221. package/cjs/style/themes/theme-ui/ui-theme-components.css +76 -52
  222. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  223. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +35 -26
  224. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  225. package/cjs/style/themes/theme-ui/ui-theme-forms.css +35 -26
  226. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  227. package/components/autocomplete/Autocomplete.js +9 -2
  228. package/components/autocomplete/Autocomplete.js.map +1 -1
  229. package/components/card/style/dnb-card.css +3 -0
  230. package/components/card/style/dnb-card.min.css +1 -1
  231. package/components/card/style/dnb-card.scss +4 -0
  232. package/components/input-masked/InputMaskedUtils.js +10 -7
  233. package/components/input-masked/InputMaskedUtils.js.map +1 -1
  234. package/components/table/style/dnb-table.css +3 -0
  235. package/components/table/style/dnb-table.min.css +1 -1
  236. package/components/table/style/table-th.scss +4 -1
  237. package/components/textarea/Textarea.js +24 -17
  238. package/components/textarea/Textarea.js.map +1 -1
  239. package/es/components/autocomplete/Autocomplete.js +9 -2
  240. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  241. package/es/components/card/style/dnb-card.css +3 -0
  242. package/es/components/card/style/dnb-card.min.css +1 -1
  243. package/es/components/card/style/dnb-card.scss +4 -0
  244. package/es/components/input-masked/InputMaskedUtils.js +10 -7
  245. package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
  246. package/es/components/table/style/dnb-table.css +3 -0
  247. package/es/components/table/style/dnb-table.min.css +1 -1
  248. package/es/components/table/style/table-th.scss +4 -1
  249. package/es/components/textarea/Textarea.js +24 -17
  250. package/es/components/textarea/Textarea.js.map +1 -1
  251. package/es/extensions/forms/DataContext/Context.d.ts +2 -1
  252. package/es/extensions/forms/DataContext/Context.js +1 -0
  253. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  254. package/es/extensions/forms/DataContext/Provider/Provider.js +4 -2
  255. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  256. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -9
  257. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  258. package/es/extensions/forms/Field/Boolean/Boolean.js +5 -7
  259. package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  260. package/es/extensions/forms/Field/Composition/Composition.d.ts +6 -0
  261. package/es/extensions/forms/Field/Composition/Composition.js +11 -0
  262. package/es/extensions/forms/Field/Composition/Composition.js.map +1 -0
  263. package/es/extensions/forms/Field/Composition/index.d.ts +2 -0
  264. package/es/extensions/forms/Field/Composition/index.js +3 -0
  265. package/es/extensions/forms/Field/Composition/index.js.map +1 -0
  266. package/es/extensions/forms/Field/Currency/Currency.js +4 -4
  267. package/es/extensions/forms/Field/Currency/Currency.js.map +1 -1
  268. package/es/extensions/forms/Field/Date/Date.js +6 -9
  269. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  270. package/es/extensions/forms/Field/Email/Email.js +6 -9
  271. package/es/extensions/forms/Field/Email/Email.js.map +1 -1
  272. package/es/extensions/forms/Field/Expiry/Expiry.js +25 -14
  273. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  274. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +5 -8
  275. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  276. package/es/extensions/forms/Field/Number/Number.js +8 -7
  277. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  278. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +6 -9
  279. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  280. package/es/extensions/forms/Field/Password/Password.js +5 -8
  281. package/es/extensions/forms/Field/Password/Password.js.map +1 -1
  282. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
  283. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -5
  284. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  285. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +1 -1
  286. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +15 -15
  287. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  288. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  289. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +6 -5
  290. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  291. package/es/extensions/forms/Field/String/String.js +9 -9
  292. package/es/extensions/forms/Field/String/String.js.map +1 -1
  293. package/es/extensions/forms/Field/Toggle/Toggle.js +7 -9
  294. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  295. package/es/extensions/forms/Field/index.d.ts +1 -0
  296. package/es/extensions/forms/Field/index.js +1 -0
  297. package/es/extensions/forms/Field/index.js.map +1 -1
  298. package/es/extensions/forms/FieldBlock/FieldBlock.js +3 -4
  299. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  300. package/es/extensions/forms/Form/Element/style/dnb-forms-element.css +7 -0
  301. package/es/extensions/forms/Form/Element/style/dnb-forms-element.min.css +1 -0
  302. package/es/extensions/forms/Form/Element/style/dnb-forms-element.scss +9 -0
  303. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
  304. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  305. package/es/extensions/forms/Form/SubmitIndicator/style/index.d.ts +1 -1
  306. package/es/extensions/forms/Form/SubmitIndicator/style/index.js +1 -1
  307. package/es/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -1
  308. package/es/extensions/forms/Form/data-context/useData.js +7 -4
  309. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  310. package/es/extensions/forms/Form/data-context/useError.d.ts +1 -0
  311. package/es/extensions/forms/Form/data-context/useError.js +14 -6
  312. package/es/extensions/forms/Form/data-context/useError.js.map +1 -1
  313. package/es/extensions/forms/Form/index.d.ts +1 -0
  314. package/es/extensions/forms/Form/index.js +1 -0
  315. package/es/extensions/forms/Form/index.js.map +1 -1
  316. package/es/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +4 -6
  317. package/es/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
  318. package/es/extensions/forms/Value/Boolean/Boolean.js +4 -6
  319. package/es/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  320. package/es/extensions/forms/Value/Date/Date.js +4 -6
  321. package/es/extensions/forms/Value/Date/Date.js.map +1 -1
  322. package/es/extensions/forms/Value/Email/Email.js +4 -6
  323. package/es/extensions/forms/Value/Email/Email.js.map +1 -1
  324. package/es/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +4 -6
  325. package/es/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  326. package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js +4 -6
  327. package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
  328. package/es/extensions/forms/Wizard/Buttons/Buttons.js +24 -0
  329. package/es/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -0
  330. package/es/extensions/forms/Wizard/Buttons/index.js.map +1 -0
  331. package/es/extensions/forms/Wizard/Container/WizardContainer.d.ts +19 -0
  332. package/es/extensions/forms/{StepsLayout/StepsLayout.js → Wizard/Container/WizardContainer.js} +53 -45
  333. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -0
  334. package/es/extensions/forms/Wizard/Container/WizardContainerDocs.d.ts +3 -0
  335. package/{extensions/forms/StepsLayout/StepsLayoutDocs.js → es/extensions/forms/Wizard/Container/WizardContainerDocs.js} +5 -5
  336. package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -0
  337. package/es/extensions/forms/Wizard/Container/index.d.ts +2 -0
  338. package/es/extensions/forms/Wizard/Container/index.js +3 -0
  339. package/es/extensions/forms/Wizard/Container/index.js.map +1 -0
  340. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -0
  341. package/es/extensions/forms/Wizard/Context/WizardContext.js +12 -0
  342. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -0
  343. package/es/extensions/forms/Wizard/Context/index.d.ts +2 -0
  344. package/es/extensions/forms/Wizard/Context/index.js +3 -0
  345. package/es/extensions/forms/Wizard/Context/index.js.map +1 -0
  346. package/es/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.js +6 -6
  347. package/es/extensions/forms/Wizard/NextButton/NextButton.js.map +1 -0
  348. package/es/extensions/forms/Wizard/NextButton/index.js.map +1 -0
  349. package/{extensions/forms/StepsLayout → es/extensions/forms/Wizard}/PreviousButton/PreviousButton.js +7 -7
  350. package/es/extensions/forms/Wizard/PreviousButton/PreviousButton.js.map +1 -0
  351. package/es/extensions/forms/Wizard/PreviousButton/index.js.map +1 -0
  352. package/{extensions/forms/StepsLayout → es/extensions/forms/Wizard}/Step/Step.js +3 -3
  353. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -0
  354. package/es/extensions/forms/Wizard/Step/index.js.map +1 -0
  355. package/es/extensions/forms/Wizard/hooks/useNextRouter.d.ts +7 -0
  356. package/es/extensions/forms/Wizard/hooks/useNextRouter.js +42 -0
  357. package/es/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -0
  358. package/es/extensions/forms/Wizard/hooks/useQueryLocator.d.ts +3 -0
  359. package/es/extensions/forms/Wizard/hooks/useQueryLocator.js +51 -0
  360. package/es/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -0
  361. package/es/extensions/forms/Wizard/hooks/useReachRouter.d.ts +6 -0
  362. package/es/extensions/forms/Wizard/hooks/useReachRouter.js +46 -0
  363. package/es/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -0
  364. package/es/extensions/forms/Wizard/hooks/useReactRouter.d.ts +5 -0
  365. package/es/extensions/forms/Wizard/hooks/useReactRouter.js +37 -0
  366. package/es/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -0
  367. package/es/extensions/forms/Wizard/hooks/useStep.d.ts +5 -0
  368. package/es/extensions/forms/Wizard/hooks/useStep.js +22 -0
  369. package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -0
  370. package/es/extensions/forms/Wizard/index.d.ts +13 -0
  371. package/es/extensions/forms/Wizard/index.js +14 -0
  372. package/es/extensions/forms/Wizard/index.js.map +1 -0
  373. package/{cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.css → es/extensions/forms/Wizard/style/dnb-wizard-layout.css} +10 -9
  374. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -0
  375. package/es/extensions/forms/{StepsLayout/style/dnb-steps-layout.scss → Wizard/style/dnb-wizard-layout.scss} +5 -4
  376. package/es/extensions/forms/Wizard/style/index.d.ts +5 -0
  377. package/es/extensions/forms/Wizard/style/index.js +1 -0
  378. package/es/extensions/forms/Wizard/style/index.js.map +1 -0
  379. package/es/extensions/forms/Wizard/style.js.map +1 -0
  380. package/es/extensions/forms/constants/countries.d.ts +1 -0
  381. package/es/extensions/forms/constants/countries.js.map +1 -1
  382. package/es/extensions/forms/constants/locales/en-GB.d.ts +99 -0
  383. package/es/extensions/forms/constants/locales/en-GB.js +93 -0
  384. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -0
  385. package/es/extensions/forms/constants/locales/en-US.d.ts +93 -0
  386. package/es/extensions/forms/constants/locales/en-US.js +15 -0
  387. package/es/extensions/forms/constants/locales/en-US.js.map +1 -0
  388. package/es/extensions/forms/constants/locales/index.d.ts +183 -0
  389. package/es/extensions/forms/constants/locales/index.js +8 -0
  390. package/es/extensions/forms/constants/locales/index.js.map +1 -0
  391. package/es/extensions/forms/constants/locales/nb-NO.d.ts +99 -0
  392. package/es/extensions/forms/constants/locales/nb-NO.js +93 -0
  393. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -0
  394. package/es/extensions/forms/hooks/DataValueDocs.js +4 -4
  395. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  396. package/es/extensions/forms/hooks/useFieldProps.js +10 -7
  397. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  398. package/es/extensions/forms/hooks/useLocale.d.ts +10 -0
  399. package/es/extensions/forms/hooks/useLocale.js +26 -0
  400. package/es/extensions/forms/hooks/useLocale.js.map +1 -0
  401. package/es/extensions/forms/index.d.ts +14 -1
  402. package/es/extensions/forms/index.js +11 -1
  403. package/es/extensions/forms/index.js.map +1 -1
  404. package/es/extensions/forms/style/dnb-forms.css +35 -26
  405. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  406. package/es/extensions/forms/types.d.ts +2 -0
  407. package/es/extensions/forms/types.js.map +1 -1
  408. package/es/shared/Context.d.ts +7 -6
  409. package/es/shared/Context.js.map +1 -1
  410. package/es/shared/Eufemia.d.ts +1 -1
  411. package/es/shared/Eufemia.js +2 -2
  412. package/es/shared/Eufemia.js.map +1 -1
  413. package/es/shared/component-helper.d.ts +0 -1
  414. package/es/shared/component-helper.js +0 -1
  415. package/es/shared/component-helper.js.map +1 -1
  416. package/es/shared/helpers/useSharedState.d.ts +3 -1
  417. package/es/shared/helpers/useSharedState.js.map +1 -1
  418. package/es/shared/locales/en-GB.d.ts +0 -51
  419. package/es/shared/locales/en-GB.js +3 -54
  420. package/es/shared/locales/en-GB.js.map +1 -1
  421. package/es/shared/locales/en-US.d.ts +0 -51
  422. package/es/shared/locales/en-US.js.map +1 -1
  423. package/es/shared/locales/index.d.ts +0 -102
  424. package/es/shared/locales/nb-NO.d.ts +0 -51
  425. package/es/shared/locales/nb-NO.js +3 -54
  426. package/es/shared/locales/nb-NO.js.map +1 -1
  427. package/es/shared/types.d.ts +3 -0
  428. package/es/shared/types.js.map +1 -1
  429. package/es/shared/useLocale.d.ts +8 -1
  430. package/es/shared/useLocale.js +22 -11
  431. package/es/shared/useLocale.js.map +1 -1
  432. package/es/style/core/scopes.scss +1 -1
  433. package/es/style/dnb-ui-basis.css +1 -1
  434. package/es/style/dnb-ui-basis.min.css +1 -1
  435. package/es/style/dnb-ui-body.css +1 -1
  436. package/es/style/dnb-ui-body.min.css +1 -1
  437. package/es/style/dnb-ui-components.css +41 -26
  438. package/es/style/dnb-ui-components.min.css +3 -3
  439. package/es/style/dnb-ui-core.css +1 -1
  440. package/es/style/dnb-ui-core.min.css +1 -1
  441. package/es/style/dnb-ui-extensions.css +35 -26
  442. package/es/style/dnb-ui-extensions.min.css +1 -1
  443. package/es/style/dnb-ui-forms.css +35 -26
  444. package/es/style/dnb-ui-forms.min.css +1 -1
  445. package/es/style/dnb-ui-forms.scss +2 -1
  446. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +76 -52
  447. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  448. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +35 -26
  449. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  450. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +35 -26
  451. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  452. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +76 -52
  453. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  454. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +35 -26
  455. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  456. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +35 -26
  457. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  458. package/es/style/themes/theme-ui/ui-theme-components.css +76 -52
  459. package/es/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  460. package/es/style/themes/theme-ui/ui-theme-extensions.css +35 -26
  461. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  462. package/es/style/themes/theme-ui/ui-theme-forms.css +35 -26
  463. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  464. package/esm/dnb-ui-basis.min.mjs +1 -1
  465. package/esm/dnb-ui-components.min.mjs +1 -1
  466. package/esm/dnb-ui-elements.min.mjs +1 -1
  467. package/esm/dnb-ui-extensions.min.mjs +3 -3
  468. package/esm/dnb-ui-lib.min.mjs +1 -1
  469. package/extensions/forms/DataContext/Context.d.ts +2 -1
  470. package/extensions/forms/DataContext/Context.js +1 -0
  471. package/extensions/forms/DataContext/Context.js.map +1 -1
  472. package/extensions/forms/DataContext/Provider/Provider.js +4 -2
  473. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  474. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -9
  475. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  476. package/extensions/forms/Field/Boolean/Boolean.js +5 -7
  477. package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  478. package/extensions/forms/Field/Composition/Composition.d.ts +6 -0
  479. package/extensions/forms/Field/Composition/Composition.js +11 -0
  480. package/extensions/forms/Field/Composition/Composition.js.map +1 -0
  481. package/extensions/forms/Field/Composition/index.d.ts +2 -0
  482. package/extensions/forms/Field/Composition/index.js +3 -0
  483. package/extensions/forms/Field/Composition/index.js.map +1 -0
  484. package/extensions/forms/Field/Currency/Currency.js +4 -4
  485. package/extensions/forms/Field/Currency/Currency.js.map +1 -1
  486. package/extensions/forms/Field/Date/Date.js +6 -9
  487. package/extensions/forms/Field/Date/Date.js.map +1 -1
  488. package/extensions/forms/Field/Email/Email.js +6 -9
  489. package/extensions/forms/Field/Email/Email.js.map +1 -1
  490. package/extensions/forms/Field/Expiry/Expiry.js +25 -14
  491. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  492. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +5 -8
  493. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  494. package/extensions/forms/Field/Number/Number.js +8 -7
  495. package/extensions/forms/Field/Number/Number.js.map +1 -1
  496. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +6 -9
  497. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  498. package/extensions/forms/Field/Password/Password.js +5 -8
  499. package/extensions/forms/Field/Password/Password.js.map +1 -1
  500. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
  501. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -5
  502. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  503. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +1 -1
  504. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +15 -15
  505. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  506. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  507. package/extensions/forms/Field/SelectCountry/SelectCountry.js +6 -5
  508. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  509. package/extensions/forms/Field/String/String.js +9 -9
  510. package/extensions/forms/Field/String/String.js.map +1 -1
  511. package/extensions/forms/Field/Toggle/Toggle.js +7 -9
  512. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  513. package/extensions/forms/Field/index.d.ts +1 -0
  514. package/extensions/forms/Field/index.js +1 -0
  515. package/extensions/forms/Field/index.js.map +1 -1
  516. package/extensions/forms/FieldBlock/FieldBlock.js +3 -4
  517. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  518. package/extensions/forms/Form/Element/style/dnb-forms-element.css +7 -0
  519. package/extensions/forms/Form/Element/style/dnb-forms-element.min.css +1 -0
  520. package/extensions/forms/Form/Element/style/dnb-forms-element.scss +9 -0
  521. package/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
  522. package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  523. package/extensions/forms/Form/SubmitIndicator/style/index.d.ts +1 -1
  524. package/extensions/forms/Form/SubmitIndicator/style/index.js +1 -1
  525. package/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -1
  526. package/extensions/forms/Form/data-context/useData.js +7 -4
  527. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  528. package/extensions/forms/Form/data-context/useError.d.ts +1 -0
  529. package/extensions/forms/Form/data-context/useError.js +14 -6
  530. package/extensions/forms/Form/data-context/useError.js.map +1 -1
  531. package/extensions/forms/Form/index.d.ts +1 -0
  532. package/extensions/forms/Form/index.js +1 -0
  533. package/extensions/forms/Form/index.js.map +1 -1
  534. package/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +4 -6
  535. package/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
  536. package/extensions/forms/Value/Boolean/Boolean.js +4 -6
  537. package/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  538. package/extensions/forms/Value/Date/Date.js +4 -6
  539. package/extensions/forms/Value/Date/Date.js.map +1 -1
  540. package/extensions/forms/Value/Email/Email.js +4 -6
  541. package/extensions/forms/Value/Email/Email.js.map +1 -1
  542. package/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +4 -6
  543. package/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  544. package/extensions/forms/Value/PhoneNumber/PhoneNumber.js +4 -6
  545. package/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
  546. package/extensions/forms/Wizard/Buttons/Buttons.js +24 -0
  547. package/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -0
  548. package/extensions/forms/Wizard/Buttons/index.js.map +1 -0
  549. package/extensions/forms/Wizard/Container/WizardContainer.d.ts +19 -0
  550. package/extensions/forms/{StepsLayout/StepsLayout.js → Wizard/Container/WizardContainer.js} +53 -45
  551. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -0
  552. package/extensions/forms/Wizard/Container/WizardContainerDocs.d.ts +3 -0
  553. package/{es/extensions/forms/StepsLayout/StepsLayoutDocs.js → extensions/forms/Wizard/Container/WizardContainerDocs.js} +5 -5
  554. package/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -0
  555. package/extensions/forms/Wizard/Container/index.d.ts +2 -0
  556. package/extensions/forms/Wizard/Container/index.js +3 -0
  557. package/extensions/forms/Wizard/Container/index.js.map +1 -0
  558. package/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -0
  559. package/extensions/forms/Wizard/Context/WizardContext.js +12 -0
  560. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -0
  561. package/extensions/forms/Wizard/Context/index.d.ts +2 -0
  562. package/extensions/forms/Wizard/Context/index.js +3 -0
  563. package/extensions/forms/Wizard/Context/index.js.map +1 -0
  564. package/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.js +6 -6
  565. package/extensions/forms/Wizard/NextButton/NextButton.js.map +1 -0
  566. package/extensions/forms/Wizard/NextButton/index.js.map +1 -0
  567. package/{es/extensions/forms/StepsLayout → extensions/forms/Wizard}/PreviousButton/PreviousButton.js +7 -7
  568. package/extensions/forms/Wizard/PreviousButton/PreviousButton.js.map +1 -0
  569. package/extensions/forms/Wizard/PreviousButton/index.js.map +1 -0
  570. package/{es/extensions/forms/StepsLayout → extensions/forms/Wizard}/Step/Step.js +3 -3
  571. package/extensions/forms/Wizard/Step/Step.js.map +1 -0
  572. package/extensions/forms/Wizard/Step/index.js.map +1 -0
  573. package/extensions/forms/Wizard/hooks/useNextRouter.d.ts +7 -0
  574. package/extensions/forms/Wizard/hooks/useNextRouter.js +43 -0
  575. package/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -0
  576. package/extensions/forms/Wizard/hooks/useQueryLocator.d.ts +3 -0
  577. package/extensions/forms/Wizard/hooks/useQueryLocator.js +51 -0
  578. package/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -0
  579. package/extensions/forms/Wizard/hooks/useReachRouter.d.ts +6 -0
  580. package/extensions/forms/Wizard/hooks/useReachRouter.js +47 -0
  581. package/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -0
  582. package/extensions/forms/Wizard/hooks/useReactRouter.d.ts +5 -0
  583. package/extensions/forms/Wizard/hooks/useReactRouter.js +38 -0
  584. package/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -0
  585. package/extensions/forms/Wizard/hooks/useStep.d.ts +5 -0
  586. package/extensions/forms/Wizard/hooks/useStep.js +24 -0
  587. package/extensions/forms/Wizard/hooks/useStep.js.map +1 -0
  588. package/extensions/forms/Wizard/index.d.ts +13 -0
  589. package/extensions/forms/Wizard/index.js +14 -0
  590. package/extensions/forms/Wizard/index.js.map +1 -0
  591. package/{es/extensions/forms/StepsLayout/style/dnb-steps-layout.css → extensions/forms/Wizard/style/dnb-wizard-layout.css} +10 -9
  592. package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -0
  593. package/{cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.scss → extensions/forms/Wizard/style/dnb-wizard-layout.scss} +5 -4
  594. package/extensions/forms/Wizard/style/index.d.ts +5 -0
  595. package/extensions/forms/Wizard/style/index.js +1 -0
  596. package/extensions/forms/Wizard/style/index.js.map +1 -0
  597. package/extensions/forms/Wizard/style.js.map +1 -0
  598. package/extensions/forms/constants/countries.d.ts +1 -0
  599. package/extensions/forms/constants/countries.js.map +1 -1
  600. package/extensions/forms/constants/locales/en-GB.d.ts +99 -0
  601. package/extensions/forms/constants/locales/en-GB.js +93 -0
  602. package/extensions/forms/constants/locales/en-GB.js.map +1 -0
  603. package/extensions/forms/constants/locales/en-US.d.ts +93 -0
  604. package/extensions/forms/constants/locales/en-US.js +15 -0
  605. package/extensions/forms/constants/locales/en-US.js.map +1 -0
  606. package/extensions/forms/constants/locales/index.d.ts +183 -0
  607. package/extensions/forms/constants/locales/index.js +8 -0
  608. package/extensions/forms/constants/locales/index.js.map +1 -0
  609. package/extensions/forms/constants/locales/nb-NO.d.ts +99 -0
  610. package/extensions/forms/constants/locales/nb-NO.js +93 -0
  611. package/extensions/forms/constants/locales/nb-NO.js.map +1 -0
  612. package/extensions/forms/hooks/DataValueDocs.js +4 -4
  613. package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  614. package/extensions/forms/hooks/useFieldProps.js +10 -7
  615. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  616. package/extensions/forms/hooks/useLocale.d.ts +10 -0
  617. package/extensions/forms/hooks/useLocale.js +26 -0
  618. package/extensions/forms/hooks/useLocale.js.map +1 -0
  619. package/extensions/forms/index.d.ts +14 -1
  620. package/extensions/forms/index.js +12 -1
  621. package/extensions/forms/index.js.map +1 -1
  622. package/extensions/forms/style/dnb-forms.css +35 -26
  623. package/extensions/forms/style/dnb-forms.min.css +1 -1
  624. package/extensions/forms/types.d.ts +2 -0
  625. package/extensions/forms/types.js.map +1 -1
  626. package/package.json +1 -1
  627. package/shared/Context.d.ts +7 -6
  628. package/shared/Context.js.map +1 -1
  629. package/shared/Eufemia.d.ts +1 -1
  630. package/shared/Eufemia.js +2 -2
  631. package/shared/Eufemia.js.map +1 -1
  632. package/shared/component-helper.d.ts +0 -1
  633. package/shared/component-helper.js +0 -1
  634. package/shared/component-helper.js.map +1 -1
  635. package/shared/helpers/useSharedState.d.ts +3 -1
  636. package/shared/helpers/useSharedState.js.map +1 -1
  637. package/shared/locales/en-GB.d.ts +0 -51
  638. package/shared/locales/en-GB.js +3 -54
  639. package/shared/locales/en-GB.js.map +1 -1
  640. package/shared/locales/en-US.d.ts +0 -51
  641. package/shared/locales/en-US.js.map +1 -1
  642. package/shared/locales/index.d.ts +0 -102
  643. package/shared/locales/nb-NO.d.ts +0 -51
  644. package/shared/locales/nb-NO.js +3 -54
  645. package/shared/locales/nb-NO.js.map +1 -1
  646. package/shared/types.d.ts +3 -0
  647. package/shared/types.js.map +1 -1
  648. package/shared/useLocale.d.ts +8 -1
  649. package/shared/useLocale.js +23 -11
  650. package/shared/useLocale.js.map +1 -1
  651. package/style/core/scopes.scss +1 -1
  652. package/style/dnb-ui-basis.css +1 -1
  653. package/style/dnb-ui-basis.min.css +1 -1
  654. package/style/dnb-ui-body.css +1 -1
  655. package/style/dnb-ui-body.min.css +1 -1
  656. package/style/dnb-ui-components.css +41 -26
  657. package/style/dnb-ui-components.min.css +3 -3
  658. package/style/dnb-ui-core.css +1 -1
  659. package/style/dnb-ui-core.min.css +1 -1
  660. package/style/dnb-ui-extensions.css +35 -26
  661. package/style/dnb-ui-extensions.min.css +1 -1
  662. package/style/dnb-ui-forms.css +35 -26
  663. package/style/dnb-ui-forms.min.css +1 -1
  664. package/style/dnb-ui-forms.scss +2 -1
  665. package/style/themes/theme-eiendom/eiendom-theme-components.css +76 -52
  666. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  667. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +35 -26
  668. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  669. package/style/themes/theme-eiendom/eiendom-theme-forms.css +35 -26
  670. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  671. package/style/themes/theme-sbanken/sbanken-theme-components.css +76 -52
  672. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  673. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +35 -26
  674. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  675. package/style/themes/theme-sbanken/sbanken-theme-forms.css +35 -26
  676. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  677. package/style/themes/theme-ui/ui-theme-components.css +76 -52
  678. package/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  679. package/style/themes/theme-ui/ui-theme-extensions.css +35 -26
  680. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  681. package/style/themes/theme-ui/ui-theme-forms.css +35 -26
  682. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  683. package/umd/dnb-ui-basis.min.js +1 -1
  684. package/umd/dnb-ui-components.min.js +1 -1
  685. package/umd/dnb-ui-elements.min.js +1 -1
  686. package/umd/dnb-ui-extensions.min.js +3 -3
  687. package/umd/dnb-ui-lib.min.js +1 -1
  688. package/cjs/extensions/forms/Field/style/index.d.ts +0 -5
  689. package/cjs/extensions/forms/Field/style/index.js +0 -4
  690. package/cjs/extensions/forms/Field/style/index.js.map +0 -1
  691. package/cjs/extensions/forms/StepsLayout/Buttons/Buttons.js +0 -26
  692. package/cjs/extensions/forms/StepsLayout/Buttons/Buttons.js.map +0 -1
  693. package/cjs/extensions/forms/StepsLayout/Buttons/index.js.map +0 -1
  694. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js.map +0 -1
  695. package/cjs/extensions/forms/StepsLayout/NextButton/index.js.map +0 -1
  696. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +0 -1
  697. package/cjs/extensions/forms/StepsLayout/PreviousButton/index.js.map +0 -1
  698. package/cjs/extensions/forms/StepsLayout/Step/Step.js.map +0 -1
  699. package/cjs/extensions/forms/StepsLayout/Step/index.js.map +0 -1
  700. package/cjs/extensions/forms/StepsLayout/StepsContext.d.ts +0 -10
  701. package/cjs/extensions/forms/StepsLayout/StepsContext.js.map +0 -1
  702. package/cjs/extensions/forms/StepsLayout/StepsLayout.d.ts +0 -24
  703. package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +0 -1
  704. package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +0 -3
  705. package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +0 -1
  706. package/cjs/extensions/forms/StepsLayout/index.d.ts +0 -3
  707. package/cjs/extensions/forms/StepsLayout/index.js +0 -18
  708. package/cjs/extensions/forms/StepsLayout/index.js.map +0 -1
  709. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +0 -1
  710. package/cjs/extensions/forms/StepsLayout/style/index.d.ts +0 -5
  711. package/cjs/extensions/forms/StepsLayout/style/index.js +0 -4
  712. package/cjs/extensions/forms/StepsLayout/style/index.js.map +0 -1
  713. package/cjs/extensions/forms/StepsLayout/style.js.map +0 -1
  714. package/cjs/extensions/forms/StepsLayout/useStep.d.ts +0 -3
  715. package/cjs/extensions/forms/StepsLayout/useStep.js +0 -19
  716. package/cjs/extensions/forms/StepsLayout/useStep.js.map +0 -1
  717. package/cjs/shared/helpers/useEventEmitter.d.ts +0 -16
  718. package/cjs/shared/helpers/useEventEmitter.js +0 -38
  719. package/cjs/shared/helpers/useEventEmitter.js.map +0 -1
  720. package/es/extensions/forms/Field/style/index.d.ts +0 -5
  721. package/es/extensions/forms/Field/style/index.js +0 -1
  722. package/es/extensions/forms/Field/style/index.js.map +0 -1
  723. package/es/extensions/forms/StepsLayout/Buttons/Buttons.js +0 -18
  724. package/es/extensions/forms/StepsLayout/Buttons/Buttons.js.map +0 -1
  725. package/es/extensions/forms/StepsLayout/Buttons/index.js.map +0 -1
  726. package/es/extensions/forms/StepsLayout/NextButton/NextButton.js.map +0 -1
  727. package/es/extensions/forms/StepsLayout/NextButton/index.js.map +0 -1
  728. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +0 -1
  729. package/es/extensions/forms/StepsLayout/PreviousButton/index.js.map +0 -1
  730. package/es/extensions/forms/StepsLayout/Step/Step.js.map +0 -1
  731. package/es/extensions/forms/StepsLayout/Step/index.js.map +0 -1
  732. package/es/extensions/forms/StepsLayout/StepsContext.d.ts +0 -10
  733. package/es/extensions/forms/StepsLayout/StepsContext.js +0 -9
  734. package/es/extensions/forms/StepsLayout/StepsContext.js.map +0 -1
  735. package/es/extensions/forms/StepsLayout/StepsLayout.d.ts +0 -24
  736. package/es/extensions/forms/StepsLayout/StepsLayout.js.map +0 -1
  737. package/es/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +0 -3
  738. package/es/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +0 -1
  739. package/es/extensions/forms/StepsLayout/index.d.ts +0 -3
  740. package/es/extensions/forms/StepsLayout/index.js +0 -4
  741. package/es/extensions/forms/StepsLayout/index.js.map +0 -1
  742. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +0 -1
  743. package/es/extensions/forms/StepsLayout/style/index.d.ts +0 -5
  744. package/es/extensions/forms/StepsLayout/style/index.js +0 -1
  745. package/es/extensions/forms/StepsLayout/style/index.js.map +0 -1
  746. package/es/extensions/forms/StepsLayout/style.js.map +0 -1
  747. package/es/extensions/forms/StepsLayout/useStep.d.ts +0 -3
  748. package/es/extensions/forms/StepsLayout/useStep.js +0 -12
  749. package/es/extensions/forms/StepsLayout/useStep.js.map +0 -1
  750. package/es/shared/helpers/useEventEmitter.d.ts +0 -16
  751. package/es/shared/helpers/useEventEmitter.js +0 -29
  752. package/es/shared/helpers/useEventEmitter.js.map +0 -1
  753. package/extensions/forms/Field/style/index.d.ts +0 -5
  754. package/extensions/forms/Field/style/index.js +0 -1
  755. package/extensions/forms/Field/style/index.js.map +0 -1
  756. package/extensions/forms/StepsLayout/Buttons/Buttons.js +0 -18
  757. package/extensions/forms/StepsLayout/Buttons/Buttons.js.map +0 -1
  758. package/extensions/forms/StepsLayout/Buttons/index.js.map +0 -1
  759. package/extensions/forms/StepsLayout/NextButton/NextButton.js.map +0 -1
  760. package/extensions/forms/StepsLayout/NextButton/index.js.map +0 -1
  761. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +0 -1
  762. package/extensions/forms/StepsLayout/PreviousButton/index.js.map +0 -1
  763. package/extensions/forms/StepsLayout/Step/Step.js.map +0 -1
  764. package/extensions/forms/StepsLayout/Step/index.js.map +0 -1
  765. package/extensions/forms/StepsLayout/StepsContext.d.ts +0 -10
  766. package/extensions/forms/StepsLayout/StepsContext.js +0 -9
  767. package/extensions/forms/StepsLayout/StepsContext.js.map +0 -1
  768. package/extensions/forms/StepsLayout/StepsLayout.d.ts +0 -24
  769. package/extensions/forms/StepsLayout/StepsLayout.js.map +0 -1
  770. package/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +0 -3
  771. package/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +0 -1
  772. package/extensions/forms/StepsLayout/index.d.ts +0 -3
  773. package/extensions/forms/StepsLayout/index.js +0 -4
  774. package/extensions/forms/StepsLayout/index.js.map +0 -1
  775. package/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +0 -1
  776. package/extensions/forms/StepsLayout/style/index.d.ts +0 -5
  777. package/extensions/forms/StepsLayout/style/index.js +0 -1
  778. package/extensions/forms/StepsLayout/style/index.js.map +0 -1
  779. package/extensions/forms/StepsLayout/style.js.map +0 -1
  780. package/extensions/forms/StepsLayout/useStep.d.ts +0 -3
  781. package/extensions/forms/StepsLayout/useStep.js +0 -13
  782. package/extensions/forms/StepsLayout/useStep.js.map +0 -1
  783. package/shared/helpers/useEventEmitter.d.ts +0 -16
  784. package/shared/helpers/useEventEmitter.js +0 -30
  785. package/shared/helpers/useEventEmitter.js.map +0 -1
  786. /package/cjs/extensions/forms/{StepsLayout → Wizard}/Buttons/Buttons.d.ts +0 -0
  787. /package/cjs/extensions/forms/{StepsLayout → Wizard}/Buttons/index.d.ts +0 -0
  788. /package/cjs/extensions/forms/{StepsLayout → Wizard}/Buttons/index.js +0 -0
  789. /package/cjs/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.d.ts +0 -0
  790. /package/cjs/extensions/forms/{StepsLayout → Wizard}/NextButton/index.d.ts +0 -0
  791. /package/cjs/extensions/forms/{StepsLayout → Wizard}/NextButton/index.js +0 -0
  792. /package/cjs/extensions/forms/{StepsLayout → Wizard}/PreviousButton/PreviousButton.d.ts +0 -0
  793. /package/cjs/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.d.ts +0 -0
  794. /package/cjs/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.js +0 -0
  795. /package/cjs/extensions/forms/{StepsLayout → Wizard}/Step/Step.d.ts +0 -0
  796. /package/cjs/extensions/forms/{StepsLayout → Wizard}/Step/index.d.ts +0 -0
  797. /package/cjs/extensions/forms/{StepsLayout → Wizard}/Step/index.js +0 -0
  798. /package/cjs/extensions/forms/{StepsLayout → Wizard}/style.d.ts +0 -0
  799. /package/cjs/extensions/forms/{StepsLayout → Wizard}/style.js +0 -0
  800. /package/es/extensions/forms/{StepsLayout → Wizard}/Buttons/Buttons.d.ts +0 -0
  801. /package/es/extensions/forms/{StepsLayout → Wizard}/Buttons/index.d.ts +0 -0
  802. /package/es/extensions/forms/{StepsLayout → Wizard}/Buttons/index.js +0 -0
  803. /package/es/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.d.ts +0 -0
  804. /package/es/extensions/forms/{StepsLayout → Wizard}/NextButton/index.d.ts +0 -0
  805. /package/es/extensions/forms/{StepsLayout → Wizard}/NextButton/index.js +0 -0
  806. /package/es/extensions/forms/{StepsLayout → Wizard}/PreviousButton/PreviousButton.d.ts +0 -0
  807. /package/es/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.d.ts +0 -0
  808. /package/es/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.js +0 -0
  809. /package/es/extensions/forms/{StepsLayout → Wizard}/Step/Step.d.ts +0 -0
  810. /package/es/extensions/forms/{StepsLayout → Wizard}/Step/index.d.ts +0 -0
  811. /package/es/extensions/forms/{StepsLayout → Wizard}/Step/index.js +0 -0
  812. /package/es/extensions/forms/{StepsLayout → Wizard}/style.d.ts +0 -0
  813. /package/es/extensions/forms/{StepsLayout → Wizard}/style.js +0 -0
  814. /package/extensions/forms/{StepsLayout → Wizard}/Buttons/Buttons.d.ts +0 -0
  815. /package/extensions/forms/{StepsLayout → Wizard}/Buttons/index.d.ts +0 -0
  816. /package/extensions/forms/{StepsLayout → Wizard}/Buttons/index.js +0 -0
  817. /package/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.d.ts +0 -0
  818. /package/extensions/forms/{StepsLayout → Wizard}/NextButton/index.d.ts +0 -0
  819. /package/extensions/forms/{StepsLayout → Wizard}/NextButton/index.js +0 -0
  820. /package/extensions/forms/{StepsLayout → Wizard}/PreviousButton/PreviousButton.d.ts +0 -0
  821. /package/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.d.ts +0 -0
  822. /package/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.js +0 -0
  823. /package/extensions/forms/{StepsLayout → Wizard}/Step/Step.d.ts +0 -0
  824. /package/extensions/forms/{StepsLayout → Wizard}/Step/index.d.ts +0 -0
  825. /package/extensions/forms/{StepsLayout → Wizard}/Step/index.js +0 -0
  826. /package/extensions/forms/{StepsLayout → Wizard}/style.d.ts +0 -0
  827. /package/extensions/forms/{StepsLayout → Wizard}/style.js +0 -0
@@ -17,7 +17,7 @@ export type FilterData = (path: Path, value: any, props: FieldProps, internal: {
17
17
  export interface ContextState {
18
18
  id?: Identifier;
19
19
  hasContext: boolean;
20
- /** The dataset for the form / form steps */
20
+ /** The dataset for the form / form wizard */
21
21
  data: any;
22
22
  /** Should the form validate data before submitting? */
23
23
  errors?: Record<string, Error>;
@@ -43,6 +43,7 @@ export interface ContextState {
43
43
  handleUnMountField: (path: Path) => void;
44
44
  formState: SubmitState;
45
45
  setFormState?: (state: SubmitState) => void;
46
+ setSubmitState?: (state: EventStateObject) => void;
46
47
  handleSubmitCall: ({ onSubmit, enableAsyncBehaviour, skipFieldValidation, skipErrorCheck, }: {
47
48
  onSubmit: () => EventReturnWithStateObject | void | Promise<EventReturnWithStateObject | void>;
48
49
  enableAsyncBehaviour: boolean;
@@ -17,6 +17,7 @@ export const defaultContextState = {
17
17
  showAllErrors: false,
18
18
  formState: undefined,
19
19
  setFormState: () => null,
20
+ setSubmitState: () => null,
20
21
  setFieldEventListener: () => null,
21
22
  handleSubmitCall: () => null,
22
23
  setShowAllErrors: () => null,
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","disabled","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","filterDataHandler","validateData","handleSubmit","scrollToTop","showAllErrors","formState","setFormState","setFieldEventListener","handleSubmitCall","setShowAllErrors","mountedFieldPaths","handleMountField","handleUnMountField","hasErrors","hasFieldState","checkFieldStateFor","setFieldState","setFieldError","setProps","ajvInstance","contextErrorMessages","_isInsideFormElement","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, makeAjvInstance } from '../utils/ajv'\nimport {\n AllJSONSchemaVersions,\n CustomErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n Identifier,\n FieldProps,\n FormError,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport type EventListenerCall = {\n path: Path\n type: 'onSubmit'\n callback: () => any\n}\n\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterData = (\n path: Path,\n value: any,\n props: FieldProps,\n internal: {\n error: Error | undefined\n }\n) => boolean | undefined\n\nexport interface ContextState {\n id?: Identifier\n hasContext: boolean\n /** The dataset for the form / form steps */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value?: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n handlePathChangeUnvalidated: (path: Path, value: any) => void\n updateDataValue: (path: Path, value: any) => void\n setData: (data: any) => void\n filterDataHandler: (data: any, filter: FilterData) => any\n validateData: () => void\n handleSubmit: (props?: HandleSubmitProps) => any\n scrollToTop: () => void\n // Error status\n showAllErrors: boolean\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n checkFieldStateFor: (path: Path, state: SubmitState) => boolean\n setFieldState: (path: Path, fieldState: SubmitState) => void\n setFieldError: (path: Path, error: Error | FormError) => void\n // Mounted fields - Components telling the provider what fields is on screen at any time\n mountedFieldPaths: string[]\n handleMountField: (path: Path) => void\n handleUnMountField: (path: Path) => void\n formState: SubmitState\n setFormState?: (state: SubmitState) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehaviour: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => void\n setFieldEventListener: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n setProps: (path: Path, props: any) => void\n ajvInstance: Ajv\n contextErrorMessages: CustomErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n disabled: boolean\n submitState: Partial<EventStateObject>\n _isInsideFormElement?: boolean\n props: ProviderProps<unknown>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n disabled: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n filterDataHandler: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n formState: undefined,\n setFormState: () => null,\n setFieldEventListener: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n mountedFieldPaths: [],\n handleMountField: () => null,\n handleUnMountField: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n checkFieldStateFor: () => false,\n setFieldState: () => null,\n setFieldError: () => null,\n setProps: () => null,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n _isInsideFormElement: false,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAcC,eAAe,QAAQ,cAAc;AAuGnD,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,QAAQ,EAAEF,SAAS;EACnBG,WAAW,EAAEH,SAAS;EACtBI,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;EACvCC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,iBAAiB,EAAEA,CAAA,KAAM,IAAI;EAC7BC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,SAAS,EAAEb,SAAS;EACpBc,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,qBAAqB,EAAEA,CAAA,KAAM,IAAI;EACjCC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,iBAAiB,EAAE,EAAE;EACrBC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAI;EAC9BC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,kBAAkB,EAAEA,CAAA,KAAM,KAAK;EAC/BC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,QAAQ,EAAEA,CAAA,KAAM,IAAI;EACpBC,WAAW,EAAE/B,eAAe,CAAC,CAAC;EAC9BgC,oBAAoB,EAAE5B,SAAS;EAC/B6B,oBAAoB,EAAE,KAAK;EAC3BC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,OAAO,GAAGpC,KAAK,CAACqC,aAAa,CAAenC,mBAAmB,CAAC;AAEtE,eAAekC,OAAO"}
1
+ {"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","disabled","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","filterDataHandler","validateData","handleSubmit","scrollToTop","showAllErrors","formState","setFormState","setSubmitState","setFieldEventListener","handleSubmitCall","setShowAllErrors","mountedFieldPaths","handleMountField","handleUnMountField","hasErrors","hasFieldState","checkFieldStateFor","setFieldState","setFieldError","setProps","ajvInstance","contextErrorMessages","_isInsideFormElement","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, makeAjvInstance } from '../utils/ajv'\nimport {\n AllJSONSchemaVersions,\n CustomErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n Identifier,\n FieldProps,\n FormError,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport type EventListenerCall = {\n path: Path\n type: 'onSubmit'\n callback: () => any\n}\n\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterData = (\n path: Path,\n value: any,\n props: FieldProps,\n internal: {\n error: Error | undefined\n }\n) => boolean | undefined\n\nexport interface ContextState {\n id?: Identifier\n hasContext: boolean\n /** The dataset for the form / form wizard */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value?: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n handlePathChangeUnvalidated: (path: Path, value: any) => void\n updateDataValue: (path: Path, value: any) => void\n setData: (data: any) => void\n filterDataHandler: (data: any, filter: FilterData) => any\n validateData: () => void\n handleSubmit: (props?: HandleSubmitProps) => any\n scrollToTop: () => void\n // Error status\n showAllErrors: boolean\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n checkFieldStateFor: (path: Path, state: SubmitState) => boolean\n setFieldState: (path: Path, fieldState: SubmitState) => void\n setFieldError: (path: Path, error: Error | FormError) => void\n // Mounted fields - Components telling the provider what fields is on screen at any time\n mountedFieldPaths: string[]\n handleMountField: (path: Path) => void\n handleUnMountField: (path: Path) => void\n formState: SubmitState\n setFormState?: (state: SubmitState) => void\n setSubmitState?: (state: EventStateObject) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehaviour: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => void\n setFieldEventListener: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n setProps: (path: Path, props: any) => void\n ajvInstance: Ajv\n contextErrorMessages: CustomErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n disabled: boolean\n submitState: Partial<EventStateObject>\n _isInsideFormElement?: boolean\n props: ProviderProps<unknown>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n disabled: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n filterDataHandler: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n formState: undefined,\n setFormState: () => null,\n setSubmitState: () => null,\n setFieldEventListener: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n mountedFieldPaths: [],\n handleMountField: () => null,\n handleUnMountField: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n checkFieldStateFor: () => false,\n setFieldState: () => null,\n setFieldError: () => null,\n setProps: () => null,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n _isInsideFormElement: false,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAcC,eAAe,QAAQ,cAAc;AAwGnD,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,QAAQ,EAAEF,SAAS;EACnBG,WAAW,EAAEH,SAAS;EACtBI,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;EACvCC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,iBAAiB,EAAEA,CAAA,KAAM,IAAI;EAC7BC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,SAAS,EAAEb,SAAS;EACpBc,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,cAAc,EAAEA,CAAA,KAAM,IAAI;EAC1BC,qBAAqB,EAAEA,CAAA,KAAM,IAAI;EACjCC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,iBAAiB,EAAE,EAAE;EACrBC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAI;EAC9BC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,kBAAkB,EAAEA,CAAA,KAAM,KAAK;EAC/BC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,QAAQ,EAAEA,CAAA,KAAM,IAAI;EACpBC,WAAW,EAAEhC,eAAe,CAAC,CAAC;EAC9BiC,oBAAoB,EAAE7B,SAAS;EAC/B8B,oBAAoB,EAAE,KAAK;EAC3BC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,OAAO,GAAGrC,KAAK,CAACsC,aAAa,CAAepC,mBAAmB,CAAC;AAEtE,eAAemC,OAAO"}
@@ -191,13 +191,14 @@ export default function Provider(props) {
191
191
  extendAttachment === null || extendAttachment === void 0 ? void 0 : extendAttachment({
192
192
  filterDataHandler,
193
193
  hasErrors,
194
- setShowAllErrors
194
+ setShowAllErrors,
195
+ setSubmitState
195
196
  });
196
197
  if (filterData) {
197
198
  rerenderUseDataHook === null || rerenderUseDataHook === void 0 ? void 0 : rerenderUseDataHook();
198
199
  }
199
200
  }
200
- }, [extendAttachment, filterData, filterDataHandler, hasErrors, id, rerenderUseDataHook, setShowAllErrors]);
201
+ }, [extendAttachment, filterData, filterDataHandler, hasErrors, id, rerenderUseDataHook, setShowAllErrors, setSubmitState]);
201
202
  const updateDataValue = useCallback((path, value) => {
202
203
  var _internalDataRef$curr;
203
204
  if (!path) {
@@ -457,6 +458,7 @@ export default function Provider(props) {
457
458
  handleUnMountField,
458
459
  handleSubmitCall,
459
460
  setFormState,
461
+ setSubmitState,
460
462
  setShowAllErrors,
461
463
  setFieldEventListener,
462
464
  setFieldState,
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","pointer","makeAjvInstance","ajvErrorsToFormErrors","SharedProvider","useMountEffect","useUpdateEffect","isAsync","useSharedState","Context","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","_rest$disabled","forceUpdate","id","defaultData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","filterData","errorMessages","contextErrorMessages","children","rest","_objectWithoutProperties","_excluded","undefined","console","error","ajvRef","mountedFieldPathsRef","errorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","submitStateRef","setSubmitState","state","Object","assign","formStateRef","setFormState","formState","fieldErrorRef","fieldStateRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","call","errors","validateData","checkFieldStateFor","path","_errorsRef$current","Boolean","Error","hasFieldState","some","hasErrors","setFieldError","setFieldState","fieldState","filterDataHandler","filter","arguments","length","filtered","_objectSpread","entries","fieldPropsRef","forEach","_ref","_fieldErrorRef$curren","exists","has","result","get","remove","setProps","hasFieldWithAsyncValidator","validator","onBlurValidator","sharedData","sharedAttachments","setSharedData","set","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","update","updateDataValue","value","_internalDataRef$curr","givenData","match","newData","e","_window$sessionStorag2","setItem","stringify","setData","handlePathChangeUnvalidated","handlePathChange","handleMountField","addListPath","handleUnMountField","_fieldPropsRef$curren","removeListPath","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehaviour","skipFieldValidation","skipErrorCheck","asyncBehaviorIsEnabled","type","callback","fieldEventListenersRef","includes","warning","info","requestAnimationFrame","onSubmitContinueRef","handleSubmit","formElement","opts","resetForm","_formElement$reset","reset","removeItem","clearData","completeResult","keys","setFieldEventListener","_ref2","p","t","push","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","createElement","hasContext","mountedFieldPaths","paths","concat","thisPath","stateRef","nowRef","timeoutRef","setState","clear","key","clearTimeout","hadCompleteRef","isTest","process","env","NODE_ENV","minimum","setTimeout","Date","now","offset","Math","max","delay","complete","timeout"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n} from '../../utils/ajv'\nimport {\n FormError,\n CustomErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n FieldProps,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n} from '../../types'\nimport SharedProvider from '../../../../shared/Provider'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport Context, {\n ContextState,\n EventListenerCall,\n FilterData,\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 interface Props<Data extends JsonObject> {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: string\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?: Partial<Data>\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Partial<Data>\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions\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?: CustomErrorMessagesWithPaths\n /**\n * Filter the internal data context based on your criteria: `(path, value, props) => !props?.disabled`. It will iterate on each data entry.\n */\n filterData?: FilterData\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: any\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\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: () => void\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 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 defaultData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n filterData,\n errorMessages: contextErrorMessages,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n console.error(\n 'Providing both data and sessionStorageId could lead to competing data sources. To provide default data to use only before anything is changed in the interface, use defaultData.'\n )\n }\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldPathsRef = useRef<Path[]>([])\n\n // - Errors from provider validation (the whole data set)\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const showAllErrorsRef = useRef<boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors\n forceUpdate()\n }, [])\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n Object.assign(submitStateRef.current, state)\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const setFormState = useCallback((formState: SubmitState) => {\n formStateRef.current = formState\n forceUpdate()\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 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<Partial<Data>>(initialData)\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 mountedFieldPathsRef.current.some((path) => {\n return checkFieldStateFor(path, state)\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 = useCallback(\n (path: Path, error: Error | FormError) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState = useCallback(\n (path: Path, fieldState: SubmitState) => {\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 /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter = filterData) => {\n if (filter) {\n const filtered = { ...data }\n Object.entries(fieldPropsRef.current).forEach(([path, props]) => {\n const exists = pointer.has(data, path)\n const result = filter(\n path,\n exists ? pointer.get(data, path) : undefined,\n props,\n {\n error: fieldErrorRef.current?.[path],\n }\n )\n if (result === false && exists) {\n pointer.remove(filtered, path)\n }\n })\n\n return filtered\n }\n\n return data\n },\n [filterData]\n )\n const fieldPropsRef = useRef<Record<Path, FieldProps>>({})\n const setProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n fieldPropsRef.current[path] = props\n },\n []\n )\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldPropsRef.current) {\n const props = fieldPropsRef.current[path]\n if (isAsync(props.validator) || isAsync(props.onBlurValidator)) {\n return true\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<{\n filterDataHandler?: Props<Data>['filterData']\n hasErrors?: ContextState['hasErrors']\n setShowAllErrors?: ContextState['setShowAllErrors']\n rerenderUseDataHook?: () => void\n }>(id + '-attachments')\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 internalDataRef.current = 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 ) {\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 ) {\n cacheRef.current.shared = sharedData.data\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 }, [data, id, initialData, sharedData])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id && initialData && !sharedData.data) {\n extendSharedData?.(initialData)\n }\n }, [id, initialData, extendSharedData, sharedData.data])\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 useLayoutEffect(() => {\n if (id) {\n extendAttachment?.({\n filterDataHandler,\n hasErrors,\n setShowAllErrors,\n })\n if (filterData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n extendAttachment,\n filterData,\n filterDataHandler,\n hasErrors,\n id,\n rerenderUseDataHook,\n setShowAllErrors,\n ])\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value) => {\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 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 internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData?.(newData)\n if (filterData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(newData)\n )\n }\n\n forceUpdate()\n\n return newData\n },\n [\n id,\n sessionStorageId,\n extendSharedData,\n filterData,\n rerenderUseDataHook,\n ]\n )\n\n const setData = useCallback((newData: Data) => {\n internalDataRef.current = newData\n forceUpdate()\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 [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 if (isAsync(onChange)) {\n return await onChange(internalDataRef.current as Data)\n }\n\n return onChange?.(internalDataRef.current as Data)\n },\n [handlePathChangeUnvalidated, onChange, validateData]\n )\n\n // - Mounted fields\n const handleMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n if (fieldPropsRef.current?.[path]) {\n delete fieldPropsRef.current[path]\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 enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behaviour if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehaviour || 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 {\n path,\n type,\n callback,\n } of fieldEventListenersRef.current) {\n if (\n type === 'onSubmit' &&\n mountedFieldPathsRef.current.includes(path)\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 if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let result: EventStateObject | unknown\n\n try {\n result = await onSubmit()\n\n if (result instanceof Error) {\n throw result\n }\n } catch (error) {\n result = { error }\n }\n\n const state = result as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n setFormState(state?.error ? 'abort' : 'complete')\n }\n\n // Force the state to be set by a custom status\n if (state?.['status']) {\n setFormState(state?.['status'])\n }\n\n if (state?.error || state?.warning || state?.info) {\n setSubmitState(state)\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 onSubmitRequest?.()\n\n setShowAllErrors(true)\n }\n\n return internalDataRef.current\n },\n [\n setSubmitState,\n hasErrors,\n hasFieldWithAsyncValidator,\n hasFieldState,\n setFormState,\n onSubmitRequest,\n setShowAllErrors,\n ]\n )\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n async ({ formElement = null } = {}) => {\n handleSubmitCall({\n enableAsyncBehaviour: isAsync(onSubmit),\n onSubmit: async () => {\n const args = filterDataHandler(internalDataRef.current as Data)\n const opts = {\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 internalDataRef.current = {}\n if (id) {\n setSharedData?.({} as Data)\n } else {\n forceUpdate()\n }\n },\n }\n\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(args, opts)\n } else {\n result = onSubmit?.(args, opts)\n }\n\n const completeResult = await onSubmitComplete?.(args, 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 [\n filterDataHandler,\n handleSubmitCall,\n id,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n sessionStorageId,\n setSharedData,\n ]\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(({ path: p, type: t }) => {\n return !(p === path && t === type)\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 useMountEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n })\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 })\n }, [setFormState, setSubmitState])\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 = rest?.['disabled'] ?? formState === 'pending'\n\n return (\n <Context.Provider\n value={{\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n handleMountField,\n handleUnMountField,\n handleSubmitCall,\n setFormState,\n setShowAllErrors,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setProps,\n hasErrors,\n hasFieldState,\n checkFieldStateFor,\n validateData,\n updateDataValue,\n setData,\n filterDataHandler,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n mountedFieldPaths: mountedFieldPathsRef.current,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n props,\n ...rest,\n }}\n >\n <SharedProvider formElement={{ disabled }}>\n {children}\n </SharedProvider>\n </Context.Provider>\n )\n}\n\ntype PathList = string[]\n\nfunction addListPath(paths: PathList, path: Path): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nfunction removeListPath(paths: PathList, path: Path): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<unknown>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<unknown>['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\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 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 }, 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"],"mappings":"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"}
1
+ {"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","pointer","makeAjvInstance","ajvErrorsToFormErrors","SharedProvider","useMountEffect","useUpdateEffect","isAsync","useSharedState","Context","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","_rest$disabled","forceUpdate","id","defaultData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","filterData","errorMessages","contextErrorMessages","children","rest","_objectWithoutProperties","_excluded","undefined","console","error","ajvRef","mountedFieldPathsRef","errorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","submitStateRef","setSubmitState","state","Object","assign","formStateRef","setFormState","formState","fieldErrorRef","fieldStateRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","call","errors","validateData","checkFieldStateFor","path","_errorsRef$current","Boolean","Error","hasFieldState","some","hasErrors","setFieldError","setFieldState","fieldState","filterDataHandler","filter","arguments","length","filtered","_objectSpread","entries","fieldPropsRef","forEach","_ref","_fieldErrorRef$curren","exists","has","result","get","remove","setProps","hasFieldWithAsyncValidator","validator","onBlurValidator","sharedData","sharedAttachments","setSharedData","set","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","update","updateDataValue","value","_internalDataRef$curr","givenData","match","newData","e","_window$sessionStorag2","setItem","stringify","setData","handlePathChangeUnvalidated","handlePathChange","handleMountField","addListPath","handleUnMountField","_fieldPropsRef$curren","removeListPath","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehaviour","skipFieldValidation","skipErrorCheck","asyncBehaviorIsEnabled","type","callback","fieldEventListenersRef","includes","warning","info","requestAnimationFrame","onSubmitContinueRef","handleSubmit","formElement","opts","resetForm","_formElement$reset","reset","removeItem","clearData","completeResult","keys","setFieldEventListener","_ref2","p","t","push","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","createElement","hasContext","mountedFieldPaths","paths","concat","thisPath","stateRef","nowRef","timeoutRef","setState","clear","key","clearTimeout","hadCompleteRef","isTest","process","env","NODE_ENV","minimum","setTimeout","Date","now","offset","Math","max","delay","complete","timeout"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n} from '../../utils/ajv'\nimport {\n FormError,\n CustomErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n FieldProps,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n} from '../../types'\nimport SharedProvider from '../../../../shared/Provider'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport Context, {\n ContextState,\n EventListenerCall,\n FilterData,\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 interface Props<Data extends JsonObject> {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: string\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?: Partial<Data>\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Partial<Data>\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions\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?: CustomErrorMessagesWithPaths\n /**\n * Filter the internal data context based on your criteria: `(path, value, props) => !props?.disabled`. It will iterate on each data entry.\n */\n filterData?: FilterData\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: any\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\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: () => void\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 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 defaultData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n filterData,\n errorMessages: contextErrorMessages,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n console.error(\n 'Providing both data and sessionStorageId could lead to competing data sources. To provide default data to use only before anything is changed in the interface, use defaultData.'\n )\n }\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldPathsRef = useRef<Path[]>([])\n\n // - Errors from provider validation (the whole data set)\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const showAllErrorsRef = useRef<boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors\n forceUpdate()\n }, [])\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n Object.assign(submitStateRef.current, state)\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const setFormState = useCallback((formState: SubmitState) => {\n formStateRef.current = formState\n forceUpdate()\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 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<Partial<Data>>(initialData)\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 mountedFieldPathsRef.current.some((path) => {\n return checkFieldStateFor(path, state)\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 = useCallback(\n (path: Path, error: Error | FormError) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState = useCallback(\n (path: Path, fieldState: SubmitState) => {\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 /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter = filterData) => {\n if (filter) {\n const filtered = { ...data }\n Object.entries(fieldPropsRef.current).forEach(([path, props]) => {\n const exists = pointer.has(data, path)\n const result = filter(\n path,\n exists ? pointer.get(data, path) : undefined,\n props,\n {\n error: fieldErrorRef.current?.[path],\n }\n )\n if (result === false && exists) {\n pointer.remove(filtered, path)\n }\n })\n\n return filtered\n }\n\n return data\n },\n [filterData]\n )\n const fieldPropsRef = useRef<Record<Path, FieldProps>>({})\n const setProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n fieldPropsRef.current[path] = props\n },\n []\n )\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldPropsRef.current) {\n const props = fieldPropsRef.current[path]\n if (isAsync(props.validator) || isAsync(props.onBlurValidator)) {\n return true\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<{\n filterDataHandler?: Props<Data>['filterData']\n hasErrors?: ContextState['hasErrors']\n setShowAllErrors?: ContextState['setShowAllErrors']\n setSubmitState?: ContextState['setSubmitState']\n rerenderUseDataHook?: () => void\n }>(id + '-attachments')\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 internalDataRef.current = 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 ) {\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 ) {\n cacheRef.current.shared = sharedData.data\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 }, [data, id, initialData, sharedData])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id && initialData && !sharedData.data) {\n extendSharedData?.(initialData)\n }\n }, [id, initialData, extendSharedData, sharedData.data])\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 useLayoutEffect(() => {\n if (id) {\n extendAttachment?.({\n filterDataHandler,\n hasErrors,\n setShowAllErrors,\n setSubmitState,\n })\n if (filterData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n extendAttachment,\n filterData,\n filterDataHandler,\n hasErrors,\n id,\n rerenderUseDataHook,\n setShowAllErrors,\n setSubmitState,\n ])\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value) => {\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 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 internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData?.(newData)\n if (filterData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(newData)\n )\n }\n\n forceUpdate()\n\n return newData\n },\n [\n id,\n sessionStorageId,\n extendSharedData,\n filterData,\n rerenderUseDataHook,\n ]\n )\n\n const setData = useCallback((newData: Data) => {\n internalDataRef.current = newData\n forceUpdate()\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 [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 if (isAsync(onChange)) {\n return await onChange(internalDataRef.current as Data)\n }\n\n return onChange?.(internalDataRef.current as Data)\n },\n [handlePathChangeUnvalidated, onChange, validateData]\n )\n\n // - Mounted fields\n const handleMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n if (fieldPropsRef.current?.[path]) {\n delete fieldPropsRef.current[path]\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 enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behaviour if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehaviour || 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 {\n path,\n type,\n callback,\n } of fieldEventListenersRef.current) {\n if (\n type === 'onSubmit' &&\n mountedFieldPathsRef.current.includes(path)\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 if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let result: EventStateObject | unknown\n\n try {\n result = await onSubmit()\n\n if (result instanceof Error) {\n throw result\n }\n } catch (error) {\n result = { error }\n }\n\n const state = result as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n setFormState(state?.error ? 'abort' : 'complete')\n }\n\n // Force the state to be set by a custom status\n if (state?.['status']) {\n setFormState(state?.['status'])\n }\n\n if (state?.error || state?.warning || state?.info) {\n setSubmitState(state)\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 onSubmitRequest?.()\n\n setShowAllErrors(true)\n }\n\n return internalDataRef.current\n },\n [\n setSubmitState,\n hasErrors,\n hasFieldWithAsyncValidator,\n hasFieldState,\n setFormState,\n onSubmitRequest,\n setShowAllErrors,\n ]\n )\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n async ({ formElement = null } = {}) => {\n handleSubmitCall({\n enableAsyncBehaviour: isAsync(onSubmit),\n onSubmit: async () => {\n const args = filterDataHandler(internalDataRef.current as Data)\n const opts = {\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 internalDataRef.current = {}\n if (id) {\n setSharedData?.({} as Data)\n } else {\n forceUpdate()\n }\n },\n }\n\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(args, opts)\n } else {\n result = onSubmit?.(args, opts)\n }\n\n const completeResult = await onSubmitComplete?.(args, 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 [\n filterDataHandler,\n handleSubmitCall,\n id,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n sessionStorageId,\n setSharedData,\n ]\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(({ path: p, type: t }) => {\n return !(p === path && t === type)\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 useMountEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n })\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 })\n }, [setFormState, setSubmitState])\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 = rest?.['disabled'] ?? formState === 'pending'\n\n return (\n <Context.Provider\n value={{\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n handleMountField,\n handleUnMountField,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setProps,\n hasErrors,\n hasFieldState,\n checkFieldStateFor,\n validateData,\n updateDataValue,\n setData,\n filterDataHandler,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n mountedFieldPaths: mountedFieldPathsRef.current,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n props,\n ...rest,\n }}\n >\n <SharedProvider formElement={{ disabled }}>\n {children}\n </SharedProvider>\n </Context.Provider>\n )\n}\n\ntype PathList = string[]\n\nfunction addListPath(paths: PathList, path: Path): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nfunction removeListPath(paths: PathList, path: Path): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<unknown>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<unknown>['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\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 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 }, 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"],"mappings":"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"}
@@ -1,29 +1,26 @@
1
- "use client";
2
-
3
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
2
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
3
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
- import React, { useContext, useMemo } from 'react';
4
+ import React, { useMemo } from 'react';
7
5
  import StringField from '../String';
8
- import SharedContext from '../../../../shared/Context';
9
6
  import useErrorMessage from '../../hooks/useErrorMessage';
7
+ import useLocale from '../../hooks/useLocale';
10
8
  function BankAccountNumber(props) {
11
9
  var _props$pattern, _props$label, _props$width;
12
- const sharedContext = useContext(SharedContext);
13
- const tr = sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms;
10
+ const translations = useLocale().BankAccountNumber;
14
11
  const {
15
12
  validate = true,
16
13
  omitMask
17
14
  } = props;
18
15
  const errorMessages = useErrorMessage(props.path, props.errorMessages, {
19
- required: tr.bankAccountNumberErrorRequired,
20
- pattern: tr.bankAccountNumberErrorPattern
16
+ required: translations.errorRequired,
17
+ pattern: translations.errorPattern
21
18
  });
22
19
  const mask = useMemo(() => omitMask ? [/\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/] : [/\d/, /\d/, /\d/, /\d/, ' ', /\d/, /\d/, ' ', /\d/, /\d/, /\d/, /\d/, /\d/], [omitMask]);
23
20
  const StringFieldProps = _objectSpread(_objectSpread({}, props), {}, {
24
21
  className: 'dnb-forms-field-bank-account-number',
25
22
  pattern: (_props$pattern = props.pattern) !== null && _props$pattern !== void 0 ? _props$pattern : validate ? '^[0-9]{11}$' : undefined,
26
- label: (_props$label = props.label) !== null && _props$label !== void 0 ? _props$label : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.bankAccountNumberLabel,
23
+ label: (_props$label = props.label) !== null && _props$label !== void 0 ? _props$label : translations.label,
27
24
  errorMessages,
28
25
  mask,
29
26
  width: (_props$width = props.width) !== null && _props$width !== void 0 ? _props$width : 'medium',
@@ -1 +1 @@
1
- {"version":3,"file":"BankAccountNumber.js","names":["React","useContext","useMemo","StringField","SharedContext","useErrorMessage","BankAccountNumber","props","_props$pattern","_props$label","_props$width","sharedContext","tr","translation","Forms","validate","omitMask","errorMessages","path","required","bankAccountNumberErrorRequired","pattern","bankAccountNumberErrorPattern","mask","StringFieldProps","_objectSpread","className","undefined","label","bankAccountNumberLabel","width","inputMode","createElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/BankAccountNumber/BankAccountNumber.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport SharedContext from '../../../../shared/Context'\nimport useErrorMessage from '../../hooks/useErrorMessage'\n\nexport type Props = StringFieldProps & {\n validate?: boolean\n omitMask?: boolean\n}\n\nfunction BankAccountNumber(props: Props) {\n const sharedContext = useContext(SharedContext)\n const tr = sharedContext?.translation.Forms\n const { validate = true, omitMask } = props\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: tr.bankAccountNumberErrorRequired,\n pattern: tr.bankAccountNumberErrorPattern,\n })\n const mask = useMemo(\n () =>\n omitMask\n ? [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ]\n : [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ],\n [omitMask]\n )\n\n const StringFieldProps: Props = {\n ...props,\n className: 'dnb-forms-field-bank-account-number',\n pattern: props.pattern ?? (validate ? '^[0-9]{11}$' : undefined),\n label:\n props.label ??\n sharedContext?.translation.Forms.bankAccountNumberLabel,\n errorMessages,\n mask,\n width: props.width ?? 'medium',\n inputMode: 'numeric',\n }\n\n return <StringField {...StringFieldProps} />\n}\n\nBankAccountNumber._supportsSpacingProps = true\nexport default BankAccountNumber\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAClD,OAAOC,WAAW,MAAqC,WAAW;AAClE,OAAOC,aAAa,MAAM,4BAA4B;AACtD,OAAOC,eAAe,MAAM,6BAA6B;AAOzD,SAASC,iBAAiBA,CAACC,KAAY,EAAE;EAAA,IAAAC,cAAA,EAAAC,YAAA,EAAAC,YAAA;EACvC,MAAMC,aAAa,GAAGV,UAAU,CAACG,aAAa,CAAC;EAC/C,MAAMQ,EAAE,GAAGD,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEE,WAAW,CAACC,KAAK;EAC3C,MAAM;IAAEC,QAAQ,GAAG,IAAI;IAAEC;EAAS,CAAC,GAAGT,KAAK;EAE3C,MAAMU,aAAa,GAAGZ,eAAe,CAACE,KAAK,CAACW,IAAI,EAAEX,KAAK,CAACU,aAAa,EAAE;IACrEE,QAAQ,EAAEP,EAAE,CAACQ,8BAA8B;IAC3CC,OAAO,EAAET,EAAE,CAACU;EACd,CAAC,CAAC;EACF,MAAMC,IAAI,GAAGrB,OAAO,CAClB,MACEc,QAAQ,GACJ,CACE,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACL,GACD,CACE,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACL,EACP,CAACA,QAAQ,CACX,CAAC;EAED,MAAMQ,gBAAuB,GAAAC,aAAA,CAAAA,aAAA,KACxBlB,KAAK;IACRmB,SAAS,EAAE,qCAAqC;IAChDL,OAAO,GAAAb,cAAA,GAAED,KAAK,CAACc,OAAO,cAAAb,cAAA,cAAAA,cAAA,GAAKO,QAAQ,GAAG,aAAa,GAAGY,SAAU;IAChEC,KAAK,GAAAnB,YAAA,GACHF,KAAK,CAACqB,KAAK,cAAAnB,YAAA,cAAAA,YAAA,GACXE,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEE,WAAW,CAACC,KAAK,CAACe,sBAAsB;IACzDZ,aAAa;IACbM,IAAI;IACJO,KAAK,GAAApB,YAAA,GAAEH,KAAK,CAACuB,KAAK,cAAApB,YAAA,cAAAA,YAAA,GAAI,QAAQ;IAC9BqB,SAAS,EAAE;EAAS,EACrB;EAED,OAAO/B,KAAA,CAAAgC,aAAA,CAAC7B,WAAW,EAAKqB,gBAAmB,CAAC;AAC9C;AAEAlB,iBAAiB,CAAC2B,qBAAqB,GAAG,IAAI;AAC9C,eAAe3B,iBAAiB"}
1
+ {"version":3,"file":"BankAccountNumber.js","names":["React","useMemo","StringField","useErrorMessage","useLocale","BankAccountNumber","props","_props$pattern","_props$label","_props$width","translations","validate","omitMask","errorMessages","path","required","errorRequired","pattern","errorPattern","mask","StringFieldProps","_objectSpread","className","undefined","label","width","inputMode","createElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/BankAccountNumber/BankAccountNumber.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\n\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useLocale from '../../hooks/useLocale'\n\nexport type Props = StringFieldProps & {\n validate?: boolean\n omitMask?: boolean\n}\n\nfunction BankAccountNumber(props: Props) {\n const translations = useLocale().BankAccountNumber\n const { validate = true, omitMask } = props\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.errorRequired,\n pattern: translations.errorPattern,\n })\n const mask = useMemo(\n () =>\n omitMask\n ? [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ]\n : [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ],\n [omitMask]\n )\n\n const StringFieldProps: Props = {\n ...props,\n className: 'dnb-forms-field-bank-account-number',\n pattern: props.pattern ?? (validate ? '^[0-9]{11}$' : undefined),\n label: props.label ?? translations.label,\n errorMessages,\n mask,\n width: props.width ?? 'medium',\n inputMode: 'numeric',\n }\n\n return <StringField {...StringFieldProps} />\n}\n\nBankAccountNumber._supportsSpacingProps = true\nexport default BankAccountNumber\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,OAAOC,WAAW,MAAqC,WAAW;AAElE,OAAOC,eAAe,MAAM,6BAA6B;AACzD,OAAOC,SAAS,MAAM,uBAAuB;AAO7C,SAASC,iBAAiBA,CAACC,KAAY,EAAE;EAAA,IAAAC,cAAA,EAAAC,YAAA,EAAAC,YAAA;EACvC,MAAMC,YAAY,GAAGN,SAAS,CAAC,CAAC,CAACC,iBAAiB;EAClD,MAAM;IAAEM,QAAQ,GAAG,IAAI;IAAEC;EAAS,CAAC,GAAGN,KAAK;EAE3C,MAAMO,aAAa,GAAGV,eAAe,CAACG,KAAK,CAACQ,IAAI,EAAER,KAAK,CAACO,aAAa,EAAE;IACrEE,QAAQ,EAAEL,YAAY,CAACM,aAAa;IACpCC,OAAO,EAAEP,YAAY,CAACQ;EACxB,CAAC,CAAC;EACF,MAAMC,IAAI,GAAGlB,OAAO,CAClB,MACEW,QAAQ,GACJ,CACE,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACL,GACD,CACE,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACL,EACP,CAACA,QAAQ,CACX,CAAC;EAED,MAAMQ,gBAAuB,GAAAC,aAAA,CAAAA,aAAA,KACxBf,KAAK;IACRgB,SAAS,EAAE,qCAAqC;IAChDL,OAAO,GAAAV,cAAA,GAAED,KAAK,CAACW,OAAO,cAAAV,cAAA,cAAAA,cAAA,GAAKI,QAAQ,GAAG,aAAa,GAAGY,SAAU;IAChEC,KAAK,GAAAhB,YAAA,GAAEF,KAAK,CAACkB,KAAK,cAAAhB,YAAA,cAAAA,YAAA,GAAIE,YAAY,CAACc,KAAK;IACxCX,aAAa;IACbM,IAAI;IACJM,KAAK,GAAAhB,YAAA,GAAEH,KAAK,CAACmB,KAAK,cAAAhB,YAAA,cAAAA,YAAA,GAAI,QAAQ;IAC9BiB,SAAS,EAAE;EAAS,EACrB;EAED,OAAO1B,KAAA,CAAA2B,aAAA,CAACzB,WAAW,EAAKkB,gBAAmB,CAAC;AAC9C;AAEAf,iBAAiB,CAACuB,qBAAqB,GAAG,IAAI;AAC9C,eAAevB,iBAAiB"}
@@ -1,23 +1,21 @@
1
- "use client";
2
-
3
1
  import _extends from "@babel/runtime/helpers/esm/extends";
4
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
3
  const _excluded = ["trueText", "falseText"];
6
- import React, { useContext } from 'react';
4
+ import React from 'react';
7
5
  import ToggleField from '../Toggle';
8
- import SharedContext from '../../../../shared/Context';
6
+ import useLocale from '../../hooks/useLocale';
9
7
  function BooleanComponent(props) {
10
- const sharedContext = useContext(SharedContext);
11
8
  const {
12
9
  trueText,
13
10
  falseText
14
11
  } = props,
15
12
  restProps = _objectWithoutProperties(props, _excluded);
13
+ const translations = useLocale().BooleanField;
16
14
  return React.createElement(ToggleField, _extends({}, restProps, {
17
15
  valueOn: true,
18
16
  valueOff: false,
19
- textOn: trueText !== null && trueText !== void 0 ? trueText : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.booleanYes,
20
- textOff: falseText !== null && falseText !== void 0 ? falseText : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.booleanNo
17
+ textOn: trueText !== null && trueText !== void 0 ? trueText : translations.yes,
18
+ textOff: falseText !== null && falseText !== void 0 ? falseText : translations.no
21
19
  }));
22
20
  }
23
21
  BooleanComponent._supportsSpacingProps = true;
@@ -1 +1 @@
1
- {"version":3,"file":"Boolean.js","names":["React","useContext","ToggleField","SharedContext","BooleanComponent","props","sharedContext","trueText","falseText","restProps","_objectWithoutProperties","_excluded","createElement","_extends","valueOn","valueOff","textOn","translation","Forms","booleanYes","textOff","booleanNo","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Boolean/Boolean.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport ToggleField, { Props as ToggleFieldProps } from '../Toggle'\nimport SharedContext from '../../../../shared/Context'\n\nexport type Props = Omit<\n ToggleFieldProps,\n 'valueOn' | 'valueOff' | 'textOn' | 'textOff'\n> & {\n trueText?: string\n falseText?: string\n}\n\nfunction BooleanComponent(props: Props) {\n const sharedContext = useContext(SharedContext)\n const { trueText, falseText, ...restProps } = props\n return (\n <ToggleField\n {...restProps}\n valueOn={true}\n valueOff={false}\n textOn={trueText ?? sharedContext?.translation.Forms.booleanYes}\n textOff={falseText ?? sharedContext?.translation.Forms.booleanNo}\n />\n )\n}\n\nBooleanComponent._supportsSpacingProps = true\nexport default BooleanComponent\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,WAAW,MAAqC,WAAW;AAClE,OAAOC,aAAa,MAAM,4BAA4B;AAUtD,SAASC,gBAAgBA,CAACC,KAAY,EAAE;EACtC,MAAMC,aAAa,GAAGL,UAAU,CAACE,aAAa,CAAC;EAC/C,MAAM;MAAEI,QAAQ;MAAEC;IAAwB,CAAC,GAAGH,KAAK;IAAnBI,SAAS,GAAAC,wBAAA,CAAKL,KAAK,EAAAM,SAAA;EACnD,OACEX,KAAA,CAAAY,aAAA,CAACV,WAAW,EAAAW,QAAA,KACNJ,SAAS;IACbK,OAAO,EAAE,IAAK;IACdC,QAAQ,EAAE,KAAM;IAChBC,MAAM,EAAET,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAID,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEW,WAAW,CAACC,KAAK,CAACC,UAAW;IAChEC,OAAO,EAAEZ,SAAS,aAATA,SAAS,cAATA,SAAS,GAAIF,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEW,WAAW,CAACC,KAAK,CAACG;EAAU,EAClE,CAAC;AAEN;AAEAjB,gBAAgB,CAACkB,qBAAqB,GAAG,IAAI;AAC7C,eAAelB,gBAAgB"}
1
+ {"version":3,"file":"Boolean.js","names":["React","ToggleField","useLocale","BooleanComponent","props","trueText","falseText","restProps","_objectWithoutProperties","_excluded","translations","BooleanField","createElement","_extends","valueOn","valueOff","textOn","yes","textOff","no","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Boolean/Boolean.tsx"],"sourcesContent":["import React from 'react'\nimport ToggleField, { Props as ToggleFieldProps } from '../Toggle'\nimport useLocale from '../../hooks/useLocale'\n\nexport type Props = Omit<\n ToggleFieldProps,\n 'valueOn' | 'valueOff' | 'textOn' | 'textOff'\n> & {\n trueText?: string\n falseText?: string\n}\n\nfunction BooleanComponent(props: Props) {\n const { trueText, falseText, ...restProps } = props\n const translations = useLocale().BooleanField\n\n return (\n <ToggleField\n {...restProps}\n valueOn={true}\n valueOff={false}\n textOn={trueText ?? translations.yes}\n textOff={falseText ?? translations.no}\n />\n )\n}\n\nBooleanComponent._supportsSpacingProps = true\nexport default BooleanComponent\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,WAAW,MAAqC,WAAW;AAClE,OAAOC,SAAS,MAAM,uBAAuB;AAU7C,SAASC,gBAAgBA,CAACC,KAAY,EAAE;EACtC,MAAM;MAAEC,QAAQ;MAAEC;IAAwB,CAAC,GAAGF,KAAK;IAAnBG,SAAS,GAAAC,wBAAA,CAAKJ,KAAK,EAAAK,SAAA;EACnD,MAAMC,YAAY,GAAGR,SAAS,CAAC,CAAC,CAACS,YAAY;EAE7C,OACEX,KAAA,CAAAY,aAAA,CAACX,WAAW,EAAAY,QAAA,KACNN,SAAS;IACbO,OAAO,EAAE,IAAK;IACdC,QAAQ,EAAE,KAAM;IAChBC,MAAM,EAAEX,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAIK,YAAY,CAACO,GAAI;IACrCC,OAAO,EAAEZ,SAAS,aAATA,SAAS,cAATA,SAAS,GAAII,YAAY,CAACS;EAAG,EACvC,CAAC;AAEN;AAEAhB,gBAAgB,CAACiB,qBAAqB,GAAG,IAAI;AAC7C,eAAejB,gBAAgB"}
@@ -0,0 +1,6 @@
1
+ import { Props as FieldBlockProps } from '../../FieldBlock';
2
+ declare function CompositionField(props: FieldBlockProps): import("react/jsx-runtime").JSX.Element;
3
+ declare namespace CompositionField {
4
+ var _supportsSpacingProps: boolean;
5
+ }
6
+ export default CompositionField;
@@ -0,0 +1,11 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import React from 'react';
3
+ import FieldBlock from '../../FieldBlock';
4
+ function CompositionField(props) {
5
+ return React.createElement(FieldBlock, _extends({}, props, {
6
+ composition: true
7
+ }));
8
+ }
9
+ CompositionField._supportsSpacingProps = true;
10
+ export default CompositionField;
11
+ //# sourceMappingURL=Composition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Composition.js","names":["React","FieldBlock","CompositionField","props","createElement","_extends","composition","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Composition/Composition.tsx"],"sourcesContent":["import React from 'react'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\n\nfunction CompositionField(props: FieldBlockProps) {\n return <FieldBlock {...props} composition />\n}\n\nCompositionField._supportsSpacingProps = true\nexport default CompositionField\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAoC,kBAAkB;AAEvE,SAASC,gBAAgBA,CAACC,KAAsB,EAAE;EAChD,OAAOH,KAAA,CAAAI,aAAA,CAACH,UAAU,EAAAI,QAAA,KAAKF,KAAK;IAAEG,WAAW;EAAA,EAAE,CAAC;AAC9C;AAEAJ,gBAAgB,CAACK,qBAAqB,GAAG,IAAI;AAC7C,eAAeL,gBAAgB"}
@@ -0,0 +1,2 @@
1
+ export { default } from './Composition';
2
+ export * from './Composition';
@@ -0,0 +1,3 @@
1
+ export { default } from './Composition';
2
+ export * from './Composition';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["default"],"sources":["../../../../../../src/extensions/forms/Field/Composition/index.ts"],"sourcesContent":["export { default } from './Composition'\nexport * from './Composition'\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,eAAe;AACvC,cAAc,eAAe"}
@@ -4,18 +4,18 @@ import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
5
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
6
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
- import React from 'react';
7
+ import React, { useContext } from 'react';
8
8
  import classnames from 'classnames';
9
- import { Context } from '../../../../shared';
9
+ import SharedContext from '../../../../shared/Context';
10
10
  import { getCurrencySymbol } from '../../../../components/number-format/NumberUtils';
11
11
  import { CURRENCY } from '../../../../shared/defaults';
12
12
  import NumberField from '../Number';
13
13
  function Currency(props) {
14
14
  var _props$currency, _props$placeholder;
15
- const context = React.useContext(Context);
15
+ const sharedContext = useContext(SharedContext);
16
16
  const preparedProps = _objectSpread(_objectSpread({}, props), {}, {
17
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(context === null || context === void 0 ? void 0 : context.locale, props.currency, props.currencyDisplay)
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)
19
19
  });
20
20
  return React.createElement(NumberField, _extends({}, preparedProps, {
21
21
  className: classnames('dnb-forms-field-currency', props.className)
@@ -1 +1 @@
1
- {"version":3,"file":"Currency.js","names":["React","classnames","Context","getCurrencySymbol","CURRENCY","NumberField","Currency","props","_props$currency","_props$placeholder","context","useContext","preparedProps","_objectSpread","currency","placeholder","locale","currencyDisplay","createElement","_extends","className","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Currency/Currency.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport { Context } from '../../../../shared'\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 context = React.useContext(Context)\n const preparedProps = {\n ...props,\n currency: props.currency ?? CURRENCY,\n placeholder:\n props.placeholder ??\n getCurrencySymbol(\n context?.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,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,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,OAAO,GAAGV,KAAK,CAACW,UAAU,CAACT,OAAO,CAAC;EACzC,MAAMU,aAAa,GAAAC,aAAA,CAAAA,aAAA,KACdN,KAAK;IACRO,QAAQ,GAAAN,eAAA,GAAED,KAAK,CAACO,QAAQ,cAAAN,eAAA,cAAAA,eAAA,GAAIJ,QAAQ;IACpCW,WAAW,GAAAN,kBAAA,GACTF,KAAK,CAACQ,WAAW,cAAAN,kBAAA,cAAAA,kBAAA,GACjBN,iBAAiB,CACfO,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEM,MAAM,EACfT,KAAK,CAACO,QAAQ,EACdP,KAAK,CAACU,eACR;EAAC,EACJ;EAED,OACEjB,KAAA,CAAAkB,aAAA,CAACb,WAAW,EAAAc,QAAA,KACNP,aAAa;IACjBQ,SAAS,EAAEnB,UAAU,CAAC,0BAA0B,EAAEM,KAAK,CAACa,SAAS;EAAE,EACpE,CAAC;AAEN;AAEAd,QAAQ,CAACe,qBAAqB,GAAG,IAAI;AACrC,eAAef,QAAQ"}
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"}
@@ -1,24 +1,21 @@
1
- "use client";
2
-
3
1
  import _extends from "@babel/runtime/helpers/esm/extends";
4
2
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
3
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
4
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
- import React, { useCallback, useContext, useMemo } from 'react';
5
+ import React, { useCallback, useMemo } from 'react';
8
6
  import { DatePicker, HelpButton } from '../../../../components';
9
7
  import { useFieldProps } from '../../hooks';
10
8
  import { pickSpacingProps } from '../../../../components/flex/utils';
11
- import SharedContext from '../../../../shared/Context';
12
9
  import classnames from 'classnames';
13
10
  import FieldBlock from '../../FieldBlock';
14
11
  import { parseISO, isValid } from 'date-fns';
15
12
  import useErrorMessage from '../../hooks/useErrorMessage';
13
+ import useLocale from '../../hooks/useLocale';
16
14
  function DateComponent(props) {
17
- const sharedContext = useContext(SharedContext);
18
- const tr = sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms;
15
+ const translations = useLocale();
19
16
  const errorMessages = useErrorMessage(props.path, props.errorMessages, {
20
- required: tr.dateErrorRequired,
21
- pattern: tr.inputErrorPattern
17
+ required: translations.Date.errorRequired,
18
+ pattern: translations.Field.errorRequired
22
19
  });
23
20
  const schema = useMemo(() => {
24
21
  var _props$schema;
@@ -68,7 +65,7 @@ function DateComponent(props) {
68
65
  return React.createElement(FieldBlock, _extends({
69
66
  className: classnames('dnb-forms-field-string', className),
70
67
  forId: id,
71
- label: label !== null && label !== void 0 ? label : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.dateLabel,
68
+ label: label !== null && label !== void 0 ? label : translations.Date.label,
72
69
  labelDescription: labelDescription,
73
70
  info: info,
74
71
  warning: warning,