@dnb/eufemia 10.44.0 → 10.46.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 (830) hide show
  1. package/CHANGELOG.md +55 -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/checkbox/style/dnb-checkbox.scss +1 -1
  6. package/cjs/components/copy-on-click/CopyOnClick.d.ts +9 -0
  7. package/cjs/components/copy-on-click/CopyOnClick.js +72 -0
  8. package/cjs/components/copy-on-click/CopyOnClick.js.map +1 -0
  9. package/cjs/components/copy-on-click/CopyOnClickDocs.d.ts +2 -0
  10. package/cjs/components/copy-on-click/CopyOnClickDocs.js +25 -0
  11. package/cjs/components/copy-on-click/CopyOnClickDocs.js.map +1 -0
  12. package/cjs/components/copy-on-click/index.d.ts +7 -0
  13. package/cjs/components/copy-on-click/index.js +24 -0
  14. package/cjs/components/copy-on-click/index.js.map +1 -0
  15. package/cjs/components/copy-on-click/style/dnb-copy-on-click.css +7 -0
  16. package/cjs/components/copy-on-click/style/dnb-copy-on-click.min.css +1 -0
  17. package/cjs/components/copy-on-click/style/dnb-copy-on-click.scss +10 -0
  18. package/cjs/components/copy-on-click/style/index.d.ts +5 -0
  19. package/cjs/components/copy-on-click/style/index.js +4 -0
  20. package/cjs/components/copy-on-click/style/index.js.map +1 -0
  21. package/cjs/components/copy-on-click/style.d.ts +5 -0
  22. package/cjs/components/copy-on-click/style.js +4 -0
  23. package/cjs/components/copy-on-click/style.js.map +1 -0
  24. package/cjs/components/copy-on-click/types.d.ts +19 -0
  25. package/cjs/components/copy-on-click/types.js +1 -0
  26. package/cjs/components/copy-on-click/types.js.map +1 -0
  27. package/cjs/components/index.d.ts +2 -1
  28. package/cjs/components/index.js +7 -0
  29. package/cjs/components/index.js.map +1 -1
  30. package/cjs/components/lib.d.ts +6 -1
  31. package/cjs/components/lib.js +8 -0
  32. package/cjs/components/lib.js.map +1 -1
  33. package/cjs/components/pagination/Pagination.d.ts +27 -1
  34. package/cjs/components/pagination/Pagination.js +3 -1
  35. package/cjs/components/pagination/Pagination.js.map +1 -1
  36. package/cjs/components/pagination/PaginationInfinity.js +20 -8
  37. package/cjs/components/pagination/PaginationInfinity.js.map +1 -1
  38. package/cjs/components/radio/style/dnb-radio.scss +1 -1
  39. package/cjs/components/table/TableStickyHeader.js.map +1 -1
  40. package/cjs/components/upload/Upload.js +2 -1
  41. package/cjs/components/upload/Upload.js.map +1 -1
  42. package/cjs/components/upload/UploadDocs.d.ts +1 -0
  43. package/cjs/components/upload/UploadDocs.js +17 -4
  44. package/cjs/components/upload/UploadDocs.js.map +1 -1
  45. package/cjs/components/upload/UploadInfo.js +57 -5
  46. package/cjs/components/upload/UploadInfo.js.map +1 -1
  47. package/cjs/components/upload/UploadVerify.d.ts +4 -2
  48. package/cjs/components/upload/UploadVerify.js +32 -5
  49. package/cjs/components/upload/UploadVerify.js.map +1 -1
  50. package/cjs/components/upload/style/dnb-upload.css +15 -0
  51. package/cjs/components/upload/style/dnb-upload.min.css +1 -1
  52. package/cjs/components/upload/style/dnb-upload.scss +17 -0
  53. package/cjs/components/upload/types.d.ts +7 -1
  54. package/cjs/components/upload/types.js.map +1 -1
  55. package/cjs/extensions/forms/DataContext/Context.d.ts +10 -5
  56. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  57. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +8 -0
  58. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  59. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +8 -0
  60. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  61. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
  62. package/cjs/extensions/forms/DataContext/Provider/Provider.js +48 -26
  63. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  64. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +2 -7
  65. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  66. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +16 -3
  67. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +38 -24
  68. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  69. package/cjs/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +10 -0
  70. package/cjs/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
  71. package/cjs/extensions/forms/Field/Email/Email.js +1 -1
  72. package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
  73. package/cjs/extensions/forms/Field/Name/Name.js +2 -2
  74. package/cjs/extensions/forms/Field/Name/Name.js.map +1 -1
  75. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +22 -3
  76. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  77. package/cjs/extensions/forms/Field/Number/Number.d.ts +2 -2
  78. package/cjs/extensions/forms/Field/Number/Number.js +33 -31
  79. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  80. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +3 -1
  81. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +11 -3
  82. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  83. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +4 -1
  84. package/cjs/extensions/forms/Field/Selection/Selection.js +28 -20
  85. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  86. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js +6 -1
  87. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  88. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +3 -3
  89. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  90. package/cjs/extensions/forms/Form/Element/Element.js +11 -9
  91. package/cjs/extensions/forms/Form/Element/Element.js.map +1 -1
  92. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  93. package/cjs/extensions/forms/Form/Handler/Handler.js +1 -3
  94. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  95. package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +1 -1
  96. package/cjs/extensions/forms/Form/Isolation/Isolation.js +25 -7
  97. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  98. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +0 -1
  99. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  100. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +13 -5
  101. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  102. package/cjs/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js +10 -13
  103. package/cjs/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js.map +1 -1
  104. package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
  105. package/cjs/extensions/forms/Form/data-context/useData.js +9 -7
  106. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  107. package/cjs/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js +3 -3
  108. package/cjs/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js.map +1 -1
  109. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +2 -2
  110. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  111. package/cjs/extensions/forms/Iterate/Array/Array.js +7 -5
  112. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  113. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +1 -3
  114. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +25 -19
  115. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  116. package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +10 -0
  117. package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  118. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +44 -14
  119. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  120. package/cjs/extensions/forms/Iterate/{IterateElementContext.d.ts → IterateItemContext.d.ts} +3 -3
  121. package/cjs/extensions/forms/Iterate/{IterateElementContext.js → IterateItemContext.js} +3 -3
  122. package/cjs/extensions/forms/Iterate/IterateItemContext.js.map +1 -0
  123. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js +3 -3
  124. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  125. package/cjs/extensions/forms/Iterate/PushButton/PushButtonDocs.js +5 -0
  126. package/cjs/extensions/forms/Iterate/PushButton/PushButtonDocs.js.map +1 -1
  127. package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.d.ts +4 -0
  128. package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js +42 -0
  129. package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -0
  130. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +37 -0
  131. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +95 -0
  132. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -0
  133. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerContext.d.ts +11 -0
  134. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerContext.js +12 -0
  135. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerContext.js.map +1 -0
  136. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.d.ts +3 -0
  137. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +42 -0
  138. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -0
  139. package/cjs/extensions/forms/Iterate/PushContainer/index.d.ts +2 -0
  140. package/cjs/extensions/forms/Iterate/PushContainer/index.js +27 -0
  141. package/cjs/extensions/forms/Iterate/PushContainer/index.js.map +1 -0
  142. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +4 -4
  143. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  144. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +4 -0
  145. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +13 -5
  146. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  147. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  148. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  149. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +3 -3
  150. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  151. package/cjs/extensions/forms/Iterate/hooks/useItem.d.ts +1 -0
  152. package/cjs/extensions/forms/Iterate/hooks/useItem.js +15 -0
  153. package/cjs/extensions/forms/Iterate/hooks/useItem.js.map +1 -0
  154. package/cjs/extensions/forms/Iterate/index.d.ts +3 -1
  155. package/cjs/extensions/forms/Iterate/index.js +17 -3
  156. package/cjs/extensions/forms/Iterate/index.js.map +1 -1
  157. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +19 -0
  158. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js +81 -0
  159. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -0
  160. package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.d.ts +2 -0
  161. package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +15 -0
  162. package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -0
  163. package/cjs/extensions/forms/Value/ArraySelection/index.d.ts +2 -0
  164. package/cjs/extensions/forms/Value/ArraySelection/index.js +27 -0
  165. package/cjs/extensions/forms/Value/ArraySelection/index.js.map +1 -0
  166. package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +7 -0
  167. package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.js +54 -0
  168. package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -0
  169. package/cjs/extensions/forms/Value/SelectCountry/index.d.ts +2 -0
  170. package/cjs/extensions/forms/Value/SelectCountry/index.js +27 -0
  171. package/cjs/extensions/forms/Value/SelectCountry/index.js.map +1 -0
  172. package/cjs/extensions/forms/Value/Selection/Selection.d.ts +9 -0
  173. package/cjs/extensions/forms/Value/Selection/Selection.js +58 -0
  174. package/cjs/extensions/forms/Value/Selection/Selection.js.map +1 -0
  175. package/cjs/extensions/forms/Value/Selection/SelectionDocs.d.ts +2 -0
  176. package/cjs/extensions/forms/Value/Selection/SelectionDocs.js +15 -0
  177. package/cjs/extensions/forms/Value/Selection/SelectionDocs.js.map +1 -0
  178. package/cjs/extensions/forms/Value/Selection/index.d.ts +2 -0
  179. package/cjs/extensions/forms/Value/Selection/index.js +27 -0
  180. package/cjs/extensions/forms/Value/Selection/index.js.map +1 -0
  181. package/cjs/extensions/forms/Value/ValueDocs.js +6 -1
  182. package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -1
  183. package/cjs/extensions/forms/Value/index.d.ts +3 -0
  184. package/cjs/extensions/forms/Value/index.js +21 -0
  185. package/cjs/extensions/forms/Value/index.js.map +1 -1
  186. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +7 -6
  187. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  188. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +3 -0
  189. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  190. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +3 -0
  191. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +27 -11
  192. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  193. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
  194. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  195. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +4 -4
  196. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  197. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +5 -0
  198. package/cjs/extensions/forms/constants/locales/en-GB.js +6 -1
  199. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  200. package/cjs/extensions/forms/constants/locales/en-US.d.ts +5 -0
  201. package/cjs/extensions/forms/constants/locales/index.d.ts +10 -0
  202. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +5 -0
  203. package/cjs/extensions/forms/constants/locales/nb-NO.js +6 -1
  204. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  205. package/cjs/extensions/forms/hooks/DataValueDocs.js +3 -3
  206. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  207. package/cjs/extensions/forms/hooks/useDataValue.d.ts +1 -0
  208. package/cjs/extensions/forms/hooks/useDataValue.js +11 -4
  209. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  210. package/cjs/extensions/forms/hooks/useExternalValue.js +4 -4
  211. package/cjs/extensions/forms/hooks/useExternalValue.js.map +1 -1
  212. package/cjs/extensions/forms/hooks/useFieldProps.js +11 -9
  213. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  214. package/cjs/extensions/forms/hooks/usePath.js +3 -3
  215. package/cjs/extensions/forms/hooks/usePath.js.map +1 -1
  216. package/cjs/extensions/forms/hooks/useValueProps.js +4 -1
  217. package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
  218. package/cjs/extensions/forms/style/dnb-forms.css +3 -0
  219. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  220. package/cjs/extensions/forms/types.d.ts +9 -2
  221. package/cjs/extensions/forms/types.js.map +1 -1
  222. package/cjs/index.d.ts +2 -1
  223. package/cjs/index.js +7 -0
  224. package/cjs/index.js.map +1 -1
  225. package/cjs/shared/Context.js +4 -6
  226. package/cjs/shared/Context.js.map +1 -1
  227. package/cjs/shared/Eufemia.d.ts +1 -1
  228. package/cjs/shared/Eufemia.js +2 -2
  229. package/cjs/shared/Eufemia.js.map +1 -1
  230. package/cjs/shared/locales/en-GB.d.ts +4 -0
  231. package/cjs/shared/locales/en-GB.js +4 -0
  232. package/cjs/shared/locales/en-GB.js.map +1 -1
  233. package/cjs/shared/locales/en-US.d.ts +4 -0
  234. package/cjs/shared/locales/index.d.ts +8 -0
  235. package/cjs/shared/locales/nb-NO.d.ts +4 -0
  236. package/cjs/shared/locales/nb-NO.js +5 -1
  237. package/cjs/shared/locales/nb-NO.js.map +1 -1
  238. package/cjs/shared/useTheme.d.ts +4 -10
  239. package/cjs/shared/useTheme.js +7 -5
  240. package/cjs/shared/useTheme.js.map +1 -1
  241. package/cjs/style/core/scopes.scss +1 -1
  242. package/cjs/style/dnb-ui-basis.css +1 -1
  243. package/cjs/style/dnb-ui-basis.min.css +1 -1
  244. package/cjs/style/dnb-ui-body.css +1 -1
  245. package/cjs/style/dnb-ui-body.min.css +1 -1
  246. package/cjs/style/dnb-ui-components.css +26 -0
  247. package/cjs/style/dnb-ui-components.min.css +3 -3
  248. package/cjs/style/dnb-ui-components.scss +1 -0
  249. package/cjs/style/dnb-ui-core.css +1 -1
  250. package/cjs/style/dnb-ui-core.min.css +1 -1
  251. package/cjs/style/dnb-ui-extensions.css +3 -0
  252. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  253. package/cjs/style/dnb-ui-forms.css +3 -0
  254. package/cjs/style/dnb-ui-forms.min.css +1 -1
  255. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +29 -0
  256. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  257. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -0
  258. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  259. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +3 -0
  260. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  261. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +29 -0
  262. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  263. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -0
  264. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  265. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +3 -0
  266. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  267. package/cjs/style/themes/theme-ui/ui-theme-components.css +29 -0
  268. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  269. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +3 -0
  270. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  271. package/cjs/style/themes/theme-ui/ui-theme-forms.css +3 -0
  272. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  273. package/components/CopyOnClick.d.ts +12 -0
  274. package/components/CopyOnClick.js +4 -0
  275. package/components/CopyOnClick.js.map +1 -0
  276. package/components/checkbox/style/dnb-checkbox.scss +1 -1
  277. package/components/copy-on-click/CopyOnClick.d.ts +9 -0
  278. package/components/copy-on-click/CopyOnClick.js +62 -0
  279. package/components/copy-on-click/CopyOnClick.js.map +1 -0
  280. package/components/copy-on-click/CopyOnClickDocs.d.ts +2 -0
  281. package/components/copy-on-click/CopyOnClickDocs.js +18 -0
  282. package/components/copy-on-click/CopyOnClickDocs.js.map +1 -0
  283. package/components/copy-on-click/index.d.ts +7 -0
  284. package/components/copy-on-click/index.js +4 -0
  285. package/components/copy-on-click/index.js.map +1 -0
  286. package/components/copy-on-click/style/dnb-copy-on-click.css +7 -0
  287. package/components/copy-on-click/style/dnb-copy-on-click.min.css +1 -0
  288. package/components/copy-on-click/style/dnb-copy-on-click.scss +10 -0
  289. package/components/copy-on-click/style/index.d.ts +5 -0
  290. package/components/copy-on-click/style/index.js +1 -0
  291. package/components/copy-on-click/style/index.js.map +1 -0
  292. package/components/copy-on-click/style.d.ts +5 -0
  293. package/components/copy-on-click/style.js +1 -0
  294. package/components/copy-on-click/style.js.map +1 -0
  295. package/components/copy-on-click/types.d.ts +19 -0
  296. package/components/copy-on-click/types.js +1 -0
  297. package/components/copy-on-click/types.js.map +1 -0
  298. package/components/index.d.ts +2 -1
  299. package/components/index.js +2 -1
  300. package/components/index.js.map +1 -1
  301. package/components/lib.d.ts +6 -1
  302. package/components/lib.js +3 -1
  303. package/components/lib.js.map +1 -1
  304. package/components/pagination/Pagination.d.ts +27 -1
  305. package/components/pagination/Pagination.js +3 -1
  306. package/components/pagination/Pagination.js.map +1 -1
  307. package/components/pagination/PaginationInfinity.js +20 -8
  308. package/components/pagination/PaginationInfinity.js.map +1 -1
  309. package/components/radio/style/dnb-radio.scss +1 -1
  310. package/components/table/TableStickyHeader.js.map +1 -1
  311. package/components/upload/Upload.js +2 -1
  312. package/components/upload/Upload.js.map +1 -1
  313. package/components/upload/UploadDocs.d.ts +1 -0
  314. package/components/upload/UploadDocs.js +15 -3
  315. package/components/upload/UploadDocs.js.map +1 -1
  316. package/components/upload/UploadInfo.js +57 -5
  317. package/components/upload/UploadInfo.js.map +1 -1
  318. package/components/upload/UploadVerify.d.ts +4 -2
  319. package/components/upload/UploadVerify.js +30 -5
  320. package/components/upload/UploadVerify.js.map +1 -1
  321. package/components/upload/style/dnb-upload.css +15 -0
  322. package/components/upload/style/dnb-upload.min.css +1 -1
  323. package/components/upload/style/dnb-upload.scss +17 -0
  324. package/components/upload/types.d.ts +7 -1
  325. package/components/upload/types.js.map +1 -1
  326. package/es/components/CopyOnClick.d.ts +12 -0
  327. package/es/components/CopyOnClick.js +4 -0
  328. package/es/components/CopyOnClick.js.map +1 -0
  329. package/es/components/checkbox/style/dnb-checkbox.scss +1 -1
  330. package/es/components/copy-on-click/CopyOnClick.d.ts +9 -0
  331. package/es/components/copy-on-click/CopyOnClick.js +62 -0
  332. package/es/components/copy-on-click/CopyOnClick.js.map +1 -0
  333. package/es/components/copy-on-click/CopyOnClickDocs.d.ts +2 -0
  334. package/es/components/copy-on-click/CopyOnClickDocs.js +18 -0
  335. package/es/components/copy-on-click/CopyOnClickDocs.js.map +1 -0
  336. package/es/components/copy-on-click/index.d.ts +7 -0
  337. package/es/components/copy-on-click/index.js +4 -0
  338. package/es/components/copy-on-click/index.js.map +1 -0
  339. package/es/components/copy-on-click/style/dnb-copy-on-click.css +7 -0
  340. package/es/components/copy-on-click/style/dnb-copy-on-click.min.css +1 -0
  341. package/es/components/copy-on-click/style/dnb-copy-on-click.scss +10 -0
  342. package/es/components/copy-on-click/style/index.d.ts +5 -0
  343. package/es/components/copy-on-click/style/index.js +1 -0
  344. package/es/components/copy-on-click/style/index.js.map +1 -0
  345. package/es/components/copy-on-click/style.d.ts +5 -0
  346. package/es/components/copy-on-click/style.js +1 -0
  347. package/es/components/copy-on-click/style.js.map +1 -0
  348. package/es/components/copy-on-click/types.d.ts +19 -0
  349. package/es/components/copy-on-click/types.js +1 -0
  350. package/es/components/copy-on-click/types.js.map +1 -0
  351. package/es/components/index.d.ts +2 -1
  352. package/es/components/index.js +2 -1
  353. package/es/components/index.js.map +1 -1
  354. package/es/components/lib.d.ts +6 -1
  355. package/es/components/lib.js +3 -1
  356. package/es/components/lib.js.map +1 -1
  357. package/es/components/pagination/Pagination.d.ts +27 -1
  358. package/es/components/pagination/Pagination.js +3 -1
  359. package/es/components/pagination/Pagination.js.map +1 -1
  360. package/es/components/pagination/PaginationInfinity.js +20 -8
  361. package/es/components/pagination/PaginationInfinity.js.map +1 -1
  362. package/es/components/radio/style/dnb-radio.scss +1 -1
  363. package/es/components/table/TableStickyHeader.js.map +1 -1
  364. package/es/components/upload/Upload.js +2 -1
  365. package/es/components/upload/Upload.js.map +1 -1
  366. package/es/components/upload/UploadDocs.d.ts +1 -0
  367. package/es/components/upload/UploadDocs.js +15 -3
  368. package/es/components/upload/UploadDocs.js.map +1 -1
  369. package/es/components/upload/UploadInfo.js +57 -5
  370. package/es/components/upload/UploadInfo.js.map +1 -1
  371. package/es/components/upload/UploadVerify.d.ts +4 -2
  372. package/es/components/upload/UploadVerify.js +30 -5
  373. package/es/components/upload/UploadVerify.js.map +1 -1
  374. package/es/components/upload/style/dnb-upload.css +15 -0
  375. package/es/components/upload/style/dnb-upload.min.css +1 -1
  376. package/es/components/upload/style/dnb-upload.scss +17 -0
  377. package/es/components/upload/types.d.ts +7 -1
  378. package/es/components/upload/types.js.map +1 -1
  379. package/es/extensions/forms/DataContext/Context.d.ts +10 -5
  380. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  381. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +8 -0
  382. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  383. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +9 -1
  384. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  385. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
  386. package/es/extensions/forms/DataContext/Provider/Provider.js +47 -25
  387. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  388. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +2 -7
  389. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  390. package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +16 -3
  391. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +37 -24
  392. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  393. package/es/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +10 -0
  394. package/es/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
  395. package/es/extensions/forms/Field/Email/Email.js +1 -1
  396. package/es/extensions/forms/Field/Email/Email.js.map +1 -1
  397. package/es/extensions/forms/Field/Name/Name.js +2 -2
  398. package/es/extensions/forms/Field/Name/Name.js.map +1 -1
  399. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +23 -4
  400. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  401. package/es/extensions/forms/Field/Number/Number.d.ts +2 -2
  402. package/es/extensions/forms/Field/Number/Number.js +33 -31
  403. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  404. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +3 -1
  405. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +8 -1
  406. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  407. package/es/extensions/forms/Field/Selection/Selection.d.ts +4 -1
  408. package/es/extensions/forms/Field/Selection/Selection.js +22 -16
  409. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  410. package/es/extensions/forms/Field/Selection/SelectionDocs.js +6 -1
  411. package/es/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  412. package/es/extensions/forms/FieldBlock/FieldBlock.js +3 -3
  413. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  414. package/es/extensions/forms/Form/Element/Element.js +9 -9
  415. package/es/extensions/forms/Form/Element/Element.js.map +1 -1
  416. package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  417. package/es/extensions/forms/Form/Handler/Handler.js +1 -3
  418. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  419. package/es/extensions/forms/Form/Isolation/Isolation.d.ts +1 -1
  420. package/es/extensions/forms/Form/Isolation/Isolation.js +26 -8
  421. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  422. package/es/extensions/forms/Form/Isolation/IsolationDocs.js +0 -1
  423. package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  424. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +13 -5
  425. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  426. package/es/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js +10 -11
  427. package/es/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js.map +1 -1
  428. package/es/extensions/forms/Form/Section/Section.js.map +1 -1
  429. package/es/extensions/forms/Form/data-context/useData.js +9 -7
  430. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  431. package/es/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js +3 -3
  432. package/es/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js.map +1 -1
  433. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +2 -2
  434. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  435. package/es/extensions/forms/Iterate/Array/Array.js +7 -5
  436. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  437. package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +1 -3
  438. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +26 -20
  439. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  440. package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +10 -0
  441. package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  442. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +44 -14
  443. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  444. package/{extensions/forms/Iterate/IterateElementContext.d.ts → es/extensions/forms/Iterate/IterateItemContext.d.ts} +3 -3
  445. package/es/extensions/forms/Iterate/IterateItemContext.js +4 -0
  446. package/es/extensions/forms/Iterate/IterateItemContext.js.map +1 -0
  447. package/es/extensions/forms/Iterate/PushButton/PushButton.js +3 -3
  448. package/es/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  449. package/es/extensions/forms/Iterate/PushButton/PushButtonDocs.js +5 -0
  450. package/es/extensions/forms/Iterate/PushButton/PushButtonDocs.js.map +1 -1
  451. package/es/extensions/forms/Iterate/PushContainer/OpenButton.d.ts +4 -0
  452. package/es/extensions/forms/Iterate/PushContainer/OpenButton.js +32 -0
  453. package/es/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -0
  454. package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +37 -0
  455. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +80 -0
  456. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -0
  457. package/es/extensions/forms/Iterate/PushContainer/PushContainerContext.d.ts +11 -0
  458. package/es/extensions/forms/Iterate/PushContainer/PushContainerContext.js +6 -0
  459. package/es/extensions/forms/Iterate/PushContainer/PushContainerContext.js.map +1 -0
  460. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.d.ts +3 -0
  461. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +34 -0
  462. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -0
  463. package/es/extensions/forms/Iterate/PushContainer/index.d.ts +2 -0
  464. package/es/extensions/forms/Iterate/PushContainer/index.js +3 -0
  465. package/es/extensions/forms/Iterate/PushContainer/index.js.map +1 -0
  466. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +4 -4
  467. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  468. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +4 -0
  469. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +15 -6
  470. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  471. package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  472. package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  473. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +3 -3
  474. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  475. package/es/extensions/forms/Iterate/hooks/useItem.d.ts +1 -0
  476. package/es/extensions/forms/Iterate/hooks/useItem.js +9 -0
  477. package/es/extensions/forms/Iterate/hooks/useItem.js.map +1 -0
  478. package/es/extensions/forms/Iterate/index.d.ts +3 -1
  479. package/es/extensions/forms/Iterate/index.js +3 -1
  480. package/es/extensions/forms/Iterate/index.js.map +1 -1
  481. package/es/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +19 -0
  482. package/es/extensions/forms/Value/ArraySelection/ArraySelection.js +66 -0
  483. package/es/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -0
  484. package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.d.ts +2 -0
  485. package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +8 -0
  486. package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -0
  487. package/es/extensions/forms/Value/ArraySelection/index.d.ts +2 -0
  488. package/es/extensions/forms/Value/ArraySelection/index.js +3 -0
  489. package/es/extensions/forms/Value/ArraySelection/index.js.map +1 -0
  490. package/es/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +7 -0
  491. package/es/extensions/forms/Value/SelectCountry/SelectCountry.js +44 -0
  492. package/es/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -0
  493. package/es/extensions/forms/Value/SelectCountry/index.d.ts +2 -0
  494. package/es/extensions/forms/Value/SelectCountry/index.js +3 -0
  495. package/es/extensions/forms/Value/SelectCountry/index.js.map +1 -0
  496. package/es/extensions/forms/Value/Selection/Selection.d.ts +9 -0
  497. package/es/extensions/forms/Value/Selection/Selection.js +48 -0
  498. package/es/extensions/forms/Value/Selection/Selection.js.map +1 -0
  499. package/es/extensions/forms/Value/Selection/SelectionDocs.d.ts +2 -0
  500. package/es/extensions/forms/Value/Selection/SelectionDocs.js +8 -0
  501. package/es/extensions/forms/Value/Selection/SelectionDocs.js.map +1 -0
  502. package/es/extensions/forms/Value/Selection/index.d.ts +2 -0
  503. package/es/extensions/forms/Value/Selection/index.js +3 -0
  504. package/es/extensions/forms/Value/Selection/index.js.map +1 -0
  505. package/es/extensions/forms/Value/ValueDocs.js +6 -1
  506. package/es/extensions/forms/Value/ValueDocs.js.map +1 -1
  507. package/es/extensions/forms/Value/index.d.ts +3 -0
  508. package/es/extensions/forms/Value/index.js +3 -0
  509. package/es/extensions/forms/Value/index.js.map +1 -1
  510. package/es/extensions/forms/ValueBlock/ValueBlock.js +7 -6
  511. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  512. package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +3 -0
  513. package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  514. package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +3 -0
  515. package/es/extensions/forms/Wizard/Container/WizardContainer.js +16 -1
  516. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  517. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
  518. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  519. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +4 -4
  520. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  521. package/es/extensions/forms/constants/locales/en-GB.d.ts +5 -0
  522. package/es/extensions/forms/constants/locales/en-GB.js +6 -1
  523. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  524. package/es/extensions/forms/constants/locales/en-US.d.ts +5 -0
  525. package/es/extensions/forms/constants/locales/index.d.ts +10 -0
  526. package/es/extensions/forms/constants/locales/nb-NO.d.ts +5 -0
  527. package/es/extensions/forms/constants/locales/nb-NO.js +6 -1
  528. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  529. package/es/extensions/forms/hooks/DataValueDocs.js +3 -3
  530. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  531. package/es/extensions/forms/hooks/useDataValue.d.ts +1 -0
  532. package/es/extensions/forms/hooks/useDataValue.js +11 -4
  533. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  534. package/es/extensions/forms/hooks/useExternalValue.js +4 -4
  535. package/es/extensions/forms/hooks/useExternalValue.js.map +1 -1
  536. package/es/extensions/forms/hooks/useFieldProps.js +11 -9
  537. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  538. package/es/extensions/forms/hooks/usePath.js +2 -2
  539. package/es/extensions/forms/hooks/usePath.js.map +1 -1
  540. package/es/extensions/forms/hooks/useValueProps.js +4 -1
  541. package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
  542. package/es/extensions/forms/style/dnb-forms.css +3 -0
  543. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  544. package/es/extensions/forms/types.d.ts +9 -2
  545. package/es/extensions/forms/types.js.map +1 -1
  546. package/es/index.d.ts +2 -1
  547. package/es/index.js +2 -1
  548. package/es/index.js.map +1 -1
  549. package/es/shared/Context.js +4 -6
  550. package/es/shared/Context.js.map +1 -1
  551. package/es/shared/Eufemia.d.ts +1 -1
  552. package/es/shared/Eufemia.js +2 -2
  553. package/es/shared/Eufemia.js.map +1 -1
  554. package/es/shared/locales/en-GB.d.ts +4 -0
  555. package/es/shared/locales/en-GB.js +4 -0
  556. package/es/shared/locales/en-GB.js.map +1 -1
  557. package/es/shared/locales/en-US.d.ts +4 -0
  558. package/es/shared/locales/index.d.ts +8 -0
  559. package/es/shared/locales/nb-NO.d.ts +4 -0
  560. package/es/shared/locales/nb-NO.js +5 -1
  561. package/es/shared/locales/nb-NO.js.map +1 -1
  562. package/es/shared/useTheme.d.ts +4 -10
  563. package/es/shared/useTheme.js +7 -5
  564. package/es/shared/useTheme.js.map +1 -1
  565. package/es/style/core/scopes.scss +1 -1
  566. package/es/style/dnb-ui-basis.css +1 -1
  567. package/es/style/dnb-ui-basis.min.css +1 -1
  568. package/es/style/dnb-ui-body.css +1 -1
  569. package/es/style/dnb-ui-body.min.css +1 -1
  570. package/es/style/dnb-ui-components.css +26 -0
  571. package/es/style/dnb-ui-components.min.css +3 -3
  572. package/es/style/dnb-ui-components.scss +1 -0
  573. package/es/style/dnb-ui-core.css +1 -1
  574. package/es/style/dnb-ui-core.min.css +1 -1
  575. package/es/style/dnb-ui-extensions.css +3 -0
  576. package/es/style/dnb-ui-extensions.min.css +1 -1
  577. package/es/style/dnb-ui-forms.css +3 -0
  578. package/es/style/dnb-ui-forms.min.css +1 -1
  579. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +29 -0
  580. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  581. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -0
  582. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  583. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +3 -0
  584. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  585. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +29 -0
  586. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  587. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -0
  588. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  589. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +3 -0
  590. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  591. package/es/style/themes/theme-ui/ui-theme-components.css +29 -0
  592. package/es/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  593. package/es/style/themes/theme-ui/ui-theme-extensions.css +3 -0
  594. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  595. package/es/style/themes/theme-ui/ui-theme-forms.css +3 -0
  596. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  597. package/esm/dnb-ui-basis.min.mjs +1 -1
  598. package/esm/dnb-ui-components.min.mjs +1 -1
  599. package/esm/dnb-ui-elements.min.mjs +1 -1
  600. package/esm/dnb-ui-extensions.min.mjs +5 -5
  601. package/esm/dnb-ui-lib.min.mjs +1 -1
  602. package/extensions/forms/DataContext/Context.d.ts +10 -5
  603. package/extensions/forms/DataContext/Context.js.map +1 -1
  604. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +8 -0
  605. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  606. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +9 -1
  607. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  608. package/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
  609. package/extensions/forms/DataContext/Provider/Provider.js +48 -26
  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 +16 -3
  614. package/extensions/forms/Field/ArraySelection/ArraySelection.js +37 -24
  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/Email/Email.js +1 -1
  619. package/extensions/forms/Field/Email/Email.js.map +1 -1
  620. package/extensions/forms/Field/Name/Name.js +2 -2
  621. package/extensions/forms/Field/Name/Name.js.map +1 -1
  622. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +23 -4
  623. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  624. package/extensions/forms/Field/Number/Number.d.ts +2 -2
  625. package/extensions/forms/Field/Number/Number.js +33 -31
  626. package/extensions/forms/Field/Number/Number.js.map +1 -1
  627. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +3 -1
  628. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +8 -1
  629. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  630. package/extensions/forms/Field/Selection/Selection.d.ts +4 -1
  631. package/extensions/forms/Field/Selection/Selection.js +27 -20
  632. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  633. package/extensions/forms/Field/Selection/SelectionDocs.js +6 -1
  634. package/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  635. package/extensions/forms/FieldBlock/FieldBlock.js +3 -3
  636. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  637. package/extensions/forms/Form/Element/Element.js +9 -9
  638. package/extensions/forms/Form/Element/Element.js.map +1 -1
  639. package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  640. package/extensions/forms/Form/Handler/Handler.js +1 -3
  641. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  642. package/extensions/forms/Form/Isolation/Isolation.d.ts +1 -1
  643. package/extensions/forms/Form/Isolation/Isolation.js +26 -8
  644. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  645. package/extensions/forms/Form/Isolation/IsolationDocs.js +0 -1
  646. package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  647. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +13 -5
  648. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  649. package/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js +10 -11
  650. package/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js.map +1 -1
  651. package/extensions/forms/Form/Section/Section.js.map +1 -1
  652. package/extensions/forms/Form/data-context/useData.js +9 -7
  653. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  654. package/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js +3 -3
  655. package/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js.map +1 -1
  656. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +2 -2
  657. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  658. package/extensions/forms/Iterate/Array/Array.js +7 -5
  659. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  660. package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +1 -3
  661. package/extensions/forms/Iterate/EditContainer/EditContainer.js +26 -20
  662. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  663. package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +10 -0
  664. package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  665. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +44 -14
  666. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  667. package/{es/extensions/forms/Iterate/IterateElementContext.d.ts → extensions/forms/Iterate/IterateItemContext.d.ts} +3 -3
  668. package/extensions/forms/Iterate/IterateItemContext.js +4 -0
  669. package/extensions/forms/Iterate/IterateItemContext.js.map +1 -0
  670. package/extensions/forms/Iterate/PushButton/PushButton.js +3 -3
  671. package/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  672. package/extensions/forms/Iterate/PushButton/PushButtonDocs.js +5 -0
  673. package/extensions/forms/Iterate/PushButton/PushButtonDocs.js.map +1 -1
  674. package/extensions/forms/Iterate/PushContainer/OpenButton.d.ts +4 -0
  675. package/extensions/forms/Iterate/PushContainer/OpenButton.js +32 -0
  676. package/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -0
  677. package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +37 -0
  678. package/extensions/forms/Iterate/PushContainer/PushContainer.js +83 -0
  679. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -0
  680. package/extensions/forms/Iterate/PushContainer/PushContainerContext.d.ts +11 -0
  681. package/extensions/forms/Iterate/PushContainer/PushContainerContext.js +6 -0
  682. package/extensions/forms/Iterate/PushContainer/PushContainerContext.js.map +1 -0
  683. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.d.ts +3 -0
  684. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +34 -0
  685. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -0
  686. package/extensions/forms/Iterate/PushContainer/index.d.ts +2 -0
  687. package/extensions/forms/Iterate/PushContainer/index.js +3 -0
  688. package/extensions/forms/Iterate/PushContainer/index.js.map +1 -0
  689. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +4 -4
  690. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  691. package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +4 -0
  692. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +15 -6
  693. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  694. package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  695. package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  696. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +3 -3
  697. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  698. package/extensions/forms/Iterate/hooks/useItem.d.ts +1 -0
  699. package/extensions/forms/Iterate/hooks/useItem.js +9 -0
  700. package/extensions/forms/Iterate/hooks/useItem.js.map +1 -0
  701. package/extensions/forms/Iterate/index.d.ts +3 -1
  702. package/extensions/forms/Iterate/index.js +3 -1
  703. package/extensions/forms/Iterate/index.js.map +1 -1
  704. package/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +19 -0
  705. package/extensions/forms/Value/ArraySelection/ArraySelection.js +70 -0
  706. package/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -0
  707. package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.d.ts +2 -0
  708. package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +8 -0
  709. package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -0
  710. package/extensions/forms/Value/ArraySelection/index.d.ts +2 -0
  711. package/extensions/forms/Value/ArraySelection/index.js +3 -0
  712. package/extensions/forms/Value/ArraySelection/index.js.map +1 -0
  713. package/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +7 -0
  714. package/extensions/forms/Value/SelectCountry/SelectCountry.js +44 -0
  715. package/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -0
  716. package/extensions/forms/Value/SelectCountry/index.d.ts +2 -0
  717. package/extensions/forms/Value/SelectCountry/index.js +3 -0
  718. package/extensions/forms/Value/SelectCountry/index.js.map +1 -0
  719. package/extensions/forms/Value/Selection/Selection.d.ts +9 -0
  720. package/extensions/forms/Value/Selection/Selection.js +48 -0
  721. package/extensions/forms/Value/Selection/Selection.js.map +1 -0
  722. package/extensions/forms/Value/Selection/SelectionDocs.d.ts +2 -0
  723. package/extensions/forms/Value/Selection/SelectionDocs.js +8 -0
  724. package/extensions/forms/Value/Selection/SelectionDocs.js.map +1 -0
  725. package/extensions/forms/Value/Selection/index.d.ts +2 -0
  726. package/extensions/forms/Value/Selection/index.js +3 -0
  727. package/extensions/forms/Value/Selection/index.js.map +1 -0
  728. package/extensions/forms/Value/ValueDocs.js +6 -1
  729. package/extensions/forms/Value/ValueDocs.js.map +1 -1
  730. package/extensions/forms/Value/index.d.ts +3 -0
  731. package/extensions/forms/Value/index.js +3 -0
  732. package/extensions/forms/Value/index.js.map +1 -1
  733. package/extensions/forms/ValueBlock/ValueBlock.js +7 -6
  734. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  735. package/extensions/forms/ValueBlock/style/dnb-value-block.css +3 -0
  736. package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  737. package/extensions/forms/ValueBlock/style/dnb-value-block.scss +3 -0
  738. package/extensions/forms/Wizard/Container/WizardContainer.js +27 -11
  739. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  740. package/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
  741. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  742. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +4 -4
  743. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  744. package/extensions/forms/constants/locales/en-GB.d.ts +5 -0
  745. package/extensions/forms/constants/locales/en-GB.js +6 -1
  746. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  747. package/extensions/forms/constants/locales/en-US.d.ts +5 -0
  748. package/extensions/forms/constants/locales/index.d.ts +10 -0
  749. package/extensions/forms/constants/locales/nb-NO.d.ts +5 -0
  750. package/extensions/forms/constants/locales/nb-NO.js +6 -1
  751. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  752. package/extensions/forms/hooks/DataValueDocs.js +3 -3
  753. package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  754. package/extensions/forms/hooks/useDataValue.d.ts +1 -0
  755. package/extensions/forms/hooks/useDataValue.js +11 -4
  756. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  757. package/extensions/forms/hooks/useExternalValue.js +4 -4
  758. package/extensions/forms/hooks/useExternalValue.js.map +1 -1
  759. package/extensions/forms/hooks/useFieldProps.js +11 -9
  760. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  761. package/extensions/forms/hooks/usePath.js +2 -2
  762. package/extensions/forms/hooks/usePath.js.map +1 -1
  763. package/extensions/forms/hooks/useValueProps.js +4 -1
  764. package/extensions/forms/hooks/useValueProps.js.map +1 -1
  765. package/extensions/forms/style/dnb-forms.css +3 -0
  766. package/extensions/forms/style/dnb-forms.min.css +1 -1
  767. package/extensions/forms/types.d.ts +9 -2
  768. package/extensions/forms/types.js.map +1 -1
  769. package/index.d.ts +2 -1
  770. package/index.js +2 -1
  771. package/index.js.map +1 -1
  772. package/package.json +2 -1
  773. package/shared/Context.js +4 -6
  774. package/shared/Context.js.map +1 -1
  775. package/shared/Eufemia.d.ts +1 -1
  776. package/shared/Eufemia.js +2 -2
  777. package/shared/Eufemia.js.map +1 -1
  778. package/shared/locales/en-GB.d.ts +4 -0
  779. package/shared/locales/en-GB.js +4 -0
  780. package/shared/locales/en-GB.js.map +1 -1
  781. package/shared/locales/en-US.d.ts +4 -0
  782. package/shared/locales/index.d.ts +8 -0
  783. package/shared/locales/nb-NO.d.ts +4 -0
  784. package/shared/locales/nb-NO.js +5 -1
  785. package/shared/locales/nb-NO.js.map +1 -1
  786. package/shared/useTheme.d.ts +4 -10
  787. package/shared/useTheme.js +7 -5
  788. package/shared/useTheme.js.map +1 -1
  789. package/style/core/scopes.scss +1 -1
  790. package/style/dnb-ui-basis.css +1 -1
  791. package/style/dnb-ui-basis.min.css +1 -1
  792. package/style/dnb-ui-body.css +1 -1
  793. package/style/dnb-ui-body.min.css +1 -1
  794. package/style/dnb-ui-components.css +26 -0
  795. package/style/dnb-ui-components.min.css +3 -3
  796. package/style/dnb-ui-components.scss +1 -0
  797. package/style/dnb-ui-core.css +1 -1
  798. package/style/dnb-ui-core.min.css +1 -1
  799. package/style/dnb-ui-extensions.css +3 -0
  800. package/style/dnb-ui-extensions.min.css +1 -1
  801. package/style/dnb-ui-forms.css +3 -0
  802. package/style/dnb-ui-forms.min.css +1 -1
  803. package/style/themes/theme-eiendom/eiendom-theme-components.css +29 -0
  804. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  805. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -0
  806. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  807. package/style/themes/theme-eiendom/eiendom-theme-forms.css +3 -0
  808. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  809. package/style/themes/theme-sbanken/sbanken-theme-components.css +29 -0
  810. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  811. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -0
  812. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  813. package/style/themes/theme-sbanken/sbanken-theme-forms.css +3 -0
  814. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  815. package/style/themes/theme-ui/ui-theme-components.css +29 -0
  816. package/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  817. package/style/themes/theme-ui/ui-theme-extensions.css +3 -0
  818. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  819. package/style/themes/theme-ui/ui-theme-forms.css +3 -0
  820. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  821. package/umd/dnb-ui-basis.min.js +1 -1
  822. package/umd/dnb-ui-components.min.js +1 -1
  823. package/umd/dnb-ui-elements.min.js +1 -1
  824. package/umd/dnb-ui-extensions.min.js +5 -5
  825. package/umd/dnb-ui-lib.min.js +1 -1
  826. package/cjs/extensions/forms/Iterate/IterateElementContext.js.map +0 -1
  827. package/es/extensions/forms/Iterate/IterateElementContext.js +0 -4
  828. package/es/extensions/forms/Iterate/IterateElementContext.js.map +0 -1
  829. package/extensions/forms/Iterate/IterateElementContext.js +0 -4
  830. package/extensions/forms/Iterate/IterateElementContext.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Isolation.js","names":["React","useCallback","useContext","useMemo","useReducer","useRef","pointer","extendDeep","Context","Provider","SectionContext","IsolationCommitButton","clearedData","structuredClone","IsolationProvider","props","children","onPathChange","onCommit","onCommitProp","onClear","onClearProp","transformOnCommit","transformOnCommitProp","commitHandleRef","data","defaultData","forceUpdate","internalDataRef","localDataRef","outerContext","path","pathSection","handlePathChange","handlePathChangeOuter","dataOuter","onPathChangeHandler","value","current","set","replace","removeSectionPath","has","get","localData","obj","mountedData","additionalArgs","_props$path","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 useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { extendDeep } from '../../../../shared/component-helper'\nimport { Context, 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 outerContext = useContext(Context)\n const { path: pathSection } = useContext(SectionContext) || {}\n const { handlePathChange: handlePathChangeOuter, data: dataOuter } =\n outerContext || {}\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 // 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 const obj = {} as Data\n pointer.set(obj, pathSection, localData)\n localData = obj\n }\n\n internalDataRef.current = extendDeep(\n {},\n dataOuter,\n localData || {},\n localDataRef.current\n ) as Data\n }, [data, defaultData, dataOuter, pathSection])\n\n const onCommit: IsolationProps<Data>['onCommit'] = useCallback(\n async (mountedData: Data, additionalArgs) => {\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 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 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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"}
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"}
@@ -18,27 +18,35 @@ export default function EditToolbarTools() {
18
18
  } = useContext(SectionContainerContext) || {};
19
19
  const {
20
20
  hasVisibleError,
21
- hasSubmitError
21
+ hasSubmitError,
22
+ hasError,
23
+ setShowBoundaryErrors
22
24
  } = useContext(FieldBoundaryContext) || {};
23
25
  const translation = useTranslation().SectionEditContainer;
24
26
  const [showError, setShowError] = useState(false);
25
27
  const cancelHandler = useCallback(() => {
26
28
  if (hasSubmitError) {
27
29
  setShowError(true);
30
+ setShowBoundaryErrors === null || setShowBoundaryErrors === void 0 ? void 0 : setShowBoundaryErrors(true);
28
31
  } else {
29
32
  setShowError(false);
33
+ setShowBoundaryErrors === null || setShowBoundaryErrors === void 0 ? void 0 : setShowBoundaryErrors(false);
30
34
  restoreOriginalData();
31
35
  switchContainerMode === null || switchContainerMode === void 0 ? void 0 : switchContainerMode('view');
32
36
  }
33
- }, [hasSubmitError, restoreOriginalData, switchContainerMode]);
37
+ }, [hasSubmitError, restoreOriginalData, setShowBoundaryErrors, switchContainerMode]);
34
38
  const doneHandler = useCallback(() => {
35
- if (hasVisibleError) {
36
- setShowError(true);
39
+ if (hasError) {
40
+ setShowBoundaryErrors === null || setShowBoundaryErrors === void 0 ? void 0 : setShowBoundaryErrors(true);
41
+ if (hasVisibleError) {
42
+ setShowError(true);
43
+ }
37
44
  } else {
38
45
  setShowError(false);
46
+ setShowBoundaryErrors === null || setShowBoundaryErrors === void 0 ? void 0 : setShowBoundaryErrors(false);
39
47
  switchContainerMode === null || switchContainerMode === void 0 ? void 0 : switchContainerMode('view');
40
48
  }
41
- }, [hasVisibleError, switchContainerMode]);
49
+ }, [hasVisibleError, hasError, setShowBoundaryErrors, switchContainerMode]);
42
50
  return React.createElement(React.Fragment, null, React.createElement(FormStatus, {
43
51
  show: showError && hasVisibleError,
44
52
  no_animation: false
@@ -1 +1 @@
1
- {"version":3,"file":"EditToolbarTools.js","names":["React","useCallback","useContext","useState","Button","Flex","FormStatus","useTranslation","SectionContainerContext","FieldBoundaryContext","check","close","useContainerDataStore","useEditContainerToolbar","EditToolbarTools","restoreOriginalData","switchContainerMode","hasVisibleError","hasSubmitError","translation","SectionEditContainer","showError","setShowError","cancelHandler","doneHandler","createElement","Fragment","show","no_animation","errorInSection","Horizontal","gap","variant","icon","icon_position","on_click","doneButton","cancelButton"],"sources":["../../../../../../../src/extensions/forms/Form/Section/EditContainer/EditToolbarTools.tsx"],"sourcesContent":["import React, { useCallback, useContext, useState } from 'react'\nimport { Button, Flex, FormStatus } from '../../../../../components'\nimport useTranslation from '../../../hooks/useTranslation'\nimport SectionContainerContext from '../containers/SectionContainerContext'\nimport FieldBoundaryContext from '../../../DataContext/FieldBoundary/FieldBoundaryContext'\nimport { check, close } from '../../../../../icons'\nimport useContainerDataStore from './useContainerDataStore'\nimport useEditContainerToolbar from './useEditContainerToolbar'\n\nexport default function EditToolbarTools() {\n useEditContainerToolbar()\n const { restoreOriginalData } = useContainerDataStore()\n\n const { switchContainerMode } = useContext(SectionContainerContext) || {}\n const { hasVisibleError, hasSubmitError } =\n useContext(FieldBoundaryContext) || {}\n\n const translation = useTranslation().SectionEditContainer\n\n const [showError, setShowError] = useState(false)\n\n const cancelHandler = useCallback(() => {\n if (hasSubmitError) {\n setShowError(true)\n } else {\n setShowError(false)\n restoreOriginalData()\n switchContainerMode?.('view')\n }\n }, [hasSubmitError, restoreOriginalData, switchContainerMode])\n const doneHandler = useCallback(() => {\n if (hasVisibleError) {\n setShowError(true)\n } else {\n setShowError(false)\n switchContainerMode?.('view')\n }\n }, [hasVisibleError, switchContainerMode])\n\n return (\n <>\n <FormStatus show={showError && hasVisibleError} no_animation={false}>\n {translation.errorInSection}\n </FormStatus>\n <Flex.Horizontal gap=\"large\">\n <Button\n variant=\"tertiary\"\n icon={check}\n icon_position=\"left\"\n on_click={doneHandler}\n >\n {translation.doneButton}\n </Button>\n\n <Button\n variant=\"tertiary\"\n icon={close}\n icon_position=\"left\"\n on_click={cancelHandler}\n >\n {translation.cancelButton}\n </Button>\n </Flex.Horizontal>\n </>\n )\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,QAAQ,QAAQ,OAAO;AAChE,SAASC,MAAM,EAAEC,IAAI,EAAEC,UAAU,QAAQ,2BAA2B;AACpE,OAAOC,cAAc,MAAM,+BAA+B;AAC1D,OAAOC,uBAAuB,MAAM,uCAAuC;AAC3E,OAAOC,oBAAoB,MAAM,yDAAyD;AAC1F,SAASC,KAAK,EAAEC,KAAK,QAAQ,sBAAsB;AACnD,OAAOC,qBAAqB,MAAM,yBAAyB;AAC3D,OAAOC,uBAAuB,MAAM,2BAA2B;AAE/D,eAAe,SAASC,gBAAgBA,CAAA,EAAG;EACzCD,uBAAuB,CAAC,CAAC;EACzB,MAAM;IAAEE;EAAoB,CAAC,GAAGH,qBAAqB,CAAC,CAAC;EAEvD,MAAM;IAAEI;EAAoB,CAAC,GAAGd,UAAU,CAACM,uBAAuB,CAAC,IAAI,CAAC,CAAC;EACzE,MAAM;IAAES,eAAe;IAAEC;EAAe,CAAC,GACvChB,UAAU,CAACO,oBAAoB,CAAC,IAAI,CAAC,CAAC;EAExC,MAAMU,WAAW,GAAGZ,cAAc,CAAC,CAAC,CAACa,oBAAoB;EAEzD,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGnB,QAAQ,CAAC,KAAK,CAAC;EAEjD,MAAMoB,aAAa,GAAGtB,WAAW,CAAC,MAAM;IACtC,IAAIiB,cAAc,EAAE;MAClBI,YAAY,CAAC,IAAI,CAAC;IACpB,CAAC,MAAM;MACLA,YAAY,CAAC,KAAK,CAAC;MACnBP,mBAAmB,CAAC,CAAC;MACrBC,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,MAAM,CAAC;IAC/B;EACF,CAAC,EAAE,CAACE,cAAc,EAAEH,mBAAmB,EAAEC,mBAAmB,CAAC,CAAC;EAC9D,MAAMQ,WAAW,GAAGvB,WAAW,CAAC,MAAM;IACpC,IAAIgB,eAAe,EAAE;MACnBK,YAAY,CAAC,IAAI,CAAC;IACpB,CAAC,MAAM;MACLA,YAAY,CAAC,KAAK,CAAC;MACnBN,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,MAAM,CAAC;IAC/B;EACF,CAAC,EAAE,CAACC,eAAe,EAAED,mBAAmB,CAAC,CAAC;EAE1C,OACEhB,KAAA,CAAAyB,aAAA,CAAAzB,KAAA,CAAA0B,QAAA,QACE1B,KAAA,CAAAyB,aAAA,CAACnB,UAAU;IAACqB,IAAI,EAAEN,SAAS,IAAIJ,eAAgB;IAACW,YAAY,EAAE;EAAM,GACjET,WAAW,CAACU,cACH,CAAC,EACb7B,KAAA,CAAAyB,aAAA,CAACpB,IAAI,CAACyB,UAAU;IAACC,GAAG,EAAC;EAAO,GAC1B/B,KAAA,CAAAyB,aAAA,CAACrB,MAAM;IACL4B,OAAO,EAAC,UAAU;IAClBC,IAAI,EAAEvB,KAAM;IACZwB,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAEX;EAAY,GAErBL,WAAW,CAACiB,UACP,CAAC,EAETpC,KAAA,CAAAyB,aAAA,CAACrB,MAAM;IACL4B,OAAO,EAAC,UAAU;IAClBC,IAAI,EAAEtB,KAAM;IACZuB,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAEZ;EAAc,GAEvBJ,WAAW,CAACkB,YACP,CACO,CACjB,CAAC;AAEP"}
1
+ {"version":3,"file":"EditToolbarTools.js","names":["React","useCallback","useContext","useState","Button","Flex","FormStatus","useTranslation","SectionContainerContext","FieldBoundaryContext","check","close","useContainerDataStore","useEditContainerToolbar","EditToolbarTools","restoreOriginalData","switchContainerMode","hasVisibleError","hasSubmitError","hasError","setShowBoundaryErrors","translation","SectionEditContainer","showError","setShowError","cancelHandler","doneHandler","createElement","Fragment","show","no_animation","errorInSection","Horizontal","gap","variant","icon","icon_position","on_click","doneButton","cancelButton"],"sources":["../../../../../../../src/extensions/forms/Form/Section/EditContainer/EditToolbarTools.tsx"],"sourcesContent":["import React, { useCallback, useContext, useState } from 'react'\nimport { Button, Flex, FormStatus } from '../../../../../components'\nimport useTranslation from '../../../hooks/useTranslation'\nimport SectionContainerContext from '../containers/SectionContainerContext'\nimport FieldBoundaryContext from '../../../DataContext/FieldBoundary/FieldBoundaryContext'\nimport { check, close } from '../../../../../icons'\nimport useContainerDataStore from './useContainerDataStore'\nimport useEditContainerToolbar from './useEditContainerToolbar'\n\nexport default function EditToolbarTools() {\n useEditContainerToolbar()\n const { restoreOriginalData } = useContainerDataStore()\n\n const { switchContainerMode } = useContext(SectionContainerContext) || {}\n const {\n hasVisibleError,\n hasSubmitError,\n hasError,\n setShowBoundaryErrors,\n } = useContext(FieldBoundaryContext) || {}\n\n const translation = useTranslation().SectionEditContainer\n\n const [showError, setShowError] = useState(false)\n\n const cancelHandler = useCallback(() => {\n if (hasSubmitError) {\n setShowError(true)\n setShowBoundaryErrors?.(true)\n } else {\n setShowError(false)\n setShowBoundaryErrors?.(false)\n restoreOriginalData()\n switchContainerMode?.('view')\n }\n }, [\n hasSubmitError,\n restoreOriginalData,\n setShowBoundaryErrors,\n switchContainerMode,\n ])\n const doneHandler = useCallback(() => {\n if (hasError) {\n setShowBoundaryErrors?.(true)\n if (hasVisibleError) {\n setShowError(true)\n }\n } else {\n setShowError(false)\n setShowBoundaryErrors?.(false)\n switchContainerMode?.('view')\n }\n }, [\n hasVisibleError,\n hasError,\n setShowBoundaryErrors,\n switchContainerMode,\n ])\n\n return (\n <>\n <FormStatus show={showError && hasVisibleError} no_animation={false}>\n {translation.errorInSection}\n </FormStatus>\n <Flex.Horizontal gap=\"large\">\n <Button\n variant=\"tertiary\"\n icon={check}\n icon_position=\"left\"\n on_click={doneHandler}\n >\n {translation.doneButton}\n </Button>\n\n <Button\n variant=\"tertiary\"\n icon={close}\n icon_position=\"left\"\n on_click={cancelHandler}\n >\n {translation.cancelButton}\n </Button>\n </Flex.Horizontal>\n </>\n )\n}\n"],"mappings":"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"}
@@ -1,26 +1,24 @@
1
1
  "use client";
2
2
 
3
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
3
  import { useCallback, useContext, useEffect, useRef } from 'react';
7
4
  import { extendDeep } from '../../../../../shared/component-helper';
8
5
  import DataContext from '../../../DataContext/Context';
6
+ import SectionContext from '../SectionContext';
9
7
  import SectionContainerContext from '../containers/SectionContainerContext';
10
8
  import useDataValue from '../../../hooks/useDataValue';
11
- import { usePath } from '../../../hooks';
12
9
  export default function useContainerDataStore() {
13
10
  const valueBackupRef = useRef();
14
11
  const {
15
- makePath
16
- } = usePath();
17
- const {
18
- getData
12
+ getData,
13
+ moveValueToPath
19
14
  } = useDataValue();
20
15
  const {
21
16
  data: dataFromContext,
22
17
  setData
23
18
  } = useContext(DataContext);
19
+ const {
20
+ path
21
+ } = useContext(SectionContext) || {};
24
22
  const {
25
23
  containerMode
26
24
  } = useContext(SectionContainerContext) || {};
@@ -33,12 +31,13 @@ export default function useContainerDataStore() {
33
31
  if (containerMode === 'view') {
34
32
  valueBackupRef.current = null;
35
33
  }
36
- }, [containerMode, getData, makePath]);
34
+ }, [containerMode, getData]);
37
35
  const restoreOriginalData = useCallback(() => {
38
36
  if (valueBackupRef.current) {
39
- setData === null || setData === void 0 ? void 0 : setData(extendDeep(_objectSpread({}, dataFromContext), valueBackupRef.current));
37
+ const data = extendDeep({}, dataFromContext, moveValueToPath(path, valueBackupRef.current));
38
+ setData === null || setData === void 0 ? void 0 : setData(data);
40
39
  }
41
- }, [dataFromContext, setData]);
40
+ }, [dataFromContext, moveValueToPath, path, setData]);
42
41
  return {
43
42
  restoreOriginalData
44
43
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useContainerDataStore.js","names":["useCallback","useContext","useEffect","useRef","extendDeep","DataContext","SectionContainerContext","useDataValue","usePath","useContainerDataStore","valueBackupRef","makePath","getData","data","dataFromContext","setData","containerMode","current","includeCurrentPath","restoreOriginalData","_objectSpread"],"sources":["../../../../../../../src/extensions/forms/Form/Section/EditContainer/useContainerDataStore.ts"],"sourcesContent":["import { useCallback, useContext, useEffect, useRef } from 'react'\nimport { extendDeep } from '../../../../../shared/component-helper'\nimport DataContext from '../../../DataContext/Context'\nimport SectionContainerContext from '../containers/SectionContainerContext'\nimport useDataValue from '../../../hooks/useDataValue'\nimport { usePath } from '../../../hooks'\n\nexport default function useContainerDataStore() {\n const valueBackupRef = useRef<unknown>()\n\n const { makePath } = usePath()\n const { getData } = useDataValue()\n const { data: dataFromContext, setData } = useContext(DataContext)\n // const { path } = useContext(SectionContext) || {}\n const { containerMode } = useContext(SectionContainerContext) || {}\n\n useEffect(() => {\n // console.log('path', path)\n if (containerMode === 'edit' && !valueBackupRef.current) {\n valueBackupRef.current = getData('/', {\n includeCurrentPath: true,\n })\n // console.log('dataFromContext', dataFromContext)\n // console.log('valueBackupRef.current', valueBackupRef.current)\n }\n if (containerMode === 'view') {\n valueBackupRef.current = null\n }\n }, [containerMode, getData, makePath])\n\n const restoreOriginalData = useCallback(() => {\n if (valueBackupRef.current) {\n setData?.(extendDeep({ ...dataFromContext }, valueBackupRef.current))\n }\n }, [dataFromContext, setData])\n\n return {\n restoreOriginalData,\n }\n}\n"],"mappings":";;;;;AAAA,SAASA,WAAW,EAAEC,UAAU,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAClE,SAASC,UAAU,QAAQ,wCAAwC;AACnE,OAAOC,WAAW,MAAM,8BAA8B;AACtD,OAAOC,uBAAuB,MAAM,uCAAuC;AAC3E,OAAOC,YAAY,MAAM,6BAA6B;AACtD,SAASC,OAAO,QAAQ,gBAAgB;AAExC,eAAe,SAASC,qBAAqBA,CAAA,EAAG;EAC9C,MAAMC,cAAc,GAAGP,MAAM,CAAU,CAAC;EAExC,MAAM;IAAEQ;EAAS,CAAC,GAAGH,OAAO,CAAC,CAAC;EAC9B,MAAM;IAAEI;EAAQ,CAAC,GAAGL,YAAY,CAAC,CAAC;EAClC,MAAM;IAAEM,IAAI,EAAEC,eAAe;IAAEC;EAAQ,CAAC,GAAGd,UAAU,CAACI,WAAW,CAAC;EAElE,MAAM;IAAEW;EAAc,CAAC,GAAGf,UAAU,CAACK,uBAAuB,CAAC,IAAI,CAAC,CAAC;EAEnEJ,SAAS,CAAC,MAAM;IAEd,IAAIc,aAAa,KAAK,MAAM,IAAI,CAACN,cAAc,CAACO,OAAO,EAAE;MACvDP,cAAc,CAACO,OAAO,GAAGL,OAAO,CAAC,GAAG,EAAE;QACpCM,kBAAkB,EAAE;MACtB,CAAC,CAAC;IAGJ;IACA,IAAIF,aAAa,KAAK,MAAM,EAAE;MAC5BN,cAAc,CAACO,OAAO,GAAG,IAAI;IAC/B;EACF,CAAC,EAAE,CAACD,aAAa,EAAEJ,OAAO,EAAED,QAAQ,CAAC,CAAC;EAEtC,MAAMQ,mBAAmB,GAAGnB,WAAW,CAAC,MAAM;IAC5C,IAAIU,cAAc,CAACO,OAAO,EAAE;MAC1BF,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAGX,UAAU,CAAAgB,aAAA,KAAMN,eAAe,GAAIJ,cAAc,CAACO,OAAO,CAAC,CAAC;IACvE;EACF,CAAC,EAAE,CAACH,eAAe,EAAEC,OAAO,CAAC,CAAC;EAE9B,OAAO;IACLI;EACF,CAAC;AACH"}
1
+ {"version":3,"file":"useContainerDataStore.js","names":["useCallback","useContext","useEffect","useRef","extendDeep","DataContext","SectionContext","SectionContainerContext","useDataValue","useContainerDataStore","valueBackupRef","getData","moveValueToPath","data","dataFromContext","setData","path","containerMode","current","includeCurrentPath","restoreOriginalData"],"sources":["../../../../../../../src/extensions/forms/Form/Section/EditContainer/useContainerDataStore.ts"],"sourcesContent":["import { useCallback, useContext, useEffect, useRef } from 'react'\nimport { extendDeep } from '../../../../../shared/component-helper'\nimport DataContext from '../../../DataContext/Context'\nimport SectionContext from '../SectionContext'\nimport SectionContainerContext from '../containers/SectionContainerContext'\nimport useDataValue from '../../../hooks/useDataValue'\n\nexport default function useContainerDataStore() {\n const valueBackupRef = useRef<unknown>()\n\n const { getData, moveValueToPath } = useDataValue()\n const { data: dataFromContext, setData } = useContext(DataContext)\n const { path } = useContext(SectionContext) || {}\n const { containerMode } = useContext(SectionContainerContext) || {}\n\n useEffect(() => {\n if (containerMode === 'edit' && !valueBackupRef.current) {\n valueBackupRef.current = getData('/', {\n includeCurrentPath: true,\n })\n }\n if (containerMode === 'view') {\n valueBackupRef.current = null\n }\n }, [containerMode, getData])\n\n const restoreOriginalData = useCallback(() => {\n if (valueBackupRef.current) {\n const data = extendDeep(\n {},\n dataFromContext,\n moveValueToPath(path, valueBackupRef.current)\n )\n setData?.(data)\n }\n }, [dataFromContext, moveValueToPath, path, setData])\n\n return {\n restoreOriginalData,\n }\n}\n"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,UAAU,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAClE,SAASC,UAAU,QAAQ,wCAAwC;AACnE,OAAOC,WAAW,MAAM,8BAA8B;AACtD,OAAOC,cAAc,MAAM,mBAAmB;AAC9C,OAAOC,uBAAuB,MAAM,uCAAuC;AAC3E,OAAOC,YAAY,MAAM,6BAA6B;AAEtD,eAAe,SAASC,qBAAqBA,CAAA,EAAG;EAC9C,MAAMC,cAAc,GAAGP,MAAM,CAAU,CAAC;EAExC,MAAM;IAAEQ,OAAO;IAAEC;EAAgB,CAAC,GAAGJ,YAAY,CAAC,CAAC;EACnD,MAAM;IAAEK,IAAI,EAAEC,eAAe;IAAEC;EAAQ,CAAC,GAAGd,UAAU,CAACI,WAAW,CAAC;EAClE,MAAM;IAAEW;EAAK,CAAC,GAAGf,UAAU,CAACK,cAAc,CAAC,IAAI,CAAC,CAAC;EACjD,MAAM;IAAEW;EAAc,CAAC,GAAGhB,UAAU,CAACM,uBAAuB,CAAC,IAAI,CAAC,CAAC;EAEnEL,SAAS,CAAC,MAAM;IACd,IAAIe,aAAa,KAAK,MAAM,IAAI,CAACP,cAAc,CAACQ,OAAO,EAAE;MACvDR,cAAc,CAACQ,OAAO,GAAGP,OAAO,CAAC,GAAG,EAAE;QACpCQ,kBAAkB,EAAE;MACtB,CAAC,CAAC;IACJ;IACA,IAAIF,aAAa,KAAK,MAAM,EAAE;MAC5BP,cAAc,CAACQ,OAAO,GAAG,IAAI;IAC/B;EACF,CAAC,EAAE,CAACD,aAAa,EAAEN,OAAO,CAAC,CAAC;EAE5B,MAAMS,mBAAmB,GAAGpB,WAAW,CAAC,MAAM;IAC5C,IAAIU,cAAc,CAACQ,OAAO,EAAE;MAC1B,MAAML,IAAI,GAAGT,UAAU,CACrB,CAAC,CAAC,EACFU,eAAe,EACfF,eAAe,CAACI,IAAI,EAAEN,cAAc,CAACQ,OAAO,CAC9C,CAAC;MACDH,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAGF,IAAI,CAAC;IACjB;EACF,CAAC,EAAE,CAACC,eAAe,EAAEF,eAAe,EAAEI,IAAI,EAAED,OAAO,CAAC,CAAC;EAErD,OAAO;IACLK;EACF,CAAC;AACH"}
@@ -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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"}
@@ -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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"}
@@ -2,13 +2,13 @@
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import React, { useContext } from 'react';
5
- import IterateElementContext from '../IterateElementContext';
5
+ import IterateItemContext from '../IterateItemContext';
6
6
  import { EditContainerWithoutToolbar } from '../EditContainer';
7
7
  function AnimatedContainer(props) {
8
- const iterateElementContext = useContext(IterateElementContext);
8
+ const iterateItemContext = useContext(IterateItemContext);
9
9
  const {
10
10
  isNew
11
- } = iterateElementContext !== null && iterateElementContext !== void 0 ? iterateElementContext : {};
11
+ } = iterateItemContext !== null && iterateItemContext !== void 0 ? iterateItemContext : {};
12
12
  return React.createElement(EditContainerWithoutToolbar, _extends({
13
13
  open: !isNew ? true : undefined
14
14
  }, props));
@@ -1 +1 @@
1
- {"version":3,"file":"AnimatedContainer.js","names":["React","useContext","IterateElementContext","EditContainerWithoutToolbar","AnimatedContainer","props","iterateElementContext","isNew","createElement","_extends","open","undefined","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport IterateElementContext from '../IterateElementContext'\nimport { EditContainerWithoutToolbar, AllProps } from '../EditContainer'\n\nfunction AnimatedContainer(props: AllProps) {\n const iterateElementContext = useContext(IterateElementContext)\n const { isNew } = iterateElementContext ?? {}\n\n return (\n <EditContainerWithoutToolbar\n open={!isNew ? true : undefined}\n {...props}\n />\n )\n}\n\nAnimatedContainer._supportsSpacingProps = true\nexport default AnimatedContainer\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,qBAAqB,MAAM,0BAA0B;AAC5D,SAASC,2BAA2B,QAAkB,kBAAkB;AAExE,SAASC,iBAAiBA,CAACC,KAAe,EAAE;EAC1C,MAAMC,qBAAqB,GAAGL,UAAU,CAACC,qBAAqB,CAAC;EAC/D,MAAM;IAAEK;EAAM,CAAC,GAAGD,qBAAqB,aAArBA,qBAAqB,cAArBA,qBAAqB,GAAI,CAAC,CAAC;EAE7C,OACEN,KAAA,CAAAQ,aAAA,CAACL,2BAA2B,EAAAM,QAAA;IAC1BC,IAAI,EAAE,CAACH,KAAK,GAAG,IAAI,GAAGI;EAAU,GAC5BN,KAAK,CACV,CAAC;AAEN;AAEAD,iBAAiB,CAACQ,qBAAqB,GAAG,IAAI;AAC9C,eAAeR,iBAAiB"}
1
+ {"version":3,"file":"AnimatedContainer.js","names":["React","useContext","IterateItemContext","EditContainerWithoutToolbar","AnimatedContainer","props","iterateItemContext","isNew","createElement","_extends","open","undefined","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport IterateItemContext from '../IterateItemContext'\nimport { EditContainerWithoutToolbar, AllProps } from '../EditContainer'\n\nfunction AnimatedContainer(props: AllProps) {\n const iterateItemContext = useContext(IterateItemContext)\n const { isNew } = iterateItemContext ?? {}\n\n return (\n <EditContainerWithoutToolbar\n open={!isNew ? true : undefined}\n {...props}\n />\n )\n}\n\nAnimatedContainer._supportsSpacingProps = true\nexport default AnimatedContainer\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,SAASC,2BAA2B,QAAkB,kBAAkB;AAExE,SAASC,iBAAiBA,CAACC,KAAe,EAAE;EAC1C,MAAMC,kBAAkB,GAAGL,UAAU,CAACC,kBAAkB,CAAC;EACzD,MAAM;IAAEK;EAAM,CAAC,GAAGD,kBAAkB,aAAlBA,kBAAkB,cAAlBA,kBAAkB,GAAI,CAAC,CAAC;EAE1C,OACEN,KAAA,CAAAQ,aAAA,CAACL,2BAA2B,EAAAM,QAAA;IAC1BC,IAAI,EAAE,CAACH,KAAK,GAAG,IAAI,GAAGI;EAAU,GAC5BN,KAAK,CACV,CAAC;AAEN;AAEAD,iBAAiB,CAACQ,qBAAqB,GAAG,IAAI;AAC9C,eAAeR,iBAAiB"}
@@ -6,13 +6,13 @@ const _excluded = ["mode", "open", "ariaLabel", "onAnimationEnd", "className", "
6
6
  import React, { useCallback, useContext, useEffect, useReducer, useRef } from 'react';
7
7
  import classnames from 'classnames';
8
8
  import { Flex, HeightAnimation } from '../../../../components';
9
- import IterateElementContext from '../IterateElementContext';
9
+ import IterateItemContext from '../IterateItemContext';
10
10
  import ElementBlockContext from './ElementBlockContext';
11
11
  import FieldBoundaryContext from '../../DataContext/FieldBoundary/FieldBoundaryContext';
12
12
  function ElementBlock(props) {
13
13
  const [, forceUpdate] = useReducer(() => ({}), {});
14
14
  const contextRef = useRef();
15
- contextRef.current = useContext(IterateElementContext) || {};
15
+ contextRef.current = useContext(IterateItemContext) || {};
16
16
  const {
17
17
  hasError,
18
18
  hasSubmitError
@@ -1 +1 @@
1
- {"version":3,"file":"ElementBlock.js","names":["React","useCallback","useContext","useEffect","useReducer","useRef","classnames","Flex","HeightAnimation","IterateElementContext","ElementBlockContext","FieldBoundaryContext","ElementBlock","props","forceUpdate","contextRef","current","hasError","hasSubmitError","containerMode","handleRemove","switchContainerMode","isNew","mode","open","ariaLabel","onAnimationEnd","className","children","openDelay","variant","restProps","_objectWithoutProperties","_excluded","openRef","isRemoving","setOpenState","setTimeout","handleAnimationEnd","state","preventFocusOnErrorOpening","_contextRef$current","_contextRef$current$e","_contextRef$current$e2","_contextRef$current$e3","elementRef","focus","call","window","requestAnimationFrame","_document$activeEleme","document","activeElement","closest","_contextRef$current2","elements","containerRef","querySelectorAll","length","e","_contextRef$current3","_contextRef$current3$","fulfillRemove","handleRemoveBlock","keepItems","createElement","Provider","value","duration","keepInDOM","Stack","_extends","element","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/AnimatedContainer/ElementBlock.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useReducer,\n useRef,\n} from 'react'\nimport classnames from 'classnames'\nimport { Flex, HeightAnimation } from '../../../../components'\nimport IterateElementContext, {\n IterateElementContextState,\n} from '../IterateElementContext'\nimport ElementBlockContext from './ElementBlockContext'\nimport FieldBoundaryContext from '../../DataContext/FieldBoundary/FieldBoundaryContext'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport { ContainerMode } from '../Array/types'\n\nexport type ElementSectionProps = {\n /**\n * Defines the variant of the ViewContainer or EditContainer. Can be `outline`.\n * Defaults to `outline`.\n */\n variant?: 'outline' | 'basic'\n}\n\nexport type Props = {\n mode: ContainerMode\n open?: boolean | undefined\n ariaLabel?: string\n openDelay?: number\n} & ElementSectionProps\n\nfunction ElementBlock(props: Props & FlexContainerProps) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const contextRef = useRef<\n IterateElementContextState & {\n hasError?: boolean\n hasSubmitError?: boolean\n }\n >()\n contextRef.current = useContext(IterateElementContext) || {}\n\n const { hasError, hasSubmitError } =\n useContext(FieldBoundaryContext) || {}\n contextRef.current.hasError = hasError\n contextRef.current.hasSubmitError = hasSubmitError\n\n // - Set the container mode to \"edit\" if we have an error\n if (hasSubmitError) {\n contextRef.current.containerMode = 'edit'\n }\n\n const { handleRemove, switchContainerMode, containerMode, isNew } =\n contextRef.current\n\n const {\n mode,\n open,\n ariaLabel,\n onAnimationEnd,\n className,\n children,\n openDelay = 100,\n variant = 'outline',\n ...restProps\n } = props\n\n const openRef = useRef(open ?? (containerMode === mode && !isNew))\n const isRemoving = useRef(false)\n\n const setOpenState = useCallback((open: boolean) => {\n openRef.current = open\n forceUpdate()\n }, [])\n\n useEffect(() => {\n if (!isRemoving.current) {\n // - Set the open state, if it's controlled\n if (typeof open !== 'undefined') {\n setOpenState(open)\n } else {\n // - Open the block with animation, if it's in the right mode\n if (openRef.current !== (containerMode === mode)) {\n if (isNew) {\n setTimeout(() => {\n setOpenState(containerMode === mode)\n }, openDelay) // in order to apply the animation\n } else {\n setOpenState(containerMode === mode)\n }\n }\n }\n }\n }, [containerMode, isNew, mode, open, openDelay, setOpenState])\n\n // - Remove the block with animation, if it's in the right mode\n const handleAnimationEnd = useCallback(\n (state) => {\n // - Keep the block open if we have an error\n if (contextRef.current.hasSubmitError) {\n switchContainerMode?.('edit')\n }\n\n const preventFocusOnErrorOpening = !contextRef.current.hasSubmitError\n if (preventFocusOnErrorOpening) {\n if (state === 'opened') {\n contextRef.current?.elementRef?.current?.focus?.()\n } else {\n // Wait until the element is removed, then check if we can set focus\n window.requestAnimationFrame(() => {\n // try to focus on the second last element\n try {\n if (\n // But not when we focus is already inside our element\n !document.activeElement?.closest(\n '.dnb-forms-iterate__element'\n )\n ) {\n const elements =\n contextRef.current?.containerRef.current.querySelectorAll<HTMLDivElement>(\n '.dnb-forms-iterate__element'\n )\n elements[elements.length - 1].focus()\n }\n } catch (e) {\n /**/\n }\n })\n }\n }\n\n if (!openRef.current && isRemoving.current) {\n isRemoving.current = false\n contextRef.current?.fulfillRemove?.()\n }\n\n onAnimationEnd?.(state)\n },\n [onAnimationEnd, switchContainerMode]\n )\n const handleRemoveBlock = useCallback(() => {\n isRemoving.current = true\n handleRemove?.({ keepItems: true })\n setOpenState(false)\n }, [handleRemove, setOpenState])\n\n return (\n <ElementBlockContext.Provider value={{ handleRemoveBlock }}>\n <HeightAnimation\n className={classnames(\n 'dnb-forms-section-block',\n variant && `dnb-forms-section-block--variant-${variant}`,\n isNew && 'dnb-forms-section-block--new',\n contextRef.current.hasSubmitError &&\n 'dnb-forms-section-block--error',\n className\n )}\n open={openRef.current}\n onAnimationEnd={handleAnimationEnd}\n duration={450}\n keepInDOM // Ensure fields get mounted so they will sync with the data context\n >\n <Flex.Stack\n className=\"dnb-forms-section-block__inner\"\n {...restProps}\n element=\"section\"\n aria-label={ariaLabel}\n >\n {children}\n </Flex.Stack>\n </HeightAnimation>\n </ElementBlockContext.Provider>\n )\n}\n\nElementBlock._supportsSpacingProps = true\nexport default ElementBlock\n"],"mappings":"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"}
1
+ {"version":3,"file":"ElementBlock.js","names":["React","useCallback","useContext","useEffect","useReducer","useRef","classnames","Flex","HeightAnimation","IterateItemContext","ElementBlockContext","FieldBoundaryContext","ElementBlock","props","forceUpdate","contextRef","current","hasError","hasSubmitError","containerMode","handleRemove","switchContainerMode","isNew","mode","open","ariaLabel","onAnimationEnd","className","children","openDelay","variant","restProps","_objectWithoutProperties","_excluded","openRef","isRemoving","setOpenState","setTimeout","handleAnimationEnd","state","preventFocusOnErrorOpening","_contextRef$current","_contextRef$current$e","_contextRef$current$e2","_contextRef$current$e3","elementRef","focus","call","window","requestAnimationFrame","_document$activeEleme","document","activeElement","closest","_contextRef$current2","elements","containerRef","querySelectorAll","length","e","_contextRef$current3","_contextRef$current3$","fulfillRemove","handleRemoveBlock","keepItems","createElement","Provider","value","duration","keepInDOM","Stack","_extends","element","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/AnimatedContainer/ElementBlock.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useReducer,\n useRef,\n} from 'react'\nimport classnames from 'classnames'\nimport { Flex, HeightAnimation } from '../../../../components'\nimport IterateItemContext, {\n IterateItemContextState,\n} from '../IterateItemContext'\nimport ElementBlockContext from './ElementBlockContext'\nimport FieldBoundaryContext from '../../DataContext/FieldBoundary/FieldBoundaryContext'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport { ContainerMode } from '../Array/types'\n\nexport type ElementSectionProps = {\n /**\n * Defines the variant of the ViewContainer or EditContainer. Can be `outline`.\n * Defaults to `outline`.\n */\n variant?: 'outline' | 'basic'\n}\n\nexport type Props = {\n mode: ContainerMode\n open?: boolean | undefined\n ariaLabel?: string\n openDelay?: number\n} & ElementSectionProps\n\nfunction ElementBlock(props: Props & FlexContainerProps) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const contextRef = useRef<\n IterateItemContextState & {\n hasError?: boolean\n hasSubmitError?: boolean\n }\n >()\n contextRef.current = useContext(IterateItemContext) || {}\n\n const { hasError, hasSubmitError } =\n useContext(FieldBoundaryContext) || {}\n contextRef.current.hasError = hasError\n contextRef.current.hasSubmitError = hasSubmitError\n\n // - Set the container mode to \"edit\" if we have an error\n if (hasSubmitError) {\n contextRef.current.containerMode = 'edit'\n }\n\n const { handleRemove, switchContainerMode, containerMode, isNew } =\n contextRef.current\n\n const {\n mode,\n open,\n ariaLabel,\n onAnimationEnd,\n className,\n children,\n openDelay = 100,\n variant = 'outline',\n ...restProps\n } = props\n\n const openRef = useRef(open ?? (containerMode === mode && !isNew))\n const isRemoving = useRef(false)\n\n const setOpenState = useCallback((open: boolean) => {\n openRef.current = open\n forceUpdate()\n }, [])\n\n useEffect(() => {\n if (!isRemoving.current) {\n // - Set the open state, if it's controlled\n if (typeof open !== 'undefined') {\n setOpenState(open)\n } else {\n // - Open the block with animation, if it's in the right mode\n if (openRef.current !== (containerMode === mode)) {\n if (isNew) {\n setTimeout(() => {\n setOpenState(containerMode === mode)\n }, openDelay) // in order to apply the animation\n } else {\n setOpenState(containerMode === mode)\n }\n }\n }\n }\n }, [containerMode, isNew, mode, open, openDelay, setOpenState])\n\n // - Remove the block with animation, if it's in the right mode\n const handleAnimationEnd = useCallback(\n (state) => {\n // - Keep the block open if we have an error\n if (contextRef.current.hasSubmitError) {\n switchContainerMode?.('edit')\n }\n\n const preventFocusOnErrorOpening = !contextRef.current.hasSubmitError\n if (preventFocusOnErrorOpening) {\n if (state === 'opened') {\n contextRef.current?.elementRef?.current?.focus?.()\n } else {\n // Wait until the element is removed, then check if we can set focus\n window.requestAnimationFrame(() => {\n // try to focus on the second last element\n try {\n if (\n // But not when we focus is already inside our element\n !document.activeElement?.closest(\n '.dnb-forms-iterate__element'\n )\n ) {\n const elements =\n contextRef.current?.containerRef.current.querySelectorAll<HTMLDivElement>(\n '.dnb-forms-iterate__element'\n )\n elements[elements.length - 1].focus()\n }\n } catch (e) {\n /**/\n }\n })\n }\n }\n\n if (!openRef.current && isRemoving.current) {\n isRemoving.current = false\n contextRef.current?.fulfillRemove?.()\n }\n\n onAnimationEnd?.(state)\n },\n [onAnimationEnd, switchContainerMode]\n )\n const handleRemoveBlock = useCallback(() => {\n isRemoving.current = true\n handleRemove?.({ keepItems: true })\n setOpenState(false)\n }, [handleRemove, setOpenState])\n\n return (\n <ElementBlockContext.Provider value={{ handleRemoveBlock }}>\n <HeightAnimation\n className={classnames(\n 'dnb-forms-section-block',\n variant && `dnb-forms-section-block--variant-${variant}`,\n isNew && 'dnb-forms-section-block--new',\n contextRef.current.hasSubmitError &&\n 'dnb-forms-section-block--error',\n className\n )}\n open={openRef.current}\n onAnimationEnd={handleAnimationEnd}\n duration={450}\n keepInDOM // Ensure fields get mounted so they will sync with the data context\n >\n <Flex.Stack\n className=\"dnb-forms-section-block__inner\"\n {...restProps}\n element=\"section\"\n aria-label={ariaLabel}\n >\n {children}\n </Flex.Stack>\n </HeightAnimation>\n </ElementBlockContext.Provider>\n )\n}\n\nElementBlock._supportsSpacingProps = true\nexport default ElementBlock\n"],"mappings":"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"}
@@ -11,12 +11,12 @@ import { makeUniqueId } from '../../../../shared/component-helper';
11
11
  import { Flex } from '../../../../components';
12
12
  import { pickSpacingProps } from '../../../../components/flex/utils';
13
13
  import { pickFlexContainerProps } from '../../../../components/flex/Container';
14
- import IterateElementContext from '../IterateElementContext';
14
+ import IterateItemContext from '../IterateItemContext';
15
15
  import SummaryListContext from '../../Value/SummaryList/SummaryListContext';
16
16
  import ValueBlockContext from '../../ValueBlock/ValueBlockContext';
17
17
  import FieldBoundaryProvider from '../../DataContext/FieldBoundary/FieldBoundaryProvider';
18
- import structuredClone from '@ungap/structured-clone';
19
18
  import useDataValue from '../../hooks/useDataValue';
19
+ import structuredClone from '@ungap/structured-clone';
20
20
  function ArrayComponent(props) {
21
21
  var _props$value;
22
22
  const [salt, forceUpdate] = useReducer(() => ({}), {});
@@ -91,7 +91,9 @@ function ArrayComponent(props) {
91
91
  }
92
92
  const isNew = isNewRef.current[id] || false;
93
93
  if (!modesRef.current[id]) {
94
- modesRef.current[id] = isNew ? 'edit' : 'view';
94
+ var _value$__containerMod;
95
+ modesRef.current[id] = (_value$__containerMod = value === null || value === void 0 ? void 0 : value['__containerMode']) !== null && _value$__containerMod !== void 0 ? _value$__containerMod : isNew ? 'edit' : 'view';
96
+ value === null || value === void 0 ? true : delete value['__containerMode'];
95
97
  }
96
98
  return {
97
99
  id,
@@ -174,7 +176,7 @@ function ArrayComponent(props) {
174
176
  });
175
177
  const content = Array.isArray(children) ? children.map(child => renderChildren(child)) : renderChildren(children);
176
178
  if (omitFlex) {
177
- return React.createElement(IterateElementContext.Provider, {
179
+ return React.createElement(IterateItemContext.Provider, {
178
180
  key: `element-${id}`,
179
181
  value: contextValue
180
182
  }, React.createElement(FieldBoundaryProvider, null, content));
@@ -184,7 +186,7 @@ function ArrayComponent(props) {
184
186
  tabIndex: -1,
185
187
  innerRef: elementRef,
186
188
  key: `element-${id}`
187
- }, React.createElement(IterateElementContext.Provider, {
189
+ }, React.createElement(IterateItemContext.Provider, {
188
190
  value: contextValue
189
191
  }, React.createElement(FieldBoundaryProvider, null, content)));
190
192
  }));