@dnb/eufemia 10.47.0 → 10.49.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 (591) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/cjs/components/height-animation/HeightAnimationInstance.d.ts +1 -0
  3. package/cjs/components/height-animation/HeightAnimationInstance.js +13 -6
  4. package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
  5. package/cjs/extensions/forms/DataContext/Context.d.ts +7 -4
  6. package/cjs/extensions/forms/DataContext/Context.js +1 -2
  7. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  8. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +7 -2
  9. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  10. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.d.ts +8 -3
  11. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +25 -9
  12. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  13. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +0 -4
  14. package/cjs/extensions/forms/DataContext/Provider/Provider.js +28 -28
  15. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  16. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +1 -1
  17. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  18. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +5 -2
  19. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +32 -7
  20. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  21. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +1 -1
  22. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  23. package/cjs/extensions/forms/Form/Isolation/Isolation.js +7 -7
  24. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  25. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js +20 -1
  26. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  27. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +17 -11
  28. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  29. package/cjs/extensions/forms/Form/Section/Section.d.ts +7 -2
  30. package/cjs/extensions/forms/Form/Section/Section.js +3 -1
  31. package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
  32. package/cjs/extensions/forms/Form/Section/SectionDocs.js +6 -1
  33. package/cjs/extensions/forms/Form/Section/SectionDocs.js.map +1 -1
  34. package/cjs/extensions/forms/Form/Section/containers/SectionContainer.d.ts +3 -1
  35. package/cjs/extensions/forms/Form/Section/containers/SectionContainer.js +22 -20
  36. package/cjs/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
  37. package/cjs/extensions/forms/Form/Section/containers/SectionContainerContext.d.ts +2 -0
  38. package/cjs/extensions/forms/Form/Section/containers/SectionContainerContext.js.map +1 -1
  39. package/cjs/extensions/forms/Form/Section/containers/SectionContainerProvider.d.ts +1 -0
  40. package/cjs/extensions/forms/Form/Section/containers/SectionContainerProvider.js +4 -1
  41. package/cjs/extensions/forms/Form/Section/containers/SectionContainerProvider.js.map +1 -1
  42. package/cjs/extensions/forms/Form/Section/style/dnb-form-section.css +3 -0
  43. package/cjs/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
  44. package/cjs/extensions/forms/Form/Section/style/dnb-form-section.scss +4 -0
  45. package/cjs/extensions/forms/Iterate/Array/Array.js +75 -26
  46. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  47. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js +15 -1
  48. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  49. package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +20 -0
  50. package/cjs/extensions/forms/Iterate/{AnimatedContainer/ElementBlock.js → Array/ArrayItemArea.js} +66 -49
  51. package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -0
  52. package/cjs/extensions/forms/Iterate/Array/ArrayItemAreaContext.d.ts +6 -0
  53. package/cjs/extensions/forms/Iterate/{AnimatedContainer/ElementBlockContext.js → Array/ArrayItemAreaContext.js} +3 -3
  54. package/cjs/extensions/forms/Iterate/Array/ArrayItemAreaContext.js.map +1 -0
  55. package/cjs/extensions/forms/Iterate/Array/types.d.ts +8 -5
  56. package/cjs/extensions/forms/Iterate/Array/types.js.map +1 -1
  57. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.d.ts +9 -0
  58. package/cjs/extensions/forms/Iterate/EditContainer/{EditToolbarTools.js → CancelButton.js} +30 -56
  59. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -0
  60. package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.d.ts +4 -0
  61. package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js +74 -0
  62. package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -0
  63. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +8 -2
  64. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +33 -12
  65. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  66. package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
  67. package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  68. package/cjs/extensions/forms/Iterate/EditContainer/index.d.ts +2 -0
  69. package/cjs/extensions/forms/Iterate/EditContainer/index.js +19 -1
  70. package/cjs/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
  71. package/cjs/extensions/forms/Iterate/IterateItemContext.d.ts +7 -1
  72. package/cjs/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
  73. package/cjs/extensions/forms/Iterate/PushButton/PushButton.d.ts +7 -2
  74. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js +38 -15
  75. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  76. package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js +18 -2
  77. package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
  78. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -2
  79. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +78 -24
  80. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  81. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +10 -0
  82. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  83. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +12 -14
  84. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  85. package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.d.ts +10 -2
  86. package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js +52 -6
  87. package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  88. package/cjs/extensions/forms/Iterate/Toolbar/ToolbarContext.d.ts +6 -0
  89. package/cjs/extensions/forms/Iterate/Toolbar/ToolbarContext.js +12 -0
  90. package/cjs/extensions/forms/Iterate/Toolbar/ToolbarContext.js.map +1 -0
  91. package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.d.ts +1 -0
  92. package/cjs/extensions/forms/Iterate/ViewContainer/{ViewToolbarTools.js → EditButton.js} +8 -11
  93. package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -0
  94. package/cjs/extensions/forms/Iterate/ViewContainer/RemoveButton.d.ts +1 -0
  95. package/cjs/extensions/forms/Iterate/ViewContainer/RemoveButton.js +19 -0
  96. package/cjs/extensions/forms/Iterate/ViewContainer/RemoveButton.js.map +1 -0
  97. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +8 -2
  98. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +25 -10
  99. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  100. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  101. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  102. package/cjs/extensions/forms/Iterate/ViewContainer/index.d.ts +2 -0
  103. package/cjs/extensions/forms/Iterate/ViewContainer/index.js +19 -1
  104. package/cjs/extensions/forms/Iterate/ViewContainer/index.js.map +1 -1
  105. package/cjs/extensions/forms/Iterate/hooks/index.d.ts +2 -0
  106. package/cjs/extensions/forms/Iterate/hooks/index.js +21 -0
  107. package/cjs/extensions/forms/Iterate/hooks/index.js.map +1 -0
  108. package/cjs/extensions/forms/Iterate/hooks/useSwitchContainerMode.d.ts +17 -0
  109. package/cjs/extensions/forms/Iterate/hooks/useSwitchContainerMode.js +93 -0
  110. package/cjs/extensions/forms/Iterate/hooks/useSwitchContainerMode.js.map +1 -0
  111. package/cjs/extensions/forms/Tools/Log.d.ts +6 -0
  112. package/cjs/extensions/forms/Tools/Log.js +29 -0
  113. package/cjs/extensions/forms/Tools/Log.js.map +1 -0
  114. package/cjs/extensions/forms/Tools/index.d.ts +1 -0
  115. package/cjs/extensions/forms/Tools/index.js +7 -0
  116. package/cjs/extensions/forms/Tools/index.js.map +1 -1
  117. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +18 -6
  118. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  119. package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
  120. package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  121. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +3 -1
  122. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  123. package/cjs/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  124. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  125. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +0 -2
  126. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  127. package/cjs/extensions/forms/constants/countries.js +10 -26
  128. package/cjs/extensions/forms/constants/countries.js.map +1 -1
  129. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +2 -1
  130. package/cjs/extensions/forms/constants/locales/en-GB.js +3 -2
  131. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  132. package/cjs/extensions/forms/constants/locales/en-US.d.ts +2 -1
  133. package/cjs/extensions/forms/constants/locales/index.d.ts +4 -2
  134. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
  135. package/cjs/extensions/forms/constants/locales/nb-NO.js +3 -2
  136. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  137. package/cjs/extensions/forms/hooks/DataValueDocs.js +6 -1
  138. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  139. package/cjs/extensions/forms/hooks/useExternalValue.js +8 -6
  140. package/cjs/extensions/forms/hooks/useExternalValue.js.map +1 -1
  141. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +1 -0
  142. package/cjs/extensions/forms/hooks/useFieldProps.js +48 -27
  143. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  144. package/cjs/extensions/forms/hooks/usePath.d.ts +1 -0
  145. package/cjs/extensions/forms/hooks/usePath.js +5 -1
  146. package/cjs/extensions/forms/hooks/usePath.js.map +1 -1
  147. package/cjs/extensions/forms/style/dnb-forms.css +3 -0
  148. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  149. package/cjs/extensions/forms/types.d.ts +4 -0
  150. package/cjs/extensions/forms/types.js.map +1 -1
  151. package/cjs/shared/Eufemia.d.ts +1 -1
  152. package/cjs/shared/Eufemia.js +2 -2
  153. package/cjs/shared/Eufemia.js.map +1 -1
  154. package/cjs/style/core/scopes.scss +1 -1
  155. package/cjs/style/dnb-ui-basis.css +1 -1
  156. package/cjs/style/dnb-ui-basis.min.css +1 -1
  157. package/cjs/style/dnb-ui-body.css +1 -1
  158. package/cjs/style/dnb-ui-body.min.css +1 -1
  159. package/cjs/style/dnb-ui-components.css +3 -0
  160. package/cjs/style/dnb-ui-components.min.css +1 -1
  161. package/cjs/style/dnb-ui-core.css +1 -1
  162. package/cjs/style/dnb-ui-core.min.css +1 -1
  163. package/cjs/style/dnb-ui-extensions.css +3 -0
  164. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  165. package/cjs/style/dnb-ui-forms.css +3 -0
  166. package/cjs/style/dnb-ui-forms.min.css +1 -1
  167. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +6 -0
  168. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  169. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -0
  170. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  171. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +3 -0
  172. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  173. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +6 -0
  174. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  175. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -0
  176. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  177. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +3 -0
  178. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  179. package/cjs/style/themes/theme-ui/ui-theme-components.css +6 -0
  180. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  181. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +3 -0
  182. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  183. package/cjs/style/themes/theme-ui/ui-theme-forms.css +3 -0
  184. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  185. package/components/height-animation/HeightAnimationInstance.d.ts +1 -0
  186. package/components/height-animation/HeightAnimationInstance.js +13 -6
  187. package/components/height-animation/HeightAnimationInstance.js.map +1 -1
  188. package/es/components/height-animation/HeightAnimationInstance.d.ts +1 -0
  189. package/es/components/height-animation/HeightAnimationInstance.js +13 -6
  190. package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
  191. package/es/extensions/forms/DataContext/Context.d.ts +7 -4
  192. package/es/extensions/forms/DataContext/Context.js +1 -2
  193. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  194. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +7 -2
  195. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  196. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.d.ts +8 -3
  197. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +26 -9
  198. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  199. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +0 -4
  200. package/es/extensions/forms/DataContext/Provider/Provider.js +28 -26
  201. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  202. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +1 -1
  203. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  204. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +5 -2
  205. package/es/extensions/forms/FieldBlock/FieldBlock.js +30 -7
  206. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  207. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +1 -1
  208. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  209. package/es/extensions/forms/Form/Isolation/Isolation.js +7 -7
  210. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  211. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js +22 -2
  212. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  213. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +17 -11
  214. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  215. package/es/extensions/forms/Form/Section/Section.d.ts +7 -2
  216. package/es/extensions/forms/Form/Section/Section.js +3 -1
  217. package/es/extensions/forms/Form/Section/Section.js.map +1 -1
  218. package/es/extensions/forms/Form/Section/SectionDocs.js +6 -1
  219. package/es/extensions/forms/Form/Section/SectionDocs.js.map +1 -1
  220. package/es/extensions/forms/Form/Section/containers/SectionContainer.d.ts +3 -1
  221. package/es/extensions/forms/Form/Section/containers/SectionContainer.js +22 -20
  222. package/es/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
  223. package/es/extensions/forms/Form/Section/containers/SectionContainerContext.d.ts +2 -0
  224. package/es/extensions/forms/Form/Section/containers/SectionContainerContext.js.map +1 -1
  225. package/es/extensions/forms/Form/Section/containers/SectionContainerProvider.d.ts +1 -0
  226. package/es/extensions/forms/Form/Section/containers/SectionContainerProvider.js +4 -1
  227. package/es/extensions/forms/Form/Section/containers/SectionContainerProvider.js.map +1 -1
  228. package/es/extensions/forms/Form/Section/style/dnb-form-section.css +3 -0
  229. package/es/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
  230. package/es/extensions/forms/Form/Section/style/dnb-form-section.scss +4 -0
  231. package/es/extensions/forms/Iterate/Array/Array.js +76 -28
  232. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  233. package/es/extensions/forms/Iterate/Array/ArrayDocs.js +15 -1
  234. package/es/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  235. package/es/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +20 -0
  236. package/es/extensions/forms/Iterate/Array/ArrayItemArea.js +137 -0
  237. package/es/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -0
  238. package/es/extensions/forms/Iterate/Array/ArrayItemAreaContext.d.ts +6 -0
  239. package/es/extensions/forms/Iterate/Array/ArrayItemAreaContext.js +6 -0
  240. package/es/extensions/forms/Iterate/Array/ArrayItemAreaContext.js.map +1 -0
  241. package/es/extensions/forms/Iterate/Array/types.d.ts +8 -5
  242. package/es/extensions/forms/Iterate/Array/types.js.map +1 -1
  243. package/es/extensions/forms/Iterate/EditContainer/CancelButton.d.ts +9 -0
  244. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js +87 -0
  245. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -0
  246. package/es/extensions/forms/Iterate/EditContainer/DoneButton.d.ts +4 -0
  247. package/es/extensions/forms/Iterate/EditContainer/DoneButton.js +66 -0
  248. package/es/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -0
  249. package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +8 -2
  250. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +32 -11
  251. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  252. package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
  253. package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  254. package/es/extensions/forms/Iterate/EditContainer/index.d.ts +2 -0
  255. package/es/extensions/forms/Iterate/EditContainer/index.js +2 -0
  256. package/es/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
  257. package/es/extensions/forms/Iterate/IterateItemContext.d.ts +7 -1
  258. package/es/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
  259. package/es/extensions/forms/Iterate/PushButton/PushButton.d.ts +7 -2
  260. package/es/extensions/forms/Iterate/PushButton/PushButton.js +39 -16
  261. package/es/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  262. package/es/extensions/forms/Iterate/PushContainer/OpenButton.js +19 -3
  263. package/es/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
  264. package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -2
  265. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +78 -23
  266. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  267. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +10 -0
  268. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  269. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +13 -15
  270. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  271. package/es/extensions/forms/Iterate/Toolbar/Toolbar.d.ts +10 -2
  272. package/es/extensions/forms/Iterate/Toolbar/Toolbar.js +51 -7
  273. package/es/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  274. package/es/extensions/forms/Iterate/Toolbar/ToolbarContext.d.ts +6 -0
  275. package/es/extensions/forms/Iterate/Toolbar/ToolbarContext.js +4 -0
  276. package/es/extensions/forms/Iterate/Toolbar/ToolbarContext.js.map +1 -0
  277. package/es/extensions/forms/Iterate/ViewContainer/EditButton.d.ts +1 -0
  278. package/{extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js → es/extensions/forms/Iterate/ViewContainer/EditButton.js} +8 -11
  279. package/es/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -0
  280. package/es/extensions/forms/Iterate/ViewContainer/RemoveButton.d.ts +1 -0
  281. package/es/extensions/forms/Iterate/ViewContainer/RemoveButton.js +12 -0
  282. package/es/extensions/forms/Iterate/ViewContainer/RemoveButton.js.map +1 -0
  283. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +8 -2
  284. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +24 -9
  285. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  286. package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  287. package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  288. package/es/extensions/forms/Iterate/ViewContainer/index.d.ts +2 -0
  289. package/es/extensions/forms/Iterate/ViewContainer/index.js +2 -0
  290. package/es/extensions/forms/Iterate/ViewContainer/index.js.map +1 -1
  291. package/es/extensions/forms/Iterate/hooks/index.d.ts +2 -0
  292. package/es/extensions/forms/Iterate/hooks/index.js +3 -0
  293. package/es/extensions/forms/Iterate/hooks/index.js.map +1 -0
  294. package/es/extensions/forms/Iterate/hooks/useSwitchContainerMode.d.ts +17 -0
  295. package/es/extensions/forms/Iterate/hooks/useSwitchContainerMode.js +85 -0
  296. package/es/extensions/forms/Iterate/hooks/useSwitchContainerMode.js.map +1 -0
  297. package/es/extensions/forms/Tools/Log.d.ts +6 -0
  298. package/es/extensions/forms/Tools/Log.js +22 -0
  299. package/es/extensions/forms/Tools/Log.js.map +1 -0
  300. package/es/extensions/forms/Tools/index.d.ts +1 -0
  301. package/es/extensions/forms/Tools/index.js +1 -0
  302. package/es/extensions/forms/Tools/index.js.map +1 -1
  303. package/es/extensions/forms/Wizard/Container/WizardContainer.js +17 -6
  304. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  305. package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
  306. package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  307. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +3 -1
  308. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  309. package/es/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  310. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  311. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +0 -2
  312. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  313. package/es/extensions/forms/constants/countries.js +10 -26
  314. package/es/extensions/forms/constants/countries.js.map +1 -1
  315. package/es/extensions/forms/constants/locales/en-GB.d.ts +2 -1
  316. package/es/extensions/forms/constants/locales/en-GB.js +3 -2
  317. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  318. package/es/extensions/forms/constants/locales/en-US.d.ts +2 -1
  319. package/es/extensions/forms/constants/locales/index.d.ts +4 -2
  320. package/es/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
  321. package/es/extensions/forms/constants/locales/nb-NO.js +3 -2
  322. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  323. package/es/extensions/forms/hooks/DataValueDocs.js +6 -1
  324. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  325. package/es/extensions/forms/hooks/useExternalValue.js +8 -6
  326. package/es/extensions/forms/hooks/useExternalValue.js.map +1 -1
  327. package/es/extensions/forms/hooks/useFieldProps.d.ts +1 -0
  328. package/es/extensions/forms/hooks/useFieldProps.js +48 -28
  329. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  330. package/es/extensions/forms/hooks/usePath.d.ts +1 -0
  331. package/es/extensions/forms/hooks/usePath.js +5 -1
  332. package/es/extensions/forms/hooks/usePath.js.map +1 -1
  333. package/es/extensions/forms/style/dnb-forms.css +3 -0
  334. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  335. package/es/extensions/forms/types.d.ts +4 -0
  336. package/es/extensions/forms/types.js.map +1 -1
  337. package/es/shared/Eufemia.d.ts +1 -1
  338. package/es/shared/Eufemia.js +2 -2
  339. package/es/shared/Eufemia.js.map +1 -1
  340. package/es/style/core/scopes.scss +1 -1
  341. package/es/style/dnb-ui-basis.css +1 -1
  342. package/es/style/dnb-ui-basis.min.css +1 -1
  343. package/es/style/dnb-ui-body.css +1 -1
  344. package/es/style/dnb-ui-body.min.css +1 -1
  345. package/es/style/dnb-ui-components.css +3 -0
  346. package/es/style/dnb-ui-components.min.css +1 -1
  347. package/es/style/dnb-ui-core.css +1 -1
  348. package/es/style/dnb-ui-core.min.css +1 -1
  349. package/es/style/dnb-ui-extensions.css +3 -0
  350. package/es/style/dnb-ui-extensions.min.css +1 -1
  351. package/es/style/dnb-ui-forms.css +3 -0
  352. package/es/style/dnb-ui-forms.min.css +1 -1
  353. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +6 -0
  354. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  355. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -0
  356. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  357. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +3 -0
  358. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  359. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +6 -0
  360. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  361. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -0
  362. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  363. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +3 -0
  364. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  365. package/es/style/themes/theme-ui/ui-theme-components.css +6 -0
  366. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  367. package/es/style/themes/theme-ui/ui-theme-extensions.css +3 -0
  368. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  369. package/es/style/themes/theme-ui/ui-theme-forms.css +3 -0
  370. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  371. package/esm/dnb-ui-basis.min.mjs +1 -1
  372. package/esm/dnb-ui-components.min.mjs +1 -1
  373. package/esm/dnb-ui-elements.min.mjs +1 -1
  374. package/esm/dnb-ui-extensions.min.mjs +2 -2
  375. package/esm/dnb-ui-lib.min.mjs +1 -1
  376. package/extensions/forms/DataContext/Context.d.ts +7 -4
  377. package/extensions/forms/DataContext/Context.js +1 -2
  378. package/extensions/forms/DataContext/Context.js.map +1 -1
  379. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +7 -2
  380. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  381. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.d.ts +8 -3
  382. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +25 -9
  383. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  384. package/extensions/forms/DataContext/Provider/Provider.d.ts +0 -4
  385. package/extensions/forms/DataContext/Provider/Provider.js +28 -26
  386. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  387. package/extensions/forms/Field/SelectCountry/SelectCountry.js +1 -1
  388. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  389. package/extensions/forms/FieldBlock/FieldBlock.d.ts +5 -2
  390. package/extensions/forms/FieldBlock/FieldBlock.js +30 -7
  391. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  392. package/extensions/forms/FieldBlock/FieldBlockDocs.js +1 -1
  393. package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  394. package/extensions/forms/Form/Isolation/Isolation.js +7 -7
  395. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  396. package/extensions/forms/Form/Section/EditContainer/EditContainer.js +22 -2
  397. package/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  398. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +17 -11
  399. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  400. package/extensions/forms/Form/Section/Section.d.ts +7 -2
  401. package/extensions/forms/Form/Section/Section.js +3 -1
  402. package/extensions/forms/Form/Section/Section.js.map +1 -1
  403. package/extensions/forms/Form/Section/SectionDocs.js +6 -1
  404. package/extensions/forms/Form/Section/SectionDocs.js.map +1 -1
  405. package/extensions/forms/Form/Section/containers/SectionContainer.d.ts +3 -1
  406. package/extensions/forms/Form/Section/containers/SectionContainer.js +22 -20
  407. package/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
  408. package/extensions/forms/Form/Section/containers/SectionContainerContext.d.ts +2 -0
  409. package/extensions/forms/Form/Section/containers/SectionContainerContext.js.map +1 -1
  410. package/extensions/forms/Form/Section/containers/SectionContainerProvider.d.ts +1 -0
  411. package/extensions/forms/Form/Section/containers/SectionContainerProvider.js +4 -1
  412. package/extensions/forms/Form/Section/containers/SectionContainerProvider.js.map +1 -1
  413. package/extensions/forms/Form/Section/style/dnb-form-section.css +3 -0
  414. package/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
  415. package/extensions/forms/Form/Section/style/dnb-form-section.scss +4 -0
  416. package/extensions/forms/Iterate/Array/Array.js +77 -28
  417. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  418. package/extensions/forms/Iterate/Array/ArrayDocs.js +15 -1
  419. package/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  420. package/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +20 -0
  421. package/extensions/forms/Iterate/Array/ArrayItemArea.js +137 -0
  422. package/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -0
  423. package/extensions/forms/Iterate/Array/ArrayItemAreaContext.d.ts +6 -0
  424. package/extensions/forms/Iterate/Array/ArrayItemAreaContext.js +6 -0
  425. package/extensions/forms/Iterate/Array/ArrayItemAreaContext.js.map +1 -0
  426. package/extensions/forms/Iterate/Array/types.d.ts +8 -5
  427. package/extensions/forms/Iterate/Array/types.js.map +1 -1
  428. package/extensions/forms/Iterate/EditContainer/CancelButton.d.ts +9 -0
  429. package/extensions/forms/Iterate/EditContainer/CancelButton.js +88 -0
  430. package/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -0
  431. package/extensions/forms/Iterate/EditContainer/DoneButton.d.ts +4 -0
  432. package/extensions/forms/Iterate/EditContainer/DoneButton.js +66 -0
  433. package/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -0
  434. package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +8 -2
  435. package/extensions/forms/Iterate/EditContainer/EditContainer.js +32 -11
  436. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  437. package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
  438. package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  439. package/extensions/forms/Iterate/EditContainer/index.d.ts +2 -0
  440. package/extensions/forms/Iterate/EditContainer/index.js +2 -0
  441. package/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
  442. package/extensions/forms/Iterate/IterateItemContext.d.ts +7 -1
  443. package/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
  444. package/extensions/forms/Iterate/PushButton/PushButton.d.ts +7 -2
  445. package/extensions/forms/Iterate/PushButton/PushButton.js +39 -16
  446. package/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  447. package/extensions/forms/Iterate/PushContainer/OpenButton.js +19 -3
  448. package/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
  449. package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -2
  450. package/extensions/forms/Iterate/PushContainer/PushContainer.js +80 -26
  451. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  452. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +10 -0
  453. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  454. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +13 -15
  455. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  456. package/extensions/forms/Iterate/Toolbar/Toolbar.d.ts +10 -2
  457. package/extensions/forms/Iterate/Toolbar/Toolbar.js +52 -7
  458. package/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  459. package/extensions/forms/Iterate/Toolbar/ToolbarContext.d.ts +6 -0
  460. package/extensions/forms/Iterate/Toolbar/ToolbarContext.js +4 -0
  461. package/extensions/forms/Iterate/Toolbar/ToolbarContext.js.map +1 -0
  462. package/extensions/forms/Iterate/ViewContainer/EditButton.d.ts +1 -0
  463. package/{es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js → extensions/forms/Iterate/ViewContainer/EditButton.js} +8 -11
  464. package/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -0
  465. package/extensions/forms/Iterate/ViewContainer/RemoveButton.d.ts +1 -0
  466. package/extensions/forms/Iterate/ViewContainer/RemoveButton.js +12 -0
  467. package/extensions/forms/Iterate/ViewContainer/RemoveButton.js.map +1 -0
  468. package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +8 -2
  469. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +24 -9
  470. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  471. package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  472. package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  473. package/extensions/forms/Iterate/ViewContainer/index.d.ts +2 -0
  474. package/extensions/forms/Iterate/ViewContainer/index.js +2 -0
  475. package/extensions/forms/Iterate/ViewContainer/index.js.map +1 -1
  476. package/extensions/forms/Iterate/hooks/index.d.ts +2 -0
  477. package/extensions/forms/Iterate/hooks/index.js +3 -0
  478. package/extensions/forms/Iterate/hooks/index.js.map +1 -0
  479. package/extensions/forms/Iterate/hooks/useSwitchContainerMode.d.ts +17 -0
  480. package/extensions/forms/Iterate/hooks/useSwitchContainerMode.js +87 -0
  481. package/extensions/forms/Iterate/hooks/useSwitchContainerMode.js.map +1 -0
  482. package/extensions/forms/Tools/Log.d.ts +6 -0
  483. package/extensions/forms/Tools/Log.js +22 -0
  484. package/extensions/forms/Tools/Log.js.map +1 -0
  485. package/extensions/forms/Tools/index.d.ts +1 -0
  486. package/extensions/forms/Tools/index.js +1 -0
  487. package/extensions/forms/Tools/index.js.map +1 -1
  488. package/extensions/forms/Wizard/Container/WizardContainer.js +18 -6
  489. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  490. package/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
  491. package/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  492. package/extensions/forms/Wizard/Context/WizardContext.d.ts +3 -1
  493. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  494. package/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  495. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  496. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +0 -2
  497. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  498. package/extensions/forms/constants/countries.js +10 -26
  499. package/extensions/forms/constants/countries.js.map +1 -1
  500. package/extensions/forms/constants/locales/en-GB.d.ts +2 -1
  501. package/extensions/forms/constants/locales/en-GB.js +3 -2
  502. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  503. package/extensions/forms/constants/locales/en-US.d.ts +2 -1
  504. package/extensions/forms/constants/locales/index.d.ts +4 -2
  505. package/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
  506. package/extensions/forms/constants/locales/nb-NO.js +3 -2
  507. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  508. package/extensions/forms/hooks/DataValueDocs.js +6 -1
  509. package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  510. package/extensions/forms/hooks/useExternalValue.js +8 -6
  511. package/extensions/forms/hooks/useExternalValue.js.map +1 -1
  512. package/extensions/forms/hooks/useFieldProps.d.ts +1 -0
  513. package/extensions/forms/hooks/useFieldProps.js +48 -27
  514. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  515. package/extensions/forms/hooks/usePath.d.ts +1 -0
  516. package/extensions/forms/hooks/usePath.js +5 -1
  517. package/extensions/forms/hooks/usePath.js.map +1 -1
  518. package/extensions/forms/style/dnb-forms.css +3 -0
  519. package/extensions/forms/style/dnb-forms.min.css +1 -1
  520. package/extensions/forms/types.d.ts +4 -0
  521. package/extensions/forms/types.js.map +1 -1
  522. package/package.json +1 -1
  523. package/shared/Eufemia.d.ts +1 -1
  524. package/shared/Eufemia.js +2 -2
  525. package/shared/Eufemia.js.map +1 -1
  526. package/style/core/scopes.scss +1 -1
  527. package/style/dnb-ui-basis.css +1 -1
  528. package/style/dnb-ui-basis.min.css +1 -1
  529. package/style/dnb-ui-body.css +1 -1
  530. package/style/dnb-ui-body.min.css +1 -1
  531. package/style/dnb-ui-components.css +3 -0
  532. package/style/dnb-ui-components.min.css +1 -1
  533. package/style/dnb-ui-core.css +1 -1
  534. package/style/dnb-ui-core.min.css +1 -1
  535. package/style/dnb-ui-extensions.css +3 -0
  536. package/style/dnb-ui-extensions.min.css +1 -1
  537. package/style/dnb-ui-forms.css +3 -0
  538. package/style/dnb-ui-forms.min.css +1 -1
  539. package/style/themes/theme-eiendom/eiendom-theme-components.css +6 -0
  540. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  541. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -0
  542. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  543. package/style/themes/theme-eiendom/eiendom-theme-forms.css +3 -0
  544. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  545. package/style/themes/theme-sbanken/sbanken-theme-components.css +6 -0
  546. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  547. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -0
  548. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  549. package/style/themes/theme-sbanken/sbanken-theme-forms.css +3 -0
  550. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  551. package/style/themes/theme-ui/ui-theme-components.css +6 -0
  552. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  553. package/style/themes/theme-ui/ui-theme-extensions.css +3 -0
  554. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  555. package/style/themes/theme-ui/ui-theme-forms.css +3 -0
  556. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  557. package/umd/dnb-ui-basis.min.js +1 -1
  558. package/umd/dnb-ui-components.min.js +1 -1
  559. package/umd/dnb-ui-elements.min.js +1 -1
  560. package/umd/dnb-ui-extensions.min.js +3 -3
  561. package/umd/dnb-ui-lib.min.js +1 -1
  562. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +0 -20
  563. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +0 -1
  564. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.d.ts +0 -6
  565. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.js.map +0 -1
  566. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.d.ts +0 -6
  567. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +0 -1
  568. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.d.ts +0 -1
  569. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +0 -1
  570. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +0 -20
  571. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +0 -120
  572. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +0 -1
  573. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.d.ts +0 -6
  574. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.js +0 -6
  575. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.js.map +0 -1
  576. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.d.ts +0 -6
  577. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +0 -113
  578. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +0 -1
  579. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.d.ts +0 -1
  580. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +0 -1
  581. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +0 -20
  582. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +0 -120
  583. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +0 -1
  584. package/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.d.ts +0 -6
  585. package/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.js +0 -6
  586. package/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.js.map +0 -1
  587. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.d.ts +0 -6
  588. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +0 -114
  589. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +0 -1
  590. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.d.ts +0 -1
  591. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +0 -1
@@ -4,10 +4,8 @@
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.addListPath = addListPath;
8
7
  exports.clearedData = void 0;
9
8
  exports.default = Provider;
10
- exports.removeListPath = removeListPath;
11
9
  var _react = _interopRequireWildcard(require("react"));
12
10
  var _jsonPointer = _interopRequireDefault(require("json-pointer"));
13
11
  var _ajv = require("../../utils/ajv");
@@ -76,7 +74,7 @@ function Provider(props) {
76
74
  }
77
75
  const translation = (0, _useTranslation.default)().Field;
78
76
  const ajvRef = (0, _react.useRef)((0, _ajv.makeAjvInstance)(ajvInstance));
79
- const mountedFieldPathsRef = (0, _react.useRef)([]);
77
+ const mountedFieldsRef = (0, _react.useRef)({});
80
78
  const hasVisibleErrorRef = (0, _react.useRef)({});
81
79
  const errorsRef = (0, _react.useRef)();
82
80
  const showAllErrorsRef = (0, _react.useRef)(false);
@@ -84,7 +82,7 @@ function Provider(props) {
84
82
  showAllErrorsRef.current = showAllErrors;
85
83
  forceUpdate();
86
84
  }, []);
87
- const setHasVisibleError = (0, _react.useCallback)((path, hasError) => {
85
+ const setVisibleError = (0, _react.useCallback)((path, hasError) => {
88
86
  if (hasError) {
89
87
  hasVisibleErrorRef.current[path] = hasError;
90
88
  } else {
@@ -139,14 +137,20 @@ function Provider(props) {
139
137
  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);
140
138
  }, []);
141
139
  const hasFieldState = (0, _react.useCallback)(state => {
142
- return mountedFieldPathsRef.current.some(path => {
143
- return checkFieldStateFor(path, state);
144
- });
140
+ for (const path in mountedFieldsRef.current) {
141
+ if (checkFieldStateFor(path, state)) {
142
+ return true;
143
+ }
144
+ }
145
+ return false;
145
146
  }, [checkFieldStateFor]);
146
147
  const hasFieldError = (0, _react.useCallback)(path => {
147
- return mountedFieldPathsRef.current.some(p => {
148
- return p === path && checkFieldStateFor(p, 'error');
149
- });
148
+ for (const p in mountedFieldsRef.current) {
149
+ if (p === path && checkFieldStateFor(path, 'error')) {
150
+ return true;
151
+ }
152
+ }
153
+ return false;
150
154
  }, [checkFieldStateFor]);
151
155
  const hasErrors = (0, _react.useCallback)(() => {
152
156
  return hasFieldState('error');
@@ -275,7 +279,8 @@ function Provider(props) {
275
279
  }, []);
276
280
  const hasFieldWithAsyncValidator = (0, _react.useCallback)(() => {
277
281
  for (const path in fieldPropsRef.current) {
278
- if (mountedFieldPathsRef.current.includes(path)) {
282
+ var _mountedFieldsRef$cur;
283
+ if ((_mountedFieldsRef$cur = mountedFieldsRef.current[path]) !== null && _mountedFieldsRef$cur !== void 0 && _mountedFieldsRef$cur.isMounted) {
279
284
  const props = fieldPropsRef.current[path];
280
285
  if ((0, _isAsync.isAsync)(props.validator) || (0, _isAsync.isAsync)(props.onBlurValidator)) {
281
286
  return true;
@@ -454,11 +459,12 @@ function Provider(props) {
454
459
  changeHandlerStackRef.current.push(callback);
455
460
  }
456
461
  }, []);
457
- const handleMountField = (0, _react.useCallback)(path => {
458
- mountedFieldPathsRef.current = addListPath(mountedFieldPathsRef.current, path);
459
- }, []);
460
- const handleUnMountField = (0, _react.useCallback)(path => {
461
- mountedFieldPathsRef.current = removeListPath(mountedFieldPathsRef.current, path);
462
+ const setMountedFieldState = (0, _react.useCallback)((path, options) => {
463
+ if (!mountedFieldsRef.current[path]) {
464
+ mountedFieldsRef.current[path] = _objectSpread({}, options);
465
+ } else {
466
+ Object.assign(mountedFieldsRef.current[path], options);
467
+ }
462
468
  }, []);
463
469
  const scrollToTop = (0, _react.useCallback)(() => {
464
470
  if (typeof window !== 'undefined') {
@@ -494,12 +500,13 @@ function Provider(props) {
494
500
  }
495
501
  if (!skipFieldValidation) {
496
502
  for (const item of fieldEventListenersRef.current) {
503
+ var _mountedFieldsRef$cur2;
497
504
  const {
498
505
  path,
499
506
  type,
500
507
  callback
501
508
  } = item;
502
- if (type === 'onSubmit' && mountedFieldPathsRef.current.includes(path)) {
509
+ if (type === 'onSubmit' && (_mountedFieldsRef$cur2 = mountedFieldsRef.current[path]) !== null && _mountedFieldsRef$cur2 !== void 0 && _mountedFieldsRef$cur2.isMounted) {
503
510
  if (asyncBehaviorIsEnabled) {
504
511
  await callback();
505
512
  } else {
@@ -554,7 +561,6 @@ function Provider(props) {
554
561
  onSubmitRequest === null || onSubmitRequest === void 0 ? void 0 : onSubmitRequest();
555
562
  setShowAllErrors(true);
556
563
  }
557
- return internalDataRef.current;
558
564
  }, [clearData, hasErrors, hasFieldState, hasFieldWithAsyncValidator, isolate, onCommit, onSubmitRequest, setFormState, setShowAllErrors, setSubmitState]);
559
565
  const handleSubmitListenersRef = (0, _react.useRef)([]);
560
566
  const setHandleSubmit = (0, _react.useCallback)(callback => {
@@ -678,13 +684,12 @@ function Provider(props) {
678
684
  handlePathChange,
679
685
  handlePathChangeUnvalidated,
680
686
  handleSubmit,
681
- handleMountField,
682
- handleUnMountField,
687
+ setMountedFieldState,
683
688
  handleSubmitCall,
684
689
  setFormState,
685
690
  setSubmitState,
686
691
  setShowAllErrors,
687
- setHasVisibleError,
692
+ setVisibleError,
688
693
  setFieldEventListener,
689
694
  setFieldState,
690
695
  setFieldError,
@@ -696,6 +701,7 @@ function Provider(props) {
696
701
  validateData,
697
702
  updateDataValue,
698
703
  setData,
704
+ clearData,
699
705
  filterDataHandler,
700
706
  addOnChangeHandler,
701
707
  setHandleSubmit,
@@ -712,7 +718,7 @@ function Provider(props) {
712
718
  hasVisibleError: Object.keys(hasVisibleErrorRef.current).length > 0,
713
719
  fieldPropsRef,
714
720
  valuePropsRef,
715
- mountedFieldPathsRef,
721
+ mountedFieldsRef,
716
722
  ajvInstance: ajvRef.current,
717
723
  id,
718
724
  data: internalDataRef.current,
@@ -734,12 +740,6 @@ function Provider(props) {
734
740
  translations: translations ? translations : undefined
735
741
  }, children));
736
742
  }
737
- function addListPath(paths, path) {
738
- return paths.includes(path) ? paths : paths.concat(path);
739
- }
740
- function removeListPath(paths, path) {
741
- return paths.filter(thisPath => thisPath !== path);
742
- }
743
743
  function useFormStatusBuffer(props) {
744
744
  const {
745
745
  formState,
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","names":["_react","_interopRequireWildcard","require","_jsonPointer","_interopRequireDefault","_ajv","_helpers","_FieldProps","_useUpdateEffect","_isAsync","_useSharedState","_useTranslation","_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","_sharedData$data3","forceUpdate","useReducer","id","globalStatusId","defaultData","emptyData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onCommit","onClear","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","locale","translations","required","errorMessages","contextErrorMessages","isolate","children","rest","Error","hasContext","useContext","Context","translation","useTranslation","Field","ajvRef","useRef","makeAjvInstance","mountedFieldPathsRef","hasVisibleErrorRef","errorsRef","showAllErrorsRef","setShowAllErrors","useCallback","showAllErrors","current","setHasVisibleError","path","hasError","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","_errorsRef$current","Boolean","hasFieldState","some","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","mutateDataHandler","remove","mutate","result","structuredClone","pointer","entries","fieldPropsRef","_ref","exists","_fieldErrorRef$curren","internal","runFilter","_ref2","condition","_fieldPropsRef$curren","_fieldErrorRef$curren2","wildcardPaths","_ref3","includes","parts","split","traverse","subData","subPath","idx","list","Array","isArray","_","filterDataHandler","filterData","valuePropsRef","setFieldProps","setValueProps","hasFieldWithAsyncValidator","isAsync","validator","onBlurValidator","sharedData","useSharedState","sharedAttachments","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","_sharedData$data","clearForm","clear","clearedData","_sharedData$data2","storeInSession","debounce","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","updateDataValue","_internalDataRef$curr","givenData","match","newData","e","setData","handlePathChangeUnvalidated","itm","fieldEventListenersRef","type","callback","handlePathChange","options","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","handleMountField","addListPath","handleUnMountField","removeListPath","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","clearData","handleSubmitCall","args","enableAsyncBehavior","skipFieldValidation","skipErrorCheck","asyncBehaviorIsEnabled","item","warning","info","requestAnimationFrame","onSubmitContinueRef","handleSubmitListenersRef","setHandleSubmit","handleSubmitListeners","stop","preventSubmit","handleSubmit","formElement","mutatedData","filteredData","resetForm","_formElement$reset","reset","removeItem","completeResult","setFieldEventListener","_ref4","t","c","_onSubmitContinueRef$","_ajvRef$current","compile","useUpdateEffect","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","createElement","hasVisibleError","FormStatus","globalStatus","title","errorSummaryTitle","show","paths","concat","thisPath","stateRef","nowRef","timeoutRef","setState","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","Date","now","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout","freeze","exports"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n useContext,\n} from 'react'\nimport pointer, { JsonObject } from '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 ValueProps,\n} from '../../types'\nimport type { IsolationProviderProps } from '../../Form/Isolation/Isolation'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Form/FieldProps'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport Context, {\n ContextState,\n EventListenerCall,\n FilterData,\n FilterDataHandler,\n HandleSubmitCallback,\n TransformData,\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 extends IsolationProviderProps<Data> {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: string\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Data\n /**\n * Empty data, used to clear the data set.\n */\n emptyData?: unknown\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions<Data>\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: CustomErrorMessagesWithPaths\n /**\n * @deprecated Use the `filterData` in the second event parameter in the `onSubmit` or `onChange` events.\n */\n filterSubmitData?: FilterData\n /**\n * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformIn?: TransformData\n /**\n * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformOut?: TransformData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit<Data>\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: () => 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 /**\n * Locale to use for all nested Eufemia components\n */\n locale?: ContextProps['locale']\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: ContextProps['translations']\n /**\n * Make all fields required\n */\n required?: boolean\n /**\n * The children of the context provider\n */\n children: React.ReactNode\n}\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n globalStatusId = 'main',\n defaultData,\n emptyData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onCommit,\n onClear,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n locale,\n translations,\n required,\n errorMessages: contextErrorMessages,\n isolate,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n throw new Error(\n 'Use \"defaultData\" instead of \"data\" when using sessionStorageId'\n )\n }\n\n const { hasContext } = useContext(Context) || {}\n\n if (hasContext && !isolate) {\n throw new Error('DataContext (Form.Handler) can not be nested')\n }\n\n // - Locale\n const translation = useTranslation().Field\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 hasVisibleErrorRef = useRef<Record<Path, boolean>>({})\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 setHasVisibleError = useCallback(\n (path: Path, hasError: boolean) => {\n if (hasError) {\n hasVisibleErrorRef.current[path] = hasError\n } else {\n delete hasVisibleErrorRef.current[path]\n }\n forceUpdate() // Will rerender the whole form initially\n },\n []\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\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Data>(initialData)\n\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 hasFieldError = useCallback(\n (path: Path) => {\n return mountedFieldPathsRef.current.some((p) => {\n return p === path && checkFieldStateFor(p, 'error')\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 * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (data: Data, filter: FilterData | TransformData, remove = false) => {\n const mutate = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n data = structuredClone(data)\n pointer.set(data, path, result)\n }\n }\n }\n\n if (typeof filter === 'function') {\n Object.entries(fieldPropsRef.current).forEach(([path, props]) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const internal = {\n error: fieldErrorRef.current?.[path],\n }\n const result = filter({\n path,\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n mutate(path, result)\n }\n })\n\n return data\n } else if (filter) {\n const runFilter = ({ path, condition }) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const props = fieldPropsRef.current?.[path]\n const internal = { error: fieldErrorRef.current?.[path] }\n const result =\n typeof condition === 'function'\n ? condition({\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n : condition\n mutate(path, result)\n }\n }\n\n const wildcardPaths = []\n\n Object.entries(filter).forEach(([path, condition]) => {\n if (path.includes('*')) {\n const parts = path.split(/\\/\\*/g)\n const exists = pointer.has(data, parts[0])\n if (exists) {\n const traverse = (\n subData: unknown,\n subPath: string,\n idx: number\n ) => {\n if (idx === parts.length - 1) {\n wildcardPaths.push({ path: subPath, condition })\n return\n }\n const list = pointer.get(subData, subPath)\n if (Array.isArray(list)) {\n list.forEach((_, i) => {\n traverse(\n list[i],\n `${subPath}/${i}${parts[idx + 1]}`,\n idx + 1\n )\n })\n }\n }\n traverse(data, parts[0], 0)\n }\n } else {\n runFilter({ path, condition })\n }\n })\n\n wildcardPaths.forEach(runFilter)\n\n return data\n }\n\n return data\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter: FilterData) => {\n if (filter) {\n return mutateDataHandler(data, filter, true)\n }\n\n return data\n },\n [mutateDataHandler]\n )\n\n const filterData = useCallback(\n (filter: FilterData, data = internalDataRef.current) => {\n return filterDataHandler(data, filter)\n },\n [filterDataHandler]\n )\n\n const fieldPropsRef = useRef<Record<Path, FieldProps>>({})\n const valuePropsRef = useRef<Record<Path, ValueProps<unknown>>>({})\n const setFieldProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n fieldPropsRef.current[path] = props\n },\n []\n )\n const setValueProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n valuePropsRef.current[path] = props\n },\n []\n )\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldPropsRef.current) {\n if (mountedFieldPathsRef.current.includes(path)) {\n const props = fieldPropsRef.current[path]\n if (isAsync(props.validator) || isAsync(props.onBlurValidator)) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<{\n filterDataHandler?: FilterDataHandler<Data>\n hasErrors?: ContextState['hasErrors']\n hasFieldError?: ContextState['hasFieldError']\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 const internalData = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData\n ) {\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\n // Reset the shared state, if clearForm is set\n if (sharedData.data?.clearForm) {\n const clear = (cacheRef.current.shared = clearedData as Data)\n setSharedData(clear)\n return clear\n }\n\n return {\n ...internalDataRef.current,\n ...sharedData.data,\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [id, initialData, sharedData, data, setSharedData])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n useEffect(() => {\n if (sharedData.data?.clearForm) {\n onClear?.()\n }\n }, [onClear, sharedData.data?.clearForm])\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 hasFieldError,\n setShowAllErrors,\n setSubmitState,\n })\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n extendAttachment,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setShowAllErrors,\n setSubmitState,\n ])\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n /**\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 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 // - Mutate the data context\n if (transformIn) {\n newData = mutateDataHandler(newData, transformIn)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData?.(newData)\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n forceUpdate() // Will rerender the whole form initially\n },\n [\n extendSharedData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\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 for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onPathChange' && itm.path === path) {\n const { callback } = itm\n if (isAsync(callback)) {\n await callback({ value })\n } else {\n callback({ value })\n }\n }\n }\n },\n [onPathChange, updateDataValue]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value = '_undefined_') => {\n if (!path) {\n return null\n }\n\n if (value !== '_undefined_') {\n handlePathChangeUnvalidated(path, value)\n }\n\n showAllErrorsRef.current = false\n\n validateData()\n\n const data = internalDataRef.current as Data\n const options = { filterData }\n const transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData, options)\n } else {\n cb(transformedData, options)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData, options)\n }\n\n return onChange?.(transformedData, options)\n },\n [\n filterData,\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback((callback: OnChange<Data>) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n }, [])\n\n // - Mounted fields\n const 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 }, [])\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n const clearData = useCallback(() => {\n internalDataRef.current = (emptyData ?? clearedData) as Data\n\n if (id) {\n setSharedData?.(internalDataRef.current)\n } else {\n forceUpdate()\n }\n onClear?.()\n }, [emptyData, id, onClear, setSharedData])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behavior if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehavior || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const item of fieldEventListenersRef.current) {\n const { path, type, callback } = item\n if (\n type === 'onSubmit' &&\n 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 if (isolate) {\n result = await onCommit?.(internalDataRef.current, {\n clearData,\n })\n } else {\n result = await onSubmit()\n }\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 clearData,\n hasErrors,\n hasFieldState,\n hasFieldWithAsyncValidator,\n isolate,\n onCommit,\n onSubmitRequest,\n setFormState,\n setShowAllErrors,\n setSubmitState,\n ]\n )\n\n const handleSubmitListenersRef = useRef<Array<HandleSubmitCallback>>([])\n const setHandleSubmit: ContextState['setHandleSubmit'] = useCallback(\n (callback) => {\n if (!handleSubmitListenersRef.current.includes(callback)) {\n handleSubmitListenersRef.current.push(callback)\n }\n },\n []\n )\n const handleSubmitListeners = useCallback(() => {\n let stop = false\n const preventSubmit = () => (stop = true)\n handleSubmitListenersRef.current.forEach((cb) => {\n cb({ preventSubmit })\n })\n return stop\n }, [])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n async ({ formElement = null } = {}) => {\n handleSubmitCall({\n enableAsyncBehavior: isAsync(onSubmit),\n onSubmit: async () => {\n if (handleSubmitListeners()) {\n return // stop here\n }\n\n // - Mutate the data context\n const data = internalDataRef.current\n const mutatedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n const filteredData = filterSubmitData\n ? filterDataHandler(mutatedData, filterSubmitData)\n : mutatedData // @deprecated – can be removed in v11\n const options = {\n filterData,\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData,\n }\n\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(filteredData, options)\n } else {\n result = onSubmit?.(filteredData, options)\n }\n\n const completeResult = await onSubmitComplete?.(\n filteredData,\n result\n )\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 clearData,\n filterData,\n filterDataHandler,\n filterSubmitData,\n handleSubmitCall,\n handleSubmitListeners,\n mutateDataHandler,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n sessionStorageId,\n transformOut,\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(\n ({ path: p, type: t, callback: c }) => {\n return !(p === path && t === type && c === callback)\n }\n )\n fieldEventListenersRef.current.push({ path, type, callback })\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n }, [schema, validateData])\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n })\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 =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\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 setHasVisibleError,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldProps,\n setValueProps,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n filterDataHandler,\n addOnChangeHandler,\n setHandleSubmit,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n required,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n hasVisibleError:\n Object.keys(hasVisibleErrorRef.current).length > 0,\n fieldPropsRef,\n valuePropsRef,\n mountedFieldPathsRef,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n internalDataRef,\n props,\n ...rest,\n }}\n >\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: showAllErrorsRef.current,\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </Context.Provider>\n )\n}\n\ntype PathList = string[]\n\nexport function addListPath(paths: PathList, path: Path): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nexport function 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 const activeElementRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending' && stateRef.current !== 'pending') {\n activeElementRef.current = document.activeElement as HTMLElement\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n window.requestAnimationFrame(() => {\n activeElementRef.current?.focus?.()\n })\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n }\n\n if (stateRef.current === 'pending') {\n timeoutRef.current.timeout = setTimeout(() => {\n clear()\n setState(undefined)\n onTimeout?.()\n }, asyncSubmitTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncSubmitTimeout,\n onTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n\nexport const clearedData = Object.freeze({})\n"],"mappings":"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"}
1
+ {"version":3,"file":"Provider.js","names":["_react","_interopRequireWildcard","require","_jsonPointer","_interopRequireDefault","_ajv","_helpers","_FieldProps","_useUpdateEffect","_isAsync","_useSharedState","_useTranslation","_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","_sharedData$data3","forceUpdate","useReducer","id","globalStatusId","defaultData","emptyData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onCommit","onClear","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","locale","translations","required","errorMessages","contextErrorMessages","isolate","children","rest","Error","hasContext","useContext","Context","translation","useTranslation","Field","ajvRef","useRef","makeAjvInstance","mountedFieldsRef","hasVisibleErrorRef","errorsRef","showAllErrorsRef","setShowAllErrors","useCallback","showAllErrors","current","setVisibleError","path","hasError","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","_errorsRef$current","Boolean","hasFieldState","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","mutateDataHandler","remove","mutate","result","structuredClone","pointer","entries","fieldPropsRef","_ref","exists","_fieldErrorRef$curren","internal","runFilter","_ref2","condition","_fieldPropsRef$curren","_fieldErrorRef$curren2","wildcardPaths","_ref3","includes","parts","split","traverse","subData","subPath","idx","list","Array","isArray","_","filterDataHandler","filterData","valuePropsRef","setFieldProps","setValueProps","hasFieldWithAsyncValidator","_mountedFieldsRef$cur","isMounted","isAsync","validator","onBlurValidator","sharedData","useSharedState","sharedAttachments","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","_sharedData$data","clearForm","clear","clearedData","_sharedData$data2","storeInSession","debounce","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","updateDataValue","_internalDataRef$curr","givenData","match","newData","e","setData","handlePathChangeUnvalidated","itm","fieldEventListenersRef","type","callback","handlePathChange","options","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","some","setMountedFieldState","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","clearData","handleSubmitCall","args","enableAsyncBehavior","skipFieldValidation","skipErrorCheck","asyncBehaviorIsEnabled","item","_mountedFieldsRef$cur2","warning","info","requestAnimationFrame","onSubmitContinueRef","handleSubmitListenersRef","setHandleSubmit","handleSubmitListeners","stop","preventSubmit","handleSubmit","formElement","mutatedData","filteredData","resetForm","_formElement$reset","reset","removeItem","completeResult","setFieldEventListener","_ref4","t","c","_onSubmitContinueRef$","_ajvRef$current","compile","useUpdateEffect","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","createElement","hasVisibleError","FormStatus","globalStatus","title","errorSummaryTitle","show","stateRef","nowRef","timeoutRef","setState","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","Date","now","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout","freeze","exports"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n useContext,\n} from 'react'\nimport pointer, { JsonObject } from '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 ValueProps,\n} from '../../types'\nimport type { IsolationProviderProps } from '../../Form/Isolation/Isolation'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Form/FieldProps'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport Context, {\n ContextState,\n EventListenerCall,\n FilterData,\n FilterDataHandler,\n HandleSubmitCallback,\n MountOptions,\n TransformData,\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 extends IsolationProviderProps<Data> {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: string\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Data\n /**\n * Empty data, used to clear the data set.\n */\n emptyData?: unknown\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions<Data>\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: CustomErrorMessagesWithPaths\n /**\n * @deprecated Use the `filterData` in the second event parameter in the `onSubmit` or `onChange` events.\n */\n filterSubmitData?: FilterData\n /**\n * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformIn?: TransformData\n /**\n * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformOut?: TransformData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit<Data>\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: () => 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 /**\n * Locale to use for all nested Eufemia components\n */\n locale?: ContextProps['locale']\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: ContextProps['translations']\n /**\n * Make all fields required\n */\n required?: boolean\n /**\n * The children of the context provider\n */\n children: React.ReactNode\n}\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n globalStatusId = 'main',\n defaultData,\n emptyData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onCommit,\n onClear,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n locale,\n translations,\n required,\n errorMessages: contextErrorMessages,\n isolate,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n throw new Error(\n 'Use \"defaultData\" instead of \"data\" when using sessionStorageId'\n )\n }\n\n const { hasContext } = useContext(Context) || {}\n\n if (hasContext && !isolate) {\n throw new Error('DataContext (Form.Handler) can not be nested')\n }\n\n // - Locale\n const translation = useTranslation().Field\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldsRef: ContextState['mountedFieldsRef'] = useRef({})\n\n // - Errors from provider validation (the whole data set)\n const hasVisibleErrorRef = useRef<Record<Path, boolean>>({})\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const showAllErrorsRef = useRef<boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors\n forceUpdate()\n }, [])\n const setVisibleError = useCallback((path: Path, hasError: boolean) => {\n if (hasError) {\n hasVisibleErrorRef.current[path] = hasError\n } else {\n delete hasVisibleErrorRef.current[path]\n }\n forceUpdate() // Will rerender the whole form initially\n }, [])\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n 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\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Data>(initialData)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const executeAjvValidator = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors,\n internalDataRef.current\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n executeAjvValidator()\n forceUpdate()\n }, [executeAjvValidator])\n\n // - Error handling\n const checkFieldStateFor = useCallback(\n (path: Path, state: SubmitState) => {\n return Boolean(\n state === 'error'\n ? errorsRef.current?.[path] instanceof Error ||\n fieldErrorRef.current[path] instanceof Error\n : fieldStateRef.current[path] === state\n )\n },\n []\n )\n const hasFieldState = useCallback(\n (state: SubmitState) => {\n for (const path in mountedFieldsRef.current) {\n if (checkFieldStateFor(path, state)) {\n return true\n }\n }\n\n return false\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n for (const p in mountedFieldsRef.current) {\n if (p === path && checkFieldStateFor(path, 'error')) {\n return true\n }\n }\n\n return false\n },\n [checkFieldStateFor]\n )\n const hasErrors = useCallback(() => {\n return hasFieldState('error')\n }, [hasFieldState])\n\n /**\n * Sets the error state for a specific path\n */\n const setFieldError = 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 * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (data: Data, filter: FilterData | TransformData, remove = false) => {\n const mutate = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n data = structuredClone(data)\n pointer.set(data, path, result)\n }\n }\n }\n\n if (typeof filter === 'function') {\n Object.entries(fieldPropsRef.current).forEach(([path, props]) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const internal = {\n error: fieldErrorRef.current?.[path],\n }\n const result = filter({\n path,\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n mutate(path, result)\n }\n })\n\n return data\n } else if (filter) {\n const runFilter = ({ path, condition }) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const props = fieldPropsRef.current?.[path]\n const internal = { error: fieldErrorRef.current?.[path] }\n const result =\n typeof condition === 'function'\n ? condition({\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n : condition\n mutate(path, result)\n }\n }\n\n const wildcardPaths = []\n\n Object.entries(filter).forEach(([path, condition]) => {\n if (path.includes('*')) {\n const parts = path.split(/\\/\\*/g)\n const exists = pointer.has(data, parts[0])\n if (exists) {\n const traverse = (\n subData: unknown,\n subPath: string,\n idx: number\n ) => {\n if (idx === parts.length - 1) {\n wildcardPaths.push({ path: subPath, condition })\n return\n }\n const list = pointer.get(subData, subPath)\n if (Array.isArray(list)) {\n list.forEach((_, i) => {\n traverse(\n list[i],\n `${subPath}/${i}${parts[idx + 1]}`,\n idx + 1\n )\n })\n }\n }\n traverse(data, parts[0], 0)\n }\n } else {\n runFilter({ path, condition })\n }\n })\n\n wildcardPaths.forEach(runFilter)\n\n return data\n }\n\n return data\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter: FilterData) => {\n if (filter) {\n return mutateDataHandler(data, filter, true)\n }\n\n return data\n },\n [mutateDataHandler]\n )\n\n const filterData = useCallback(\n (filter: FilterData, data = internalDataRef.current) => {\n return filterDataHandler(data, filter)\n },\n [filterDataHandler]\n )\n\n const fieldPropsRef = useRef<Record<Path, FieldProps>>({})\n const valuePropsRef = useRef<Record<Path, ValueProps<unknown>>>({})\n const setFieldProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n fieldPropsRef.current[path] = props\n },\n []\n )\n const setValueProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n valuePropsRef.current[path] = props\n },\n []\n )\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldPropsRef.current) {\n if (mountedFieldsRef.current[path]?.isMounted) {\n const props = fieldPropsRef.current[path]\n if (isAsync(props.validator) || isAsync(props.onBlurValidator)) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<{\n filterDataHandler?: FilterDataHandler<Data>\n hasErrors?: ContextState['hasErrors']\n hasFieldError?: ContextState['hasFieldError']\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 const internalData = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData\n ) {\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\n // Reset the shared state, if clearForm is set\n if (sharedData.data?.clearForm) {\n const clear = (cacheRef.current.shared = clearedData as Data)\n setSharedData(clear)\n return clear\n }\n\n return {\n ...internalDataRef.current,\n ...sharedData.data,\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [id, initialData, sharedData, data, setSharedData])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n useEffect(() => {\n if (sharedData.data?.clearForm) {\n onClear?.()\n }\n }, [onClear, sharedData.data?.clearForm])\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 hasFieldError,\n setShowAllErrors,\n setSubmitState,\n })\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n extendAttachment,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setShowAllErrors,\n setSubmitState,\n ])\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n /**\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 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 // - Mutate the data context\n if (transformIn) {\n newData = mutateDataHandler(newData, transformIn)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData?.(newData)\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n forceUpdate() // Will rerender the whole form initially\n },\n [\n extendSharedData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\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 for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onPathChange' && itm.path === path) {\n const { callback } = itm\n if (isAsync(callback)) {\n await callback({ value })\n } else {\n callback({ value })\n }\n }\n }\n },\n [onPathChange, updateDataValue]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value = '_undefined_') => {\n if (!path) {\n return null\n }\n\n if (value !== '_undefined_') {\n handlePathChangeUnvalidated(path, value)\n }\n\n showAllErrorsRef.current = false\n\n validateData()\n\n const data = internalDataRef.current as Data\n const options = { filterData }\n const transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData, options)\n } else {\n cb(transformedData, options)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData, options)\n }\n\n return onChange?.(transformedData, options)\n },\n [\n filterData,\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback((callback: OnChange<Data>) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n }, [])\n\n // - Mounted fields\n const setMountedFieldState = useCallback(\n (path: Path, options: MountOptions) => {\n if (!mountedFieldsRef.current[path]) {\n mountedFieldsRef.current[path] = { ...options }\n } else {\n Object.assign(mountedFieldsRef.current[path], options)\n }\n },\n []\n )\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n const clearData = useCallback(() => {\n internalDataRef.current = (emptyData ?? clearedData) as Data\n\n if (id) {\n setSharedData?.(internalDataRef.current)\n } else {\n forceUpdate()\n }\n onClear?.()\n }, [emptyData, id, onClear, setSharedData])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behavior if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehavior || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const item of fieldEventListenersRef.current) {\n const { path, type, callback } = item\n if (\n type === 'onSubmit' &&\n mountedFieldsRef.current[path]?.isMounted\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let result: EventStateObject | unknown\n\n try {\n if (isolate) {\n result = await onCommit?.(internalDataRef.current, {\n clearData,\n })\n } else {\n result = await onSubmit()\n }\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 [\n clearData,\n hasErrors,\n hasFieldState,\n hasFieldWithAsyncValidator,\n isolate,\n onCommit,\n onSubmitRequest,\n setFormState,\n setShowAllErrors,\n setSubmitState,\n ]\n )\n\n const handleSubmitListenersRef = useRef<Array<HandleSubmitCallback>>([])\n const setHandleSubmit: ContextState['setHandleSubmit'] = useCallback(\n (callback) => {\n if (!handleSubmitListenersRef.current.includes(callback)) {\n handleSubmitListenersRef.current.push(callback)\n }\n },\n []\n )\n const handleSubmitListeners = useCallback(() => {\n let stop = false\n const preventSubmit = () => (stop = true)\n handleSubmitListenersRef.current.forEach((cb) => {\n cb({ preventSubmit })\n })\n return stop\n }, [])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n async ({ formElement = null } = {}) => {\n handleSubmitCall({\n enableAsyncBehavior: isAsync(onSubmit),\n onSubmit: async () => {\n if (handleSubmitListeners()) {\n return // stop here\n }\n\n // - Mutate the data context\n const data = internalDataRef.current\n const mutatedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n const filteredData = filterSubmitData\n ? filterDataHandler(mutatedData, filterSubmitData)\n : mutatedData // @deprecated – can be removed in v11\n const options = {\n filterData,\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData,\n }\n\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(filteredData, options)\n } else {\n result = onSubmit?.(filteredData, options)\n }\n\n const completeResult = await onSubmitComplete?.(\n filteredData,\n result\n )\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 clearData,\n filterData,\n filterDataHandler,\n filterSubmitData,\n handleSubmitCall,\n handleSubmitListeners,\n mutateDataHandler,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n sessionStorageId,\n transformOut,\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(\n ({ path: p, type: t, callback: c }) => {\n return !(p === path && t === type && c === callback)\n }\n )\n fieldEventListenersRef.current.push({ path, type, callback })\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n }, [schema, validateData])\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n })\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 =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n\n return (\n <Context.Provider\n value={{\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n setMountedFieldState,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n setVisibleError,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldProps,\n setValueProps,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n clearData,\n filterDataHandler,\n addOnChangeHandler,\n setHandleSubmit,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n required,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n hasVisibleError:\n Object.keys(hasVisibleErrorRef.current).length > 0,\n fieldPropsRef,\n valuePropsRef,\n mountedFieldsRef,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n internalDataRef,\n props,\n ...rest,\n }}\n >\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: showAllErrorsRef.current,\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </Context.Provider>\n )\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 const activeElementRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending' && stateRef.current !== 'pending') {\n activeElementRef.current = document.activeElement as HTMLElement\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n window.requestAnimationFrame(() => {\n activeElementRef.current?.focus?.()\n })\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n }\n\n if (stateRef.current === 'pending') {\n timeoutRef.current.timeout = setTimeout(() => {\n clear()\n setState(undefined)\n onTimeout?.()\n }, asyncSubmitTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncSubmitTimeout,\n onTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n\nexport const clearedData = Object.freeze({})\n"],"mappings":"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"}
@@ -161,7 +161,7 @@ function SelectCountry(props) {
161
161
  label: label,
162
162
  input_icon: false,
163
163
  data: dataRef.current,
164
- value: value,
164
+ value: typeof value === 'string' ? value : null,
165
165
  disabled: disabled,
166
166
  on_show: fillData,
167
167
  on_focus: onFocusHandler,