@dnb/eufemia 10.68.1 → 10.69.1

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 (540) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/cjs/components/autocomplete/Autocomplete.js +1 -1
  3. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  4. package/cjs/components/global-error/GlobalError.d.ts +1 -1
  5. package/cjs/components/global-error/GlobalError.js +1 -1
  6. package/cjs/components/global-error/GlobalError.js.map +1 -1
  7. package/cjs/components/global-error/GlobalErrorDocs.d.ts +2 -0
  8. package/cjs/components/global-error/GlobalErrorDocs.js +64 -0
  9. package/cjs/components/global-error/GlobalErrorDocs.js.map +1 -0
  10. package/cjs/components/info-card/InfoCard.d.ts +4 -0
  11. package/cjs/components/info-card/InfoCard.js +29 -25
  12. package/cjs/components/info-card/InfoCard.js.map +1 -1
  13. package/cjs/components/info-card/InfoCardDocs.d.ts +3 -0
  14. package/cjs/components/info-card/InfoCardDocs.js +101 -0
  15. package/cjs/components/info-card/InfoCardDocs.js.map +1 -0
  16. package/cjs/components/info-card/style/dnb-info-card.css +5 -0
  17. package/cjs/components/info-card/style/dnb-info-card.min.css +1 -1
  18. package/cjs/components/info-card/style/dnb-info-card.scss +7 -0
  19. package/cjs/components/number-format/NumberFormat.js +4 -2
  20. package/cjs/components/number-format/NumberFormat.js.map +1 -1
  21. package/cjs/components/number-format/NumberUtils.d.ts +3 -0
  22. package/cjs/components/number-format/NumberUtils.js +5 -4
  23. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  24. package/cjs/components/table/TableClickableHead.js +14 -3
  25. package/cjs/components/table/TableClickableHead.js.map +1 -1
  26. package/cjs/components/table/TableTr.js +4 -4
  27. package/cjs/components/table/TableTr.js.map +1 -1
  28. package/cjs/components/table/table-accordion/TableAccordionHead.d.ts +5 -0
  29. package/cjs/components/table/table-accordion/TableAccordionHead.js +27 -20
  30. package/cjs/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  31. package/cjs/components/table/table-navigation/TableNavigationHead.js +7 -4
  32. package/cjs/components/table/table-navigation/TableNavigationHead.js.map +1 -1
  33. package/cjs/components/tabs/Tabs.js +2 -2
  34. package/cjs/components/tabs/Tabs.js.map +1 -1
  35. package/cjs/components/upload/UploadFileList.js +2 -3
  36. package/cjs/components/upload/UploadFileList.js.map +1 -1
  37. package/cjs/extensions/forms/DataContext/Context.d.ts +2 -2
  38. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  39. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +4 -4
  40. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  41. package/cjs/extensions/forms/DataContext/Provider/Provider.js +35 -41
  42. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  43. package/cjs/extensions/forms/Field/Currency/Currency.d.ts +9 -1
  44. package/cjs/extensions/forms/Field/Currency/Currency.js +8 -3
  45. package/cjs/extensions/forms/Field/Currency/Currency.js.map +1 -1
  46. package/cjs/extensions/forms/Field/Currency/CurrencyDocs.js +1 -1
  47. package/cjs/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -1
  48. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +61 -3
  49. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -4
  50. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -2
  51. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  52. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrency.d.ts +51 -0
  53. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrency.js +289 -0
  54. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrency.js.map +1 -0
  55. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.d.ts +3 -0
  56. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +36 -0
  57. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -0
  58. package/cjs/extensions/forms/Field/SelectCurrency/index.d.ts +2 -0
  59. package/cjs/extensions/forms/Field/SelectCurrency/index.js +28 -0
  60. package/cjs/extensions/forms/Field/SelectCurrency/index.js.map +1 -0
  61. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  62. package/cjs/extensions/forms/Field/index.js +7 -0
  63. package/cjs/extensions/forms/Field/index.js.map +1 -1
  64. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -2
  65. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +2 -2
  66. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  67. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  68. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  69. package/cjs/extensions/forms/Form/Isolation/Isolation.js +3 -4
  70. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  71. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +1 -10
  72. package/cjs/extensions/forms/Form/Visibility/Visibility.js +1 -0
  73. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  74. package/cjs/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -1
  75. package/cjs/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
  76. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +1 -1
  77. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  78. package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
  79. package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  80. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -2
  81. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  82. package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js +1 -1
  83. package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
  84. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
  85. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  86. package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js +1 -1
  87. package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
  88. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +9 -2
  89. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  90. package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
  91. package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  92. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
  93. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  94. package/cjs/extensions/forms/Value/Currency/Currency.d.ts +7 -1
  95. package/cjs/extensions/forms/Value/Currency/Currency.js.map +1 -1
  96. package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +2 -1
  97. package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -1
  98. package/cjs/extensions/forms/Value/SelectCurrency/SelectCurrency.d.ts +9 -0
  99. package/cjs/extensions/forms/Value/SelectCurrency/SelectCurrency.js +37 -0
  100. package/cjs/extensions/forms/Value/SelectCurrency/SelectCurrency.js.map +1 -0
  101. package/cjs/extensions/forms/Value/SelectCurrency/index.d.ts +2 -0
  102. package/cjs/extensions/forms/Value/SelectCurrency/index.js +28 -0
  103. package/cjs/extensions/forms/Value/SelectCurrency/index.js.map +1 -0
  104. package/cjs/extensions/forms/Value/SelectCurrency/useCurrency.d.ts +4 -0
  105. package/cjs/extensions/forms/Value/SelectCurrency/useCurrency.js +32 -0
  106. package/cjs/extensions/forms/Value/SelectCurrency/useCurrency.js.map +1 -0
  107. package/cjs/extensions/forms/Value/index.d.ts +1 -0
  108. package/cjs/extensions/forms/Value/index.js +7 -0
  109. package/cjs/extensions/forms/Value/index.js.map +1 -1
  110. package/cjs/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
  111. package/cjs/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
  112. package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js +10 -5
  113. package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
  114. package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +4 -3
  115. package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js +38 -32
  116. package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
  117. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +106 -57
  118. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  119. package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.d.ts +10 -0
  120. package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.js +66 -0
  121. package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -0
  122. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +18 -4
  123. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  124. package/cjs/extensions/forms/Wizard/Context/types.d.ts +9 -6
  125. package/cjs/extensions/forms/Wizard/Context/types.js.map +1 -1
  126. package/cjs/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  127. package/cjs/extensions/forms/Wizard/Step/Step.js +65 -22
  128. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  129. package/cjs/extensions/forms/Wizard/Step/StepDocs.js +2 -2
  130. package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  131. package/cjs/extensions/forms/Wizard/hooks/useStep.js +10 -18
  132. package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  133. package/cjs/extensions/forms/constants/allCurrencies.d.ts +1786 -0
  134. package/cjs/extensions/forms/constants/allCurrencies.js +1447 -0
  135. package/cjs/extensions/forms/constants/allCurrencies.js.map +1 -0
  136. package/cjs/extensions/forms/constants/countries.d.ts +4023 -4
  137. package/cjs/extensions/forms/constants/countries.js.map +1 -1
  138. package/cjs/extensions/forms/constants/currencies.d.ts +716 -0
  139. package/cjs/extensions/forms/constants/currencies.js +12 -0
  140. package/cjs/extensions/forms/constants/currencies.js.map +1 -0
  141. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +5 -0
  142. package/cjs/extensions/forms/constants/locales/en-GB.js +5 -0
  143. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  144. package/cjs/extensions/forms/constants/locales/en-US.d.ts +5 -0
  145. package/cjs/extensions/forms/constants/locales/index.d.ts +10 -0
  146. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +5 -0
  147. package/cjs/extensions/forms/constants/locales/nb-NO.js +5 -0
  148. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  149. package/cjs/extensions/forms/constants/locales/sv-SE.d.ts +5 -0
  150. package/cjs/extensions/forms/constants/locales/sv-SE.js +5 -0
  151. package/cjs/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  152. package/cjs/extensions/forms/hooks/useFieldProps.js +32 -23
  153. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  154. package/cjs/extensions/forms/hooks/useValueProps.js +1 -1
  155. package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
  156. package/cjs/extensions/forms/types.d.ts +4 -4
  157. package/cjs/extensions/forms/types.js.map +1 -1
  158. package/cjs/shared/Eufemia.d.ts +1 -1
  159. package/cjs/shared/Eufemia.js +2 -2
  160. package/cjs/shared/Eufemia.js.map +1 -1
  161. package/cjs/shared/component-helper.js +1 -1
  162. package/cjs/shared/component-helper.js.map +1 -1
  163. package/cjs/style/core/scopes.scss +1 -1
  164. package/cjs/style/dnb-ui-basis.css +1 -1
  165. package/cjs/style/dnb-ui-basis.min.css +1 -1
  166. package/cjs/style/dnb-ui-body.css +1 -1
  167. package/cjs/style/dnb-ui-body.min.css +1 -1
  168. package/cjs/style/dnb-ui-components.css +5 -0
  169. package/cjs/style/dnb-ui-components.min.css +1 -1
  170. package/cjs/style/dnb-ui-core.css +1 -1
  171. package/cjs/style/dnb-ui-core.min.css +1 -1
  172. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +5 -0
  173. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  174. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +5 -0
  175. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  176. package/cjs/style/themes/theme-ui/ui-theme-components.css +5 -0
  177. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  178. package/components/autocomplete/Autocomplete.js +1 -1
  179. package/components/autocomplete/Autocomplete.js.map +1 -1
  180. package/components/global-error/GlobalError.d.ts +1 -1
  181. package/components/global-error/GlobalError.js +1 -1
  182. package/components/global-error/GlobalError.js.map +1 -1
  183. package/components/global-error/GlobalErrorDocs.d.ts +2 -0
  184. package/components/global-error/GlobalErrorDocs.js +58 -0
  185. package/components/global-error/GlobalErrorDocs.js.map +1 -0
  186. package/components/info-card/InfoCard.d.ts +4 -0
  187. package/components/info-card/InfoCard.js +26 -25
  188. package/components/info-card/InfoCard.js.map +1 -1
  189. package/components/info-card/InfoCardDocs.d.ts +3 -0
  190. package/components/info-card/InfoCardDocs.js +95 -0
  191. package/components/info-card/InfoCardDocs.js.map +1 -0
  192. package/components/info-card/style/dnb-info-card.css +5 -0
  193. package/components/info-card/style/dnb-info-card.min.css +1 -1
  194. package/components/info-card/style/dnb-info-card.scss +7 -0
  195. package/components/number-format/NumberFormat.js +4 -2
  196. package/components/number-format/NumberFormat.js.map +1 -1
  197. package/components/number-format/NumberUtils.d.ts +3 -0
  198. package/components/number-format/NumberUtils.js +5 -4
  199. package/components/number-format/NumberUtils.js.map +1 -1
  200. package/components/table/TableClickableHead.js +12 -3
  201. package/components/table/TableClickableHead.js.map +1 -1
  202. package/components/table/TableTr.js +4 -4
  203. package/components/table/TableTr.js.map +1 -1
  204. package/components/table/table-accordion/TableAccordionHead.d.ts +5 -0
  205. package/components/table/table-accordion/TableAccordionHead.js +28 -21
  206. package/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  207. package/components/table/table-navigation/TableNavigationHead.js +4 -4
  208. package/components/table/table-navigation/TableNavigationHead.js.map +1 -1
  209. package/components/tabs/Tabs.js +2 -2
  210. package/components/tabs/Tabs.js.map +1 -1
  211. package/components/upload/UploadFileList.js +2 -3
  212. package/components/upload/UploadFileList.js.map +1 -1
  213. package/es/components/autocomplete/Autocomplete.js +1 -1
  214. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  215. package/es/components/global-error/GlobalError.d.ts +1 -1
  216. package/es/components/global-error/GlobalError.js +1 -1
  217. package/es/components/global-error/GlobalError.js.map +1 -1
  218. package/es/components/global-error/GlobalErrorDocs.d.ts +2 -0
  219. package/es/components/global-error/GlobalErrorDocs.js +58 -0
  220. package/es/components/global-error/GlobalErrorDocs.js.map +1 -0
  221. package/es/components/info-card/InfoCard.d.ts +4 -0
  222. package/es/components/info-card/InfoCard.js +26 -25
  223. package/es/components/info-card/InfoCard.js.map +1 -1
  224. package/es/components/info-card/InfoCardDocs.d.ts +3 -0
  225. package/es/components/info-card/InfoCardDocs.js +95 -0
  226. package/es/components/info-card/InfoCardDocs.js.map +1 -0
  227. package/es/components/info-card/style/dnb-info-card.css +5 -0
  228. package/es/components/info-card/style/dnb-info-card.min.css +1 -1
  229. package/es/components/info-card/style/dnb-info-card.scss +7 -0
  230. package/es/components/number-format/NumberFormat.js +4 -2
  231. package/es/components/number-format/NumberFormat.js.map +1 -1
  232. package/es/components/number-format/NumberUtils.d.ts +3 -0
  233. package/es/components/number-format/NumberUtils.js +5 -4
  234. package/es/components/number-format/NumberUtils.js.map +1 -1
  235. package/es/components/table/TableClickableHead.js +12 -3
  236. package/es/components/table/TableClickableHead.js.map +1 -1
  237. package/es/components/table/TableTr.js +4 -4
  238. package/es/components/table/TableTr.js.map +1 -1
  239. package/es/components/table/table-accordion/TableAccordionHead.d.ts +5 -0
  240. package/es/components/table/table-accordion/TableAccordionHead.js +28 -21
  241. package/es/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  242. package/es/components/table/table-navigation/TableNavigationHead.js +4 -4
  243. package/es/components/table/table-navigation/TableNavigationHead.js.map +1 -1
  244. package/es/components/tabs/Tabs.js +2 -2
  245. package/es/components/tabs/Tabs.js.map +1 -1
  246. package/es/components/upload/UploadFileList.js +2 -3
  247. package/es/components/upload/UploadFileList.js.map +1 -1
  248. package/es/extensions/forms/DataContext/Context.d.ts +2 -2
  249. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  250. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +4 -4
  251. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  252. package/es/extensions/forms/DataContext/Provider/Provider.js +21 -29
  253. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  254. package/es/extensions/forms/Field/Currency/Currency.d.ts +9 -1
  255. package/es/extensions/forms/Field/Currency/Currency.js +8 -3
  256. package/es/extensions/forms/Field/Currency/Currency.js.map +1 -1
  257. package/es/extensions/forms/Field/Currency/CurrencyDocs.js +1 -1
  258. package/es/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -1
  259. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +61 -3
  260. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -4
  261. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -2
  262. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  263. package/es/extensions/forms/Field/SelectCurrency/SelectCurrency.d.ts +51 -0
  264. package/es/extensions/forms/Field/SelectCurrency/SelectCurrency.js +263 -0
  265. package/es/extensions/forms/Field/SelectCurrency/SelectCurrency.js.map +1 -0
  266. package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.d.ts +3 -0
  267. package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +28 -0
  268. package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -0
  269. package/es/extensions/forms/Field/SelectCurrency/index.d.ts +2 -0
  270. package/es/extensions/forms/Field/SelectCurrency/index.js +3 -0
  271. package/es/extensions/forms/Field/SelectCurrency/index.js.map +1 -0
  272. package/es/extensions/forms/Field/index.d.ts +1 -0
  273. package/es/extensions/forms/Field/index.js +1 -0
  274. package/es/extensions/forms/Field/index.js.map +1 -1
  275. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -2
  276. package/es/extensions/forms/FieldBlock/FieldBlock.js +2 -2
  277. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  278. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  279. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  280. package/es/extensions/forms/Form/Isolation/Isolation.js +3 -4
  281. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  282. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +1 -10
  283. package/es/extensions/forms/Form/Visibility/Visibility.js +1 -0
  284. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  285. package/es/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -1
  286. package/es/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
  287. package/es/extensions/forms/Form/Visibility/useVisibility.js +1 -1
  288. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  289. package/es/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
  290. package/es/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  291. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -2
  292. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  293. package/es/extensions/forms/Iterate/EditContainer/DoneButton.js +1 -1
  294. package/es/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
  295. package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
  296. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  297. package/es/extensions/forms/Iterate/PushContainer/OpenButton.js +1 -1
  298. package/es/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
  299. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +9 -2
  300. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  301. package/es/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
  302. package/es/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  303. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
  304. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  305. package/es/extensions/forms/Value/Currency/Currency.d.ts +7 -1
  306. package/es/extensions/forms/Value/Currency/Currency.js.map +1 -1
  307. package/es/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +2 -1
  308. package/es/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -1
  309. package/es/extensions/forms/Value/SelectCurrency/SelectCurrency.d.ts +9 -0
  310. package/es/extensions/forms/Value/SelectCurrency/SelectCurrency.js +29 -0
  311. package/es/extensions/forms/Value/SelectCurrency/SelectCurrency.js.map +1 -0
  312. package/es/extensions/forms/Value/SelectCurrency/index.d.ts +2 -0
  313. package/es/extensions/forms/Value/SelectCurrency/index.js +3 -0
  314. package/es/extensions/forms/Value/SelectCurrency/index.js.map +1 -0
  315. package/es/extensions/forms/Value/SelectCurrency/useCurrency.d.ts +4 -0
  316. package/es/extensions/forms/Value/SelectCurrency/useCurrency.js +26 -0
  317. package/es/extensions/forms/Value/SelectCurrency/useCurrency.js.map +1 -0
  318. package/es/extensions/forms/Value/index.d.ts +1 -0
  319. package/es/extensions/forms/Value/index.js +1 -0
  320. package/es/extensions/forms/Value/index.js.map +1 -1
  321. package/es/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
  322. package/es/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
  323. package/es/extensions/forms/Wizard/Container/DisplaySteps.js +10 -5
  324. package/es/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
  325. package/es/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +4 -3
  326. package/es/extensions/forms/Wizard/Container/IterateOverSteps.js +37 -31
  327. package/es/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
  328. package/es/extensions/forms/Wizard/Container/WizardContainer.js +103 -58
  329. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  330. package/es/extensions/forms/Wizard/Container/useCollectStepsData.d.ts +10 -0
  331. package/es/extensions/forms/Wizard/Container/useCollectStepsData.js +59 -0
  332. package/es/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -0
  333. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +18 -4
  334. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  335. package/es/extensions/forms/Wizard/Context/types.d.ts +9 -6
  336. package/es/extensions/forms/Wizard/Context/types.js.map +1 -1
  337. package/es/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  338. package/es/extensions/forms/Wizard/Step/Step.js +64 -22
  339. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  340. package/es/extensions/forms/Wizard/Step/StepDocs.js +2 -2
  341. package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  342. package/es/extensions/forms/Wizard/hooks/useStep.js +10 -18
  343. package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  344. package/es/extensions/forms/constants/allCurrencies.d.ts +1786 -0
  345. package/es/extensions/forms/constants/allCurrencies.js +1440 -0
  346. package/es/extensions/forms/constants/allCurrencies.js.map +1 -0
  347. package/es/extensions/forms/constants/countries.d.ts +4023 -4
  348. package/es/extensions/forms/constants/countries.js.map +1 -1
  349. package/es/extensions/forms/constants/currencies.d.ts +716 -0
  350. package/es/extensions/forms/constants/currencies.js +5 -0
  351. package/es/extensions/forms/constants/currencies.js.map +1 -0
  352. package/es/extensions/forms/constants/locales/en-GB.d.ts +5 -0
  353. package/es/extensions/forms/constants/locales/en-GB.js +5 -0
  354. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  355. package/es/extensions/forms/constants/locales/en-US.d.ts +5 -0
  356. package/es/extensions/forms/constants/locales/index.d.ts +10 -0
  357. package/es/extensions/forms/constants/locales/nb-NO.d.ts +5 -0
  358. package/es/extensions/forms/constants/locales/nb-NO.js +5 -0
  359. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  360. package/es/extensions/forms/constants/locales/sv-SE.d.ts +5 -0
  361. package/es/extensions/forms/constants/locales/sv-SE.js +5 -0
  362. package/es/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  363. package/es/extensions/forms/hooks/useFieldProps.js +32 -23
  364. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  365. package/es/extensions/forms/hooks/useValueProps.js +1 -1
  366. package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
  367. package/es/extensions/forms/types.d.ts +4 -4
  368. package/es/extensions/forms/types.js.map +1 -1
  369. package/es/shared/Eufemia.d.ts +1 -1
  370. package/es/shared/Eufemia.js +2 -2
  371. package/es/shared/Eufemia.js.map +1 -1
  372. package/es/shared/component-helper.js +1 -1
  373. package/es/shared/component-helper.js.map +1 -1
  374. package/es/style/core/scopes.scss +1 -1
  375. package/es/style/dnb-ui-basis.css +1 -1
  376. package/es/style/dnb-ui-basis.min.css +1 -1
  377. package/es/style/dnb-ui-body.css +1 -1
  378. package/es/style/dnb-ui-body.min.css +1 -1
  379. package/es/style/dnb-ui-components.css +5 -0
  380. package/es/style/dnb-ui-components.min.css +1 -1
  381. package/es/style/dnb-ui-core.css +1 -1
  382. package/es/style/dnb-ui-core.min.css +1 -1
  383. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +5 -0
  384. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  385. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +5 -0
  386. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  387. package/es/style/themes/theme-ui/ui-theme-components.css +5 -0
  388. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  389. package/esm/dnb-ui-basis.min.mjs +1 -1
  390. package/esm/dnb-ui-components.min.mjs +1 -1
  391. package/esm/dnb-ui-elements.min.mjs +1 -1
  392. package/esm/dnb-ui-extensions.min.mjs +1 -1
  393. package/esm/dnb-ui-lib.min.mjs +1 -1
  394. package/extensions/forms/DataContext/Context.d.ts +2 -2
  395. package/extensions/forms/DataContext/Context.js.map +1 -1
  396. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +4 -4
  397. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  398. package/extensions/forms/DataContext/Provider/Provider.js +35 -41
  399. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  400. package/extensions/forms/Field/Currency/Currency.d.ts +9 -1
  401. package/extensions/forms/Field/Currency/Currency.js +8 -3
  402. package/extensions/forms/Field/Currency/Currency.js.map +1 -1
  403. package/extensions/forms/Field/Currency/CurrencyDocs.js +1 -1
  404. package/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -1
  405. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +61 -3
  406. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -4
  407. package/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -2
  408. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  409. package/extensions/forms/Field/SelectCurrency/SelectCurrency.d.ts +51 -0
  410. package/extensions/forms/Field/SelectCurrency/SelectCurrency.js +275 -0
  411. package/extensions/forms/Field/SelectCurrency/SelectCurrency.js.map +1 -0
  412. package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.d.ts +3 -0
  413. package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +28 -0
  414. package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -0
  415. package/extensions/forms/Field/SelectCurrency/index.d.ts +2 -0
  416. package/extensions/forms/Field/SelectCurrency/index.js +3 -0
  417. package/extensions/forms/Field/SelectCurrency/index.js.map +1 -0
  418. package/extensions/forms/Field/index.d.ts +1 -0
  419. package/extensions/forms/Field/index.js +1 -0
  420. package/extensions/forms/Field/index.js.map +1 -1
  421. package/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -2
  422. package/extensions/forms/FieldBlock/FieldBlock.js +2 -2
  423. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  424. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  425. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  426. package/extensions/forms/Form/Isolation/Isolation.js +3 -4
  427. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  428. package/extensions/forms/Form/Visibility/Visibility.d.ts +1 -10
  429. package/extensions/forms/Form/Visibility/Visibility.js +1 -0
  430. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  431. package/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -1
  432. package/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
  433. package/extensions/forms/Form/Visibility/useVisibility.js +1 -1
  434. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  435. package/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
  436. package/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  437. package/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -2
  438. package/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  439. package/extensions/forms/Iterate/EditContainer/DoneButton.js +1 -1
  440. package/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
  441. package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
  442. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  443. package/extensions/forms/Iterate/PushContainer/OpenButton.js +1 -1
  444. package/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
  445. package/extensions/forms/Iterate/PushContainer/PushContainer.js +9 -2
  446. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  447. package/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
  448. package/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  449. package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
  450. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  451. package/extensions/forms/Value/Currency/Currency.d.ts +7 -1
  452. package/extensions/forms/Value/Currency/Currency.js.map +1 -1
  453. package/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +2 -1
  454. package/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -1
  455. package/extensions/forms/Value/SelectCurrency/SelectCurrency.d.ts +9 -0
  456. package/extensions/forms/Value/SelectCurrency/SelectCurrency.js +29 -0
  457. package/extensions/forms/Value/SelectCurrency/SelectCurrency.js.map +1 -0
  458. package/extensions/forms/Value/SelectCurrency/index.d.ts +2 -0
  459. package/extensions/forms/Value/SelectCurrency/index.js +3 -0
  460. package/extensions/forms/Value/SelectCurrency/index.js.map +1 -0
  461. package/extensions/forms/Value/SelectCurrency/useCurrency.d.ts +4 -0
  462. package/extensions/forms/Value/SelectCurrency/useCurrency.js +26 -0
  463. package/extensions/forms/Value/SelectCurrency/useCurrency.js.map +1 -0
  464. package/extensions/forms/Value/index.d.ts +1 -0
  465. package/extensions/forms/Value/index.js +1 -0
  466. package/extensions/forms/Value/index.js.map +1 -1
  467. package/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
  468. package/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
  469. package/extensions/forms/Wizard/Container/DisplaySteps.js +10 -5
  470. package/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
  471. package/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +4 -3
  472. package/extensions/forms/Wizard/Container/IterateOverSteps.js +38 -31
  473. package/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
  474. package/extensions/forms/Wizard/Container/WizardContainer.js +107 -58
  475. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  476. package/extensions/forms/Wizard/Container/useCollectStepsData.d.ts +10 -0
  477. package/extensions/forms/Wizard/Container/useCollectStepsData.js +60 -0
  478. package/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -0
  479. package/extensions/forms/Wizard/Context/WizardContext.d.ts +18 -4
  480. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  481. package/extensions/forms/Wizard/Context/types.d.ts +9 -6
  482. package/extensions/forms/Wizard/Context/types.js.map +1 -1
  483. package/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  484. package/extensions/forms/Wizard/Step/Step.js +66 -22
  485. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  486. package/extensions/forms/Wizard/Step/StepDocs.js +2 -2
  487. package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  488. package/extensions/forms/Wizard/hooks/useStep.js +10 -18
  489. package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  490. package/extensions/forms/constants/allCurrencies.d.ts +1786 -0
  491. package/extensions/forms/constants/allCurrencies.js +1441 -0
  492. package/extensions/forms/constants/allCurrencies.js.map +1 -0
  493. package/extensions/forms/constants/countries.d.ts +4023 -4
  494. package/extensions/forms/constants/countries.js.map +1 -1
  495. package/extensions/forms/constants/currencies.d.ts +716 -0
  496. package/extensions/forms/constants/currencies.js +6 -0
  497. package/extensions/forms/constants/currencies.js.map +1 -0
  498. package/extensions/forms/constants/locales/en-GB.d.ts +5 -0
  499. package/extensions/forms/constants/locales/en-GB.js +5 -0
  500. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  501. package/extensions/forms/constants/locales/en-US.d.ts +5 -0
  502. package/extensions/forms/constants/locales/index.d.ts +10 -0
  503. package/extensions/forms/constants/locales/nb-NO.d.ts +5 -0
  504. package/extensions/forms/constants/locales/nb-NO.js +5 -0
  505. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  506. package/extensions/forms/constants/locales/sv-SE.d.ts +5 -0
  507. package/extensions/forms/constants/locales/sv-SE.js +5 -0
  508. package/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  509. package/extensions/forms/hooks/useFieldProps.js +32 -23
  510. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  511. package/extensions/forms/hooks/useValueProps.js +1 -1
  512. package/extensions/forms/hooks/useValueProps.js.map +1 -1
  513. package/extensions/forms/types.d.ts +4 -4
  514. package/extensions/forms/types.js.map +1 -1
  515. package/package.json +1 -1
  516. package/shared/Eufemia.d.ts +1 -1
  517. package/shared/Eufemia.js +2 -2
  518. package/shared/Eufemia.js.map +1 -1
  519. package/shared/component-helper.js +1 -1
  520. package/shared/component-helper.js.map +1 -1
  521. package/style/core/scopes.scss +1 -1
  522. package/style/dnb-ui-basis.css +1 -1
  523. package/style/dnb-ui-basis.min.css +1 -1
  524. package/style/dnb-ui-body.css +1 -1
  525. package/style/dnb-ui-body.min.css +1 -1
  526. package/style/dnb-ui-components.css +5 -0
  527. package/style/dnb-ui-components.min.css +1 -1
  528. package/style/dnb-ui-core.css +1 -1
  529. package/style/dnb-ui-core.min.css +1 -1
  530. package/style/themes/theme-eiendom/eiendom-theme-components.css +5 -0
  531. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  532. package/style/themes/theme-sbanken/sbanken-theme-components.css +5 -0
  533. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  534. package/style/themes/theme-ui/ui-theme-components.css +5 -0
  535. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  536. package/umd/dnb-ui-basis.min.js +1 -1
  537. package/umd/dnb-ui-components.min.js +1 -1
  538. package/umd/dnb-ui-elements.min.js +1 -1
  539. package/umd/dnb-ui-extensions.min.js +1 -1
  540. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayItemArea.js","names":["React","useCallback","useContext","useReducer","useRef","classnames","Card","HeightAnimation","IterateItemContext","ArrayItemAreaContext","FieldBoundaryContext","useLayoutEffect","window","useEffect","ArrayItemArea","props","forceUpdate","mode","open","ariaLabel","onAnimationEnd","className","children","openDelay","variant","toolbarVariant","restProps","_objectWithoutProperties","_excluded","localContextRef","hasError","hasSubmitError","current","nextFocusElementRef","isNew","determineMode","value","initialContainerMode","Object","keys","length","containerMode","modeOptions","omitFocusManagement","editMode","switchContainerMode","preventUpdate","handleRemove","index","previousContainerMode","openRef","isRemoving","setOpenState","setTimeout","setFocus","state","_localContextRef$curr","_localContextRef$curr2","_localContextRef$curr3","_localContextRef$curr4","elementRef","focus","call","_nextFocusElementRef$","_nextFocusElementRef$2","handleAnimationEnd","_localContextRef$curr5","_localContextRef$curr6","fulfillRemove","handleRemoveItem","Array","from","parentElement","childNodes","at","e","keepItems","createElement","Provider","divider","duration","keepInDOM","_extends","stack","filled","innerSpace","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/Array/ArrayItemArea.tsx"],"sourcesContent":["import React, { useCallback, useContext, useReducer, useRef } from 'react'\nimport classnames from 'classnames'\nimport { Card, HeightAnimation } from '../../../../components'\nimport IterateItemContext, {\n IterateItemContextState,\n} from '../IterateItemContext'\nimport ArrayItemAreaContext from './ArrayItemAreaContext'\nimport FieldBoundaryContext from '../../DataContext/FieldBoundary/FieldBoundaryContext'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport { ContainerMode } from './types'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type ArrayItemAreaProps = {\n /**\n * Defines the variant of the ViewContainer, EditContainer or PushContainer. Can be `outline`, `filled` or `basic`.\n * Defaults to `outline`.\n */\n variant?: 'outline' | 'basic' | 'filled'\n toolbarVariant?: 'minimumOneItem' | 'custom'\n}\n\nexport type Props = {\n mode: ContainerMode\n open?: boolean | undefined\n ariaLabel?: string\n openDelay?: number\n} & ArrayItemAreaProps\n\nfunction ArrayItemArea(props: Props & FlexContainerProps) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n mode,\n open,\n ariaLabel,\n onAnimationEnd,\n className,\n children,\n openDelay = 100,\n variant = 'outline',\n toolbarVariant,\n ...restProps\n } = props\n\n const localContextRef = useRef<IterateItemContextState>()\n const { hasError, hasSubmitError } =\n useContext(FieldBoundaryContext) || {}\n localContextRef.current = useContext(IterateItemContext) || {}\n const nextFocusElementRef = useRef<HTMLElement>()\n const { isNew } = localContextRef.current\n\n const determineMode = useCallback(() => {\n const { value, initialContainerMode } = localContextRef.current\n if (initialContainerMode === 'auto') {\n // - Set the container mode to \"edit\" if we have an error\n if (\n hasSubmitError ||\n hasError ||\n !value ||\n (typeof value === 'object' && Object.keys(value).length === 0)\n ) {\n return 'edit'\n }\n }\n }, [hasError, hasSubmitError])\n\n if (determineMode() === 'edit') {\n localContextRef.current.containerMode = 'edit'\n if (!localContextRef.current.modeOptions) {\n localContextRef.current.modeOptions = {}\n }\n localContextRef.current.modeOptions.omitFocusManagement = true\n }\n if (localContextRef.current.containerMode === 'auto') {\n localContextRef.current.containerMode = 'view'\n }\n\n useLayoutEffect(() => {\n if (mode === 'edit') {\n const editMode = determineMode()\n if (editMode) {\n const { switchContainerMode } = localContextRef.current\n switchContainerMode?.(editMode, {\n omitFocusManagement: true,\n preventUpdate: true,\n })\n }\n }\n }, [determineMode, mode])\n\n const { handleRemove, index, previousContainerMode, containerMode } =\n localContextRef.current\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 useLayoutEffect(() => {\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 const setFocus = useCallback(\n (state) => {\n if (\n localContextRef.current.modeOptions?.omitFocusManagement !==\n true &&\n !hasSubmitError &&\n containerMode === mode && // ensure we match the correct mode\n containerMode !== previousContainerMode // ensure we have a new mode\n ) {\n if (state === 'opened') {\n localContextRef.current.elementRef?.current?.focus?.()\n } else if (state === 'closed') {\n nextFocusElementRef.current?.focus?.()\n }\n }\n },\n [containerMode, hasSubmitError, mode, previousContainerMode]\n )\n\n // - Remove the block with animation, if it's in the right mode\n const handleAnimationEnd = useCallback(\n (state) => {\n if (!openRef.current && isRemoving.current) {\n isRemoving.current = false\n localContextRef.current.fulfillRemove?.()\n }\n\n setFocus(state)\n onAnimationEnd?.(state)\n },\n [onAnimationEnd, setFocus]\n )\n\n const handleRemoveItem = useCallback(() => {\n try {\n // Because \"previousElementSibling\" did not work in Jest/JSDOM\n nextFocusElementRef.current = Array.from(\n localContextRef.current.elementRef.current.parentElement.childNodes\n ).at(index - 1) as HTMLElement\n } catch (e) {\n //\n }\n isRemoving.current = true\n setOpenState(false)\n handleRemove?.({ keepItems: true })\n }, [handleRemove, index, setOpenState])\n\n return (\n <ArrayItemAreaContext.Provider\n value={{\n handleRemoveItem,\n variant,\n toolbarVariant,\n divider: restProps.divider,\n }}\n >\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 hasSubmitError && '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 <Card\n stack\n filled={variant === 'filled'}\n innerSpace={variant === 'basic' ? false : 'small'}\n className=\"dnb-forms-section-block__inner\"\n {...restProps}\n aria-label={ariaLabel}\n >\n {children}\n </Card>\n </HeightAnimation>\n </ArrayItemAreaContext.Provider>\n )\n}\n\nArrayItemArea._supportsSpacingProps = true\nexport default ArrayItemArea\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ArrayItemArea.js","names":["React","useCallback","useContext","useReducer","useRef","classnames","Card","HeightAnimation","IterateItemContext","ArrayItemAreaContext","FieldBoundaryContext","useLayoutEffect","window","useEffect","ArrayItemArea","props","forceUpdate","mode","open","ariaLabel","onAnimationEnd","className","children","openDelay","variant","toolbarVariant","restProps","_objectWithoutProperties","_excluded","localContextRef","hasError","hasSubmitError","current","nextFocusElementRef","isNew","determineMode","value","initialContainerMode","Object","keys","length","containerMode","modeOptions","omitFocusManagement","editMode","switchContainerMode","preventUpdate","handleRemove","index","previousContainerMode","openRef","isRemoving","setOpenState","setTimeout","setFocus","state","_localContextRef$curr","_localContextRef$curr2","_localContextRef$curr3","_localContextRef$curr4","elementRef","focus","call","_nextFocusElementRef$","_nextFocusElementRef$2","handleAnimationEnd","_localContextRef$curr5","_localContextRef$curr6","fulfillRemove","handleRemoveItem","Array","from","parentElement","childNodes","at","e","keepItems","createElement","Provider","divider","duration","keepInDOM","_extends","stack","filled","innerSpace","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/Array/ArrayItemArea.tsx"],"sourcesContent":["import React, { useCallback, useContext, useReducer, useRef } from 'react'\nimport classnames from 'classnames'\nimport { Card, HeightAnimation } from '../../../../components'\nimport { HeightAnimationOnEndStates } from '../../../../components/height-animation/HeightAnimationInstance'\nimport { HeightAnimationProps } from '../../../../components/HeightAnimation'\nimport IterateItemContext, {\n IterateItemContextState,\n} from '../IterateItemContext'\nimport ArrayItemAreaContext from './ArrayItemAreaContext'\nimport FieldBoundaryContext from '../../DataContext/FieldBoundary/FieldBoundaryContext'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport { ContainerMode } from './types'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type ArrayItemAreaProps = {\n /**\n * Defines the variant of the ViewContainer, EditContainer or PushContainer. Can be `outline`, `filled` or `basic`.\n * Defaults to `outline`.\n */\n variant?: 'outline' | 'basic' | 'filled'\n toolbarVariant?: 'minimumOneItem' | 'custom'\n}\n\nexport type Props = {\n mode: ContainerMode\n open?: boolean | undefined\n ariaLabel?: string\n openDelay?: number\n} & ArrayItemAreaProps &\n Pick<HeightAnimationProps, 'onAnimationEnd'>\n\nfunction ArrayItemArea(\n props: Props & Omit<FlexContainerProps, 'onAnimationEnd'>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n mode,\n open,\n ariaLabel,\n onAnimationEnd,\n className,\n children,\n openDelay = 100,\n variant = 'outline',\n toolbarVariant,\n ...restProps\n } = props\n\n const localContextRef = useRef<IterateItemContextState>()\n const { hasError, hasSubmitError } =\n useContext(FieldBoundaryContext) || {}\n localContextRef.current = useContext(IterateItemContext) || {}\n const nextFocusElementRef = useRef<HTMLElement>()\n const { isNew } = localContextRef.current\n\n const determineMode = useCallback(() => {\n const { value, initialContainerMode } = localContextRef.current\n if (initialContainerMode === 'auto') {\n // - Set the container mode to \"edit\" if we have an error\n if (\n hasSubmitError ||\n hasError ||\n !value ||\n (typeof value === 'object' && Object.keys(value).length === 0)\n ) {\n return 'edit'\n }\n }\n }, [hasError, hasSubmitError])\n\n if (determineMode() === 'edit') {\n localContextRef.current.containerMode = 'edit'\n if (!localContextRef.current.modeOptions) {\n localContextRef.current.modeOptions = {}\n }\n localContextRef.current.modeOptions.omitFocusManagement = true\n }\n if (localContextRef.current.containerMode === 'auto') {\n localContextRef.current.containerMode = 'view'\n }\n\n useLayoutEffect(() => {\n if (mode === 'edit') {\n const editMode = determineMode()\n if (editMode) {\n const { switchContainerMode } = localContextRef.current\n switchContainerMode?.(editMode, {\n omitFocusManagement: true,\n preventUpdate: true,\n })\n }\n }\n }, [determineMode, mode])\n\n const { handleRemove, index, previousContainerMode, containerMode } =\n localContextRef.current\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 useLayoutEffect(() => {\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 const setFocus = useCallback(\n (state: HeightAnimationOnEndStates) => {\n if (\n localContextRef.current.modeOptions?.omitFocusManagement !==\n true &&\n !hasSubmitError &&\n containerMode === mode && // ensure we match the correct mode\n containerMode !== previousContainerMode // ensure we have a new mode\n ) {\n if (state === 'opened') {\n localContextRef.current.elementRef?.current?.focus?.()\n } else if (state === 'closed') {\n nextFocusElementRef.current?.focus?.()\n }\n }\n },\n [containerMode, hasSubmitError, mode, previousContainerMode]\n )\n\n // - Remove the block with animation, if it's in the right mode\n const handleAnimationEnd = useCallback(\n (state: HeightAnimationOnEndStates) => {\n if (!openRef.current && isRemoving.current) {\n isRemoving.current = false\n localContextRef.current.fulfillRemove?.()\n }\n\n setFocus(state)\n onAnimationEnd?.(state)\n },\n [onAnimationEnd, setFocus]\n )\n\n const handleRemoveItem = useCallback(() => {\n try {\n // Because \"previousElementSibling\" did not work in Jest/JSDOM\n nextFocusElementRef.current = Array.from(\n localContextRef.current.elementRef.current.parentElement.childNodes\n ).at(index - 1) as HTMLElement\n } catch (e) {\n //\n }\n isRemoving.current = true\n setOpenState(false)\n handleRemove?.({ keepItems: true })\n }, [handleRemove, index, setOpenState])\n\n return (\n <ArrayItemAreaContext.Provider\n value={{\n handleRemoveItem,\n variant,\n toolbarVariant,\n divider: restProps.divider,\n }}\n >\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 hasSubmitError && '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 <Card\n stack\n filled={variant === 'filled'}\n innerSpace={variant === 'basic' ? false : 'small'}\n className=\"dnb-forms-section-block__inner\"\n {...restProps}\n aria-label={ariaLabel}\n >\n {children}\n </Card>\n </HeightAnimation>\n </ArrayItemAreaContext.Provider>\n )\n}\n\nArrayItemArea._supportsSpacingProps = true\nexport default ArrayItemArea\n"],"mappings":"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","ignoreList":[]}
@@ -3,8 +3,9 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
5
  var _Fragment;
6
- const _excluded = ["onClick"];
6
+ const _excluded = ["onClick", "className"];
7
7
  import React, { useCallback, useContext, useEffect, useRef } from 'react';
8
+ import classnames from 'classnames';
8
9
  import { Button } from '../../../../components';
9
10
  import useTranslation from '../../hooks/useTranslation';
10
11
  import IterateItemContext from '../IterateItemContext';
@@ -14,7 +15,8 @@ import { close } from '../../../../icons';
14
15
  import RemoveButton from '../RemoveButton';
15
16
  export default function CancelButton(props) {
16
17
  const {
17
- onClick
18
+ onClick,
19
+ className
18
20
  } = props,
19
21
  rest = _objectWithoutProperties(props, _excluded);
20
22
  const {
@@ -69,6 +71,7 @@ export default function CancelButton(props) {
69
71
  }
70
72
  return React.createElement(Button, _extends({
71
73
  variant: "tertiary",
74
+ className: classnames('dnb-forms-iterate__cancel-button', className),
72
75
  icon: close,
73
76
  icon_position: "left",
74
77
  on_click: cancelHandler
@@ -1 +1 @@
1
- {"version":3,"file":"CancelButton.js","names":["React","useCallback","useContext","useEffect","useRef","Button","useTranslation","IterateItemContext","ToolbarContext","FieldBoundaryContext","close","RemoveButton","CancelButton","props","onClick","rest","_objectWithoutProperties","_excluded","restoreOriginalValue","switchContainerMode","containerMode","arrayValue","isNew","index","setShowBoundaryErrors","setShowError","cancelButton","removeButton","IterateEditContainer","valueBackupRef","current","cancelHandler","_ref","event","wasNew","useWasNew","length","_Fragment","createElement","Fragment","_extends","text","variant","icon","icon_position","on_click","_ref2","wasNewRef"],"sources":["../../../../../../src/extensions/forms/Iterate/EditContainer/CancelButton.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useRef } from 'react'\nimport { Button } from '../../../../components'\nimport useTranslation from '../../hooks/useTranslation'\nimport IterateItemContext from '../IterateItemContext'\nimport ToolbarContext from '../Toolbar/ToolbarContext'\nimport FieldBoundaryContext from '../../DataContext/FieldBoundary/FieldBoundaryContext'\nimport { close } from '../../../../icons'\nimport { ButtonProps } from '../../../../components/Button'\nimport RemoveButton, { Props as RemoveButtonProps } from '../RemoveButton'\nimport { ContainerMode } from '../Array'\n\ntype Props = ButtonProps\n\nexport default function CancelButton(props: Props) {\n const { onClick, ...rest } = props\n const {\n restoreOriginalValue,\n switchContainerMode,\n containerMode,\n arrayValue,\n isNew,\n index,\n } = useContext(IterateItemContext) || {}\n const { setShowBoundaryErrors } = useContext(FieldBoundaryContext) || {}\n const { setShowError } = useContext(ToolbarContext) || {}\n\n const { cancelButton, removeButton } =\n useTranslation().IterateEditContainer\n const valueBackupRef = useRef<unknown>()\n\n useEffect(() => {\n if (containerMode === 'edit' && !valueBackupRef.current) {\n valueBackupRef.current = arrayValue?.[index]\n }\n if (containerMode === 'view') {\n valueBackupRef.current = null\n }\n }, [arrayValue, containerMode, index])\n\n const cancelHandler = useCallback(\n ({ event }: { event: React.MouseEvent<HTMLButtonElement> }) => {\n onClick?.(event)\n restoreOriginalValue?.(valueBackupRef.current)\n setShowError(false)\n setShowBoundaryErrors?.(false)\n switchContainerMode?.('view')\n },\n [\n onClick,\n restoreOriginalValue,\n setShowBoundaryErrors,\n setShowError,\n switchContainerMode,\n ]\n )\n\n const wasNew = useWasNew({ isNew, containerMode })\n\n if (containerMode === 'edit' && arrayValue?.length === 0) {\n return <></>\n }\n\n if (wasNew) {\n return (\n <RemoveButton\n text={removeButton}\n onClick={onClick}\n {...(rest as RemoveButtonProps)}\n />\n )\n }\n\n return (\n <Button\n variant=\"tertiary\"\n icon={close}\n icon_position=\"left\"\n on_click={cancelHandler}\n {...rest}\n >\n {cancelButton}\n </Button>\n )\n}\n\nexport function useWasNew({\n isNew,\n containerMode,\n}: {\n isNew: boolean\n containerMode: ContainerMode\n}) {\n const wasNewRef = useRef<unknown>(isNew)\n\n useEffect(() => {\n if (containerMode === 'view') {\n wasNewRef.current = false\n }\n }, [isNew, containerMode])\n\n return wasNewRef.current\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CancelButton.js","names":["React","useCallback","useContext","useEffect","useRef","classnames","Button","useTranslation","IterateItemContext","ToolbarContext","FieldBoundaryContext","close","RemoveButton","CancelButton","props","onClick","className","rest","_objectWithoutProperties","_excluded","restoreOriginalValue","switchContainerMode","containerMode","arrayValue","isNew","index","setShowBoundaryErrors","setShowError","cancelButton","removeButton","IterateEditContainer","valueBackupRef","current","cancelHandler","_ref","event","wasNew","useWasNew","length","_Fragment","createElement","Fragment","_extends","text","variant","icon","icon_position","on_click","_ref2","wasNewRef"],"sources":["../../../../../../src/extensions/forms/Iterate/EditContainer/CancelButton.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useRef } from 'react'\nimport classnames from 'classnames'\nimport { Button } from '../../../../components'\nimport useTranslation from '../../hooks/useTranslation'\nimport IterateItemContext from '../IterateItemContext'\nimport ToolbarContext from '../Toolbar/ToolbarContext'\nimport FieldBoundaryContext from '../../DataContext/FieldBoundary/FieldBoundaryContext'\nimport { close } from '../../../../icons'\nimport { ButtonProps } from '../../../../components/Button'\nimport RemoveButton, { Props as RemoveButtonProps } from '../RemoveButton'\nimport { ContainerMode } from '../Array'\n\ntype Props = ButtonProps\n\nexport default function CancelButton(props: Props) {\n const { onClick, className, ...rest } = props\n const {\n restoreOriginalValue,\n switchContainerMode,\n containerMode,\n arrayValue,\n isNew,\n index,\n } = useContext(IterateItemContext) || {}\n const { setShowBoundaryErrors } = useContext(FieldBoundaryContext) || {}\n const { setShowError } = useContext(ToolbarContext) || {}\n\n const { cancelButton, removeButton } =\n useTranslation().IterateEditContainer\n const valueBackupRef = useRef<unknown>()\n\n useEffect(() => {\n if (containerMode === 'edit' && !valueBackupRef.current) {\n valueBackupRef.current = arrayValue?.[index]\n }\n if (containerMode === 'view') {\n valueBackupRef.current = null\n }\n }, [arrayValue, containerMode, index])\n\n const cancelHandler = useCallback(\n ({ event }: { event: React.MouseEvent<HTMLButtonElement> }) => {\n onClick?.(event)\n restoreOriginalValue?.(valueBackupRef.current)\n setShowError(false)\n setShowBoundaryErrors?.(false)\n switchContainerMode?.('view')\n },\n [\n onClick,\n restoreOriginalValue,\n setShowBoundaryErrors,\n setShowError,\n switchContainerMode,\n ]\n )\n\n const wasNew = useWasNew({ isNew, containerMode })\n\n if (containerMode === 'edit' && arrayValue?.length === 0) {\n return <></>\n }\n\n if (wasNew) {\n return (\n <RemoveButton\n text={removeButton}\n onClick={onClick}\n {...(rest as RemoveButtonProps)}\n />\n )\n }\n\n return (\n <Button\n variant=\"tertiary\"\n className={classnames('dnb-forms-iterate__cancel-button', className)}\n icon={close}\n icon_position=\"left\"\n on_click={cancelHandler}\n {...rest}\n >\n {cancelButton}\n </Button>\n )\n}\n\nexport function useWasNew({\n isNew,\n containerMode,\n}: {\n isNew: boolean\n containerMode: ContainerMode\n}) {\n const wasNewRef = useRef<unknown>(isNew)\n\n useEffect(() => {\n if (containerMode === 'view') {\n wasNewRef.current = false\n }\n }, [isNew, containerMode])\n\n return wasNewRef.current\n}\n"],"mappings":"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","ignoreList":[]}
@@ -65,7 +65,7 @@ export default function DoneButton(props) {
65
65
  }, [commitHandleRef, hasError, hasVisibleError, setShowBoundaryErrors, setShowError, switchContainerMode]);
66
66
  return React.createElement(Button, _extends({
67
67
  variant: "tertiary",
68
- className: classnames('dnb-push-container__done-button', className),
68
+ className: classnames('dnb-forms-iterate__done-button', className),
69
69
  icon: check,
70
70
  icon_position: "left",
71
71
  on_click: doneHandler
@@ -1 +1 @@
1
- {"version":3,"file":"DoneButton.js","names":["React","useCallback","useContext","useEffect","useRef","classnames","Button","useTranslation","IterateItemContext","ToolbarContext","FieldBoundaryContext","PushContainerContext","check","DoneButton","props","className","restProps","_objectWithoutProperties","_excluded","switchContainerMode","containerMode","arrayValue","index","hasError","hasVisibleError","setShowBoundaryErrors","commitHandleRef","setShowError","doneButton","IterateEditContainer","valueBackupRef","current","doneHandler","_commitHandleRef$curr","call","createElement","_extends","variant","icon","icon_position","on_click"],"sources":["../../../../../../src/extensions/forms/Iterate/EditContainer/DoneButton.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useRef } from 'react'\nimport classnames from 'classnames'\nimport { Button } from '../../../../components'\nimport useTranslation from '../../hooks/useTranslation'\nimport IterateItemContext from '../IterateItemContext'\nimport ToolbarContext from '../Toolbar/ToolbarContext'\nimport FieldBoundaryContext from '../../DataContext/FieldBoundary/FieldBoundaryContext'\nimport PushContainerContext from '../PushContainer/PushContainerContext'\nimport { check } from '../../../../icons'\nimport { ButtonProps } from '../../../../components/Button'\n\ntype Props = ButtonProps\n\nexport default function DoneButton(props: Props) {\n const { className, ...restProps } = props\n const { switchContainerMode, containerMode, arrayValue, index } =\n useContext(IterateItemContext) || {}\n const { hasError, hasVisibleError, setShowBoundaryErrors } =\n useContext(FieldBoundaryContext) || {}\n const { commitHandleRef } = useContext(PushContainerContext) || {}\n const { setShowError } = useContext(ToolbarContext) || {}\n\n const { doneButton } = useTranslation().IterateEditContainer\n const valueBackupRef = useRef<unknown>()\n\n useEffect(() => {\n if (containerMode === 'edit' && !valueBackupRef.current) {\n valueBackupRef.current = arrayValue?.[index]\n }\n if (containerMode === 'view') {\n valueBackupRef.current = null\n }\n }, [arrayValue, containerMode, index])\n\n const doneHandler = useCallback(() => {\n if (hasError) {\n setShowBoundaryErrors?.(true)\n if (hasVisibleError) {\n setShowError(true)\n }\n } else {\n setShowBoundaryErrors?.(false)\n setShowError(false)\n if (commitHandleRef) {\n commitHandleRef.current?.()\n } else {\n switchContainerMode?.('view')\n }\n }\n }, [\n commitHandleRef,\n hasError,\n hasVisibleError,\n setShowBoundaryErrors,\n setShowError,\n switchContainerMode,\n ])\n\n return (\n <Button\n variant=\"tertiary\"\n className={classnames('dnb-push-container__done-button', className)}\n icon={check}\n icon_position=\"left\"\n on_click={doneHandler}\n {...restProps}\n >\n {doneButton}\n </Button>\n )\n}\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzE,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,OAAOC,cAAc,MAAM,4BAA4B;AACvD,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,OAAOC,cAAc,MAAM,2BAA2B;AACtD,OAAOC,oBAAoB,MAAM,sDAAsD;AACvF,OAAOC,oBAAoB,MAAM,uCAAuC;AACxE,SAASC,KAAK,QAAQ,mBAAmB;AAKzC,eAAe,SAASC,UAAUA,CAACC,KAAY,EAAE;EAC/C,MAAM;MAAEC;IAAwB,CAAC,GAAGD,KAAK;IAAnBE,SAAS,GAAAC,wBAAA,CAAKH,KAAK,EAAAI,SAAA;EACzC,MAAM;IAAEC,mBAAmB;IAAEC,aAAa;IAAEC,UAAU;IAAEC;EAAM,CAAC,GAC7DpB,UAAU,CAACM,kBAAkB,CAAC,IAAI,CAAC,CAAC;EACtC,MAAM;IAAEe,QAAQ;IAAEC,eAAe;IAAEC;EAAsB,CAAC,GACxDvB,UAAU,CAACQ,oBAAoB,CAAC,IAAI,CAAC,CAAC;EACxC,MAAM;IAAEgB;EAAgB,CAAC,GAAGxB,UAAU,CAACS,oBAAoB,CAAC,IAAI,CAAC,CAAC;EAClE,MAAM;IAAEgB;EAAa,CAAC,GAAGzB,UAAU,CAACO,cAAc,CAAC,IAAI,CAAC,CAAC;EAEzD,MAAM;IAAEmB;EAAW,CAAC,GAAGrB,cAAc,CAAC,CAAC,CAACsB,oBAAoB;EAC5D,MAAMC,cAAc,GAAG1B,MAAM,CAAU,CAAC;EAExCD,SAAS,CAAC,MAAM;IACd,IAAIiB,aAAa,KAAK,MAAM,IAAI,CAACU,cAAc,CAACC,OAAO,EAAE;MACvDD,cAAc,CAACC,OAAO,GAAGV,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAGC,KAAK,CAAC;IAC9C;IACA,IAAIF,aAAa,KAAK,MAAM,EAAE;MAC5BU,cAAc,CAACC,OAAO,GAAG,IAAI;IAC/B;EACF,CAAC,EAAE,CAACV,UAAU,EAAED,aAAa,EAAEE,KAAK,CAAC,CAAC;EAEtC,MAAMU,WAAW,GAAG/B,WAAW,CAAC,MAAM;IACpC,IAAIsB,QAAQ,EAAE;MACZE,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAG,IAAI,CAAC;MAC7B,IAAID,eAAe,EAAE;QACnBG,YAAY,CAAC,IAAI,CAAC;MACpB;IACF,CAAC,MAAM;MACLF,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAG,KAAK,CAAC;MAC9BE,YAAY,CAAC,KAAK,CAAC;MACnB,IAAID,eAAe,EAAE;QAAA,IAAAO,qBAAA;QACnB,CAAAA,qBAAA,GAAAP,eAAe,CAACK,OAAO,cAAAE,qBAAA,uBAAvBA,qBAAA,CAAAC,IAAA,CAAAR,eAA0B,CAAC;MAC7B,CAAC,MAAM;QACLP,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,MAAM,CAAC;MAC/B;IACF;EACF,CAAC,EAAE,CACDO,eAAe,EACfH,QAAQ,EACRC,eAAe,EACfC,qBAAqB,EACrBE,YAAY,EACZR,mBAAmB,CACpB,CAAC;EAEF,OACEnB,KAAA,CAAAmC,aAAA,CAAC7B,MAAM,EAAA8B,QAAA;IACLC,OAAO,EAAC,UAAU;IAClBtB,SAAS,EAAEV,UAAU,CAAC,iCAAiC,EAAEU,SAAS,CAAE;IACpEuB,IAAI,EAAE1B,KAAM;IACZ2B,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAER;EAAY,GAClBhB,SAAS,GAEZY,UACK,CAAC;AAEb","ignoreList":[]}
1
+ {"version":3,"file":"DoneButton.js","names":["React","useCallback","useContext","useEffect","useRef","classnames","Button","useTranslation","IterateItemContext","ToolbarContext","FieldBoundaryContext","PushContainerContext","check","DoneButton","props","className","restProps","_objectWithoutProperties","_excluded","switchContainerMode","containerMode","arrayValue","index","hasError","hasVisibleError","setShowBoundaryErrors","commitHandleRef","setShowError","doneButton","IterateEditContainer","valueBackupRef","current","doneHandler","_commitHandleRef$curr","call","createElement","_extends","variant","icon","icon_position","on_click"],"sources":["../../../../../../src/extensions/forms/Iterate/EditContainer/DoneButton.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useRef } from 'react'\nimport classnames from 'classnames'\nimport { Button } from '../../../../components'\nimport useTranslation from '../../hooks/useTranslation'\nimport IterateItemContext from '../IterateItemContext'\nimport ToolbarContext from '../Toolbar/ToolbarContext'\nimport FieldBoundaryContext from '../../DataContext/FieldBoundary/FieldBoundaryContext'\nimport PushContainerContext from '../PushContainer/PushContainerContext'\nimport { check } from '../../../../icons'\nimport { ButtonProps } from '../../../../components/Button'\n\ntype Props = ButtonProps\n\nexport default function DoneButton(props: Props) {\n const { className, ...restProps } = props\n const { switchContainerMode, containerMode, arrayValue, index } =\n useContext(IterateItemContext) || {}\n const { hasError, hasVisibleError, setShowBoundaryErrors } =\n useContext(FieldBoundaryContext) || {}\n const { commitHandleRef } = useContext(PushContainerContext) || {}\n const { setShowError } = useContext(ToolbarContext) || {}\n\n const { doneButton } = useTranslation().IterateEditContainer\n const valueBackupRef = useRef<unknown>()\n\n useEffect(() => {\n if (containerMode === 'edit' && !valueBackupRef.current) {\n valueBackupRef.current = arrayValue?.[index]\n }\n if (containerMode === 'view') {\n valueBackupRef.current = null\n }\n }, [arrayValue, containerMode, index])\n\n const doneHandler = useCallback(() => {\n if (hasError) {\n setShowBoundaryErrors?.(true)\n if (hasVisibleError) {\n setShowError(true)\n }\n } else {\n setShowBoundaryErrors?.(false)\n setShowError(false)\n if (commitHandleRef) {\n commitHandleRef.current?.()\n } else {\n switchContainerMode?.('view')\n }\n }\n }, [\n commitHandleRef,\n hasError,\n hasVisibleError,\n setShowBoundaryErrors,\n setShowError,\n switchContainerMode,\n ])\n\n return (\n <Button\n variant=\"tertiary\"\n className={classnames('dnb-forms-iterate__done-button', className)}\n icon={check}\n icon_position=\"left\"\n on_click={doneHandler}\n {...restProps}\n >\n {doneButton}\n </Button>\n )\n}\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzE,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,OAAOC,cAAc,MAAM,4BAA4B;AACvD,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,OAAOC,cAAc,MAAM,2BAA2B;AACtD,OAAOC,oBAAoB,MAAM,sDAAsD;AACvF,OAAOC,oBAAoB,MAAM,uCAAuC;AACxE,SAASC,KAAK,QAAQ,mBAAmB;AAKzC,eAAe,SAASC,UAAUA,CAACC,KAAY,EAAE;EAC/C,MAAM;MAAEC;IAAwB,CAAC,GAAGD,KAAK;IAAnBE,SAAS,GAAAC,wBAAA,CAAKH,KAAK,EAAAI,SAAA;EACzC,MAAM;IAAEC,mBAAmB;IAAEC,aAAa;IAAEC,UAAU;IAAEC;EAAM,CAAC,GAC7DpB,UAAU,CAACM,kBAAkB,CAAC,IAAI,CAAC,CAAC;EACtC,MAAM;IAAEe,QAAQ;IAAEC,eAAe;IAAEC;EAAsB,CAAC,GACxDvB,UAAU,CAACQ,oBAAoB,CAAC,IAAI,CAAC,CAAC;EACxC,MAAM;IAAEgB;EAAgB,CAAC,GAAGxB,UAAU,CAACS,oBAAoB,CAAC,IAAI,CAAC,CAAC;EAClE,MAAM;IAAEgB;EAAa,CAAC,GAAGzB,UAAU,CAACO,cAAc,CAAC,IAAI,CAAC,CAAC;EAEzD,MAAM;IAAEmB;EAAW,CAAC,GAAGrB,cAAc,CAAC,CAAC,CAACsB,oBAAoB;EAC5D,MAAMC,cAAc,GAAG1B,MAAM,CAAU,CAAC;EAExCD,SAAS,CAAC,MAAM;IACd,IAAIiB,aAAa,KAAK,MAAM,IAAI,CAACU,cAAc,CAACC,OAAO,EAAE;MACvDD,cAAc,CAACC,OAAO,GAAGV,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAGC,KAAK,CAAC;IAC9C;IACA,IAAIF,aAAa,KAAK,MAAM,EAAE;MAC5BU,cAAc,CAACC,OAAO,GAAG,IAAI;IAC/B;EACF,CAAC,EAAE,CAACV,UAAU,EAAED,aAAa,EAAEE,KAAK,CAAC,CAAC;EAEtC,MAAMU,WAAW,GAAG/B,WAAW,CAAC,MAAM;IACpC,IAAIsB,QAAQ,EAAE;MACZE,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAG,IAAI,CAAC;MAC7B,IAAID,eAAe,EAAE;QACnBG,YAAY,CAAC,IAAI,CAAC;MACpB;IACF,CAAC,MAAM;MACLF,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAG,KAAK,CAAC;MAC9BE,YAAY,CAAC,KAAK,CAAC;MACnB,IAAID,eAAe,EAAE;QAAA,IAAAO,qBAAA;QACnB,CAAAA,qBAAA,GAAAP,eAAe,CAACK,OAAO,cAAAE,qBAAA,uBAAvBA,qBAAA,CAAAC,IAAA,CAAAR,eAA0B,CAAC;MAC7B,CAAC,MAAM;QACLP,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,MAAM,CAAC;MAC/B;IACF;EACF,CAAC,EAAE,CACDO,eAAe,EACfH,QAAQ,EACRC,eAAe,EACfC,qBAAqB,EACrBE,YAAY,EACZR,mBAAmB,CACpB,CAAC;EAEF,OACEnB,KAAA,CAAAmC,aAAA,CAAC7B,MAAM,EAAA8B,QAAA;IACLC,OAAO,EAAC,UAAU;IAClBtB,SAAS,EAAEV,UAAU,CAAC,gCAAgC,EAAEU,SAAS,CAAE;IACnEuB,IAAI,EAAE1B,KAAM;IACZ2B,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAER;EAAY,GAClBhB,SAAS,GAEZY,UACK,CAAC;AAEb","ignoreList":[]}
@@ -23,7 +23,7 @@ export type Props = {
23
23
  */
24
24
  toolbarVariant?: ArrayItemAreaProps['toolbarVariant'];
25
25
  };
26
- export type AllProps = Props & FlexContainerProps & ArrayItemAreaProps;
26
+ export type AllProps = Props & Omit<FlexContainerProps, 'onAnimationEnd'> & ArrayItemAreaProps;
27
27
  declare function EditContainer(props: AllProps): import("react/jsx-runtime").JSX.Element;
28
28
  declare namespace EditContainer {
29
29
  var DoneButton: typeof import("./DoneButton").default;
@@ -31,7 +31,7 @@ declare namespace EditContainer {
31
31
  var _supportsSpacingProps: boolean;
32
32
  }
33
33
  export default EditContainer;
34
- export declare function EditContainerWithoutToolbar(props: Props & FlexContainerProps & {
34
+ export declare function EditContainerWithoutToolbar(props: Props & Omit<FlexContainerProps, 'onAnimationEnd'> & {
35
35
  toolbar?: React.ReactNode;
36
36
  }): import("react/jsx-runtime").JSX.Element;
37
37
  export declare namespace EditContainerWithoutToolbar {
@@ -1 +1 @@
1
- {"version":3,"file":"EditContainer.js","names":["React","useContext","useMemo","classnames","convertJsxToString","Lead","IterateItemContext","ArrayItemArea","Toolbar","useSwitchContainerMode","DoneButton","CancelButton","useWasNew","replaceItemNo","EditContainer","props","toolbar","toolbarVariant","children","rest","_objectWithoutProperties","_excluded","arrayValue","toolbarElement","length","_Fragment","createElement","Fragment","hasToolbar","Children","toArray","some","child","EditContainerWithoutToolbar","_extends","_Toolbar","containerMode","isNew","index","path","_ref","className","title","titleWhenNew","restProps","_excluded2","wasNew","itemTitle","mode","ariaLabel","size","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/EditContainer/EditContainer.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport { Lead } from '../../../../elements'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport IterateItemContext from '../IterateItemContext'\nimport ArrayItemArea, { ArrayItemAreaProps } from '../Array/ArrayItemArea'\nimport Toolbar from '../Toolbar'\nimport { useSwitchContainerMode } from '../hooks'\nimport DoneButton from './DoneButton'\nimport CancelButton, { useWasNew } from './CancelButton'\nimport { replaceItemNo } from '../ItemNo'\n\nexport type Props = {\n /**\n * The title of the EditContainer.\n */\n title?: React.ReactNode\n\n /**\n * The title for a new item show within the EditContainer.\n */\n titleWhenNew?: React.ReactNode\n\n /**\n * If the EditContainer is open or not.\n */\n open?: boolean\n\n /**\n * An alternative toolbar to be shown in the EditContainer.\n */\n toolbar?: React.ReactNode\n\n /**\n * The variant of the toolbar.\n */\n toolbarVariant?: ArrayItemAreaProps['toolbarVariant']\n}\n\nexport type AllProps = Props & FlexContainerProps & ArrayItemAreaProps\n\nexport default function EditContainer(props: AllProps) {\n const { toolbar, toolbarVariant, children, ...rest } = props\n const { arrayValue } = useContext(IterateItemContext)\n\n let toolbarElement = toolbar\n if (toolbarVariant === 'minimumOneItem' && arrayValue.length <= 1) {\n toolbarElement = <></>\n }\n\n const hasToolbar =\n !toolbarElement &&\n React.Children.toArray(children).some((child) => {\n return child?.['type'] === Toolbar\n })\n\n return (\n <EditContainerWithoutToolbar\n toolbar={\n hasToolbar\n ? null\n : toolbarElement ??\n (toolbarVariant !== 'custom' && (\n <Toolbar>\n <DoneButton />\n <CancelButton />\n </Toolbar>\n ))\n }\n toolbarVariant={toolbarVariant}\n {...rest}\n >\n {children}\n </EditContainerWithoutToolbar>\n )\n}\n\nexport function EditContainerWithoutToolbar(\n props: Props & FlexContainerProps & { toolbar?: React.ReactNode }\n) {\n const { containerMode, isNew, index, path } =\n useContext(IterateItemContext)\n\n const {\n children,\n className,\n title,\n titleWhenNew,\n toolbar,\n toolbarVariant,\n ...restProps\n } = props || {}\n\n const wasNew = useWasNew({ isNew, containerMode })\n const itemTitle = useMemo(() => {\n return replaceItemNo(\n wasNew && titleWhenNew ? titleWhenNew : title,\n index\n )\n }, [index, title, titleWhenNew, wasNew])\n\n useSwitchContainerMode(path)\n\n return (\n <ArrayItemArea\n mode=\"edit\"\n className={classnames('dnb-forms-section-edit-block', className)}\n ariaLabel={convertJsxToString(itemTitle)}\n toolbarVariant={toolbarVariant}\n {...restProps}\n >\n {itemTitle && <Lead size=\"basis\">{itemTitle}</Lead>}\n {children}\n {toolbar}\n </ArrayItemArea>\n )\n}\n\nEditContainer.DoneButton = DoneButton\nEditContainer.CancelButton = CancelButton\n\nEditContainer._supportsSpacingProps = true\nEditContainerWithoutToolbar._supportsSpacingProps = true\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"EditContainer.js","names":["React","useContext","useMemo","classnames","convertJsxToString","Lead","IterateItemContext","ArrayItemArea","Toolbar","useSwitchContainerMode","DoneButton","CancelButton","useWasNew","replaceItemNo","EditContainer","props","toolbar","toolbarVariant","children","rest","_objectWithoutProperties","_excluded","arrayValue","toolbarElement","length","_Fragment","createElement","Fragment","hasToolbar","Children","toArray","some","child","EditContainerWithoutToolbar","_extends","_Toolbar","containerMode","isNew","index","path","_ref","className","title","titleWhenNew","restProps","_excluded2","wasNew","itemTitle","mode","ariaLabel","size","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/EditContainer/EditContainer.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport { Lead } from '../../../../elements'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport IterateItemContext from '../IterateItemContext'\nimport ArrayItemArea, { ArrayItemAreaProps } from '../Array/ArrayItemArea'\nimport Toolbar from '../Toolbar'\nimport { useSwitchContainerMode } from '../hooks'\nimport DoneButton from './DoneButton'\nimport CancelButton, { useWasNew } from './CancelButton'\nimport { replaceItemNo } from '../ItemNo'\n\nexport type Props = {\n /**\n * The title of the EditContainer.\n */\n title?: React.ReactNode\n\n /**\n * The title for a new item show within the EditContainer.\n */\n titleWhenNew?: React.ReactNode\n\n /**\n * If the EditContainer is open or not.\n */\n open?: boolean\n\n /**\n * An alternative toolbar to be shown in the EditContainer.\n */\n toolbar?: React.ReactNode\n\n /**\n * The variant of the toolbar.\n */\n toolbarVariant?: ArrayItemAreaProps['toolbarVariant']\n}\n\nexport type AllProps = Props &\n Omit<FlexContainerProps, 'onAnimationEnd'> &\n ArrayItemAreaProps\n\nexport default function EditContainer(props: AllProps) {\n const { toolbar, toolbarVariant, children, ...rest } = props\n const { arrayValue } = useContext(IterateItemContext)\n\n let toolbarElement = toolbar\n if (toolbarVariant === 'minimumOneItem' && arrayValue.length <= 1) {\n toolbarElement = <></>\n }\n\n const hasToolbar =\n !toolbarElement &&\n React.Children.toArray(children).some((child) => {\n return child?.['type'] === Toolbar\n })\n\n return (\n <EditContainerWithoutToolbar\n toolbar={\n hasToolbar\n ? null\n : toolbarElement ??\n (toolbarVariant !== 'custom' && (\n <Toolbar>\n <DoneButton />\n <CancelButton />\n </Toolbar>\n ))\n }\n toolbarVariant={toolbarVariant}\n {...rest}\n >\n {children}\n </EditContainerWithoutToolbar>\n )\n}\n\nexport function EditContainerWithoutToolbar(\n props: Props &\n Omit<FlexContainerProps, 'onAnimationEnd'> & {\n toolbar?: React.ReactNode\n }\n) {\n const { containerMode, isNew, index, path } =\n useContext(IterateItemContext)\n\n const {\n children,\n className,\n title,\n titleWhenNew,\n toolbar,\n toolbarVariant,\n ...restProps\n } = props || {}\n\n const wasNew = useWasNew({ isNew, containerMode })\n const itemTitle = useMemo(() => {\n return replaceItemNo(\n wasNew && titleWhenNew ? titleWhenNew : title,\n index\n )\n }, [index, title, titleWhenNew, wasNew])\n\n useSwitchContainerMode(path)\n\n return (\n <ArrayItemArea\n mode=\"edit\"\n className={classnames('dnb-forms-section-edit-block', className)}\n ariaLabel={convertJsxToString(itemTitle)}\n toolbarVariant={toolbarVariant}\n {...restProps}\n >\n {itemTitle && <Lead size=\"basis\">{itemTitle}</Lead>}\n {children}\n {toolbar}\n </ArrayItemArea>\n )\n}\n\nEditContainer.DoneButton = DoneButton\nEditContainer.CancelButton = CancelButton\n\nEditContainer._supportsSpacingProps = true\nEditContainerWithoutToolbar._supportsSpacingProps = true\n"],"mappings":";;;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAClD,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,kBAAkB,QAAQ,qCAAqC;AACxE,SAASC,IAAI,QAAQ,sBAAsB;AAE3C,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,OAAOC,aAAa,MAA8B,wBAAwB;AAC1E,OAAOC,OAAO,MAAM,YAAY;AAChC,SAASC,sBAAsB,QAAQ,UAAU;AACjD,OAAOC,UAAU,MAAM,cAAc;AACrC,OAAOC,YAAY,IAAIC,SAAS,QAAQ,gBAAgB;AACxD,SAASC,aAAa,QAAQ,WAAW;AAiCzC,eAAe,SAASC,aAAaA,CAACC,KAAe,EAAE;EACrD,MAAM;MAAEC,OAAO;MAAEC,cAAc;MAAEC;IAAkB,CAAC,GAAGH,KAAK;IAAdI,IAAI,GAAAC,wBAAA,CAAKL,KAAK,EAAAM,SAAA;EAC5D,MAAM;IAAEC;EAAW,CAAC,GAAGrB,UAAU,CAACK,kBAAkB,CAAC;EAErD,IAAIiB,cAAc,GAAGP,OAAO;EAC5B,IAAIC,cAAc,KAAK,gBAAgB,IAAIK,UAAU,CAACE,MAAM,IAAI,CAAC,EAAE;IACjED,cAAc,GAAAE,SAAA,KAAAA,SAAA,GAAGzB,KAAA,CAAA0B,aAAA,CAAA1B,KAAA,CAAA2B,QAAA,MAAI,CAAC;EACxB;EAEA,MAAMC,UAAU,GACd,CAACL,cAAc,IACfvB,KAAK,CAAC6B,QAAQ,CAACC,OAAO,CAACZ,QAAQ,CAAC,CAACa,IAAI,CAAEC,KAAK,IAAK;IAC/C,OAAO,CAAAA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAG,MAAM,CAAC,MAAKxB,OAAO;EACpC,CAAC,CAAC;EAEJ,OACER,KAAA,CAAA0B,aAAA,CAACO,2BAA2B,EAAAC,QAAA;IAC1BlB,OAAO,EACLY,UAAU,GACN,IAAI,GACJL,cAAc,aAAdA,cAAc,cAAdA,cAAc,GACbN,cAAc,KAAK,QAAQ,KAAAkB,QAAA,KAAAA,QAAA,GAC1BnC,KAAA,CAAA0B,aAAA,CAAClB,OAAO,QACNR,KAAA,CAAA0B,aAAA,CAAChB,UAAU,MAAE,CAAC,EACdV,KAAA,CAAA0B,aAAA,CAACf,YAAY,MAAE,CACR,CAAC,EAEjB;IACDM,cAAc,EAAEA;EAAe,GAC3BE,IAAI,GAEPD,QAC0B,CAAC;AAElC;AAEA,OAAO,SAASe,2BAA2BA,CACzClB,KAGG,EACH;EACA,MAAM;IAAEqB,aAAa;IAAEC,KAAK;IAAEC,KAAK;IAAEC;EAAK,CAAC,GACzCtC,UAAU,CAACK,kBAAkB,CAAC;EAEhC,MAAAkC,IAAA,GAQIzB,KAAK,IAAI,CAAC,CAAC;IART;MACJG,QAAQ;MACRuB,SAAS;MACTC,KAAK;MACLC,YAAY;MACZ3B,OAAO;MACPC;IAEF,CAAC,GAAAuB,IAAA;IADII,SAAS,GAAAxB,wBAAA,CAAAoB,IAAA,EAAAK,UAAA;EAGd,MAAMC,MAAM,GAAGlC,SAAS,CAAC;IAAEyB,KAAK;IAAED;EAAc,CAAC,CAAC;EAClD,MAAMW,SAAS,GAAG7C,OAAO,CAAC,MAAM;IAC9B,OAAOW,aAAa,CAClBiC,MAAM,IAAIH,YAAY,GAAGA,YAAY,GAAGD,KAAK,EAC7CJ,KACF,CAAC;EACH,CAAC,EAAE,CAACA,KAAK,EAAEI,KAAK,EAAEC,YAAY,EAAEG,MAAM,CAAC,CAAC;EAExCrC,sBAAsB,CAAC8B,IAAI,CAAC;EAE5B,OACEvC,KAAA,CAAA0B,aAAA,CAACnB,aAAa,EAAA2B,QAAA;IACZc,IAAI,EAAC,MAAM;IACXP,SAAS,EAAEtC,UAAU,CAAC,8BAA8B,EAAEsC,SAAS,CAAE;IACjEQ,SAAS,EAAE7C,kBAAkB,CAAC2C,SAAS,CAAE;IACzC9B,cAAc,EAAEA;EAAe,GAC3B2B,SAAS,GAEZG,SAAS,IAAI/C,KAAA,CAAA0B,aAAA,CAACrB,IAAI;IAAC6C,IAAI,EAAC;EAAO,GAAEH,SAAgB,CAAC,EAClD7B,QAAQ,EACRF,OACY,CAAC;AAEpB;AAEAF,aAAa,CAACJ,UAAU,GAAGA,UAAU;AACrCI,aAAa,CAACH,YAAY,GAAGA,YAAY;AAEzCG,aAAa,CAACqC,qBAAqB,GAAG,IAAI;AAC1ClB,2BAA2B,CAACkB,qBAAqB,GAAG,IAAI","ignoreList":[]}
@@ -39,7 +39,7 @@ function OpenButton(props) {
39
39
  return children || text;
40
40
  }, [entries === null || entries === void 0 ? void 0 : entries.length, children, text]);
41
41
  return React.createElement(Button, _extends({
42
- className: classnames('dnb-forms-iterate-open-button', className),
42
+ className: classnames('dnb-forms-iterate__open-button', className),
43
43
  variant: "secondary",
44
44
  icon: add,
45
45
  icon_position: "left",
@@ -1 +1 @@
1
- {"version":3,"file":"OpenButton.js","names":["React","useCallback","useContext","useMemo","classnames","Button","add","IterateItemContext","PushContainerContext","convertJsxToString","OpenButton","props","className","text","children","restProps","_objectWithoutProperties","_excluded","switchContainerMode","entries","handleClick","content","str","includes","nextItemNo","length","replace","String","createElement","_extends","variant","icon","icon_position","on_click"],"sources":["../../../../../../src/extensions/forms/Iterate/PushContainer/OpenButton.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport Button, { ButtonProps } from '../../../../components/Button'\nimport { add } from '../../../../icons'\nimport IterateItemContext from '../IterateItemContext'\nimport PushContainerContext from './PushContainerContext'\nimport { convertJsxToString } from '../../../../shared/component-helper'\n\ntype Props = ButtonProps\n\nfunction OpenButton(props: Props) {\n const { className, text, children, ...restProps } = props\n const { switchContainerMode } = useContext(IterateItemContext) || {}\n const { entries } = useContext(PushContainerContext) || {}\n\n const handleClick = useCallback(() => {\n switchContainerMode?.('edit')\n }, [switchContainerMode])\n\n const content = useMemo(() => {\n if (children || text) {\n const str = convertJsxToString(children || text)\n\n if (str.includes('{nextItemNo}')) {\n const nextItemNo = (entries?.length || 0) + 1\n return str.replace('{nextItemNo}', String(nextItemNo))\n }\n }\n\n return children || text\n }, [entries?.length, children, text])\n\n return (\n <Button\n className={classnames('dnb-forms-iterate-open-button', className)}\n variant=\"secondary\"\n icon={add}\n icon_position=\"left\"\n on_click={handleClick}\n {...restProps}\n >\n {content}\n </Button>\n )\n}\n\nexport default OpenButton\n"],"mappings":";;;;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAC/D,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,MAAM,MAAuB,+BAA+B;AACnE,SAASC,GAAG,QAAQ,mBAAmB;AACvC,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,OAAOC,oBAAoB,MAAM,wBAAwB;AACzD,SAASC,kBAAkB,QAAQ,qCAAqC;AAIxE,SAASC,UAAUA,CAACC,KAAY,EAAE;EAChC,MAAM;MAAEC,SAAS;MAAEC,IAAI;MAAEC;IAAuB,CAAC,GAAGH,KAAK;IAAnBI,SAAS,GAAAC,wBAAA,CAAKL,KAAK,EAAAM,SAAA;EACzD,MAAM;IAAEC;EAAoB,CAAC,GAAGhB,UAAU,CAACK,kBAAkB,CAAC,IAAI,CAAC,CAAC;EACpE,MAAM;IAAEY;EAAQ,CAAC,GAAGjB,UAAU,CAACM,oBAAoB,CAAC,IAAI,CAAC,CAAC;EAE1D,MAAMY,WAAW,GAAGnB,WAAW,CAAC,MAAM;IACpCiB,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,MAAM,CAAC;EAC/B,CAAC,EAAE,CAACA,mBAAmB,CAAC,CAAC;EAEzB,MAAMG,OAAO,GAAGlB,OAAO,CAAC,MAAM;IAC5B,IAAIW,QAAQ,IAAID,IAAI,EAAE;MACpB,MAAMS,GAAG,GAAGb,kBAAkB,CAACK,QAAQ,IAAID,IAAI,CAAC;MAEhD,IAAIS,GAAG,CAACC,QAAQ,CAAC,cAAc,CAAC,EAAE;QAChC,MAAMC,UAAU,GAAG,CAAC,CAAAL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEM,MAAM,KAAI,CAAC,IAAI,CAAC;QAC7C,OAAOH,GAAG,CAACI,OAAO,CAAC,cAAc,EAAEC,MAAM,CAACH,UAAU,CAAC,CAAC;MACxD;IACF;IAEA,OAAOV,QAAQ,IAAID,IAAI;EACzB,CAAC,EAAE,CAACM,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEM,MAAM,EAAEX,QAAQ,EAAED,IAAI,CAAC,CAAC;EAErC,OACEb,KAAA,CAAA4B,aAAA,CAACvB,MAAM,EAAAwB,QAAA;IACLjB,SAAS,EAAER,UAAU,CAAC,+BAA+B,EAAEQ,SAAS,CAAE;IAClEkB,OAAO,EAAC,WAAW;IACnBC,IAAI,EAAEzB,GAAI;IACV0B,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAEb;EAAY,GAClBL,SAAS,GAEZM,OACK,CAAC;AAEb;AAEA,eAAeX,UAAU","ignoreList":[]}
1
+ {"version":3,"file":"OpenButton.js","names":["React","useCallback","useContext","useMemo","classnames","Button","add","IterateItemContext","PushContainerContext","convertJsxToString","OpenButton","props","className","text","children","restProps","_objectWithoutProperties","_excluded","switchContainerMode","entries","handleClick","content","str","includes","nextItemNo","length","replace","String","createElement","_extends","variant","icon","icon_position","on_click"],"sources":["../../../../../../src/extensions/forms/Iterate/PushContainer/OpenButton.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport Button, { ButtonProps } from '../../../../components/Button'\nimport { add } from '../../../../icons'\nimport IterateItemContext from '../IterateItemContext'\nimport PushContainerContext from './PushContainerContext'\nimport { convertJsxToString } from '../../../../shared/component-helper'\n\ntype Props = ButtonProps\n\nfunction OpenButton(props: Props) {\n const { className, text, children, ...restProps } = props\n const { switchContainerMode } = useContext(IterateItemContext) || {}\n const { entries } = useContext(PushContainerContext) || {}\n\n const handleClick = useCallback(() => {\n switchContainerMode?.('edit')\n }, [switchContainerMode])\n\n const content = useMemo(() => {\n if (children || text) {\n const str = convertJsxToString(children || text)\n\n if (str.includes('{nextItemNo}')) {\n const nextItemNo = (entries?.length || 0) + 1\n return str.replace('{nextItemNo}', String(nextItemNo))\n }\n }\n\n return children || text\n }, [entries?.length, children, text])\n\n return (\n <Button\n className={classnames('dnb-forms-iterate__open-button', className)}\n variant=\"secondary\"\n icon={add}\n icon_position=\"left\"\n on_click={handleClick}\n {...restProps}\n >\n {content}\n </Button>\n )\n}\n\nexport default OpenButton\n"],"mappings":";;;;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAC/D,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,MAAM,MAAuB,+BAA+B;AACnE,SAASC,GAAG,QAAQ,mBAAmB;AACvC,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,OAAOC,oBAAoB,MAAM,wBAAwB;AACzD,SAASC,kBAAkB,QAAQ,qCAAqC;AAIxE,SAASC,UAAUA,CAACC,KAAY,EAAE;EAChC,MAAM;MAAEC,SAAS;MAAEC,IAAI;MAAEC;IAAuB,CAAC,GAAGH,KAAK;IAAnBI,SAAS,GAAAC,wBAAA,CAAKL,KAAK,EAAAM,SAAA;EACzD,MAAM;IAAEC;EAAoB,CAAC,GAAGhB,UAAU,CAACK,kBAAkB,CAAC,IAAI,CAAC,CAAC;EACpE,MAAM;IAAEY;EAAQ,CAAC,GAAGjB,UAAU,CAACM,oBAAoB,CAAC,IAAI,CAAC,CAAC;EAE1D,MAAMY,WAAW,GAAGnB,WAAW,CAAC,MAAM;IACpCiB,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,MAAM,CAAC;EAC/B,CAAC,EAAE,CAACA,mBAAmB,CAAC,CAAC;EAEzB,MAAMG,OAAO,GAAGlB,OAAO,CAAC,MAAM;IAC5B,IAAIW,QAAQ,IAAID,IAAI,EAAE;MACpB,MAAMS,GAAG,GAAGb,kBAAkB,CAACK,QAAQ,IAAID,IAAI,CAAC;MAEhD,IAAIS,GAAG,CAACC,QAAQ,CAAC,cAAc,CAAC,EAAE;QAChC,MAAMC,UAAU,GAAG,CAAC,CAAAL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEM,MAAM,KAAI,CAAC,IAAI,CAAC;QAC7C,OAAOH,GAAG,CAACI,OAAO,CAAC,cAAc,EAAEC,MAAM,CAACH,UAAU,CAAC,CAAC;MACxD;IACF;IAEA,OAAOV,QAAQ,IAAID,IAAI;EACzB,CAAC,EAAE,CAACM,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEM,MAAM,EAAEX,QAAQ,EAAED,IAAI,CAAC,CAAC;EAErC,OACEb,KAAA,CAAA4B,aAAA,CAACvB,MAAM,EAAAwB,QAAA;IACLjB,SAAS,EAAER,UAAU,CAAC,gCAAgC,EAAEQ,SAAS,CAAE;IACnEkB,OAAO,EAAC,WAAW;IACnBC,IAAI,EAAEzB,GAAI;IACV0B,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAEb;EAAY,GAClBL,SAAS,GAEZM,OACK,CAAC;AAEb;AAEA,eAAeX,UAAU","ignoreList":[]}
@@ -13,6 +13,7 @@ import Isolation from '../../Form/Isolation';
13
13
  import PushContainerContext from './PushContainerContext';
14
14
  import IterateItemContext from '../IterateItemContext';
15
15
  import DataContext from '../../DataContext/Context';
16
+ import VisibilityContext from '../../Form/Visibility/VisibilityContext';
16
17
  import useDataValue from '../../hooks/useDataValue';
17
18
  import EditContainer, { CancelButton, DoneButton } from '../EditContainer';
18
19
  import IterateArray from '../Array';
@@ -169,6 +170,7 @@ function NewContainer(_ref2) {
169
170
  rerenderPushContainer();
170
171
  }, [containerMode, rerenderPushContainer]);
171
172
  switchContainerModeRef.current = switchContainerMode;
173
+ const isVisible = Boolean(!showOpenButton || containerMode === 'edit');
172
174
  const {
173
175
  createButton
174
176
  } = useTranslation().IteratePushContainer;
@@ -192,8 +194,13 @@ function NewContainer(_ref2) {
192
194
  onClick: cancelHandler
193
195
  })))));
194
196
  }));
195
- return React.createElement(React.Fragment, null, React.createElement(EditContainer, _extends({
196
- open: !showOpenButton || containerMode === 'edit',
197
+ return React.createElement(VisibilityContext.Provider, {
198
+ value: {
199
+ isVisible,
200
+ keepInDOM: false
201
+ }
202
+ }, React.createElement(EditContainer, _extends({
203
+ open: isVisible,
197
204
  title: title,
198
205
  toolbar: toolbar
199
206
  }, rest), children), openButton && typeof showOpenButton === 'boolean' && React.createElement(HeightAnimation, {
@@ -1 +1 @@
1
- {"version":3,"file":"PushContainer.js","names":["React","useCallback","useContext","useEffect","useMemo","useReducer","useRef","Isolation","PushContainerContext","IterateItemContext","DataContext","useDataValue","EditContainer","CancelButton","DoneButton","IterateArray","OpenButton","Flex","HeightAnimation","useArrayLimit","useItemPath","useSwitchContainerMode","Toolbar","useTranslation","clearedData","structuredClone","PushContainer","props","forceUpdate","data","outerData","required","requiredInherited","dataProp","defaultData","defaultDataProp","isolatedData","bubbleValidation","path","itemPath","insertAt","title","children","openButton","showOpenButtonWhen","onCommit","rest","_objectWithoutProperties","_excluded","absolutePath","commitHandleRef","switchContainerModeRef","containerModeRef","value","entries","moveValueToPath","getValueByPath","setNextContainerMode","hasReachedLimit","setShowStatus","cancelHandler","showOpenButton","newItemContextProps","switchContainerMode","current","_objectSpread","pushContainerItems","Object","assign","emptyData","_data$pushContainerIt","firstItem","createElement","transformOnCommit","_ref","slice","options","clearData","preventCommit","_switchContainerModeR","call","Provider","containerMode","withoutFlex","NewContainer","_extends","rerenderPushContainer","_ref2","_DoneButton","_CancelButton","_excluded2","createButton","IteratePushContainer","restoreOriginalValue","toolbar","Consumer","context","Horizontal","gap","text","onClick","Fragment","open","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/PushContainer/PushContainer.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport Isolation from '../../Form/Isolation'\nimport PushContainerContext from './PushContainerContext'\nimport IterateItemContext from '../IterateItemContext'\nimport DataContext from '../../DataContext/Context'\nimport useDataValue from '../../hooks/useDataValue'\nimport EditContainer, { CancelButton, DoneButton } from '../EditContainer'\nimport IterateArray, { ContainerMode } from '../Array'\nimport OpenButton from './OpenButton'\nimport { Flex, HeightAnimation } from '../../../../components'\nimport { OnCommit, Path } from '../../types'\nimport { SpacingProps } from '../../../../shared/types'\nimport {\n useArrayLimit,\n useItemPath,\n useSwitchContainerMode,\n} from '../hooks'\nimport Toolbar from '../Toolbar'\nimport { useTranslation } from '../../hooks'\nimport { ArrayItemAreaProps } from '../Array/ArrayItemArea'\nimport { clearedData } from '../../DataContext/Provider'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So it's a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\ntype OnlyPathRequired = {\n /**\n * The path to the array to add the new item to.\n */\n path: Path\n\n /** The sub path to the array to add the new item to. */\n itemPath?: Path\n}\n\ntype OnlyItemPathRequired = {\n /**\n * The path to the array to add the new item to.\n */\n path?: Path\n\n /** The sub path to the array to add the new item to. */\n itemPath: Path\n}\n\nexport type Props = (OnlyPathRequired | OnlyItemPathRequired) & {\n /**\n * The title of the container.\n */\n title?: React.ReactNode\n\n /**\n * If the fields inside the container are required.\n */\n required?: boolean\n\n /**\n * The index to insert the new item at.\n */\n insertAt?: number\n\n /**\n * The button to open container.\n */\n openButton?: React.ReactNode\n\n /**\n * Define when the \"open button\" should be shown.\n * Should be a function that returns a boolean.\n */\n showOpenButtonWhen?: (list: unknown[]) => boolean\n\n /**\n * Prefilled data to add to the fields. The data will be put into this path: \"/pushContainerItems/0\".\n */\n data?: unknown | Record<string, unknown>\n\n /**\n * Prefilled data to add to the fields. The data will be put into this path: \"/pushContainerItems/0\".\n */\n defaultData?: unknown | Record<string, unknown>\n\n /**\n * Provide additional data that will be put into the root of the isolated data context (parallel to \"/pushContainerItems/0\").\n */\n isolatedData?: Record<string, unknown>\n\n /**\n * Prevent the form from being submitted when there are fields with errors inside the PushContainer.\n */\n bubbleValidation?: boolean\n\n /**\n * A custom toolbar to be shown below the container.\n */\n toolbar?: React.ReactNode\n\n /**\n * Will be called when the user clicks on the \"Done\" button.\n */\n onCommit?: OnCommit\n\n /**\n * The container contents.\n */\n children: React.ReactNode\n}\n\nexport type AllProps = Props & SpacingProps & ArrayItemAreaProps\n\nfunction PushContainer(props: AllProps) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n const { data: outerData, required: requiredInherited } =\n useContext(DataContext) || {}\n\n const {\n data: dataProp,\n defaultData: defaultDataProp,\n isolatedData,\n bubbleValidation,\n path,\n itemPath,\n insertAt,\n title,\n required = requiredInherited,\n children,\n openButton,\n showOpenButtonWhen,\n onCommit,\n ...rest\n } = props\n\n const { absolutePath } = useItemPath(itemPath)\n const commitHandleRef = useRef<() => void>()\n const switchContainerModeRef = useRef<(mode: ContainerMode) => void>()\n const containerModeRef = useRef<ContainerMode>()\n const {\n value: entries = [],\n moveValueToPath,\n getValueByPath,\n } = useDataValue<Array<unknown>>(path || itemPath)\n\n const { setNextContainerMode } = useSwitchContainerMode(\n path || absolutePath\n )\n const { hasReachedLimit, setShowStatus } = useArrayLimit(\n path || absolutePath\n )\n const cancelHandler = useCallback(() => {\n if (hasReachedLimit) {\n setShowStatus(false)\n }\n }, [hasReachedLimit, setShowStatus])\n\n const showOpenButton = showOpenButtonWhen?.(entries)\n const newItemContextProps: PushContainerContext = {\n path,\n itemPath,\n entries,\n commitHandleRef,\n switchContainerMode: switchContainerModeRef.current,\n }\n\n const data = useMemo(() => {\n if (defaultDataProp) {\n return // don't return a fallback, because we want to use the defaultData\n }\n return {\n ...isolatedData,\n pushContainerItems: [dataProp ?? clearedData],\n }\n }, [dataProp, defaultDataProp, isolatedData])\n\n if (outerData) {\n // Use assign to avoid mutating the original data object.\n // Because changes from outside should only silently be applied to the\n // data object, without triggering a rerender.\n // This way \"pushContainerItems\" will not clear/unset changed data.\n Object.assign(data, outerData)\n }\n\n const defaultData = useMemo(() => {\n return {\n ...(!dataProp ? isolatedData : null),\n pushContainerItems: [defaultDataProp ?? clearedData],\n }\n }, [dataProp, defaultDataProp, isolatedData])\n\n const emptyData = useCallback(\n (data: { pushContainerItems: unknown[] }) => {\n const firstItem = data.pushContainerItems?.[0]\n if (firstItem === null || typeof firstItem !== 'object') {\n return {\n ...isolatedData,\n pushContainerItems: [null],\n }\n }\n return defaultData\n },\n [defaultData, isolatedData]\n )\n\n return (\n <Isolation\n data={data}\n defaultData={defaultData}\n required={required}\n emptyData={emptyData}\n bubbleValidation={\n containerModeRef.current === 'view' ? false : bubbleValidation\n }\n commitHandleRef={commitHandleRef}\n transformOnCommit={({ pushContainerItems }) => {\n return moveValueToPath(\n path || absolutePath,\n typeof insertAt === 'number'\n ? [\n ...entries.slice(0, insertAt),\n ...pushContainerItems,\n ...entries.slice(insertAt),\n ]\n : [...entries, ...pushContainerItems],\n absolutePath ? structuredClone(getValueByPath('/')) : {}\n )\n }}\n onCommit={(data, options) => {\n const { clearData, preventCommit } = options\n if (hasReachedLimit) {\n preventCommit()\n setShowStatus(true)\n } else {\n setNextContainerMode('view')\n switchContainerModeRef.current?.('view')\n clearData()\n }\n onCommit?.(data, options)\n }}\n >\n <PushContainerContext.Provider value={newItemContextProps}>\n <IterateArray\n path=\"/pushContainerItems\"\n containerMode={showOpenButton ? 'view' : 'edit'}\n withoutFlex\n >\n <NewContainer\n title={title}\n openButton={openButton}\n switchContainerModeRef={switchContainerModeRef}\n showOpenButton={showOpenButton}\n cancelHandler={cancelHandler}\n containerModeRef={containerModeRef}\n rerenderPushContainer={forceUpdate}\n {...rest}\n >\n {children}\n </NewContainer>\n </IterateArray>\n </PushContainerContext.Provider>\n </Isolation>\n )\n}\n\nfunction NewContainer({\n title,\n openButton,\n showOpenButton,\n switchContainerModeRef,\n cancelHandler,\n containerModeRef,\n rerenderPushContainer,\n children,\n ...rest\n}) {\n const { containerMode, switchContainerMode } =\n useContext(IterateItemContext) || {}\n containerModeRef.current = containerMode\n\n useEffect(() => {\n rerenderPushContainer()\n }, [containerMode, rerenderPushContainer])\n\n switchContainerModeRef.current = switchContainerMode\n const { createButton } = useTranslation().IteratePushContainer\n const { clearData } = useContext(DataContext) || {}\n const restoreOriginalValue = useCallback(() => {\n clearData?.()\n }, [clearData])\n\n const toolbar = (\n <Toolbar>\n <IterateItemContext.Consumer>\n {(context) => {\n const newItemContextProps = {\n ...context,\n restoreOriginalValue,\n }\n return (\n <IterateItemContext.Provider value={newItemContextProps}>\n <Flex.Horizontal gap=\"large\">\n <DoneButton text={createButton} />\n {showOpenButton && (\n <CancelButton onClick={cancelHandler} />\n )}\n </Flex.Horizontal>\n </IterateItemContext.Provider>\n )\n }}\n </IterateItemContext.Consumer>\n </Toolbar>\n )\n\n return (\n <>\n <EditContainer\n open={!showOpenButton || containerMode === 'edit'}\n title={title}\n toolbar={toolbar}\n {...rest}\n >\n {children}\n </EditContainer>\n\n {openButton && typeof showOpenButton === 'boolean' && (\n <HeightAnimation open={showOpenButton && containerMode === 'view'}>\n {openButton}\n </HeightAnimation>\n )}\n </>\n )\n}\n\nPushContainer.OpenButton = OpenButton\nPushContainer._supportsSpacingProps = true\n\nexport default PushContainer\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"PushContainer.js","names":["React","useCallback","useContext","useEffect","useMemo","useReducer","useRef","Isolation","PushContainerContext","IterateItemContext","DataContext","VisibilityContext","useDataValue","EditContainer","CancelButton","DoneButton","IterateArray","OpenButton","Flex","HeightAnimation","useArrayLimit","useItemPath","useSwitchContainerMode","Toolbar","useTranslation","clearedData","structuredClone","PushContainer","props","forceUpdate","data","outerData","required","requiredInherited","dataProp","defaultData","defaultDataProp","isolatedData","bubbleValidation","path","itemPath","insertAt","title","children","openButton","showOpenButtonWhen","onCommit","rest","_objectWithoutProperties","_excluded","absolutePath","commitHandleRef","switchContainerModeRef","containerModeRef","value","entries","moveValueToPath","getValueByPath","setNextContainerMode","hasReachedLimit","setShowStatus","cancelHandler","showOpenButton","newItemContextProps","switchContainerMode","current","_objectSpread","pushContainerItems","Object","assign","emptyData","_data$pushContainerIt","firstItem","createElement","transformOnCommit","_ref","slice","options","clearData","preventCommit","_switchContainerModeR","call","Provider","containerMode","withoutFlex","NewContainer","_extends","rerenderPushContainer","_ref2","_DoneButton","_CancelButton","_excluded2","isVisible","Boolean","createButton","IteratePushContainer","restoreOriginalValue","toolbar","Consumer","context","Horizontal","gap","text","onClick","keepInDOM","open","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/PushContainer/PushContainer.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport Isolation from '../../Form/Isolation'\nimport PushContainerContext from './PushContainerContext'\nimport IterateItemContext from '../IterateItemContext'\nimport DataContext from '../../DataContext/Context'\nimport VisibilityContext from '../../Form/Visibility/VisibilityContext'\nimport useDataValue from '../../hooks/useDataValue'\nimport EditContainer, { CancelButton, DoneButton } from '../EditContainer'\nimport IterateArray, { ContainerMode } from '../Array'\nimport OpenButton from './OpenButton'\nimport { Flex, HeightAnimation } from '../../../../components'\nimport { OnCommit, Path } from '../../types'\nimport { SpacingProps } from '../../../../shared/types'\nimport {\n useArrayLimit,\n useItemPath,\n useSwitchContainerMode,\n} from '../hooks'\nimport Toolbar from '../Toolbar'\nimport { useTranslation } from '../../hooks'\nimport { ArrayItemAreaProps } from '../Array/ArrayItemArea'\nimport { clearedData } from '../../DataContext/Provider'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So it's a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\ntype OnlyPathRequired = {\n /**\n * The path to the array to add the new item to.\n */\n path: Path\n\n /** The sub path to the array to add the new item to. */\n itemPath?: Path\n}\n\ntype OnlyItemPathRequired = {\n /**\n * The path to the array to add the new item to.\n */\n path?: Path\n\n /** The sub path to the array to add the new item to. */\n itemPath: Path\n}\n\nexport type Props = (OnlyPathRequired | OnlyItemPathRequired) & {\n /**\n * The title of the container.\n */\n title?: React.ReactNode\n\n /**\n * If the fields inside the container are required.\n */\n required?: boolean\n\n /**\n * The index to insert the new item at.\n */\n insertAt?: number\n\n /**\n * The button to open container.\n */\n openButton?: React.ReactNode\n\n /**\n * Define when the \"open button\" should be shown.\n * Should be a function that returns a boolean.\n */\n showOpenButtonWhen?: (list: unknown[]) => boolean\n\n /**\n * Prefilled data to add to the fields. The data will be put into this path: \"/pushContainerItems/0\".\n */\n data?: unknown | Record<string, unknown>\n\n /**\n * Prefilled data to add to the fields. The data will be put into this path: \"/pushContainerItems/0\".\n */\n defaultData?: unknown | Record<string, unknown>\n\n /**\n * Provide additional data that will be put into the root of the isolated data context (parallel to \"/pushContainerItems/0\").\n */\n isolatedData?: Record<string, unknown>\n\n /**\n * Prevent the form from being submitted when there are fields with errors inside the PushContainer.\n */\n bubbleValidation?: boolean\n\n /**\n * A custom toolbar to be shown below the container.\n */\n toolbar?: React.ReactNode\n\n /**\n * Will be called when the user clicks on the \"Done\" button.\n */\n onCommit?: OnCommit\n\n /**\n * The container contents.\n */\n children: React.ReactNode\n}\n\nexport type AllProps = Props & SpacingProps & ArrayItemAreaProps\n\nfunction PushContainer(props: AllProps) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n const { data: outerData, required: requiredInherited } =\n useContext(DataContext) || {}\n\n const {\n data: dataProp,\n defaultData: defaultDataProp,\n isolatedData,\n bubbleValidation,\n path,\n itemPath,\n insertAt,\n title,\n required = requiredInherited,\n children,\n openButton,\n showOpenButtonWhen,\n onCommit,\n ...rest\n } = props\n\n const { absolutePath } = useItemPath(itemPath)\n const commitHandleRef = useRef<() => void>()\n const switchContainerModeRef = useRef<(mode: ContainerMode) => void>()\n const containerModeRef = useRef<ContainerMode>()\n const {\n value: entries = [],\n moveValueToPath,\n getValueByPath,\n } = useDataValue<Array<unknown>>(path || itemPath)\n\n const { setNextContainerMode } = useSwitchContainerMode(\n path || absolutePath\n )\n const { hasReachedLimit, setShowStatus } = useArrayLimit(\n path || absolutePath\n )\n const cancelHandler = useCallback(() => {\n if (hasReachedLimit) {\n setShowStatus(false)\n }\n }, [hasReachedLimit, setShowStatus])\n\n const showOpenButton = showOpenButtonWhen?.(entries)\n const newItemContextProps: PushContainerContext = {\n path,\n itemPath,\n entries,\n commitHandleRef,\n switchContainerMode: switchContainerModeRef.current,\n }\n\n const data = useMemo(() => {\n if (defaultDataProp) {\n return // don't return a fallback, because we want to use the defaultData\n }\n return {\n ...isolatedData,\n pushContainerItems: [dataProp ?? clearedData],\n }\n }, [dataProp, defaultDataProp, isolatedData])\n\n if (outerData) {\n // Use assign to avoid mutating the original data object.\n // Because changes from outside should only silently be applied to the\n // data object, without triggering a rerender.\n // This way \"pushContainerItems\" will not clear/unset changed data.\n Object.assign(data, outerData)\n }\n\n const defaultData = useMemo(() => {\n return {\n ...(!dataProp ? isolatedData : null),\n pushContainerItems: [defaultDataProp ?? clearedData],\n }\n }, [dataProp, defaultDataProp, isolatedData])\n\n const emptyData = useCallback(\n (data: { pushContainerItems: unknown[] }) => {\n const firstItem = data.pushContainerItems?.[0]\n if (firstItem === null || typeof firstItem !== 'object') {\n return {\n ...isolatedData,\n pushContainerItems: [null],\n }\n }\n return defaultData\n },\n [defaultData, isolatedData]\n )\n\n return (\n <Isolation\n data={data}\n defaultData={defaultData}\n required={required}\n emptyData={emptyData}\n bubbleValidation={\n containerModeRef.current === 'view' ? false : bubbleValidation\n }\n commitHandleRef={commitHandleRef}\n transformOnCommit={({ pushContainerItems }) => {\n return moveValueToPath(\n path || absolutePath,\n typeof insertAt === 'number'\n ? [\n ...entries.slice(0, insertAt),\n ...pushContainerItems,\n ...entries.slice(insertAt),\n ]\n : [...entries, ...pushContainerItems],\n absolutePath ? structuredClone(getValueByPath('/')) : {}\n )\n }}\n onCommit={(data, options) => {\n const { clearData, preventCommit } = options\n if (hasReachedLimit) {\n preventCommit()\n setShowStatus(true)\n } else {\n setNextContainerMode('view')\n switchContainerModeRef.current?.('view')\n clearData()\n }\n onCommit?.(data, options)\n }}\n >\n <PushContainerContext.Provider value={newItemContextProps}>\n <IterateArray\n path=\"/pushContainerItems\"\n containerMode={showOpenButton ? 'view' : 'edit'}\n withoutFlex\n >\n <NewContainer\n title={title}\n openButton={openButton}\n switchContainerModeRef={switchContainerModeRef}\n showOpenButton={showOpenButton}\n cancelHandler={cancelHandler}\n containerModeRef={containerModeRef}\n rerenderPushContainer={forceUpdate}\n {...rest}\n >\n {children}\n </NewContainer>\n </IterateArray>\n </PushContainerContext.Provider>\n </Isolation>\n )\n}\n\nfunction NewContainer({\n title,\n openButton,\n showOpenButton,\n switchContainerModeRef,\n cancelHandler,\n containerModeRef,\n rerenderPushContainer,\n children,\n ...rest\n}) {\n const { containerMode, switchContainerMode } =\n useContext(IterateItemContext) || {}\n containerModeRef.current = containerMode\n\n useEffect(() => {\n rerenderPushContainer()\n }, [containerMode, rerenderPushContainer])\n\n switchContainerModeRef.current = switchContainerMode\n const isVisible = Boolean(!showOpenButton || containerMode === 'edit')\n const { createButton } = useTranslation().IteratePushContainer\n const { clearData } = useContext(DataContext) || {}\n const restoreOriginalValue = useCallback(() => {\n clearData?.()\n }, [clearData])\n\n const toolbar = (\n <Toolbar>\n <IterateItemContext.Consumer>\n {(context) => {\n const newItemContextProps = {\n ...context,\n restoreOriginalValue,\n }\n return (\n <IterateItemContext.Provider value={newItemContextProps}>\n <Flex.Horizontal gap=\"large\">\n <DoneButton text={createButton} />\n {showOpenButton && (\n <CancelButton onClick={cancelHandler} />\n )}\n </Flex.Horizontal>\n </IterateItemContext.Provider>\n )\n }}\n </IterateItemContext.Consumer>\n </Toolbar>\n )\n\n return (\n <VisibilityContext.Provider value={{ isVisible, keepInDOM: false }}>\n <EditContainer\n open={isVisible}\n title={title}\n toolbar={toolbar}\n {...rest}\n >\n {children}\n </EditContainer>\n\n {openButton && typeof showOpenButton === 'boolean' && (\n <HeightAnimation open={showOpenButton && containerMode === 'view'}>\n {openButton}\n </HeightAnimation>\n )}\n </VisibilityContext.Provider>\n )\n}\n\nPushContainer.OpenButton = OpenButton\nPushContainer._supportsSpacingProps = true\n\nexport default PushContainer\n"],"mappings":";;;;;;;;;;AAAA,OAAOA,KAAK,IACVC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,UAAU,EACVC,MAAM,QACD,OAAO;AACd,OAAOC,SAAS,MAAM,sBAAsB;AAC5C,OAAOC,oBAAoB,MAAM,wBAAwB;AACzD,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,OAAOC,WAAW,MAAM,2BAA2B;AACnD,OAAOC,iBAAiB,MAAM,yCAAyC;AACvE,OAAOC,YAAY,MAAM,0BAA0B;AACnD,OAAOC,aAAa,IAAIC,YAAY,EAAEC,UAAU,QAAQ,kBAAkB;AAC1E,OAAOC,YAAY,MAAyB,UAAU;AACtD,OAAOC,UAAU,MAAM,cAAc;AACrC,SAASC,IAAI,EAAEC,eAAe,QAAQ,wBAAwB;AAG9D,SACEC,aAAa,EACbC,WAAW,EACXC,sBAAsB,QACjB,UAAU;AACjB,OAAOC,OAAO,MAAM,YAAY;AAChC,SAASC,cAAc,QAAQ,aAAa;AAE5C,SAASC,WAAW,QAAQ,4BAA4B;AAMxD,OAAOC,eAAe,MAAM,yBAAyB;AAuFrD,SAASC,aAAaA,CAACC,KAAe,EAAE;EACtC,MAAM,GAAGC,WAAW,CAAC,GAAGxB,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClD,MAAM;IAAEyB,IAAI,EAAEC,SAAS;IAAEC,QAAQ,EAAEC;EAAkB,CAAC,GACpD/B,UAAU,CAACQ,WAAW,CAAC,IAAI,CAAC,CAAC;EAE/B,MAAM;MACJoB,IAAI,EAAEI,QAAQ;MACdC,WAAW,EAAEC,eAAe;MAC5BC,YAAY;MACZC,gBAAgB;MAChBC,IAAI;MACJC,QAAQ;MACRC,QAAQ;MACRC,KAAK;MACLV,QAAQ,GAAGC,iBAAiB;MAC5BU,QAAQ;MACRC,UAAU;MACVC,kBAAkB;MAClBC;IAEF,CAAC,GAAGlB,KAAK;IADJmB,IAAI,GAAAC,wBAAA,CACLpB,KAAK,EAAAqB,SAAA;EAET,MAAM;IAAEC;EAAa,CAAC,GAAG7B,WAAW,CAACmB,QAAQ,CAAC;EAC9C,MAAMW,eAAe,GAAG7C,MAAM,CAAa,CAAC;EAC5C,MAAM8C,sBAAsB,GAAG9C,MAAM,CAAgC,CAAC;EACtE,MAAM+C,gBAAgB,GAAG/C,MAAM,CAAgB,CAAC;EAChD,MAAM;IACJgD,KAAK,EAAEC,OAAO,GAAG,EAAE;IACnBC,eAAe;IACfC;EACF,CAAC,GAAG7C,YAAY,CAAiB2B,IAAI,IAAIC,QAAQ,CAAC;EAElD,MAAM;IAAEkB;EAAqB,CAAC,GAAGpC,sBAAsB,CACrDiB,IAAI,IAAIW,YACV,CAAC;EACD,MAAM;IAAES,eAAe;IAAEC;EAAc,CAAC,GAAGxC,aAAa,CACtDmB,IAAI,IAAIW,YACV,CAAC;EACD,MAAMW,aAAa,GAAG5D,WAAW,CAAC,MAAM;IACtC,IAAI0D,eAAe,EAAE;MACnBC,aAAa,CAAC,KAAK,CAAC;IACtB;EACF,CAAC,EAAE,CAACD,eAAe,EAAEC,aAAa,CAAC,CAAC;EAEpC,MAAME,cAAc,GAAGjB,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAGU,OAAO,CAAC;EACpD,MAAMQ,mBAAyC,GAAG;IAChDxB,IAAI;IACJC,QAAQ;IACRe,OAAO;IACPJ,eAAe;IACfa,mBAAmB,EAAEZ,sBAAsB,CAACa;EAC9C,CAAC;EAED,MAAMnC,IAAI,GAAG1B,OAAO,CAAC,MAAM;IACzB,IAAIgC,eAAe,EAAE;MACnB;IACF;IACA,OAAA8B,aAAA,CAAAA,aAAA,KACK7B,YAAY;MACf8B,kBAAkB,EAAE,CAACjC,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAIT,WAAW;IAAC;EAEjD,CAAC,EAAE,CAACS,QAAQ,EAAEE,eAAe,EAAEC,YAAY,CAAC,CAAC;EAE7C,IAAIN,SAAS,EAAE;IAKbqC,MAAM,CAACC,MAAM,CAACvC,IAAI,EAAEC,SAAS,CAAC;EAChC;EAEA,MAAMI,WAAW,GAAG/B,OAAO,CAAC,MAAM;IAChC,OAAA8D,aAAA,CAAAA,aAAA,KACM,CAAChC,QAAQ,GAAGG,YAAY,GAAG,IAAI;MACnC8B,kBAAkB,EAAE,CAAC/B,eAAe,aAAfA,eAAe,cAAfA,eAAe,GAAIX,WAAW;IAAC;EAExD,CAAC,EAAE,CAACS,QAAQ,EAAEE,eAAe,EAAEC,YAAY,CAAC,CAAC;EAE7C,MAAMiC,SAAS,GAAGrE,WAAW,CAC1B6B,IAAuC,IAAK;IAAA,IAAAyC,qBAAA;IAC3C,MAAMC,SAAS,IAAAD,qBAAA,GAAGzC,IAAI,CAACqC,kBAAkB,cAAAI,qBAAA,uBAAvBA,qBAAA,CAA0B,CAAC,CAAC;IAC9C,IAAIC,SAAS,KAAK,IAAI,IAAI,OAAOA,SAAS,KAAK,QAAQ,EAAE;MACvD,OAAAN,aAAA,CAAAA,aAAA,KACK7B,YAAY;QACf8B,kBAAkB,EAAE,CAAC,IAAI;MAAC;IAE9B;IACA,OAAOhC,WAAW;EACpB,CAAC,EACD,CAACA,WAAW,EAAEE,YAAY,CAC5B,CAAC;EAED,OACErC,KAAA,CAAAyE,aAAA,CAAClE,SAAS;IACRuB,IAAI,EAAEA,IAAK;IACXK,WAAW,EAAEA,WAAY;IACzBH,QAAQ,EAAEA,QAAS;IACnBsC,SAAS,EAAEA,SAAU;IACrBhC,gBAAgB,EACde,gBAAgB,CAACY,OAAO,KAAK,MAAM,GAAG,KAAK,GAAG3B,gBAC/C;IACDa,eAAe,EAAEA,eAAgB;IACjCuB,iBAAiB,EAAEC,IAAA,IAA4B;MAAA,IAA3B;QAAER;MAAmB,CAAC,GAAAQ,IAAA;MACxC,OAAOnB,eAAe,CACpBjB,IAAI,IAAIW,YAAY,EACpB,OAAOT,QAAQ,KAAK,QAAQ,GACxB,CACE,GAAGc,OAAO,CAACqB,KAAK,CAAC,CAAC,EAAEnC,QAAQ,CAAC,EAC7B,GAAG0B,kBAAkB,EACrB,GAAGZ,OAAO,CAACqB,KAAK,CAACnC,QAAQ,CAAC,CAC3B,GACD,CAAC,GAAGc,OAAO,EAAE,GAAGY,kBAAkB,CAAC,EACvCjB,YAAY,GAAGxB,eAAe,CAAC+B,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CACzD,CAAC;IACH,CAAE;IACFX,QAAQ,EAAEA,CAAChB,IAAI,EAAE+C,OAAO,KAAK;MAC3B,MAAM;QAAEC,SAAS;QAAEC;MAAc,CAAC,GAAGF,OAAO;MAC5C,IAAIlB,eAAe,EAAE;QACnBoB,aAAa,CAAC,CAAC;QACfnB,aAAa,CAAC,IAAI,CAAC;MACrB,CAAC,MAAM;QAAA,IAAAoB,qBAAA;QACLtB,oBAAoB,CAAC,MAAM,CAAC;QAC5B,CAAAsB,qBAAA,GAAA5B,sBAAsB,CAACa,OAAO,cAAAe,qBAAA,uBAA9BA,qBAAA,CAAAC,IAAA,CAAA7B,sBAAsB,EAAW,MAAM,CAAC;QACxC0B,SAAS,CAAC,CAAC;MACb;MACAhC,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGhB,IAAI,EAAE+C,OAAO,CAAC;IAC3B;EAAE,GAEF7E,KAAA,CAAAyE,aAAA,CAACjE,oBAAoB,CAAC0E,QAAQ;IAAC5B,KAAK,EAAES;EAAoB,GACxD/D,KAAA,CAAAyE,aAAA,CAACzD,YAAY;IACXuB,IAAI,EAAC,qBAAqB;IAC1B4C,aAAa,EAAErB,cAAc,GAAG,MAAM,GAAG,MAAO;IAChDsB,WAAW;EAAA,GAEXpF,KAAA,CAAAyE,aAAA,CAACY,YAAY,EAAAC,QAAA;IACX5C,KAAK,EAAEA,KAAM;IACbE,UAAU,EAAEA,UAAW;IACvBQ,sBAAsB,EAAEA,sBAAuB;IAC/CU,cAAc,EAAEA,cAAe;IAC/BD,aAAa,EAAEA,aAAc;IAC7BR,gBAAgB,EAAEA,gBAAiB;IACnCkC,qBAAqB,EAAE1D;EAAY,GAC/BkB,IAAI,GAEPJ,QACW,CACF,CACe,CACtB,CAAC;AAEhB;AAEA,SAAS0C,YAAYA,CAAAG,KAAA,EAUlB;EAAA,IAAAC,WAAA,EAAAC,aAAA;EAAA,IAVmB;MACpBhD,KAAK;MACLE,UAAU;MACVkB,cAAc;MACdV,sBAAsB;MACtBS,aAAa;MACbR,gBAAgB;MAChBkC,qBAAqB;MACrB5C;IAEF,CAAC,GAAA6C,KAAA;IADIzC,IAAI,GAAAC,wBAAA,CAAAwC,KAAA,EAAAG,UAAA;EAEP,MAAM;IAAER,aAAa;IAAEnB;EAAoB,CAAC,GAC1C9D,UAAU,CAACO,kBAAkB,CAAC,IAAI,CAAC,CAAC;EACtC4C,gBAAgB,CAACY,OAAO,GAAGkB,aAAa;EAExChF,SAAS,CAAC,MAAM;IACdoF,qBAAqB,CAAC,CAAC;EACzB,CAAC,EAAE,CAACJ,aAAa,EAAEI,qBAAqB,CAAC,CAAC;EAE1CnC,sBAAsB,CAACa,OAAO,GAAGD,mBAAmB;EACpD,MAAM4B,SAAS,GAAGC,OAAO,CAAC,CAAC/B,cAAc,IAAIqB,aAAa,KAAK,MAAM,CAAC;EACtE,MAAM;IAAEW;EAAa,CAAC,GAAGtE,cAAc,CAAC,CAAC,CAACuE,oBAAoB;EAC9D,MAAM;IAAEjB;EAAU,CAAC,GAAG5E,UAAU,CAACQ,WAAW,CAAC,IAAI,CAAC,CAAC;EACnD,MAAMsF,oBAAoB,GAAG/F,WAAW,CAAC,MAAM;IAC7C6E,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAG,CAAC;EACf,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EAEf,MAAMmB,OAAO,GACXjG,KAAA,CAAAyE,aAAA,CAAClD,OAAO,QACNvB,KAAA,CAAAyE,aAAA,CAAChE,kBAAkB,CAACyF,QAAQ,QACxBC,OAAO,IAAK;IACZ,MAAMpC,mBAAmB,GAAAG,aAAA,CAAAA,aAAA,KACpBiC,OAAO;MACVH;IAAoB,EACrB;IACD,OACEhG,KAAA,CAAAyE,aAAA,CAAChE,kBAAkB,CAACyE,QAAQ;MAAC5B,KAAK,EAAES;IAAoB,GACtD/D,KAAA,CAAAyE,aAAA,CAACvD,IAAI,CAACkF,UAAU;MAACC,GAAG,EAAC;IAAO,GAAAZ,WAAA,KAAAA,WAAA,GAC1BzF,KAAA,CAAAyE,aAAA,CAAC1D,UAAU;MAACuF,IAAI,EAAER;IAAa,CAAE,CAAC,GACjChC,cAAc,KAAA4B,aAAA,KAAAA,aAAA,GACb1F,KAAA,CAAAyE,aAAA,CAAC3D,YAAY;MAACyF,OAAO,EAAE1C;IAAc,CAAE,CAAC,EAE3B,CACU,CAAC;EAElC,CAC2B,CACtB,CACV;EAED,OACE7D,KAAA,CAAAyE,aAAA,CAAC9D,iBAAiB,CAACuE,QAAQ;IAAC5B,KAAK,EAAE;MAAEsC,SAAS;MAAEY,SAAS,EAAE;IAAM;EAAE,GACjExG,KAAA,CAAAyE,aAAA,CAAC5D,aAAa,EAAAyE,QAAA;IACZmB,IAAI,EAAEb,SAAU;IAChBlD,KAAK,EAAEA,KAAM;IACbuD,OAAO,EAAEA;EAAQ,GACblD,IAAI,GAEPJ,QACY,CAAC,EAEfC,UAAU,IAAI,OAAOkB,cAAc,KAAK,SAAS,IAChD9D,KAAA,CAAAyE,aAAA,CAACtD,eAAe;IAACsF,IAAI,EAAE3C,cAAc,IAAIqB,aAAa,KAAK;EAAO,GAC/DvC,UACc,CAEO,CAAC;AAEjC;AAEAjB,aAAa,CAACV,UAAU,GAAGA,UAAU;AACrCU,aAAa,CAAC+E,qBAAqB,GAAG,IAAI;AAE1C,eAAe/E,aAAa","ignoreList":[]}
@@ -18,7 +18,7 @@ export default function EditButton() {
18
18
  }, [switchContainerMode]);
19
19
  return React.createElement(Button, {
20
20
  variant: "tertiary",
21
- className: "dnb-push-container__edit-button",
21
+ className: "dnb-forms-iterate__edit-button",
22
22
  icon: edit,
23
23
  icon_position: "left",
24
24
  on_click: editHandler
@@ -1 +1 @@
1
- {"version":3,"file":"EditButton.js","names":["React","useCallback","useContext","Button","useTranslation","IterateItemContext","edit","EditButton","iterateItemContext","switchContainerMode","editButton","IterateViewContainer","editHandler","createElement","variant","className","icon","icon_position","on_click"],"sources":["../../../../../../src/extensions/forms/Iterate/ViewContainer/EditButton.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport { Button } from '../../../../components'\nimport useTranslation from '../../hooks/useTranslation'\nimport IterateItemContext from '../IterateItemContext'\nimport { edit } from '../../../../icons'\n\nexport default function EditButton() {\n const iterateItemContext = useContext(IterateItemContext)\n const { switchContainerMode } = iterateItemContext ?? {}\n const { editButton } = useTranslation().IterateViewContainer\n\n const editHandler = useCallback(() => {\n switchContainerMode?.('edit')\n }, [switchContainerMode])\n\n return (\n <Button\n variant=\"tertiary\"\n className=\"dnb-push-container__edit-button\"\n icon={edit}\n icon_position=\"left\"\n on_click={editHandler}\n >\n {editButton}\n </Button>\n )\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AACtD,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,OAAOC,cAAc,MAAM,4BAA4B;AACvD,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,SAASC,IAAI,QAAQ,mBAAmB;AAExC,eAAe,SAASC,UAAUA,CAAA,EAAG;EACnC,MAAMC,kBAAkB,GAAGN,UAAU,CAACG,kBAAkB,CAAC;EACzD,MAAM;IAAEI;EAAoB,CAAC,GAAGD,kBAAkB,aAAlBA,kBAAkB,cAAlBA,kBAAkB,GAAI,CAAC,CAAC;EACxD,MAAM;IAAEE;EAAW,CAAC,GAAGN,cAAc,CAAC,CAAC,CAACO,oBAAoB;EAE5D,MAAMC,WAAW,GAAGX,WAAW,CAAC,MAAM;IACpCQ,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,MAAM,CAAC;EAC/B,CAAC,EAAE,CAACA,mBAAmB,CAAC,CAAC;EAEzB,OACET,KAAA,CAAAa,aAAA,CAACV,MAAM;IACLW,OAAO,EAAC,UAAU;IAClBC,SAAS,EAAC,iCAAiC;IAC3CC,IAAI,EAAEV,IAAK;IACXW,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAEN;EAAY,GAErBF,UACK,CAAC;AAEb","ignoreList":[]}
1
+ {"version":3,"file":"EditButton.js","names":["React","useCallback","useContext","Button","useTranslation","IterateItemContext","edit","EditButton","iterateItemContext","switchContainerMode","editButton","IterateViewContainer","editHandler","createElement","variant","className","icon","icon_position","on_click"],"sources":["../../../../../../src/extensions/forms/Iterate/ViewContainer/EditButton.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport { Button } from '../../../../components'\nimport useTranslation from '../../hooks/useTranslation'\nimport IterateItemContext from '../IterateItemContext'\nimport { edit } from '../../../../icons'\n\nexport default function EditButton() {\n const iterateItemContext = useContext(IterateItemContext)\n const { switchContainerMode } = iterateItemContext ?? {}\n const { editButton } = useTranslation().IterateViewContainer\n\n const editHandler = useCallback(() => {\n switchContainerMode?.('edit')\n }, [switchContainerMode])\n\n return (\n <Button\n variant=\"tertiary\"\n className=\"dnb-forms-iterate__edit-button\"\n icon={edit}\n icon_position=\"left\"\n on_click={editHandler}\n >\n {editButton}\n </Button>\n )\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AACtD,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,OAAOC,cAAc,MAAM,4BAA4B;AACvD,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,SAASC,IAAI,QAAQ,mBAAmB;AAExC,eAAe,SAASC,UAAUA,CAAA,EAAG;EACnC,MAAMC,kBAAkB,GAAGN,UAAU,CAACG,kBAAkB,CAAC;EACzD,MAAM;IAAEI;EAAoB,CAAC,GAAGD,kBAAkB,aAAlBA,kBAAkB,cAAlBA,kBAAkB,GAAI,CAAC,CAAC;EACxD,MAAM;IAAEE;EAAW,CAAC,GAAGN,cAAc,CAAC,CAAC,CAACO,oBAAoB;EAE5D,MAAMC,WAAW,GAAGX,WAAW,CAAC,MAAM;IACpCQ,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,MAAM,CAAC;EAC/B,CAAC,EAAE,CAACA,mBAAmB,CAAC,CAAC;EAEzB,OACET,KAAA,CAAAa,aAAA,CAACV,MAAM;IACLW,OAAO,EAAC,UAAU;IAClBC,SAAS,EAAC,gCAAgC;IAC1CC,IAAI,EAAEV,IAAK;IACXW,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAEN;EAAY,GAErBF,UACK,CAAC;AAEb","ignoreList":[]}
@@ -15,7 +15,7 @@ export type Props = {
15
15
  */
16
16
  toolbarVariant?: ArrayItemAreaProps['toolbarVariant'];
17
17
  };
18
- export type AllProps = Props & FlexContainerProps & ArrayItemAreaProps;
18
+ export type AllProps = Props & Omit<FlexContainerProps, 'onAnimationEnd'> & ArrayItemAreaProps;
19
19
  declare function ViewContainer(props: AllProps): import("react/jsx-runtime").JSX.Element;
20
20
  declare namespace ViewContainer {
21
21
  var EditButton: typeof import("./EditButton").default;
@@ -1 +1 @@
1
- {"version":3,"file":"ViewContainer.js","names":["React","useContext","useMemo","classnames","convertJsxToString","Lead","ArrayItemArea","IterateItemContext","Toolbar","EditButton","RemoveButton","replaceItemNo","ViewContainer","props","_ref","children","className","title","toolbar","toolbarVariant","restProps","_objectWithoutProperties","_excluded","index","arrayValue","itemTitle","toolbarElement","length","_Toolbar","createElement","hasToolbar","Children","toArray","some","child","_extends","mode","ariaLabel","size","_Toolbar2","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/ViewContainer/ViewContainer.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport { Lead } from '../../../../elements'\nimport ArrayItemArea, { ArrayItemAreaProps } from '../Array/ArrayItemArea'\nimport IterateItemContext from '../IterateItemContext'\nimport Toolbar from '../Toolbar'\nimport EditButton from './EditButton'\nimport RemoveButton from './RemoveButton'\nimport { replaceItemNo } from '../ItemNo'\n\nexport type Props = {\n /**\n * The title of the ViewContainer.\n */\n title?: React.ReactNode\n\n /**\n * An alternative toolbar to be shown in the ViewContainer.\n */\n toolbar?: React.ReactNode\n\n /**\n * The variant of the toolbar.\n */\n toolbarVariant?: ArrayItemAreaProps['toolbarVariant']\n}\n\nexport type AllProps = Props & FlexContainerProps & ArrayItemAreaProps\n\nfunction ViewContainer(props: AllProps) {\n const {\n children,\n className,\n title,\n toolbar,\n toolbarVariant,\n ...restProps\n } = props || {}\n const { index, arrayValue } = useContext(IterateItemContext)\n const itemTitle = useMemo(() => {\n return replaceItemNo(title, index)\n }, [index, title])\n\n let toolbarElement = toolbar\n if (toolbarVariant === 'minimumOneItem' && arrayValue.length <= 1) {\n toolbarElement = (\n <Toolbar>\n <EditButton />\n </Toolbar>\n )\n }\n\n const hasToolbar =\n !toolbarElement &&\n React.Children.toArray(children).some((child) => {\n return child?.['type'] === Toolbar\n })\n\n return (\n <ArrayItemArea\n mode=\"view\"\n ariaLabel={convertJsxToString(itemTitle)}\n className={classnames('dnb-forms-section-view-block', className)}\n toolbarVariant={toolbarVariant}\n {...restProps}\n >\n {itemTitle && <Lead size=\"basis\">{itemTitle}</Lead>}\n {children}\n {hasToolbar\n ? null\n : toolbarElement ??\n (toolbarVariant !== 'custom' && (\n <Toolbar>\n <EditButton />\n <RemoveButton />\n </Toolbar>\n ))}\n </ArrayItemArea>\n )\n}\n\nViewContainer.EditButton = EditButton\nViewContainer.RemoveButton = RemoveButton\n\nViewContainer._supportsSpacingProps = true\nexport default ViewContainer\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAClD,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,kBAAkB,QAAQ,qCAAqC;AAExE,SAASC,IAAI,QAAQ,sBAAsB;AAC3C,OAAOC,aAAa,MAA8B,wBAAwB;AAC1E,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,OAAOC,OAAO,MAAM,YAAY;AAChC,OAAOC,UAAU,MAAM,cAAc;AACrC,OAAOC,YAAY,MAAM,gBAAgB;AACzC,SAASC,aAAa,QAAQ,WAAW;AAqBzC,SAASC,aAAaA,CAACC,KAAe,EAAE;EACtC,MAAAC,IAAA,GAOID,KAAK,IAAI,CAAC,CAAC;IAPT;MACJE,QAAQ;MACRC,SAAS;MACTC,KAAK;MACLC,OAAO;MACPC;IAEF,CAAC,GAAAL,IAAA;IADIM,SAAS,GAAAC,wBAAA,CAAAP,IAAA,EAAAQ,SAAA;EAEd,MAAM;IAAEC,KAAK;IAAEC;EAAW,CAAC,GAAGvB,UAAU,CAACM,kBAAkB,CAAC;EAC5D,MAAMkB,SAAS,GAAGvB,OAAO,CAAC,MAAM;IAC9B,OAAOS,aAAa,CAACM,KAAK,EAAEM,KAAK,CAAC;EACpC,CAAC,EAAE,CAACA,KAAK,EAAEN,KAAK,CAAC,CAAC;EAElB,IAAIS,cAAc,GAAGR,OAAO;EAC5B,IAAIC,cAAc,KAAK,gBAAgB,IAAIK,UAAU,CAACG,MAAM,IAAI,CAAC,EAAE;IACjED,cAAc,GAAAE,QAAA,KAAAA,QAAA,GACZ5B,KAAA,CAAA6B,aAAA,CAACrB,OAAO,QACNR,KAAA,CAAA6B,aAAA,CAACpB,UAAU,MAAE,CACN,CAAC,CACX;EACH;EAEA,MAAMqB,UAAU,GACd,CAACJ,cAAc,IACf1B,KAAK,CAAC+B,QAAQ,CAACC,OAAO,CAACjB,QAAQ,CAAC,CAACkB,IAAI,CAAEC,KAAK,IAAK;IAC/C,OAAO,CAAAA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAG,MAAM,CAAC,MAAK1B,OAAO;EACpC,CAAC,CAAC;EAEJ,OACER,KAAA,CAAA6B,aAAA,CAACvB,aAAa,EAAA6B,QAAA;IACZC,IAAI,EAAC,MAAM;IACXC,SAAS,EAAEjC,kBAAkB,CAACqB,SAAS,CAAE;IACzCT,SAAS,EAAEb,UAAU,CAAC,8BAA8B,EAAEa,SAAS,CAAE;IACjEG,cAAc,EAAEA;EAAe,GAC3BC,SAAS,GAEZK,SAAS,IAAIzB,KAAA,CAAA6B,aAAA,CAACxB,IAAI;IAACiC,IAAI,EAAC;EAAO,GAAEb,SAAgB,CAAC,EAClDV,QAAQ,EACRe,UAAU,GACP,IAAI,GACJJ,cAAc,aAAdA,cAAc,cAAdA,cAAc,GACbP,cAAc,KAAK,QAAQ,KAAAoB,SAAA,KAAAA,SAAA,GAC1BvC,KAAA,CAAA6B,aAAA,CAACrB,OAAO,QACNR,KAAA,CAAA6B,aAAA,CAACpB,UAAU,MAAE,CAAC,EACdT,KAAA,CAAA6B,aAAA,CAACnB,YAAY,MAAE,CACR,CAAC,EAEH,CAAC;AAEpB;AAEAE,aAAa,CAACH,UAAU,GAAGA,UAAU;AACrCG,aAAa,CAACF,YAAY,GAAGA,YAAY;AAEzCE,aAAa,CAAC4B,qBAAqB,GAAG,IAAI;AAC1C,eAAe5B,aAAa","ignoreList":[]}
1
+ {"version":3,"file":"ViewContainer.js","names":["React","useContext","useMemo","classnames","convertJsxToString","Lead","ArrayItemArea","IterateItemContext","Toolbar","EditButton","RemoveButton","replaceItemNo","ViewContainer","props","_ref","children","className","title","toolbar","toolbarVariant","restProps","_objectWithoutProperties","_excluded","index","arrayValue","itemTitle","toolbarElement","length","_Toolbar","createElement","hasToolbar","Children","toArray","some","child","_extends","mode","ariaLabel","size","_Toolbar2","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/ViewContainer/ViewContainer.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport { Lead } from '../../../../elements'\nimport ArrayItemArea, { ArrayItemAreaProps } from '../Array/ArrayItemArea'\nimport IterateItemContext from '../IterateItemContext'\nimport Toolbar from '../Toolbar'\nimport EditButton from './EditButton'\nimport RemoveButton from './RemoveButton'\nimport { replaceItemNo } from '../ItemNo'\n\nexport type Props = {\n /**\n * The title of the ViewContainer.\n */\n title?: React.ReactNode\n\n /**\n * An alternative toolbar to be shown in the ViewContainer.\n */\n toolbar?: React.ReactNode\n\n /**\n * The variant of the toolbar.\n */\n toolbarVariant?: ArrayItemAreaProps['toolbarVariant']\n}\n\nexport type AllProps = Props &\n Omit<FlexContainerProps, 'onAnimationEnd'> &\n ArrayItemAreaProps\n\nfunction ViewContainer(props: AllProps) {\n const {\n children,\n className,\n title,\n toolbar,\n toolbarVariant,\n ...restProps\n } = props || {}\n const { index, arrayValue } = useContext(IterateItemContext)\n const itemTitle = useMemo(() => {\n return replaceItemNo(title, index)\n }, [index, title])\n\n let toolbarElement = toolbar\n if (toolbarVariant === 'minimumOneItem' && arrayValue.length <= 1) {\n toolbarElement = (\n <Toolbar>\n <EditButton />\n </Toolbar>\n )\n }\n\n const hasToolbar =\n !toolbarElement &&\n React.Children.toArray(children).some((child) => {\n return child?.['type'] === Toolbar\n })\n\n return (\n <ArrayItemArea\n mode=\"view\"\n ariaLabel={convertJsxToString(itemTitle)}\n className={classnames('dnb-forms-section-view-block', className)}\n toolbarVariant={toolbarVariant}\n {...restProps}\n >\n {itemTitle && <Lead size=\"basis\">{itemTitle}</Lead>}\n {children}\n {hasToolbar\n ? null\n : toolbarElement ??\n (toolbarVariant !== 'custom' && (\n <Toolbar>\n <EditButton />\n <RemoveButton />\n </Toolbar>\n ))}\n </ArrayItemArea>\n )\n}\n\nViewContainer.EditButton = EditButton\nViewContainer.RemoveButton = RemoveButton\n\nViewContainer._supportsSpacingProps = true\nexport default ViewContainer\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAClD,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,kBAAkB,QAAQ,qCAAqC;AAExE,SAASC,IAAI,QAAQ,sBAAsB;AAC3C,OAAOC,aAAa,MAA8B,wBAAwB;AAC1E,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,OAAOC,OAAO,MAAM,YAAY;AAChC,OAAOC,UAAU,MAAM,cAAc;AACrC,OAAOC,YAAY,MAAM,gBAAgB;AACzC,SAASC,aAAa,QAAQ,WAAW;AAuBzC,SAASC,aAAaA,CAACC,KAAe,EAAE;EACtC,MAAAC,IAAA,GAOID,KAAK,IAAI,CAAC,CAAC;IAPT;MACJE,QAAQ;MACRC,SAAS;MACTC,KAAK;MACLC,OAAO;MACPC;IAEF,CAAC,GAAAL,IAAA;IADIM,SAAS,GAAAC,wBAAA,CAAAP,IAAA,EAAAQ,SAAA;EAEd,MAAM;IAAEC,KAAK;IAAEC;EAAW,CAAC,GAAGvB,UAAU,CAACM,kBAAkB,CAAC;EAC5D,MAAMkB,SAAS,GAAGvB,OAAO,CAAC,MAAM;IAC9B,OAAOS,aAAa,CAACM,KAAK,EAAEM,KAAK,CAAC;EACpC,CAAC,EAAE,CAACA,KAAK,EAAEN,KAAK,CAAC,CAAC;EAElB,IAAIS,cAAc,GAAGR,OAAO;EAC5B,IAAIC,cAAc,KAAK,gBAAgB,IAAIK,UAAU,CAACG,MAAM,IAAI,CAAC,EAAE;IACjED,cAAc,GAAAE,QAAA,KAAAA,QAAA,GACZ5B,KAAA,CAAA6B,aAAA,CAACrB,OAAO,QACNR,KAAA,CAAA6B,aAAA,CAACpB,UAAU,MAAE,CACN,CAAC,CACX;EACH;EAEA,MAAMqB,UAAU,GACd,CAACJ,cAAc,IACf1B,KAAK,CAAC+B,QAAQ,CAACC,OAAO,CAACjB,QAAQ,CAAC,CAACkB,IAAI,CAAEC,KAAK,IAAK;IAC/C,OAAO,CAAAA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAG,MAAM,CAAC,MAAK1B,OAAO;EACpC,CAAC,CAAC;EAEJ,OACER,KAAA,CAAA6B,aAAA,CAACvB,aAAa,EAAA6B,QAAA;IACZC,IAAI,EAAC,MAAM;IACXC,SAAS,EAAEjC,kBAAkB,CAACqB,SAAS,CAAE;IACzCT,SAAS,EAAEb,UAAU,CAAC,8BAA8B,EAAEa,SAAS,CAAE;IACjEG,cAAc,EAAEA;EAAe,GAC3BC,SAAS,GAEZK,SAAS,IAAIzB,KAAA,CAAA6B,aAAA,CAACxB,IAAI;IAACiC,IAAI,EAAC;EAAO,GAAEb,SAAgB,CAAC,EAClDV,QAAQ,EACRe,UAAU,GACP,IAAI,GACJJ,cAAc,aAAdA,cAAc,cAAdA,cAAc,GACbP,cAAc,KAAK,QAAQ,KAAAoB,SAAA,KAAAA,SAAA,GAC1BvC,KAAA,CAAA6B,aAAA,CAACrB,OAAO,QACNR,KAAA,CAAA6B,aAAA,CAACpB,UAAU,MAAE,CAAC,EACdT,KAAA,CAAA6B,aAAA,CAACnB,YAAY,MAAE,CACR,CAAC,EAEH,CAAC;AAEpB;AAEAE,aAAa,CAACH,UAAU,GAAGA,UAAU;AACrCG,aAAa,CAACF,YAAY,GAAGA,YAAY;AAEzCE,aAAa,CAAC4B,qBAAqB,GAAG,IAAI;AAC1C,eAAe5B,aAAa","ignoreList":[]}
@@ -1,5 +1,11 @@
1
1
  import { Props as NumberValueProps } from '../Number';
2
- export type Props = NumberValueProps;
2
+ import type { CurrencyISO } from '../../constants/currencies';
3
+ export type Props = NumberValueProps & {
4
+ /**
5
+ * The currency of the component.
6
+ */
7
+ currency?: CurrencyISO | true;
8
+ };
3
9
  declare function Currency(props: Props): import("react/jsx-runtime").JSX.Element;
4
10
  declare namespace Currency {
5
11
  var _supportsSpacingProps: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Currency.js","names":["React","CURRENCY","NumberValue","Currency","props","_props$currency","numberProps","_objectSpread","currency","createElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Value/Currency/Currency.tsx"],"sourcesContent":["import React from 'react'\nimport { CURRENCY } from '../../../../shared/defaults'\nimport NumberValue, { Props as NumberValueProps } from '../Number'\n\nexport type Props = NumberValueProps\n\nfunction Currency(props: Props) {\n const numberProps: Props = {\n ...props,\n currency: props.currency ?? CURRENCY,\n }\n\n return <NumberValue {...numberProps} />\n}\n\nCurrency._supportsSpacingProps = true\nexport default Currency\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,6BAA6B;AACtD,OAAOC,WAAW,MAAqC,WAAW;AAIlE,SAASC,QAAQA,CAACC,KAAY,EAAE;EAAA,IAAAC,eAAA;EAC9B,MAAMC,WAAkB,GAAAC,aAAA,CAAAA,aAAA,KACnBH,KAAK;IACRI,QAAQ,GAAAH,eAAA,GAAED,KAAK,CAACI,QAAQ,cAAAH,eAAA,cAAAA,eAAA,GAAIJ;EAAQ,EACrC;EAED,OAAOD,KAAA,CAAAS,aAAA,CAACP,WAAW,EAAKI,WAAc,CAAC;AACzC;AAEAH,QAAQ,CAACO,qBAAqB,GAAG,IAAI;AACrC,eAAeP,QAAQ","ignoreList":[]}
1
+ {"version":3,"file":"Currency.js","names":["React","CURRENCY","NumberValue","Currency","props","_props$currency","numberProps","_objectSpread","currency","createElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Value/Currency/Currency.tsx"],"sourcesContent":["import React from 'react'\nimport { CURRENCY } from '../../../../shared/defaults'\nimport NumberValue, { Props as NumberValueProps } from '../Number'\nimport type { CurrencyISO } from '../../constants/currencies'\n\nexport type Props = NumberValueProps & {\n /**\n * The currency of the component.\n */\n currency?: CurrencyISO | true\n}\n\nfunction Currency(props: Props) {\n const numberProps: Props = {\n ...props,\n currency: props.currency ?? CURRENCY,\n }\n\n return <NumberValue {...numberProps} />\n}\n\nCurrency._supportsSpacingProps = true\nexport default Currency\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,6BAA6B;AACtD,OAAOC,WAAW,MAAqC,WAAW;AAUlE,SAASC,QAAQA,CAACC,KAAY,EAAE;EAAA,IAAAC,eAAA;EAC9B,MAAMC,WAAkB,GAAAC,aAAA,CAAAA,aAAA,KACnBH,KAAK;IACRI,QAAQ,GAAAH,eAAA,GAAED,KAAK,CAACI,QAAQ,cAAAH,eAAA,cAAAA,eAAA,GAAIJ;EAAQ,EACrC;EAED,OAAOD,KAAA,CAAAS,aAAA,CAACP,WAAW,EAAKI,WAAc,CAAC;AACzC;AAEAH,QAAQ,CAACO,qBAAqB,GAAG,IAAI;AACrC,eAAeP,QAAQ","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  import { ValueProps } from '../../types';
2
- export type Props = ValueProps<string>;
2
+ import type { CountryISO } from '../../constants/countries';
3
+ export type Props = ValueProps<CountryISO>;
3
4
  declare function SelectCountry(props: Props): import("react/jsx-runtime").JSX.Element;
4
5
  declare namespace SelectCountry {
5
6
  var useCountry: typeof import("./useCountry").default;
@@ -1 +1 @@
1
- {"version":3,"file":"SelectCountry.js","names":["React","classnames","useTranslation","useValueProps","ValueBlock","useCountry","SelectCountry","props","translations","_useValueProps","value","className","label","rest","_objectWithoutProperties","_excluded","getCountryNameByIso","createElement","_extends","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Value/SelectCountry/SelectCountry.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport { useTranslation, useValueProps } from '../../hooks'\nimport { ValueProps } from '../../types'\nimport ValueBlock from '../../ValueBlock'\nimport useCountry from './useCountry'\n\nexport type Props = ValueProps<string>\n\nfunction SelectCountry(props: Props) {\n const translations = useTranslation().SelectCountry\n const {\n value,\n className,\n label = translations.label,\n ...rest\n } = useValueProps(props)\n\n const { getCountryNameByIso } = useCountry()\n\n return (\n <ValueBlock\n label={label}\n className={classnames('dnb-forms-value-select-country', className)}\n {...rest}\n >\n {getCountryNameByIso(value)}\n </ValueBlock>\n )\n}\n\nSelectCountry.useCountry = useCountry\nSelectCountry._supportsSpacingProps = true\nexport default SelectCountry\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,cAAc,EAAEC,aAAa,QAAQ,aAAa;AAE3D,OAAOC,UAAU,MAAM,kBAAkB;AACzC,OAAOC,UAAU,MAAM,cAAc;AAIrC,SAASC,aAAaA,CAACC,KAAY,EAAE;EACnC,MAAMC,YAAY,GAAGN,cAAc,CAAC,CAAC,CAACI,aAAa;EACnD,MAAAG,cAAA,GAKIN,aAAa,CAACI,KAAK,CAAC;IALlB;MACJG,KAAK;MACLC,SAAS;MACTC,KAAK,GAAGJ,YAAY,CAACI;IAEvB,CAAC,GAAAH,cAAA;IADII,IAAI,GAAAC,wBAAA,CAAAL,cAAA,EAAAM,SAAA;EAGT,MAAM;IAAEC;EAAoB,CAAC,GAAGX,UAAU,CAAC,CAAC;EAE5C,OACEL,KAAA,CAAAiB,aAAA,CAACb,UAAU,EAAAc,QAAA;IACTN,KAAK,EAAEA,KAAM;IACbD,SAAS,EAAEV,UAAU,CAAC,gCAAgC,EAAEU,SAAS;EAAE,GAC/DE,IAAI,GAEPG,mBAAmB,CAACN,KAAK,CAChB,CAAC;AAEjB;AAEAJ,aAAa,CAACD,UAAU,GAAGA,UAAU;AACrCC,aAAa,CAACa,qBAAqB,GAAG,IAAI;AAC1C,eAAeb,aAAa","ignoreList":[]}
1
+ {"version":3,"file":"SelectCountry.js","names":["React","classnames","useTranslation","useValueProps","ValueBlock","useCountry","SelectCountry","props","translations","_useValueProps","value","className","label","rest","_objectWithoutProperties","_excluded","getCountryNameByIso","createElement","_extends","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Value/SelectCountry/SelectCountry.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport { useTranslation, useValueProps } from '../../hooks'\nimport { ValueProps } from '../../types'\nimport ValueBlock from '../../ValueBlock'\nimport useCountry from './useCountry'\nimport type { CountryISO } from '../../constants/countries'\n\nexport type Props = ValueProps<CountryISO>\n\nfunction SelectCountry(props: Props) {\n const translations = useTranslation().SelectCountry\n const {\n value,\n className,\n label = translations.label,\n ...rest\n } = useValueProps(props)\n\n const { getCountryNameByIso } = useCountry()\n\n return (\n <ValueBlock\n label={label}\n className={classnames('dnb-forms-value-select-country', className)}\n {...rest}\n >\n {getCountryNameByIso(value)}\n </ValueBlock>\n )\n}\n\nSelectCountry.useCountry = useCountry\nSelectCountry._supportsSpacingProps = true\nexport default SelectCountry\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,cAAc,EAAEC,aAAa,QAAQ,aAAa;AAE3D,OAAOC,UAAU,MAAM,kBAAkB;AACzC,OAAOC,UAAU,MAAM,cAAc;AAKrC,SAASC,aAAaA,CAACC,KAAY,EAAE;EACnC,MAAMC,YAAY,GAAGN,cAAc,CAAC,CAAC,CAACI,aAAa;EACnD,MAAAG,cAAA,GAKIN,aAAa,CAACI,KAAK,CAAC;IALlB;MACJG,KAAK;MACLC,SAAS;MACTC,KAAK,GAAGJ,YAAY,CAACI;IAEvB,CAAC,GAAAH,cAAA;IADII,IAAI,GAAAC,wBAAA,CAAAL,cAAA,EAAAM,SAAA;EAGT,MAAM;IAAEC;EAAoB,CAAC,GAAGX,UAAU,CAAC,CAAC;EAE5C,OACEL,KAAA,CAAAiB,aAAA,CAACb,UAAU,EAAAc,QAAA;IACTN,KAAK,EAAEA,KAAM;IACbD,SAAS,EAAEV,UAAU,CAAC,gCAAgC,EAAEU,SAAS;EAAE,GAC/DE,IAAI,GAEPG,mBAAmB,CAACN,KAAK,CAChB,CAAC;AAEjB;AAEAJ,aAAa,CAACD,UAAU,GAAGA,UAAU;AACrCC,aAAa,CAACa,qBAAqB,GAAG,IAAI;AAC1C,eAAeb,aAAa","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ import { ValueProps } from '../../types';
2
+ import type { CurrencyISO } from '../../constants/currencies';
3
+ export type Props = ValueProps<CurrencyISO>;
4
+ declare function SelectCurrency(props: Props): import("react/jsx-runtime").JSX.Element;
5
+ declare namespace SelectCurrency {
6
+ var useCurrency: typeof import("./useCurrency").default;
7
+ var _supportsSpacingProps: boolean;
8
+ }
9
+ export default SelectCurrency;
@@ -0,0 +1,29 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
+ const _excluded = ["value", "className", "label"];
4
+ import React from 'react';
5
+ import classnames from 'classnames';
6
+ import { useTranslation, useValueProps } from '../../hooks';
7
+ import ValueBlock from '../../ValueBlock';
8
+ import useCurrency from './useCurrency';
9
+ function SelectCurrency(props) {
10
+ const translations = useTranslation().SelectCurrency;
11
+ const _useValueProps = useValueProps(props),
12
+ {
13
+ value,
14
+ className,
15
+ label = translations.label
16
+ } = _useValueProps,
17
+ rest = _objectWithoutProperties(_useValueProps, _excluded);
18
+ const {
19
+ getCurrencyDisplayNameByIso
20
+ } = useCurrency();
21
+ return React.createElement(ValueBlock, _extends({
22
+ label: label,
23
+ className: classnames('dnb-forms-value-select-currency', className)
24
+ }, rest), getCurrencyDisplayNameByIso(value));
25
+ }
26
+ SelectCurrency.useCurrency = useCurrency;
27
+ SelectCurrency._supportsSpacingProps = true;
28
+ export default SelectCurrency;
29
+ //# sourceMappingURL=SelectCurrency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectCurrency.js","names":["React","classnames","useTranslation","useValueProps","ValueBlock","useCurrency","SelectCurrency","props","translations","_useValueProps","value","className","label","rest","_objectWithoutProperties","_excluded","getCurrencyDisplayNameByIso","createElement","_extends","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Value/SelectCurrency/SelectCurrency.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport { useTranslation, useValueProps } from '../../hooks'\nimport { ValueProps } from '../../types'\nimport ValueBlock from '../../ValueBlock'\nimport useCurrency from './useCurrency'\nimport type { CurrencyISO } from '../../constants/currencies'\n\nexport type Props = ValueProps<CurrencyISO>\n\nfunction SelectCurrency(props: Props) {\n const translations = useTranslation().SelectCurrency\n const {\n value,\n className,\n label = translations.label,\n ...rest\n } = useValueProps(props)\n\n const { getCurrencyDisplayNameByIso } = useCurrency()\n\n return (\n <ValueBlock\n label={label}\n className={classnames('dnb-forms-value-select-currency', className)}\n {...rest}\n >\n {getCurrencyDisplayNameByIso(value)}\n </ValueBlock>\n )\n}\n\nSelectCurrency.useCurrency = useCurrency\nSelectCurrency._supportsSpacingProps = true\nexport default SelectCurrency\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,cAAc,EAAEC,aAAa,QAAQ,aAAa;AAE3D,OAAOC,UAAU,MAAM,kBAAkB;AACzC,OAAOC,WAAW,MAAM,eAAe;AAKvC,SAASC,cAAcA,CAACC,KAAY,EAAE;EACpC,MAAMC,YAAY,GAAGN,cAAc,CAAC,CAAC,CAACI,cAAc;EACpD,MAAAG,cAAA,GAKIN,aAAa,CAACI,KAAK,CAAC;IALlB;MACJG,KAAK;MACLC,SAAS;MACTC,KAAK,GAAGJ,YAAY,CAACI;IAEvB,CAAC,GAAAH,cAAA;IADII,IAAI,GAAAC,wBAAA,CAAAL,cAAA,EAAAM,SAAA;EAGT,MAAM;IAAEC;EAA4B,CAAC,GAAGX,WAAW,CAAC,CAAC;EAErD,OACEL,KAAA,CAAAiB,aAAA,CAACb,UAAU,EAAAc,QAAA;IACTN,KAAK,EAAEA,KAAM;IACbD,SAAS,EAAEV,UAAU,CAAC,iCAAiC,EAAEU,SAAS;EAAE,GAChEE,IAAI,GAEPG,2BAA2B,CAACN,KAAK,CACxB,CAAC;AAEjB;AAEAJ,cAAc,CAACD,WAAW,GAAGA,WAAW;AACxCC,cAAc,CAACa,qBAAqB,GAAG,IAAI;AAC3C,eAAeb,cAAc","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export { default } from './SelectCurrency';
2
+ export * from './SelectCurrency';
@@ -0,0 +1,3 @@
1
+ export { default } from './SelectCurrency';
2
+ export * from './SelectCurrency';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["default"],"sources":["../../../../../../src/extensions/forms/Value/SelectCurrency/index.ts"],"sourcesContent":["export { default } from './SelectCurrency'\nexport * from './SelectCurrency'\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,kBAAkB;AAC1C,cAAc,kBAAkB","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import { CurrencyType } from '../../constants/currencies';
2
+ export default function useCurrency(): {
3
+ getCurrencyDisplayNameByIso: (iso: CurrencyType['iso']) => string;
4
+ };