@dnb/eufemia 10.24.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 (935) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/cjs/components/accordion/style/dnb-accordion.css +6 -2
  3. package/cjs/components/accordion/style/dnb-accordion.min.css +2 -2
  4. package/cjs/components/accordion/style/dnb-accordion.scss +8 -2
  5. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +5 -4
  6. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  7. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +5 -5
  8. package/cjs/components/autocomplete/Autocomplete.d.ts +0 -15
  9. package/cjs/components/autocomplete/Autocomplete.js +9 -2
  10. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  11. package/cjs/components/autocomplete/AutocompleteDocs.d.ts +3 -0
  12. package/cjs/components/autocomplete/AutocompleteDocs.js +293 -0
  13. package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -0
  14. package/cjs/components/card/style/dnb-card.css +3 -0
  15. package/cjs/components/card/style/dnb-card.min.css +1 -1
  16. package/cjs/components/card/style/dnb-card.scss +4 -0
  17. package/cjs/components/dropdown/Dropdown.d.ts +0 -3
  18. package/cjs/components/input/InputDocs.js +2 -2
  19. package/cjs/components/input/InputDocs.js.map +1 -1
  20. package/cjs/components/input-masked/InputMaskedUtils.js +10 -7
  21. package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
  22. package/cjs/components/table/style/dnb-table.css +3 -0
  23. package/cjs/components/table/style/dnb-table.min.css +1 -1
  24. package/cjs/components/table/style/table-th.scss +4 -1
  25. package/cjs/components/textarea/Textarea.js +24 -17
  26. package/cjs/components/textarea/Textarea.js.map +1 -1
  27. package/cjs/extensions/forms/DataContext/At/At.js +6 -6
  28. package/cjs/extensions/forms/DataContext/At/At.js.map +1 -1
  29. package/cjs/extensions/forms/DataContext/Context.d.ts +7 -3
  30. package/cjs/extensions/forms/DataContext/Context.js +2 -0
  31. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  32. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
  33. package/cjs/extensions/forms/DataContext/Provider/Provider.js +56 -28
  34. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  35. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +4 -4
  36. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  37. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +5 -7
  38. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  39. package/cjs/extensions/forms/Field/Boolean/Boolean.js +5 -8
  40. package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  41. package/cjs/extensions/forms/Field/Composition/Composition.d.ts +6 -0
  42. package/cjs/extensions/forms/Field/Composition/Composition.js +19 -0
  43. package/cjs/extensions/forms/Field/Composition/Composition.js.map +1 -0
  44. package/cjs/extensions/forms/Field/Composition/index.d.ts +2 -0
  45. package/cjs/extensions/forms/Field/Composition/index.js +27 -0
  46. package/cjs/extensions/forms/Field/Composition/index.js.map +1 -0
  47. package/cjs/extensions/forms/Field/Currency/Currency.js +6 -4
  48. package/cjs/extensions/forms/Field/Currency/Currency.js.map +1 -1
  49. package/cjs/extensions/forms/Field/Date/Date.js +5 -7
  50. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  51. package/cjs/extensions/forms/Field/Email/Email.js +6 -10
  52. package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
  53. package/cjs/extensions/forms/Field/Expiry/Expiry.js +24 -12
  54. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  55. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +4 -6
  56. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  57. package/cjs/extensions/forms/Field/Number/Number.js +8 -7
  58. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  59. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +5 -7
  60. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  61. package/cjs/extensions/forms/Field/Password/Password.js +5 -8
  62. package/cjs/extensions/forms/Field/Password/Password.js.map +1 -1
  63. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
  64. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -5
  65. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  66. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +1 -1
  67. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +15 -16
  68. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  69. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  70. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +6 -5
  71. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  72. package/cjs/extensions/forms/Field/String/String.js +9 -9
  73. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  74. package/cjs/extensions/forms/Field/Toggle/Toggle.js +6 -7
  75. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  76. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  77. package/cjs/extensions/forms/Field/index.js +7 -0
  78. package/cjs/extensions/forms/Field/index.js.map +1 -1
  79. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +3 -4
  80. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  81. package/cjs/extensions/forms/Form/Element/style/dnb-forms-element.css +7 -0
  82. package/cjs/extensions/forms/Form/Element/style/dnb-forms-element.min.css +1 -0
  83. package/cjs/extensions/forms/Form/Element/style/dnb-forms-element.scss +9 -0
  84. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  85. package/cjs/extensions/forms/Form/Handler/Handler.js +3 -3
  86. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  87. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +5 -5
  88. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  89. package/cjs/extensions/forms/Form/SubmitIndicator/style/index.d.ts +1 -1
  90. package/cjs/extensions/forms/Form/SubmitIndicator/style/index.js +1 -1
  91. package/cjs/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -1
  92. package/cjs/extensions/forms/Form/data-context/useData.js +6 -3
  93. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  94. package/cjs/extensions/forms/Form/data-context/useError.d.ts +1 -0
  95. package/cjs/extensions/forms/Form/data-context/useError.js +13 -5
  96. package/cjs/extensions/forms/Form/data-context/useError.js.map +1 -1
  97. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  98. package/cjs/extensions/forms/Form/index.js +7 -0
  99. package/cjs/extensions/forms/Form/index.js.map +1 -1
  100. package/cjs/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +4 -7
  101. package/cjs/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
  102. package/cjs/extensions/forms/Value/Boolean/Boolean.js +4 -7
  103. package/cjs/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  104. package/cjs/extensions/forms/Value/Date/Date.js +4 -7
  105. package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
  106. package/cjs/extensions/forms/Value/Email/Email.js +4 -7
  107. package/cjs/extensions/forms/Value/Email/Email.js.map +1 -1
  108. package/cjs/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +4 -7
  109. package/cjs/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  110. package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js +4 -7
  111. package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
  112. package/cjs/extensions/forms/Wizard/Buttons/Buttons.js +33 -0
  113. package/cjs/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -0
  114. package/cjs/extensions/forms/Wizard/Buttons/index.js.map +1 -0
  115. package/cjs/extensions/forms/Wizard/Container/WizardContainer.d.ts +19 -0
  116. package/cjs/extensions/forms/{StepsLayout/StepsLayout.js → Wizard/Container/WizardContainer.js} +72 -61
  117. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -0
  118. package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.d.ts +3 -0
  119. package/cjs/extensions/forms/{StepsLayout/StepsLayoutDocs.js → Wizard/Container/WizardContainerDocs.js} +9 -9
  120. package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -0
  121. package/cjs/extensions/forms/Wizard/Container/index.d.ts +2 -0
  122. package/cjs/extensions/forms/Wizard/Container/index.js +27 -0
  123. package/cjs/extensions/forms/Wizard/Container/index.js.map +1 -0
  124. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -0
  125. package/cjs/extensions/forms/{StepsLayout/StepsContext.js → Wizard/Context/WizardContext.js} +7 -4
  126. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -0
  127. package/cjs/extensions/forms/Wizard/Context/index.d.ts +2 -0
  128. package/cjs/extensions/forms/Wizard/Context/index.js +27 -0
  129. package/cjs/extensions/forms/Wizard/Context/index.js.map +1 -0
  130. package/cjs/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.js +6 -6
  131. package/cjs/extensions/forms/Wizard/NextButton/NextButton.js.map +1 -0
  132. package/cjs/extensions/forms/Wizard/NextButton/index.js.map +1 -0
  133. package/cjs/extensions/forms/{StepsLayout → Wizard}/PreviousButton/PreviousButton.js +7 -7
  134. package/cjs/extensions/forms/Wizard/PreviousButton/PreviousButton.js.map +1 -0
  135. package/cjs/extensions/forms/Wizard/PreviousButton/index.js.map +1 -0
  136. package/cjs/extensions/forms/{StepsLayout → Wizard}/Step/Step.js +3 -3
  137. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -0
  138. package/cjs/extensions/forms/Wizard/Step/index.js.map +1 -0
  139. package/cjs/extensions/forms/Wizard/hooks/useNextRouter.d.ts +7 -0
  140. package/cjs/extensions/forms/Wizard/hooks/useNextRouter.js +52 -0
  141. package/cjs/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -0
  142. package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.d.ts +3 -0
  143. package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.js +60 -0
  144. package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -0
  145. package/cjs/extensions/forms/Wizard/hooks/useReachRouter.d.ts +6 -0
  146. package/cjs/extensions/forms/Wizard/hooks/useReachRouter.js +56 -0
  147. package/cjs/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -0
  148. package/cjs/extensions/forms/Wizard/hooks/useReactRouter.d.ts +5 -0
  149. package/cjs/extensions/forms/Wizard/hooks/useReactRouter.js +47 -0
  150. package/cjs/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -0
  151. package/cjs/extensions/forms/Wizard/hooks/useStep.d.ts +5 -0
  152. package/cjs/extensions/forms/Wizard/hooks/useStep.js +30 -0
  153. package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -0
  154. package/cjs/extensions/forms/Wizard/index.d.ts +13 -0
  155. package/cjs/extensions/forms/Wizard/index.js +87 -0
  156. package/cjs/extensions/forms/Wizard/index.js.map +1 -0
  157. package/{extensions/forms/StepsLayout/style/dnb-steps-layout.css → cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css} +11 -10
  158. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -0
  159. package/{extensions/forms/StepsLayout/style/dnb-steps-layout.scss → cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss} +6 -5
  160. package/cjs/extensions/forms/Wizard/style/index.d.ts +5 -0
  161. package/cjs/extensions/forms/Wizard/style/index.js +4 -0
  162. package/cjs/extensions/forms/Wizard/style/index.js.map +1 -0
  163. package/cjs/extensions/forms/Wizard/style.js.map +1 -0
  164. package/cjs/extensions/forms/constants/countries.d.ts +1 -0
  165. package/cjs/extensions/forms/constants/countries.js.map +1 -1
  166. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +99 -0
  167. package/cjs/extensions/forms/constants/locales/en-GB.js +100 -0
  168. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -0
  169. package/cjs/extensions/forms/constants/locales/en-US.d.ts +93 -0
  170. package/cjs/extensions/forms/constants/locales/en-US.js +25 -0
  171. package/cjs/extensions/forms/constants/locales/en-US.js.map +1 -0
  172. package/cjs/extensions/forms/constants/locales/index.d.ts +183 -0
  173. package/cjs/extensions/forms/constants/locales/index.js +18 -0
  174. package/cjs/extensions/forms/constants/locales/index.js.map +1 -0
  175. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +99 -0
  176. package/cjs/extensions/forms/constants/locales/nb-NO.js +100 -0
  177. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -0
  178. package/cjs/extensions/forms/hooks/DataValueDocs.js +4 -4
  179. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  180. package/cjs/extensions/forms/hooks/useFieldProps.js +92 -65
  181. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  182. package/cjs/extensions/forms/hooks/useLocale.d.ts +10 -0
  183. package/cjs/extensions/forms/hooks/useLocale.js +32 -0
  184. package/cjs/extensions/forms/hooks/useLocale.js.map +1 -0
  185. package/cjs/extensions/forms/index.d.ts +14 -1
  186. package/cjs/extensions/forms/index.js +15 -15
  187. package/cjs/extensions/forms/index.js.map +1 -1
  188. package/cjs/extensions/forms/style/dnb-forms.css +36 -27
  189. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  190. package/cjs/extensions/forms/types.d.ts +2 -0
  191. package/cjs/extensions/forms/types.js.map +1 -1
  192. package/cjs/fragments/drawer-list/DrawerList.d.ts +95 -1
  193. package/cjs/fragments/drawer-list/DrawerListDocs.d.ts +3 -0
  194. package/cjs/fragments/drawer-list/DrawerListDocs.js +188 -0
  195. package/cjs/fragments/drawer-list/DrawerListDocs.js.map +1 -0
  196. package/cjs/shared/Context.d.ts +7 -6
  197. package/cjs/shared/Context.js.map +1 -1
  198. package/cjs/shared/Eufemia.d.ts +1 -1
  199. package/cjs/shared/Eufemia.js +2 -2
  200. package/cjs/shared/Eufemia.js.map +1 -1
  201. package/cjs/shared/component-helper.d.ts +0 -1
  202. package/cjs/shared/component-helper.js +1 -9
  203. package/cjs/shared/component-helper.js.map +1 -1
  204. package/cjs/shared/helpers/runCssVersionMismatchWarning.js +2 -2
  205. package/cjs/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  206. package/cjs/shared/helpers/useSharedState.d.ts +3 -1
  207. package/cjs/shared/helpers/useSharedState.js.map +1 -1
  208. package/cjs/shared/locales/en-GB.d.ts +0 -51
  209. package/cjs/shared/locales/en-GB.js +3 -54
  210. package/cjs/shared/locales/en-GB.js.map +1 -1
  211. package/cjs/shared/locales/en-US.d.ts +0 -51
  212. package/cjs/shared/locales/en-US.js.map +1 -1
  213. package/cjs/shared/locales/index.d.ts +0 -102
  214. package/cjs/shared/locales/nb-NO.d.ts +0 -51
  215. package/cjs/shared/locales/nb-NO.js +3 -54
  216. package/cjs/shared/locales/nb-NO.js.map +1 -1
  217. package/cjs/shared/types.d.ts +3 -0
  218. package/cjs/shared/types.js.map +1 -1
  219. package/cjs/shared/useLocale.d.ts +8 -1
  220. package/cjs/shared/useLocale.js +24 -11
  221. package/cjs/shared/useLocale.js.map +1 -1
  222. package/cjs/style/core/scopes.scss +1 -1
  223. package/cjs/style/dnb-ui-basis.css +1 -1
  224. package/cjs/style/dnb-ui-basis.min.css +1 -1
  225. package/cjs/style/dnb-ui-body.css +1 -1
  226. package/cjs/style/dnb-ui-body.min.css +1 -1
  227. package/cjs/style/dnb-ui-components.css +48 -29
  228. package/cjs/style/dnb-ui-components.min.css +3 -3
  229. package/cjs/style/dnb-ui-core.css +1 -1
  230. package/cjs/style/dnb-ui-core.min.css +1 -1
  231. package/cjs/style/dnb-ui-extensions.css +36 -27
  232. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  233. package/cjs/style/dnb-ui-forms.css +36 -27
  234. package/cjs/style/dnb-ui-forms.min.css +1 -1
  235. package/cjs/style/dnb-ui-forms.scss +2 -1
  236. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +84 -56
  237. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  238. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +36 -27
  239. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  240. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +36 -27
  241. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  242. package/cjs/style/themes/theme-eiendom/properties.js +10 -10
  243. package/cjs/style/themes/theme-eiendom/properties.js.map +1 -1
  244. package/cjs/style/themes/theme-sbanken/properties.js +10 -10
  245. package/cjs/style/themes/theme-sbanken/properties.js.map +1 -1
  246. package/cjs/style/themes/theme-sbanken/properties.scss +10 -10
  247. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +10 -10
  248. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  249. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +89 -60
  250. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  251. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +36 -27
  252. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  253. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +36 -27
  254. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  255. package/cjs/style/themes/theme-ui/properties.js +10 -10
  256. package/cjs/style/themes/theme-ui/properties.js.map +1 -1
  257. package/cjs/style/themes/theme-ui/ui-theme-components.css +84 -56
  258. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  259. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +36 -27
  260. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  261. package/cjs/style/themes/theme-ui/ui-theme-forms.css +36 -27
  262. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  263. package/components/accordion/style/dnb-accordion.css +6 -2
  264. package/components/accordion/style/dnb-accordion.min.css +2 -2
  265. package/components/accordion/style/dnb-accordion.scss +8 -2
  266. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +5 -4
  267. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  268. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +5 -5
  269. package/components/autocomplete/Autocomplete.d.ts +0 -15
  270. package/components/autocomplete/Autocomplete.js +9 -2
  271. package/components/autocomplete/Autocomplete.js.map +1 -1
  272. package/components/autocomplete/AutocompleteDocs.d.ts +3 -0
  273. package/components/autocomplete/AutocompleteDocs.js +285 -0
  274. package/components/autocomplete/AutocompleteDocs.js.map +1 -0
  275. package/components/card/style/dnb-card.css +3 -0
  276. package/components/card/style/dnb-card.min.css +1 -1
  277. package/components/card/style/dnb-card.scss +4 -0
  278. package/components/dropdown/Dropdown.d.ts +0 -3
  279. package/components/input/InputDocs.js +2 -2
  280. package/components/input/InputDocs.js.map +1 -1
  281. package/components/input-masked/InputMaskedUtils.js +10 -7
  282. package/components/input-masked/InputMaskedUtils.js.map +1 -1
  283. package/components/table/style/dnb-table.css +3 -0
  284. package/components/table/style/dnb-table.min.css +1 -1
  285. package/components/table/style/table-th.scss +4 -1
  286. package/components/textarea/Textarea.js +24 -17
  287. package/components/textarea/Textarea.js.map +1 -1
  288. package/es/components/accordion/style/dnb-accordion.css +6 -2
  289. package/es/components/accordion/style/dnb-accordion.min.css +2 -2
  290. package/es/components/accordion/style/dnb-accordion.scss +8 -2
  291. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +5 -4
  292. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  293. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +5 -5
  294. package/es/components/autocomplete/Autocomplete.d.ts +0 -15
  295. package/es/components/autocomplete/Autocomplete.js +9 -2
  296. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  297. package/es/components/autocomplete/AutocompleteDocs.d.ts +3 -0
  298. package/es/components/autocomplete/AutocompleteDocs.js +285 -0
  299. package/es/components/autocomplete/AutocompleteDocs.js.map +1 -0
  300. package/es/components/card/style/dnb-card.css +3 -0
  301. package/es/components/card/style/dnb-card.min.css +1 -1
  302. package/es/components/card/style/dnb-card.scss +4 -0
  303. package/es/components/dropdown/Dropdown.d.ts +0 -3
  304. package/es/components/input/InputDocs.js +2 -2
  305. package/es/components/input/InputDocs.js.map +1 -1
  306. package/es/components/input-masked/InputMaskedUtils.js +10 -7
  307. package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
  308. package/es/components/table/style/dnb-table.css +3 -0
  309. package/es/components/table/style/dnb-table.min.css +1 -1
  310. package/es/components/table/style/table-th.scss +4 -1
  311. package/es/components/textarea/Textarea.js +24 -17
  312. package/es/components/textarea/Textarea.js.map +1 -1
  313. package/es/extensions/forms/DataContext/At/At.js +7 -7
  314. package/es/extensions/forms/DataContext/At/At.js.map +1 -1
  315. package/es/extensions/forms/DataContext/Context.d.ts +7 -3
  316. package/es/extensions/forms/DataContext/Context.js +2 -0
  317. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  318. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
  319. package/es/extensions/forms/DataContext/Provider/Provider.js +55 -28
  320. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  321. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +4 -4
  322. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  323. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -9
  324. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  325. package/es/extensions/forms/Field/Boolean/Boolean.js +5 -7
  326. package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  327. package/es/extensions/forms/Field/Composition/Composition.d.ts +6 -0
  328. package/es/extensions/forms/Field/Composition/Composition.js +11 -0
  329. package/es/extensions/forms/Field/Composition/Composition.js.map +1 -0
  330. package/es/extensions/forms/Field/Composition/index.d.ts +2 -0
  331. package/es/extensions/forms/Field/Composition/index.js +3 -0
  332. package/es/extensions/forms/Field/Composition/index.js.map +1 -0
  333. package/es/extensions/forms/Field/Currency/Currency.js +4 -4
  334. package/es/extensions/forms/Field/Currency/Currency.js.map +1 -1
  335. package/es/extensions/forms/Field/Date/Date.js +6 -9
  336. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  337. package/es/extensions/forms/Field/Email/Email.js +6 -9
  338. package/es/extensions/forms/Field/Email/Email.js.map +1 -1
  339. package/es/extensions/forms/Field/Expiry/Expiry.js +25 -14
  340. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  341. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +5 -8
  342. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  343. package/es/extensions/forms/Field/Number/Number.js +8 -7
  344. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  345. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +6 -9
  346. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  347. package/es/extensions/forms/Field/Password/Password.js +5 -8
  348. package/es/extensions/forms/Field/Password/Password.js.map +1 -1
  349. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
  350. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -5
  351. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  352. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +1 -1
  353. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +15 -15
  354. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  355. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  356. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +6 -5
  357. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  358. package/es/extensions/forms/Field/String/String.js +9 -9
  359. package/es/extensions/forms/Field/String/String.js.map +1 -1
  360. package/es/extensions/forms/Field/Toggle/Toggle.js +7 -9
  361. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  362. package/es/extensions/forms/Field/index.d.ts +1 -0
  363. package/es/extensions/forms/Field/index.js +1 -0
  364. package/es/extensions/forms/Field/index.js.map +1 -1
  365. package/es/extensions/forms/FieldBlock/FieldBlock.js +3 -4
  366. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  367. package/es/extensions/forms/Form/Element/style/dnb-forms-element.css +7 -0
  368. package/es/extensions/forms/Form/Element/style/dnb-forms-element.min.css +1 -0
  369. package/es/extensions/forms/Form/Element/style/dnb-forms-element.scss +9 -0
  370. package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  371. package/es/extensions/forms/Form/Handler/Handler.js +3 -3
  372. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  373. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
  374. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  375. package/es/extensions/forms/Form/SubmitIndicator/style/index.d.ts +1 -1
  376. package/es/extensions/forms/Form/SubmitIndicator/style/index.js +1 -1
  377. package/es/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -1
  378. package/es/extensions/forms/Form/data-context/useData.js +7 -4
  379. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  380. package/es/extensions/forms/Form/data-context/useError.d.ts +1 -0
  381. package/es/extensions/forms/Form/data-context/useError.js +14 -6
  382. package/es/extensions/forms/Form/data-context/useError.js.map +1 -1
  383. package/es/extensions/forms/Form/index.d.ts +1 -0
  384. package/es/extensions/forms/Form/index.js +1 -0
  385. package/es/extensions/forms/Form/index.js.map +1 -1
  386. package/es/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +4 -6
  387. package/es/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
  388. package/es/extensions/forms/Value/Boolean/Boolean.js +4 -6
  389. package/es/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  390. package/es/extensions/forms/Value/Date/Date.js +4 -6
  391. package/es/extensions/forms/Value/Date/Date.js.map +1 -1
  392. package/es/extensions/forms/Value/Email/Email.js +4 -6
  393. package/es/extensions/forms/Value/Email/Email.js.map +1 -1
  394. package/es/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +4 -6
  395. package/es/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  396. package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js +4 -6
  397. package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
  398. package/es/extensions/forms/Wizard/Buttons/Buttons.js +24 -0
  399. package/es/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -0
  400. package/es/extensions/forms/Wizard/Buttons/index.js.map +1 -0
  401. package/es/extensions/forms/Wizard/Container/WizardContainer.d.ts +19 -0
  402. package/es/extensions/forms/{StepsLayout/StepsLayout.js → Wizard/Container/WizardContainer.js} +72 -61
  403. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -0
  404. package/es/extensions/forms/Wizard/Container/WizardContainerDocs.d.ts +3 -0
  405. package/{extensions/forms/StepsLayout/StepsLayoutDocs.js → es/extensions/forms/Wizard/Container/WizardContainerDocs.js} +6 -6
  406. package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -0
  407. package/es/extensions/forms/Wizard/Container/index.d.ts +2 -0
  408. package/es/extensions/forms/Wizard/Container/index.js +3 -0
  409. package/es/extensions/forms/Wizard/Container/index.js.map +1 -0
  410. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -0
  411. package/es/extensions/forms/Wizard/Context/WizardContext.js +12 -0
  412. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -0
  413. package/es/extensions/forms/Wizard/Context/index.d.ts +2 -0
  414. package/es/extensions/forms/Wizard/Context/index.js +3 -0
  415. package/es/extensions/forms/Wizard/Context/index.js.map +1 -0
  416. package/es/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.js +6 -6
  417. package/es/extensions/forms/Wizard/NextButton/NextButton.js.map +1 -0
  418. package/es/extensions/forms/Wizard/NextButton/index.js.map +1 -0
  419. package/{extensions/forms/StepsLayout → es/extensions/forms/Wizard}/PreviousButton/PreviousButton.js +7 -7
  420. package/es/extensions/forms/Wizard/PreviousButton/PreviousButton.js.map +1 -0
  421. package/es/extensions/forms/Wizard/PreviousButton/index.js.map +1 -0
  422. package/{extensions/forms/StepsLayout → es/extensions/forms/Wizard}/Step/Step.js +3 -3
  423. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -0
  424. package/es/extensions/forms/Wizard/Step/index.js.map +1 -0
  425. package/es/extensions/forms/Wizard/hooks/useNextRouter.d.ts +7 -0
  426. package/es/extensions/forms/Wizard/hooks/useNextRouter.js +42 -0
  427. package/es/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -0
  428. package/es/extensions/forms/Wizard/hooks/useQueryLocator.d.ts +3 -0
  429. package/es/extensions/forms/Wizard/hooks/useQueryLocator.js +51 -0
  430. package/es/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -0
  431. package/es/extensions/forms/Wizard/hooks/useReachRouter.d.ts +6 -0
  432. package/es/extensions/forms/Wizard/hooks/useReachRouter.js +46 -0
  433. package/es/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -0
  434. package/es/extensions/forms/Wizard/hooks/useReactRouter.d.ts +5 -0
  435. package/es/extensions/forms/Wizard/hooks/useReactRouter.js +37 -0
  436. package/es/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -0
  437. package/es/extensions/forms/Wizard/hooks/useStep.d.ts +5 -0
  438. package/es/extensions/forms/Wizard/hooks/useStep.js +22 -0
  439. package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -0
  440. package/es/extensions/forms/Wizard/index.d.ts +13 -0
  441. package/es/extensions/forms/Wizard/index.js +14 -0
  442. package/es/extensions/forms/Wizard/index.js.map +1 -0
  443. package/{cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.css → es/extensions/forms/Wizard/style/dnb-wizard-layout.css} +11 -10
  444. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -0
  445. package/es/extensions/forms/{StepsLayout/style/dnb-steps-layout.scss → Wizard/style/dnb-wizard-layout.scss} +6 -5
  446. package/es/extensions/forms/Wizard/style/index.d.ts +5 -0
  447. package/es/extensions/forms/Wizard/style/index.js +1 -0
  448. package/es/extensions/forms/Wizard/style/index.js.map +1 -0
  449. package/es/extensions/forms/Wizard/style.js.map +1 -0
  450. package/es/extensions/forms/constants/countries.d.ts +1 -0
  451. package/es/extensions/forms/constants/countries.js.map +1 -1
  452. package/es/extensions/forms/constants/locales/en-GB.d.ts +99 -0
  453. package/es/extensions/forms/constants/locales/en-GB.js +93 -0
  454. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -0
  455. package/es/extensions/forms/constants/locales/en-US.d.ts +93 -0
  456. package/es/extensions/forms/constants/locales/en-US.js +15 -0
  457. package/es/extensions/forms/constants/locales/en-US.js.map +1 -0
  458. package/es/extensions/forms/constants/locales/index.d.ts +183 -0
  459. package/es/extensions/forms/constants/locales/index.js +8 -0
  460. package/es/extensions/forms/constants/locales/index.js.map +1 -0
  461. package/es/extensions/forms/constants/locales/nb-NO.d.ts +99 -0
  462. package/es/extensions/forms/constants/locales/nb-NO.js +93 -0
  463. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -0
  464. package/es/extensions/forms/hooks/DataValueDocs.js +4 -4
  465. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  466. package/es/extensions/forms/hooks/useFieldProps.js +92 -65
  467. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  468. package/es/extensions/forms/hooks/useLocale.d.ts +10 -0
  469. package/es/extensions/forms/hooks/useLocale.js +26 -0
  470. package/es/extensions/forms/hooks/useLocale.js.map +1 -0
  471. package/es/extensions/forms/index.d.ts +14 -1
  472. package/es/extensions/forms/index.js +11 -1
  473. package/es/extensions/forms/index.js.map +1 -1
  474. package/es/extensions/forms/style/dnb-forms.css +36 -27
  475. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  476. package/es/extensions/forms/types.d.ts +2 -0
  477. package/es/extensions/forms/types.js.map +1 -1
  478. package/es/fragments/drawer-list/DrawerList.d.ts +95 -1
  479. package/es/fragments/drawer-list/DrawerListDocs.d.ts +3 -0
  480. package/es/fragments/drawer-list/DrawerListDocs.js +180 -0
  481. package/es/fragments/drawer-list/DrawerListDocs.js.map +1 -0
  482. package/es/shared/Context.d.ts +7 -6
  483. package/es/shared/Context.js.map +1 -1
  484. package/es/shared/Eufemia.d.ts +1 -1
  485. package/es/shared/Eufemia.js +2 -2
  486. package/es/shared/Eufemia.js.map +1 -1
  487. package/es/shared/component-helper.d.ts +0 -1
  488. package/es/shared/component-helper.js +0 -1
  489. package/es/shared/component-helper.js.map +1 -1
  490. package/es/shared/helpers/runCssVersionMismatchWarning.js +2 -2
  491. package/es/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  492. package/es/shared/helpers/useSharedState.d.ts +3 -1
  493. package/es/shared/helpers/useSharedState.js.map +1 -1
  494. package/es/shared/locales/en-GB.d.ts +0 -51
  495. package/es/shared/locales/en-GB.js +3 -54
  496. package/es/shared/locales/en-GB.js.map +1 -1
  497. package/es/shared/locales/en-US.d.ts +0 -51
  498. package/es/shared/locales/en-US.js.map +1 -1
  499. package/es/shared/locales/index.d.ts +0 -102
  500. package/es/shared/locales/nb-NO.d.ts +0 -51
  501. package/es/shared/locales/nb-NO.js +3 -54
  502. package/es/shared/locales/nb-NO.js.map +1 -1
  503. package/es/shared/types.d.ts +3 -0
  504. package/es/shared/types.js.map +1 -1
  505. package/es/shared/useLocale.d.ts +8 -1
  506. package/es/shared/useLocale.js +22 -11
  507. package/es/shared/useLocale.js.map +1 -1
  508. package/es/style/core/scopes.scss +1 -1
  509. package/es/style/dnb-ui-basis.css +1 -1
  510. package/es/style/dnb-ui-basis.min.css +1 -1
  511. package/es/style/dnb-ui-body.css +1 -1
  512. package/es/style/dnb-ui-body.min.css +1 -1
  513. package/es/style/dnb-ui-components.css +48 -29
  514. package/es/style/dnb-ui-components.min.css +3 -3
  515. package/es/style/dnb-ui-core.css +1 -1
  516. package/es/style/dnb-ui-core.min.css +1 -1
  517. package/es/style/dnb-ui-extensions.css +36 -27
  518. package/es/style/dnb-ui-extensions.min.css +1 -1
  519. package/es/style/dnb-ui-forms.css +36 -27
  520. package/es/style/dnb-ui-forms.min.css +1 -1
  521. package/es/style/dnb-ui-forms.scss +2 -1
  522. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +84 -56
  523. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  524. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +36 -27
  525. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  526. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +36 -27
  527. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  528. package/es/style/themes/theme-eiendom/properties.js +10 -10
  529. package/es/style/themes/theme-eiendom/properties.js.map +1 -1
  530. package/es/style/themes/theme-sbanken/properties.js +10 -10
  531. package/es/style/themes/theme-sbanken/properties.js.map +1 -1
  532. package/es/style/themes/theme-sbanken/properties.scss +10 -10
  533. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +10 -10
  534. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  535. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +89 -60
  536. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  537. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +36 -27
  538. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  539. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +36 -27
  540. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  541. package/es/style/themes/theme-ui/properties.js +10 -10
  542. package/es/style/themes/theme-ui/properties.js.map +1 -1
  543. package/es/style/themes/theme-ui/ui-theme-components.css +84 -56
  544. package/es/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  545. package/es/style/themes/theme-ui/ui-theme-extensions.css +36 -27
  546. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  547. package/es/style/themes/theme-ui/ui-theme-forms.css +36 -27
  548. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  549. package/esm/dnb-ui-basis.min.mjs +1 -1
  550. package/esm/dnb-ui-components.min.mjs +1 -1
  551. package/esm/dnb-ui-elements.min.mjs +1 -1
  552. package/esm/dnb-ui-extensions.min.mjs +3 -3
  553. package/esm/dnb-ui-lib.min.mjs +1 -1
  554. package/extensions/forms/DataContext/At/At.js +7 -7
  555. package/extensions/forms/DataContext/At/At.js.map +1 -1
  556. package/extensions/forms/DataContext/Context.d.ts +7 -3
  557. package/extensions/forms/DataContext/Context.js +2 -0
  558. package/extensions/forms/DataContext/Context.js.map +1 -1
  559. package/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
  560. package/extensions/forms/DataContext/Provider/Provider.js +56 -28
  561. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  562. package/extensions/forms/DataContext/Provider/ProviderDocs.js +4 -4
  563. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  564. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -9
  565. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  566. package/extensions/forms/Field/Boolean/Boolean.js +5 -7
  567. package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  568. package/extensions/forms/Field/Composition/Composition.d.ts +6 -0
  569. package/extensions/forms/Field/Composition/Composition.js +11 -0
  570. package/extensions/forms/Field/Composition/Composition.js.map +1 -0
  571. package/extensions/forms/Field/Composition/index.d.ts +2 -0
  572. package/extensions/forms/Field/Composition/index.js +3 -0
  573. package/extensions/forms/Field/Composition/index.js.map +1 -0
  574. package/extensions/forms/Field/Currency/Currency.js +4 -4
  575. package/extensions/forms/Field/Currency/Currency.js.map +1 -1
  576. package/extensions/forms/Field/Date/Date.js +6 -9
  577. package/extensions/forms/Field/Date/Date.js.map +1 -1
  578. package/extensions/forms/Field/Email/Email.js +6 -9
  579. package/extensions/forms/Field/Email/Email.js.map +1 -1
  580. package/extensions/forms/Field/Expiry/Expiry.js +25 -14
  581. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  582. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +5 -8
  583. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  584. package/extensions/forms/Field/Number/Number.js +8 -7
  585. package/extensions/forms/Field/Number/Number.js.map +1 -1
  586. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +6 -9
  587. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  588. package/extensions/forms/Field/Password/Password.js +5 -8
  589. package/extensions/forms/Field/Password/Password.js.map +1 -1
  590. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
  591. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -5
  592. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  593. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +1 -1
  594. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +15 -15
  595. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  596. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  597. package/extensions/forms/Field/SelectCountry/SelectCountry.js +6 -5
  598. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  599. package/extensions/forms/Field/String/String.js +9 -9
  600. package/extensions/forms/Field/String/String.js.map +1 -1
  601. package/extensions/forms/Field/Toggle/Toggle.js +7 -9
  602. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  603. package/extensions/forms/Field/index.d.ts +1 -0
  604. package/extensions/forms/Field/index.js +1 -0
  605. package/extensions/forms/Field/index.js.map +1 -1
  606. package/extensions/forms/FieldBlock/FieldBlock.js +3 -4
  607. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  608. package/extensions/forms/Form/Element/style/dnb-forms-element.css +7 -0
  609. package/extensions/forms/Form/Element/style/dnb-forms-element.min.css +1 -0
  610. package/extensions/forms/Form/Element/style/dnb-forms-element.scss +9 -0
  611. package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  612. package/extensions/forms/Form/Handler/Handler.js +3 -3
  613. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  614. package/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
  615. package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  616. package/extensions/forms/Form/SubmitIndicator/style/index.d.ts +1 -1
  617. package/extensions/forms/Form/SubmitIndicator/style/index.js +1 -1
  618. package/extensions/forms/Form/SubmitIndicator/style/index.js.map +1 -1
  619. package/extensions/forms/Form/data-context/useData.js +7 -4
  620. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  621. package/extensions/forms/Form/data-context/useError.d.ts +1 -0
  622. package/extensions/forms/Form/data-context/useError.js +14 -6
  623. package/extensions/forms/Form/data-context/useError.js.map +1 -1
  624. package/extensions/forms/Form/index.d.ts +1 -0
  625. package/extensions/forms/Form/index.js +1 -0
  626. package/extensions/forms/Form/index.js.map +1 -1
  627. package/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +4 -6
  628. package/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
  629. package/extensions/forms/Value/Boolean/Boolean.js +4 -6
  630. package/extensions/forms/Value/Boolean/Boolean.js.map +1 -1
  631. package/extensions/forms/Value/Date/Date.js +4 -6
  632. package/extensions/forms/Value/Date/Date.js.map +1 -1
  633. package/extensions/forms/Value/Email/Email.js +4 -6
  634. package/extensions/forms/Value/Email/Email.js.map +1 -1
  635. package/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +4 -6
  636. package/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  637. package/extensions/forms/Value/PhoneNumber/PhoneNumber.js +4 -6
  638. package/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
  639. package/extensions/forms/Wizard/Buttons/Buttons.js +24 -0
  640. package/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -0
  641. package/extensions/forms/Wizard/Buttons/index.js.map +1 -0
  642. package/extensions/forms/Wizard/Container/WizardContainer.d.ts +19 -0
  643. package/extensions/forms/{StepsLayout/StepsLayout.js → Wizard/Container/WizardContainer.js} +72 -61
  644. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -0
  645. package/extensions/forms/Wizard/Container/WizardContainerDocs.d.ts +3 -0
  646. package/{es/extensions/forms/StepsLayout/StepsLayoutDocs.js → extensions/forms/Wizard/Container/WizardContainerDocs.js} +6 -6
  647. package/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -0
  648. package/extensions/forms/Wizard/Container/index.d.ts +2 -0
  649. package/extensions/forms/Wizard/Container/index.js +3 -0
  650. package/extensions/forms/Wizard/Container/index.js.map +1 -0
  651. package/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -0
  652. package/extensions/forms/Wizard/Context/WizardContext.js +12 -0
  653. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -0
  654. package/extensions/forms/Wizard/Context/index.d.ts +2 -0
  655. package/extensions/forms/Wizard/Context/index.js +3 -0
  656. package/extensions/forms/Wizard/Context/index.js.map +1 -0
  657. package/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.js +6 -6
  658. package/extensions/forms/Wizard/NextButton/NextButton.js.map +1 -0
  659. package/extensions/forms/Wizard/NextButton/index.js.map +1 -0
  660. package/{es/extensions/forms/StepsLayout → extensions/forms/Wizard}/PreviousButton/PreviousButton.js +7 -7
  661. package/extensions/forms/Wizard/PreviousButton/PreviousButton.js.map +1 -0
  662. package/extensions/forms/Wizard/PreviousButton/index.js.map +1 -0
  663. package/{es/extensions/forms/StepsLayout → extensions/forms/Wizard}/Step/Step.js +3 -3
  664. package/extensions/forms/Wizard/Step/Step.js.map +1 -0
  665. package/extensions/forms/Wizard/Step/index.js.map +1 -0
  666. package/extensions/forms/Wizard/hooks/useNextRouter.d.ts +7 -0
  667. package/extensions/forms/Wizard/hooks/useNextRouter.js +43 -0
  668. package/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -0
  669. package/extensions/forms/Wizard/hooks/useQueryLocator.d.ts +3 -0
  670. package/extensions/forms/Wizard/hooks/useQueryLocator.js +51 -0
  671. package/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -0
  672. package/extensions/forms/Wizard/hooks/useReachRouter.d.ts +6 -0
  673. package/extensions/forms/Wizard/hooks/useReachRouter.js +47 -0
  674. package/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -0
  675. package/extensions/forms/Wizard/hooks/useReactRouter.d.ts +5 -0
  676. package/extensions/forms/Wizard/hooks/useReactRouter.js +38 -0
  677. package/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -0
  678. package/extensions/forms/Wizard/hooks/useStep.d.ts +5 -0
  679. package/extensions/forms/Wizard/hooks/useStep.js +24 -0
  680. package/extensions/forms/Wizard/hooks/useStep.js.map +1 -0
  681. package/extensions/forms/Wizard/index.d.ts +13 -0
  682. package/extensions/forms/Wizard/index.js +14 -0
  683. package/extensions/forms/Wizard/index.js.map +1 -0
  684. package/{es/extensions/forms/StepsLayout/style/dnb-steps-layout.css → extensions/forms/Wizard/style/dnb-wizard-layout.css} +11 -10
  685. package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -0
  686. package/{cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.scss → extensions/forms/Wizard/style/dnb-wizard-layout.scss} +6 -5
  687. package/extensions/forms/Wizard/style/index.d.ts +5 -0
  688. package/extensions/forms/Wizard/style/index.js +1 -0
  689. package/extensions/forms/Wizard/style/index.js.map +1 -0
  690. package/extensions/forms/Wizard/style.js.map +1 -0
  691. package/extensions/forms/constants/countries.d.ts +1 -0
  692. package/extensions/forms/constants/countries.js.map +1 -1
  693. package/extensions/forms/constants/locales/en-GB.d.ts +99 -0
  694. package/extensions/forms/constants/locales/en-GB.js +93 -0
  695. package/extensions/forms/constants/locales/en-GB.js.map +1 -0
  696. package/extensions/forms/constants/locales/en-US.d.ts +93 -0
  697. package/extensions/forms/constants/locales/en-US.js +15 -0
  698. package/extensions/forms/constants/locales/en-US.js.map +1 -0
  699. package/extensions/forms/constants/locales/index.d.ts +183 -0
  700. package/extensions/forms/constants/locales/index.js +8 -0
  701. package/extensions/forms/constants/locales/index.js.map +1 -0
  702. package/extensions/forms/constants/locales/nb-NO.d.ts +99 -0
  703. package/extensions/forms/constants/locales/nb-NO.js +93 -0
  704. package/extensions/forms/constants/locales/nb-NO.js.map +1 -0
  705. package/extensions/forms/hooks/DataValueDocs.js +4 -4
  706. package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  707. package/extensions/forms/hooks/useFieldProps.js +92 -65
  708. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  709. package/extensions/forms/hooks/useLocale.d.ts +10 -0
  710. package/extensions/forms/hooks/useLocale.js +26 -0
  711. package/extensions/forms/hooks/useLocale.js.map +1 -0
  712. package/extensions/forms/index.d.ts +14 -1
  713. package/extensions/forms/index.js +12 -1
  714. package/extensions/forms/index.js.map +1 -1
  715. package/extensions/forms/style/dnb-forms.css +36 -27
  716. package/extensions/forms/style/dnb-forms.min.css +1 -1
  717. package/extensions/forms/types.d.ts +2 -0
  718. package/extensions/forms/types.js.map +1 -1
  719. package/fragments/drawer-list/DrawerList.d.ts +95 -1
  720. package/fragments/drawer-list/DrawerListDocs.d.ts +3 -0
  721. package/fragments/drawer-list/DrawerListDocs.js +180 -0
  722. package/fragments/drawer-list/DrawerListDocs.js.map +1 -0
  723. package/package.json +1 -1
  724. package/shared/Context.d.ts +7 -6
  725. package/shared/Context.js.map +1 -1
  726. package/shared/Eufemia.d.ts +1 -1
  727. package/shared/Eufemia.js +2 -2
  728. package/shared/Eufemia.js.map +1 -1
  729. package/shared/component-helper.d.ts +0 -1
  730. package/shared/component-helper.js +0 -1
  731. package/shared/component-helper.js.map +1 -1
  732. package/shared/helpers/runCssVersionMismatchWarning.js +2 -2
  733. package/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  734. package/shared/helpers/useSharedState.d.ts +3 -1
  735. package/shared/helpers/useSharedState.js.map +1 -1
  736. package/shared/locales/en-GB.d.ts +0 -51
  737. package/shared/locales/en-GB.js +3 -54
  738. package/shared/locales/en-GB.js.map +1 -1
  739. package/shared/locales/en-US.d.ts +0 -51
  740. package/shared/locales/en-US.js.map +1 -1
  741. package/shared/locales/index.d.ts +0 -102
  742. package/shared/locales/nb-NO.d.ts +0 -51
  743. package/shared/locales/nb-NO.js +3 -54
  744. package/shared/locales/nb-NO.js.map +1 -1
  745. package/shared/types.d.ts +3 -0
  746. package/shared/types.js.map +1 -1
  747. package/shared/useLocale.d.ts +8 -1
  748. package/shared/useLocale.js +23 -11
  749. package/shared/useLocale.js.map +1 -1
  750. package/style/core/scopes.scss +1 -1
  751. package/style/dnb-ui-basis.css +1 -1
  752. package/style/dnb-ui-basis.min.css +1 -1
  753. package/style/dnb-ui-body.css +1 -1
  754. package/style/dnb-ui-body.min.css +1 -1
  755. package/style/dnb-ui-components.css +48 -29
  756. package/style/dnb-ui-components.min.css +3 -3
  757. package/style/dnb-ui-core.css +1 -1
  758. package/style/dnb-ui-core.min.css +1 -1
  759. package/style/dnb-ui-extensions.css +36 -27
  760. package/style/dnb-ui-extensions.min.css +1 -1
  761. package/style/dnb-ui-forms.css +36 -27
  762. package/style/dnb-ui-forms.min.css +1 -1
  763. package/style/dnb-ui-forms.scss +2 -1
  764. package/style/themes/theme-eiendom/eiendom-theme-components.css +84 -56
  765. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  766. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +36 -27
  767. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  768. package/style/themes/theme-eiendom/eiendom-theme-forms.css +36 -27
  769. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  770. package/style/themes/theme-eiendom/properties.js +10 -10
  771. package/style/themes/theme-eiendom/properties.js.map +1 -1
  772. package/style/themes/theme-sbanken/properties.js +10 -10
  773. package/style/themes/theme-sbanken/properties.js.map +1 -1
  774. package/style/themes/theme-sbanken/properties.scss +10 -10
  775. package/style/themes/theme-sbanken/sbanken-theme-basis.css +10 -10
  776. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  777. package/style/themes/theme-sbanken/sbanken-theme-components.css +89 -60
  778. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  779. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +36 -27
  780. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  781. package/style/themes/theme-sbanken/sbanken-theme-forms.css +36 -27
  782. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  783. package/style/themes/theme-ui/properties.js +10 -10
  784. package/style/themes/theme-ui/properties.js.map +1 -1
  785. package/style/themes/theme-ui/ui-theme-components.css +84 -56
  786. package/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  787. package/style/themes/theme-ui/ui-theme-extensions.css +36 -27
  788. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  789. package/style/themes/theme-ui/ui-theme-forms.css +36 -27
  790. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  791. package/umd/dnb-ui-basis.min.js +1 -1
  792. package/umd/dnb-ui-components.min.js +1 -1
  793. package/umd/dnb-ui-elements.min.js +1 -1
  794. package/umd/dnb-ui-extensions.min.js +3 -3
  795. package/umd/dnb-ui-lib.min.js +1 -1
  796. package/cjs/extensions/forms/Field/style/index.d.ts +0 -5
  797. package/cjs/extensions/forms/Field/style/index.js +0 -4
  798. package/cjs/extensions/forms/Field/style/index.js.map +0 -1
  799. package/cjs/extensions/forms/StepsLayout/Buttons/Buttons.js +0 -26
  800. package/cjs/extensions/forms/StepsLayout/Buttons/Buttons.js.map +0 -1
  801. package/cjs/extensions/forms/StepsLayout/Buttons/index.js.map +0 -1
  802. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js.map +0 -1
  803. package/cjs/extensions/forms/StepsLayout/NextButton/index.js.map +0 -1
  804. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +0 -1
  805. package/cjs/extensions/forms/StepsLayout/PreviousButton/index.js.map +0 -1
  806. package/cjs/extensions/forms/StepsLayout/Step/Step.js.map +0 -1
  807. package/cjs/extensions/forms/StepsLayout/Step/index.js.map +0 -1
  808. package/cjs/extensions/forms/StepsLayout/StepsContext.d.ts +0 -10
  809. package/cjs/extensions/forms/StepsLayout/StepsContext.js.map +0 -1
  810. package/cjs/extensions/forms/StepsLayout/StepsLayout.d.ts +0 -24
  811. package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +0 -1
  812. package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +0 -3
  813. package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +0 -1
  814. package/cjs/extensions/forms/StepsLayout/index.d.ts +0 -3
  815. package/cjs/extensions/forms/StepsLayout/index.js +0 -18
  816. package/cjs/extensions/forms/StepsLayout/index.js.map +0 -1
  817. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +0 -1
  818. package/cjs/extensions/forms/StepsLayout/style/index.d.ts +0 -5
  819. package/cjs/extensions/forms/StepsLayout/style/index.js +0 -4
  820. package/cjs/extensions/forms/StepsLayout/style/index.js.map +0 -1
  821. package/cjs/extensions/forms/StepsLayout/style.js.map +0 -1
  822. package/cjs/extensions/forms/StepsLayout/useStep.d.ts +0 -3
  823. package/cjs/extensions/forms/StepsLayout/useStep.js +0 -19
  824. package/cjs/extensions/forms/StepsLayout/useStep.js.map +0 -1
  825. package/cjs/shared/helpers/useEventEmitter.d.ts +0 -16
  826. package/cjs/shared/helpers/useEventEmitter.js +0 -38
  827. package/cjs/shared/helpers/useEventEmitter.js.map +0 -1
  828. package/es/extensions/forms/Field/style/index.d.ts +0 -5
  829. package/es/extensions/forms/Field/style/index.js +0 -1
  830. package/es/extensions/forms/Field/style/index.js.map +0 -1
  831. package/es/extensions/forms/StepsLayout/Buttons/Buttons.js +0 -18
  832. package/es/extensions/forms/StepsLayout/Buttons/Buttons.js.map +0 -1
  833. package/es/extensions/forms/StepsLayout/Buttons/index.js.map +0 -1
  834. package/es/extensions/forms/StepsLayout/NextButton/NextButton.js.map +0 -1
  835. package/es/extensions/forms/StepsLayout/NextButton/index.js.map +0 -1
  836. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +0 -1
  837. package/es/extensions/forms/StepsLayout/PreviousButton/index.js.map +0 -1
  838. package/es/extensions/forms/StepsLayout/Step/Step.js.map +0 -1
  839. package/es/extensions/forms/StepsLayout/Step/index.js.map +0 -1
  840. package/es/extensions/forms/StepsLayout/StepsContext.d.ts +0 -10
  841. package/es/extensions/forms/StepsLayout/StepsContext.js +0 -9
  842. package/es/extensions/forms/StepsLayout/StepsContext.js.map +0 -1
  843. package/es/extensions/forms/StepsLayout/StepsLayout.d.ts +0 -24
  844. package/es/extensions/forms/StepsLayout/StepsLayout.js.map +0 -1
  845. package/es/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +0 -3
  846. package/es/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +0 -1
  847. package/es/extensions/forms/StepsLayout/index.d.ts +0 -3
  848. package/es/extensions/forms/StepsLayout/index.js +0 -4
  849. package/es/extensions/forms/StepsLayout/index.js.map +0 -1
  850. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +0 -1
  851. package/es/extensions/forms/StepsLayout/style/index.d.ts +0 -5
  852. package/es/extensions/forms/StepsLayout/style/index.js +0 -1
  853. package/es/extensions/forms/StepsLayout/style/index.js.map +0 -1
  854. package/es/extensions/forms/StepsLayout/style.js.map +0 -1
  855. package/es/extensions/forms/StepsLayout/useStep.d.ts +0 -3
  856. package/es/extensions/forms/StepsLayout/useStep.js +0 -12
  857. package/es/extensions/forms/StepsLayout/useStep.js.map +0 -1
  858. package/es/shared/helpers/useEventEmitter.d.ts +0 -16
  859. package/es/shared/helpers/useEventEmitter.js +0 -29
  860. package/es/shared/helpers/useEventEmitter.js.map +0 -1
  861. package/extensions/forms/Field/style/index.d.ts +0 -5
  862. package/extensions/forms/Field/style/index.js +0 -1
  863. package/extensions/forms/Field/style/index.js.map +0 -1
  864. package/extensions/forms/StepsLayout/Buttons/Buttons.js +0 -18
  865. package/extensions/forms/StepsLayout/Buttons/Buttons.js.map +0 -1
  866. package/extensions/forms/StepsLayout/Buttons/index.js.map +0 -1
  867. package/extensions/forms/StepsLayout/NextButton/NextButton.js.map +0 -1
  868. package/extensions/forms/StepsLayout/NextButton/index.js.map +0 -1
  869. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +0 -1
  870. package/extensions/forms/StepsLayout/PreviousButton/index.js.map +0 -1
  871. package/extensions/forms/StepsLayout/Step/Step.js.map +0 -1
  872. package/extensions/forms/StepsLayout/Step/index.js.map +0 -1
  873. package/extensions/forms/StepsLayout/StepsContext.d.ts +0 -10
  874. package/extensions/forms/StepsLayout/StepsContext.js +0 -9
  875. package/extensions/forms/StepsLayout/StepsContext.js.map +0 -1
  876. package/extensions/forms/StepsLayout/StepsLayout.d.ts +0 -24
  877. package/extensions/forms/StepsLayout/StepsLayout.js.map +0 -1
  878. package/extensions/forms/StepsLayout/StepsLayoutDocs.d.ts +0 -3
  879. package/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +0 -1
  880. package/extensions/forms/StepsLayout/index.d.ts +0 -3
  881. package/extensions/forms/StepsLayout/index.js +0 -4
  882. package/extensions/forms/StepsLayout/index.js.map +0 -1
  883. package/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +0 -1
  884. package/extensions/forms/StepsLayout/style/index.d.ts +0 -5
  885. package/extensions/forms/StepsLayout/style/index.js +0 -1
  886. package/extensions/forms/StepsLayout/style/index.js.map +0 -1
  887. package/extensions/forms/StepsLayout/style.js.map +0 -1
  888. package/extensions/forms/StepsLayout/useStep.d.ts +0 -3
  889. package/extensions/forms/StepsLayout/useStep.js +0 -13
  890. package/extensions/forms/StepsLayout/useStep.js.map +0 -1
  891. package/shared/helpers/useEventEmitter.d.ts +0 -16
  892. package/shared/helpers/useEventEmitter.js +0 -30
  893. package/shared/helpers/useEventEmitter.js.map +0 -1
  894. /package/cjs/extensions/forms/{StepsLayout → Wizard}/Buttons/Buttons.d.ts +0 -0
  895. /package/cjs/extensions/forms/{StepsLayout → Wizard}/Buttons/index.d.ts +0 -0
  896. /package/cjs/extensions/forms/{StepsLayout → Wizard}/Buttons/index.js +0 -0
  897. /package/cjs/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.d.ts +0 -0
  898. /package/cjs/extensions/forms/{StepsLayout → Wizard}/NextButton/index.d.ts +0 -0
  899. /package/cjs/extensions/forms/{StepsLayout → Wizard}/NextButton/index.js +0 -0
  900. /package/cjs/extensions/forms/{StepsLayout → Wizard}/PreviousButton/PreviousButton.d.ts +0 -0
  901. /package/cjs/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.d.ts +0 -0
  902. /package/cjs/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.js +0 -0
  903. /package/cjs/extensions/forms/{StepsLayout → Wizard}/Step/Step.d.ts +0 -0
  904. /package/cjs/extensions/forms/{StepsLayout → Wizard}/Step/index.d.ts +0 -0
  905. /package/cjs/extensions/forms/{StepsLayout → Wizard}/Step/index.js +0 -0
  906. /package/cjs/extensions/forms/{StepsLayout → Wizard}/style.d.ts +0 -0
  907. /package/cjs/extensions/forms/{StepsLayout → Wizard}/style.js +0 -0
  908. /package/es/extensions/forms/{StepsLayout → Wizard}/Buttons/Buttons.d.ts +0 -0
  909. /package/es/extensions/forms/{StepsLayout → Wizard}/Buttons/index.d.ts +0 -0
  910. /package/es/extensions/forms/{StepsLayout → Wizard}/Buttons/index.js +0 -0
  911. /package/es/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.d.ts +0 -0
  912. /package/es/extensions/forms/{StepsLayout → Wizard}/NextButton/index.d.ts +0 -0
  913. /package/es/extensions/forms/{StepsLayout → Wizard}/NextButton/index.js +0 -0
  914. /package/es/extensions/forms/{StepsLayout → Wizard}/PreviousButton/PreviousButton.d.ts +0 -0
  915. /package/es/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.d.ts +0 -0
  916. /package/es/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.js +0 -0
  917. /package/es/extensions/forms/{StepsLayout → Wizard}/Step/Step.d.ts +0 -0
  918. /package/es/extensions/forms/{StepsLayout → Wizard}/Step/index.d.ts +0 -0
  919. /package/es/extensions/forms/{StepsLayout → Wizard}/Step/index.js +0 -0
  920. /package/es/extensions/forms/{StepsLayout → Wizard}/style.d.ts +0 -0
  921. /package/es/extensions/forms/{StepsLayout → Wizard}/style.js +0 -0
  922. /package/extensions/forms/{StepsLayout → Wizard}/Buttons/Buttons.d.ts +0 -0
  923. /package/extensions/forms/{StepsLayout → Wizard}/Buttons/index.d.ts +0 -0
  924. /package/extensions/forms/{StepsLayout → Wizard}/Buttons/index.js +0 -0
  925. /package/extensions/forms/{StepsLayout → Wizard}/NextButton/NextButton.d.ts +0 -0
  926. /package/extensions/forms/{StepsLayout → Wizard}/NextButton/index.d.ts +0 -0
  927. /package/extensions/forms/{StepsLayout → Wizard}/NextButton/index.js +0 -0
  928. /package/extensions/forms/{StepsLayout → Wizard}/PreviousButton/PreviousButton.d.ts +0 -0
  929. /package/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.d.ts +0 -0
  930. /package/extensions/forms/{StepsLayout → Wizard}/PreviousButton/index.js +0 -0
  931. /package/extensions/forms/{StepsLayout → Wizard}/Step/Step.d.ts +0 -0
  932. /package/extensions/forms/{StepsLayout → Wizard}/Step/index.d.ts +0 -0
  933. /package/extensions/forms/{StepsLayout → Wizard}/Step/index.js +0 -0
  934. /package/extensions/forms/{StepsLayout → Wizard}/style.d.ts +0 -0
  935. /package/extensions/forms/{StepsLayout → Wizard}/style.js +0 -0
@@ -11,17 +11,20 @@ export type EventListenerCall = {
11
11
  callback: () => any;
12
12
  };
13
13
  export type FilterDataHandler<Data> = (data: Data, filter: FilterData) => Partial<Data>;
14
- export type FilterData = (path: Path, value: any, props: FieldProps) => boolean | undefined;
14
+ export type FilterData = (path: Path, value: any, props: FieldProps, internal: {
15
+ error: Error | undefined;
16
+ }) => boolean | undefined;
15
17
  export interface ContextState {
16
18
  id?: Identifier;
17
19
  hasContext: boolean;
18
- /** The dataset for the form / form steps */
20
+ /** The dataset for the form / form wizard */
19
21
  data: any;
20
22
  /** Should the form validate data before submitting? */
21
23
  errors?: Record<string, Error>;
22
24
  /** Will set autoComplete="on" on each nested Field.String and Field.Number */
23
25
  autoComplete?: boolean;
24
- handlePathChange: (path: Path, value: any) => EventReturnWithStateObject | unknown | Promise<EventReturnWithStateObject | unknown>;
26
+ handlePathChange: (path: Path, value?: any) => EventReturnWithStateObject | unknown | Promise<EventReturnWithStateObject | unknown>;
27
+ handlePathChangeUnvalidated: (path: Path, value: any) => void;
25
28
  updateDataValue: (path: Path, value: any) => void;
26
29
  setData: (data: any) => void;
27
30
  filterDataHandler: (data: any, filter: FilterData) => any;
@@ -40,6 +43,7 @@ export interface ContextState {
40
43
  handleUnMountField: (path: Path) => void;
41
44
  formState: SubmitState;
42
45
  setFormState?: (state: SubmitState) => void;
46
+ setSubmitState?: (state: EventStateObject) => void;
43
47
  handleSubmitCall: ({ onSubmit, enableAsyncBehaviour, skipFieldValidation, skipErrorCheck, }: {
44
48
  onSubmit: () => EventReturnWithStateObject | void | Promise<EventReturnWithStateObject | void>;
45
49
  enableAsyncBehaviour: boolean;
@@ -14,6 +14,7 @@ const defaultContextState = {
14
14
  disabled: undefined,
15
15
  submitState: undefined,
16
16
  handlePathChange: () => null,
17
+ handlePathChangeUnvalidated: () => null,
17
18
  updateDataValue: () => null,
18
19
  setData: () => null,
19
20
  filterDataHandler: () => null,
@@ -23,6 +24,7 @@ const defaultContextState = {
23
24
  showAllErrors: false,
24
25
  formState: undefined,
25
26
  setFormState: () => null,
27
+ setSubmitState: () => null,
26
28
  setFieldEventListener: () => null,
27
29
  handleSubmitCall: () => null,
28
30
  setShowAllErrors: () => null,
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","names":["_react","_interopRequireDefault","require","_ajv","obj","__esModule","default","defaultContextState","hasContext","data","undefined","schema","disabled","submitState","handlePathChange","updateDataValue","setData","filterDataHandler","validateData","handleSubmit","scrollToTop","showAllErrors","formState","setFormState","setFieldEventListener","handleSubmitCall","setShowAllErrors","mountedFieldPaths","handleMountField","handleUnMountField","hasErrors","hasFieldState","checkFieldStateFor","setFieldState","setFieldError","setProps","ajvInstance","makeAjvInstance","contextErrorMessages","_isInsideFormElement","props","exports","Context","React","createContext","_default"],"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) => 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 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 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,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AAAmD,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAmG5C,MAAMG,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,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,EAAEZ,SAAS;EACpBa,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,IAAAC,oBAAe,EAAC,CAAC;EAC9BC,oBAAoB,EAAE5B,SAAS;EAC/B6B,oBAAoB,EAAE,KAAK;EAC3BC,KAAK,EAAE;AACT,CAAC;AAAAC,OAAA,CAAAlC,mBAAA,GAAAA,mBAAA;AAED,MAAMmC,OAAO,GAAGC,cAAK,CAACC,aAAa,CAAerC,mBAAmB,CAAC;AAAA,IAAAsC,QAAA,GAEvDH,OAAO;AAAAD,OAAA,CAAAnC,OAAA,GAAAuC,QAAA"}
1
+ {"version":3,"file":"Context.js","names":["_react","_interopRequireDefault","require","_ajv","obj","__esModule","default","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","makeAjvInstance","contextErrorMessages","_isInsideFormElement","props","exports","Context","React","createContext","_default"],"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,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AAAmD,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAwG5C,MAAMG,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,EAAE,IAAAC,oBAAe,EAAC,CAAC;EAC9BC,oBAAoB,EAAE9B,SAAS;EAC/B+B,oBAAoB,EAAE,KAAK;EAC3BC,KAAK,EAAE;AACT,CAAC;AAAAC,OAAA,CAAApC,mBAAA,GAAAA,mBAAA;AAED,MAAMqC,OAAO,GAAGC,cAAK,CAACC,aAAa,CAAevC,mBAAmB,CAAC;AAAA,IAAAwC,QAAA,GAEvDH,OAAO;AAAAD,OAAA,CAAArC,OAAA,GAAAyC,QAAA"}
@@ -58,10 +58,6 @@ export interface Props<Data extends JsonObject> {
58
58
  * The result of the onSubmit function
59
59
  */
60
60
  result: unknown) => EventReturnWithStateObject | void | Promise<EventReturnWithStateObject | void>;
61
- /**
62
- * Shows an indicator on the current label during a field change.
63
- */
64
- enableAsyncChangeBehavior?: boolean;
65
61
  /**
66
62
  * Minimum time to display the submit indicator.
67
63
  */
@@ -69,7 +65,7 @@ export interface Props<Data extends JsonObject> {
69
65
  /**
70
66
  * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.
71
67
  */
72
- asyncBehaviorTimeout?: number;
68
+ asyncSubmitTimeout?: number;
73
69
  /**
74
70
  * Scroll to top on submit
75
71
  */
@@ -15,7 +15,7 @@ var _isAsync = require("../../../../shared/helpers/isAsync");
15
15
  var _useSharedState = require("../../../../shared/helpers/useSharedState");
16
16
  var _Context = _interopRequireDefault(require("../Context"));
17
17
  var _structuredClone = _interopRequireDefault(require("@ungap/structured-clone"));
18
- const _excluded = ["id", "defaultData", "data", "schema", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "onSubmitComplete", "scrollTopOnSubmit", "minimumAsyncBehaviorTime", "asyncBehaviorTimeout", "sessionStorageId", "ajvInstance", "filterData", "errorMessages", "children"];
18
+ const _excluded = ["id", "defaultData", "data", "schema", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "onSubmitComplete", "scrollTopOnSubmit", "minimumAsyncBehaviorTime", "asyncSubmitTimeout", "sessionStorageId", "ajvInstance", "filterData", "errorMessages", "children"];
19
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
20
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
21
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -43,7 +43,7 @@ function Provider(props) {
43
43
  onSubmitComplete,
44
44
  scrollTopOnSubmit,
45
45
  minimumAsyncBehaviorTime,
46
- asyncBehaviorTimeout,
46
+ asyncSubmitTimeout,
47
47
  sessionStorageId,
48
48
  ajvInstance,
49
49
  filterData,
@@ -106,7 +106,7 @@ function Provider(props) {
106
106
  }, [executeAjvValidator]);
107
107
  const checkFieldStateFor = (0, _react.useCallback)((path, state) => {
108
108
  var _errorsRef$current;
109
- return Boolean(state === 'error' ? ((_errorsRef$current = errorsRef.current) === null || _errorsRef$current === void 0 ? void 0 : _errorsRef$current[path]) instanceof Error || fieldErrorRef.current[path] : fieldStateRef.current[path] === state);
109
+ return Boolean(state === 'error' ? ((_errorsRef$current = errorsRef.current) === null || _errorsRef$current === void 0 ? void 0 : _errorsRef$current[path]) instanceof Error || fieldErrorRef.current[path] instanceof Error : fieldStateRef.current[path] === state);
110
110
  }, []);
111
111
  const hasFieldState = (0, _react.useCallback)(state => {
112
112
  return mountedFieldPathsRef.current.some(path => {
@@ -117,7 +117,7 @@ function Provider(props) {
117
117
  return hasFieldState('error');
118
118
  }, [hasFieldState]);
119
119
  const setFieldError = (0, _react.useCallback)((path, error) => {
120
- fieldErrorRef.current[path] = Boolean(error);
120
+ fieldErrorRef.current[path] = error;
121
121
  }, []);
122
122
  const setFieldState = (0, _react.useCallback)((path, fieldState) => {
123
123
  if (fieldState !== fieldStateRef.current[path]) {
@@ -130,9 +130,12 @@ function Provider(props) {
130
130
  if (filter) {
131
131
  const filtered = _objectSpread({}, data);
132
132
  Object.entries(fieldPropsRef.current).forEach(_ref => {
133
+ var _fieldErrorRef$curren;
133
134
  let [path, props] = _ref;
134
135
  const exists = _jsonPointer.default.has(data, path);
135
- const result = filter(path, exists ? _jsonPointer.default.get(data, path) : undefined, props);
136
+ const result = filter(path, exists ? _jsonPointer.default.get(data, path) : undefined, props, {
137
+ error: (_fieldErrorRef$curren = fieldErrorRef.current) === null || _fieldErrorRef$curren === void 0 ? void 0 : _fieldErrorRef$curren[path]
138
+ });
136
139
  if (result === false && exists) {
137
140
  _jsonPointer.default.remove(filtered, path);
138
141
  }
@@ -199,13 +202,14 @@ function Provider(props) {
199
202
  extendAttachment === null || extendAttachment === void 0 ? void 0 : extendAttachment({
200
203
  filterDataHandler,
201
204
  hasErrors,
202
- setShowAllErrors
205
+ setShowAllErrors,
206
+ setSubmitState
203
207
  });
204
208
  if (filterData) {
205
209
  rerenderUseDataHook === null || rerenderUseDataHook === void 0 ? void 0 : rerenderUseDataHook();
206
210
  }
207
211
  }
208
- }, [extendAttachment, filterData, filterDataHandler, hasErrors, id, rerenderUseDataHook, setShowAllErrors]);
212
+ }, [extendAttachment, filterData, filterDataHandler, hasErrors, id, rerenderUseDataHook, setShowAllErrors, setSubmitState]);
209
213
  const updateDataValue = (0, _react.useCallback)((path, value) => {
210
214
  var _internalDataRef$curr;
211
215
  if (!path) {
@@ -239,23 +243,32 @@ function Provider(props) {
239
243
  internalDataRef.current = newData;
240
244
  forceUpdate();
241
245
  }, []);
242
- const handlePathChange = (0, _react.useCallback)(async (path, value) => {
246
+ const handlePathChangeUnvalidated = (0, _react.useCallback)(async (path, value) => {
243
247
  if (!path) {
244
248
  return null;
245
249
  }
250
+ updateDataValue(path, value);
246
251
  if ((0, _isAsync.isAsync)(onPathChange)) {
247
252
  await (onPathChange === null || onPathChange === void 0 ? void 0 : onPathChange(path, value));
248
253
  } else {
249
254
  onPathChange === null || onPathChange === void 0 ? void 0 : onPathChange(path, value);
250
255
  }
251
- const newData = updateDataValue(path, value);
256
+ }, [onPathChange, updateDataValue]);
257
+ const handlePathChange = (0, _react.useCallback)(async function (path) {
258
+ let value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '_undefined_';
259
+ if (!path) {
260
+ return null;
261
+ }
262
+ if (value !== '_undefined_') {
263
+ handlePathChangeUnvalidated(path, value);
264
+ }
252
265
  showAllErrorsRef.current = false;
253
266
  validateData();
254
267
  if ((0, _isAsync.isAsync)(onChange)) {
255
- return await onChange(newData);
268
+ return await onChange(internalDataRef.current);
256
269
  }
257
- return onChange === null || onChange === void 0 ? void 0 : onChange(newData);
258
- }, [onChange, onPathChange, updateDataValue, validateData]);
270
+ return onChange === null || onChange === void 0 ? void 0 : onChange(internalDataRef.current);
271
+ }, [handlePathChangeUnvalidated, onChange, validateData]);
259
272
  const handleMountField = (0, _react.useCallback)(path => {
260
273
  mountedFieldPathsRef.current = addListPath(mountedFieldPathsRef.current, path);
261
274
  }, []);
@@ -285,7 +298,7 @@ function Provider(props) {
285
298
  setSubmitState({
286
299
  error: undefined
287
300
  });
288
- const asyncBehaviorIsEnabled = !(skipErrorCheck ? false : hasErrors()) && (enableAsyncBehaviour || hasFieldWithAsyncValidator());
301
+ const asyncBehaviorIsEnabled = (skipErrorCheck ? true : !hasErrors() || hasFieldState('pending')) && (enableAsyncBehaviour || hasFieldWithAsyncValidator());
289
302
  if (asyncBehaviorIsEnabled) {
290
303
  setFormState('pending');
291
304
  }
@@ -331,15 +344,15 @@ function Provider(props) {
331
344
  window.requestAnimationFrame(() => {
332
345
  setFormState(undefined);
333
346
  });
334
- }
335
- if (!skipFieldValidation) {
336
- onSubmitContinueRef.current = () => {
337
- window.requestAnimationFrame(() => {
338
- handleSubmitCall(_objectSpread(_objectSpread({}, args), {}, {
339
- skipFieldValidation: true
340
- }));
341
- });
342
- };
347
+ if (!skipFieldValidation) {
348
+ onSubmitContinueRef.current = () => {
349
+ window.requestAnimationFrame(() => {
350
+ handleSubmitCall(_objectSpread(_objectSpread({}, args), {}, {
351
+ skipFieldValidation: true
352
+ }));
353
+ });
354
+ };
355
+ }
343
356
  }
344
357
  onSubmitRequest === null || onSubmitRequest === void 0 ? void 0 : onSubmitRequest();
345
358
  setShowAllErrors(true);
@@ -428,24 +441,35 @@ function Provider(props) {
428
441
  forceUpdate();
429
442
  }
430
443
  }, [schema, validateData, forceUpdate]);
444
+ const onTimeout = (0, _react.useCallback)(() => {
445
+ setFormState(undefined);
446
+ setSubmitState({
447
+ info: undefined,
448
+ warning: undefined,
449
+ error: undefined
450
+ });
451
+ }, [setFormState, setSubmitState]);
431
452
  const {
432
453
  bufferedFormState: formState
433
454
  } = useFormStatusBuffer({
434
455
  formState: formStateRef.current,
435
456
  waitFor: hasFieldState('pending'),
436
457
  minimumAsyncBehaviorTime,
437
- asyncBehaviorTimeout
458
+ asyncSubmitTimeout,
459
+ onTimeout
438
460
  });
439
461
  const submitState = submitStateRef.current;
440
462
  const disabled = (_rest$disabled = rest === null || rest === void 0 ? void 0 : rest['disabled']) !== null && _rest$disabled !== void 0 ? _rest$disabled : formState === 'pending';
441
463
  return _react.default.createElement(_Context.default.Provider, {
442
464
  value: _objectSpread({
443
465
  handlePathChange,
466
+ handlePathChangeUnvalidated,
444
467
  handleSubmit,
445
468
  handleMountField,
446
469
  handleUnMountField,
447
470
  handleSubmitCall,
448
471
  setFormState,
472
+ setSubmitState,
449
473
  setShowAllErrors,
450
474
  setFieldEventListener,
451
475
  setFieldState,
@@ -490,7 +514,8 @@ function useFormStatusBuffer(props) {
490
514
  formState,
491
515
  waitFor,
492
516
  minimumAsyncBehaviorTime,
493
- asyncBehaviorTimeout
517
+ asyncSubmitTimeout,
518
+ onTimeout
494
519
  } = props || {};
495
520
  const [, forceUpdate] = (0, _react.useReducer)(() => ({}), {});
496
521
  const stateRef = (0, _react.useRef)();
@@ -526,7 +551,7 @@ function useFormStatusBuffer(props) {
526
551
  if (formState === 'complete') {
527
552
  hadCompleteRef.current = true;
528
553
  }
529
- if (formState === 'pending') {
554
+ if (formState === 'pending' && stateRef.current !== 'pending') {
530
555
  clear();
531
556
  nowRef.current = Date.now();
532
557
  hadCompleteRef.current = false;
@@ -546,13 +571,16 @@ function useFormStatusBuffer(props) {
546
571
  clear();
547
572
  }, delay + minimum);
548
573
  }
574
+ }
575
+ if (stateRef.current === 'pending') {
549
576
  timeoutRef.current.timeout = setTimeout(() => {
550
- nowRef.current = 0;
577
+ clear();
551
578
  setState(undefined);
552
- }, asyncBehaviorTimeout !== null && asyncBehaviorTimeout !== void 0 ? asyncBehaviorTimeout : 30000);
579
+ onTimeout === null || onTimeout === void 0 ? void 0 : onTimeout();
580
+ }, asyncSubmitTimeout !== null && asyncSubmitTimeout !== void 0 ? asyncSubmitTimeout : 30000);
553
581
  }
554
582
  return clear;
555
- }, [clear, minimumAsyncBehaviorTime, formState, setState, waitFor, asyncBehaviorTimeout]);
583
+ }, [clear, minimumAsyncBehaviorTime, formState, setState, waitFor, asyncSubmitTimeout, onTimeout]);
556
584
  return {
557
585
  bufferedFormState: stateRef.current
558
586
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","names":["_react","_interopRequireWildcard","require","_jsonPointer","_interopRequireDefault","_ajv","_Provider","_useMountEffect","_useUpdateEffect","_isAsync","_useSharedState","_Context","_structuredClone","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","useLayoutEffect","window","React","useEffect","isArrayJsonPointer","Provider","props","_sharedAttachments$da","_rest$disabled","forceUpdate","useReducer","id","defaultData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncBehaviorTimeout","sessionStorageId","ajvInstance","filterData","errorMessages","contextErrorMessages","children","rest","console","error","ajvRef","useRef","makeAjvInstance","mountedFieldPathsRef","errorsRef","showAllErrorsRef","setShowAllErrors","useCallback","showAllErrors","current","submitStateRef","setSubmitState","state","assign","formStateRef","setFormState","formState","fieldErrorRef","fieldStateRef","initialData","useMemo","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","ajvErrorsToFormErrors","errors","validateData","checkFieldStateFor","path","_errorsRef$current","Boolean","Error","hasFieldState","some","hasErrors","setFieldError","setFieldState","fieldState","filterDataHandler","filtered","entries","fieldPropsRef","_ref","exists","pointer","result","remove","setProps","hasFieldWithAsyncValidator","isAsync","validator","onBlurValidator","sharedData","useSharedState","sharedAttachments","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","update","updateDataValue","_internalDataRef$curr","givenData","match","newData","structuredClone","e","_window$sessionStorag2","setItem","stringify","setData","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","setFieldEventListener","_ref2","p","t","_onSubmitContinueRef$","useMountEffect","_ajvRef$current","compile","useUpdateEffect","_ajvRef$current2","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","createElement","hasContext","mountedFieldPaths","paths","concat","thisPath","stateRef","nowRef","timeoutRef","setState","clear","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 * Shows an indicator on the current label during a field change.\n */\n enableAsyncChangeBehavior?: boolean\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 asyncBehaviorTimeout?: 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 asyncBehaviorTimeout,\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, boolean>>({})\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]\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] = Boolean(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 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\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value) => {\n if (!path) {\n return null\n }\n\n if (isAsync(onPathChange)) {\n await onPathChange?.(path, value)\n } else {\n onPathChange?.(path, value)\n }\n\n const newData = updateDataValue(path, value)\n\n showAllErrorsRef.current = false\n\n validateData()\n\n if (isAsync(onChange)) {\n return await onChange(newData as Data)\n }\n\n return onChange?.(newData as Data)\n },\n [onChange, onPathChange, updateDataValue, 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 ? false : hasErrors()) &&\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\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 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 { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncBehaviorTimeout,\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 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 asyncBehaviorTimeout?: Props<unknown>['asyncBehaviorTimeout']\n formState: ContextState['formState']\n waitFor: boolean\n}\n\nfunction useFormStatusBuffer(props: FormStatusBufferProps) {\n const {\n formState,\n waitFor,\n minimumAsyncBehaviorTime,\n asyncBehaviorTimeout,\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') {\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 timeoutRef.current.timeout = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, asyncBehaviorTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncBehaviorTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Provider.js","names":["_react","_interopRequireWildcard","require","_jsonPointer","_interopRequireDefault","_ajv","_Provider","_useMountEffect","_useUpdateEffect","_isAsync","_useSharedState","_Context","_structuredClone","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","useLayoutEffect","window","React","useEffect","isArrayJsonPointer","Provider","props","_sharedAttachments$da","_rest$disabled","forceUpdate","useReducer","id","defaultData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","filterData","errorMessages","contextErrorMessages","children","rest","console","error","ajvRef","useRef","makeAjvInstance","mountedFieldPathsRef","errorsRef","showAllErrorsRef","setShowAllErrors","useCallback","showAllErrors","current","submitStateRef","setSubmitState","state","assign","formStateRef","setFormState","formState","fieldErrorRef","fieldStateRef","initialData","useMemo","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","ajvErrorsToFormErrors","errors","validateData","checkFieldStateFor","path","_errorsRef$current","Boolean","Error","hasFieldState","some","hasErrors","setFieldError","setFieldState","fieldState","filterDataHandler","filtered","entries","fieldPropsRef","_ref","_fieldErrorRef$curren","exists","pointer","result","remove","setProps","hasFieldWithAsyncValidator","isAsync","validator","onBlurValidator","sharedData","useSharedState","sharedAttachments","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","update","updateDataValue","_internalDataRef$curr","givenData","match","newData","structuredClone","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","setFieldEventListener","_ref2","p","t","_onSubmitContinueRef$","useMountEffect","_ajvRef$current","compile","useUpdateEffect","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","createElement","hasContext","mountedFieldPaths","paths","concat","thisPath","stateRef","nowRef","timeoutRef","setState","clear","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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"}