@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,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import { ContextState } from '../../DataContext/Context';
2
3
  import { ContextProps } from '../../../../shared/Context';
3
4
  import type { FieldProps } from '../../types';
4
5
  import { FieldProviderProps } from './FieldProvider';
@@ -74,9 +75,66 @@ declare function useFieldProvider(props?: Omit<FieldProviderProps, 'children'>):
74
75
  'aria-valuemin'?: number;
75
76
  'aria-valuenow'?: number;
76
77
  'aria-valuetext'?: string;
77
- onFocus?: (value: unknown, additionalArgs?: import("../../types").ReceiveAdditionalEventArgs<unknown, import("../../types").DefaultErrorMessages>) => void;
78
- onBlur?: (value: unknown, additionalArgs?: import("../../types").ReceiveAdditionalEventArgs<unknown, import("../../types").DefaultErrorMessages>) => void;
79
- onChange?: (value: unknown, additionalArgs?: import("../../types").ReceiveAdditionalEventArgs<unknown, import("../../types").DefaultErrorMessages>) => void | import("../../types").EventReturnWithStateObjectAndSuccess | Promise<void | import("../../types").EventReturnWithStateObjectAndSuccess>;
78
+ onFocus?: (value: unknown, additionalArgs?: import("../../types").ProvideAdditionalEventArgs & {
79
+ errorMessages: import("../../types").DefaultErrorMessages;
80
+ connectWithPath: (path: string) => {
81
+ getValue: () => unknown;
82
+ };
83
+ connectWithItemPath: (path: string) => {
84
+ getValue: () => unknown;
85
+ };
86
+ getValueByPath: import("../../hooks/useDataValue").GetValueByPath<unknown>;
87
+ getSourceValue: import("../../hooks/useDataValue").GetValueByPath<unknown>;
88
+ setFieldEventListener: (path: string, type: "onSubmit" | "onSubmitRequest" | "onPathChange" | "onMount", callback: (params?: {
89
+ value: unknown;
90
+ }) => void | Promise<void | Error>) => void;
91
+ validators: Record<string, import("../../types").Validator<unknown, import("../../types").DefaultErrorMessages>>;
92
+ props: import("../../types").UseFieldProps<unknown, unknown, import("../../types").DefaultErrorMessages>;
93
+ dataContext: ContextState;
94
+ } & {
95
+ pattern?: string;
96
+ required?: string;
97
+ }) => void;
98
+ onBlur?: (value: unknown, additionalArgs?: import("../../types").ProvideAdditionalEventArgs & {
99
+ errorMessages: import("../../types").DefaultErrorMessages;
100
+ connectWithPath: (path: string) => {
101
+ getValue: () => unknown;
102
+ };
103
+ connectWithItemPath: (path: string) => {
104
+ getValue: () => unknown;
105
+ };
106
+ getValueByPath: import("../../hooks/useDataValue").GetValueByPath<unknown>;
107
+ getSourceValue: import("../../hooks/useDataValue").GetValueByPath<unknown>;
108
+ setFieldEventListener: (path: string, type: "onSubmit" | "onSubmitRequest" | "onPathChange" | "onMount", callback: (params?: {
109
+ value: unknown;
110
+ }) => void | Promise<void | Error>) => void;
111
+ validators: Record<string, import("../../types").Validator<unknown, import("../../types").DefaultErrorMessages>>;
112
+ props: import("../../types").UseFieldProps<unknown, unknown, import("../../types").DefaultErrorMessages>;
113
+ dataContext: ContextState;
114
+ } & {
115
+ pattern?: string;
116
+ required?: string;
117
+ }) => void;
118
+ onChange?: (value: unknown, additionalArgs?: import("../../types").ProvideAdditionalEventArgs & {
119
+ errorMessages: import("../../types").DefaultErrorMessages;
120
+ connectWithPath: (path: string) => {
121
+ getValue: () => unknown;
122
+ };
123
+ connectWithItemPath: (path: string) => {
124
+ getValue: () => unknown;
125
+ };
126
+ getValueByPath: import("../../hooks/useDataValue").GetValueByPath<unknown>;
127
+ getSourceValue: import("../../hooks/useDataValue").GetValueByPath<unknown>;
128
+ setFieldEventListener: (path: string, type: "onSubmit" | "onSubmitRequest" | "onPathChange" | "onMount", callback: (params?: {
129
+ value: unknown;
130
+ }) => void | Promise<void | Error>) => void;
131
+ validators: Record<string, import("../../types").Validator<unknown, import("../../types").DefaultErrorMessages>>;
132
+ props: import("../../types").UseFieldProps<unknown, unknown, import("../../types").DefaultErrorMessages>;
133
+ dataContext: ContextState;
134
+ } & {
135
+ pattern?: string;
136
+ required?: string;
137
+ }) => void | import("../../types").EventReturnWithStateObjectAndSuccess | Promise<void | import("../../types").EventReturnWithStateObjectAndSuccess>;
80
138
  help?: import("../../../../components/help-button/HelpButtonInline").HelpProps;
81
139
  locale?: string;
82
140
  autoComplete?: AutoFill;
@@ -1,10 +1,10 @@
1
- import { type CountryType, type CountryLang } from '../../constants/countries';
1
+ import { type CountryType, type CountryLang, type CountryISO } from '../../constants/countries';
2
2
  import { FieldPropsWithExtraValue } from '../../types';
3
3
  import { FieldBlockWidth } from '../../FieldBlock';
4
4
  import { AutocompleteAllProps } from '../../../../components/autocomplete/Autocomplete';
5
5
  export type CountryFilterSet = 'Scandinavia' | 'Nordic' | 'Europe' | 'Prioritized';
6
6
  export type { CountryType };
7
- export type Props = FieldPropsWithExtraValue<string, CountryType, undefined | string> & {
7
+ export type Props = FieldPropsWithExtraValue<CountryISO, CountryType, undefined | string> & {
8
8
  /**
9
9
  * Lists only the countries you want to show. Can be `Scandinavia`, `Nordic`, `Europe` or `Prioritized`.
10
10
  * Defaults to `Prioritized`.
@@ -37,13 +37,11 @@ type GetCountryData = {
37
37
  sort?: Extract<CountryFilterSet, 'Prioritized'>;
38
38
  makeObject?: (country: CountryType, lang: string) => {
39
39
  selectedKey: string;
40
- selected_value?: string;
41
40
  content: string;
42
41
  };
43
42
  };
44
43
  export declare function getCountryData({ lang, filter, sort, makeObject, }?: GetCountryData): {
45
44
  selectedKey: string;
46
- selected_value?: string;
47
45
  content: string;
48
46
  }[];
49
47
  export declare function countryFilter(country: CountryType, filterCountries: (country: CountryType) => boolean, ccFilter: CountryFilterSet): boolean;
@@ -79,6 +79,8 @@ function SelectCountry(props) {
79
79
  size,
80
80
  value,
81
81
  width,
82
+ noAnimation,
83
+ autoComplete,
82
84
  htmlAttributes,
83
85
  handleFocus,
84
86
  handleBlur,
@@ -191,8 +193,8 @@ function SelectCountry(props) {
191
193
  status: hasError ? 'error' : undefined,
192
194
  show_submit_button: true,
193
195
  keep_selection: true,
194
- autoComplete: "country-name",
195
- no_animation: props.noAnimation
196
+ autoComplete: autoComplete !== null && autoComplete !== void 0 ? autoComplete : 'country-name',
197
+ no_animation: noAnimation
196
198
  }, htmlAttributes)));
197
199
  }
198
200
  function getCountryData() {
@@ -1 +1 @@
1
- {"version":3,"file":"SelectCountry.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_Context","_FieldBlockContext","_defaults","_components","_utils","_countries","_hooks","_FieldBlock","_useTranslation","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","SelectCountry","props","_props$width","sharedContext","useContext","SharedContext","fieldBlockContext","FieldBlockContext","label","defaultLabel","placeholder","defaultPlaceholder","errorRequired","useTranslation","lang","locale","LOCALE","split","getCountryObjectByIso","useCallback","country","countries","find","_ref","iso","i18n","provideAdditionalArgs","errorMessages","useMemo","required","preparedProps","width","composition","id","path","itemPath","className","ccFilter","hasError","disabled","size","htmlAttributes","handleFocus","handleBlur","handleChange","updateValue","setDisplayValue","forceUpdate","filterCountries","useFieldProps","dataRef","useRef","langRef","wasFilled","countryFilter","isLangChange","current","getCountryData","sort","window","requestAnimationFrame","handleCountryChange","_ref2","data","newValue","selectedKey","fillData","onFocusHandler","_ref3","updateData","onTypeHandler","_ref4","_event$nativeEvent","currentValue","setHidden","event","nativeEvent","search","toLowerCase","_ref5","values","some","s","includes","_getCountryObjectByIs","_getCountryObjectByIs2","fieldBlockProps","forId","classnames","undefined","contentWidth","pickSpacingProps","createElement","Autocomplete","input_icon","on_show","on_focus","on_blur","on_change","on_type","stretch","status","show_submit_button","keep_selection","autoComplete","no_animation","noAnimation","makeObject","_country$i18n$lang","content","en","sortedCountries","_ref6","_ref7","_String","_String$localeCompare","b","indexA","prioritizedCountries","indexOf","indexB","priorityA","priorityB","localeCompare","map","result","_country$regions","regions","continent","makeCountryFilterSet","_country$regions2","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/SelectCountry/SelectCountry.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport { LOCALE } from '../../../../shared/defaults'\nimport { Autocomplete } from '../../../../components'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport countries, {\n prioritizedCountries,\n type CountryType,\n type CountryLang,\n} from '../../constants/countries'\nimport { useFieldProps } from '../../hooks'\nimport { FieldPropsWithExtraValue } from '../../types'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport useTranslation from '../../hooks/useTranslation'\nimport { AutocompleteAllProps } from '../../../../components/autocomplete/Autocomplete'\n\nexport type CountryFilterSet =\n | 'Scandinavia'\n | 'Nordic'\n | 'Europe'\n | 'Prioritized'\nexport type { CountryType }\n\nexport type Props = FieldPropsWithExtraValue<\n string,\n CountryType,\n undefined | string\n> & {\n /**\n * Lists only the countries you want to show. Can be `Scandinavia`, `Nordic`, `Europe` or `Prioritized`.\n * Defaults to `Prioritized`.\n */\n countries?: CountryFilterSet\n\n /**\n * Use this prop to filter out certain countries. The function receives the country object and should return a boolean. Returning `false` will omit the country.\n */\n filterCountries?: (country: CountryType) => boolean\n\n /**\n * For internal testing purposes\n */\n noAnimation?: boolean\n\n /**\n * The width of the component.\n */\n width?: FieldBlockWidth\n\n /**\n * The size of the component.\n */\n size?: AutocompleteAllProps['size']\n}\n\nfunction SelectCountry(props: Props) {\n const sharedContext = useContext(SharedContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const {\n label: defaultLabel,\n placeholder: defaultPlaceholder,\n errorRequired,\n } = useTranslation().SelectCountry\n const lang = (sharedContext.locale || LOCALE).split(\n '-'\n )[0] as CountryLang\n\n const getCountryObjectByIso = useCallback(\n (value: CountryType['iso']) => {\n const country = countries.find(({ iso }) => value === iso)\n if (country?.i18n) {\n country['name'] = country.i18n[lang]\n }\n return country\n },\n [lang]\n )\n\n const provideAdditionalArgs = useCallback(\n (value: CountryType['iso']) => {\n const country = getCountryObjectByIso(value)\n\n if (country?.iso) {\n return country\n }\n },\n [getCountryObjectByIso]\n )\n\n const errorMessages = useMemo(\n () => ({\n required: errorRequired,\n }),\n [errorRequired]\n )\n\n const preparedProps: Props = {\n errorMessages,\n ...props,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'large'),\n provideAdditionalArgs,\n }\n\n const {\n id,\n path,\n itemPath,\n className,\n placeholder = defaultPlaceholder,\n label = defaultLabel,\n countries: ccFilter = 'Prioritized',\n hasError,\n disabled,\n size,\n value,\n width,\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n setDisplayValue,\n forceUpdate,\n filterCountries,\n } = useFieldProps(preparedProps)\n\n const dataRef = useRef(null)\n const langRef = useRef(lang)\n const wasFilled = useRef(false)\n\n const filter = useCallback(\n (country: CountryType) => {\n return countryFilter(country, filterCountries, ccFilter)\n },\n [ccFilter, filterCountries]\n )\n\n /**\n * We do not process the whole country list at the first render.\n * Only when the Autocomplete opens (focus).\n * To achieve this, we use memo instead of effect to update refs in sync.\n *\n * We set or update the data list depending on if the countrycode changes or lang changes.\n * We then update data set when value changes.\n */\n useMemo(() => {\n const isLangChange = lang !== langRef.current\n\n if (isLangChange || !wasFilled.current) {\n langRef.current = lang\n dataRef.current = getCountryData({\n lang,\n filter: !wasFilled.current\n ? (country) => country.iso === value\n : filter,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n })\n\n // To force Autocomplete to re-evaluate the internal data\n if (isLangChange && value && typeof window !== 'undefined') {\n updateValue(null)\n window.requestAnimationFrame(() => {\n updateValue(value)\n })\n }\n }\n }, [lang, filter, ccFilter, updateValue, value])\n\n const handleCountryChange = useCallback(\n ({ data }: { data: { selectedKey: string } }) => {\n const newValue = data?.selectedKey\n const country = getCountryObjectByIso(newValue)\n if (country?.iso) {\n handleChange(country.iso, country)\n }\n },\n [getCountryObjectByIso, handleChange]\n )\n\n const fillData = useCallback(() => {\n if (!wasFilled.current) {\n wasFilled.current = true\n dataRef.current = getCountryData({\n lang: langRef.current,\n filter,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n })\n forceUpdate()\n }\n }, [ccFilter, filter, forceUpdate])\n\n const onFocusHandler = useCallback(\n ({ updateData }) => {\n fillData()\n updateData(dataRef.current)\n handleFocus()\n },\n [fillData, handleFocus]\n )\n\n const onTypeHandler = useCallback(\n ({ value: currentValue, setHidden, event }) => {\n // Handle browser autofill/autocomplete\n if (typeof event?.nativeEvent?.data === 'undefined') {\n const search = currentValue.toLowerCase()\n const country = countries.find(({ i18n }) =>\n Object.values(i18n).some((s) => s.toLowerCase().includes(search))\n )\n if (country?.iso) {\n setHidden()\n handleChange(country.iso)\n }\n }\n },\n [handleChange]\n )\n\n useMemo(() => {\n if (path || itemPath) {\n setDisplayValue(\n getCountryObjectByIso(value)?.i18n?.[langRef.current]\n )\n }\n }, [getCountryObjectByIso, itemPath, path, setDisplayValue, value])\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: classnames('dnb-forms-field-select-country', className),\n label,\n width:\n width === 'stretch' || fieldBlockContext?.composition\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Autocomplete\n id={id}\n placeholder={placeholder}\n input_icon={false}\n data={dataRef.current}\n value={typeof value === 'string' ? value : null}\n disabled={disabled}\n size={size}\n on_show={fillData}\n on_focus={onFocusHandler}\n on_blur={handleBlur}\n on_change={handleCountryChange}\n on_type={onTypeHandler}\n stretch\n status={hasError ? 'error' : undefined}\n show_submit_button\n keep_selection\n autoComplete=\"country-name\"\n no_animation={props.noAnimation}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n}\n\ntype GetCountryData = {\n lang?: CountryLang\n filter?: Props['filterCountries']\n sort?: Extract<CountryFilterSet, 'Prioritized'>\n makeObject?: (\n country: CountryType,\n lang: string\n ) => {\n selectedKey: string\n selected_value?: string\n content: string\n }\n}\n\nexport function getCountryData({\n lang = 'nb',\n filter = null,\n sort = null,\n makeObject = (country: CountryType, lang: string) => {\n const content = country.i18n[lang] ?? country.i18n.en\n return {\n selectedKey: country.iso,\n content,\n }\n },\n}: GetCountryData = {}) {\n const sortedCountries = countries\n .filter((country) => {\n if (typeof filter === 'function') {\n return filter(country)\n }\n\n return !filter\n })\n .sort(({ i18n: a }, { i18n: b }) => {\n if (sort === 'Prioritized') {\n const indexA = prioritizedCountries.indexOf(a['en'])\n const indexB = prioritizedCountries.indexOf(b['en'])\n\n const priorityA = indexA !== -1\n const priorityB = indexB !== -1\n\n if (priorityA && priorityB) {\n return indexA - indexB\n } else if (priorityA) {\n return -1\n } else if (priorityB) {\n return 1\n }\n }\n\n return String(a[lang])?.localeCompare?.(b[lang], 'nb') // Always sort by nb, because åøæ (for Åland) is not in the en alphabet\n })\n .map((country) => makeObject(country, lang))\n\n if (sortedCountries.length === 0) {\n return undefined\n }\n\n return sortedCountries\n}\n\nexport function countryFilter(\n country: CountryType,\n filterCountries: (country: CountryType) => boolean,\n ccFilter: CountryFilterSet\n) {\n let result = true\n\n if (ccFilter !== 'Prioritized') {\n switch (ccFilter) {\n case 'Scandinavia':\n case 'Nordic': {\n result = country.regions?.includes(ccFilter)\n break\n }\n case 'Europe': {\n result = country.continent.includes(ccFilter)\n break\n }\n }\n }\n\n if (result && filterCountries) {\n result = filterCountries(country)\n }\n\n return result\n}\n\nexport function makeCountryFilterSet(ccFilter: CountryFilterSet) {\n return (country: CountryType) => {\n switch (ccFilter) {\n case 'Scandinavia':\n case 'Nordic':\n return country.regions?.includes(ccFilter)\n case 'Europe':\n return country.continent.includes(ccFilter)\n }\n return true\n }\n}\n\nSelectCountry._supportsSpacingProps = true\nexport default SelectCountry\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SelectCountry.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_Context","_FieldBlockContext","_defaults","_components","_utils","_countries","_hooks","_FieldBlock","_useTranslation","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","SelectCountry","props","_props$width","sharedContext","useContext","SharedContext","fieldBlockContext","FieldBlockContext","label","defaultLabel","placeholder","defaultPlaceholder","errorRequired","useTranslation","lang","locale","LOCALE","split","getCountryObjectByIso","useCallback","country","countries","find","_ref","iso","i18n","provideAdditionalArgs","errorMessages","useMemo","required","preparedProps","width","composition","id","path","itemPath","className","ccFilter","hasError","disabled","size","noAnimation","autoComplete","htmlAttributes","handleFocus","handleBlur","handleChange","updateValue","setDisplayValue","forceUpdate","filterCountries","useFieldProps","dataRef","useRef","langRef","wasFilled","countryFilter","isLangChange","current","getCountryData","sort","window","requestAnimationFrame","handleCountryChange","_ref2","data","newValue","selectedKey","fillData","onFocusHandler","_ref3","updateData","onTypeHandler","_ref4","_event$nativeEvent","currentValue","setHidden","event","nativeEvent","search","toLowerCase","_ref5","values","some","s","includes","_getCountryObjectByIs","_getCountryObjectByIs2","fieldBlockProps","forId","classnames","undefined","contentWidth","pickSpacingProps","createElement","Autocomplete","input_icon","on_show","on_focus","on_blur","on_change","on_type","stretch","status","show_submit_button","keep_selection","no_animation","makeObject","_country$i18n$lang","content","en","sortedCountries","_ref6","_ref7","_String","_String$localeCompare","b","indexA","prioritizedCountries","indexOf","indexB","priorityA","priorityB","localeCompare","map","result","_country$regions","regions","continent","makeCountryFilterSet","_country$regions2","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/SelectCountry/SelectCountry.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport { LOCALE } from '../../../../shared/defaults'\nimport { Autocomplete } from '../../../../components'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport countries, {\n prioritizedCountries,\n type CountryType,\n type CountryLang,\n type CountryISO,\n} from '../../constants/countries'\nimport { useFieldProps } from '../../hooks'\nimport { FieldPropsWithExtraValue } from '../../types'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport useTranslation from '../../hooks/useTranslation'\nimport { AutocompleteAllProps } from '../../../../components/autocomplete/Autocomplete'\n\nexport type CountryFilterSet =\n | 'Scandinavia'\n | 'Nordic'\n | 'Europe'\n | 'Prioritized'\nexport type { CountryType }\n\nexport type Props = FieldPropsWithExtraValue<\n CountryISO,\n CountryType,\n undefined | string\n> & {\n /**\n * Lists only the countries you want to show. Can be `Scandinavia`, `Nordic`, `Europe` or `Prioritized`.\n * Defaults to `Prioritized`.\n */\n countries?: CountryFilterSet\n\n /**\n * Use this prop to filter out certain countries. The function receives the country object and should return a boolean. Returning `false` will omit the country.\n */\n filterCountries?: (country: CountryType) => boolean\n\n /**\n * For internal testing purposes\n */\n noAnimation?: boolean\n\n /**\n * The width of the component.\n */\n width?: FieldBlockWidth\n\n /**\n * The size of the component.\n */\n size?: AutocompleteAllProps['size']\n}\n\nfunction SelectCountry(props: Props) {\n const sharedContext = useContext(SharedContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const {\n label: defaultLabel,\n placeholder: defaultPlaceholder,\n errorRequired,\n } = useTranslation().SelectCountry\n const lang = (sharedContext.locale || LOCALE).split(\n '-'\n )[0] as CountryLang\n\n const getCountryObjectByIso = useCallback(\n (value: CountryType['iso']) => {\n const country = countries.find(({ iso }) => value === iso)\n if (country?.i18n) {\n country['name'] = country.i18n[lang]\n }\n return country\n },\n [lang]\n )\n\n const provideAdditionalArgs = useCallback(\n (value: CountryType['iso']) => {\n const country = getCountryObjectByIso(value)\n\n if (country?.iso) {\n return country\n }\n },\n [getCountryObjectByIso]\n )\n\n const errorMessages = useMemo(\n () => ({\n required: errorRequired,\n }),\n [errorRequired]\n )\n\n const preparedProps: Props = {\n errorMessages,\n ...props,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'large'),\n provideAdditionalArgs,\n }\n\n const {\n id,\n path,\n itemPath,\n className,\n placeholder = defaultPlaceholder,\n label = defaultLabel,\n countries: ccFilter = 'Prioritized',\n hasError,\n disabled,\n size,\n value,\n width,\n noAnimation,\n autoComplete,\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n setDisplayValue,\n forceUpdate,\n filterCountries,\n } = useFieldProps(preparedProps)\n\n const dataRef = useRef(null)\n const langRef = useRef(lang)\n const wasFilled = useRef(false)\n\n const filter = useCallback(\n (country: CountryType) => {\n return countryFilter(country, filterCountries, ccFilter)\n },\n [ccFilter, filterCountries]\n )\n\n /**\n * We do not process the whole country list at the first render.\n * Only when the Autocomplete opens (focus).\n * To achieve this, we use memo instead of effect to update refs in sync.\n *\n * We set or update the data list depending on if the countrycode changes or lang changes.\n * We then update data set when value changes.\n */\n useMemo(() => {\n const isLangChange = lang !== langRef.current\n\n if (isLangChange || !wasFilled.current) {\n langRef.current = lang\n dataRef.current = getCountryData({\n lang,\n filter: !wasFilled.current\n ? (country) => country.iso === value\n : filter,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n })\n\n // To force Autocomplete to re-evaluate the internal data\n if (isLangChange && value && typeof window !== 'undefined') {\n updateValue(null)\n window.requestAnimationFrame(() => {\n updateValue(value)\n })\n }\n }\n }, [lang, filter, ccFilter, updateValue, value])\n\n const handleCountryChange = useCallback(\n ({ data }: { data: { selectedKey: string } }) => {\n const newValue = data?.selectedKey\n const country = getCountryObjectByIso(newValue)\n if (country?.iso) {\n handleChange(country.iso, country)\n }\n },\n [getCountryObjectByIso, handleChange]\n )\n\n const fillData = useCallback(() => {\n if (!wasFilled.current) {\n wasFilled.current = true\n dataRef.current = getCountryData({\n lang: langRef.current,\n filter,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n })\n forceUpdate()\n }\n }, [ccFilter, filter, forceUpdate])\n\n const onFocusHandler = useCallback(\n ({ updateData }) => {\n fillData()\n updateData(dataRef.current)\n handleFocus()\n },\n [fillData, handleFocus]\n )\n\n const onTypeHandler = useCallback(\n ({ value: currentValue, setHidden, event }) => {\n // Handle browser autofill/autocomplete\n if (typeof event?.nativeEvent?.data === 'undefined') {\n const search = currentValue.toLowerCase()\n const country = countries.find(({ i18n }) =>\n Object.values(i18n).some((s) => s.toLowerCase().includes(search))\n )\n if (country?.iso) {\n setHidden()\n handleChange(country.iso)\n }\n }\n },\n [handleChange]\n )\n\n useMemo(() => {\n if (path || itemPath) {\n setDisplayValue(\n getCountryObjectByIso(value)?.i18n?.[langRef.current]\n )\n }\n }, [getCountryObjectByIso, itemPath, path, setDisplayValue, value])\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: classnames('dnb-forms-field-select-country', className),\n label,\n width:\n width === 'stretch' || fieldBlockContext?.composition\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Autocomplete\n id={id}\n placeholder={placeholder}\n input_icon={false}\n data={dataRef.current}\n value={typeof value === 'string' ? value : null}\n disabled={disabled}\n size={size}\n on_show={fillData}\n on_focus={onFocusHandler}\n on_blur={handleBlur}\n on_change={handleCountryChange}\n on_type={onTypeHandler}\n stretch\n status={hasError ? 'error' : undefined}\n show_submit_button\n keep_selection\n autoComplete={autoComplete ?? 'country-name'}\n no_animation={noAnimation}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n}\n\ntype GetCountryData = {\n lang?: CountryLang\n filter?: Props['filterCountries']\n sort?: Extract<CountryFilterSet, 'Prioritized'>\n makeObject?: (\n country: CountryType,\n lang: string\n ) => {\n selectedKey: string\n content: string\n }\n}\n\nexport function getCountryData({\n lang = 'nb',\n filter = null,\n sort = null,\n makeObject = (country: CountryType, lang: string) => {\n const content = country.i18n[lang] ?? country.i18n.en\n return {\n selectedKey: country.iso,\n content,\n }\n },\n}: GetCountryData = {}) {\n const sortedCountries = countries\n .filter((country) => {\n if (typeof filter === 'function') {\n return filter(country)\n }\n\n return !filter\n })\n .sort(({ i18n: a }, { i18n: b }) => {\n if (sort === 'Prioritized') {\n const indexA = prioritizedCountries.indexOf(a['en'])\n const indexB = prioritizedCountries.indexOf(b['en'])\n\n const priorityA = indexA !== -1\n const priorityB = indexB !== -1\n\n if (priorityA && priorityB) {\n return indexA - indexB\n } else if (priorityA) {\n return -1\n } else if (priorityB) {\n return 1\n }\n }\n\n return String(a[lang])?.localeCompare?.(b[lang], 'nb') // Always sort by nb, because åøæ (for Åland) is not in the en alphabet\n })\n .map((country) => makeObject(country, lang))\n\n if (sortedCountries.length === 0) {\n return undefined\n }\n\n return sortedCountries\n}\n\nexport function countryFilter(\n country: CountryType,\n filterCountries: (country: CountryType) => boolean,\n ccFilter: CountryFilterSet\n) {\n let result = true\n\n if (ccFilter !== 'Prioritized') {\n switch (ccFilter) {\n case 'Scandinavia':\n case 'Nordic': {\n result = country.regions?.includes(ccFilter)\n break\n }\n case 'Europe': {\n result = country.continent.includes(ccFilter)\n break\n }\n }\n }\n\n if (result && filterCountries) {\n result = filterCountries(country)\n }\n\n return result\n}\n\nexport function makeCountryFilterSet(ccFilter: CountryFilterSet) {\n return (country: CountryType) => {\n switch (ccFilter) {\n case 'Scandinavia':\n case 'Nordic':\n return country.regions?.includes(ccFilter)\n case 'Europe':\n return country.continent.includes(ccFilter)\n }\n return true\n }\n}\n\nSelectCountry._supportsSpacingProps = true\nexport default SelectCountry\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ import { type CurrencyType, type CurrencyLang, type CurrencyISO } from '../../constants/currencies';
2
+ import { FieldPropsWithExtraValue } from '../../types';
3
+ import { FieldBlockWidth } from '../../FieldBlock';
4
+ import { AutocompleteAllProps } from '../../../../components/autocomplete/Autocomplete';
5
+ export type CurrencyFilterSet = 'Scandinavia' | 'Nordic' | 'Europe' | 'Prioritized';
6
+ export type { CurrencyType };
7
+ export type Props = FieldPropsWithExtraValue<CurrencyISO, CurrencyType, undefined | string> & {
8
+ /**
9
+ * Lists only the currencies you want to show. Can be `Scandinavia`, `Nordic`, `Europe` or `Prioritized`.
10
+ * Defaults to `Prioritized`.
11
+ */
12
+ currencies?: CurrencyFilterSet;
13
+ /**
14
+ * Use this prop to filter out certain currencies. The function receives the currency object and should return a boolean. Returning `false` will omit the currency.
15
+ */
16
+ filterCurrencies?: (currency: CurrencyType) => boolean;
17
+ /**
18
+ * For internal testing purposes
19
+ */
20
+ noAnimation?: boolean;
21
+ /**
22
+ * The width of the component.
23
+ */
24
+ width?: FieldBlockWidth;
25
+ /**
26
+ * The size of the component.
27
+ */
28
+ size?: AutocompleteAllProps['size'];
29
+ };
30
+ declare function SelectCurrency(props: Props): import("react/jsx-runtime").JSX.Element;
31
+ declare namespace SelectCurrency {
32
+ var _supportsSpacingProps: boolean;
33
+ }
34
+ type GetCurrencyData = {
35
+ lang?: CurrencyLang;
36
+ filter?: Props['filterCurrencies'];
37
+ sort?: Extract<CurrencyFilterSet, 'Prioritized'>;
38
+ makeObject?: (currency: CurrencyType, lang: string) => {
39
+ selectedKey: string;
40
+ selected_value: string;
41
+ content: string[];
42
+ };
43
+ };
44
+ export declare function getCurrencyData({ lang, filter, sort, makeObject, }?: GetCurrencyData): {
45
+ selectedKey: string;
46
+ selected_value: string;
47
+ content: string[];
48
+ }[];
49
+ export declare function currencyFilter(currency: CurrencyType, filterCurrencies: (currency: CurrencyType) => boolean, ccFilter: CurrencyFilterSet): boolean;
50
+ export declare function makeCurrencyFilterSet(ccFilter: CurrencyFilterSet): (currency: CurrencyType) => boolean;
51
+ export default SelectCurrency;
@@ -0,0 +1,289 @@
1
+ "use strict";
2
+ "use client";
3
+
4
+ require("core-js/modules/web.dom-collections.iterator.js");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.currencyFilter = currencyFilter;
9
+ exports.default = void 0;
10
+ exports.getCurrencyData = getCurrencyData;
11
+ exports.makeCurrencyFilterSet = makeCurrencyFilterSet;
12
+ var _react = _interopRequireWildcard(require("react"));
13
+ var _classnames = _interopRequireDefault(require("classnames"));
14
+ var _Context = _interopRequireDefault(require("../../../../shared/Context"));
15
+ var _FieldBlockContext = _interopRequireDefault(require("../../FieldBlock/FieldBlockContext"));
16
+ var _defaults = require("../../../../shared/defaults");
17
+ var _components = require("../../../../components");
18
+ var _utils = require("../../../../components/flex/utils");
19
+ var _currencies = _interopRequireWildcard(require("../../constants/currencies"));
20
+ var _hooks = require("../../hooks");
21
+ var _FieldBlock = _interopRequireDefault(require("../../FieldBlock"));
22
+ var _useTranslation = _interopRequireDefault(require("../../hooks/useTranslation"));
23
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
24
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
25
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
26
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
27
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
28
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
29
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
30
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
31
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
32
+ function SelectCurrency(props) {
33
+ var _props$width;
34
+ const sharedContext = (0, _react.useContext)(_Context.default);
35
+ const fieldBlockContext = (0, _react.useContext)(_FieldBlockContext.default);
36
+ const {
37
+ label: defaultLabel,
38
+ placeholder: defaultPlaceholder,
39
+ errorRequired
40
+ } = (0, _useTranslation.default)().SelectCurrency;
41
+ const lang = (sharedContext.locale || _defaults.LOCALE).split('-')[0];
42
+ const getCurrencyObjectByIso = (0, _react.useCallback)(value => {
43
+ const currency = _currencies.default.find(_ref => {
44
+ let {
45
+ iso
46
+ } = _ref;
47
+ return value === iso;
48
+ });
49
+ if (currency !== null && currency !== void 0 && currency.i18n) {
50
+ currency['name'] = currency.i18n[lang];
51
+ }
52
+ return currency;
53
+ }, [lang]);
54
+ const provideAdditionalArgs = (0, _react.useCallback)(value => {
55
+ const currency = getCurrencyObjectByIso(value);
56
+ if (currency !== null && currency !== void 0 && currency.iso) {
57
+ return currency;
58
+ }
59
+ }, [getCurrencyObjectByIso]);
60
+ const errorMessages = (0, _react.useMemo)(() => ({
61
+ required: errorRequired
62
+ }), [errorRequired]);
63
+ const preparedProps = _objectSpread(_objectSpread({
64
+ errorMessages
65
+ }, props), {}, {
66
+ width: (_props$width = props.width) !== null && _props$width !== void 0 ? _props$width : fieldBlockContext !== null && fieldBlockContext !== void 0 && fieldBlockContext.composition ? 'stretch' : 'large',
67
+ provideAdditionalArgs
68
+ });
69
+ const {
70
+ id,
71
+ path,
72
+ itemPath,
73
+ className,
74
+ placeholder = defaultPlaceholder,
75
+ label = defaultLabel,
76
+ currencies: ccFilter = 'Prioritized',
77
+ hasError,
78
+ disabled,
79
+ size,
80
+ value,
81
+ width,
82
+ noAnimation,
83
+ autoComplete,
84
+ htmlAttributes,
85
+ handleFocus,
86
+ handleBlur,
87
+ handleChange,
88
+ updateValue,
89
+ setDisplayValue,
90
+ forceUpdate,
91
+ filterCurrencies
92
+ } = (0, _hooks.useFieldProps)(preparedProps);
93
+ const dataRef = (0, _react.useRef)(null);
94
+ const langRef = (0, _react.useRef)(lang);
95
+ const wasFilled = (0, _react.useRef)(false);
96
+ const filter = (0, _react.useCallback)(currency => {
97
+ return currencyFilter(currency, filterCurrencies, ccFilter);
98
+ }, [ccFilter, filterCurrencies]);
99
+ (0, _react.useMemo)(() => {
100
+ const isLangChange = lang !== langRef.current;
101
+ if (isLangChange || !wasFilled.current) {
102
+ langRef.current = lang;
103
+ dataRef.current = getCurrencyData({
104
+ lang,
105
+ filter: !wasFilled.current ? currency => currency.iso === value : filter,
106
+ sort: ccFilter
107
+ });
108
+ if (isLangChange && value && typeof window !== 'undefined') {
109
+ updateValue(null);
110
+ window.requestAnimationFrame(() => {
111
+ updateValue(value);
112
+ });
113
+ }
114
+ }
115
+ }, [lang, filter, ccFilter, updateValue, value]);
116
+ const handleCurrencyChange = (0, _react.useCallback)(_ref2 => {
117
+ let {
118
+ data
119
+ } = _ref2;
120
+ const newValue = data === null || data === void 0 ? void 0 : data.selectedKey;
121
+ const currency = getCurrencyObjectByIso(newValue);
122
+ if (currency !== null && currency !== void 0 && currency.iso) {
123
+ handleChange(currency.iso, currency);
124
+ }
125
+ }, [getCurrencyObjectByIso, handleChange]);
126
+ const fillData = (0, _react.useCallback)(() => {
127
+ if (!wasFilled.current) {
128
+ wasFilled.current = true;
129
+ dataRef.current = getCurrencyData({
130
+ lang: langRef.current,
131
+ filter,
132
+ sort: ccFilter
133
+ });
134
+ forceUpdate();
135
+ }
136
+ }, [ccFilter, filter, forceUpdate]);
137
+ const onFocusHandler = (0, _react.useCallback)(_ref3 => {
138
+ let {
139
+ updateData
140
+ } = _ref3;
141
+ fillData();
142
+ updateData(dataRef.current);
143
+ handleFocus();
144
+ }, [fillData, handleFocus]);
145
+ const onTypeHandler = (0, _react.useCallback)(_ref4 => {
146
+ var _event$nativeEvent;
147
+ let {
148
+ value: currentValue,
149
+ setHidden,
150
+ event
151
+ } = _ref4;
152
+ if (typeof (event === null || event === void 0 ? void 0 : (_event$nativeEvent = event.nativeEvent) === null || _event$nativeEvent === void 0 ? void 0 : _event$nativeEvent.data) === 'undefined') {
153
+ const search = currentValue.toLowerCase();
154
+ const currency = _currencies.default.find(_ref5 => {
155
+ let {
156
+ i18n
157
+ } = _ref5;
158
+ return Object.values(i18n).some(s => s.toLowerCase().includes(search));
159
+ });
160
+ if (currency !== null && currency !== void 0 && currency.iso) {
161
+ setHidden();
162
+ handleChange(currency.iso);
163
+ }
164
+ }
165
+ }, [handleChange]);
166
+ (0, _react.useMemo)(() => {
167
+ if (path || itemPath) {
168
+ var _getCurrencyObjectByI, _getCurrencyObjectByI2;
169
+ setDisplayValue((_getCurrencyObjectByI = getCurrencyObjectByIso(value)) === null || _getCurrencyObjectByI === void 0 ? void 0 : (_getCurrencyObjectByI2 = _getCurrencyObjectByI.i18n) === null || _getCurrencyObjectByI2 === void 0 ? void 0 : _getCurrencyObjectByI2[langRef.current]);
170
+ }
171
+ }, [getCurrencyObjectByIso, itemPath, path, setDisplayValue, value]);
172
+ const fieldBlockProps = _objectSpread({
173
+ forId: id,
174
+ className: (0, _classnames.default)('dnb-forms-field-select-currency', className),
175
+ label,
176
+ width: width === 'stretch' || fieldBlockContext !== null && fieldBlockContext !== void 0 && fieldBlockContext.composition ? width : undefined,
177
+ contentWidth: width !== false ? width : undefined
178
+ }, (0, _utils.pickSpacingProps)(props));
179
+ return _react.default.createElement(_FieldBlock.default, fieldBlockProps, _react.default.createElement(_components.Autocomplete, _extends({
180
+ id: id,
181
+ placeholder: placeholder,
182
+ input_icon: false,
183
+ data: dataRef.current,
184
+ value: typeof value === 'string' ? value : null,
185
+ disabled: disabled,
186
+ size: size,
187
+ on_show: fillData,
188
+ on_focus: onFocusHandler,
189
+ on_blur: handleBlur,
190
+ on_change: handleCurrencyChange,
191
+ on_type: onTypeHandler,
192
+ stretch: true,
193
+ status: hasError ? 'error' : undefined,
194
+ show_submit_button: true,
195
+ keep_selection: true,
196
+ autoComplete: autoComplete,
197
+ no_animation: noAnimation
198
+ }, htmlAttributes)));
199
+ }
200
+ function getCurrencyData() {
201
+ let {
202
+ lang = 'nb',
203
+ filter = null,
204
+ sort = null,
205
+ makeObject = (currency, lang) => {
206
+ var _currency$i18n$lang;
207
+ const translation = (_currency$i18n$lang = currency.i18n[lang]) !== null && _currency$i18n$lang !== void 0 ? _currency$i18n$lang : currency.i18n.en;
208
+ const content = [translation, currency.iso];
209
+ return {
210
+ selectedKey: currency.iso,
211
+ selected_value: `${translation} (${currency.iso})`,
212
+ content
213
+ };
214
+ }
215
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
216
+ const sortedCurrencies = _currencies.default.filter(currency => {
217
+ if (typeof filter === 'function') {
218
+ return filter(currency);
219
+ }
220
+ return !filter;
221
+ }).sort((_ref6, _ref7) => {
222
+ var _String, _String$localeCompare;
223
+ let {
224
+ i18n: a,
225
+ iso: a1
226
+ } = _ref6;
227
+ let {
228
+ i18n: b,
229
+ iso: b1
230
+ } = _ref7;
231
+ if (sort === 'Prioritized') {
232
+ const indexA = _currencies.prioritizedCurrencies.indexOf(a1);
233
+ const indexB = _currencies.prioritizedCurrencies.indexOf(b1);
234
+ const priorityA = indexA !== -1;
235
+ const priorityB = indexB !== -1;
236
+ if (priorityA && priorityB) {
237
+ return indexA - indexB;
238
+ } else if (priorityA) {
239
+ return -1;
240
+ } else if (priorityB) {
241
+ return 1;
242
+ }
243
+ }
244
+ return (_String = String(a[lang])) === null || _String === void 0 ? void 0 : (_String$localeCompare = _String.localeCompare) === null || _String$localeCompare === void 0 ? void 0 : _String$localeCompare.call(_String, b[lang], 'nb');
245
+ }).map(currency => makeObject(currency, lang));
246
+ if (sortedCurrencies.length === 0) {
247
+ return undefined;
248
+ }
249
+ return sortedCurrencies;
250
+ }
251
+ function currencyFilter(currency, filterCurrencies, ccFilter) {
252
+ let result = true;
253
+ if (ccFilter !== 'Prioritized') {
254
+ switch (ccFilter) {
255
+ case 'Scandinavia':
256
+ case 'Nordic':
257
+ {
258
+ var _currency$regions;
259
+ result = (_currency$regions = currency.regions) === null || _currency$regions === void 0 ? void 0 : _currency$regions.includes(ccFilter);
260
+ break;
261
+ }
262
+ case 'Europe':
263
+ {
264
+ result = currency.continent.includes(ccFilter);
265
+ break;
266
+ }
267
+ }
268
+ }
269
+ if (result && filterCurrencies) {
270
+ result = filterCurrencies(currency);
271
+ }
272
+ return result;
273
+ }
274
+ function makeCurrencyFilterSet(ccFilter) {
275
+ return currency => {
276
+ var _currency$regions2;
277
+ switch (ccFilter) {
278
+ case 'Scandinavia':
279
+ case 'Nordic':
280
+ return (_currency$regions2 = currency.regions) === null || _currency$regions2 === void 0 ? void 0 : _currency$regions2.includes(ccFilter);
281
+ case 'Europe':
282
+ return currency.continent.includes(ccFilter);
283
+ }
284
+ return true;
285
+ };
286
+ }
287
+ SelectCurrency._supportsSpacingProps = true;
288
+ var _default = exports.default = SelectCurrency;
289
+ //# sourceMappingURL=SelectCurrency.js.map