@dnb/eufemia 10.45.0 → 10.47.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 (792) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/cjs/components/CopyOnClick.d.ts +12 -0
  3. package/cjs/components/CopyOnClick.js +24 -0
  4. package/cjs/components/CopyOnClick.js.map +1 -0
  5. package/cjs/components/accordion/Accordion.d.ts +17 -1
  6. package/cjs/components/accordion/Accordion.js +4 -2
  7. package/cjs/components/accordion/Accordion.js.map +1 -1
  8. package/cjs/components/accordion/AccordionContext.d.ts +4 -0
  9. package/cjs/components/accordion/AccordionContext.js.map +1 -1
  10. package/cjs/components/accordion/AccordionDocs.js +6 -1
  11. package/cjs/components/accordion/AccordionDocs.js.map +1 -1
  12. package/cjs/components/accordion/AccordionGroup.js +5 -3
  13. package/cjs/components/accordion/AccordionGroup.js.map +1 -1
  14. package/cjs/components/accordion/AccordionProviderContext.d.ts +4 -0
  15. package/cjs/components/accordion/AccordionProviderContext.js.map +1 -1
  16. package/cjs/components/accordion/AccordionStore.js +2 -1
  17. package/cjs/components/accordion/AccordionStore.js.map +1 -1
  18. package/cjs/components/accordion/style/dnb-accordion.css +3 -3
  19. package/cjs/components/accordion/style/dnb-accordion.min.css +1 -1
  20. package/cjs/components/autocomplete/style/dnb-autocomplete.css +1 -1
  21. package/cjs/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  22. package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
  23. package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  24. package/cjs/components/button/Button.d.ts +1 -1
  25. package/cjs/components/button/Button.js +5 -2
  26. package/cjs/components/button/Button.js.map +1 -1
  27. package/cjs/components/card/style/dnb-card.css +1 -1
  28. package/cjs/components/card/style/dnb-card.min.css +1 -1
  29. package/cjs/components/copy-on-click/CopyOnClick.d.ts +9 -0
  30. package/cjs/components/copy-on-click/CopyOnClick.js +73 -0
  31. package/cjs/components/copy-on-click/CopyOnClick.js.map +1 -0
  32. package/cjs/components/copy-on-click/CopyOnClickDocs.d.ts +2 -0
  33. package/cjs/components/copy-on-click/CopyOnClickDocs.js +30 -0
  34. package/cjs/components/copy-on-click/CopyOnClickDocs.js.map +1 -0
  35. package/cjs/components/copy-on-click/index.d.ts +7 -0
  36. package/cjs/components/copy-on-click/index.js +24 -0
  37. package/cjs/components/copy-on-click/index.js.map +1 -0
  38. package/cjs/components/copy-on-click/style/dnb-copy-on-click.css +7 -0
  39. package/cjs/components/copy-on-click/style/dnb-copy-on-click.min.css +1 -0
  40. package/cjs/components/copy-on-click/style/dnb-copy-on-click.scss +10 -0
  41. package/cjs/components/copy-on-click/style/index.d.ts +5 -0
  42. package/cjs/components/copy-on-click/style/index.js +4 -0
  43. package/cjs/components/copy-on-click/style/index.js.map +1 -0
  44. package/cjs/components/copy-on-click/style.d.ts +5 -0
  45. package/cjs/components/copy-on-click/style.js +4 -0
  46. package/cjs/components/copy-on-click/style.js.map +1 -0
  47. package/cjs/components/copy-on-click/types.d.ts +24 -0
  48. package/cjs/components/copy-on-click/types.js +1 -0
  49. package/cjs/components/copy-on-click/types.js.map +1 -0
  50. package/cjs/components/drawer/style/dnb-drawer.css +3 -3
  51. package/cjs/components/drawer/style/dnb-drawer.min.css +1 -1
  52. package/cjs/components/dropdown/style/dnb-dropdown.css +1 -1
  53. package/cjs/components/dropdown/style/dnb-dropdown.min.css +1 -1
  54. package/cjs/components/flex/Container.js +9 -1
  55. package/cjs/components/flex/Container.js.map +1 -1
  56. package/cjs/components/flex/utils.d.ts +1 -1
  57. package/cjs/components/flex/utils.js +1 -1
  58. package/cjs/components/flex/utils.js.map +1 -1
  59. package/cjs/components/form-row/style/dnb-form-row.css +1 -1
  60. package/cjs/components/form-row/style/dnb-form-row.min.css +1 -1
  61. package/cjs/components/grid/style/dnb-grid.css +6 -6
  62. package/cjs/components/grid/style/dnb-grid.min.css +1 -1
  63. package/cjs/components/index.d.ts +2 -1
  64. package/cjs/components/index.js +7 -0
  65. package/cjs/components/index.js.map +1 -1
  66. package/cjs/components/lib.d.ts +6 -1
  67. package/cjs/components/lib.js +8 -0
  68. package/cjs/components/lib.js.map +1 -1
  69. package/cjs/components/pagination/Pagination.d.ts +27 -1
  70. package/cjs/components/pagination/Pagination.js +3 -1
  71. package/cjs/components/pagination/Pagination.js.map +1 -1
  72. package/cjs/components/pagination/PaginationInfinity.js +20 -8
  73. package/cjs/components/pagination/PaginationInfinity.js.map +1 -1
  74. package/cjs/components/progress-indicator/ProgressIndicator.js +2 -2
  75. package/cjs/components/progress-indicator/ProgressIndicator.js.map +1 -1
  76. package/cjs/components/section/style/dnb-section.css +2 -2
  77. package/cjs/components/section/style/dnb-section.min.css +2 -2
  78. package/cjs/components/space/style/dnb-space.css +2 -2
  79. package/cjs/components/space/style/dnb-space.min.css +1 -1
  80. package/cjs/components/tabs/Tabs.js +2 -2
  81. package/cjs/components/tabs/Tabs.js.map +1 -1
  82. package/cjs/components/tag/Tag.js +2 -2
  83. package/cjs/components/tag/Tag.js.map +1 -1
  84. package/cjs/components/toggle-button/style/dnb-toggle-button.css +1 -1
  85. package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  86. package/cjs/extensions/forms/DataContext/Context.d.ts +10 -7
  87. package/cjs/extensions/forms/DataContext/Context.js +0 -1
  88. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  89. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +7 -7
  90. package/cjs/extensions/forms/DataContext/Provider/Provider.js +60 -34
  91. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  92. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +2 -7
  93. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  94. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +15 -3
  95. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +12 -3
  96. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  97. package/cjs/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +10 -0
  98. package/cjs/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
  99. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +1 -1
  100. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  101. package/cjs/extensions/forms/Field/Email/Email.js +1 -1
  102. package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
  103. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +36 -8
  104. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  105. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.d.ts +2 -0
  106. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +20 -0
  107. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -0
  108. package/cjs/extensions/forms/Field/Number/Number.d.ts +2 -2
  109. package/cjs/extensions/forms/Field/Number/Number.js +33 -31
  110. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  111. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +3 -1
  112. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +11 -3
  113. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  114. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +1 -1
  115. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  116. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js +6 -1
  117. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  118. package/cjs/extensions/forms/Field/Slider/Slider.js +7 -7
  119. package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -1
  120. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +3 -4
  121. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  122. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
  123. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  124. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +1 -1
  125. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  126. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  127. package/cjs/extensions/forms/Form/Handler/Handler.js +1 -3
  128. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  129. package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +1 -1
  130. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  131. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +0 -1
  132. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  133. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +1 -1
  134. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  135. package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
  136. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +9 -5
  137. package/cjs/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -1
  138. package/cjs/extensions/forms/Form/data-context/useData.js +9 -7
  139. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  140. package/cjs/extensions/forms/Iterate/Array/Array.js +4 -4
  141. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  142. package/cjs/extensions/forms/Value/Date/Date.d.ts +1 -1
  143. package/cjs/extensions/forms/Value/Date/Date.js +15 -5
  144. package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
  145. package/cjs/extensions/forms/Value/Date/DateDocs.js +1 -1
  146. package/cjs/extensions/forms/Value/Date/DateDocs.js.map +1 -1
  147. package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +7 -0
  148. package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.js +54 -0
  149. package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -0
  150. package/cjs/extensions/forms/Value/SelectCountry/index.d.ts +2 -0
  151. package/cjs/extensions/forms/Value/SelectCountry/index.js +27 -0
  152. package/cjs/extensions/forms/Value/SelectCountry/index.js.map +1 -0
  153. package/cjs/extensions/forms/Value/Selection/SelectionDocs.js +1 -1
  154. package/cjs/extensions/forms/Value/Selection/SelectionDocs.js.map +1 -1
  155. package/cjs/extensions/forms/Value/index.d.ts +1 -0
  156. package/cjs/extensions/forms/Value/index.js +7 -0
  157. package/cjs/extensions/forms/Value/index.js.map +1 -1
  158. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +4 -3
  159. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  160. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +5 -2
  161. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  162. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +3 -0
  163. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +1 -1
  164. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  165. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +2 -2
  166. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  167. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +4 -4
  168. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  169. package/cjs/extensions/forms/constants/countries.d.ts +5 -2
  170. package/cjs/extensions/forms/constants/countries.js +72 -0
  171. package/cjs/extensions/forms/constants/countries.js.map +1 -1
  172. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +2 -0
  173. package/cjs/extensions/forms/constants/locales/en-GB.js +3 -1
  174. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  175. package/cjs/extensions/forms/constants/locales/en-US.d.ts +2 -0
  176. package/cjs/extensions/forms/constants/locales/index.d.ts +4 -0
  177. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +2 -0
  178. package/cjs/extensions/forms/constants/locales/nb-NO.js +3 -1
  179. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  180. package/cjs/extensions/forms/hooks/DataValueDocs.js +7 -7
  181. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  182. package/cjs/extensions/forms/hooks/useDataValue.d.ts +2 -1
  183. package/cjs/extensions/forms/hooks/useDataValue.js +7 -7
  184. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  185. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +1 -1
  186. package/cjs/extensions/forms/hooks/useFieldProps.js +296 -115
  187. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  188. package/cjs/extensions/forms/style/dnb-forms.css +13 -10
  189. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  190. package/cjs/extensions/forms/types.d.ts +33 -4
  191. package/cjs/extensions/forms/types.js.map +1 -1
  192. package/cjs/index.d.ts +2 -1
  193. package/cjs/index.js +7 -0
  194. package/cjs/index.js.map +1 -1
  195. package/cjs/shared/Context.js +4 -6
  196. package/cjs/shared/Context.js.map +1 -1
  197. package/cjs/shared/Eufemia.d.ts +1 -1
  198. package/cjs/shared/Eufemia.js +2 -2
  199. package/cjs/shared/Eufemia.js.map +1 -1
  200. package/cjs/shared/locales/en-GB.d.ts +3 -0
  201. package/cjs/shared/locales/en-GB.js +3 -0
  202. package/cjs/shared/locales/en-GB.js.map +1 -1
  203. package/cjs/shared/locales/en-US.d.ts +3 -0
  204. package/cjs/shared/locales/index.d.ts +6 -0
  205. package/cjs/shared/locales/nb-NO.d.ts +3 -0
  206. package/cjs/shared/locales/nb-NO.js +3 -0
  207. package/cjs/shared/locales/nb-NO.js.map +1 -1
  208. package/cjs/style/core/scopes.scss +1 -1
  209. package/cjs/style/core/utilities.scss +3 -6
  210. package/cjs/style/dnb-ui-basis.css +1 -1
  211. package/cjs/style/dnb-ui-basis.min.css +1 -1
  212. package/cjs/style/dnb-ui-body.css +1 -1
  213. package/cjs/style/dnb-ui-body.min.css +1 -1
  214. package/cjs/style/dnb-ui-components.css +45 -34
  215. package/cjs/style/dnb-ui-components.min.css +5 -5
  216. package/cjs/style/dnb-ui-components.scss +1 -0
  217. package/cjs/style/dnb-ui-core.css +1 -1
  218. package/cjs/style/dnb-ui-core.min.css +1 -1
  219. package/cjs/style/dnb-ui-elements.css +1 -1
  220. package/cjs/style/dnb-ui-elements.min.css +1 -1
  221. package/cjs/style/dnb-ui-extensions.css +13 -10
  222. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  223. package/cjs/style/dnb-ui-forms.css +13 -10
  224. package/cjs/style/dnb-ui-forms.min.css +1 -1
  225. package/cjs/style/dnb-ui-fragments.css +2 -2
  226. package/cjs/style/dnb-ui-fragments.min.css +1 -1
  227. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -1
  228. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  229. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +59 -45
  230. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -6
  231. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
  232. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  233. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +13 -10
  234. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  235. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +13 -10
  236. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  237. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -1
  238. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  239. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +59 -45
  240. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
  241. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
  242. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  243. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +13 -10
  244. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  245. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +13 -10
  246. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  247. package/cjs/style/themes/theme-ui/ui-theme-basis.css +1 -1
  248. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  249. package/cjs/style/themes/theme-ui/ui-theme-components.css +59 -45
  250. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  251. package/cjs/style/themes/theme-ui/ui-theme-elements.css +1 -1
  252. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  253. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +13 -10
  254. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  255. package/cjs/style/themes/theme-ui/ui-theme-forms.css +13 -10
  256. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  257. package/cjs/style/themes/theme-ui/ui-theme-tags.css +1 -1
  258. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  259. package/components/CopyOnClick.d.ts +12 -0
  260. package/components/CopyOnClick.js +4 -0
  261. package/components/CopyOnClick.js.map +1 -0
  262. package/components/accordion/Accordion.d.ts +17 -1
  263. package/components/accordion/Accordion.js +4 -2
  264. package/components/accordion/Accordion.js.map +1 -1
  265. package/components/accordion/AccordionContext.d.ts +4 -0
  266. package/components/accordion/AccordionContext.js.map +1 -1
  267. package/components/accordion/AccordionDocs.js +6 -1
  268. package/components/accordion/AccordionDocs.js.map +1 -1
  269. package/components/accordion/AccordionGroup.js +5 -3
  270. package/components/accordion/AccordionGroup.js.map +1 -1
  271. package/components/accordion/AccordionProviderContext.d.ts +4 -0
  272. package/components/accordion/AccordionProviderContext.js.map +1 -1
  273. package/components/accordion/AccordionStore.js +2 -1
  274. package/components/accordion/AccordionStore.js.map +1 -1
  275. package/components/accordion/style/dnb-accordion.css +3 -3
  276. package/components/accordion/style/dnb-accordion.min.css +1 -1
  277. package/components/autocomplete/style/dnb-autocomplete.css +1 -1
  278. package/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  279. package/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
  280. package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  281. package/components/button/Button.d.ts +1 -1
  282. package/components/button/Button.js +5 -2
  283. package/components/button/Button.js.map +1 -1
  284. package/components/card/style/dnb-card.css +1 -1
  285. package/components/card/style/dnb-card.min.css +1 -1
  286. package/components/copy-on-click/CopyOnClick.d.ts +9 -0
  287. package/components/copy-on-click/CopyOnClick.js +63 -0
  288. package/components/copy-on-click/CopyOnClick.js.map +1 -0
  289. package/components/copy-on-click/CopyOnClickDocs.d.ts +2 -0
  290. package/components/copy-on-click/CopyOnClickDocs.js +23 -0
  291. package/components/copy-on-click/CopyOnClickDocs.js.map +1 -0
  292. package/components/copy-on-click/index.d.ts +7 -0
  293. package/components/copy-on-click/index.js +4 -0
  294. package/components/copy-on-click/index.js.map +1 -0
  295. package/components/copy-on-click/style/dnb-copy-on-click.css +7 -0
  296. package/components/copy-on-click/style/dnb-copy-on-click.min.css +1 -0
  297. package/components/copy-on-click/style/dnb-copy-on-click.scss +10 -0
  298. package/components/copy-on-click/style/index.d.ts +5 -0
  299. package/components/copy-on-click/style/index.js +1 -0
  300. package/components/copy-on-click/style/index.js.map +1 -0
  301. package/components/copy-on-click/style.d.ts +5 -0
  302. package/components/copy-on-click/style.js +1 -0
  303. package/components/copy-on-click/style.js.map +1 -0
  304. package/components/copy-on-click/types.d.ts +24 -0
  305. package/components/copy-on-click/types.js +1 -0
  306. package/components/copy-on-click/types.js.map +1 -0
  307. package/components/drawer/style/dnb-drawer.css +3 -3
  308. package/components/drawer/style/dnb-drawer.min.css +1 -1
  309. package/components/dropdown/style/dnb-dropdown.css +1 -1
  310. package/components/dropdown/style/dnb-dropdown.min.css +1 -1
  311. package/components/flex/Container.js +10 -2
  312. package/components/flex/Container.js.map +1 -1
  313. package/components/flex/utils.d.ts +1 -1
  314. package/components/flex/utils.js +1 -1
  315. package/components/flex/utils.js.map +1 -1
  316. package/components/form-row/style/dnb-form-row.css +1 -1
  317. package/components/form-row/style/dnb-form-row.min.css +1 -1
  318. package/components/grid/style/dnb-grid.css +6 -6
  319. package/components/grid/style/dnb-grid.min.css +1 -1
  320. package/components/index.d.ts +2 -1
  321. package/components/index.js +2 -1
  322. package/components/index.js.map +1 -1
  323. package/components/lib.d.ts +6 -1
  324. package/components/lib.js +3 -1
  325. package/components/lib.js.map +1 -1
  326. package/components/pagination/Pagination.d.ts +27 -1
  327. package/components/pagination/Pagination.js +3 -1
  328. package/components/pagination/Pagination.js.map +1 -1
  329. package/components/pagination/PaginationInfinity.js +20 -8
  330. package/components/pagination/PaginationInfinity.js.map +1 -1
  331. package/components/progress-indicator/ProgressIndicator.js +2 -2
  332. package/components/progress-indicator/ProgressIndicator.js.map +1 -1
  333. package/components/section/style/dnb-section.css +2 -2
  334. package/components/section/style/dnb-section.min.css +2 -2
  335. package/components/space/style/dnb-space.css +2 -2
  336. package/components/space/style/dnb-space.min.css +1 -1
  337. package/components/tabs/Tabs.js +2 -2
  338. package/components/tabs/Tabs.js.map +1 -1
  339. package/components/tag/Tag.js +2 -2
  340. package/components/tag/Tag.js.map +1 -1
  341. package/components/toggle-button/style/dnb-toggle-button.css +1 -1
  342. package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  343. package/es/components/CopyOnClick.d.ts +12 -0
  344. package/es/components/CopyOnClick.js +4 -0
  345. package/es/components/CopyOnClick.js.map +1 -0
  346. package/es/components/accordion/Accordion.d.ts +17 -1
  347. package/es/components/accordion/Accordion.js +4 -2
  348. package/es/components/accordion/Accordion.js.map +1 -1
  349. package/es/components/accordion/AccordionContext.d.ts +4 -0
  350. package/es/components/accordion/AccordionContext.js.map +1 -1
  351. package/es/components/accordion/AccordionDocs.js +6 -1
  352. package/es/components/accordion/AccordionDocs.js.map +1 -1
  353. package/es/components/accordion/AccordionGroup.js +5 -3
  354. package/es/components/accordion/AccordionGroup.js.map +1 -1
  355. package/es/components/accordion/AccordionProviderContext.d.ts +4 -0
  356. package/es/components/accordion/AccordionProviderContext.js.map +1 -1
  357. package/es/components/accordion/AccordionStore.js +2 -1
  358. package/es/components/accordion/AccordionStore.js.map +1 -1
  359. package/es/components/accordion/style/dnb-accordion.css +3 -3
  360. package/es/components/accordion/style/dnb-accordion.min.css +1 -1
  361. package/es/components/autocomplete/style/dnb-autocomplete.css +1 -1
  362. package/es/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  363. package/es/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
  364. package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  365. package/es/components/button/Button.d.ts +1 -1
  366. package/es/components/button/Button.js +5 -2
  367. package/es/components/button/Button.js.map +1 -1
  368. package/es/components/card/style/dnb-card.css +1 -1
  369. package/es/components/card/style/dnb-card.min.css +1 -1
  370. package/es/components/copy-on-click/CopyOnClick.d.ts +9 -0
  371. package/es/components/copy-on-click/CopyOnClick.js +63 -0
  372. package/es/components/copy-on-click/CopyOnClick.js.map +1 -0
  373. package/es/components/copy-on-click/CopyOnClickDocs.d.ts +2 -0
  374. package/es/components/copy-on-click/CopyOnClickDocs.js +23 -0
  375. package/es/components/copy-on-click/CopyOnClickDocs.js.map +1 -0
  376. package/es/components/copy-on-click/index.d.ts +7 -0
  377. package/es/components/copy-on-click/index.js +4 -0
  378. package/es/components/copy-on-click/index.js.map +1 -0
  379. package/es/components/copy-on-click/style/dnb-copy-on-click.css +7 -0
  380. package/es/components/copy-on-click/style/dnb-copy-on-click.min.css +1 -0
  381. package/es/components/copy-on-click/style/dnb-copy-on-click.scss +10 -0
  382. package/es/components/copy-on-click/style/index.d.ts +5 -0
  383. package/es/components/copy-on-click/style/index.js +1 -0
  384. package/es/components/copy-on-click/style/index.js.map +1 -0
  385. package/es/components/copy-on-click/style.d.ts +5 -0
  386. package/es/components/copy-on-click/style.js +1 -0
  387. package/es/components/copy-on-click/style.js.map +1 -0
  388. package/es/components/copy-on-click/types.d.ts +24 -0
  389. package/es/components/copy-on-click/types.js +1 -0
  390. package/es/components/copy-on-click/types.js.map +1 -0
  391. package/es/components/drawer/style/dnb-drawer.css +3 -3
  392. package/es/components/drawer/style/dnb-drawer.min.css +1 -1
  393. package/es/components/dropdown/style/dnb-dropdown.css +1 -1
  394. package/es/components/dropdown/style/dnb-dropdown.min.css +1 -1
  395. package/es/components/flex/Container.js +10 -2
  396. package/es/components/flex/Container.js.map +1 -1
  397. package/es/components/flex/utils.d.ts +1 -1
  398. package/es/components/flex/utils.js +1 -1
  399. package/es/components/flex/utils.js.map +1 -1
  400. package/es/components/form-row/style/dnb-form-row.css +1 -1
  401. package/es/components/form-row/style/dnb-form-row.min.css +1 -1
  402. package/es/components/grid/style/dnb-grid.css +6 -6
  403. package/es/components/grid/style/dnb-grid.min.css +1 -1
  404. package/es/components/index.d.ts +2 -1
  405. package/es/components/index.js +2 -1
  406. package/es/components/index.js.map +1 -1
  407. package/es/components/lib.d.ts +6 -1
  408. package/es/components/lib.js +3 -1
  409. package/es/components/lib.js.map +1 -1
  410. package/es/components/pagination/Pagination.d.ts +27 -1
  411. package/es/components/pagination/Pagination.js +3 -1
  412. package/es/components/pagination/Pagination.js.map +1 -1
  413. package/es/components/pagination/PaginationInfinity.js +20 -8
  414. package/es/components/pagination/PaginationInfinity.js.map +1 -1
  415. package/es/components/progress-indicator/ProgressIndicator.js +2 -2
  416. package/es/components/progress-indicator/ProgressIndicator.js.map +1 -1
  417. package/es/components/section/style/dnb-section.css +2 -2
  418. package/es/components/section/style/dnb-section.min.css +2 -2
  419. package/es/components/space/style/dnb-space.css +2 -2
  420. package/es/components/space/style/dnb-space.min.css +1 -1
  421. package/es/components/tabs/Tabs.js +2 -2
  422. package/es/components/tabs/Tabs.js.map +1 -1
  423. package/es/components/tag/Tag.js +2 -2
  424. package/es/components/tag/Tag.js.map +1 -1
  425. package/es/components/toggle-button/style/dnb-toggle-button.css +1 -1
  426. package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  427. package/es/extensions/forms/DataContext/Context.d.ts +10 -7
  428. package/es/extensions/forms/DataContext/Context.js +0 -1
  429. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  430. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +7 -7
  431. package/es/extensions/forms/DataContext/Provider/Provider.js +59 -33
  432. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  433. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +2 -7
  434. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  435. package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +15 -3
  436. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +12 -3
  437. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  438. package/es/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +10 -0
  439. package/es/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
  440. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +1 -1
  441. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  442. package/es/extensions/forms/Field/Email/Email.js +1 -1
  443. package/es/extensions/forms/Field/Email/Email.js.map +1 -1
  444. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +37 -9
  445. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  446. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.d.ts +2 -0
  447. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +13 -0
  448. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -0
  449. package/es/extensions/forms/Field/Number/Number.d.ts +2 -2
  450. package/es/extensions/forms/Field/Number/Number.js +33 -31
  451. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  452. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +3 -1
  453. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +8 -1
  454. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  455. package/es/extensions/forms/Field/Selection/Selection.d.ts +1 -1
  456. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  457. package/es/extensions/forms/Field/Selection/SelectionDocs.js +6 -1
  458. package/es/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  459. package/es/extensions/forms/Field/Slider/Slider.js +7 -7
  460. package/es/extensions/forms/Field/Slider/Slider.js.map +1 -1
  461. package/es/extensions/forms/FieldBlock/FieldBlock.js +3 -4
  462. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  463. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
  464. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  465. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +1 -1
  466. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  467. package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  468. package/es/extensions/forms/Form/Handler/Handler.js +1 -3
  469. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  470. package/es/extensions/forms/Form/Isolation/Isolation.d.ts +1 -1
  471. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  472. package/es/extensions/forms/Form/Isolation/IsolationDocs.js +0 -1
  473. package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  474. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +1 -1
  475. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  476. package/es/extensions/forms/Form/Section/Section.js.map +1 -1
  477. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +9 -5
  478. package/es/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -1
  479. package/es/extensions/forms/Form/data-context/useData.js +9 -7
  480. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  481. package/es/extensions/forms/Iterate/Array/Array.js +4 -4
  482. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  483. package/es/extensions/forms/Value/Date/Date.d.ts +1 -1
  484. package/es/extensions/forms/Value/Date/Date.js +15 -5
  485. package/es/extensions/forms/Value/Date/Date.js.map +1 -1
  486. package/es/extensions/forms/Value/Date/DateDocs.js +1 -1
  487. package/es/extensions/forms/Value/Date/DateDocs.js.map +1 -1
  488. package/es/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +7 -0
  489. package/es/extensions/forms/Value/SelectCountry/SelectCountry.js +44 -0
  490. package/es/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -0
  491. package/es/extensions/forms/Value/SelectCountry/index.d.ts +2 -0
  492. package/es/extensions/forms/Value/SelectCountry/index.js +3 -0
  493. package/es/extensions/forms/Value/SelectCountry/index.js.map +1 -0
  494. package/es/extensions/forms/Value/Selection/SelectionDocs.js +1 -1
  495. package/es/extensions/forms/Value/Selection/SelectionDocs.js.map +1 -1
  496. package/es/extensions/forms/Value/index.d.ts +1 -0
  497. package/es/extensions/forms/Value/index.js +1 -0
  498. package/es/extensions/forms/Value/index.js.map +1 -1
  499. package/es/extensions/forms/ValueBlock/ValueBlock.js +4 -3
  500. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  501. package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +5 -2
  502. package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  503. package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +3 -0
  504. package/es/extensions/forms/Wizard/Container/WizardContainer.js +1 -1
  505. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  506. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +2 -2
  507. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  508. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +4 -4
  509. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  510. package/es/extensions/forms/constants/countries.d.ts +5 -2
  511. package/es/extensions/forms/constants/countries.js +72 -0
  512. package/es/extensions/forms/constants/countries.js.map +1 -1
  513. package/es/extensions/forms/constants/locales/en-GB.d.ts +2 -0
  514. package/es/extensions/forms/constants/locales/en-GB.js +3 -1
  515. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  516. package/es/extensions/forms/constants/locales/en-US.d.ts +2 -0
  517. package/es/extensions/forms/constants/locales/index.d.ts +4 -0
  518. package/es/extensions/forms/constants/locales/nb-NO.d.ts +2 -0
  519. package/es/extensions/forms/constants/locales/nb-NO.js +3 -1
  520. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  521. package/es/extensions/forms/hooks/DataValueDocs.js +7 -7
  522. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  523. package/es/extensions/forms/hooks/useDataValue.d.ts +2 -1
  524. package/es/extensions/forms/hooks/useDataValue.js +7 -7
  525. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  526. package/es/extensions/forms/hooks/useFieldProps.d.ts +1 -1
  527. package/es/extensions/forms/hooks/useFieldProps.js +288 -112
  528. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  529. package/es/extensions/forms/style/dnb-forms.css +13 -10
  530. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  531. package/es/extensions/forms/types.d.ts +33 -4
  532. package/es/extensions/forms/types.js.map +1 -1
  533. package/es/index.d.ts +2 -1
  534. package/es/index.js +2 -1
  535. package/es/index.js.map +1 -1
  536. package/es/shared/Context.js +4 -6
  537. package/es/shared/Context.js.map +1 -1
  538. package/es/shared/Eufemia.d.ts +1 -1
  539. package/es/shared/Eufemia.js +2 -2
  540. package/es/shared/Eufemia.js.map +1 -1
  541. package/es/shared/locales/en-GB.d.ts +3 -0
  542. package/es/shared/locales/en-GB.js +3 -0
  543. package/es/shared/locales/en-GB.js.map +1 -1
  544. package/es/shared/locales/en-US.d.ts +3 -0
  545. package/es/shared/locales/index.d.ts +6 -0
  546. package/es/shared/locales/nb-NO.d.ts +3 -0
  547. package/es/shared/locales/nb-NO.js +3 -0
  548. package/es/shared/locales/nb-NO.js.map +1 -1
  549. package/es/style/core/scopes.scss +1 -1
  550. package/es/style/core/utilities.scss +3 -6
  551. package/es/style/dnb-ui-basis.css +1 -1
  552. package/es/style/dnb-ui-basis.min.css +1 -1
  553. package/es/style/dnb-ui-body.css +1 -1
  554. package/es/style/dnb-ui-body.min.css +1 -1
  555. package/es/style/dnb-ui-components.css +45 -34
  556. package/es/style/dnb-ui-components.min.css +5 -5
  557. package/es/style/dnb-ui-components.scss +1 -0
  558. package/es/style/dnb-ui-core.css +1 -1
  559. package/es/style/dnb-ui-core.min.css +1 -1
  560. package/es/style/dnb-ui-elements.css +1 -1
  561. package/es/style/dnb-ui-elements.min.css +1 -1
  562. package/es/style/dnb-ui-extensions.css +13 -10
  563. package/es/style/dnb-ui-extensions.min.css +1 -1
  564. package/es/style/dnb-ui-forms.css +13 -10
  565. package/es/style/dnb-ui-forms.min.css +1 -1
  566. package/es/style/dnb-ui-fragments.css +2 -2
  567. package/es/style/dnb-ui-fragments.min.css +1 -1
  568. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -1
  569. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  570. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +59 -45
  571. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -6
  572. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
  573. package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  574. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +13 -10
  575. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  576. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +13 -10
  577. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  578. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -1
  579. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  580. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +59 -45
  581. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
  582. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
  583. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  584. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +13 -10
  585. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  586. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +13 -10
  587. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  588. package/es/style/themes/theme-ui/ui-theme-basis.css +1 -1
  589. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  590. package/es/style/themes/theme-ui/ui-theme-components.css +59 -45
  591. package/es/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  592. package/es/style/themes/theme-ui/ui-theme-elements.css +1 -1
  593. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  594. package/es/style/themes/theme-ui/ui-theme-extensions.css +13 -10
  595. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  596. package/es/style/themes/theme-ui/ui-theme-forms.css +13 -10
  597. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  598. package/es/style/themes/theme-ui/ui-theme-tags.css +1 -1
  599. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  600. package/esm/dnb-ui-basis.min.mjs +1 -1
  601. package/esm/dnb-ui-components.min.mjs +1 -1
  602. package/esm/dnb-ui-elements.min.mjs +1 -1
  603. package/esm/dnb-ui-extensions.min.mjs +5 -5
  604. package/esm/dnb-ui-lib.min.mjs +1 -1
  605. package/extensions/forms/DataContext/Context.d.ts +10 -7
  606. package/extensions/forms/DataContext/Context.js +0 -1
  607. package/extensions/forms/DataContext/Context.js.map +1 -1
  608. package/extensions/forms/DataContext/Provider/Provider.d.ts +7 -7
  609. package/extensions/forms/DataContext/Provider/Provider.js +60 -34
  610. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  611. package/extensions/forms/DataContext/Provider/ProviderDocs.js +2 -7
  612. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  613. package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +15 -3
  614. package/extensions/forms/Field/ArraySelection/ArraySelection.js +12 -3
  615. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  616. package/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +10 -0
  617. package/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
  618. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +1 -1
  619. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  620. package/extensions/forms/Field/Email/Email.js +1 -1
  621. package/extensions/forms/Field/Email/Email.js.map +1 -1
  622. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +37 -9
  623. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  624. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.d.ts +2 -0
  625. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +13 -0
  626. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -0
  627. package/extensions/forms/Field/Number/Number.d.ts +2 -2
  628. package/extensions/forms/Field/Number/Number.js +33 -31
  629. package/extensions/forms/Field/Number/Number.js.map +1 -1
  630. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +3 -1
  631. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +8 -1
  632. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  633. package/extensions/forms/Field/Selection/Selection.d.ts +1 -1
  634. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  635. package/extensions/forms/Field/Selection/SelectionDocs.js +6 -1
  636. package/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  637. package/extensions/forms/Field/Slider/Slider.js +7 -7
  638. package/extensions/forms/Field/Slider/Slider.js.map +1 -1
  639. package/extensions/forms/FieldBlock/FieldBlock.js +3 -4
  640. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  641. package/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
  642. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  643. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +1 -1
  644. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  645. package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  646. package/extensions/forms/Form/Handler/Handler.js +1 -3
  647. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  648. package/extensions/forms/Form/Isolation/Isolation.d.ts +1 -1
  649. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  650. package/extensions/forms/Form/Isolation/IsolationDocs.js +0 -1
  651. package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  652. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +1 -1
  653. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  654. package/extensions/forms/Form/Section/Section.js.map +1 -1
  655. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js +9 -5
  656. package/extensions/forms/Form/SubmitIndicator/SubmitIndicator.js.map +1 -1
  657. package/extensions/forms/Form/data-context/useData.js +9 -7
  658. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  659. package/extensions/forms/Iterate/Array/Array.js +4 -4
  660. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  661. package/extensions/forms/Value/Date/Date.d.ts +1 -1
  662. package/extensions/forms/Value/Date/Date.js +15 -5
  663. package/extensions/forms/Value/Date/Date.js.map +1 -1
  664. package/extensions/forms/Value/Date/DateDocs.js +1 -1
  665. package/extensions/forms/Value/Date/DateDocs.js.map +1 -1
  666. package/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +7 -0
  667. package/extensions/forms/Value/SelectCountry/SelectCountry.js +44 -0
  668. package/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -0
  669. package/extensions/forms/Value/SelectCountry/index.d.ts +2 -0
  670. package/extensions/forms/Value/SelectCountry/index.js +3 -0
  671. package/extensions/forms/Value/SelectCountry/index.js.map +1 -0
  672. package/extensions/forms/Value/Selection/SelectionDocs.js +1 -1
  673. package/extensions/forms/Value/Selection/SelectionDocs.js.map +1 -1
  674. package/extensions/forms/Value/index.d.ts +1 -0
  675. package/extensions/forms/Value/index.js +1 -0
  676. package/extensions/forms/Value/index.js.map +1 -1
  677. package/extensions/forms/ValueBlock/ValueBlock.js +4 -3
  678. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  679. package/extensions/forms/ValueBlock/style/dnb-value-block.css +5 -2
  680. package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  681. package/extensions/forms/ValueBlock/style/dnb-value-block.scss +3 -0
  682. package/extensions/forms/Wizard/Container/WizardContainer.js +1 -1
  683. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  684. package/extensions/forms/Wizard/style/dnb-wizard-layout.css +2 -2
  685. package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  686. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +4 -4
  687. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  688. package/extensions/forms/constants/countries.d.ts +5 -2
  689. package/extensions/forms/constants/countries.js +72 -0
  690. package/extensions/forms/constants/countries.js.map +1 -1
  691. package/extensions/forms/constants/locales/en-GB.d.ts +2 -0
  692. package/extensions/forms/constants/locales/en-GB.js +3 -1
  693. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  694. package/extensions/forms/constants/locales/en-US.d.ts +2 -0
  695. package/extensions/forms/constants/locales/index.d.ts +4 -0
  696. package/extensions/forms/constants/locales/nb-NO.d.ts +2 -0
  697. package/extensions/forms/constants/locales/nb-NO.js +3 -1
  698. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  699. package/extensions/forms/hooks/DataValueDocs.js +7 -7
  700. package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  701. package/extensions/forms/hooks/useDataValue.d.ts +2 -1
  702. package/extensions/forms/hooks/useDataValue.js +7 -7
  703. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  704. package/extensions/forms/hooks/useFieldProps.d.ts +1 -1
  705. package/extensions/forms/hooks/useFieldProps.js +297 -116
  706. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  707. package/extensions/forms/style/dnb-forms.css +13 -10
  708. package/extensions/forms/style/dnb-forms.min.css +1 -1
  709. package/extensions/forms/types.d.ts +33 -4
  710. package/extensions/forms/types.js.map +1 -1
  711. package/index.d.ts +2 -1
  712. package/index.js +2 -1
  713. package/index.js.map +1 -1
  714. package/package.json +2 -1
  715. package/shared/Context.js +4 -6
  716. package/shared/Context.js.map +1 -1
  717. package/shared/Eufemia.d.ts +1 -1
  718. package/shared/Eufemia.js +2 -2
  719. package/shared/Eufemia.js.map +1 -1
  720. package/shared/locales/en-GB.d.ts +3 -0
  721. package/shared/locales/en-GB.js +3 -0
  722. package/shared/locales/en-GB.js.map +1 -1
  723. package/shared/locales/en-US.d.ts +3 -0
  724. package/shared/locales/index.d.ts +6 -0
  725. package/shared/locales/nb-NO.d.ts +3 -0
  726. package/shared/locales/nb-NO.js +3 -0
  727. package/shared/locales/nb-NO.js.map +1 -1
  728. package/style/core/scopes.scss +1 -1
  729. package/style/core/utilities.scss +3 -6
  730. package/style/dnb-ui-basis.css +1 -1
  731. package/style/dnb-ui-basis.min.css +1 -1
  732. package/style/dnb-ui-body.css +1 -1
  733. package/style/dnb-ui-body.min.css +1 -1
  734. package/style/dnb-ui-components.css +45 -34
  735. package/style/dnb-ui-components.min.css +5 -5
  736. package/style/dnb-ui-components.scss +1 -0
  737. package/style/dnb-ui-core.css +1 -1
  738. package/style/dnb-ui-core.min.css +1 -1
  739. package/style/dnb-ui-elements.css +1 -1
  740. package/style/dnb-ui-elements.min.css +1 -1
  741. package/style/dnb-ui-extensions.css +13 -10
  742. package/style/dnb-ui-extensions.min.css +1 -1
  743. package/style/dnb-ui-forms.css +13 -10
  744. package/style/dnb-ui-forms.min.css +1 -1
  745. package/style/dnb-ui-fragments.css +2 -2
  746. package/style/dnb-ui-fragments.min.css +1 -1
  747. package/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -1
  748. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  749. package/style/themes/theme-eiendom/eiendom-theme-components.css +59 -45
  750. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -6
  751. package/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
  752. package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  753. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +13 -10
  754. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  755. package/style/themes/theme-eiendom/eiendom-theme-forms.css +13 -10
  756. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  757. package/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -1
  758. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  759. package/style/themes/theme-sbanken/sbanken-theme-components.css +59 -45
  760. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
  761. package/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
  762. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  763. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +13 -10
  764. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  765. package/style/themes/theme-sbanken/sbanken-theme-forms.css +13 -10
  766. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  767. package/style/themes/theme-ui/ui-theme-basis.css +1 -1
  768. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  769. package/style/themes/theme-ui/ui-theme-components.css +59 -45
  770. package/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  771. package/style/themes/theme-ui/ui-theme-elements.css +1 -1
  772. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  773. package/style/themes/theme-ui/ui-theme-extensions.css +13 -10
  774. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  775. package/style/themes/theme-ui/ui-theme-forms.css +13 -10
  776. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  777. package/style/themes/theme-ui/ui-theme-tags.css +1 -1
  778. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  779. package/umd/dnb-ui-basis.min.js +1 -1
  780. package/umd/dnb-ui-components.min.js +1 -1
  781. package/umd/dnb-ui-elements.min.js +1 -1
  782. package/umd/dnb-ui-extensions.min.js +5 -5
  783. package/umd/dnb-ui-lib.min.js +1 -1
  784. package/cjs/shared/helpers/useUnmountEffect.d.ts +0 -4
  785. package/cjs/shared/helpers/useUnmountEffect.js +0 -14
  786. package/cjs/shared/helpers/useUnmountEffect.js.map +0 -1
  787. package/es/shared/helpers/useUnmountEffect.d.ts +0 -4
  788. package/es/shared/helpers/useUnmountEffect.js +0 -9
  789. package/es/shared/helpers/useUnmountEffect.js.map +0 -1
  790. package/shared/helpers/useUnmountEffect.d.ts +0 -4
  791. package/shared/helpers/useUnmountEffect.js +0 -9
  792. package/shared/helpers/useUnmountEffect.js.map +0 -1
@@ -1 +1 @@
1
- :root{--forms-field-width--small:5rem;--forms-field-width--medium:11rem;--forms-field-width--large:21rem}@media screen and (max-width:15em){.dnb-forms-field-number .dnb-input__shell,.dnb-forms-field-string .dnb-input__shell{width:90%}}fieldset.dnb-forms-field-block{border:none;padding:0}fieldset.dnb-forms-field-block:not([class*=space__top]){margin-top:0}fieldset.dnb-forms-field-block:not([class*=space__right]){margin-right:0}fieldset.dnb-forms-field-block:not([class*=space__bottom]){margin-bottom:0}fieldset.dnb-forms-field-block:not([class*=space__left]){margin-left:0}.dnb-forms-field-block__grid{display:grid}@media screen and (max-width:40em){.dnb-forms-field-block--layout-vertical .dnb-forms-field-block__grid{flex-wrap:wrap}.dnb-forms-field-block--layout-vertical .dnb-forms-field-block__grid>.dnb-form-label{margin-bottom:.5rem;margin-top:.5rem}}.dnb-forms-field-block--layout-vertical{grid-template-areas:"label" "contents" "status";grid-template-columns:auto}.dnb-forms-field-block--layout-horizontal{grid-template-areas:"label contents" "status status";grid-template-columns:fit-content(100%) auto}.dnb-forms-field-block--width-stretch{flex-grow:1}@media screen and (min-width:25em){.dnb-forms-field-block--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block__label{align-items:center;display:flex;flex-flow:row;grid-area:label;justify-content:space-between}.dnb-forms-field-block__label-description{margin-left:.3em}.dnb-forms-field-block__status{grid-area:status}.dnb-forms-field-block__status .dnb-form-status__shell{margin-top:.5rem}@media screen and (max-width:15em){.dnb-forms-field-block__status{width:90%}}.dnb-forms-field-block__contents{grid-area:contents;width:100%}.dnb-forms-field-block__contents--width-stretch{width:100%}@media screen and (min-width:25em){.dnb-forms-field-block__contents--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block__contents--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block__contents--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block__contents__composition--vertical{display:flex;flex-flow:column;row-gap:var(--spacing-small)}.dnb-forms-field-block__contents__composition--horizontal{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row}@media screen and (min-width:25em){.dnb-forms-field-block__contents__composition--horizontal{align-items:flex-end}.dnb-forms-field-block__contents__composition--horizontal[class*=align-center]{align-items:center}}@media screen and (max-width:25em){.dnb-forms-field-block__contents__composition--horizontal{flex-flow:column;row-gap:var(--spacing-x-small)}}
1
+ :root{--forms-field-width--small:5rem;--forms-field-width--medium:11rem;--forms-field-width--large:21rem}@media screen and (max-width:15em){.dnb-forms-field-number .dnb-input__shell,.dnb-forms-field-string .dnb-input__shell{width:90%}}fieldset.dnb-forms-field-block{border:none;padding:0}fieldset.dnb-forms-field-block:not([class*=space__top]){margin-top:0}fieldset.dnb-forms-field-block:not([class*=space__right]){margin-right:0}fieldset.dnb-forms-field-block:not([class*=space__bottom]){margin-bottom:0}fieldset.dnb-forms-field-block:not([class*=space__left]){margin-left:0}.dnb-forms-field-block__grid{display:grid}@media screen and (max-width:40em){.dnb-forms-field-block--layout-vertical .dnb-forms-field-block__grid{flex-wrap:wrap}.dnb-forms-field-block--layout-vertical .dnb-forms-field-block__grid>.dnb-form-label{margin-bottom:.5rem;margin-top:.5rem}}.dnb-forms-field-block--layout-vertical{grid-template-areas:"label" "contents" "status";grid-template-columns:auto}.dnb-forms-field-block--layout-horizontal{grid-template-areas:"label contents" "status status";grid-template-columns:fit-content(100%) auto}.dnb-forms-field-block--width-stretch{flex-grow:1}@media screen and (min-width:25.0625em){.dnb-forms-field-block--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block__label{align-items:center;display:flex;flex-flow:row;grid-area:label;justify-content:space-between}.dnb-forms-field-block__label-description{margin-left:.3em}.dnb-forms-field-block__status{grid-area:status}.dnb-forms-field-block__status .dnb-form-status__shell{margin-top:.5rem}@media screen and (max-width:15em){.dnb-forms-field-block__status{width:90%}}.dnb-forms-field-block__contents{grid-area:contents;width:100%}.dnb-forms-field-block__contents--width-stretch{width:100%}@media screen and (min-width:25.0625em){.dnb-forms-field-block__contents--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block__contents--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block__contents--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block__contents__composition--vertical{display:flex;flex-flow:column;row-gap:var(--spacing-small)}.dnb-forms-field-block__contents__composition--horizontal{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row}@media screen and (min-width:25.0625em){.dnb-forms-field-block__contents__composition--horizontal{align-items:flex-end}.dnb-forms-field-block__contents__composition--horizontal[class*=align-center]{align-items:center}}@media screen and (max-width:25em){.dnb-forms-field-block__contents__composition--horizontal{flex-flow:column;row-gap:var(--spacing-x-small)}}
@@ -16,7 +16,7 @@
16
16
  .dnb-card + .dnb-button--primary:not([class*=space__top]) .dnb-button[class*=space__top] {
17
17
  margin-top: 0;
18
18
  }
19
- @media screen and (min-width: 40em) {
19
+ @media screen and (min-width: 40.0625em) {
20
20
  .dnb-card + .dnb-forms-button-row:not([class*=space__left]),
21
21
  .dnb-card + .dnb-button--primary:not([class*=space__left]) {
22
22
  margin-left: var(--spacing-medium);
@@ -1 +1 @@
1
- .dnb-forms-button-row{display:flex;flex-flow:row;flex-wrap:wrap;gap:var(--spacing-small)}.dnb-card+.dnb-button--primary:not([class*=space__top]),.dnb-card+.dnb-forms-button-row:not([class*=space__top]){margin-top:var(--spacing-small)}.dnb-card+.dnb-button--primary:not([class*=space__top]) .dnb-button[class*=space__top],.dnb-card+.dnb-forms-button-row:not([class*=space__top]) .dnb-button[class*=space__top]{margin-top:0}@media screen and (min-width:40em){.dnb-card+.dnb-button--primary:not([class*=space__left]),.dnb-card+.dnb-forms-button-row:not([class*=space__left]){margin-left:var(--spacing-medium)}}
1
+ .dnb-forms-button-row{display:flex;flex-flow:row;flex-wrap:wrap;gap:var(--spacing-small)}.dnb-card+.dnb-button--primary:not([class*=space__top]),.dnb-card+.dnb-forms-button-row:not([class*=space__top]){margin-top:var(--spacing-small)}.dnb-card+.dnb-button--primary:not([class*=space__top]) .dnb-button[class*=space__top],.dnb-card+.dnb-forms-button-row:not([class*=space__top]) .dnb-button[class*=space__top]{margin-top:0}@media screen and (min-width:40.0625em){.dnb-card+.dnb-button--primary:not([class*=space__left]),.dnb-card+.dnb-forms-button-row:not([class*=space__left]){margin-left:var(--spacing-medium)}}
@@ -7,4 +7,4 @@ export type Props = Omit<ElementAllProps, 'data' | 'as' | 'autoComplete'> & {
7
7
  */
8
8
  autoComplete?: boolean;
9
9
  };
10
- export default function FormHandler<Data extends JsonObject>({ children, defaultData, data, schema, ajvInstance, errorMessages, globalStatusId, filterSubmitData, filterData, transformIn, onChange, onPathChange, onSubmit, onSubmitRequest, onSubmitComplete, onClear, minimumAsyncBehaviorTime, asyncSubmitTimeout, scrollTopOnSubmit, sessionStorageId, autoComplete, locale, translations, disabled, required, ...rest }: ProviderProps<Data> & Omit<Props, keyof ProviderProps<Data>>): import("react/jsx-runtime").JSX.Element;
10
+ export default function FormHandler<Data extends JsonObject>({ children, defaultData, data, schema, ajvInstance, errorMessages, globalStatusId, filterSubmitData, transformIn, onChange, onPathChange, onSubmit, onSubmitRequest, onSubmitComplete, onClear, minimumAsyncBehaviorTime, asyncSubmitTimeout, scrollTopOnSubmit, sessionStorageId, autoComplete, locale, translations, disabled, required, ...rest }: ProviderProps<Data> & Omit<Props, keyof ProviderProps<Data>>): import("react/jsx-runtime").JSX.Element;
@@ -2,7 +2,7 @@
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
- const _excluded = ["children", "defaultData", "data", "schema", "ajvInstance", "errorMessages", "globalStatusId", "filterSubmitData", "filterData", "transformIn", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "onSubmitComplete", "onClear", "minimumAsyncBehaviorTime", "asyncSubmitTimeout", "scrollTopOnSubmit", "sessionStorageId", "autoComplete", "locale", "translations", "disabled", "required"],
5
+ const _excluded = ["children", "defaultData", "data", "schema", "ajvInstance", "errorMessages", "globalStatusId", "filterSubmitData", "transformIn", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "onSubmitComplete", "onClear", "minimumAsyncBehaviorTime", "asyncSubmitTimeout", "scrollTopOnSubmit", "sessionStorageId", "autoComplete", "locale", "translations", "disabled", "required"],
6
6
  _excluded2 = ["children"];
7
7
  import React, { useContext } from 'react';
8
8
  import DataContextProvider from '../../DataContext/Provider';
@@ -21,7 +21,6 @@ export default function FormHandler(_ref) {
21
21
  errorMessages,
22
22
  globalStatusId,
23
23
  filterSubmitData,
24
- filterData,
25
24
  transformIn,
26
25
  onChange,
27
26
  onPathChange,
@@ -49,7 +48,6 @@ export default function FormHandler(_ref) {
49
48
  errorMessages,
50
49
  globalStatusId,
51
50
  filterSubmitData,
52
- filterData,
53
51
  transformIn,
54
52
  onChange,
55
53
  onPathChange,
@@ -1 +1 @@
1
- {"version":3,"file":"Handler.js","names":["React","useContext","DataContextProvider","DataContext","FormElement","FormStatus","useId","combineLabelledBy","FormHandler","_ref","children","defaultData","data","schema","ajvInstance","errorMessages","globalStatusId","filterSubmitData","filterData","transformIn","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onClear","minimumAsyncBehaviorTime","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","autoComplete","locale","translations","disabled","required","rest","_objectWithoutProperties","_excluded","providerProps","id","createElement","FormElementWithState","_ref2","_excluded2","submitState","states","Object","entries","filter","value","_extends","map","key","undefined","state","className","show","Boolean","no_animation","shellSpace","top","bottom","String"],"sources":["../../../../../../src/extensions/forms/Form/Handler/Handler.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport { JsonObject } from 'json-pointer'\nimport DataContextProvider, {\n Props as ProviderProps,\n} from '../../DataContext/Provider'\nimport DataContext from '../../DataContext/Context'\nimport FormElement from '../Element'\nimport type { ElementAllProps } from '../../../../elements/Element'\nimport FormStatus from '../../../../components/FormStatus'\nimport useId from '../../../../shared/helpers/useId'\nimport { combineLabelledBy } from '../../../../shared/component-helper'\n\nexport type Props = Omit<\n ElementAllProps,\n 'data' | 'as' | 'autoComplete'\n> & {\n /**\n * Will enable autoComplete for all nested Field.String fields\n */\n autoComplete?: boolean\n}\n\nexport default function FormHandler<Data extends JsonObject>({\n children,\n defaultData,\n data,\n schema,\n ajvInstance,\n errorMessages,\n globalStatusId,\n filterSubmitData,\n filterData,\n transformIn,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onClear,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n scrollTopOnSubmit,\n sessionStorageId,\n autoComplete,\n locale,\n translations,\n disabled,\n required,\n ...rest\n}: ProviderProps<Data> & Omit<Props, keyof ProviderProps<Data>>) {\n const providerProps = {\n id: rest.id,\n defaultData,\n data,\n schema,\n ajvInstance,\n errorMessages,\n globalStatusId,\n filterSubmitData,\n filterData,\n transformIn,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onClear,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n scrollTopOnSubmit,\n sessionStorageId,\n autoComplete,\n locale,\n translations,\n disabled,\n required,\n }\n\n return (\n <DataContextProvider {...providerProps}>\n <FormElementWithState {...rest}>{children}</FormElementWithState>\n </DataContextProvider>\n )\n}\n\nfunction FormElementWithState({ children, ...rest }) {\n const id = useId()\n const { submitState } = useContext(DataContext) || {}\n const states = Object.entries(submitState || {}).filter(\n ([, value]) => value\n )\n\n return (\n <FormElement\n {...rest}\n aria-labelledby={\n combineLabelledBy(\n rest,\n states.map(([key]) => {\n return `${id}-form-status-${key}`\n })\n ) || undefined\n }\n >\n {children}\n\n {['error', 'warning', 'info'].map((key) => {\n const value = submitState?.[key]\n return (\n <FormStatus\n key={key}\n state={key}\n id={`${id}-form-status-${key}`}\n className=\"dnb-forms-status\"\n show={Boolean(value)}\n no_animation={false}\n shellSpace={{ top: 'small', bottom: 'medium' }}\n >\n {String(value?.['message'] || value || '')}\n </FormStatus>\n )\n })}\n </FormElement>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Handler.js","names":["React","useContext","DataContextProvider","DataContext","FormElement","FormStatus","useId","combineLabelledBy","FormHandler","_ref","children","defaultData","data","schema","ajvInstance","errorMessages","globalStatusId","filterSubmitData","transformIn","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onClear","minimumAsyncBehaviorTime","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","autoComplete","locale","translations","disabled","required","rest","_objectWithoutProperties","_excluded","providerProps","id","createElement","FormElementWithState","_ref2","_excluded2","submitState","states","Object","entries","filter","value","_extends","map","key","undefined","state","className","show","Boolean","no_animation","shellSpace","top","bottom","String"],"sources":["../../../../../../src/extensions/forms/Form/Handler/Handler.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport { JsonObject } from 'json-pointer'\nimport DataContextProvider, {\n Props as ProviderProps,\n} from '../../DataContext/Provider'\nimport DataContext from '../../DataContext/Context'\nimport FormElement from '../Element'\nimport type { ElementAllProps } from '../../../../elements/Element'\nimport FormStatus from '../../../../components/FormStatus'\nimport useId from '../../../../shared/helpers/useId'\nimport { combineLabelledBy } from '../../../../shared/component-helper'\n\nexport type Props = Omit<\n ElementAllProps,\n 'data' | 'as' | 'autoComplete'\n> & {\n /**\n * Will enable autoComplete for all nested Field.String fields\n */\n autoComplete?: boolean\n}\n\nexport default function FormHandler<Data extends JsonObject>({\n children,\n defaultData,\n data,\n schema,\n ajvInstance,\n errorMessages,\n globalStatusId,\n filterSubmitData,\n transformIn,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onClear,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n scrollTopOnSubmit,\n sessionStorageId,\n autoComplete,\n locale,\n translations,\n disabled,\n required,\n ...rest\n}: ProviderProps<Data> & Omit<Props, keyof ProviderProps<Data>>) {\n const providerProps = {\n id: rest.id,\n defaultData,\n data,\n schema,\n ajvInstance,\n errorMessages,\n globalStatusId,\n filterSubmitData,\n transformIn,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onClear,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n scrollTopOnSubmit,\n sessionStorageId,\n autoComplete,\n locale,\n translations,\n disabled,\n required,\n }\n\n return (\n <DataContextProvider {...providerProps}>\n <FormElementWithState {...rest}>{children}</FormElementWithState>\n </DataContextProvider>\n )\n}\n\nfunction FormElementWithState({ children, ...rest }) {\n const id = useId()\n const { submitState } = useContext(DataContext) || {}\n const states = Object.entries(submitState || {}).filter(\n ([, value]) => value\n )\n\n return (\n <FormElement\n {...rest}\n aria-labelledby={\n combineLabelledBy(\n rest,\n states.map(([key]) => {\n return `${id}-form-status-${key}`\n })\n ) || undefined\n }\n >\n {children}\n\n {['error', 'warning', 'info'].map((key) => {\n const value = submitState?.[key]\n return (\n <FormStatus\n key={key}\n state={key}\n id={`${id}-form-status-${key}`}\n className=\"dnb-forms-status\"\n show={Boolean(value)}\n no_animation={false}\n shellSpace={{ top: 'small', bottom: 'medium' }}\n >\n {String(value?.['message'] || value || '')}\n </FormStatus>\n )\n })}\n </FormElement>\n )\n}\n"],"mappings":"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"}
@@ -27,7 +27,7 @@ export type IsolationProviderProps<Data> = {
27
27
  */
28
28
  isolate?: boolean;
29
29
  };
30
- export type IsolationProps<Data> = Omit<ProviderProps<Data>, 'onSubmit' | 'onSubmitRequest' | 'onSubmitComplete' | 'minimumAsyncBehaviorTime' | 'asyncSubmitTimeout' | 'scrollTopOnSubmit' | 'sessionStorageId' | 'filterSubmitData' | 'globalStatusId'> & {
30
+ export type IsolationProps<Data> = Omit<ProviderProps<Data>, 'onSubmit' | 'onSubmitRequest' | 'onSubmitComplete' | 'minimumAsyncBehaviorTime' | 'asyncSubmitTimeout' | 'scrollTopOnSubmit' | 'sessionStorageId' | 'globalStatusId'> & {
31
31
  /**
32
32
  * A ref (function) that you can call in order to commit the data programmatically to the outer context.
33
33
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Isolation.js","names":["React","useCallback","useContext","useEffect","useMemo","useReducer","useRef","pointer","extendDeep","useDataValue","Context","Provider","SectionContext","IsolationCommitButton","clearedData","structuredClone","IsolationProvider","props","children","onPathChange","onCommit","onCommitProp","onClear","onClearProp","transformOnCommit","transformOnCommitProp","commitHandleRef","data","defaultData","forceUpdate","internalDataRef","localDataRef","dataContextRef","outerContext","path","pathSection","handlePathChange","handlePathChangeOuter","dataOuter","moveValueToPath","onPathChangeHandler","value","current","set","replace","removeSectionPath","has","get","getMountedData","_dataContextRef$curre","mounterData","mountedFieldPathsRef","forEach","localData","Object","assign","additionalArgs","_props$path","mountedData","outerData","isolatedData","providerProps","_objectSpread","undefined","isolate","createElement","Consumer","dataContext","handleSubmit","CommitButton","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/Isolation.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { extendDeep } from '../../../../shared/component-helper'\nimport useDataValue from '../../hooks/useDataValue'\nimport { Context, ContextState, Provider } from '../../DataContext'\nimport SectionContext from '../Section/SectionContext'\nimport IsolationCommitButton from './IsolationCommitButton'\nimport {\n clearedData,\n type Props as ProviderProps,\n} from '../../DataContext/Provider'\nimport type { OnCommit, Path } from '../../types'\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\nexport type IsolationProviderProps<Data> = {\n /**\n * Form.Isolation: Will be called when the isolated context is committed.\n */\n onCommit?: OnCommit<Data>\n /**\n * Form.Isolation: Will be called when the form is cleared via Form.clearData\n */\n onClear?: () => void\n /**\n * Form.Isolation: A function that will be called when the isolated context is committed.\n * It will receive the data from the isolated context and the data from the outer context.\n * You can use this to transform the data before it is committed.\n */\n transformOnCommit?: (isolatedData: Data, handlerData: Data) => Data\n /**\n * Used internally by the Form.Isolation component\n */\n path?: Path\n /**\n * Used internally by the Form.Isolation component\n */\n isolate?: boolean\n}\n\nexport type IsolationProps<Data> = Omit<\n ProviderProps<Data>,\n | 'onSubmit'\n | 'onSubmitRequest'\n | 'onSubmitComplete'\n | 'minimumAsyncBehaviorTime'\n | 'asyncSubmitTimeout'\n | 'scrollTopOnSubmit'\n | 'sessionStorageId'\n | 'filterSubmitData'\n | 'globalStatusId'\n> & {\n /**\n * A ref (function) that you can call in order to commit the data programmatically to the outer context.\n */\n commitHandleRef?: React.MutableRefObject<() => void>\n}\n\nfunction IsolationProvider<Data extends JsonObject>(\n props: IsolationProps<Data>\n) {\n const {\n children,\n onPathChange,\n onCommit: onCommitProp,\n onClear: onClearProp,\n transformOnCommit: transformOnCommitProp,\n commitHandleRef,\n data,\n defaultData,\n } = props\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const internalDataRef = useRef<Data>()\n const localDataRef = useRef<Partial<Data>>({})\n const dataContextRef = useRef<ContextState>(null)\n const outerContext = useContext(Context)\n const { path: pathSection } = useContext(SectionContext) || {}\n const { handlePathChange: handlePathChangeOuter, data: dataOuter } =\n outerContext || {}\n const { moveValueToPath } = useDataValue()\n\n const onPathChangeHandler = useCallback(\n async (path: Path, value: unknown) => {\n if (localDataRef.current === clearedData) {\n localDataRef.current = {}\n }\n\n pointer.set(localDataRef.current, path, value)\n\n if (pathSection) {\n path = path.replace(pathSection, '')\n }\n\n return await onPathChange?.(path, value)\n },\n [onPathChange, pathSection]\n )\n\n const removeSectionPath = useCallback(\n (data: Data) => {\n return pathSection && pointer.has(data, pathSection)\n ? pointer.get(data, pathSection)\n : data\n },\n [pathSection]\n )\n\n const getMountedData = useCallback((data: Data) => {\n const mounterData = {} as Data\n dataContextRef.current?.mountedFieldPathsRef.current.forEach(\n (path) => {\n if (pointer.has(data, path)) {\n pointer.set(mounterData, path, pointer.get(data, path))\n }\n }\n )\n return mounterData\n }, [])\n\n useEffect(() => {\n localDataRef.current = getMountedData(internalDataRef.current)\n }, [getMountedData])\n\n // Update the isolated data with the outside context data\n useMemo(() => {\n if (localDataRef.current === clearedData) {\n return // stop here\n }\n\n let localData = data ?? defaultData\n\n if (\n localData &&\n pathSection &&\n !pointer.has(localDataRef.current, pathSection)\n ) {\n localData = moveValueToPath<Data>(pathSection, localData)\n }\n\n internalDataRef.current = Object.assign(\n {},\n localData || dataOuter || {},\n localDataRef.current\n )\n }, [data, defaultData, pathSection, dataOuter, moveValueToPath])\n\n const onCommit: IsolationProps<Data>['onCommit'] = useCallback(\n async (data: Data, additionalArgs) => {\n const mountedData = getMountedData(data)\n const path = props.path ?? '/'\n const outerData =\n props.path && pointer.has(dataOuter, path)\n ? pointer.get(dataOuter, path)\n : dataOuter\n\n localDataRef.current = mountedData\n let isolatedData = structuredClone(mountedData) as Data\n\n if (typeof transformOnCommitProp === 'function') {\n isolatedData = transformOnCommitProp(isolatedData, outerData)\n }\n\n // Commit the internal data to the nested context data\n handlePathChangeOuter?.(\n path,\n extendDeep({}, outerData, isolatedData)\n )\n\n return await onCommitProp?.(\n removeSectionPath(isolatedData),\n additionalArgs\n )\n },\n [\n getMountedData,\n props.path,\n dataOuter,\n transformOnCommitProp,\n handlePathChangeOuter,\n onCommitProp,\n removeSectionPath,\n ]\n )\n\n const onClear = useCallback(() => {\n localDataRef.current = clearedData\n internalDataRef.current = clearedData as Data\n forceUpdate()\n onClearProp?.()\n }, [onClearProp])\n\n const providerProps: IsolationProps<Data> = {\n ...props,\n data: internalDataRef.current,\n defaultData: undefined,\n onPathChange: onPathChangeHandler,\n onCommit,\n onClear,\n isolate: true,\n }\n\n return (\n <Provider {...providerProps}>\n <Context.Consumer>\n {(dataContext) => {\n dataContextRef.current = dataContext\n\n if (commitHandleRef) {\n commitHandleRef.current = dataContext?.handleSubmit\n }\n\n return children\n }}\n </Context.Consumer>\n </Provider>\n )\n}\n\nIsolationProvider.CommitButton = IsolationCommitButton\nIsolationProvider._supportsSpacingProps = undefined\n\nexport default IsolationProvider\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IACVC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,UAAU,EACVC,MAAM,QACD,OAAO;AACd,OAAOC,OAAO,MAAsB,cAAc;AAClD,SAASC,UAAU,QAAQ,qCAAqC;AAChE,OAAOC,YAAY,MAAM,0BAA0B;AACnD,SAASC,OAAO,EAAgBC,QAAQ,QAAQ,mBAAmB;AACnE,OAAOC,cAAc,MAAM,2BAA2B;AACtD,OAAOC,qBAAqB,MAAM,yBAAyB;AAC3D,SACEC,WAAW,QAEN,4BAA4B;AAOnC,OAAOC,eAAe,MAAM,yBAAyB;AA6CrD,SAASC,iBAAiBA,CACxBC,KAA2B,EAC3B;EACA,MAAM;IACJC,QAAQ;IACRC,YAAY;IACZC,QAAQ,EAAEC,YAAY;IACtBC,OAAO,EAAEC,WAAW;IACpBC,iBAAiB,EAAEC,qBAAqB;IACxCC,eAAe;IACfC,IAAI;IACJC;EACF,CAAC,GAAGX,KAAK;EAET,MAAM,GAAGY,WAAW,CAAC,GAAGxB,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClD,MAAMyB,eAAe,GAAGxB,MAAM,CAAO,CAAC;EACtC,MAAMyB,YAAY,GAAGzB,MAAM,CAAgB,CAAC,CAAC,CAAC;EAC9C,MAAM0B,cAAc,GAAG1B,MAAM,CAAe,IAAI,CAAC;EACjD,MAAM2B,YAAY,GAAG/B,UAAU,CAACQ,OAAO,CAAC;EACxC,MAAM;IAAEwB,IAAI,EAAEC;EAAY,CAAC,GAAGjC,UAAU,CAACU,cAAc,CAAC,IAAI,CAAC,CAAC;EAC9D,MAAM;IAAEwB,gBAAgB,EAAEC,qBAAqB;IAAEV,IAAI,EAAEW;EAAU,CAAC,GAChEL,YAAY,IAAI,CAAC,CAAC;EACpB,MAAM;IAAEM;EAAgB,CAAC,GAAG9B,YAAY,CAAC,CAAC;EAE1C,MAAM+B,mBAAmB,GAAGvC,WAAW,CACrC,OAAOiC,IAAU,EAAEO,KAAc,KAAK;IACpC,IAAIV,YAAY,CAACW,OAAO,KAAK5B,WAAW,EAAE;MACxCiB,YAAY,CAACW,OAAO,GAAG,CAAC,CAAC;IAC3B;IAEAnC,OAAO,CAACoC,GAAG,CAACZ,YAAY,CAACW,OAAO,EAAER,IAAI,EAAEO,KAAK,CAAC;IAE9C,IAAIN,WAAW,EAAE;MACfD,IAAI,GAAGA,IAAI,CAACU,OAAO,CAACT,WAAW,EAAE,EAAE,CAAC;IACtC;IAEA,OAAO,OAAMhB,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGe,IAAI,EAAEO,KAAK,CAAC;EAC1C,CAAC,EACD,CAACtB,YAAY,EAAEgB,WAAW,CAC5B,CAAC;EAED,MAAMU,iBAAiB,GAAG5C,WAAW,CAClC0B,IAAU,IAAK;IACd,OAAOQ,WAAW,IAAI5B,OAAO,CAACuC,GAAG,CAACnB,IAAI,EAAEQ,WAAW,CAAC,GAChD5B,OAAO,CAACwC,GAAG,CAACpB,IAAI,EAAEQ,WAAW,CAAC,GAC9BR,IAAI;EACV,CAAC,EACD,CAACQ,WAAW,CACd,CAAC;EAED,MAAMa,cAAc,GAAG/C,WAAW,CAAE0B,IAAU,IAAK;IAAA,IAAAsB,qBAAA;IACjD,MAAMC,WAAW,GAAG,CAAC,CAAS;IAC9B,CAAAD,qBAAA,GAAAjB,cAAc,CAACU,OAAO,cAAAO,qBAAA,uBAAtBA,qBAAA,CAAwBE,oBAAoB,CAACT,OAAO,CAACU,OAAO,CACzDlB,IAAI,IAAK;MACR,IAAI3B,OAAO,CAACuC,GAAG,CAACnB,IAAI,EAAEO,IAAI,CAAC,EAAE;QAC3B3B,OAAO,CAACoC,GAAG,CAACO,WAAW,EAAEhB,IAAI,EAAE3B,OAAO,CAACwC,GAAG,CAACpB,IAAI,EAAEO,IAAI,CAAC,CAAC;MACzD;IACF,CACF,CAAC;IACD,OAAOgB,WAAW;EACpB,CAAC,EAAE,EAAE,CAAC;EAEN/C,SAAS,CAAC,MAAM;IACd4B,YAAY,CAACW,OAAO,GAAGM,cAAc,CAAClB,eAAe,CAACY,OAAO,CAAC;EAChE,CAAC,EAAE,CAACM,cAAc,CAAC,CAAC;EAGpB5C,OAAO,CAAC,MAAM;IACZ,IAAI2B,YAAY,CAACW,OAAO,KAAK5B,WAAW,EAAE;MACxC;IACF;IAEA,IAAIuC,SAAS,GAAG1B,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAIC,WAAW;IAEnC,IACEyB,SAAS,IACTlB,WAAW,IACX,CAAC5B,OAAO,CAACuC,GAAG,CAACf,YAAY,CAACW,OAAO,EAAEP,WAAW,CAAC,EAC/C;MACAkB,SAAS,GAAGd,eAAe,CAAOJ,WAAW,EAAEkB,SAAS,CAAC;IAC3D;IAEAvB,eAAe,CAACY,OAAO,GAAGY,MAAM,CAACC,MAAM,CACrC,CAAC,CAAC,EACFF,SAAS,IAAIf,SAAS,IAAI,CAAC,CAAC,EAC5BP,YAAY,CAACW,OACf,CAAC;EACH,CAAC,EAAE,CAACf,IAAI,EAAEC,WAAW,EAAEO,WAAW,EAAEG,SAAS,EAAEC,eAAe,CAAC,CAAC;EAEhE,MAAMnB,QAA0C,GAAGnB,WAAW,CAC5D,OAAO0B,IAAU,EAAE6B,cAAc,KAAK;IAAA,IAAAC,WAAA;IACpC,MAAMC,WAAW,GAAGV,cAAc,CAACrB,IAAI,CAAC;IACxC,MAAMO,IAAI,IAAAuB,WAAA,GAAGxC,KAAK,CAACiB,IAAI,cAAAuB,WAAA,cAAAA,WAAA,GAAI,GAAG;IAC9B,MAAME,SAAS,GACb1C,KAAK,CAACiB,IAAI,IAAI3B,OAAO,CAACuC,GAAG,CAACR,SAAS,EAAEJ,IAAI,CAAC,GACtC3B,OAAO,CAACwC,GAAG,CAACT,SAAS,EAAEJ,IAAI,CAAC,GAC5BI,SAAS;IAEfP,YAAY,CAACW,OAAO,GAAGgB,WAAW;IAClC,IAAIE,YAAY,GAAG7C,eAAe,CAAC2C,WAAW,CAAS;IAEvD,IAAI,OAAOjC,qBAAqB,KAAK,UAAU,EAAE;MAC/CmC,YAAY,GAAGnC,qBAAqB,CAACmC,YAAY,EAAED,SAAS,CAAC;IAC/D;IAGAtB,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CACnBH,IAAI,EACJ1B,UAAU,CAAC,CAAC,CAAC,EAAEmD,SAAS,EAAEC,YAAY,CACxC,CAAC;IAED,OAAO,OAAMvC,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CACvBwB,iBAAiB,CAACe,YAAY,CAAC,EAC/BJ,cACF,CAAC;EACH,CAAC,EACD,CACER,cAAc,EACd/B,KAAK,CAACiB,IAAI,EACVI,SAAS,EACTb,qBAAqB,EACrBY,qBAAqB,EACrBhB,YAAY,EACZwB,iBAAiB,CAErB,CAAC;EAED,MAAMvB,OAAO,GAAGrB,WAAW,CAAC,MAAM;IAChC8B,YAAY,CAACW,OAAO,GAAG5B,WAAW;IAClCgB,eAAe,CAACY,OAAO,GAAG5B,WAAmB;IAC7Ce,WAAW,CAAC,CAAC;IACbN,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAG,CAAC;EACjB,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAEjB,MAAMsC,aAAmC,GAAAC,aAAA,CAAAA,aAAA,KACpC7C,KAAK;IACRU,IAAI,EAAEG,eAAe,CAACY,OAAO;IAC7Bd,WAAW,EAAEmC,SAAS;IACtB5C,YAAY,EAAEqB,mBAAmB;IACjCpB,QAAQ;IACRE,OAAO;IACP0C,OAAO,EAAE;EAAI,EACd;EAED,OACEhE,KAAA,CAAAiE,aAAA,CAACtD,QAAQ,EAAKkD,aAAa,EACzB7D,KAAA,CAAAiE,aAAA,CAACvD,OAAO,CAACwD,QAAQ,QACbC,WAAW,IAAK;IAChBnC,cAAc,CAACU,OAAO,GAAGyB,WAAW;IAEpC,IAAIzC,eAAe,EAAE;MACnBA,eAAe,CAACgB,OAAO,GAAGyB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEC,YAAY;IACrD;IAEA,OAAOlD,QAAQ;EACjB,CACgB,CACV,CAAC;AAEf;AAEAF,iBAAiB,CAACqD,YAAY,GAAGxD,qBAAqB;AACtDG,iBAAiB,CAACsD,qBAAqB,GAAGP,SAAS;AAEnD,eAAe/C,iBAAiB"}
1
+ {"version":3,"file":"Isolation.js","names":["React","useCallback","useContext","useEffect","useMemo","useReducer","useRef","pointer","extendDeep","useDataValue","Context","Provider","SectionContext","IsolationCommitButton","clearedData","structuredClone","IsolationProvider","props","children","onPathChange","onCommit","onCommitProp","onClear","onClearProp","transformOnCommit","transformOnCommitProp","commitHandleRef","data","defaultData","forceUpdate","internalDataRef","localDataRef","dataContextRef","outerContext","path","pathSection","handlePathChange","handlePathChangeOuter","dataOuter","moveValueToPath","onPathChangeHandler","value","current","set","replace","removeSectionPath","has","get","getMountedData","_dataContextRef$curre","mounterData","mountedFieldPathsRef","forEach","localData","Object","assign","additionalArgs","_props$path","mountedData","outerData","isolatedData","providerProps","_objectSpread","undefined","isolate","createElement","Consumer","dataContext","handleSubmit","CommitButton","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/Isolation.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { extendDeep } from '../../../../shared/component-helper'\nimport useDataValue from '../../hooks/useDataValue'\nimport { Context, ContextState, Provider } from '../../DataContext'\nimport SectionContext from '../Section/SectionContext'\nimport IsolationCommitButton from './IsolationCommitButton'\nimport {\n clearedData,\n type Props as ProviderProps,\n} from '../../DataContext/Provider'\nimport type { OnCommit, Path } from '../../types'\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\nexport type IsolationProviderProps<Data> = {\n /**\n * Form.Isolation: Will be called when the isolated context is committed.\n */\n onCommit?: OnCommit<Data>\n /**\n * Form.Isolation: Will be called when the form is cleared via Form.clearData\n */\n onClear?: () => void\n /**\n * Form.Isolation: A function that will be called when the isolated context is committed.\n * It will receive the data from the isolated context and the data from the outer context.\n * You can use this to transform the data before it is committed.\n */\n transformOnCommit?: (isolatedData: Data, handlerData: Data) => Data\n /**\n * Used internally by the Form.Isolation component\n */\n path?: Path\n /**\n * Used internally by the Form.Isolation component\n */\n isolate?: boolean\n}\n\nexport type IsolationProps<Data> = Omit<\n ProviderProps<Data>,\n | 'onSubmit'\n | 'onSubmitRequest'\n | 'onSubmitComplete'\n | 'minimumAsyncBehaviorTime'\n | 'asyncSubmitTimeout'\n | 'scrollTopOnSubmit'\n | 'sessionStorageId'\n | 'globalStatusId'\n> & {\n /**\n * A ref (function) that you can call in order to commit the data programmatically to the outer context.\n */\n commitHandleRef?: React.MutableRefObject<() => void>\n}\n\nfunction IsolationProvider<Data extends JsonObject>(\n props: IsolationProps<Data>\n) {\n const {\n children,\n onPathChange,\n onCommit: onCommitProp,\n onClear: onClearProp,\n transformOnCommit: transformOnCommitProp,\n commitHandleRef,\n data,\n defaultData,\n } = props\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const internalDataRef = useRef<Data>()\n const localDataRef = useRef<Partial<Data>>({})\n const dataContextRef = useRef<ContextState>(null)\n const outerContext = useContext(Context)\n const { path: pathSection } = useContext(SectionContext) || {}\n const { handlePathChange: handlePathChangeOuter, data: dataOuter } =\n outerContext || {}\n const { moveValueToPath } = useDataValue()\n\n const onPathChangeHandler = useCallback(\n async (path: Path, value: unknown) => {\n if (localDataRef.current === clearedData) {\n localDataRef.current = {}\n }\n\n pointer.set(localDataRef.current, path, value)\n\n if (pathSection) {\n path = path.replace(pathSection, '')\n }\n\n return await onPathChange?.(path, value)\n },\n [onPathChange, pathSection]\n )\n\n const removeSectionPath = useCallback(\n (data: Data) => {\n return pathSection && pointer.has(data, pathSection)\n ? pointer.get(data, pathSection)\n : data\n },\n [pathSection]\n )\n\n const getMountedData = useCallback((data: Data) => {\n const mounterData = {} as Data\n dataContextRef.current?.mountedFieldPathsRef.current.forEach(\n (path) => {\n if (pointer.has(data, path)) {\n pointer.set(mounterData, path, pointer.get(data, path))\n }\n }\n )\n return mounterData\n }, [])\n\n useEffect(() => {\n localDataRef.current = getMountedData(internalDataRef.current)\n }, [getMountedData])\n\n // Update the isolated data with the outside context data\n useMemo(() => {\n if (localDataRef.current === clearedData) {\n return // stop here\n }\n\n let localData = data ?? defaultData\n\n if (\n localData &&\n pathSection &&\n !pointer.has(localDataRef.current, pathSection)\n ) {\n localData = moveValueToPath<Data>(pathSection, localData)\n }\n\n internalDataRef.current = Object.assign(\n {},\n localData || dataOuter || {},\n localDataRef.current\n )\n }, [data, defaultData, pathSection, dataOuter, moveValueToPath])\n\n const onCommit: IsolationProps<Data>['onCommit'] = useCallback(\n async (data: Data, additionalArgs) => {\n const mountedData = getMountedData(data)\n const path = props.path ?? '/'\n const outerData =\n props.path && pointer.has(dataOuter, path)\n ? pointer.get(dataOuter, path)\n : dataOuter\n\n localDataRef.current = mountedData\n let isolatedData = structuredClone(mountedData) as Data\n\n if (typeof transformOnCommitProp === 'function') {\n isolatedData = transformOnCommitProp(isolatedData, outerData)\n }\n\n // Commit the internal data to the nested context data\n handlePathChangeOuter?.(\n path,\n extendDeep({}, outerData, isolatedData)\n )\n\n return await onCommitProp?.(\n removeSectionPath(isolatedData),\n additionalArgs\n )\n },\n [\n getMountedData,\n props.path,\n dataOuter,\n transformOnCommitProp,\n handlePathChangeOuter,\n onCommitProp,\n removeSectionPath,\n ]\n )\n\n const onClear = useCallback(() => {\n localDataRef.current = clearedData\n internalDataRef.current = clearedData as Data\n forceUpdate()\n onClearProp?.()\n }, [onClearProp])\n\n const providerProps: IsolationProps<Data> = {\n ...props,\n data: internalDataRef.current,\n defaultData: undefined,\n onPathChange: onPathChangeHandler,\n onCommit,\n onClear,\n isolate: true,\n }\n\n return (\n <Provider {...providerProps}>\n <Context.Consumer>\n {(dataContext) => {\n dataContextRef.current = dataContext\n\n if (commitHandleRef) {\n commitHandleRef.current = dataContext?.handleSubmit\n }\n\n return children\n }}\n </Context.Consumer>\n </Provider>\n )\n}\n\nIsolationProvider.CommitButton = IsolationCommitButton\nIsolationProvider._supportsSpacingProps = undefined\n\nexport default IsolationProvider\n"],"mappings":"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"}
@@ -23,7 +23,6 @@ export const IsolationProperties = _objectSpread(_objectSpread({
23
23
  asyncSubmitTimeout: undefined,
24
24
  scrollTopOnSubmit: undefined,
25
25
  sessionStorageId: undefined,
26
- filterSubmitData: undefined,
27
26
  globalStatusId: undefined
28
27
  });
29
28
  export const IsolationEvents = _objectSpread(_objectSpread({
@@ -1 +1 @@
1
- {"version":3,"file":"IsolationDocs.js","names":["ProviderEvents","ProviderProperties","IsolationProperties","_objectSpread","path","doc","type","status","transformOnCommit","commitHandleRef","minimumAsyncBehaviorTime","undefined","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","filterSubmitData","globalStatusId","IsolationEvents","onCommit","onSubmit","onSubmitRequest","onSubmitComplete"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/IsolationDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport {\n ProviderEvents,\n ProviderProperties,\n} from '../../DataContext/Provider/ProviderDocs'\n\nexport const IsolationProperties: PropertiesTableProps = {\n path: {\n doc: 'JSON Pointer to define the object key for all the generated nested field data.',\n type: 'string',\n status: 'optional',\n },\n transformOnCommit: {\n doc: 'Transform the data before it gets committed to the form. The first parameter is the isolated data object. The second parameter is the outer context data object (Form.Handler).',\n type: 'function',\n status: 'optional',\n },\n commitHandleRef: {\n doc: 'Provide a ref to a function that can be called from any location to commit the data to the form.',\n type: 'React.Ref',\n status: 'optional',\n },\n ...ProviderProperties,\n minimumAsyncBehaviorTime: undefined,\n asyncSubmitTimeout: undefined,\n scrollTopOnSubmit: undefined,\n sessionStorageId: undefined,\n filterSubmitData: undefined,\n globalStatusId: undefined,\n}\n\nexport const IsolationEvents: PropertiesTableProps = {\n onCommit: {\n doc: 'Will be called on a nested form context commit – if validation has passed. The first parameter is the committed data object. The second parameter is an object containing a method to clear the internal data `{ clearData }`.',\n type: 'function',\n status: 'optional',\n },\n ...ProviderEvents,\n onSubmit: undefined,\n onSubmitRequest: undefined,\n onSubmitComplete: undefined,\n}\n"],"mappings":";;;AACA,SACEA,cAAc,EACdC,kBAAkB,QACb,yCAAyC;AAEhD,OAAO,MAAMC,mBAAyC,GAAAC,aAAA,CAAAA,aAAA;EACpDC,IAAI,EAAE;IACJC,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,iBAAiB,EAAE;IACjBH,GAAG,EAAE,iLAAiL;IACtLC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDE,eAAe,EAAE;IACfJ,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,WAAW;IACjBC,MAAM,EAAE;EACV;AAAC,GACEN,kBAAkB;EACrBS,wBAAwB,EAAEC,SAAS;EACnCC,kBAAkB,EAAED,SAAS;EAC7BE,iBAAiB,EAAEF,SAAS;EAC5BG,gBAAgB,EAAEH,SAAS;EAC3BI,gBAAgB,EAAEJ,SAAS;EAC3BK,cAAc,EAAEL;AAAS,EAC1B;AAED,OAAO,MAAMM,eAAqC,GAAAd,aAAA,CAAAA,aAAA;EAChDe,QAAQ,EAAE;IACRb,GAAG,EAAE,gOAAgO;IACrOC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AAAC,GACEP,cAAc;EACjBmB,QAAQ,EAAER,SAAS;EACnBS,eAAe,EAAET,SAAS;EAC1BU,gBAAgB,EAAEV;AAAS,EAC5B"}
1
+ {"version":3,"file":"IsolationDocs.js","names":["ProviderEvents","ProviderProperties","IsolationProperties","_objectSpread","path","doc","type","status","transformOnCommit","commitHandleRef","minimumAsyncBehaviorTime","undefined","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","globalStatusId","IsolationEvents","onCommit","onSubmit","onSubmitRequest","onSubmitComplete"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/IsolationDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport {\n ProviderEvents,\n ProviderProperties,\n} from '../../DataContext/Provider/ProviderDocs'\n\nexport const IsolationProperties: PropertiesTableProps = {\n path: {\n doc: 'JSON Pointer to define the object key for all the generated nested field data.',\n type: 'string',\n status: 'optional',\n },\n transformOnCommit: {\n doc: 'Transform the data before it gets committed to the form. The first parameter is the isolated data object. The second parameter is the outer context data object (Form.Handler).',\n type: 'function',\n status: 'optional',\n },\n commitHandleRef: {\n doc: 'Provide a ref to a function that can be called from any location to commit the data to the form.',\n type: 'React.Ref',\n status: 'optional',\n },\n ...ProviderProperties,\n minimumAsyncBehaviorTime: undefined,\n asyncSubmitTimeout: undefined,\n scrollTopOnSubmit: undefined,\n sessionStorageId: undefined,\n globalStatusId: undefined,\n}\n\nexport const IsolationEvents: PropertiesTableProps = {\n onCommit: {\n doc: 'Will be called on a nested form context commit – if validation has passed. The first parameter is the committed data object. The second parameter is an object containing a method to clear the internal data `{ clearData }`.',\n type: 'function',\n status: 'optional',\n },\n ...ProviderEvents,\n onSubmit: undefined,\n onSubmitRequest: undefined,\n onSubmitComplete: undefined,\n}\n"],"mappings":";;;AACA,SACEA,cAAc,EACdC,kBAAkB,QACb,yCAAyC;AAEhD,OAAO,MAAMC,mBAAyC,GAAAC,aAAA,CAAAA,aAAA;EACpDC,IAAI,EAAE;IACJC,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,iBAAiB,EAAE;IACjBH,GAAG,EAAE,iLAAiL;IACtLC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDE,eAAe,EAAE;IACfJ,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,WAAW;IACjBC,MAAM,EAAE;EACV;AAAC,GACEN,kBAAkB;EACrBS,wBAAwB,EAAEC,SAAS;EACnCC,kBAAkB,EAAED,SAAS;EAC7BE,iBAAiB,EAAEF,SAAS;EAC5BG,gBAAgB,EAAEH,SAAS;EAC3BI,cAAc,EAAEJ;AAAS,EAC1B;AAED,OAAO,MAAMK,eAAqC,GAAAb,aAAA,CAAAA,aAAA;EAChDc,QAAQ,EAAE;IACRZ,GAAG,EAAE,gOAAgO;IACrOC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AAAC,GACEP,cAAc;EACjBkB,QAAQ,EAAEP,SAAS;EACnBQ,eAAe,EAAER,SAAS;EAC1BS,gBAAgB,EAAET;AAAS,EAC5B"}
@@ -4,7 +4,7 @@
4
4
  .dnb-spacing .dnb-forms-main-heading.dnb-h--large:not([class*=space__]) {
5
5
  margin: 0;
6
6
  }
7
- @media screen and (min-width: 40em) {
7
+ @media screen and (min-width: 40.0625em) {
8
8
  .dnb-forms-main-heading:has(+ .dnb-flex-stack > .dnb-card, + .dnb-card):not([class*=space__left]) {
9
9
  margin-left: var(--spacing-medium);
10
10
  }
@@ -1 +1 @@
1
- .dnb-spacing .dnb-forms-main-heading.dnb-h--large:not([class*=space__]){margin:0}@media screen and (min-width:40em){.dnb-forms-main-heading:has(+.dnb-flex-stack>.dnb-card,+.dnb-card):not([class*=space__left]){margin-left:var(--spacing-medium)}}.dnb-forms-main-heading:has(+.dnb-flex-stack>.dnb-card,+.dnb-card):not([class*=space__bottom]){margin-bottom:var(--spacing-small)}
1
+ .dnb-spacing .dnb-forms-main-heading.dnb-h--large:not([class*=space__]){margin:0}@media screen and (min-width:40.0625em){.dnb-forms-main-heading:has(+.dnb-flex-stack>.dnb-card,+.dnb-card):not([class*=space__left]){margin-left:var(--spacing-medium)}}.dnb-forms-main-heading:has(+.dnb-flex-stack>.dnb-card,+.dnb-card):not([class*=space__bottom]){margin-bottom:var(--spacing-small)}
@@ -1 +1 @@
1
- {"version":3,"file":"Section.js","names":["React","useCallback","useContext","useMemo","SectionContext","DataContext","Provider","FieldPropsProvider","SectionContainerProvider","ViewContainer","EditContainer","SectionComponent","props","_path$startsWith","_nestedProps$overwrit","path","overwriteProps","translations","required","data","defaultData","containerMode","onChange","errorPrioritization","children","startsWith","call","Error","hasContext","addOnChangeHandler","nestedPath","nestedProps","handleChange","args","identifier","fieldProps","undefined","createElement","value","_extends","_objectSpread","substring","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Section/Section.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport SectionContext, { SectionContextState } from './SectionContext'\nimport DataContext from '../../DataContext/Context'\nimport Provider from '../../DataContext/Provider/Provider'\nimport FieldPropsProvider from '../FieldProps'\nimport SectionContainerProvider from './containers/SectionContainerProvider'\nimport ViewContainer from './ViewContainer'\nimport EditContainer from './EditContainer'\n\nimport type { Props as DataContextProps } from '../../DataContext/Provider'\nimport type { ContainerMode } from './containers/SectionContainer'\nimport type {\n FieldBlockProps,\n Path,\n FieldProps,\n OnChange,\n} from '../../types'\n\nexport type OverwritePropsDefaults = {\n [key: Path]: (FieldProps & FieldBlockProps) | OverwritePropsDefaults\n}\nexport type SectionProps<overwriteProps = OverwritePropsDefaults> = {\n /**\n * Path to the section.\n * When defined, fields inside the section will get this path as a prefix of their own path.\n */\n path?: Path\n\n /**\n * Overwrite field props for the section.\n */\n overwriteProps?: overwriteProps | OverwritePropsDefaults\n\n /**\n * Makes all fields inside it required.\n */\n required?: boolean\n\n /**\n * Defines the container mode. Can be `view` or `edit`.\n * Defaults to `view`.\n */\n containerMode?: ContainerMode\n\n /**\n * Only for internal use and undocumented for now.\n * Prioritize error techniques for the section.\n * Can be `fieldSchema`, `sectionSchema` or `contextSchema.\n */\n errorPrioritization?: SectionContextState['errorPrioritization']\n} & Pick<\n DataContextProps<unknown>,\n 'data' | 'defaultData' | 'onChange' | 'translations'\n>\n\nexport type LocalProps = SectionProps & {\n children: React.ReactNode\n}\n\nfunction SectionComponent(props: LocalProps) {\n const {\n path,\n overwriteProps,\n translations,\n required,\n data,\n defaultData,\n containerMode = 'view',\n onChange,\n errorPrioritization = ['contextSchema'],\n children,\n } = props\n\n if (path && !path.startsWith?.('/')) {\n throw new Error(`path=\"${path}\" must start with a slash`)\n }\n\n const { hasContext, addOnChangeHandler } = useContext(DataContext)\n\n const { path: nestedPath, props: nestedProps } =\n useContext(SectionContext) || {}\n\n const handleChange = useCallback<OnChange<unknown>>(\n (...args) => onChange?.(...args),\n [onChange]\n )\n addOnChangeHandler?.(handleChange)\n\n const identifier = useMemo(() => {\n return `${nestedPath && nestedPath !== '/' ? nestedPath : ''}${\n path || ''\n }`\n }, [path, nestedPath])\n const fieldProps = required ? { required: true } : undefined\n\n if (!hasContext) {\n return (\n <Provider data={data} defaultData={defaultData}>\n <SectionComponent {...props} />\n </Provider>\n )\n }\n\n return (\n <SectionContext.Provider\n value={{\n path: identifier,\n errorPrioritization,\n props,\n }}\n >\n <SectionContainerProvider containerMode={containerMode}>\n <FieldPropsProvider\n overwriteProps={{\n ...overwriteProps,\n ...(nestedProps?.overwriteProps?.[\n path.substring(1)\n ] as OverwritePropsDefaults),\n }}\n translations={translations}\n {...fieldProps}\n >\n {children}\n </FieldPropsProvider>\n </SectionContainerProvider>\n </SectionContext.Provider>\n )\n}\n\nSectionComponent.ViewContainer = ViewContainer\nSectionComponent.EditContainer = EditContainer\n\nSectionComponent._supportsSpacingProps = undefined\nexport default SectionComponent\n"],"mappings":"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"}
1
+ {"version":3,"file":"Section.js","names":["React","useCallback","useContext","useMemo","SectionContext","DataContext","Provider","FieldPropsProvider","SectionContainerProvider","ViewContainer","EditContainer","SectionComponent","props","_path$startsWith","_nestedProps$overwrit","path","overwriteProps","translations","required","data","defaultData","containerMode","onChange","errorPrioritization","children","startsWith","call","Error","hasContext","addOnChangeHandler","nestedPath","nestedProps","handleChange","args","identifier","fieldProps","undefined","createElement","value","_extends","_objectSpread","substring","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Section/Section.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport SectionContext, { SectionContextState } from './SectionContext'\nimport DataContext from '../../DataContext/Context'\nimport Provider from '../../DataContext/Provider/Provider'\nimport FieldPropsProvider from '../FieldProps'\nimport SectionContainerProvider from './containers/SectionContainerProvider'\nimport ViewContainer from './ViewContainer'\nimport EditContainer from './EditContainer'\n\nimport type { Props as DataContextProps } from '../../DataContext/Provider'\nimport type { ContainerMode } from './containers/SectionContainer'\nimport type {\n FieldBlockProps,\n Path,\n FieldProps,\n OnChange,\n} from '../../types'\n\nexport type OverwritePropsDefaults = {\n [key: Path]: (FieldProps & FieldBlockProps) | OverwritePropsDefaults\n}\nexport type SectionProps<overwriteProps = OverwritePropsDefaults> = {\n /**\n * Path to the section.\n * When defined, fields inside the section will get this path as a prefix of their own path.\n */\n path?: Path\n\n /**\n * Overwrite field props for the section.\n */\n overwriteProps?: overwriteProps | OverwritePropsDefaults\n\n /**\n * Makes all fields inside it required.\n */\n required?: boolean\n\n /**\n * Defines the container mode. Can be `view` or `edit`.\n * Defaults to `view`.\n */\n containerMode?: ContainerMode\n\n /**\n * Only for internal use and undocumented for now.\n * Prioritize error techniques for the section.\n * Can be `fieldSchema`, `sectionSchema` or `contextSchema.\n */\n errorPrioritization?: SectionContextState['errorPrioritization']\n} & Pick<\n DataContextProps<unknown>,\n 'data' | 'defaultData' | 'onChange' | 'translations'\n>\n\nexport type LocalProps = SectionProps & {\n children: React.ReactNode\n}\n\nfunction SectionComponent(props: LocalProps) {\n const {\n path,\n overwriteProps,\n translations,\n required,\n data,\n defaultData,\n containerMode = 'view',\n onChange,\n errorPrioritization = ['contextSchema'],\n children,\n } = props\n\n if (path && !path.startsWith?.('/')) {\n throw new Error(`path=\"${path}\" must start with a slash`)\n }\n\n const { hasContext, addOnChangeHandler } = useContext(DataContext)\n\n const { path: nestedPath, props: nestedProps } =\n useContext(SectionContext) || {}\n\n const handleChange = useCallback<OnChange>(\n (...args) => onChange?.(...args),\n [onChange]\n )\n addOnChangeHandler?.(handleChange)\n\n const identifier = useMemo(() => {\n return `${nestedPath && nestedPath !== '/' ? nestedPath : ''}${\n path || ''\n }`\n }, [path, nestedPath])\n const fieldProps = required ? { required: true } : undefined\n\n if (!hasContext) {\n return (\n <Provider data={data} defaultData={defaultData}>\n <SectionComponent {...props} />\n </Provider>\n )\n }\n\n return (\n <SectionContext.Provider\n value={{\n path: identifier,\n errorPrioritization,\n props,\n }}\n >\n <SectionContainerProvider containerMode={containerMode}>\n <FieldPropsProvider\n overwriteProps={{\n ...overwriteProps,\n ...(nestedProps?.overwriteProps?.[\n path.substring(1)\n ] as OverwritePropsDefaults),\n }}\n translations={translations}\n {...fieldProps}\n >\n {children}\n </FieldPropsProvider>\n </SectionContainerProvider>\n </SectionContext.Provider>\n )\n}\n\nSectionComponent.ViewContainer = ViewContainer\nSectionComponent.EditContainer = EditContainer\n\nSectionComponent._supportsSpacingProps = undefined\nexport default SectionComponent\n"],"mappings":"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"}
@@ -7,12 +7,14 @@ var _b, _span;
7
7
  const _excluded = ["className", "children", "state", "successLabel"];
8
8
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
9
9
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
10
- import React, { useLayoutEffect, useRef, useState } from 'react';
10
+ import React, { useMemo, useRef, useState } from 'react';
11
11
  import classnames from 'classnames';
12
12
  import { Icon, Space, Tooltip } from '../../../../components';
13
13
  import { check } from '../../../../icons';
14
14
  import { omitSpacingProps, pickSpacingProps } from '../../../../components/flex/utils';
15
15
  import { useTranslation } from '../../../../shared';
16
+ import { convertJsxToString } from '../../../../shared/component-helper';
17
+ const useLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;
16
18
  function SubmitIndicator(props) {
17
19
  const {
18
20
  className,
@@ -24,6 +26,7 @@ function SubmitIndicator(props) {
24
26
  const translation = useTranslation();
25
27
  const childrenRef = useRef(null);
26
28
  const [willWrap, setWillWrap] = useState(false);
29
+ const key = useMemo(() => convertJsxToString(children), [children]);
27
30
  useLayoutEffect(() => {
28
31
  if (children && state) {
29
32
  setWillWrap(willWordWrap(childrenRef.current, '. . . '));
@@ -48,7 +51,8 @@ function SubmitIndicator(props) {
48
51
  return React.createElement(Space, _extends({}, params, {
49
52
  element: "span"
50
53
  }), children && React.createElement("span", {
51
- ref: childrenRef
54
+ ref: childrenRef,
55
+ key: key
52
56
  }, children), indicator);
53
57
  }
54
58
  function willWordWrap(element, word) {
@@ -57,11 +61,11 @@ function willWordWrap(element, word) {
57
61
  }
58
62
  const {
59
63
  offsetHeight,
60
- textContent
64
+ innerHTML
61
65
  } = element;
62
- element.textContent += word;
66
+ element.innerHTML += word;
63
67
  const height = element.offsetHeight;
64
- element.textContent = textContent;
68
+ element.innerHTML = innerHTML;
65
69
  return height > offsetHeight;
66
70
  }
67
71
  SubmitIndicator._supportsSpacingProps = true;
@@ -1 +1 @@
1
- {"version":3,"file":"SubmitIndicator.js","names":["React","useLayoutEffect","useRef","useState","classnames","Icon","Space","Tooltip","check","omitSpacingProps","pickSpacingProps","useTranslation","SubmitIndicator","props","className","children","state","successLabel","rest","_objectWithoutProperties","_excluded","translation","childrenRef","willWrap","setWillWrap","willWordWrap","current","params","_objectSpread","ariaAttributes","role","ProgressIndicator","indicator_label","dot","_b","createElement","indicator","_extends","targetElement","_span","icon","Fragment","element","ref","word","offsetHeight","textContent","height","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/SubmitIndicator/SubmitIndicator.tsx"],"sourcesContent":["import React, { useLayoutEffect, useRef, useState } from 'react'\nimport classnames from 'classnames'\nimport { Icon, Space, Tooltip } from '../../../../components'\nimport type { SpaceProps } from '../../../../components/Space'\nimport { check } from '../../../../icons'\nimport type { SubmitState } from '../../types'\nimport {\n omitSpacingProps,\n pickSpacingProps,\n} from '../../../../components/flex/utils'\nimport { useTranslation } from '../../../../shared'\n\nexport type Props = {\n state: SubmitState\n className?: string\n successLabel?: string\n children?: React.ReactNode\n} & SpaceProps\n\nfunction SubmitIndicator(props: Props) {\n const {\n className,\n children,\n state,\n successLabel = 'Saved',\n ...rest\n } = props\n const translation = useTranslation()\n const childrenRef = useRef<HTMLSpanElement>(null)\n const [willWrap, setWillWrap] = useState(false)\n\n useLayoutEffect(() => {\n if (children && state) {\n setWillWrap(willWordWrap(childrenRef.current, '. . . '))\n }\n }, [children, state])\n\n const params = {\n className: classnames(\n 'dnb-forms-submit-indicator',\n state && `dnb-forms-submit-indicator--state-${state}`,\n willWrap && 'dnb-forms-submit-indicator--inline-wrap',\n className\n ),\n ...pickSpacingProps(rest),\n } as SpaceProps\n\n const ariaAttributes =\n state === 'pending'\n ? {\n role: 'status',\n 'aria-busy': true,\n 'aria-label': translation.ProgressIndicator.indicator_label,\n }\n : {}\n\n const dot = <b>.</b>\n const indicator = (\n <span\n className=\"dnb-forms-submit-indicator__content\"\n {...ariaAttributes}\n {...omitSpacingProps(rest)}\n >\n {state === 'success' && (\n <Tooltip\n targetElement={\n <span>\n <Icon icon={check} />\n </span>\n }\n >\n {successLabel}\n </Tooltip>\n )}\n {state && state !== 'success' && state !== 'abort' && (\n <>\n {dot}\n {dot}\n {dot}\n </>\n )}\n </span>\n )\n\n return (\n <Space {...params} element=\"span\">\n {children && <span ref={childrenRef}>{children}</span>}\n {indicator}\n </Space>\n )\n}\n\nfunction willWordWrap(element: HTMLElement, word: string) {\n if (!element) {\n return\n }\n\n const { offsetHeight, textContent } = element\n\n element.textContent += word\n const height = element.offsetHeight\n element.textContent = textContent\n\n return height > offsetHeight\n}\n\nSubmitIndicator._supportsSpacingProps = true\nexport default SubmitIndicator\n"],"mappings":";;;;;;;;;AAAA,OAAOA,KAAK,IAAIC,eAAe,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAChE,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,IAAI,EAAEC,KAAK,EAAEC,OAAO,QAAQ,wBAAwB;AAE7D,SAASC,KAAK,QAAQ,mBAAmB;AAEzC,SACEC,gBAAgB,EAChBC,gBAAgB,QACX,mCAAmC;AAC1C,SAASC,cAAc,QAAQ,oBAAoB;AASnD,SAASC,eAAeA,CAACC,KAAY,EAAE;EACrC,MAAM;MACJC,SAAS;MACTC,QAAQ;MACRC,KAAK;MACLC,YAAY,GAAG;IAEjB,CAAC,GAAGJ,KAAK;IADJK,IAAI,GAAAC,wBAAA,CACLN,KAAK,EAAAO,SAAA;EACT,MAAMC,WAAW,GAAGV,cAAc,CAAC,CAAC;EACpC,MAAMW,WAAW,GAAGpB,MAAM,CAAkB,IAAI,CAAC;EACjD,MAAM,CAACqB,QAAQ,EAAEC,WAAW,CAAC,GAAGrB,QAAQ,CAAC,KAAK,CAAC;EAE/CF,eAAe,CAAC,MAAM;IACpB,IAAIc,QAAQ,IAAIC,KAAK,EAAE;MACrBQ,WAAW,CAACC,YAAY,CAACH,WAAW,CAACI,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC1D;EACF,CAAC,EAAE,CAACX,QAAQ,EAAEC,KAAK,CAAC,CAAC;EAErB,MAAMW,MAAM,GAAAC,aAAA;IACVd,SAAS,EAAEV,UAAU,CACnB,4BAA4B,EAG5BU,SAAS,EAFTE,KAAK,IAAK,qCAAoCA,KAAM,EAAC,EACrDO,QAAQ,IAAI,yCAEd;EAAC,GACEb,gBAAgB,CAACQ,IAAI,CAAC,CACZ;EAEf,MAAMW,cAAc,GAClBb,KAAK,KAAK,SAAS,GACf;IACEc,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,IAAI;IACjB,YAAY,EAAET,WAAW,CAACU,iBAAiB,CAACC;EAC9C,CAAC,GACD,CAAC,CAAC;EAER,MAAMC,GAAG,GAAAC,EAAA,KAAAA,EAAA,GAAGlC,KAAA,CAAAmC,aAAA,YAAG,GAAI,CAAC;EACpB,MAAMC,SAAS,GACbpC,KAAA,CAAAmC,aAAA,SAAAE,QAAA;IACEvB,SAAS,EAAC;EAAqC,GAC3Ce,cAAc,EACdpB,gBAAgB,CAACS,IAAI,CAAC,GAEzBF,KAAK,KAAK,SAAS,IAClBhB,KAAA,CAAAmC,aAAA,CAAC5B,OAAO;IACN+B,aAAa,EAAAC,KAAA,KAAAA,KAAA,GACXvC,KAAA,CAAAmC,aAAA,eACEnC,KAAA,CAAAmC,aAAA,CAAC9B,IAAI;MAACmC,IAAI,EAAEhC;IAAM,CAAE,CAChB,CAAC;EACR,GAEAS,YACM,CACV,EACAD,KAAK,IAAIA,KAAK,KAAK,SAAS,IAAIA,KAAK,KAAK,OAAO,IAChDhB,KAAA,CAAAmC,aAAA,CAAAnC,KAAA,CAAAyC,QAAA,QACGR,GAAG,EACHA,GAAG,EACHA,GACD,CAEA,CACP;EAED,OACEjC,KAAA,CAAAmC,aAAA,CAAC7B,KAAK,EAAA+B,QAAA,KAAKV,MAAM;IAAEe,OAAO,EAAC;EAAM,IAC9B3B,QAAQ,IAAIf,KAAA,CAAAmC,aAAA;IAAMQ,GAAG,EAAErB;EAAY,GAAEP,QAAe,CAAC,EACrDqB,SACI,CAAC;AAEZ;AAEA,SAASX,YAAYA,CAACiB,OAAoB,EAAEE,IAAY,EAAE;EACxD,IAAI,CAACF,OAAO,EAAE;IACZ;EACF;EAEA,MAAM;IAAEG,YAAY;IAAEC;EAAY,CAAC,GAAGJ,OAAO;EAE7CA,OAAO,CAACI,WAAW,IAAIF,IAAI;EAC3B,MAAMG,MAAM,GAAGL,OAAO,CAACG,YAAY;EACnCH,OAAO,CAACI,WAAW,GAAGA,WAAW;EAEjC,OAAOC,MAAM,GAAGF,YAAY;AAC9B;AAEAjC,eAAe,CAACoC,qBAAqB,GAAG,IAAI;AAC5C,eAAepC,eAAe"}
1
+ {"version":3,"file":"SubmitIndicator.js","names":["React","useMemo","useRef","useState","classnames","Icon","Space","Tooltip","check","omitSpacingProps","pickSpacingProps","useTranslation","convertJsxToString","useLayoutEffect","window","useEffect","SubmitIndicator","props","className","children","state","successLabel","rest","_objectWithoutProperties","_excluded","translation","childrenRef","willWrap","setWillWrap","key","willWordWrap","current","params","_objectSpread","ariaAttributes","role","ProgressIndicator","indicator_label","dot","_b","createElement","indicator","_extends","targetElement","_span","icon","Fragment","element","ref","word","offsetHeight","innerHTML","height","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/SubmitIndicator/SubmitIndicator.tsx"],"sourcesContent":["import React, { useMemo, useRef, useState } from 'react'\nimport classnames from 'classnames'\nimport { Icon, Space, Tooltip } from '../../../../components'\nimport type { SpaceProps } from '../../../../components/Space'\nimport { check } from '../../../../icons'\nimport type { SubmitState } from '../../types'\nimport {\n omitSpacingProps,\n pickSpacingProps,\n} from '../../../../components/flex/utils'\nimport { useTranslation } from '../../../../shared'\nimport { convertJsxToString } from '../../../../shared/component-helper'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type Props = {\n state: SubmitState\n className?: string\n successLabel?: string\n children?: React.ReactNode\n} & SpaceProps\n\nfunction SubmitIndicator(props: Props) {\n const {\n className,\n children,\n state,\n successLabel = 'Saved',\n ...rest\n } = props\n const translation = useTranslation()\n const childrenRef = useRef<HTMLSpanElement>(null)\n const [willWrap, setWillWrap] = useState(false)\n const key = useMemo(() => convertJsxToString(children), [children])\n\n useLayoutEffect(() => {\n if (children && state) {\n setWillWrap(willWordWrap(childrenRef.current, '. . . '))\n }\n }, [children, state])\n\n const params = {\n className: classnames(\n 'dnb-forms-submit-indicator',\n state && `dnb-forms-submit-indicator--state-${state}`,\n willWrap && 'dnb-forms-submit-indicator--inline-wrap',\n className\n ),\n ...pickSpacingProps(rest),\n } as SpaceProps\n\n const ariaAttributes =\n state === 'pending'\n ? {\n role: 'status',\n 'aria-busy': true,\n 'aria-label': translation.ProgressIndicator.indicator_label,\n }\n : {}\n\n const dot = <b>.</b>\n const indicator = (\n <span\n className=\"dnb-forms-submit-indicator__content\"\n {...ariaAttributes}\n {...omitSpacingProps(rest)}\n >\n {state === 'success' && (\n <Tooltip\n targetElement={\n <span>\n <Icon icon={check} />\n </span>\n }\n >\n {successLabel}\n </Tooltip>\n )}\n {state && state !== 'success' && state !== 'abort' && (\n <>\n {dot}\n {dot}\n {dot}\n </>\n )}\n </span>\n )\n\n return (\n <Space {...params} element=\"span\">\n {children && (\n <span ref={childrenRef} key={key}>\n {children}\n </span>\n )}\n {indicator}\n </Space>\n )\n}\n\nfunction willWordWrap(element: HTMLElement, word: string) {\n if (!element) {\n return\n }\n\n const { offsetHeight, innerHTML } = element\n\n element.innerHTML += word\n const height = element.offsetHeight\n element.innerHTML = innerHTML\n\n return height > offsetHeight\n}\n\nSubmitIndicator._supportsSpacingProps = true\nexport default SubmitIndicator\n"],"mappings":"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"}
@@ -10,19 +10,21 @@ export default function useData(id = undefined, initialData = undefined) {
10
10
  const sharedAttachmentsRef = useRef(null);
11
11
  const [, forceUpdate] = useReducer(() => ({}), {});
12
12
  sharedDataRef.current = useSharedState(id, initialData, forceUpdate);
13
+ sharedAttachmentsRef.current = useSharedState(id + '-attachments', {
14
+ rerenderUseDataHook: forceUpdate
15
+ });
13
16
  const context = useContext(DataContext);
14
17
  if (!id) {
15
- if (context !== null && context !== void 0 && context.data) {
16
- sharedDataRef.current.data = context.data;
17
- } else if (!(context !== null && context !== void 0 && context.hasContext)) {
18
+ if (!(context !== null && context !== void 0 && context.hasContext)) {
18
19
  throw new Error('useData needs to run inside DataContext (Form.Handler) or have a valid id');
19
20
  }
21
+ if (context) {
22
+ sharedDataRef.current.data = context.data;
23
+ sharedAttachmentsRef.current.data.filterDataHandler = context.filterDataHandler;
24
+ }
20
25
  }
21
26
  const updateDataValue = context === null || context === void 0 ? void 0 : context.updateDataValue;
22
27
  const setData = context === null || context === void 0 ? void 0 : context.setData;
23
- sharedAttachmentsRef.current = useSharedState(id + '-attachments', {
24
- rerenderUseDataHook: forceUpdate
25
- });
26
28
  const setHandler = useCallback(newData => {
27
29
  if (id) {
28
30
  sharedDataRef.current.update(newData);
@@ -70,6 +72,6 @@ export default function useData(id = undefined, initialData = undefined) {
70
72
  set: setHandler,
71
73
  getValue,
72
74
  filterData
73
- }), [data, filterData, getValue, setHandler, updateHandler]);
75
+ }), [data, getValue, setHandler, updateHandler, filterData]);
74
76
  }
75
77
  //# sourceMappingURL=useData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useData.js","names":["useCallback","useContext","useMemo","useReducer","useRef","pointer","useSharedState","useMountEffect","DataContext","useData","id","undefined","initialData","sharedDataRef","sharedAttachmentsRef","forceUpdate","current","context","data","hasContext","Error","updateDataValue","setData","rerenderUseDataHook","setHandler","newData","update","updateHandler","path","value","existingData","existingValue","has","get","newValue","set","extend","filterData","filter","_sharedAttachmentsRef","_sharedAttachmentsRef2","filterDataHandler","call","getValue","hadInitialData"],"sources":["../../../../../../src/extensions/forms/Form/data-context/useData.tsx"],"sourcesContent":["import {\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport pointer from 'json-pointer'\nimport {\n SharedStateId,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport type { Path } from '../../types'\nimport DataContext, {\n FilterData,\n FilterDataHandler,\n} from '../../DataContext/Context'\n\ntype PathImpl<T, P extends string> = P extends `${infer Key}/${infer Rest}`\n ? Key extends keyof T\n ? Rest extends ''\n ? T[Key]\n : PathImpl<T[Key], Rest>\n : never\n : T[P & keyof T]\n\ntype PathType<T, P extends string> = P extends `/${infer Rest}`\n ? PathImpl<T, Rest>\n : never\n\ntype UseDataReturnUpdate<Data> = <P extends Path>(\n path: P,\n value: ((value: PathType<Data, P>) => unknown) | unknown\n) => void\n\nexport type UseDataReturnGetValue<Data> = <P extends Path>(\n path: P\n) => PathType<Data, P>\n\nexport type UseDataReturnFilterData<Data> = (\n filterDataHandler: FilterData,\n data?: Data\n) => Partial<Data>\n\ntype UseDataReturn<Data> = {\n data: Data\n set: (newData: Data) => void\n update: UseDataReturnUpdate<Data>\n getValue: UseDataReturnGetValue<Data>\n filterData: UseDataReturnFilterData<Data>\n}\n\ntype SharedAttachment<Data> = {\n rerenderUseDataHook: () => void\n filterDataHandler?: FilterDataHandler<Data>\n}\n\n/**\n * Custom hook that provides form data management functionality.\n *\n * @template Data - The type of data being managed.\n * @param {SharedStateId} id - The identifier for the data.\n * @param {Data} initialData - The initial data value (optional).\n * @returns {UseDataReturn<Data>} An object containing the data and data management functions.\n */\nexport default function useData<Data>(\n id: SharedStateId = undefined,\n initialData: Data = undefined\n): UseDataReturn<Data> {\n const sharedDataRef =\n useRef<ReturnType<typeof useSharedState<Data>>>(null)\n const sharedAttachmentsRef =\n useRef<ReturnType<typeof useSharedState<SharedAttachment<Data>>>>(null)\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n sharedDataRef.current = useSharedState<Data>(\n id,\n initialData,\n forceUpdate\n )\n\n // If no id is provided, use the context data\n const context = useContext(DataContext)\n if (!id) {\n if (context?.data) {\n sharedDataRef.current.data = context.data\n } else if (!context?.hasContext) {\n throw new Error(\n 'useData needs to run inside DataContext (Form.Handler) or have a valid id'\n )\n }\n }\n const updateDataValue = context?.updateDataValue\n const setData = context?.setData\n\n sharedAttachmentsRef.current = useSharedState<SharedAttachment<Data>>(\n id + '-attachments',\n { rerenderUseDataHook: forceUpdate }\n )\n\n const setHandler = useCallback(\n (newData: Data) => {\n if (id) {\n sharedDataRef.current.update(newData)\n } else {\n setData?.(newData)\n }\n },\n [id, setData]\n )\n\n const updateHandler = useCallback<UseDataReturnUpdate<Data>>(\n (path, value = undefined) => {\n const existingData = sharedDataRef.current.data || ({} as Data)\n const existingValue = pointer.has(existingData, path)\n ? pointer.get(existingData, path)\n : undefined\n\n // get new value\n const newValue =\n typeof value === 'function' ? value(existingValue) : value\n\n if (newValue !== existingValue) {\n // update existing data\n pointer.set(existingData, path, newValue)\n\n // update provider\n if (id) {\n sharedDataRef.current.extend(existingData)\n } else {\n updateDataValue(path, newValue)\n }\n }\n },\n [id, updateDataValue]\n )\n\n const filterData = useCallback<UseDataReturn<Data>['filterData']>(\n (filter, data = sharedDataRef.current.data) => {\n if (id) {\n return sharedAttachmentsRef.current.data?.filterDataHandler?.(\n data,\n filter\n )\n }\n\n return context?.filterDataHandler(data, filter)\n },\n [context, id]\n )\n\n const getValue = useCallback<UseDataReturn<Data>['getValue']>((path) => {\n if (pointer.has(sharedDataRef.current.data, path)) {\n return pointer.get(sharedDataRef.current.data, path)\n }\n\n return undefined\n }, [])\n\n useMountEffect(() => {\n if (id && !sharedDataRef.current.hadInitialData && initialData) {\n sharedDataRef.current.extend(initialData)\n }\n })\n\n const { data } = sharedDataRef.current\n\n return useMemo(\n () => ({\n data,\n update: updateHandler,\n set: setHandler,\n getValue,\n filterData,\n }),\n [data, filterData, getValue, setHandler, updateHandler]\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useData.js","names":["useCallback","useContext","useMemo","useReducer","useRef","pointer","useSharedState","useMountEffect","DataContext","useData","id","undefined","initialData","sharedDataRef","sharedAttachmentsRef","forceUpdate","current","rerenderUseDataHook","context","hasContext","Error","data","filterDataHandler","updateDataValue","setData","setHandler","newData","update","updateHandler","path","value","existingData","existingValue","has","get","newValue","set","extend","filterData","filter","_sharedAttachmentsRef","_sharedAttachmentsRef2","call","getValue","hadInitialData"],"sources":["../../../../../../src/extensions/forms/Form/data-context/useData.tsx"],"sourcesContent":["import {\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport pointer from 'json-pointer'\nimport {\n SharedStateId,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport type { Path } from '../../types'\nimport DataContext, {\n FilterData,\n FilterDataHandler,\n} from '../../DataContext/Context'\n\ntype PathImpl<T, P extends string> = P extends `${infer Key}/${infer Rest}`\n ? Key extends keyof T\n ? Rest extends ''\n ? T[Key]\n : PathImpl<T[Key], Rest>\n : never\n : T[P & keyof T]\n\ntype PathType<T, P extends string> = P extends `/${infer Rest}`\n ? PathImpl<T, Rest>\n : never\n\ntype UseDataReturnUpdate<Data> = <P extends Path>(\n path: P,\n value: ((value: PathType<Data, P>) => unknown) | unknown\n) => void\n\nexport type UseDataReturnGetValue<Data> = <P extends Path>(\n path: P\n) => PathType<Data, P>\n\nexport type UseDataReturnFilterData<Data> = (\n filterDataHandler: FilterData,\n data?: Data\n) => Partial<Data>\n\ntype UseDataReturn<Data> = {\n data: Data\n set: (newData: Data) => void\n update: UseDataReturnUpdate<Data>\n getValue: UseDataReturnGetValue<Data>\n filterData: UseDataReturnFilterData<Data>\n}\n\ntype SharedAttachment<Data> = {\n rerenderUseDataHook: () => void\n filterDataHandler?: FilterDataHandler<Data>\n}\n\n/**\n * Custom hook that provides form data management functionality.\n *\n * @template Data - The type of data being managed.\n * @param {SharedStateId} id - The identifier for the data.\n * @param {Data} initialData - The initial data value (optional).\n * @returns {UseDataReturn<Data>} An object containing the data and data management functions.\n */\nexport default function useData<Data>(\n id: SharedStateId = undefined,\n initialData: Data = undefined\n): UseDataReturn<Data> {\n const sharedDataRef =\n useRef<ReturnType<typeof useSharedState<Data>>>(null)\n const sharedAttachmentsRef =\n useRef<ReturnType<typeof useSharedState<SharedAttachment<Data>>>>(null)\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n sharedDataRef.current = useSharedState<Data>(\n id,\n initialData,\n forceUpdate\n )\n\n sharedAttachmentsRef.current = useSharedState<SharedAttachment<Data>>(\n id + '-attachments',\n { rerenderUseDataHook: forceUpdate }\n )\n\n // If no id is provided, use the context data\n const context = useContext(DataContext)\n if (!id) {\n if (!context?.hasContext) {\n throw new Error(\n 'useData needs to run inside DataContext (Form.Handler) or have a valid id'\n )\n }\n\n if (context) {\n sharedDataRef.current.data = context.data\n sharedAttachmentsRef.current.data.filterDataHandler =\n context.filterDataHandler\n }\n }\n\n const updateDataValue = context?.updateDataValue\n const setData = context?.setData\n\n const setHandler = useCallback(\n (newData: Data) => {\n if (id) {\n sharedDataRef.current.update(newData)\n } else {\n setData?.(newData)\n }\n },\n [id, setData]\n )\n\n const updateHandler = useCallback<UseDataReturnUpdate<Data>>(\n (path, value = undefined) => {\n const existingData = sharedDataRef.current.data || ({} as Data)\n const existingValue = pointer.has(existingData, path)\n ? pointer.get(existingData, path)\n : undefined\n\n // get new value\n const newValue =\n typeof value === 'function' ? value(existingValue) : value\n\n if (newValue !== existingValue) {\n // update existing data\n pointer.set(existingData, path, newValue)\n\n // update provider\n if (id) {\n sharedDataRef.current.extend(existingData)\n } else {\n updateDataValue(path, newValue)\n }\n }\n },\n [id, updateDataValue]\n )\n\n const filterData = useCallback<UseDataReturn<Data>['filterData']>(\n (filter, data = sharedDataRef.current.data) => {\n if (id) {\n return sharedAttachmentsRef.current.data?.filterDataHandler?.(\n data,\n filter\n )\n }\n\n return context?.filterDataHandler(data, filter)\n },\n [context, id]\n )\n\n const getValue = useCallback<UseDataReturn<Data>['getValue']>((path) => {\n if (pointer.has(sharedDataRef.current.data, path)) {\n return pointer.get(sharedDataRef.current.data, path)\n }\n\n return undefined\n }, [])\n\n useMountEffect(() => {\n if (id && !sharedDataRef.current.hadInitialData && initialData) {\n sharedDataRef.current.extend(initialData)\n }\n })\n\n const { data } = sharedDataRef.current\n\n return useMemo(\n () => ({\n data,\n update: updateHandler,\n set: setHandler,\n getValue,\n filterData,\n }),\n [data, getValue, setHandler, updateHandler, filterData]\n )\n}\n"],"mappings":"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"}
@@ -23,7 +23,7 @@ function ArrayComponent(props) {
23
23
  const summaryListContext = useContext(SummaryListContext);
24
24
  const valueBlockContext = useContext(ValueBlockContext);
25
25
  const {
26
- getValue
26
+ getValueByPath
27
27
  } = useDataValue();
28
28
  const preparedProps = useMemo(() => {
29
29
  const {
@@ -33,8 +33,8 @@ function ArrayComponent(props) {
33
33
  countPathTransform
34
34
  } = props;
35
35
  if (countPath) {
36
- const arrayValue = getValue(path);
37
- let countValue = parseFloat(getValue(countPath));
36
+ const arrayValue = getValueByPath(path);
37
+ let countValue = parseFloat(getValueByPath(countPath));
38
38
  if (!(countValue >= 0)) {
39
39
  countValue = 0;
40
40
  }
@@ -56,7 +56,7 @@ function ArrayComponent(props) {
56
56
  }
57
57
  }
58
58
  return props;
59
- }, [getValue, props]);
59
+ }, [getValueByPath, props]);
60
60
  const {
61
61
  path,
62
62
  value: arrayValue,
@@ -1 +1 @@
1
- {"version":3,"file":"Array.js","names":["React","useMemo","useRef","useEffect","useReducer","createRef","useContext","Fragment","classnames","pointer","useFieldProps","makeUniqueId","Flex","pickSpacingProps","pickFlexContainerProps","IterateItemContext","SummaryListContext","ValueBlockContext","FieldBoundaryProvider","useDataValue","structuredClone","ArrayComponent","props","_props$value","salt","forceUpdate","summaryListContext","valueBlockContext","getValue","preparedProps","path","countPath","countPathLimit","Infinity","countPathTransform","arrayValue","countValue","parseFloat","length","newValue","i","l","value","push","index","_objectSpread","withoutFlex","emptyValue","placeholder","handleChange","onChange","children","idsRef","isNewRef","modesRef","valueWhileClosingRef","valueCountRef","containerRef","hadPushRef","innerRefs","omitFlex","current","elementData","_ref","map","_valueCountRef$curren","id","hasNewItems","isNew","_value$__containerMod","containerMode","switchContainerMode","mode","_isNewRef$current","newArrayValue","set","handlePush","element","handleRemove","keepItems","splice","fulfillRemove","_modesRef$current","_isNewRef$current2","findIndex","indexOf","restoreOriginalValue","last","flexProps","className","innerRef","WrapperElement","Stack","createElement","elementProps","elementRef","renderChildren","elementChild","contextValue","content","Array","isArray","child","Provider","key","Item","tabIndex","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/Array/Array.tsx"],"sourcesContent":["import React, {\n useMemo,\n useRef,\n useEffect,\n useReducer,\n createRef,\n useContext,\n Fragment,\n} from 'react'\nimport classnames from 'classnames'\nimport pointer from 'json-pointer'\nimport { useFieldProps } from '../../hooks'\nimport { makeUniqueId } from '../../../../shared/component-helper'\nimport { Flex } from '../../../../components'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport {\n BasicProps as FlexContainerProps,\n Props as FlexContainerAllProps,\n pickFlexContainerProps,\n} from '../../../../components/flex/Container'\nimport IterateItemContext, {\n IterateItemContextState,\n} from '../IterateItemContext'\nimport SummaryListContext from '../../Value/SummaryList/SummaryListContext'\nimport ValueBlockContext from '../../ValueBlock/ValueBlockContext'\nimport FieldBoundaryProvider from '../../DataContext/FieldBoundary/FieldBoundaryProvider'\nimport useDataValue from '../../hooks/useDataValue'\n\nimport type { ContainerMode, ElementChild, Props, Value } from './types'\nimport type { Identifier, Path } from '../../types'\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\nexport type * from './types'\n\nfunction ArrayComponent(props: Props) {\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n\n const summaryListContext = useContext(SummaryListContext)\n const valueBlockContext = useContext(ValueBlockContext)\n\n const { getValue } = useDataValue()\n const preparedProps = useMemo(() => {\n const {\n path,\n countPath,\n countPathLimit = Infinity,\n countPathTransform,\n } = props\n\n if (countPath) {\n const arrayValue = getValue(path)\n let countValue = parseFloat(getValue(countPath))\n if (!(countValue >= 0)) {\n countValue = 0\n }\n if (countValue > countPathLimit) {\n countValue = countPathLimit\n }\n if (arrayValue?.length !== countValue) {\n const newValue = []\n for (let i = 0, l = countValue; i < l; i++) {\n const value = arrayValue?.[i]\n newValue.push(countPathTransform?.({ value, index: i }))\n }\n\n return {\n ...props,\n value: newValue,\n }\n }\n }\n\n return props\n }, [getValue, props])\n\n const {\n path,\n value: arrayValue,\n withoutFlex,\n emptyValue,\n placeholder,\n handleChange,\n onChange,\n children,\n } = useFieldProps(preparedProps)\n\n const idsRef = useRef<Array<Identifier>>([])\n const isNewRef = useRef<Record<string, boolean>>({})\n const modesRef = useRef<Record<Identifier, ContainerMode>>({})\n const valueWhileClosingRef = useRef<Value>()\n const valueCountRef = useRef(arrayValue)\n const containerRef = useRef<HTMLDivElement>()\n const hadPushRef = useRef<boolean>()\n const innerRefs = useRef<\n Record<string, React.RefObject<HTMLDivElement>>\n >({})\n\n const omitFlex = withoutFlex ?? (summaryListContext || valueBlockContext)\n\n useEffect(() => {\n // Update inside the useEffect, to support React.StrictMode\n valueCountRef.current = arrayValue || []\n }, [arrayValue])\n\n const elementData = useMemo(() => {\n return ((valueWhileClosingRef.current || arrayValue) ?? []).map(\n (value, index) => {\n const id = idsRef.current[index] || makeUniqueId()\n\n const hasNewItems =\n arrayValue.length > valueCountRef.current?.length\n\n if (!idsRef.current[index]) {\n isNewRef.current[id] = hasNewItems\n idsRef.current.push(id)\n }\n\n const isNew = isNewRef.current[id] || false\n if (!modesRef.current[id]) {\n modesRef.current[id] =\n value?.['__containerMode'] ?? (isNew ? 'edit' : 'view')\n delete value?.['__containerMode']\n }\n\n return {\n id,\n path,\n value,\n index,\n arrayValue,\n containerRef,\n isNew,\n containerMode: modesRef.current[id],\n switchContainerMode: (mode: ContainerMode) => {\n modesRef.current[id] = mode\n delete isNewRef.current?.[id]\n forceUpdate()\n },\n handleChange: (path: Path, value: unknown) => {\n const newArrayValue = structuredClone(arrayValue)\n\n // Make sure we have a new object reference,\n // else two new objects will be the same\n newArrayValue[index] = { ...newArrayValue[index] }\n\n pointer.set(newArrayValue, path, value)\n handleChange(newArrayValue)\n },\n handlePush: (element: unknown) => {\n hadPushRef.current = true\n handleChange([...(arrayValue ?? []), element])\n },\n handleRemove: ({ keepItems = false } = {}) => {\n if (keepItems) {\n // Add a backup as the array value while animating\n valueWhileClosingRef.current = arrayValue\n }\n\n const newArrayValue = structuredClone(arrayValue)\n newArrayValue.splice(index, 1)\n handleChange(newArrayValue)\n },\n\n // - Called after animation end\n fulfillRemove: () => {\n valueWhileClosingRef.current = null\n delete modesRef.current?.[id]\n delete isNewRef.current?.[id]\n const findIndex = idsRef.current.indexOf(id)\n idsRef.current.splice(findIndex, 1)\n forceUpdate()\n },\n\n // - Called when cancel button press\n restoreOriginalValue: (value: unknown) => {\n const newArrayValue = structuredClone(arrayValue)\n newArrayValue[index] = value\n handleChange(newArrayValue)\n },\n } as IterateItemContextState\n }\n )\n\n // In order to update \"valueWhileClosingRef\" we need to have \"salt\" in the deps array\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [salt, arrayValue, path, handleChange])\n\n // - Call the onChange callback when a new element is added without calling \"handlePush\"\n useMemo(() => {\n const last = elementData?.[elementData.length - 1]\n if (last?.isNew && !hadPushRef.current) {\n onChange?.(arrayValue)\n } else {\n hadPushRef.current = false\n }\n }, [arrayValue, elementData, onChange])\n\n const flexProps: FlexContainerProps & {\n innerRef: FlexContainerAllProps['innerRef']\n } = {\n className: classnames(\n 'dnb-forms-iterate',\n 'dnb-forms-section',\n props?.className\n ),\n ...pickFlexContainerProps(props as FlexContainerProps),\n ...pickSpacingProps(props),\n innerRef: containerRef,\n }\n\n const WrapperElement = omitFlex ? Fragment : Flex.Stack\n\n return (\n <WrapperElement {...(omitFlex ? null : flexProps)}>\n {arrayValue === emptyValue || props?.value?.length === 0\n ? placeholder\n : elementData.map((elementProps) => {\n const { id, value, index } = elementProps\n const elementRef = (innerRefs.current[id] =\n innerRefs.current[id] || createRef<HTMLDivElement>())\n\n const renderChildren = (elementChild: ElementChild) => {\n return typeof elementChild === 'function'\n ? elementChild(value, index)\n : elementChild\n }\n\n const contextValue = {\n ...elementProps,\n elementRef,\n }\n\n const content = Array.isArray(children)\n ? children.map((child) => renderChildren(child))\n : renderChildren(children)\n\n if (omitFlex) {\n return (\n <IterateItemContext.Provider\n key={`element-${id}`}\n value={contextValue}\n >\n <FieldBoundaryProvider>{content}</FieldBoundaryProvider>\n </IterateItemContext.Provider>\n )\n }\n\n return (\n <Flex.Item\n className=\"dnb-forms-iterate__element\"\n tabIndex={-1}\n innerRef={elementRef}\n key={`element-${id}`}\n >\n <IterateItemContext.Provider value={contextValue}>\n <FieldBoundaryProvider>{content}</FieldBoundaryProvider>\n </IterateItemContext.Provider>\n </Flex.Item>\n )\n })}\n </WrapperElement>\n )\n}\n\nArrayComponent._supportsSpacingProps = true\nexport default ArrayComponent\n"],"mappings":"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"}
1
+ {"version":3,"file":"Array.js","names":["React","useMemo","useRef","useEffect","useReducer","createRef","useContext","Fragment","classnames","pointer","useFieldProps","makeUniqueId","Flex","pickSpacingProps","pickFlexContainerProps","IterateItemContext","SummaryListContext","ValueBlockContext","FieldBoundaryProvider","useDataValue","structuredClone","ArrayComponent","props","_props$value","salt","forceUpdate","summaryListContext","valueBlockContext","getValueByPath","preparedProps","path","countPath","countPathLimit","Infinity","countPathTransform","arrayValue","countValue","parseFloat","length","newValue","i","l","value","push","index","_objectSpread","withoutFlex","emptyValue","placeholder","handleChange","onChange","children","idsRef","isNewRef","modesRef","valueWhileClosingRef","valueCountRef","containerRef","hadPushRef","innerRefs","omitFlex","current","elementData","_ref","map","_valueCountRef$curren","id","hasNewItems","isNew","_value$__containerMod","containerMode","switchContainerMode","mode","_isNewRef$current","newArrayValue","set","handlePush","element","handleRemove","keepItems","splice","fulfillRemove","_modesRef$current","_isNewRef$current2","findIndex","indexOf","restoreOriginalValue","last","flexProps","className","innerRef","WrapperElement","Stack","createElement","elementProps","elementRef","renderChildren","elementChild","contextValue","content","Array","isArray","child","Provider","key","Item","tabIndex","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/Array/Array.tsx"],"sourcesContent":["import React, {\n useMemo,\n useRef,\n useEffect,\n useReducer,\n createRef,\n useContext,\n Fragment,\n} from 'react'\nimport classnames from 'classnames'\nimport pointer from 'json-pointer'\nimport { useFieldProps } from '../../hooks'\nimport { makeUniqueId } from '../../../../shared/component-helper'\nimport { Flex } from '../../../../components'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport {\n BasicProps as FlexContainerProps,\n Props as FlexContainerAllProps,\n pickFlexContainerProps,\n} from '../../../../components/flex/Container'\nimport IterateItemContext, {\n IterateItemContextState,\n} from '../IterateItemContext'\nimport SummaryListContext from '../../Value/SummaryList/SummaryListContext'\nimport ValueBlockContext from '../../ValueBlock/ValueBlockContext'\nimport FieldBoundaryProvider from '../../DataContext/FieldBoundary/FieldBoundaryProvider'\nimport useDataValue from '../../hooks/useDataValue'\n\nimport type { ContainerMode, ElementChild, Props, Value } from './types'\nimport type { Identifier, Path } from '../../types'\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\nexport type * from './types'\n\nfunction ArrayComponent(props: Props) {\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n\n const summaryListContext = useContext(SummaryListContext)\n const valueBlockContext = useContext(ValueBlockContext)\n\n const { getValueByPath } = useDataValue()\n const preparedProps = useMemo(() => {\n const {\n path,\n countPath,\n countPathLimit = Infinity,\n countPathTransform,\n } = props\n\n if (countPath) {\n const arrayValue = getValueByPath(path)\n let countValue = parseFloat(getValueByPath(countPath))\n if (!(countValue >= 0)) {\n countValue = 0\n }\n if (countValue > countPathLimit) {\n countValue = countPathLimit\n }\n if (arrayValue?.length !== countValue) {\n const newValue = []\n for (let i = 0, l = countValue; i < l; i++) {\n const value = arrayValue?.[i]\n newValue.push(countPathTransform?.({ value, index: i }))\n }\n\n return {\n ...props,\n value: newValue,\n }\n }\n }\n\n return props\n }, [getValueByPath, props])\n\n const {\n path,\n value: arrayValue,\n withoutFlex,\n emptyValue,\n placeholder,\n handleChange,\n onChange,\n children,\n } = useFieldProps(preparedProps)\n\n const idsRef = useRef<Array<Identifier>>([])\n const isNewRef = useRef<Record<string, boolean>>({})\n const modesRef = useRef<Record<Identifier, ContainerMode>>({})\n const valueWhileClosingRef = useRef<Value>()\n const valueCountRef = useRef(arrayValue)\n const containerRef = useRef<HTMLDivElement>()\n const hadPushRef = useRef<boolean>()\n const innerRefs = useRef<\n Record<string, React.RefObject<HTMLDivElement>>\n >({})\n\n const omitFlex = withoutFlex ?? (summaryListContext || valueBlockContext)\n\n useEffect(() => {\n // Update inside the useEffect, to support React.StrictMode\n valueCountRef.current = arrayValue || []\n }, [arrayValue])\n\n const elementData = useMemo(() => {\n return ((valueWhileClosingRef.current || arrayValue) ?? []).map(\n (value, index) => {\n const id = idsRef.current[index] || makeUniqueId()\n\n const hasNewItems =\n arrayValue.length > valueCountRef.current?.length\n\n if (!idsRef.current[index]) {\n isNewRef.current[id] = hasNewItems\n idsRef.current.push(id)\n }\n\n const isNew = isNewRef.current[id] || false\n if (!modesRef.current[id]) {\n modesRef.current[id] =\n value?.['__containerMode'] ?? (isNew ? 'edit' : 'view')\n delete value?.['__containerMode']\n }\n\n return {\n id,\n path,\n value,\n index,\n arrayValue,\n containerRef,\n isNew,\n containerMode: modesRef.current[id],\n switchContainerMode: (mode: ContainerMode) => {\n modesRef.current[id] = mode\n delete isNewRef.current?.[id]\n forceUpdate()\n },\n handleChange: (path: Path, value: unknown) => {\n const newArrayValue = structuredClone(arrayValue)\n\n // Make sure we have a new object reference,\n // else two new objects will be the same\n newArrayValue[index] = { ...newArrayValue[index] }\n\n pointer.set(newArrayValue, path, value)\n handleChange(newArrayValue)\n },\n handlePush: (element: unknown) => {\n hadPushRef.current = true\n handleChange([...(arrayValue ?? []), element])\n },\n handleRemove: ({ keepItems = false } = {}) => {\n if (keepItems) {\n // Add a backup as the array value while animating\n valueWhileClosingRef.current = arrayValue\n }\n\n const newArrayValue = structuredClone(arrayValue)\n newArrayValue.splice(index, 1)\n handleChange(newArrayValue)\n },\n\n // - Called after animation end\n fulfillRemove: () => {\n valueWhileClosingRef.current = null\n delete modesRef.current?.[id]\n delete isNewRef.current?.[id]\n const findIndex = idsRef.current.indexOf(id)\n idsRef.current.splice(findIndex, 1)\n forceUpdate()\n },\n\n // - Called when cancel button press\n restoreOriginalValue: (value: unknown) => {\n const newArrayValue = structuredClone(arrayValue)\n newArrayValue[index] = value\n handleChange(newArrayValue)\n },\n } as IterateItemContextState\n }\n )\n\n // In order to update \"valueWhileClosingRef\" we need to have \"salt\" in the deps array\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [salt, arrayValue, path, handleChange])\n\n // - Call the onChange callback when a new element is added without calling \"handlePush\"\n useMemo(() => {\n const last = elementData?.[elementData.length - 1]\n if (last?.isNew && !hadPushRef.current) {\n onChange?.(arrayValue)\n } else {\n hadPushRef.current = false\n }\n }, [arrayValue, elementData, onChange])\n\n const flexProps: FlexContainerProps & {\n innerRef: FlexContainerAllProps['innerRef']\n } = {\n className: classnames(\n 'dnb-forms-iterate',\n 'dnb-forms-section',\n props?.className\n ),\n ...pickFlexContainerProps(props as FlexContainerProps),\n ...pickSpacingProps(props),\n innerRef: containerRef,\n }\n\n const WrapperElement = omitFlex ? Fragment : Flex.Stack\n\n return (\n <WrapperElement {...(omitFlex ? null : flexProps)}>\n {arrayValue === emptyValue || props?.value?.length === 0\n ? placeholder\n : elementData.map((elementProps) => {\n const { id, value, index } = elementProps\n const elementRef = (innerRefs.current[id] =\n innerRefs.current[id] || createRef<HTMLDivElement>())\n\n const renderChildren = (elementChild: ElementChild) => {\n return typeof elementChild === 'function'\n ? elementChild(value, index)\n : elementChild\n }\n\n const contextValue = {\n ...elementProps,\n elementRef,\n }\n\n const content = Array.isArray(children)\n ? children.map((child) => renderChildren(child))\n : renderChildren(children)\n\n if (omitFlex) {\n return (\n <IterateItemContext.Provider\n key={`element-${id}`}\n value={contextValue}\n >\n <FieldBoundaryProvider>{content}</FieldBoundaryProvider>\n </IterateItemContext.Provider>\n )\n }\n\n return (\n <Flex.Item\n className=\"dnb-forms-iterate__element\"\n tabIndex={-1}\n innerRef={elementRef}\n key={`element-${id}`}\n >\n <IterateItemContext.Provider value={contextValue}>\n <FieldBoundaryProvider>{content}</FieldBoundaryProvider>\n </IterateItemContext.Provider>\n </Flex.Item>\n )\n })}\n </WrapperElement>\n )\n}\n\nArrayComponent._supportsSpacingProps = true\nexport default ArrayComponent\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Props as StringValueProps } from '../String';
2
2
  import { AnyLocale } from '../../../../shared/Context';
3
3
  export type Props = StringValueProps & {
4
- variant?: 'long' | 'short';
4
+ variant?: 'long' | 'short' | 'numeric';
5
5
  locale?: AnyLocale;
6
6
  };
7
7
  declare function DateComponent(props: Props): import("react/jsx-runtime").JSX.Element;