@dnb/eufemia 10.68.0 → 10.69.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/cjs/components/autocomplete/Autocomplete.js +1 -1
  3. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  4. package/cjs/components/info-card/InfoCard.d.ts +4 -0
  5. package/cjs/components/info-card/InfoCard.js +29 -25
  6. package/cjs/components/info-card/InfoCard.js.map +1 -1
  7. package/cjs/components/info-card/style/dnb-info-card.css +5 -0
  8. package/cjs/components/info-card/style/dnb-info-card.min.css +1 -1
  9. package/cjs/components/info-card/style/dnb-info-card.scss +7 -0
  10. package/cjs/components/number-format/NumberFormat.js +4 -2
  11. package/cjs/components/number-format/NumberFormat.js.map +1 -1
  12. package/cjs/components/number-format/NumberUtils.d.ts +3 -0
  13. package/cjs/components/number-format/NumberUtils.js +6 -4
  14. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  15. package/cjs/components/table/TableClickableHead.js +14 -3
  16. package/cjs/components/table/TableClickableHead.js.map +1 -1
  17. package/cjs/components/table/TableTr.js +4 -4
  18. package/cjs/components/table/TableTr.js.map +1 -1
  19. package/cjs/components/table/table-accordion/TableAccordionHead.d.ts +5 -0
  20. package/cjs/components/table/table-accordion/TableAccordionHead.js +27 -20
  21. package/cjs/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  22. package/cjs/components/table/table-navigation/TableNavigationHead.js +7 -4
  23. package/cjs/components/table/table-navigation/TableNavigationHead.js.map +1 -1
  24. package/cjs/extensions/forms/Field/Currency/Currency.d.ts +9 -1
  25. package/cjs/extensions/forms/Field/Currency/Currency.js +8 -3
  26. package/cjs/extensions/forms/Field/Currency/Currency.js.map +1 -1
  27. package/cjs/extensions/forms/Field/Currency/CurrencyDocs.js +1 -1
  28. package/cjs/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -1
  29. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +61 -3
  30. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -4
  31. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -2
  32. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  33. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrency.d.ts +51 -0
  34. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrency.js +289 -0
  35. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrency.js.map +1 -0
  36. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.d.ts +3 -0
  37. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +36 -0
  38. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -0
  39. package/cjs/extensions/forms/Field/SelectCurrency/index.d.ts +2 -0
  40. package/cjs/extensions/forms/Field/SelectCurrency/index.js +28 -0
  41. package/cjs/extensions/forms/Field/SelectCurrency/index.js.map +1 -0
  42. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  43. package/cjs/extensions/forms/Field/index.js +7 -0
  44. package/cjs/extensions/forms/Field/index.js.map +1 -1
  45. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -2
  46. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  47. package/cjs/extensions/forms/Value/Currency/Currency.d.ts +7 -1
  48. package/cjs/extensions/forms/Value/Currency/Currency.js.map +1 -1
  49. package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +2 -1
  50. package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -1
  51. package/cjs/extensions/forms/Value/SelectCurrency/SelectCurrency.d.ts +9 -0
  52. package/cjs/extensions/forms/Value/SelectCurrency/SelectCurrency.js +37 -0
  53. package/cjs/extensions/forms/Value/SelectCurrency/SelectCurrency.js.map +1 -0
  54. package/cjs/extensions/forms/Value/SelectCurrency/index.d.ts +2 -0
  55. package/cjs/extensions/forms/Value/SelectCurrency/index.js +28 -0
  56. package/cjs/extensions/forms/Value/SelectCurrency/index.js.map +1 -0
  57. package/cjs/extensions/forms/Value/SelectCurrency/useCurrency.d.ts +4 -0
  58. package/cjs/extensions/forms/Value/SelectCurrency/useCurrency.js +32 -0
  59. package/cjs/extensions/forms/Value/SelectCurrency/useCurrency.js.map +1 -0
  60. package/cjs/extensions/forms/Value/index.d.ts +1 -0
  61. package/cjs/extensions/forms/Value/index.js +7 -0
  62. package/cjs/extensions/forms/Value/index.js.map +1 -1
  63. package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js +4 -0
  64. package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
  65. package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js +6 -1
  66. package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
  67. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +5 -3
  68. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  69. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
  70. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  71. package/cjs/extensions/forms/constants/allCurrencies.d.ts +1786 -0
  72. package/cjs/extensions/forms/constants/allCurrencies.js +1447 -0
  73. package/cjs/extensions/forms/constants/allCurrencies.js.map +1 -0
  74. package/cjs/extensions/forms/constants/countries.d.ts +4023 -4
  75. package/cjs/extensions/forms/constants/countries.js.map +1 -1
  76. package/cjs/extensions/forms/constants/currencies.d.ts +716 -0
  77. package/cjs/extensions/forms/constants/currencies.js +12 -0
  78. package/cjs/extensions/forms/constants/currencies.js.map +1 -0
  79. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +5 -0
  80. package/cjs/extensions/forms/constants/locales/en-GB.js +5 -0
  81. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  82. package/cjs/extensions/forms/constants/locales/en-US.d.ts +5 -0
  83. package/cjs/extensions/forms/constants/locales/index.d.ts +10 -0
  84. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +5 -0
  85. package/cjs/extensions/forms/constants/locales/nb-NO.js +5 -0
  86. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  87. package/cjs/extensions/forms/constants/locales/sv-SE.d.ts +5 -0
  88. package/cjs/extensions/forms/constants/locales/sv-SE.js +5 -0
  89. package/cjs/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  90. package/cjs/extensions/forms/hooks/useFieldProps.js +18 -17
  91. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  92. package/cjs/extensions/forms/types.d.ts +4 -4
  93. package/cjs/extensions/forms/types.js.map +1 -1
  94. package/cjs/shared/Eufemia.d.ts +1 -1
  95. package/cjs/shared/Eufemia.js +2 -2
  96. package/cjs/shared/Eufemia.js.map +1 -1
  97. package/cjs/shared/Translation.js +5 -6
  98. package/cjs/shared/Translation.js.map +1 -1
  99. package/cjs/style/core/scopes.scss +1 -1
  100. package/cjs/style/dnb-ui-basis.css +1 -1
  101. package/cjs/style/dnb-ui-basis.min.css +1 -1
  102. package/cjs/style/dnb-ui-body.css +1 -1
  103. package/cjs/style/dnb-ui-body.min.css +1 -1
  104. package/cjs/style/dnb-ui-components.css +5 -0
  105. package/cjs/style/dnb-ui-components.min.css +1 -1
  106. package/cjs/style/dnb-ui-core.css +1 -1
  107. package/cjs/style/dnb-ui-core.min.css +1 -1
  108. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +5 -0
  109. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  110. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +5 -0
  111. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  112. package/cjs/style/themes/theme-ui/ui-theme-components.css +5 -0
  113. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  114. package/components/autocomplete/Autocomplete.js +1 -1
  115. package/components/autocomplete/Autocomplete.js.map +1 -1
  116. package/components/info-card/InfoCard.d.ts +4 -0
  117. package/components/info-card/InfoCard.js +26 -25
  118. package/components/info-card/InfoCard.js.map +1 -1
  119. package/components/info-card/style/dnb-info-card.css +5 -0
  120. package/components/info-card/style/dnb-info-card.min.css +1 -1
  121. package/components/info-card/style/dnb-info-card.scss +7 -0
  122. package/components/number-format/NumberFormat.js +4 -2
  123. package/components/number-format/NumberFormat.js.map +1 -1
  124. package/components/number-format/NumberUtils.d.ts +3 -0
  125. package/components/number-format/NumberUtils.js +6 -4
  126. package/components/number-format/NumberUtils.js.map +1 -1
  127. package/components/table/TableClickableHead.js +12 -3
  128. package/components/table/TableClickableHead.js.map +1 -1
  129. package/components/table/TableTr.js +4 -4
  130. package/components/table/TableTr.js.map +1 -1
  131. package/components/table/table-accordion/TableAccordionHead.d.ts +5 -0
  132. package/components/table/table-accordion/TableAccordionHead.js +28 -21
  133. package/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  134. package/components/table/table-navigation/TableNavigationHead.js +4 -4
  135. package/components/table/table-navigation/TableNavigationHead.js.map +1 -1
  136. package/es/components/autocomplete/Autocomplete.js +1 -1
  137. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  138. package/es/components/info-card/InfoCard.d.ts +4 -0
  139. package/es/components/info-card/InfoCard.js +26 -25
  140. package/es/components/info-card/InfoCard.js.map +1 -1
  141. package/es/components/info-card/style/dnb-info-card.css +5 -0
  142. package/es/components/info-card/style/dnb-info-card.min.css +1 -1
  143. package/es/components/info-card/style/dnb-info-card.scss +7 -0
  144. package/es/components/number-format/NumberFormat.js +4 -2
  145. package/es/components/number-format/NumberFormat.js.map +1 -1
  146. package/es/components/number-format/NumberUtils.d.ts +3 -0
  147. package/es/components/number-format/NumberUtils.js +6 -4
  148. package/es/components/number-format/NumberUtils.js.map +1 -1
  149. package/es/components/table/TableClickableHead.js +12 -3
  150. package/es/components/table/TableClickableHead.js.map +1 -1
  151. package/es/components/table/TableTr.js +4 -4
  152. package/es/components/table/TableTr.js.map +1 -1
  153. package/es/components/table/table-accordion/TableAccordionHead.d.ts +5 -0
  154. package/es/components/table/table-accordion/TableAccordionHead.js +28 -21
  155. package/es/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  156. package/es/components/table/table-navigation/TableNavigationHead.js +4 -4
  157. package/es/components/table/table-navigation/TableNavigationHead.js.map +1 -1
  158. package/es/extensions/forms/Field/Currency/Currency.d.ts +9 -1
  159. package/es/extensions/forms/Field/Currency/Currency.js +8 -3
  160. package/es/extensions/forms/Field/Currency/Currency.js.map +1 -1
  161. package/es/extensions/forms/Field/Currency/CurrencyDocs.js +1 -1
  162. package/es/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -1
  163. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +61 -3
  164. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -4
  165. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -2
  166. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  167. package/es/extensions/forms/Field/SelectCurrency/SelectCurrency.d.ts +51 -0
  168. package/es/extensions/forms/Field/SelectCurrency/SelectCurrency.js +263 -0
  169. package/es/extensions/forms/Field/SelectCurrency/SelectCurrency.js.map +1 -0
  170. package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.d.ts +3 -0
  171. package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +28 -0
  172. package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -0
  173. package/es/extensions/forms/Field/SelectCurrency/index.d.ts +2 -0
  174. package/es/extensions/forms/Field/SelectCurrency/index.js +3 -0
  175. package/es/extensions/forms/Field/SelectCurrency/index.js.map +1 -0
  176. package/es/extensions/forms/Field/index.d.ts +1 -0
  177. package/es/extensions/forms/Field/index.js +1 -0
  178. package/es/extensions/forms/Field/index.js.map +1 -1
  179. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -2
  180. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  181. package/es/extensions/forms/Value/Currency/Currency.d.ts +7 -1
  182. package/es/extensions/forms/Value/Currency/Currency.js.map +1 -1
  183. package/es/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +2 -1
  184. package/es/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -1
  185. package/es/extensions/forms/Value/SelectCurrency/SelectCurrency.d.ts +9 -0
  186. package/es/extensions/forms/Value/SelectCurrency/SelectCurrency.js +29 -0
  187. package/es/extensions/forms/Value/SelectCurrency/SelectCurrency.js.map +1 -0
  188. package/es/extensions/forms/Value/SelectCurrency/index.d.ts +2 -0
  189. package/es/extensions/forms/Value/SelectCurrency/index.js +3 -0
  190. package/es/extensions/forms/Value/SelectCurrency/index.js.map +1 -0
  191. package/es/extensions/forms/Value/SelectCurrency/useCurrency.d.ts +4 -0
  192. package/es/extensions/forms/Value/SelectCurrency/useCurrency.js +26 -0
  193. package/es/extensions/forms/Value/SelectCurrency/useCurrency.js.map +1 -0
  194. package/es/extensions/forms/Value/index.d.ts +1 -0
  195. package/es/extensions/forms/Value/index.js +1 -0
  196. package/es/extensions/forms/Value/index.js.map +1 -1
  197. package/es/extensions/forms/Wizard/Container/DisplaySteps.js +4 -0
  198. package/es/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
  199. package/es/extensions/forms/Wizard/Container/IterateOverSteps.js +6 -1
  200. package/es/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
  201. package/es/extensions/forms/Wizard/Container/WizardContainer.js +5 -3
  202. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  203. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
  204. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  205. package/es/extensions/forms/constants/allCurrencies.d.ts +1786 -0
  206. package/es/extensions/forms/constants/allCurrencies.js +1440 -0
  207. package/es/extensions/forms/constants/allCurrencies.js.map +1 -0
  208. package/es/extensions/forms/constants/countries.d.ts +4023 -4
  209. package/es/extensions/forms/constants/countries.js.map +1 -1
  210. package/es/extensions/forms/constants/currencies.d.ts +716 -0
  211. package/es/extensions/forms/constants/currencies.js +5 -0
  212. package/es/extensions/forms/constants/currencies.js.map +1 -0
  213. package/es/extensions/forms/constants/locales/en-GB.d.ts +5 -0
  214. package/es/extensions/forms/constants/locales/en-GB.js +5 -0
  215. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  216. package/es/extensions/forms/constants/locales/en-US.d.ts +5 -0
  217. package/es/extensions/forms/constants/locales/index.d.ts +10 -0
  218. package/es/extensions/forms/constants/locales/nb-NO.d.ts +5 -0
  219. package/es/extensions/forms/constants/locales/nb-NO.js +5 -0
  220. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  221. package/es/extensions/forms/constants/locales/sv-SE.d.ts +5 -0
  222. package/es/extensions/forms/constants/locales/sv-SE.js +5 -0
  223. package/es/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  224. package/es/extensions/forms/hooks/useFieldProps.js +18 -17
  225. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  226. package/es/extensions/forms/types.d.ts +4 -4
  227. package/es/extensions/forms/types.js.map +1 -1
  228. package/es/shared/Eufemia.d.ts +1 -1
  229. package/es/shared/Eufemia.js +2 -2
  230. package/es/shared/Eufemia.js.map +1 -1
  231. package/es/shared/Translation.js +5 -4
  232. package/es/shared/Translation.js.map +1 -1
  233. package/es/style/core/scopes.scss +1 -1
  234. package/es/style/dnb-ui-basis.css +1 -1
  235. package/es/style/dnb-ui-basis.min.css +1 -1
  236. package/es/style/dnb-ui-body.css +1 -1
  237. package/es/style/dnb-ui-body.min.css +1 -1
  238. package/es/style/dnb-ui-components.css +5 -0
  239. package/es/style/dnb-ui-components.min.css +1 -1
  240. package/es/style/dnb-ui-core.css +1 -1
  241. package/es/style/dnb-ui-core.min.css +1 -1
  242. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +5 -0
  243. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  244. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +5 -0
  245. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  246. package/es/style/themes/theme-ui/ui-theme-components.css +5 -0
  247. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  248. package/esm/dnb-ui-basis.min.mjs +1 -1
  249. package/esm/dnb-ui-components.min.mjs +1 -1
  250. package/esm/dnb-ui-elements.min.mjs +1 -1
  251. package/esm/dnb-ui-extensions.min.mjs +1 -1
  252. package/esm/dnb-ui-lib.min.mjs +1 -1
  253. package/extensions/forms/Field/Currency/Currency.d.ts +9 -1
  254. package/extensions/forms/Field/Currency/Currency.js +8 -3
  255. package/extensions/forms/Field/Currency/Currency.js.map +1 -1
  256. package/extensions/forms/Field/Currency/CurrencyDocs.js +1 -1
  257. package/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -1
  258. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +61 -3
  259. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -4
  260. package/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -2
  261. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  262. package/extensions/forms/Field/SelectCurrency/SelectCurrency.d.ts +51 -0
  263. package/extensions/forms/Field/SelectCurrency/SelectCurrency.js +275 -0
  264. package/extensions/forms/Field/SelectCurrency/SelectCurrency.js.map +1 -0
  265. package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.d.ts +3 -0
  266. package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +28 -0
  267. package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -0
  268. package/extensions/forms/Field/SelectCurrency/index.d.ts +2 -0
  269. package/extensions/forms/Field/SelectCurrency/index.js +3 -0
  270. package/extensions/forms/Field/SelectCurrency/index.js.map +1 -0
  271. package/extensions/forms/Field/index.d.ts +1 -0
  272. package/extensions/forms/Field/index.js +1 -0
  273. package/extensions/forms/Field/index.js.map +1 -1
  274. package/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -2
  275. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  276. package/extensions/forms/Value/Currency/Currency.d.ts +7 -1
  277. package/extensions/forms/Value/Currency/Currency.js.map +1 -1
  278. package/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +2 -1
  279. package/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -1
  280. package/extensions/forms/Value/SelectCurrency/SelectCurrency.d.ts +9 -0
  281. package/extensions/forms/Value/SelectCurrency/SelectCurrency.js +29 -0
  282. package/extensions/forms/Value/SelectCurrency/SelectCurrency.js.map +1 -0
  283. package/extensions/forms/Value/SelectCurrency/index.d.ts +2 -0
  284. package/extensions/forms/Value/SelectCurrency/index.js +3 -0
  285. package/extensions/forms/Value/SelectCurrency/index.js.map +1 -0
  286. package/extensions/forms/Value/SelectCurrency/useCurrency.d.ts +4 -0
  287. package/extensions/forms/Value/SelectCurrency/useCurrency.js +26 -0
  288. package/extensions/forms/Value/SelectCurrency/useCurrency.js.map +1 -0
  289. package/extensions/forms/Value/index.d.ts +1 -0
  290. package/extensions/forms/Value/index.js +1 -0
  291. package/extensions/forms/Value/index.js.map +1 -1
  292. package/extensions/forms/Wizard/Container/DisplaySteps.js +4 -0
  293. package/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
  294. package/extensions/forms/Wizard/Container/IterateOverSteps.js +6 -1
  295. package/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
  296. package/extensions/forms/Wizard/Container/WizardContainer.js +5 -3
  297. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  298. package/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
  299. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  300. package/extensions/forms/constants/allCurrencies.d.ts +1786 -0
  301. package/extensions/forms/constants/allCurrencies.js +1441 -0
  302. package/extensions/forms/constants/allCurrencies.js.map +1 -0
  303. package/extensions/forms/constants/countries.d.ts +4023 -4
  304. package/extensions/forms/constants/countries.js.map +1 -1
  305. package/extensions/forms/constants/currencies.d.ts +716 -0
  306. package/extensions/forms/constants/currencies.js +6 -0
  307. package/extensions/forms/constants/currencies.js.map +1 -0
  308. package/extensions/forms/constants/locales/en-GB.d.ts +5 -0
  309. package/extensions/forms/constants/locales/en-GB.js +5 -0
  310. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  311. package/extensions/forms/constants/locales/en-US.d.ts +5 -0
  312. package/extensions/forms/constants/locales/index.d.ts +10 -0
  313. package/extensions/forms/constants/locales/nb-NO.d.ts +5 -0
  314. package/extensions/forms/constants/locales/nb-NO.js +5 -0
  315. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  316. package/extensions/forms/constants/locales/sv-SE.d.ts +5 -0
  317. package/extensions/forms/constants/locales/sv-SE.js +5 -0
  318. package/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  319. package/extensions/forms/hooks/useFieldProps.js +18 -17
  320. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  321. package/extensions/forms/types.d.ts +4 -4
  322. package/extensions/forms/types.js.map +1 -1
  323. package/package.json +2 -2
  324. package/shared/Eufemia.d.ts +1 -1
  325. package/shared/Eufemia.js +2 -2
  326. package/shared/Eufemia.js.map +1 -1
  327. package/shared/Translation.js +5 -4
  328. package/shared/Translation.js.map +1 -1
  329. package/style/core/scopes.scss +1 -1
  330. package/style/dnb-ui-basis.css +1 -1
  331. package/style/dnb-ui-basis.min.css +1 -1
  332. package/style/dnb-ui-body.css +1 -1
  333. package/style/dnb-ui-body.min.css +1 -1
  334. package/style/dnb-ui-components.css +5 -0
  335. package/style/dnb-ui-components.min.css +1 -1
  336. package/style/dnb-ui-core.css +1 -1
  337. package/style/dnb-ui-core.min.css +1 -1
  338. package/style/themes/theme-eiendom/eiendom-theme-components.css +5 -0
  339. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  340. package/style/themes/theme-sbanken/sbanken-theme-components.css +5 -0
  341. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  342. package/style/themes/theme-ui/ui-theme-components.css +5 -0
  343. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  344. package/umd/dnb-ui-basis.min.js +1 -1
  345. package/umd/dnb-ui-components.min.js +1 -1
  346. package/umd/dnb-ui-elements.min.js +1 -1
  347. package/umd/dnb-ui-extensions.min.js +1 -1
  348. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"TableAccordionHead.js","names":["React","useEffect","Td","TableContext","TableClickableButtonTd","TableClickableHead","TableIconSrTh","isTableHead","onClickTr","TableAccordionContext","TableAccordionContentSingle","TableAccordionContentRow","TableAccordionHead","allProps","_React$useContext","children","expanded","noAnimation","onClick","onOpened","onClosed","count","props","_objectWithoutProperties","_excluded","tableContext","useContext","trIsOpen","setOpen","useState","location","id","hash","trIsHover","setHover","trHadClick","setHadClick","headerContent","Children","toArray","addContent","content","accordionChevronPlacement","push","unshift","accordionContent","filter","element","isAccordionElement","hasAccordionContent","length","every","isValidElement","_tableContext$collaps","collapseTrCallbacks","current","tableContextAllProps","createElement","ariaLabel","accordionToggleButtonSR","icon","toggleOpenTr","key","_tableContext$allProp","text","_Td","countTds","type","Provider","value","_extends","clickable","onMouseEnter","onMouseEnterHandler","onMouseLeave","onMouseLeaveHandler","onKeyDown","onKeyDownHandler","event","toggleOpenFn","allowInteractiveElement"],"sources":["../../../../../src/components/table/table-accordion/TableAccordionHead.tsx"],"sourcesContent":["import React, { useEffect } from 'react'\nimport Td from '../TableTd'\nimport { TableContext } from '../TableContext'\nimport {\n TableClickableButtonTd,\n TableClickableHead,\n TableIconSrTh,\n isTableHead,\n onClickTr,\n} from '../TableClickableHead'\nimport { TableAccordionContext } from './TableAccordionContext'\nimport {\n TableAccordionContentSingle,\n TableAccordionContentRow,\n} from './TableAccordionContent'\n\nimport type {\n TableAccordionContentSingleProps,\n TableAccordionContentRowProps,\n} from './TableAccordionContent'\nimport type { TableTrProps } from '../TableTr'\n\nexport type TableAccordionHeadProps = {\n /** The row number */\n count: number\n} & TableTrProps &\n React.TableHTMLAttributes<HTMLTableRowElement>\n\nexport function TableAccordionHead(allProps: TableAccordionHeadProps) {\n const {\n children,\n expanded,\n noAnimation,\n onClick,\n onOpened,\n onClosed,\n count,\n ...props\n } = allProps\n const tableContext = React.useContext(TableContext)\n\n const [trIsOpen, setOpen] = React.useState(() => {\n if (typeof expanded === 'boolean') {\n return expanded\n } else if (typeof location !== 'undefined') {\n const id = props?.id\n if (id && '#' + id === location.hash) {\n return true\n }\n }\n\n return false\n })\n const [trIsHover, setHover] = React.useState(false)\n const [trHadClick, setHadClick] = React.useState(false)\n\n let headerContent = React.Children.toArray(children)\n\n const addContent = (content) => {\n if (tableContext.allProps.accordionChevronPlacement === 'end') {\n headerContent.push(content)\n } else {\n headerContent.unshift(content)\n }\n }\n\n /**\n * Handle Accordion Content\n */\n const accordionContent = headerContent.filter(\n (element: React.ReactElement) => {\n return isAccordionElement(element)\n }\n ) as React.ReactElement<\n TableAccordionContentSingleProps | TableAccordionContentRowProps\n >[]\n\n const hasAccordionContent =\n accordionContent.length !== 0 &&\n accordionContent.every((element) => React.isValidElement(element))\n\n useEffect(() => {\n if (\n hasAccordionContent &&\n tableContext?.collapseTrCallbacks?.current &&\n count\n ) {\n tableContext.collapseTrCallbacks.current[count] = () => {\n setOpen(false)\n }\n }\n }, [count, tableContext?.collapseTrCallbacks, hasAccordionContent])\n\n const tableContextAllProps = React.useContext(TableContext)?.allProps\n\n if (hasAccordionContent) {\n // Remove the AccordionContent, and use it outside of the tr\n headerContent = headerContent.filter((element: React.ReactElement) => {\n return !isAccordionElement(element)\n })\n\n addContent(\n <TableClickableButtonTd\n trIsOpen={trIsOpen}\n ariaLabel={tableContextAllProps?.accordionToggleButtonSR}\n icon=\"chevron_down\"\n onClick={toggleOpenTr}\n key=\"td-icon\"\n />\n )\n } else if (isTableHead(headerContent)) {\n addContent(\n <TableIconSrTh\n key=\"th-icon\"\n text={tableContext?.allProps?.accordionToggleButtonSR}\n />\n )\n } else if (!hasAccordionContent) {\n addContent(<Td key=\"empty-td\" />)\n }\n\n const countTds = hasAccordionContent\n ? headerContent.filter((element: React.ReactElement) => {\n return (\n element.type === Td || element.type === TableClickableButtonTd\n ) // TODO: We may need to include this in future --> || component.type === Td.MainCell\n }).length\n : null\n\n return (\n <TableAccordionContext.Provider\n value={{\n toggleOpenTr,\n trIsOpen,\n noAnimation,\n countTds,\n onOpened,\n onClosed,\n }}\n >\n <TableClickableHead\n trIsOpen={trIsOpen}\n trIsHover={trIsHover}\n trHadClick={trHadClick}\n clickable={hasAccordionContent}\n noAnimation={noAnimation}\n onClick={toggleOpenTr}\n onMouseEnter={onMouseEnterHandler}\n onMouseLeave={onMouseLeaveHandler}\n onKeyDown={onKeyDownHandler}\n ariaLabel={tableContextAllProps?.accordionToggleButtonSR}\n {...props}\n >\n {headerContent}\n </TableClickableHead>\n {accordionContent}\n </TableAccordionContext.Provider>\n )\n\n function onMouseEnterHandler() {\n setHover(true)\n }\n\n function onKeyDownHandler(event: React.SyntheticEvent) {\n toggleOpenTr(event, true)\n }\n\n function onMouseLeaveHandler() {\n setHover(false)\n setHadClick(false)\n }\n\n function toggleOpenFn(event: React.SyntheticEvent) {\n setOpen(!trIsOpen)\n setHadClick(true)\n onClick?.(event)\n }\n\n function toggleOpenTr(\n event: React.SyntheticEvent,\n allowInteractiveElement?: boolean\n ) {\n onClickTr(event, allowInteractiveElement, toggleOpenFn)\n }\n}\n\nconst isAccordionElement = (element: React.ReactElement) =>\n element.type === TableAccordionContentSingle ||\n element.type === TableAccordionContentRow\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"TableAccordionHead.js","names":["React","useCallback","useEffect","Td","TableContext","TableClickableButtonTd","TableClickableHead","TableIconSrTh","isTableHead","onClickTr","TableAccordionContext","TableAccordionContentSingle","TableAccordionContentRow","TableAccordionHead","allProps","_React$useContext","children","expanded","noAnimation","onClick","onOpened","onClosed","count","props","_objectWithoutProperties","_excluded","tableContext","useContext","trIsOpen","setOpen","useState","location","id","hash","trIsHover","setHover","trHadClick","setHadClick","headerContent","Children","toArray","addContent","content","accordionChevronPlacement","push","unshift","onMouseLeaveHandler","toggleOpenFn","event","_document","document","startViewTransition","toggleOpenTr","allowInteractiveElement","onMouseEnterHandler","onKeyDownHandler","accordionContent","filter","element","isAccordionElement","hasAccordionContent","length","every","isValidElement","_tableContext$collaps","collapseTrCallbacks","current","tableContextAllProps","createElement","ariaLabel","accordionToggleButtonSR","icon","key","_tableContext$allProp","text","_Td","countTds","type","Provider","value","_extends","clickable","onMouseEnter","onMouseLeave","onKeyDown"],"sources":["../../../../../src/components/table/table-accordion/TableAccordionHead.tsx"],"sourcesContent":["import React, { useCallback, useEffect } from 'react'\nimport Td from '../TableTd'\nimport { TableContext } from '../TableContext'\nimport {\n TableClickableButtonTd,\n TableClickableHead,\n TableIconSrTh,\n isTableHead,\n onClickTr,\n} from '../TableClickableHead'\nimport { TableAccordionContext } from './TableAccordionContext'\nimport {\n TableAccordionContentSingle,\n TableAccordionContentRow,\n} from './TableAccordionContent'\n\nimport type {\n TableAccordionContentSingleProps,\n TableAccordionContentRowProps,\n} from './TableAccordionContent'\nimport type { TableTrProps } from '../TableTr'\n\nexport type TableAccordionHeadProps = {\n /** The row number */\n count: number\n} & TableTrProps &\n React.TableHTMLAttributes<HTMLTableRowElement>\n\ndeclare global {\n interface Document {\n startViewTransition?: (callback?: () => Promise<void> | void) => void\n }\n}\n\nexport function TableAccordionHead(allProps: TableAccordionHeadProps) {\n const {\n children,\n expanded,\n noAnimation,\n onClick,\n onOpened,\n onClosed,\n count,\n ...props\n } = allProps\n const tableContext = React.useContext(TableContext)\n\n const [trIsOpen, setOpen] = React.useState(() => {\n if (typeof expanded === 'boolean') {\n return expanded\n } else if (typeof location !== 'undefined') {\n const id = props?.id\n if (id && '#' + id === location.hash) {\n return true\n }\n }\n\n return false\n })\n const [trIsHover, setHover] = React.useState(false)\n const [trHadClick, setHadClick] = React.useState(false)\n\n let headerContent = React.Children.toArray(children)\n\n const addContent = useCallback(\n (content) => {\n if (tableContext.allProps.accordionChevronPlacement === 'end') {\n headerContent.push(content)\n } else {\n headerContent.unshift(content)\n }\n },\n [headerContent, tableContext.allProps.accordionChevronPlacement]\n )\n\n const onMouseLeaveHandler = useCallback(() => {\n setHover(false)\n setHadClick(false)\n }, [])\n\n const toggleOpenFn = useCallback(\n (event: React.SyntheticEvent) => {\n if (document?.startViewTransition) {\n document.startViewTransition(() => {\n setOpen(!trIsOpen)\n })\n } else {\n setOpen(!trIsOpen)\n }\n setHadClick(true)\n onClick?.(event)\n },\n [trIsOpen, onClick]\n )\n\n const toggleOpenTr = useCallback(\n (event: React.SyntheticEvent, allowInteractiveElement?: boolean) => {\n onClickTr(event, allowInteractiveElement, toggleOpenFn)\n },\n [toggleOpenFn]\n )\n\n const onMouseEnterHandler = useCallback(() => {\n setHover(true)\n }, [])\n\n const onKeyDownHandler = useCallback(\n (event: React.SyntheticEvent) => {\n toggleOpenTr(event, true)\n },\n [toggleOpenTr]\n )\n\n /**\n * Handle Accordion Content\n */\n const accordionContent = headerContent.filter(\n (element: React.ReactElement) => {\n return isAccordionElement(element)\n }\n ) as React.ReactElement<\n TableAccordionContentSingleProps | TableAccordionContentRowProps\n >[]\n\n const hasAccordionContent =\n accordionContent.length !== 0 &&\n accordionContent.every((element) => React.isValidElement(element))\n\n useEffect(() => {\n if (\n hasAccordionContent &&\n tableContext?.collapseTrCallbacks?.current &&\n count\n ) {\n tableContext.collapseTrCallbacks.current[count] = () => {\n setOpen(false)\n }\n }\n }, [count, tableContext?.collapseTrCallbacks, hasAccordionContent])\n\n const tableContextAllProps = React.useContext(TableContext)?.allProps\n\n if (hasAccordionContent) {\n // Remove the AccordionContent, and use it outside of the tr\n headerContent = headerContent.filter((element: React.ReactElement) => {\n return !isAccordionElement(element)\n })\n\n addContent(\n <TableClickableButtonTd\n trIsOpen={trIsOpen}\n ariaLabel={tableContextAllProps?.accordionToggleButtonSR}\n icon=\"chevron_down\"\n onClick={toggleOpenTr}\n key=\"td-icon\"\n />\n )\n } else if (isTableHead(headerContent)) {\n addContent(\n <TableIconSrTh\n key=\"th-icon\"\n text={tableContext?.allProps?.accordionToggleButtonSR}\n />\n )\n } else if (!hasAccordionContent) {\n addContent(<Td key=\"empty-td\" />)\n }\n\n const countTds = hasAccordionContent\n ? headerContent.filter((element: React.ReactElement) => {\n return (\n element.type === Td || element.type === TableClickableButtonTd\n ) // TODO: We may need to include this in future --> || component.type === Td.MainCell\n }).length\n : null\n\n return (\n <TableAccordionContext.Provider\n value={{\n toggleOpenTr,\n trIsOpen,\n noAnimation,\n countTds,\n onOpened,\n onClosed,\n }}\n >\n <TableClickableHead\n trIsOpen={trIsOpen}\n trIsHover={trIsHover}\n trHadClick={trHadClick}\n clickable={hasAccordionContent}\n noAnimation={noAnimation}\n onClick={toggleOpenTr}\n onMouseEnter={onMouseEnterHandler}\n onMouseLeave={onMouseLeaveHandler}\n onKeyDown={onKeyDownHandler}\n ariaLabel={tableContextAllProps?.accordionToggleButtonSR}\n {...props}\n >\n {headerContent}\n </TableClickableHead>\n {accordionContent}\n </TableAccordionContext.Provider>\n )\n}\n\nconst isAccordionElement = (element: React.ReactElement) =>\n element.type === TableAccordionContentSingle ||\n element.type === TableAccordionContentRow\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
3
  var _Td;
4
4
  const _excluded = ["children", "onClick"];
5
- import React from 'react';
5
+ import React, { useCallback } from 'react';
6
6
  import Td from '../TableTd';
7
7
  import { TableContext } from '../TableContext';
8
8
  import { TableClickableButtonTd, TableClickableHead, TableIconSrTh, isTableHead, onClickTr } from '../TableClickableHead';
@@ -17,6 +17,9 @@ export function TableNavigationHead(allProps) {
17
17
  const content = React.Children.toArray(children);
18
18
  const hasOnClick = typeof onClick === 'function';
19
19
  const tableContextAllProps = (_React$useContext = React.useContext(TableContext)) === null || _React$useContext === void 0 ? void 0 : _React$useContext.allProps;
20
+ const onClickHandler = useCallback((event, allowInteractiveElement) => {
21
+ onClickTr(event, allowInteractiveElement, onClick);
22
+ }, [onClick]);
20
23
  if (hasOnClick) {
21
24
  content.push(React.createElement(TableClickableButtonTd, {
22
25
  key: "td-icon",
@@ -41,8 +44,5 @@ export function TableNavigationHead(allProps) {
41
44
  onKeyDown: onClick,
42
45
  ariaLabel: tableContextAllProps === null || tableContextAllProps === void 0 ? void 0 : tableContextAllProps.navigationButtonSR
43
46
  }, props), content);
44
- function onClickHandler(event, allowInteractiveElement) {
45
- onClickTr(event, allowInteractiveElement, onClick);
46
- }
47
47
  }
48
48
  //# sourceMappingURL=TableNavigationHead.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableNavigationHead.js","names":["React","Td","TableContext","TableClickableButtonTd","TableClickableHead","TableIconSrTh","isTableHead","onClickTr","TableNavigationHead","allProps","_React$useContext","children","onClick","props","_objectWithoutProperties","_excluded","tableContext","useContext","content","Children","toArray","hasOnClick","tableContextAllProps","push","createElement","key","ariaLabel","navigationButtonSR","icon","onClickHandler","_tableContext$allProp","text","_Td","_extends","clickable","onKeyDown","event","allowInteractiveElement"],"sources":["../../../../../src/components/table/table-navigation/TableNavigationHead.tsx"],"sourcesContent":["import React from 'react'\nimport Td from '../TableTd'\nimport { TableContext } from '../TableContext'\nimport {\n TableClickableButtonTd,\n TableClickableHead,\n TableIconSrTh,\n isTableHead,\n onClickTr,\n} from '../TableClickableHead'\n\nimport type { TableTrProps } from '../TableTr'\n\nexport type TableNavigationHeadProps = TableTrProps &\n React.TableHTMLAttributes<HTMLTableRowElement>\n\nexport function TableNavigationHead(allProps: TableNavigationHeadProps) {\n const { children, onClick, ...props } = allProps\n const tableContext = React.useContext(TableContext)\n\n const content = React.Children.toArray(children)\n\n const hasOnClick = typeof onClick === 'function'\n\n const tableContextAllProps = React.useContext(TableContext)?.allProps\n\n if (hasOnClick) {\n content.push(\n <TableClickableButtonTd\n key=\"td-icon\"\n ariaLabel={tableContextAllProps?.navigationButtonSR}\n icon=\"chevron_right\"\n onClick={onClickHandler}\n />\n )\n } else if (isTableHead(content)) {\n content.push(\n <TableIconSrTh\n key=\"th-icon\"\n text={tableContext?.allProps?.navigationButtonSR}\n />\n )\n } else if (!hasOnClick) {\n content.push(<Td key=\"empty-td\" />)\n }\n\n return (\n <TableClickableHead\n clickable={hasOnClick}\n onClick={onClickHandler}\n onKeyDown={onClick}\n ariaLabel={tableContextAllProps?.navigationButtonSR}\n {...props}\n >\n {content}\n </TableClickableHead>\n )\n\n function onClickHandler(\n event: React.SyntheticEvent,\n allowInteractiveElement?: boolean\n ) {\n onClickTr(event, allowInteractiveElement, onClick)\n }\n}\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,EAAE,MAAM,YAAY;AAC3B,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SACEC,sBAAsB,EACtBC,kBAAkB,EAClBC,aAAa,EACbC,WAAW,EACXC,SAAS,QACJ,uBAAuB;AAO9B,OAAO,SAASC,mBAAmBA,CAACC,QAAkC,EAAE;EAAA,IAAAC,iBAAA;EACtE,MAAM;MAAEC,QAAQ;MAAEC;IAAkB,CAAC,GAAGH,QAAQ;IAAlBI,KAAK,GAAAC,wBAAA,CAAKL,QAAQ,EAAAM,SAAA;EAChD,MAAMC,YAAY,GAAGhB,KAAK,CAACiB,UAAU,CAACf,YAAY,CAAC;EAEnD,MAAMgB,OAAO,GAAGlB,KAAK,CAACmB,QAAQ,CAACC,OAAO,CAACT,QAAQ,CAAC;EAEhD,MAAMU,UAAU,GAAG,OAAOT,OAAO,KAAK,UAAU;EAEhD,MAAMU,oBAAoB,IAAAZ,iBAAA,GAAGV,KAAK,CAACiB,UAAU,CAACf,YAAY,CAAC,cAAAQ,iBAAA,uBAA9BA,iBAAA,CAAgCD,QAAQ;EAErE,IAAIY,UAAU,EAAE;IACdH,OAAO,CAACK,IAAI,CACVvB,KAAA,CAAAwB,aAAA,CAACrB,sBAAsB;MACrBsB,GAAG,EAAC,SAAS;MACbC,SAAS,EAAEJ,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEK,kBAAmB;MACpDC,IAAI,EAAC,eAAe;MACpBhB,OAAO,EAAEiB;IAAe,CACzB,CACH,CAAC;EACH,CAAC,MAAM,IAAIvB,WAAW,CAACY,OAAO,CAAC,EAAE;IAAA,IAAAY,qBAAA;IAC/BZ,OAAO,CAACK,IAAI,CACVvB,KAAA,CAAAwB,aAAA,CAACnB,aAAa;MACZoB,GAAG,EAAC,SAAS;MACbM,IAAI,EAAEf,YAAY,aAAZA,YAAY,wBAAAc,qBAAA,GAAZd,YAAY,CAAEP,QAAQ,cAAAqB,qBAAA,uBAAtBA,qBAAA,CAAwBH;IAAmB,CAClD,CACH,CAAC;EACH,CAAC,MAAM,IAAI,CAACN,UAAU,EAAE;IACtBH,OAAO,CAACK,IAAI,CAAAS,GAAA,KAAAA,GAAA,GAAChC,KAAA,CAAAwB,aAAA,CAACvB,EAAE;MAACwB,GAAG,EAAC;IAAU,CAAE,CAAC,EAAC;EACrC;EAEA,OACEzB,KAAA,CAAAwB,aAAA,CAACpB,kBAAkB,EAAA6B,QAAA;IACjBC,SAAS,EAAEb,UAAW;IACtBT,OAAO,EAAEiB,cAAe;IACxBM,SAAS,EAAEvB,OAAQ;IACnBc,SAAS,EAAEJ,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEK;EAAmB,GAChDd,KAAK,GAERK,OACiB,CAAC;EAGvB,SAASW,cAAcA,CACrBO,KAA2B,EAC3BC,uBAAiC,EACjC;IACA9B,SAAS,CAAC6B,KAAK,EAAEC,uBAAuB,EAAEzB,OAAO,CAAC;EACpD;AACF","ignoreList":[]}
1
+ {"version":3,"file":"TableNavigationHead.js","names":["React","useCallback","Td","TableContext","TableClickableButtonTd","TableClickableHead","TableIconSrTh","isTableHead","onClickTr","TableNavigationHead","allProps","_React$useContext","children","onClick","props","_objectWithoutProperties","_excluded","tableContext","useContext","content","Children","toArray","hasOnClick","tableContextAllProps","onClickHandler","event","allowInteractiveElement","push","createElement","key","ariaLabel","navigationButtonSR","icon","_tableContext$allProp","text","_Td","_extends","clickable","onKeyDown"],"sources":["../../../../../src/components/table/table-navigation/TableNavigationHead.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport Td from '../TableTd'\nimport { TableContext } from '../TableContext'\nimport {\n TableClickableButtonTd,\n TableClickableHead,\n TableIconSrTh,\n isTableHead,\n onClickTr,\n} from '../TableClickableHead'\n\nimport type { TableTrProps } from '../TableTr'\n\nexport type TableNavigationHeadProps = TableTrProps &\n React.TableHTMLAttributes<HTMLTableRowElement>\n\nexport function TableNavigationHead(allProps: TableNavigationHeadProps) {\n const { children, onClick, ...props } = allProps\n const tableContext = React.useContext(TableContext)\n\n const content = React.Children.toArray(children)\n\n const hasOnClick = typeof onClick === 'function'\n\n const tableContextAllProps = React.useContext(TableContext)?.allProps\n\n const onClickHandler = useCallback(\n (event: React.SyntheticEvent, allowInteractiveElement?: boolean) => {\n onClickTr(event, allowInteractiveElement, onClick)\n },\n [onClick]\n )\n\n if (hasOnClick) {\n content.push(\n <TableClickableButtonTd\n key=\"td-icon\"\n ariaLabel={tableContextAllProps?.navigationButtonSR}\n icon=\"chevron_right\"\n onClick={onClickHandler}\n />\n )\n } else if (isTableHead(content)) {\n content.push(\n <TableIconSrTh\n key=\"th-icon\"\n text={tableContext?.allProps?.navigationButtonSR}\n />\n )\n } else if (!hasOnClick) {\n content.push(<Td key=\"empty-td\" />)\n }\n\n return (\n <TableClickableHead\n clickable={hasOnClick}\n onClick={onClickHandler}\n onKeyDown={onClick}\n ariaLabel={tableContextAllProps?.navigationButtonSR}\n {...props}\n >\n {content}\n </TableClickableHead>\n )\n}\n"],"mappings":";;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,OAAOC,EAAE,MAAM,YAAY;AAC3B,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SACEC,sBAAsB,EACtBC,kBAAkB,EAClBC,aAAa,EACbC,WAAW,EACXC,SAAS,QACJ,uBAAuB;AAO9B,OAAO,SAASC,mBAAmBA,CAACC,QAAkC,EAAE;EAAA,IAAAC,iBAAA;EACtE,MAAM;MAAEC,QAAQ;MAAEC;IAAkB,CAAC,GAAGH,QAAQ;IAAlBI,KAAK,GAAAC,wBAAA,CAAKL,QAAQ,EAAAM,SAAA;EAChD,MAAMC,YAAY,GAAGjB,KAAK,CAACkB,UAAU,CAACf,YAAY,CAAC;EAEnD,MAAMgB,OAAO,GAAGnB,KAAK,CAACoB,QAAQ,CAACC,OAAO,CAACT,QAAQ,CAAC;EAEhD,MAAMU,UAAU,GAAG,OAAOT,OAAO,KAAK,UAAU;EAEhD,MAAMU,oBAAoB,IAAAZ,iBAAA,GAAGX,KAAK,CAACkB,UAAU,CAACf,YAAY,CAAC,cAAAQ,iBAAA,uBAA9BA,iBAAA,CAAgCD,QAAQ;EAErE,MAAMc,cAAc,GAAGvB,WAAW,CAChC,CAACwB,KAA2B,EAAEC,uBAAiC,KAAK;IAClElB,SAAS,CAACiB,KAAK,EAAEC,uBAAuB,EAAEb,OAAO,CAAC;EACpD,CAAC,EACD,CAACA,OAAO,CACV,CAAC;EAED,IAAIS,UAAU,EAAE;IACdH,OAAO,CAACQ,IAAI,CACV3B,KAAA,CAAA4B,aAAA,CAACxB,sBAAsB;MACrByB,GAAG,EAAC,SAAS;MACbC,SAAS,EAAEP,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEQ,kBAAmB;MACpDC,IAAI,EAAC,eAAe;MACpBnB,OAAO,EAAEW;IAAe,CACzB,CACH,CAAC;EACH,CAAC,MAAM,IAAIjB,WAAW,CAACY,OAAO,CAAC,EAAE;IAAA,IAAAc,qBAAA;IAC/Bd,OAAO,CAACQ,IAAI,CACV3B,KAAA,CAAA4B,aAAA,CAACtB,aAAa;MACZuB,GAAG,EAAC,SAAS;MACbK,IAAI,EAAEjB,YAAY,aAAZA,YAAY,wBAAAgB,qBAAA,GAAZhB,YAAY,CAAEP,QAAQ,cAAAuB,qBAAA,uBAAtBA,qBAAA,CAAwBF;IAAmB,CAClD,CACH,CAAC;EACH,CAAC,MAAM,IAAI,CAACT,UAAU,EAAE;IACtBH,OAAO,CAACQ,IAAI,CAAAQ,GAAA,KAAAA,GAAA,GAACnC,KAAA,CAAA4B,aAAA,CAAC1B,EAAE;MAAC2B,GAAG,EAAC;IAAU,CAAE,CAAC,EAAC;EACrC;EAEA,OACE7B,KAAA,CAAA4B,aAAA,CAACvB,kBAAkB,EAAA+B,QAAA;IACjBC,SAAS,EAAEf,UAAW;IACtBT,OAAO,EAAEW,cAAe;IACxBc,SAAS,EAAEzB,OAAQ;IACnBiB,SAAS,EAAEP,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEQ;EAAmB,GAChDjB,KAAK,GAERK,OACiB,CAAC;AAEzB","ignoreList":[]}
@@ -1,5 +1,13 @@
1
+ import { CurrencyISO } from '../../constants/currencies';
1
2
  import { Props as NumberFieldProps } from '../Number';
2
- export type Props = NumberFieldProps;
3
+ import { PathStrict } from '../../types';
4
+ export type Props = NumberFieldProps & {
5
+ /**
6
+ * Will change the currency.
7
+ * You can also set a path as the value, e.g. `/myCurrencyPath`.
8
+ */
9
+ currency?: PathStrict | CurrencyISO;
10
+ };
3
11
  declare function Currency(props: Props): import("react/jsx-runtime").JSX.Element;
4
12
  declare namespace Currency {
5
13
  var _supportsSpacingProps: boolean;
@@ -9,13 +9,18 @@ import classnames from 'classnames';
9
9
  import SharedContext from '../../../../shared/Context';
10
10
  import { getCurrencySymbol } from '../../../../components/number-format/NumberUtils';
11
11
  import { CURRENCY } from '../../../../shared/defaults';
12
+ import useDataValue from '../../hooks/useDataValue';
12
13
  import NumberField from '../Number';
13
14
  function Currency(props) {
14
- var _props$currency, _props$placeholder;
15
+ var _props$placeholder;
15
16
  const sharedContext = useContext(SharedContext);
17
+ const {
18
+ getSourceValue
19
+ } = useDataValue();
20
+ const currencyValue = getSourceValue(props.currency);
16
21
  const preparedProps = _objectSpread(_objectSpread({}, props), {}, {
17
- currency: (_props$currency = props.currency) !== null && _props$currency !== void 0 ? _props$currency : CURRENCY,
18
- placeholder: (_props$placeholder = props.placeholder) !== null && _props$placeholder !== void 0 ? _props$placeholder : getCurrencySymbol(sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.locale, props.currency, props.currencyDisplay)
22
+ currency: currencyValue !== null && currencyValue !== void 0 ? currencyValue : CURRENCY,
23
+ placeholder: (_props$placeholder = props.placeholder) !== null && _props$placeholder !== void 0 ? _props$placeholder : getCurrencySymbol(sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.locale, currencyValue, props.currencyDisplay)
19
24
  });
20
25
  return React.createElement(NumberField, _extends({}, preparedProps, {
21
26
  className: classnames('dnb-forms-field-currency', props.className)
@@ -1 +1 @@
1
- {"version":3,"file":"Currency.js","names":["React","useContext","classnames","SharedContext","getCurrencySymbol","CURRENCY","NumberField","Currency","props","_props$currency","_props$placeholder","sharedContext","preparedProps","_objectSpread","currency","placeholder","locale","currencyDisplay","createElement","_extends","className","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Currency/Currency.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../../shared/Context'\nimport { getCurrencySymbol } from '../../../../components/number-format/NumberUtils'\nimport { CURRENCY } from '../../../../shared/defaults'\nimport NumberField, { Props as NumberFieldProps } from '../Number'\n\nexport type Props = NumberFieldProps\n\nfunction Currency(props: Props) {\n const sharedContext = useContext(SharedContext)\n\n const preparedProps = {\n ...props,\n currency: props.currency ?? CURRENCY,\n placeholder:\n props.placeholder ??\n getCurrencySymbol(\n sharedContext?.locale,\n props.currency,\n props.currencyDisplay\n ),\n }\n\n return (\n <NumberField\n {...preparedProps}\n className={classnames('dnb-forms-field-currency', props.className)}\n />\n )\n}\n\nCurrency._supportsSpacingProps = true\nexport default Currency\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,aAAa,MAAM,4BAA4B;AACtD,SAASC,iBAAiB,QAAQ,kDAAkD;AACpF,SAASC,QAAQ,QAAQ,6BAA6B;AACtD,OAAOC,WAAW,MAAqC,WAAW;AAIlE,SAASC,QAAQA,CAACC,KAAY,EAAE;EAAA,IAAAC,eAAA,EAAAC,kBAAA;EAC9B,MAAMC,aAAa,GAAGV,UAAU,CAACE,aAAa,CAAC;EAE/C,MAAMS,aAAa,GAAAC,aAAA,CAAAA,aAAA,KACdL,KAAK;IACRM,QAAQ,GAAAL,eAAA,GAAED,KAAK,CAACM,QAAQ,cAAAL,eAAA,cAAAA,eAAA,GAAIJ,QAAQ;IACpCU,WAAW,GAAAL,kBAAA,GACTF,KAAK,CAACO,WAAW,cAAAL,kBAAA,cAAAA,kBAAA,GACjBN,iBAAiB,CACfO,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEK,MAAM,EACrBR,KAAK,CAACM,QAAQ,EACdN,KAAK,CAACS,eACR;EAAC,EACJ;EAED,OACEjB,KAAA,CAAAkB,aAAA,CAACZ,WAAW,EAAAa,QAAA,KACNP,aAAa;IACjBQ,SAAS,EAAElB,UAAU,CAAC,0BAA0B,EAAEM,KAAK,CAACY,SAAS;EAAE,EACpE,CAAC;AAEN;AAEAb,QAAQ,CAACc,qBAAqB,GAAG,IAAI;AACrC,eAAed,QAAQ","ignoreList":[]}
1
+ {"version":3,"file":"Currency.js","names":["React","useContext","classnames","SharedContext","getCurrencySymbol","CURRENCY","useDataValue","NumberField","Currency","props","_props$placeholder","sharedContext","getSourceValue","currencyValue","currency","preparedProps","_objectSpread","placeholder","locale","currencyDisplay","createElement","_extends","className","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Currency/Currency.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../../shared/Context'\nimport { getCurrencySymbol } from '../../../../components/number-format/NumberUtils'\nimport { CURRENCY } from '../../../../shared/defaults'\nimport { CurrencyISO } from '../../constants/currencies'\nimport useDataValue from '../../hooks/useDataValue'\nimport NumberField, { Props as NumberFieldProps } from '../Number'\nimport { PathStrict } from '../../types'\n\nexport type Props = NumberFieldProps & {\n /**\n * Will change the currency.\n * You can also set a path as the value, e.g. `/myCurrencyPath`.\n */\n currency?: PathStrict | CurrencyISO\n}\n\nfunction Currency(props: Props) {\n const sharedContext = useContext(SharedContext)\n const { getSourceValue } = useDataValue()\n\n const currencyValue = getSourceValue(props.currency)\n\n const preparedProps = {\n ...props,\n currency: currencyValue ?? CURRENCY,\n placeholder:\n props.placeholder ??\n getCurrencySymbol(\n sharedContext?.locale,\n currencyValue,\n props.currencyDisplay\n ),\n }\n\n return (\n <NumberField\n {...preparedProps}\n className={classnames('dnb-forms-field-currency', props.className)}\n />\n )\n}\n\nCurrency._supportsSpacingProps = true\nexport default Currency\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,aAAa,MAAM,4BAA4B;AACtD,SAASC,iBAAiB,QAAQ,kDAAkD;AACpF,SAASC,QAAQ,QAAQ,6BAA6B;AAEtD,OAAOC,YAAY,MAAM,0BAA0B;AACnD,OAAOC,WAAW,MAAqC,WAAW;AAWlE,SAASC,QAAQA,CAACC,KAAY,EAAE;EAAA,IAAAC,kBAAA;EAC9B,MAAMC,aAAa,GAAGV,UAAU,CAACE,aAAa,CAAC;EAC/C,MAAM;IAAES;EAAe,CAAC,GAAGN,YAAY,CAAC,CAAC;EAEzC,MAAMO,aAAa,GAAGD,cAAc,CAACH,KAAK,CAACK,QAAQ,CAAC;EAEpD,MAAMC,aAAa,GAAAC,aAAA,CAAAA,aAAA,KACdP,KAAK;IACRK,QAAQ,EAAED,aAAa,aAAbA,aAAa,cAAbA,aAAa,GAAIR,QAAQ;IACnCY,WAAW,GAAAP,kBAAA,GACTD,KAAK,CAACQ,WAAW,cAAAP,kBAAA,cAAAA,kBAAA,GACjBN,iBAAiB,CACfO,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEO,MAAM,EACrBL,aAAa,EACbJ,KAAK,CAACU,eACR;EAAC,EACJ;EAED,OACEnB,KAAA,CAAAoB,aAAA,CAACb,WAAW,EAAAc,QAAA,KACNN,aAAa;IACjBO,SAAS,EAAEpB,UAAU,CAAC,0BAA0B,EAAEO,KAAK,CAACa,SAAS;EAAE,EACpE,CAAC;AAEN;AAEAd,QAAQ,CAACe,qBAAqB,GAAG,IAAI;AACrC,eAAef,QAAQ","ignoreList":[]}
@@ -4,7 +4,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
4
4
  import { numberProperties } from '../Number/NumberDocs';
5
5
  export const currencyProperties = _objectSpread({
6
6
  currency: {
7
- doc: 'Defines what format to show the currency value in I.e `NOK` or `USD`.',
7
+ doc: 'Defines what format to show the currency value in I.e `NOK` or `USD`. You can also set a path as the value, e.g. `/myCurrencyPath`.',
8
8
  type: 'string',
9
9
  status: 'optional'
10
10
  },
@@ -1 +1 @@
1
- {"version":3,"file":"CurrencyDocs.js","names":["numberProperties","currencyProperties","_objectSpread","currency","doc","type","status","currencyDisplay"],"sources":["../../../../../../src/extensions/forms/Field/Currency/CurrencyDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { numberProperties } from '../Number/NumberDocs'\n\nexport const currencyProperties: PropertiesTableProps = {\n currency: {\n doc: 'Defines what format to show the currency value in I.e `NOK` or `USD`.',\n type: 'string',\n status: 'optional',\n },\n currencyDisplay: {\n doc: 'Defined the currency display style. Defaults to `code`.',\n type: ['code', 'symbol', 'narrowSymbol', 'name'],\n status: 'optional',\n },\n ...numberProperties,\n}\n"],"mappings":";;;AACA,SAASA,gBAAgB,QAAQ,sBAAsB;AAEvD,OAAO,MAAMC,kBAAwC,GAAAC,aAAA;EACnDC,QAAQ,EAAE;IACRC,GAAG,EAAE,uEAAuE;IAC5EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,eAAe,EAAE;IACfH,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC;IAChDC,MAAM,EAAE;EACV;AAAC,GACEN,gBAAgB,CACpB","ignoreList":[]}
1
+ {"version":3,"file":"CurrencyDocs.js","names":["numberProperties","currencyProperties","_objectSpread","currency","doc","type","status","currencyDisplay"],"sources":["../../../../../../src/extensions/forms/Field/Currency/CurrencyDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { numberProperties } from '../Number/NumberDocs'\n\nexport const currencyProperties: PropertiesTableProps = {\n currency: {\n doc: 'Defines what format to show the currency value in I.e `NOK` or `USD`. You can also set a path as the value, e.g. `/myCurrencyPath`.',\n type: 'string',\n status: 'optional',\n },\n currencyDisplay: {\n doc: 'Defined the currency display style. Defaults to `code`.',\n type: ['code', 'symbol', 'narrowSymbol', 'name'],\n status: 'optional',\n },\n ...numberProperties,\n}\n"],"mappings":";;;AACA,SAASA,gBAAgB,QAAQ,sBAAsB;AAEvD,OAAO,MAAMC,kBAAwC,GAAAC,aAAA;EACnDC,QAAQ,EAAE;IACRC,GAAG,EAAE,qIAAqI;IAC1IC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,eAAe,EAAE;IACfH,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC;IAChDC,MAAM,EAAE;EACV;AAAC,GACEN,gBAAgB,CACpB","ignoreList":[]}
@@ -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" | "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" | "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" | "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;
@@ -62,6 +62,8 @@ function SelectCountry(props) {
62
62
  size,
63
63
  value,
64
64
  width,
65
+ noAnimation,
66
+ autoComplete,
65
67
  htmlAttributes,
66
68
  handleFocus,
67
69
  handleBlur,
@@ -168,8 +170,8 @@ function SelectCountry(props) {
168
170
  status: hasError ? 'error' : undefined,
169
171
  show_submit_button: true,
170
172
  keep_selection: true,
171
- autoComplete: "country-name",
172
- no_animation: props.noAnimation
173
+ autoComplete: autoComplete !== null && autoComplete !== void 0 ? autoComplete : 'country-name',
174
+ no_animation: noAnimation
173
175
  }, htmlAttributes)));
174
176
  }
175
177
  export function getCountryData({
@@ -1 +1 @@
1
- {"version":3,"file":"SelectCountry.js","names":["React","useCallback","useContext","useMemo","useRef","classnames","SharedContext","FieldBlockContext","LOCALE","Autocomplete","pickSpacingProps","countries","prioritizedCountries","useFieldProps","FieldBlock","useTranslation","SelectCountry","props","_props$width","sharedContext","fieldBlockContext","label","defaultLabel","placeholder","defaultPlaceholder","errorRequired","lang","locale","split","getCountryObjectByIso","value","country","find","iso","i18n","provideAdditionalArgs","errorMessages","required","preparedProps","_objectSpread","width","composition","id","path","itemPath","className","ccFilter","hasError","disabled","size","htmlAttributes","handleFocus","handleBlur","handleChange","updateValue","setDisplayValue","forceUpdate","filterCountries","dataRef","langRef","wasFilled","filter","countryFilter","isLangChange","current","getCountryData","sort","window","requestAnimationFrame","handleCountryChange","data","newValue","selectedKey","fillData","onFocusHandler","updateData","onTypeHandler","currentValue","setHidden","event","_event$nativeEvent","nativeEvent","search","toLowerCase","Object","values","some","s","includes","_getCountryObjectByIs","_getCountryObjectByIs2","fieldBlockProps","forId","undefined","contentWidth","createElement","_extends","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","a","b","_String","_String$localeCompare","indexA","indexOf","indexB","priorityA","priorityB","String","localeCompare","call","map","length","result","_country$regions","regions","continent","makeCountryFilterSet","_country$regions2","_supportsSpacingProps"],"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","useCallback","useContext","useMemo","useRef","classnames","SharedContext","FieldBlockContext","LOCALE","Autocomplete","pickSpacingProps","countries","prioritizedCountries","useFieldProps","FieldBlock","useTranslation","SelectCountry","props","_props$width","sharedContext","fieldBlockContext","label","defaultLabel","placeholder","defaultPlaceholder","errorRequired","lang","locale","split","getCountryObjectByIso","value","country","find","iso","i18n","provideAdditionalArgs","errorMessages","required","preparedProps","_objectSpread","width","composition","id","path","itemPath","className","ccFilter","hasError","disabled","size","noAnimation","autoComplete","htmlAttributes","handleFocus","handleBlur","handleChange","updateValue","setDisplayValue","forceUpdate","filterCountries","dataRef","langRef","wasFilled","filter","countryFilter","isLangChange","current","getCountryData","sort","window","requestAnimationFrame","handleCountryChange","data","newValue","selectedKey","fillData","onFocusHandler","updateData","onTypeHandler","currentValue","setHidden","event","_event$nativeEvent","nativeEvent","search","toLowerCase","Object","values","some","s","includes","_getCountryObjectByIs","_getCountryObjectByIs2","fieldBlockProps","forId","undefined","contentWidth","createElement","_extends","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","a","b","_String","_String$localeCompare","indexA","indexOf","indexB","priorityA","priorityB","String","localeCompare","call","map","length","result","_country$regions","regions","continent","makeCountryFilterSet","_country$regions2","_supportsSpacingProps"],"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;