@dnb/eufemia 10.46.0 → 10.48.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 (894) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/cjs/components/accordion/Accordion.d.ts +17 -1
  3. package/cjs/components/accordion/Accordion.js +4 -2
  4. package/cjs/components/accordion/Accordion.js.map +1 -1
  5. package/cjs/components/accordion/AccordionContext.d.ts +4 -0
  6. package/cjs/components/accordion/AccordionContext.js.map +1 -1
  7. package/cjs/components/accordion/AccordionDocs.js +6 -1
  8. package/cjs/components/accordion/AccordionDocs.js.map +1 -1
  9. package/cjs/components/accordion/AccordionGroup.js +5 -3
  10. package/cjs/components/accordion/AccordionGroup.js.map +1 -1
  11. package/cjs/components/accordion/AccordionProviderContext.d.ts +4 -0
  12. package/cjs/components/accordion/AccordionProviderContext.js.map +1 -1
  13. package/cjs/components/accordion/AccordionStore.js +2 -1
  14. package/cjs/components/accordion/AccordionStore.js.map +1 -1
  15. package/cjs/components/accordion/style/dnb-accordion.css +3 -3
  16. package/cjs/components/accordion/style/dnb-accordion.min.css +1 -1
  17. package/cjs/components/autocomplete/style/dnb-autocomplete.css +1 -1
  18. package/cjs/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  19. package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
  20. package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  21. package/cjs/components/button/Button.d.ts +1 -1
  22. package/cjs/components/button/Button.js +5 -2
  23. package/cjs/components/button/Button.js.map +1 -1
  24. package/cjs/components/card/style/dnb-card.css +1 -1
  25. package/cjs/components/card/style/dnb-card.min.css +1 -1
  26. package/cjs/components/copy-on-click/CopyOnClick.d.ts +1 -1
  27. package/cjs/components/copy-on-click/CopyOnClick.js +5 -4
  28. package/cjs/components/copy-on-click/CopyOnClick.js.map +1 -1
  29. package/cjs/components/copy-on-click/CopyOnClickDocs.js +5 -0
  30. package/cjs/components/copy-on-click/CopyOnClickDocs.js.map +1 -1
  31. package/cjs/components/copy-on-click/types.d.ts +5 -0
  32. package/cjs/components/copy-on-click/types.js.map +1 -1
  33. package/cjs/components/drawer/style/dnb-drawer.css +3 -3
  34. package/cjs/components/drawer/style/dnb-drawer.min.css +1 -1
  35. package/cjs/components/dropdown/style/dnb-dropdown.css +1 -1
  36. package/cjs/components/dropdown/style/dnb-dropdown.min.css +1 -1
  37. package/cjs/components/flex/Container.js +9 -1
  38. package/cjs/components/flex/Container.js.map +1 -1
  39. package/cjs/components/flex/utils.d.ts +1 -1
  40. package/cjs/components/flex/utils.js +1 -1
  41. package/cjs/components/flex/utils.js.map +1 -1
  42. package/cjs/components/form-row/style/dnb-form-row.css +1 -1
  43. package/cjs/components/form-row/style/dnb-form-row.min.css +1 -1
  44. package/cjs/components/grid/style/dnb-grid.css +6 -6
  45. package/cjs/components/grid/style/dnb-grid.min.css +1 -1
  46. package/cjs/components/lib.d.ts +1 -1
  47. package/cjs/components/progress-indicator/ProgressIndicator.js +2 -2
  48. package/cjs/components/progress-indicator/ProgressIndicator.js.map +1 -1
  49. package/cjs/components/section/style/dnb-section.css +2 -2
  50. package/cjs/components/section/style/dnb-section.min.css +2 -2
  51. package/cjs/components/space/style/dnb-space.css +2 -2
  52. package/cjs/components/space/style/dnb-space.min.css +1 -1
  53. package/cjs/components/tabs/Tabs.js +2 -2
  54. package/cjs/components/tabs/Tabs.js.map +1 -1
  55. package/cjs/components/tag/Tag.js +2 -2
  56. package/cjs/components/tag/Tag.js.map +1 -1
  57. package/cjs/components/toggle-button/style/dnb-toggle-button.css +1 -1
  58. package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  59. package/cjs/extensions/forms/DataContext/Context.d.ts +9 -5
  60. package/cjs/extensions/forms/DataContext/Context.js +0 -1
  61. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  62. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +3 -2
  63. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  64. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.d.ts +8 -3
  65. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +12 -5
  66. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  67. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +6 -2
  68. package/cjs/extensions/forms/DataContext/Provider/Provider.js +36 -16
  69. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  70. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +1 -1
  71. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  72. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +21 -12
  73. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  74. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.d.ts +2 -0
  75. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +20 -0
  76. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -0
  77. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +1 -1
  78. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  79. package/cjs/extensions/forms/Field/Slider/Slider.js +7 -7
  80. package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -1
  81. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +5 -2
  82. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +35 -11
  83. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  84. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +1 -1
  85. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  86. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
  87. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  88. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +1 -1
  89. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  90. package/cjs/extensions/forms/Form/Isolation/Isolation.js +2 -3
  91. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  92. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +1 -1
  93. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  94. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js +20 -1
  95. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  96. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +17 -11
  97. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  98. package/cjs/extensions/forms/Form/Section/Section.d.ts +7 -2
  99. package/cjs/extensions/forms/Form/Section/Section.js +3 -1
  100. package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
  101. package/cjs/extensions/forms/Form/Section/SectionDocs.js +6 -1
  102. package/cjs/extensions/forms/Form/Section/SectionDocs.js.map +1 -1
  103. package/cjs/extensions/forms/Form/Section/containers/SectionContainer.d.ts +3 -1
  104. package/cjs/extensions/forms/Form/Section/containers/SectionContainer.js +22 -20
  105. package/cjs/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
  106. package/cjs/extensions/forms/Form/Section/containers/SectionContainerContext.d.ts +2 -0
  107. package/cjs/extensions/forms/Form/Section/containers/SectionContainerContext.js.map +1 -1
  108. package/cjs/extensions/forms/Form/Section/containers/SectionContainerProvider.d.ts +1 -0
  109. package/cjs/extensions/forms/Form/Section/containers/SectionContainerProvider.js +4 -1
  110. package/cjs/extensions/forms/Form/Section/containers/SectionContainerProvider.js.map +1 -1
  111. package/cjs/extensions/forms/Form/Section/style/dnb-form-section.css +3 -0
  112. package/cjs/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
  113. package/cjs/extensions/forms/Form/Section/style/dnb-form-section.scss +4 -0
  114. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +9 -5
  115. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -1
  116. package/cjs/extensions/forms/Iterate/Array/Array.js +71 -28
  117. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  118. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js +9 -0
  119. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  120. package/cjs/extensions/forms/Iterate/{AnimatedContainer/ElementBlock.d.ts → Array/ArrayItemArea.d.ts} +6 -6
  121. package/cjs/extensions/forms/Iterate/{AnimatedContainer/ElementBlock.js → Array/ArrayItemArea.js} +66 -49
  122. package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -0
  123. package/cjs/extensions/forms/Iterate/Array/ArrayItemAreaContext.d.ts +6 -0
  124. package/cjs/extensions/forms/Iterate/{AnimatedContainer/ElementBlockContext.js → Array/ArrayItemAreaContext.js} +3 -3
  125. package/cjs/extensions/forms/Iterate/Array/ArrayItemAreaContext.js.map +1 -0
  126. package/cjs/extensions/forms/Iterate/Array/types.d.ts +7 -5
  127. package/cjs/extensions/forms/Iterate/Array/types.js.map +1 -1
  128. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.d.ts +9 -0
  129. package/cjs/extensions/forms/Iterate/EditContainer/{EditToolbarTools.js → CancelButton.js} +30 -56
  130. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -0
  131. package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.d.ts +4 -0
  132. package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js +75 -0
  133. package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -0
  134. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +8 -2
  135. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +33 -12
  136. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  137. package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
  138. package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  139. package/cjs/extensions/forms/Iterate/EditContainer/index.d.ts +2 -0
  140. package/cjs/extensions/forms/Iterate/EditContainer/index.js +19 -1
  141. package/cjs/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
  142. package/cjs/extensions/forms/Iterate/IterateItemContext.d.ts +7 -1
  143. package/cjs/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
  144. package/cjs/extensions/forms/Iterate/PushButton/PushButton.d.ts +7 -2
  145. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js +23 -12
  146. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  147. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +5 -1
  148. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +78 -24
  149. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  150. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
  151. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  152. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +9 -9
  153. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  154. package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.d.ts +10 -2
  155. package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js +52 -6
  156. package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  157. package/cjs/extensions/forms/Iterate/Toolbar/ToolbarContext.d.ts +6 -0
  158. package/cjs/extensions/forms/Iterate/Toolbar/ToolbarContext.js +12 -0
  159. package/cjs/extensions/forms/Iterate/Toolbar/ToolbarContext.js.map +1 -0
  160. package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.d.ts +1 -0
  161. package/cjs/extensions/forms/Iterate/ViewContainer/{ViewToolbarTools.js → EditButton.js} +8 -11
  162. package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -0
  163. package/cjs/extensions/forms/Iterate/ViewContainer/RemoveButton.d.ts +1 -0
  164. package/cjs/extensions/forms/Iterate/ViewContainer/RemoveButton.js +19 -0
  165. package/cjs/extensions/forms/Iterate/ViewContainer/RemoveButton.js.map +1 -0
  166. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +8 -2
  167. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +25 -10
  168. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  169. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  170. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  171. package/cjs/extensions/forms/Iterate/ViewContainer/index.d.ts +2 -0
  172. package/cjs/extensions/forms/Iterate/ViewContainer/index.js +19 -1
  173. package/cjs/extensions/forms/Iterate/ViewContainer/index.js.map +1 -1
  174. package/cjs/extensions/forms/Iterate/hooks/index.d.ts +2 -0
  175. package/cjs/extensions/forms/Iterate/hooks/index.js +21 -0
  176. package/cjs/extensions/forms/Iterate/hooks/index.js.map +1 -0
  177. package/cjs/extensions/forms/Iterate/hooks/useSwitchContainerMode.d.ts +17 -0
  178. package/cjs/extensions/forms/Iterate/hooks/useSwitchContainerMode.js +93 -0
  179. package/cjs/extensions/forms/Iterate/hooks/useSwitchContainerMode.js.map +1 -0
  180. package/cjs/extensions/forms/Tools/Log.d.ts +6 -0
  181. package/cjs/extensions/forms/Tools/Log.js +29 -0
  182. package/cjs/extensions/forms/Tools/Log.js.map +1 -0
  183. package/cjs/extensions/forms/Tools/index.d.ts +1 -0
  184. package/cjs/extensions/forms/Tools/index.js +7 -0
  185. package/cjs/extensions/forms/Tools/index.js.map +1 -1
  186. package/cjs/extensions/forms/Value/Date/Date.d.ts +1 -1
  187. package/cjs/extensions/forms/Value/Date/Date.js +15 -5
  188. package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
  189. package/cjs/extensions/forms/Value/Date/DateDocs.js +1 -1
  190. package/cjs/extensions/forms/Value/Date/DateDocs.js.map +1 -1
  191. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +2 -2
  192. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  193. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +19 -7
  194. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  195. package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
  196. package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  197. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +3 -1
  198. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  199. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +2 -2
  200. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  201. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +0 -2
  202. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  203. package/cjs/extensions/forms/constants/countries.d.ts +5 -2
  204. package/cjs/extensions/forms/constants/countries.js +81 -25
  205. package/cjs/extensions/forms/constants/countries.js.map +1 -1
  206. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +2 -1
  207. package/cjs/extensions/forms/constants/locales/en-GB.js +3 -2
  208. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  209. package/cjs/extensions/forms/constants/locales/en-US.d.ts +2 -1
  210. package/cjs/extensions/forms/constants/locales/index.d.ts +4 -2
  211. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
  212. package/cjs/extensions/forms/constants/locales/nb-NO.js +3 -2
  213. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  214. package/cjs/extensions/forms/hooks/DataValueDocs.js +10 -5
  215. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  216. package/cjs/extensions/forms/hooks/useDataValue.d.ts +2 -1
  217. package/cjs/extensions/forms/hooks/useDataValue.js +7 -7
  218. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  219. package/cjs/extensions/forms/hooks/useExternalValue.js +8 -6
  220. package/cjs/extensions/forms/hooks/useExternalValue.js.map +1 -1
  221. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +2 -1
  222. package/cjs/extensions/forms/hooks/useFieldProps.js +317 -121
  223. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  224. package/cjs/extensions/forms/hooks/usePath.d.ts +1 -0
  225. package/cjs/extensions/forms/hooks/usePath.js +5 -1
  226. package/cjs/extensions/forms/hooks/usePath.js.map +1 -1
  227. package/cjs/extensions/forms/style/dnb-forms.css +13 -10
  228. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  229. package/cjs/extensions/forms/types.d.ts +32 -2
  230. package/cjs/extensions/forms/types.js.map +1 -1
  231. package/cjs/shared/Eufemia.d.ts +1 -1
  232. package/cjs/shared/Eufemia.js +2 -2
  233. package/cjs/shared/Eufemia.js.map +1 -1
  234. package/cjs/style/core/scopes.scss +1 -1
  235. package/cjs/style/core/utilities.scss +3 -6
  236. package/cjs/style/dnb-ui-basis.css +1 -1
  237. package/cjs/style/dnb-ui-basis.min.css +1 -1
  238. package/cjs/style/dnb-ui-body.css +1 -1
  239. package/cjs/style/dnb-ui-body.min.css +1 -1
  240. package/cjs/style/dnb-ui-components.css +37 -34
  241. package/cjs/style/dnb-ui-components.min.css +5 -5
  242. package/cjs/style/dnb-ui-core.css +1 -1
  243. package/cjs/style/dnb-ui-core.min.css +1 -1
  244. package/cjs/style/dnb-ui-elements.css +1 -1
  245. package/cjs/style/dnb-ui-elements.min.css +1 -1
  246. package/cjs/style/dnb-ui-extensions.css +13 -10
  247. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  248. package/cjs/style/dnb-ui-forms.css +13 -10
  249. package/cjs/style/dnb-ui-forms.min.css +1 -1
  250. package/cjs/style/dnb-ui-fragments.css +2 -2
  251. package/cjs/style/dnb-ui-fragments.min.css +1 -1
  252. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -1
  253. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  254. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +51 -45
  255. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -6
  256. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
  257. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  258. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +13 -10
  259. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  260. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +13 -10
  261. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  262. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -1
  263. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  264. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +51 -45
  265. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
  266. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
  267. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  268. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +13 -10
  269. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  270. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +13 -10
  271. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  272. package/cjs/style/themes/theme-ui/ui-theme-basis.css +1 -1
  273. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  274. package/cjs/style/themes/theme-ui/ui-theme-components.css +51 -45
  275. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  276. package/cjs/style/themes/theme-ui/ui-theme-elements.css +1 -1
  277. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  278. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +13 -10
  279. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  280. package/cjs/style/themes/theme-ui/ui-theme-forms.css +13 -10
  281. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  282. package/cjs/style/themes/theme-ui/ui-theme-tags.css +1 -1
  283. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  284. package/components/accordion/Accordion.d.ts +17 -1
  285. package/components/accordion/Accordion.js +4 -2
  286. package/components/accordion/Accordion.js.map +1 -1
  287. package/components/accordion/AccordionContext.d.ts +4 -0
  288. package/components/accordion/AccordionContext.js.map +1 -1
  289. package/components/accordion/AccordionDocs.js +6 -1
  290. package/components/accordion/AccordionDocs.js.map +1 -1
  291. package/components/accordion/AccordionGroup.js +5 -3
  292. package/components/accordion/AccordionGroup.js.map +1 -1
  293. package/components/accordion/AccordionProviderContext.d.ts +4 -0
  294. package/components/accordion/AccordionProviderContext.js.map +1 -1
  295. package/components/accordion/AccordionStore.js +2 -1
  296. package/components/accordion/AccordionStore.js.map +1 -1
  297. package/components/accordion/style/dnb-accordion.css +3 -3
  298. package/components/accordion/style/dnb-accordion.min.css +1 -1
  299. package/components/autocomplete/style/dnb-autocomplete.css +1 -1
  300. package/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  301. package/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
  302. package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  303. package/components/button/Button.d.ts +1 -1
  304. package/components/button/Button.js +5 -2
  305. package/components/button/Button.js.map +1 -1
  306. package/components/card/style/dnb-card.css +1 -1
  307. package/components/card/style/dnb-card.min.css +1 -1
  308. package/components/copy-on-click/CopyOnClick.d.ts +1 -1
  309. package/components/copy-on-click/CopyOnClick.js +5 -4
  310. package/components/copy-on-click/CopyOnClick.js.map +1 -1
  311. package/components/copy-on-click/CopyOnClickDocs.js +5 -0
  312. package/components/copy-on-click/CopyOnClickDocs.js.map +1 -1
  313. package/components/copy-on-click/types.d.ts +5 -0
  314. package/components/copy-on-click/types.js.map +1 -1
  315. package/components/drawer/style/dnb-drawer.css +3 -3
  316. package/components/drawer/style/dnb-drawer.min.css +1 -1
  317. package/components/dropdown/style/dnb-dropdown.css +1 -1
  318. package/components/dropdown/style/dnb-dropdown.min.css +1 -1
  319. package/components/flex/Container.js +10 -2
  320. package/components/flex/Container.js.map +1 -1
  321. package/components/flex/utils.d.ts +1 -1
  322. package/components/flex/utils.js +1 -1
  323. package/components/flex/utils.js.map +1 -1
  324. package/components/form-row/style/dnb-form-row.css +1 -1
  325. package/components/form-row/style/dnb-form-row.min.css +1 -1
  326. package/components/grid/style/dnb-grid.css +6 -6
  327. package/components/grid/style/dnb-grid.min.css +1 -1
  328. package/components/lib.d.ts +1 -1
  329. package/components/progress-indicator/ProgressIndicator.js +2 -2
  330. package/components/progress-indicator/ProgressIndicator.js.map +1 -1
  331. package/components/section/style/dnb-section.css +2 -2
  332. package/components/section/style/dnb-section.min.css +2 -2
  333. package/components/space/style/dnb-space.css +2 -2
  334. package/components/space/style/dnb-space.min.css +1 -1
  335. package/components/tabs/Tabs.js +2 -2
  336. package/components/tabs/Tabs.js.map +1 -1
  337. package/components/tag/Tag.js +2 -2
  338. package/components/tag/Tag.js.map +1 -1
  339. package/components/toggle-button/style/dnb-toggle-button.css +1 -1
  340. package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  341. package/es/components/accordion/Accordion.d.ts +17 -1
  342. package/es/components/accordion/Accordion.js +4 -2
  343. package/es/components/accordion/Accordion.js.map +1 -1
  344. package/es/components/accordion/AccordionContext.d.ts +4 -0
  345. package/es/components/accordion/AccordionContext.js.map +1 -1
  346. package/es/components/accordion/AccordionDocs.js +6 -1
  347. package/es/components/accordion/AccordionDocs.js.map +1 -1
  348. package/es/components/accordion/AccordionGroup.js +5 -3
  349. package/es/components/accordion/AccordionGroup.js.map +1 -1
  350. package/es/components/accordion/AccordionProviderContext.d.ts +4 -0
  351. package/es/components/accordion/AccordionProviderContext.js.map +1 -1
  352. package/es/components/accordion/AccordionStore.js +2 -1
  353. package/es/components/accordion/AccordionStore.js.map +1 -1
  354. package/es/components/accordion/style/dnb-accordion.css +3 -3
  355. package/es/components/accordion/style/dnb-accordion.min.css +1 -1
  356. package/es/components/autocomplete/style/dnb-autocomplete.css +1 -1
  357. package/es/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  358. package/es/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
  359. package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  360. package/es/components/button/Button.d.ts +1 -1
  361. package/es/components/button/Button.js +5 -2
  362. package/es/components/button/Button.js.map +1 -1
  363. package/es/components/card/style/dnb-card.css +1 -1
  364. package/es/components/card/style/dnb-card.min.css +1 -1
  365. package/es/components/copy-on-click/CopyOnClick.d.ts +1 -1
  366. package/es/components/copy-on-click/CopyOnClick.js +5 -4
  367. package/es/components/copy-on-click/CopyOnClick.js.map +1 -1
  368. package/es/components/copy-on-click/CopyOnClickDocs.js +5 -0
  369. package/es/components/copy-on-click/CopyOnClickDocs.js.map +1 -1
  370. package/es/components/copy-on-click/types.d.ts +5 -0
  371. package/es/components/copy-on-click/types.js.map +1 -1
  372. package/es/components/drawer/style/dnb-drawer.css +3 -3
  373. package/es/components/drawer/style/dnb-drawer.min.css +1 -1
  374. package/es/components/dropdown/style/dnb-dropdown.css +1 -1
  375. package/es/components/dropdown/style/dnb-dropdown.min.css +1 -1
  376. package/es/components/flex/Container.js +10 -2
  377. package/es/components/flex/Container.js.map +1 -1
  378. package/es/components/flex/utils.d.ts +1 -1
  379. package/es/components/flex/utils.js +1 -1
  380. package/es/components/flex/utils.js.map +1 -1
  381. package/es/components/form-row/style/dnb-form-row.css +1 -1
  382. package/es/components/form-row/style/dnb-form-row.min.css +1 -1
  383. package/es/components/grid/style/dnb-grid.css +6 -6
  384. package/es/components/grid/style/dnb-grid.min.css +1 -1
  385. package/es/components/lib.d.ts +1 -1
  386. package/es/components/progress-indicator/ProgressIndicator.js +2 -2
  387. package/es/components/progress-indicator/ProgressIndicator.js.map +1 -1
  388. package/es/components/section/style/dnb-section.css +2 -2
  389. package/es/components/section/style/dnb-section.min.css +2 -2
  390. package/es/components/space/style/dnb-space.css +2 -2
  391. package/es/components/space/style/dnb-space.min.css +1 -1
  392. package/es/components/tabs/Tabs.js +2 -2
  393. package/es/components/tabs/Tabs.js.map +1 -1
  394. package/es/components/tag/Tag.js +2 -2
  395. package/es/components/tag/Tag.js.map +1 -1
  396. package/es/components/toggle-button/style/dnb-toggle-button.css +1 -1
  397. package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  398. package/es/extensions/forms/DataContext/Context.d.ts +9 -5
  399. package/es/extensions/forms/DataContext/Context.js +0 -1
  400. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  401. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +3 -2
  402. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  403. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.d.ts +8 -3
  404. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +13 -5
  405. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  406. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +6 -2
  407. package/es/extensions/forms/DataContext/Provider/Provider.js +36 -16
  408. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  409. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +1 -1
  410. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  411. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +21 -12
  412. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  413. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.d.ts +2 -0
  414. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +13 -0
  415. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -0
  416. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +1 -1
  417. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  418. package/es/extensions/forms/Field/Slider/Slider.js +7 -7
  419. package/es/extensions/forms/Field/Slider/Slider.js.map +1 -1
  420. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +5 -2
  421. package/es/extensions/forms/FieldBlock/FieldBlock.js +33 -11
  422. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  423. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +1 -1
  424. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  425. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
  426. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  427. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +1 -1
  428. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  429. package/es/extensions/forms/Form/Isolation/Isolation.js +2 -3
  430. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  431. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +1 -1
  432. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  433. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js +22 -2
  434. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  435. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +17 -11
  436. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  437. package/es/extensions/forms/Form/Section/Section.d.ts +7 -2
  438. package/es/extensions/forms/Form/Section/Section.js +3 -1
  439. package/es/extensions/forms/Form/Section/Section.js.map +1 -1
  440. package/es/extensions/forms/Form/Section/SectionDocs.js +6 -1
  441. package/es/extensions/forms/Form/Section/SectionDocs.js.map +1 -1
  442. package/es/extensions/forms/Form/Section/containers/SectionContainer.d.ts +3 -1
  443. package/es/extensions/forms/Form/Section/containers/SectionContainer.js +22 -20
  444. package/es/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
  445. package/es/extensions/forms/Form/Section/containers/SectionContainerContext.d.ts +2 -0
  446. package/es/extensions/forms/Form/Section/containers/SectionContainerContext.js.map +1 -1
  447. package/es/extensions/forms/Form/Section/containers/SectionContainerProvider.d.ts +1 -0
  448. package/es/extensions/forms/Form/Section/containers/SectionContainerProvider.js +4 -1
  449. package/es/extensions/forms/Form/Section/containers/SectionContainerProvider.js.map +1 -1
  450. package/es/extensions/forms/Form/Section/style/dnb-form-section.css +3 -0
  451. package/es/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
  452. package/es/extensions/forms/Form/Section/style/dnb-form-section.scss +4 -0
  453. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +9 -5
  454. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -1
  455. package/es/extensions/forms/Iterate/Array/Array.js +71 -29
  456. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  457. package/es/extensions/forms/Iterate/Array/ArrayDocs.js +9 -0
  458. package/es/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  459. package/es/extensions/forms/Iterate/{AnimatedContainer/ElementBlock.d.ts → Array/ArrayItemArea.d.ts} +6 -6
  460. package/es/extensions/forms/Iterate/Array/ArrayItemArea.js +137 -0
  461. package/es/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -0
  462. package/es/extensions/forms/Iterate/Array/ArrayItemAreaContext.d.ts +6 -0
  463. package/es/extensions/forms/Iterate/Array/ArrayItemAreaContext.js +6 -0
  464. package/es/extensions/forms/Iterate/Array/ArrayItemAreaContext.js.map +1 -0
  465. package/es/extensions/forms/Iterate/Array/types.d.ts +7 -5
  466. package/es/extensions/forms/Iterate/Array/types.js.map +1 -1
  467. package/es/extensions/forms/Iterate/EditContainer/CancelButton.d.ts +9 -0
  468. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js +87 -0
  469. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -0
  470. package/es/extensions/forms/Iterate/EditContainer/DoneButton.d.ts +4 -0
  471. package/es/extensions/forms/Iterate/EditContainer/DoneButton.js +67 -0
  472. package/es/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -0
  473. package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +8 -2
  474. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +32 -11
  475. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  476. package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
  477. package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  478. package/es/extensions/forms/Iterate/EditContainer/index.d.ts +2 -0
  479. package/es/extensions/forms/Iterate/EditContainer/index.js +2 -0
  480. package/es/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
  481. package/es/extensions/forms/Iterate/IterateItemContext.d.ts +7 -1
  482. package/es/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
  483. package/es/extensions/forms/Iterate/PushButton/PushButton.d.ts +7 -2
  484. package/es/extensions/forms/Iterate/PushButton/PushButton.js +23 -12
  485. package/es/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  486. package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +5 -1
  487. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +78 -23
  488. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  489. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
  490. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  491. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +9 -9
  492. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  493. package/es/extensions/forms/Iterate/Toolbar/Toolbar.d.ts +10 -2
  494. package/es/extensions/forms/Iterate/Toolbar/Toolbar.js +51 -7
  495. package/es/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  496. package/es/extensions/forms/Iterate/Toolbar/ToolbarContext.d.ts +6 -0
  497. package/es/extensions/forms/Iterate/Toolbar/ToolbarContext.js +4 -0
  498. package/es/extensions/forms/Iterate/Toolbar/ToolbarContext.js.map +1 -0
  499. package/es/extensions/forms/Iterate/ViewContainer/EditButton.d.ts +1 -0
  500. package/{extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js → es/extensions/forms/Iterate/ViewContainer/EditButton.js} +8 -11
  501. package/es/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -0
  502. package/es/extensions/forms/Iterate/ViewContainer/RemoveButton.d.ts +1 -0
  503. package/es/extensions/forms/Iterate/ViewContainer/RemoveButton.js +12 -0
  504. package/es/extensions/forms/Iterate/ViewContainer/RemoveButton.js.map +1 -0
  505. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +8 -2
  506. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +24 -9
  507. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  508. package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  509. package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  510. package/es/extensions/forms/Iterate/ViewContainer/index.d.ts +2 -0
  511. package/es/extensions/forms/Iterate/ViewContainer/index.js +2 -0
  512. package/es/extensions/forms/Iterate/ViewContainer/index.js.map +1 -1
  513. package/es/extensions/forms/Iterate/hooks/index.d.ts +2 -0
  514. package/es/extensions/forms/Iterate/hooks/index.js +3 -0
  515. package/es/extensions/forms/Iterate/hooks/index.js.map +1 -0
  516. package/es/extensions/forms/Iterate/hooks/useSwitchContainerMode.d.ts +17 -0
  517. package/es/extensions/forms/Iterate/hooks/useSwitchContainerMode.js +85 -0
  518. package/es/extensions/forms/Iterate/hooks/useSwitchContainerMode.js.map +1 -0
  519. package/es/extensions/forms/Tools/Log.d.ts +6 -0
  520. package/es/extensions/forms/Tools/Log.js +22 -0
  521. package/es/extensions/forms/Tools/Log.js.map +1 -0
  522. package/es/extensions/forms/Tools/index.d.ts +1 -0
  523. package/es/extensions/forms/Tools/index.js +1 -0
  524. package/es/extensions/forms/Tools/index.js.map +1 -1
  525. package/es/extensions/forms/Value/Date/Date.d.ts +1 -1
  526. package/es/extensions/forms/Value/Date/Date.js +15 -5
  527. package/es/extensions/forms/Value/Date/Date.js.map +1 -1
  528. package/es/extensions/forms/Value/Date/DateDocs.js +1 -1
  529. package/es/extensions/forms/Value/Date/DateDocs.js.map +1 -1
  530. package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +2 -2
  531. package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  532. package/es/extensions/forms/Wizard/Container/WizardContainer.js +18 -7
  533. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  534. package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
  535. package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  536. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +3 -1
  537. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  538. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +2 -2
  539. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  540. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +0 -2
  541. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  542. package/es/extensions/forms/constants/countries.d.ts +5 -2
  543. package/es/extensions/forms/constants/countries.js +81 -25
  544. package/es/extensions/forms/constants/countries.js.map +1 -1
  545. package/es/extensions/forms/constants/locales/en-GB.d.ts +2 -1
  546. package/es/extensions/forms/constants/locales/en-GB.js +3 -2
  547. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  548. package/es/extensions/forms/constants/locales/en-US.d.ts +2 -1
  549. package/es/extensions/forms/constants/locales/index.d.ts +4 -2
  550. package/es/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
  551. package/es/extensions/forms/constants/locales/nb-NO.js +3 -2
  552. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  553. package/es/extensions/forms/hooks/DataValueDocs.js +10 -5
  554. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  555. package/es/extensions/forms/hooks/useDataValue.d.ts +2 -1
  556. package/es/extensions/forms/hooks/useDataValue.js +7 -7
  557. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  558. package/es/extensions/forms/hooks/useExternalValue.js +8 -6
  559. package/es/extensions/forms/hooks/useExternalValue.js.map +1 -1
  560. package/es/extensions/forms/hooks/useFieldProps.d.ts +2 -1
  561. package/es/extensions/forms/hooks/useFieldProps.js +309 -119
  562. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  563. package/es/extensions/forms/hooks/usePath.d.ts +1 -0
  564. package/es/extensions/forms/hooks/usePath.js +5 -1
  565. package/es/extensions/forms/hooks/usePath.js.map +1 -1
  566. package/es/extensions/forms/style/dnb-forms.css +13 -10
  567. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  568. package/es/extensions/forms/types.d.ts +32 -2
  569. package/es/extensions/forms/types.js.map +1 -1
  570. package/es/shared/Eufemia.d.ts +1 -1
  571. package/es/shared/Eufemia.js +2 -2
  572. package/es/shared/Eufemia.js.map +1 -1
  573. package/es/style/core/scopes.scss +1 -1
  574. package/es/style/core/utilities.scss +3 -6
  575. package/es/style/dnb-ui-basis.css +1 -1
  576. package/es/style/dnb-ui-basis.min.css +1 -1
  577. package/es/style/dnb-ui-body.css +1 -1
  578. package/es/style/dnb-ui-body.min.css +1 -1
  579. package/es/style/dnb-ui-components.css +37 -34
  580. package/es/style/dnb-ui-components.min.css +5 -5
  581. package/es/style/dnb-ui-core.css +1 -1
  582. package/es/style/dnb-ui-core.min.css +1 -1
  583. package/es/style/dnb-ui-elements.css +1 -1
  584. package/es/style/dnb-ui-elements.min.css +1 -1
  585. package/es/style/dnb-ui-extensions.css +13 -10
  586. package/es/style/dnb-ui-extensions.min.css +1 -1
  587. package/es/style/dnb-ui-forms.css +13 -10
  588. package/es/style/dnb-ui-forms.min.css +1 -1
  589. package/es/style/dnb-ui-fragments.css +2 -2
  590. package/es/style/dnb-ui-fragments.min.css +1 -1
  591. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -1
  592. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  593. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +51 -45
  594. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -6
  595. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
  596. package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  597. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +13 -10
  598. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  599. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +13 -10
  600. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  601. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -1
  602. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  603. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +51 -45
  604. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
  605. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
  606. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  607. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +13 -10
  608. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  609. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +13 -10
  610. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  611. package/es/style/themes/theme-ui/ui-theme-basis.css +1 -1
  612. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  613. package/es/style/themes/theme-ui/ui-theme-components.css +51 -45
  614. package/es/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  615. package/es/style/themes/theme-ui/ui-theme-elements.css +1 -1
  616. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  617. package/es/style/themes/theme-ui/ui-theme-extensions.css +13 -10
  618. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  619. package/es/style/themes/theme-ui/ui-theme-forms.css +13 -10
  620. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  621. package/es/style/themes/theme-ui/ui-theme-tags.css +1 -1
  622. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  623. package/esm/dnb-ui-basis.min.mjs +1 -1
  624. package/esm/dnb-ui-components.min.mjs +1 -1
  625. package/esm/dnb-ui-elements.min.mjs +1 -1
  626. package/esm/dnb-ui-extensions.min.mjs +5 -5
  627. package/esm/dnb-ui-lib.min.mjs +1 -1
  628. package/extensions/forms/DataContext/Context.d.ts +9 -5
  629. package/extensions/forms/DataContext/Context.js +0 -1
  630. package/extensions/forms/DataContext/Context.js.map +1 -1
  631. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +3 -2
  632. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  633. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.d.ts +8 -3
  634. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +12 -5
  635. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  636. package/extensions/forms/DataContext/Provider/Provider.d.ts +6 -2
  637. package/extensions/forms/DataContext/Provider/Provider.js +36 -16
  638. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  639. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +1 -1
  640. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  641. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +21 -12
  642. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  643. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.d.ts +2 -0
  644. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +13 -0
  645. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -0
  646. package/extensions/forms/Field/SelectCountry/SelectCountry.js +1 -1
  647. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  648. package/extensions/forms/Field/Slider/Slider.js +7 -7
  649. package/extensions/forms/Field/Slider/Slider.js.map +1 -1
  650. package/extensions/forms/FieldBlock/FieldBlock.d.ts +5 -2
  651. package/extensions/forms/FieldBlock/FieldBlock.js +33 -11
  652. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  653. package/extensions/forms/FieldBlock/FieldBlockDocs.js +1 -1
  654. package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  655. package/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
  656. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  657. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +1 -1
  658. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  659. package/extensions/forms/Form/Isolation/Isolation.js +2 -3
  660. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  661. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +1 -1
  662. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  663. package/extensions/forms/Form/Section/EditContainer/EditContainer.js +22 -2
  664. package/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  665. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +17 -11
  666. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  667. package/extensions/forms/Form/Section/Section.d.ts +7 -2
  668. package/extensions/forms/Form/Section/Section.js +3 -1
  669. package/extensions/forms/Form/Section/Section.js.map +1 -1
  670. package/extensions/forms/Form/Section/SectionDocs.js +6 -1
  671. package/extensions/forms/Form/Section/SectionDocs.js.map +1 -1
  672. package/extensions/forms/Form/Section/containers/SectionContainer.d.ts +3 -1
  673. package/extensions/forms/Form/Section/containers/SectionContainer.js +22 -20
  674. package/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -1
  675. package/extensions/forms/Form/Section/containers/SectionContainerContext.d.ts +2 -0
  676. package/extensions/forms/Form/Section/containers/SectionContainerContext.js.map +1 -1
  677. package/extensions/forms/Form/Section/containers/SectionContainerProvider.d.ts +1 -0
  678. package/extensions/forms/Form/Section/containers/SectionContainerProvider.js +4 -1
  679. package/extensions/forms/Form/Section/containers/SectionContainerProvider.js.map +1 -1
  680. package/extensions/forms/Form/Section/style/dnb-form-section.css +3 -0
  681. package/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
  682. package/extensions/forms/Form/Section/style/dnb-form-section.scss +4 -0
  683. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +9 -5
  684. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -1
  685. package/extensions/forms/Iterate/Array/Array.js +72 -29
  686. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  687. package/extensions/forms/Iterate/Array/ArrayDocs.js +9 -0
  688. package/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  689. package/extensions/forms/Iterate/{AnimatedContainer/ElementBlock.d.ts → Array/ArrayItemArea.d.ts} +6 -6
  690. package/extensions/forms/Iterate/Array/ArrayItemArea.js +137 -0
  691. package/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -0
  692. package/extensions/forms/Iterate/Array/ArrayItemAreaContext.d.ts +6 -0
  693. package/extensions/forms/Iterate/Array/ArrayItemAreaContext.js +6 -0
  694. package/extensions/forms/Iterate/Array/ArrayItemAreaContext.js.map +1 -0
  695. package/extensions/forms/Iterate/Array/types.d.ts +7 -5
  696. package/extensions/forms/Iterate/Array/types.js.map +1 -1
  697. package/extensions/forms/Iterate/EditContainer/CancelButton.d.ts +9 -0
  698. package/extensions/forms/Iterate/EditContainer/CancelButton.js +88 -0
  699. package/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -0
  700. package/extensions/forms/Iterate/EditContainer/DoneButton.d.ts +4 -0
  701. package/extensions/forms/Iterate/EditContainer/DoneButton.js +67 -0
  702. package/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -0
  703. package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +8 -2
  704. package/extensions/forms/Iterate/EditContainer/EditContainer.js +32 -11
  705. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  706. package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
  707. package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  708. package/extensions/forms/Iterate/EditContainer/index.d.ts +2 -0
  709. package/extensions/forms/Iterate/EditContainer/index.js +2 -0
  710. package/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
  711. package/extensions/forms/Iterate/IterateItemContext.d.ts +7 -1
  712. package/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
  713. package/extensions/forms/Iterate/PushButton/PushButton.d.ts +7 -2
  714. package/extensions/forms/Iterate/PushButton/PushButton.js +23 -12
  715. package/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  716. package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +5 -1
  717. package/extensions/forms/Iterate/PushContainer/PushContainer.js +80 -26
  718. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  719. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
  720. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  721. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +9 -9
  722. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  723. package/extensions/forms/Iterate/Toolbar/Toolbar.d.ts +10 -2
  724. package/extensions/forms/Iterate/Toolbar/Toolbar.js +52 -7
  725. package/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  726. package/extensions/forms/Iterate/Toolbar/ToolbarContext.d.ts +6 -0
  727. package/extensions/forms/Iterate/Toolbar/ToolbarContext.js +4 -0
  728. package/extensions/forms/Iterate/Toolbar/ToolbarContext.js.map +1 -0
  729. package/extensions/forms/Iterate/ViewContainer/EditButton.d.ts +1 -0
  730. package/{es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js → extensions/forms/Iterate/ViewContainer/EditButton.js} +8 -11
  731. package/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -0
  732. package/extensions/forms/Iterate/ViewContainer/RemoveButton.d.ts +1 -0
  733. package/extensions/forms/Iterate/ViewContainer/RemoveButton.js +12 -0
  734. package/extensions/forms/Iterate/ViewContainer/RemoveButton.js.map +1 -0
  735. package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +8 -2
  736. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +24 -9
  737. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  738. package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  739. package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  740. package/extensions/forms/Iterate/ViewContainer/index.d.ts +2 -0
  741. package/extensions/forms/Iterate/ViewContainer/index.js +2 -0
  742. package/extensions/forms/Iterate/ViewContainer/index.js.map +1 -1
  743. package/extensions/forms/Iterate/hooks/index.d.ts +2 -0
  744. package/extensions/forms/Iterate/hooks/index.js +3 -0
  745. package/extensions/forms/Iterate/hooks/index.js.map +1 -0
  746. package/extensions/forms/Iterate/hooks/useSwitchContainerMode.d.ts +17 -0
  747. package/extensions/forms/Iterate/hooks/useSwitchContainerMode.js +87 -0
  748. package/extensions/forms/Iterate/hooks/useSwitchContainerMode.js.map +1 -0
  749. package/extensions/forms/Tools/Log.d.ts +6 -0
  750. package/extensions/forms/Tools/Log.js +22 -0
  751. package/extensions/forms/Tools/Log.js.map +1 -0
  752. package/extensions/forms/Tools/index.d.ts +1 -0
  753. package/extensions/forms/Tools/index.js +1 -0
  754. package/extensions/forms/Tools/index.js.map +1 -1
  755. package/extensions/forms/Value/Date/Date.d.ts +1 -1
  756. package/extensions/forms/Value/Date/Date.js +15 -5
  757. package/extensions/forms/Value/Date/Date.js.map +1 -1
  758. package/extensions/forms/Value/Date/DateDocs.js +1 -1
  759. package/extensions/forms/Value/Date/DateDocs.js.map +1 -1
  760. package/extensions/forms/ValueBlock/style/dnb-value-block.css +2 -2
  761. package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  762. package/extensions/forms/Wizard/Container/WizardContainer.js +19 -7
  763. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  764. package/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
  765. package/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  766. package/extensions/forms/Wizard/Context/WizardContext.d.ts +3 -1
  767. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  768. package/extensions/forms/Wizard/style/dnb-wizard-layout.css +2 -2
  769. package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  770. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +0 -2
  771. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  772. package/extensions/forms/constants/countries.d.ts +5 -2
  773. package/extensions/forms/constants/countries.js +81 -25
  774. package/extensions/forms/constants/countries.js.map +1 -1
  775. package/extensions/forms/constants/locales/en-GB.d.ts +2 -1
  776. package/extensions/forms/constants/locales/en-GB.js +3 -2
  777. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  778. package/extensions/forms/constants/locales/en-US.d.ts +2 -1
  779. package/extensions/forms/constants/locales/index.d.ts +4 -2
  780. package/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
  781. package/extensions/forms/constants/locales/nb-NO.js +3 -2
  782. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  783. package/extensions/forms/hooks/DataValueDocs.js +10 -5
  784. package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  785. package/extensions/forms/hooks/useDataValue.d.ts +2 -1
  786. package/extensions/forms/hooks/useDataValue.js +7 -7
  787. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  788. package/extensions/forms/hooks/useExternalValue.js +8 -6
  789. package/extensions/forms/hooks/useExternalValue.js.map +1 -1
  790. package/extensions/forms/hooks/useFieldProps.d.ts +2 -1
  791. package/extensions/forms/hooks/useFieldProps.js +318 -122
  792. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  793. package/extensions/forms/hooks/usePath.d.ts +1 -0
  794. package/extensions/forms/hooks/usePath.js +5 -1
  795. package/extensions/forms/hooks/usePath.js.map +1 -1
  796. package/extensions/forms/style/dnb-forms.css +13 -10
  797. package/extensions/forms/style/dnb-forms.min.css +1 -1
  798. package/extensions/forms/types.d.ts +32 -2
  799. package/extensions/forms/types.js.map +1 -1
  800. package/package.json +1 -1
  801. package/shared/Eufemia.d.ts +1 -1
  802. package/shared/Eufemia.js +2 -2
  803. package/shared/Eufemia.js.map +1 -1
  804. package/style/core/scopes.scss +1 -1
  805. package/style/core/utilities.scss +3 -6
  806. package/style/dnb-ui-basis.css +1 -1
  807. package/style/dnb-ui-basis.min.css +1 -1
  808. package/style/dnb-ui-body.css +1 -1
  809. package/style/dnb-ui-body.min.css +1 -1
  810. package/style/dnb-ui-components.css +37 -34
  811. package/style/dnb-ui-components.min.css +5 -5
  812. package/style/dnb-ui-core.css +1 -1
  813. package/style/dnb-ui-core.min.css +1 -1
  814. package/style/dnb-ui-elements.css +1 -1
  815. package/style/dnb-ui-elements.min.css +1 -1
  816. package/style/dnb-ui-extensions.css +13 -10
  817. package/style/dnb-ui-extensions.min.css +1 -1
  818. package/style/dnb-ui-forms.css +13 -10
  819. package/style/dnb-ui-forms.min.css +1 -1
  820. package/style/dnb-ui-fragments.css +2 -2
  821. package/style/dnb-ui-fragments.min.css +1 -1
  822. package/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -1
  823. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  824. package/style/themes/theme-eiendom/eiendom-theme-components.css +51 -45
  825. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -6
  826. package/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
  827. package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  828. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +13 -10
  829. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  830. package/style/themes/theme-eiendom/eiendom-theme-forms.css +13 -10
  831. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  832. package/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -1
  833. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  834. package/style/themes/theme-sbanken/sbanken-theme-components.css +51 -45
  835. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
  836. package/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
  837. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  838. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +13 -10
  839. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  840. package/style/themes/theme-sbanken/sbanken-theme-forms.css +13 -10
  841. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  842. package/style/themes/theme-ui/ui-theme-basis.css +1 -1
  843. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  844. package/style/themes/theme-ui/ui-theme-components.css +51 -45
  845. package/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  846. package/style/themes/theme-ui/ui-theme-elements.css +1 -1
  847. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  848. package/style/themes/theme-ui/ui-theme-extensions.css +13 -10
  849. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  850. package/style/themes/theme-ui/ui-theme-forms.css +13 -10
  851. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  852. package/style/themes/theme-ui/ui-theme-tags.css +1 -1
  853. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  854. package/umd/dnb-ui-basis.min.js +1 -1
  855. package/umd/dnb-ui-components.min.js +1 -1
  856. package/umd/dnb-ui-elements.min.js +1 -1
  857. package/umd/dnb-ui-extensions.min.js +5 -5
  858. package/umd/dnb-ui-lib.min.js +1 -1
  859. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +0 -1
  860. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.d.ts +0 -6
  861. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.js.map +0 -1
  862. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.d.ts +0 -6
  863. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +0 -1
  864. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.d.ts +0 -1
  865. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +0 -1
  866. package/cjs/shared/helpers/useUnmountEffect.d.ts +0 -4
  867. package/cjs/shared/helpers/useUnmountEffect.js +0 -14
  868. package/cjs/shared/helpers/useUnmountEffect.js.map +0 -1
  869. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +0 -120
  870. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +0 -1
  871. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.d.ts +0 -6
  872. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.js +0 -6
  873. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.js.map +0 -1
  874. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.d.ts +0 -6
  875. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +0 -113
  876. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +0 -1
  877. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.d.ts +0 -1
  878. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +0 -1
  879. package/es/shared/helpers/useUnmountEffect.d.ts +0 -4
  880. package/es/shared/helpers/useUnmountEffect.js +0 -9
  881. package/es/shared/helpers/useUnmountEffect.js.map +0 -1
  882. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +0 -120
  883. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +0 -1
  884. package/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.d.ts +0 -6
  885. package/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.js +0 -6
  886. package/extensions/forms/Iterate/AnimatedContainer/ElementBlockContext.js.map +0 -1
  887. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.d.ts +0 -6
  888. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +0 -114
  889. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +0 -1
  890. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.d.ts +0 -1
  891. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +0 -1
  892. package/shared/helpers/useUnmountEffect.d.ts +0 -4
  893. package/shared/helpers/useUnmountEffect.js +0 -9
  894. package/shared/helpers/useUnmountEffect.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","names":["_react","_interopRequireWildcard","require","_jsonPointer","_interopRequireDefault","_ajv","_helpers","_FieldProps","_useMountEffect","_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","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","handlePathChange","options","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","callback","handleMountField","addListPath","handleUnMountField","removeListPath","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","clearData","handleSubmitCall","args","enableAsyncBehaviour","skipFieldValidation","skipErrorCheck","asyncBehaviorIsEnabled","type","fieldEventListenersRef","warning","info","requestAnimationFrame","onSubmitContinueRef","handleSubmitListenersRef","setHandleSubmit","handleSubmitListeners","stop","preventSubmit","handleSubmit","formElement","mutatedData","filteredData","resetForm","_formElement$reset","reset","removeItem","completeResult","setFieldEventListener","_ref4","t","_onSubmitContinueRef$","useMountEffect","_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 useMountEffect from '../../../../shared/helpers/useMountEffect'\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 * 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 * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\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 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()\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()\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 [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 = clearedData as Data\n if (id) {\n setSharedData?.(internalDataRef.current)\n } else {\n forceUpdate()\n }\n onClear?.()\n }, [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 enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behaviour if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehaviour || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const {\n path,\n type,\n callback,\n } of fieldEventListenersRef.current) {\n if (\n type === 'onSubmit' &&\n mountedFieldPathsRef.current.includes(path)\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let result: EventStateObject | unknown\n\n try {\n 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 enableAsyncBehaviour: 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(({ path: p, type: t }) => {\n return !(p === path && t === type)\n })\n fieldEventListenersRef.current.push({ path, type, callback })\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useMountEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n })\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n })\n }, [setFormState, setSubmitState])\n\n const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\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 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","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 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 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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"}
@@ -25,7 +25,7 @@
25
25
  column-gap: var(--spacing-small);
26
26
  row-gap: var(--row-gap);
27
27
  }
28
- @media screen and (min-width: 40em) {
28
+ @media screen and (min-width: 40.0625em) {
29
29
  .dnb-forms-field-array-selection .dnb-forms-field-block--layout-horizontal .dnb-form-label {
30
30
  line-height: 2.5rem;
31
31
  margin-bottom: 0;
@@ -1 +1 @@
1
- .dnb-forms-field-array-selection{--row-gap:var(--spacing-x-small)}.dnb-forms-field-array-selection--options-layout-vertical .dnb-forms-field-array-selection__options{display:flex;flex-flow:column;row-gap:var(--row-gap)}.dnb-forms-field-array-selection--options-layout-vertical.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-block__label{align-items:flex-start}.dnb-forms-field-array-selection--variant-checkbox.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-array-selection__options{row-gap:0}.dnb-forms-field-array-selection--variant-button.dnb-forms-field-array-selection--options-layout-vertical.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-block__label{line-height:2.5rem}.dnb-forms-field-array-selection--options-layout-horizontal .dnb-forms-field-array-selection__options{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row wrap;row-gap:var(--row-gap)}@media screen and (min-width:40em){.dnb-forms-field-array-selection .dnb-forms-field-block--layout-horizontal .dnb-form-label{line-height:2.5rem;margin-bottom:0}}
1
+ .dnb-forms-field-array-selection{--row-gap:var(--spacing-x-small)}.dnb-forms-field-array-selection--options-layout-vertical .dnb-forms-field-array-selection__options{display:flex;flex-flow:column;row-gap:var(--row-gap)}.dnb-forms-field-array-selection--options-layout-vertical.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-block__label{align-items:flex-start}.dnb-forms-field-array-selection--variant-checkbox.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-array-selection__options{row-gap:0}.dnb-forms-field-array-selection--variant-button.dnb-forms-field-array-selection--options-layout-vertical.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-block__label{line-height:2.5rem}.dnb-forms-field-array-selection--options-layout-horizontal .dnb-forms-field-array-selection__options{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row wrap;row-gap:var(--row-gap)}@media screen and (min-width:40.0625em){.dnb-forms-field-array-selection .dnb-forms-field-block--layout-horizontal .dnb-form-label{line-height:2.5rem;margin-bottom:0}}
@@ -19,42 +19,51 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typ
19
19
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
20
20
  function NationalIdentityNumber(props) {
21
21
  var _props$label, _props$width;
22
- const translations = (0, _useTranslation.default)().NationalIdentityNumber;
23
- const errorMessage = translations.errorRequired;
24
22
  const {
25
23
  validate = true,
26
24
  omitMask
27
25
  } = props;
26
+ const translations = (0, _useTranslation.default)().NationalIdentityNumber;
27
+ const {
28
+ label,
29
+ errorRequired,
30
+ errorFnr,
31
+ errorDnr
32
+ } = translations;
28
33
  const errorMessages = (0, _useErrorMessage.default)(props.path, props.errorMessages, {
29
- required: errorMessage,
30
- pattern: errorMessage
34
+ required: errorRequired,
35
+ pattern: errorRequired,
36
+ errorFnr,
37
+ errorDnr
31
38
  });
32
39
  const mask = (0, _react.useMemo)(() => omitMask ? Array(11).fill(/\d/) : [/\d/, /\d/, /\d/, /\d/, /\d/, /\d/, ' ', /\d/, /\d/, /\d/, /\d/, /\d/], [omitMask]);
33
40
  const validationPattern = '^[0-9]{11}$';
34
41
  const fnrValidator = (0, _react.useCallback)(value => {
35
42
  if (new RegExp(validationPattern).test(value) && (0, _fnrvalidator.fnr)(value).status === 'invalid') {
36
- return Error(translations.errorFnr);
43
+ return Error(errorFnr);
37
44
  }
38
- return undefined;
39
- }, [translations.errorFnr]);
45
+ }, [errorFnr]);
40
46
  const dnrValidator = (0, _react.useCallback)(value => {
41
47
  const validationPattern = '^[4-7]([0-9]{10}$)';
42
48
  if (new RegExp(validationPattern).test(value) && (0, _fnrvalidator.dnr)(value).status === 'invalid') {
43
- return Error(translations.errorDnr);
49
+ return Error(errorDnr);
44
50
  }
45
- return undefined;
46
- }, [translations.errorDnr]);
51
+ }, [errorDnr]);
47
52
  const dnrAndFnrValidator = (0, _react.useCallback)(value => {
48
53
  return dnrValidator(value) || fnrValidator(value);
49
54
  }, [dnrValidator, fnrValidator]);
50
55
  const StringFieldProps = _objectSpread(_objectSpread({}, props), {}, {
51
56
  pattern: validate && props.pattern ? props.pattern : validate && !props.validator ? validationPattern : undefined,
52
- label: (_props$label = props.label) !== null && _props$label !== void 0 ? _props$label : translations.label,
57
+ label: (_props$label = props.label) !== null && _props$label !== void 0 ? _props$label : label,
53
58
  errorMessages,
54
59
  mask,
55
60
  width: (_props$width = props.width) !== null && _props$width !== void 0 ? _props$width : 'medium',
56
61
  inputMode: 'numeric',
57
- validator: validate ? props.validator || dnrAndFnrValidator : undefined
62
+ validator: validate ? props.validator || dnrAndFnrValidator : undefined,
63
+ exportValidators: {
64
+ dnrValidator,
65
+ fnrValidator
66
+ }
58
67
  });
59
68
  return _react.default.createElement(_String.default, StringFieldProps);
60
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NationalIdentityNumber.js","names":["_react","_interopRequireWildcard","require","_String","_interopRequireDefault","_fnrvalidator","_useErrorMessage","_useTranslation","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","NationalIdentityNumber","props","_props$label","_props$width","translations","useTranslation","errorMessage","errorRequired","validate","omitMask","errorMessages","useErrorMessage","path","required","pattern","mask","useMemo","Array","fill","validationPattern","fnrValidator","useCallback","RegExp","test","fnr","status","Error","errorFnr","dnrValidator","dnr","errorDnr","dnrAndFnrValidator","StringFieldProps","validator","label","width","inputMode","createElement","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport { dnr, fnr } from '@navikt/fnrvalidator'\n\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type Props = StringFieldProps & {\n omitMask?: boolean\n validate?: boolean\n}\n\nfunction NationalIdentityNumber(props: Props) {\n const translations = useTranslation().NationalIdentityNumber\n const errorMessage = translations.errorRequired\n\n const { validate = true, omitMask } = props\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: errorMessage,\n pattern: errorMessage,\n })\n\n const mask = useMemo(\n () =>\n omitMask\n ? Array(11).fill(/\\d/)\n : [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ],\n [omitMask]\n )\n const validationPattern = '^[0-9]{11}$'\n\n const fnrValidator = useCallback(\n (value: string) => {\n if (\n new RegExp(validationPattern).test(value) &&\n fnr(value).status === 'invalid'\n ) {\n return Error(translations.errorFnr)\n }\n return undefined\n },\n [translations.errorFnr]\n )\n\n const dnrValidator = useCallback(\n (value: string) => {\n const validationPattern = '^[4-7]([0-9]{10}$)' // 1st num is increased by 4. i.e, if 01.01.1985, D number would be 410185.\n if (\n new RegExp(validationPattern).test(value) &&\n dnr(value).status === 'invalid'\n ) {\n return Error(translations.errorDnr)\n }\n return undefined\n },\n [translations.errorDnr]\n )\n\n const dnrAndFnrValidator = useCallback(\n (value: string) => {\n return dnrValidator(value) || fnrValidator(value)\n },\n [dnrValidator, fnrValidator]\n )\n\n const StringFieldProps: Props = {\n ...props,\n pattern:\n validate && props.pattern\n ? props.pattern\n : validate && !props.validator\n ? validationPattern\n : undefined,\n label: props.label ?? translations.label,\n errorMessages,\n mask,\n width: props.width ?? 'medium',\n inputMode: 'numeric',\n validator: validate\n ? props.validator || dnrAndFnrValidator\n : undefined,\n }\n\n return <StringField {...StringFieldProps} />\n}\n\nNationalIdentityNumber._supportsSpacingProps = true\nexport default NationalIdentityNumber\n"],"mappings":"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"}
1
+ {"version":3,"file":"NationalIdentityNumber.js","names":["_react","_interopRequireWildcard","require","_String","_interopRequireDefault","_fnrvalidator","_useErrorMessage","_useTranslation","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","NationalIdentityNumber","props","_props$label","_props$width","validate","omitMask","translations","useTranslation","label","errorRequired","errorFnr","errorDnr","errorMessages","useErrorMessage","path","required","pattern","mask","useMemo","Array","fill","validationPattern","fnrValidator","useCallback","RegExp","test","fnr","status","Error","dnrValidator","dnr","dnrAndFnrValidator","StringFieldProps","validator","width","inputMode","exportValidators","createElement","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport { dnr, fnr } from '@navikt/fnrvalidator'\n\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type Props = StringFieldProps & {\n omitMask?: boolean\n validate?: boolean\n}\n\nfunction NationalIdentityNumber(props: Props) {\n const { validate = true, omitMask } = props\n\n const translations = useTranslation().NationalIdentityNumber\n const { label, errorRequired, errorFnr, errorDnr } = translations\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: errorRequired,\n pattern: errorRequired,\n errorFnr,\n errorDnr,\n })\n\n const mask = useMemo(\n () =>\n omitMask\n ? Array(11).fill(/\\d/)\n : [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ],\n [omitMask]\n )\n const validationPattern = '^[0-9]{11}$'\n\n const fnrValidator = useCallback(\n (value: string) => {\n if (\n new RegExp(validationPattern).test(value) &&\n fnr(value).status === 'invalid'\n ) {\n return Error(errorFnr)\n }\n },\n [errorFnr]\n )\n\n const dnrValidator = useCallback(\n (value: string) => {\n const validationPattern = '^[4-7]([0-9]{10}$)' // 1st num is increased by 4. i.e, if 01.01.1985, D number would be 410185.\n if (\n new RegExp(validationPattern).test(value) &&\n dnr(value).status === 'invalid'\n ) {\n return Error(errorDnr)\n }\n },\n [errorDnr]\n )\n\n const dnrAndFnrValidator = useCallback(\n (value: string) => {\n return dnrValidator(value) || fnrValidator(value)\n },\n [dnrValidator, fnrValidator]\n )\n\n const StringFieldProps: Props = {\n ...props,\n pattern:\n validate && props.pattern\n ? props.pattern\n : validate && !props.validator\n ? validationPattern\n : undefined,\n label: props.label ?? label,\n errorMessages,\n mask,\n width: props.width ?? 'medium',\n inputMode: 'numeric',\n validator: validate\n ? props.validator || dnrAndFnrValidator\n : undefined,\n exportValidators: { dnrValidator, fnrValidator },\n }\n\n return <StringField {...StringFieldProps} />\n}\n\nNationalIdentityNumber._supportsSpacingProps = true\nexport default NationalIdentityNumber\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { PropertiesTableProps } from '../../../../shared/types';
2
+ export declare const NationalIdentityNumberProperties: PropertiesTableProps;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.NationalIdentityNumberProperties = void 0;
7
+ const NationalIdentityNumberProperties = {
8
+ validate: {
9
+ doc: 'Using this prop you can disable the default validation.',
10
+ type: 'boolean',
11
+ status: 'optional'
12
+ },
13
+ help: {
14
+ doc: 'Provide a help button. Object consisting of `title` and `content`.',
15
+ type: 'object',
16
+ status: 'optional'
17
+ }
18
+ };
19
+ exports.NationalIdentityNumberProperties = NationalIdentityNumberProperties;
20
+ //# sourceMappingURL=NationalIdentityNumberDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NationalIdentityNumberDocs.js","names":["NationalIdentityNumberProperties","validate","doc","type","status","help","exports"],"sources":["../../../../../../src/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const NationalIdentityNumberProperties: PropertiesTableProps = {\n validate: {\n doc: 'Using this prop you can disable the default validation.',\n type: 'boolean',\n status: 'optional',\n },\n help: {\n doc: 'Provide a help button. Object consisting of `title` and `content`.',\n type: 'object',\n status: 'optional',\n },\n}\n"],"mappings":";;;;;;AAEO,MAAMA,gCAAsD,GAAG;EACpEC,QAAQ,EAAE;IACRC,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV;AACF,CAAC;AAAAE,OAAA,CAAAN,gCAAA,GAAAA,gCAAA"}
@@ -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,