@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
@@ -0,0 +1,263 @@
1
+ "use client";
2
+
3
+ import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
+ 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; }
6
+ 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; }
7
+ import React, { useCallback, useContext, useMemo, useRef } from 'react';
8
+ import classnames from 'classnames';
9
+ import SharedContext from '../../../../shared/Context';
10
+ import FieldBlockContext from '../../FieldBlock/FieldBlockContext';
11
+ import { LOCALE } from '../../../../shared/defaults';
12
+ import { Autocomplete } from '../../../../components';
13
+ import { pickSpacingProps } from '../../../../components/flex/utils';
14
+ import currencies, { prioritizedCurrencies } from '../../constants/currencies';
15
+ import { useFieldProps } from '../../hooks';
16
+ import FieldBlock from '../../FieldBlock';
17
+ import useTranslation from '../../hooks/useTranslation';
18
+ function SelectCurrency(props) {
19
+ var _props$width;
20
+ const sharedContext = useContext(SharedContext);
21
+ const fieldBlockContext = useContext(FieldBlockContext);
22
+ const {
23
+ label: defaultLabel,
24
+ placeholder: defaultPlaceholder,
25
+ errorRequired
26
+ } = useTranslation().SelectCurrency;
27
+ const lang = (sharedContext.locale || LOCALE).split('-')[0];
28
+ const getCurrencyObjectByIso = useCallback(value => {
29
+ const currency = currencies.find(({
30
+ iso
31
+ }) => value === iso);
32
+ if (currency !== null && currency !== void 0 && currency.i18n) {
33
+ currency['name'] = currency.i18n[lang];
34
+ }
35
+ return currency;
36
+ }, [lang]);
37
+ const provideAdditionalArgs = useCallback(value => {
38
+ const currency = getCurrencyObjectByIso(value);
39
+ if (currency !== null && currency !== void 0 && currency.iso) {
40
+ return currency;
41
+ }
42
+ }, [getCurrencyObjectByIso]);
43
+ const errorMessages = useMemo(() => ({
44
+ required: errorRequired
45
+ }), [errorRequired]);
46
+ const preparedProps = _objectSpread(_objectSpread({
47
+ errorMessages
48
+ }, props), {}, {
49
+ width: (_props$width = props.width) !== null && _props$width !== void 0 ? _props$width : fieldBlockContext !== null && fieldBlockContext !== void 0 && fieldBlockContext.composition ? 'stretch' : 'large',
50
+ provideAdditionalArgs
51
+ });
52
+ const {
53
+ id,
54
+ path,
55
+ itemPath,
56
+ className,
57
+ placeholder = defaultPlaceholder,
58
+ label = defaultLabel,
59
+ currencies: ccFilter = 'Prioritized',
60
+ hasError,
61
+ disabled,
62
+ size,
63
+ value,
64
+ width,
65
+ noAnimation,
66
+ autoComplete,
67
+ htmlAttributes,
68
+ handleFocus,
69
+ handleBlur,
70
+ handleChange,
71
+ updateValue,
72
+ setDisplayValue,
73
+ forceUpdate,
74
+ filterCurrencies
75
+ } = useFieldProps(preparedProps);
76
+ const dataRef = useRef(null);
77
+ const langRef = useRef(lang);
78
+ const wasFilled = useRef(false);
79
+ const filter = useCallback(currency => {
80
+ return currencyFilter(currency, filterCurrencies, ccFilter);
81
+ }, [ccFilter, filterCurrencies]);
82
+ useMemo(() => {
83
+ const isLangChange = lang !== langRef.current;
84
+ if (isLangChange || !wasFilled.current) {
85
+ langRef.current = lang;
86
+ dataRef.current = getCurrencyData({
87
+ lang,
88
+ filter: !wasFilled.current ? currency => currency.iso === value : filter,
89
+ sort: ccFilter
90
+ });
91
+ if (isLangChange && value && typeof window !== 'undefined') {
92
+ updateValue(null);
93
+ window.requestAnimationFrame(() => {
94
+ updateValue(value);
95
+ });
96
+ }
97
+ }
98
+ }, [lang, filter, ccFilter, updateValue, value]);
99
+ const handleCurrencyChange = useCallback(({
100
+ data
101
+ }) => {
102
+ const newValue = data === null || data === void 0 ? void 0 : data.selectedKey;
103
+ const currency = getCurrencyObjectByIso(newValue);
104
+ if (currency !== null && currency !== void 0 && currency.iso) {
105
+ handleChange(currency.iso, currency);
106
+ }
107
+ }, [getCurrencyObjectByIso, handleChange]);
108
+ const fillData = useCallback(() => {
109
+ if (!wasFilled.current) {
110
+ wasFilled.current = true;
111
+ dataRef.current = getCurrencyData({
112
+ lang: langRef.current,
113
+ filter,
114
+ sort: ccFilter
115
+ });
116
+ forceUpdate();
117
+ }
118
+ }, [ccFilter, filter, forceUpdate]);
119
+ const onFocusHandler = useCallback(({
120
+ updateData
121
+ }) => {
122
+ fillData();
123
+ updateData(dataRef.current);
124
+ handleFocus();
125
+ }, [fillData, handleFocus]);
126
+ const onTypeHandler = useCallback(({
127
+ value: currentValue,
128
+ setHidden,
129
+ event
130
+ }) => {
131
+ var _event$nativeEvent;
132
+ if (typeof (event === null || event === void 0 ? void 0 : (_event$nativeEvent = event.nativeEvent) === null || _event$nativeEvent === void 0 ? void 0 : _event$nativeEvent.data) === 'undefined') {
133
+ const search = currentValue.toLowerCase();
134
+ const currency = currencies.find(({
135
+ i18n
136
+ }) => Object.values(i18n).some(s => s.toLowerCase().includes(search)));
137
+ if (currency !== null && currency !== void 0 && currency.iso) {
138
+ setHidden();
139
+ handleChange(currency.iso);
140
+ }
141
+ }
142
+ }, [handleChange]);
143
+ useMemo(() => {
144
+ if (path || itemPath) {
145
+ var _getCurrencyObjectByI, _getCurrencyObjectByI2;
146
+ setDisplayValue((_getCurrencyObjectByI = getCurrencyObjectByIso(value)) === null || _getCurrencyObjectByI === void 0 ? void 0 : (_getCurrencyObjectByI2 = _getCurrencyObjectByI.i18n) === null || _getCurrencyObjectByI2 === void 0 ? void 0 : _getCurrencyObjectByI2[langRef.current]);
147
+ }
148
+ }, [getCurrencyObjectByIso, itemPath, path, setDisplayValue, value]);
149
+ const fieldBlockProps = _objectSpread({
150
+ forId: id,
151
+ className: classnames('dnb-forms-field-select-currency', className),
152
+ label,
153
+ width: width === 'stretch' || fieldBlockContext !== null && fieldBlockContext !== void 0 && fieldBlockContext.composition ? width : undefined,
154
+ contentWidth: width !== false ? width : undefined
155
+ }, pickSpacingProps(props));
156
+ return React.createElement(FieldBlock, fieldBlockProps, React.createElement(Autocomplete, _extends({
157
+ id: id,
158
+ placeholder: placeholder,
159
+ input_icon: false,
160
+ data: dataRef.current,
161
+ value: typeof value === 'string' ? value : null,
162
+ disabled: disabled,
163
+ size: size,
164
+ on_show: fillData,
165
+ on_focus: onFocusHandler,
166
+ on_blur: handleBlur,
167
+ on_change: handleCurrencyChange,
168
+ on_type: onTypeHandler,
169
+ stretch: true,
170
+ status: hasError ? 'error' : undefined,
171
+ show_submit_button: true,
172
+ keep_selection: true,
173
+ autoComplete: autoComplete,
174
+ no_animation: noAnimation
175
+ }, htmlAttributes)));
176
+ }
177
+ export function getCurrencyData({
178
+ lang = 'nb',
179
+ filter = null,
180
+ sort = null,
181
+ makeObject = (currency, lang) => {
182
+ var _currency$i18n$lang;
183
+ const translation = (_currency$i18n$lang = currency.i18n[lang]) !== null && _currency$i18n$lang !== void 0 ? _currency$i18n$lang : currency.i18n.en;
184
+ const content = [translation, currency.iso];
185
+ return {
186
+ selectedKey: currency.iso,
187
+ selected_value: `${translation} (${currency.iso})`,
188
+ content
189
+ };
190
+ }
191
+ } = {}) {
192
+ const sortedCurrencies = currencies.filter(currency => {
193
+ if (typeof filter === 'function') {
194
+ return filter(currency);
195
+ }
196
+ return !filter;
197
+ }).sort(({
198
+ i18n: a,
199
+ iso: a1
200
+ }, {
201
+ i18n: b,
202
+ iso: b1
203
+ }) => {
204
+ var _String, _String$localeCompare;
205
+ if (sort === 'Prioritized') {
206
+ const indexA = prioritizedCurrencies.indexOf(a1);
207
+ const indexB = prioritizedCurrencies.indexOf(b1);
208
+ const priorityA = indexA !== -1;
209
+ const priorityB = indexB !== -1;
210
+ if (priorityA && priorityB) {
211
+ return indexA - indexB;
212
+ } else if (priorityA) {
213
+ return -1;
214
+ } else if (priorityB) {
215
+ return 1;
216
+ }
217
+ }
218
+ 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');
219
+ }).map(currency => makeObject(currency, lang));
220
+ if (sortedCurrencies.length === 0) {
221
+ return undefined;
222
+ }
223
+ return sortedCurrencies;
224
+ }
225
+ export function currencyFilter(currency, filterCurrencies, ccFilter) {
226
+ let result = true;
227
+ if (ccFilter !== 'Prioritized') {
228
+ switch (ccFilter) {
229
+ case 'Scandinavia':
230
+ case 'Nordic':
231
+ {
232
+ var _currency$regions;
233
+ result = (_currency$regions = currency.regions) === null || _currency$regions === void 0 ? void 0 : _currency$regions.includes(ccFilter);
234
+ break;
235
+ }
236
+ case 'Europe':
237
+ {
238
+ result = currency.continent.includes(ccFilter);
239
+ break;
240
+ }
241
+ }
242
+ }
243
+ if (result && filterCurrencies) {
244
+ result = filterCurrencies(currency);
245
+ }
246
+ return result;
247
+ }
248
+ export function makeCurrencyFilterSet(ccFilter) {
249
+ return currency => {
250
+ var _currency$regions2;
251
+ switch (ccFilter) {
252
+ case 'Scandinavia':
253
+ case 'Nordic':
254
+ return (_currency$regions2 = currency.regions) === null || _currency$regions2 === void 0 ? void 0 : _currency$regions2.includes(ccFilter);
255
+ case 'Europe':
256
+ return currency.continent.includes(ccFilter);
257
+ }
258
+ return true;
259
+ };
260
+ }
261
+ SelectCurrency._supportsSpacingProps = true;
262
+ export default SelectCurrency;
263
+ //# sourceMappingURL=SelectCurrency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectCurrency.js","names":["React","useCallback","useContext","useMemo","useRef","classnames","SharedContext","FieldBlockContext","LOCALE","Autocomplete","pickSpacingProps","currencies","prioritizedCurrencies","useFieldProps","FieldBlock","useTranslation","SelectCurrency","props","_props$width","sharedContext","fieldBlockContext","label","defaultLabel","placeholder","defaultPlaceholder","errorRequired","lang","locale","split","getCurrencyObjectByIso","value","currency","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","filterCurrencies","dataRef","langRef","wasFilled","filter","currencyFilter","isLangChange","current","getCurrencyData","sort","window","requestAnimationFrame","handleCurrencyChange","data","newValue","selectedKey","fillData","onFocusHandler","updateData","onTypeHandler","currentValue","setHidden","event","_event$nativeEvent","nativeEvent","search","toLowerCase","Object","values","some","s","includes","_getCurrencyObjectByI","_getCurrencyObjectByI2","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","_currency$i18n$lang","translation","en","content","selected_value","sortedCurrencies","a","a1","b","b1","_String","_String$localeCompare","indexA","indexOf","indexB","priorityA","priorityB","String","localeCompare","call","map","length","result","_currency$regions","regions","continent","makeCurrencyFilterSet","_currency$regions2","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/SelectCurrency/SelectCurrency.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 currencies, {\n prioritizedCurrencies,\n type CurrencyType,\n type CurrencyLang,\n type CurrencyISO,\n} from '../../constants/currencies'\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 CurrencyFilterSet =\n | 'Scandinavia'\n | 'Nordic'\n | 'Europe'\n | 'Prioritized'\nexport type { CurrencyType }\n\nexport type Props = FieldPropsWithExtraValue<\n CurrencyISO,\n CurrencyType,\n undefined | string\n> & {\n /**\n * Lists only the currencies you want to show. Can be `Scandinavia`, `Nordic`, `Europe` or `Prioritized`.\n * Defaults to `Prioritized`.\n */\n currencies?: CurrencyFilterSet\n\n /**\n * 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.\n */\n filterCurrencies?: (currency: CurrencyType) => 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 SelectCurrency(props: Props) {\n const sharedContext = useContext(SharedContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const {\n label: defaultLabel,\n placeholder: defaultPlaceholder,\n errorRequired,\n } = useTranslation().SelectCurrency\n const lang = (sharedContext.locale || LOCALE).split(\n '-'\n )[0] as CurrencyLang\n\n const getCurrencyObjectByIso = useCallback(\n (value: CurrencyType['iso']) => {\n const currency = currencies.find(({ iso }) => value === iso)\n if (currency?.i18n) {\n currency['name'] = currency.i18n[lang]\n }\n return currency\n },\n [lang]\n )\n\n const provideAdditionalArgs = useCallback(\n (value: CurrencyType['iso']) => {\n const currency = getCurrencyObjectByIso(value)\n\n if (currency?.iso) {\n return currency\n }\n },\n [getCurrencyObjectByIso]\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 currencies: 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 filterCurrencies,\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 (currency: CurrencyType) => {\n return currencyFilter(currency, filterCurrencies, ccFilter)\n },\n [ccFilter, filterCurrencies]\n )\n\n /**\n * We do not process the whole currency 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 currency code 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 = getCurrencyData({\n lang,\n filter: !wasFilled.current\n ? (currency) => currency.iso === value\n : filter,\n sort: ccFilter as Extract<CurrencyFilterSet, '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 handleCurrencyChange = useCallback(\n ({ data }: { data: { selectedKey: string } }) => {\n const newValue = data?.selectedKey\n const currency = getCurrencyObjectByIso(newValue)\n if (currency?.iso) {\n handleChange(currency.iso, currency)\n }\n },\n [getCurrencyObjectByIso, handleChange]\n )\n\n const fillData = useCallback(() => {\n if (!wasFilled.current) {\n wasFilled.current = true\n dataRef.current = getCurrencyData({\n lang: langRef.current,\n filter,\n sort: ccFilter as Extract<CurrencyFilterSet, '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 currency = currencies.find(({ i18n }) =>\n Object.values(i18n).some((s) => s.toLowerCase().includes(search))\n )\n if (currency?.iso) {\n setHidden()\n handleChange(currency.iso)\n }\n }\n },\n [handleChange]\n )\n\n useMemo(() => {\n if (path || itemPath) {\n setDisplayValue(\n getCurrencyObjectByIso(value)?.i18n?.[langRef.current]\n )\n }\n }, [getCurrencyObjectByIso, itemPath, path, setDisplayValue, value])\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: classnames('dnb-forms-field-select-currency', 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={handleCurrencyChange}\n on_type={onTypeHandler}\n stretch\n status={hasError ? 'error' : undefined}\n show_submit_button\n keep_selection\n autoComplete={autoComplete}\n no_animation={noAnimation}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n}\n\ntype GetCurrencyData = {\n lang?: CurrencyLang\n filter?: Props['filterCurrencies']\n sort?: Extract<CurrencyFilterSet, 'Prioritized'>\n makeObject?: (\n currency: CurrencyType,\n lang: string\n ) => {\n selectedKey: string\n selected_value: string\n content: string[]\n }\n}\n\nexport function getCurrencyData({\n lang = 'nb',\n filter = null,\n sort = null,\n makeObject = (currency: CurrencyType, lang: string) => {\n const translation = currency.i18n[lang] ?? currency.i18n.en\n const content = [translation, currency.iso]\n return {\n selectedKey: currency.iso,\n selected_value: `${translation} (${currency.iso})`,\n content,\n }\n },\n}: GetCurrencyData = {}) {\n const sortedCurrencies = currencies\n .filter((currency) => {\n if (typeof filter === 'function') {\n return filter(currency)\n }\n\n return !filter\n })\n .sort(({ i18n: a, iso: a1 }, { i18n: b, iso: b1 }) => {\n if (sort === 'Prioritized') {\n const indexA = prioritizedCurrencies.indexOf(a1)\n const indexB = prioritizedCurrencies.indexOf(b1)\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 Østkaribisk dollar) is not in the en alphabet\n })\n .map((currency) => makeObject(currency, lang))\n\n if (sortedCurrencies.length === 0) {\n return undefined\n }\n\n return sortedCurrencies\n}\n\nexport function currencyFilter(\n currency: CurrencyType,\n filterCurrencies: (currency: CurrencyType) => boolean,\n ccFilter: CurrencyFilterSet\n) {\n let result = true\n\n if (ccFilter !== 'Prioritized') {\n switch (ccFilter) {\n case 'Scandinavia':\n case 'Nordic': {\n result = currency.regions?.includes(ccFilter)\n break\n }\n case 'Europe': {\n result = currency.continent.includes(ccFilter)\n break\n }\n }\n }\n\n if (result && filterCurrencies) {\n result = filterCurrencies(currency)\n }\n\n return result\n}\n\nexport function makeCurrencyFilterSet(ccFilter: CurrencyFilterSet) {\n return (currency: CurrencyType) => {\n switch (ccFilter) {\n case 'Scandinavia':\n case 'Nordic':\n return currency.regions?.includes(ccFilter)\n case 'Europe':\n return currency.continent.includes(ccFilter)\n }\n return true\n }\n}\n\nSelectCurrency._supportsSpacingProps = true\nexport default SelectCurrency\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import { PropertiesTableProps } from '../../../../shared/types';
2
+ export declare const SelectCurrencyProperties: PropertiesTableProps;
3
+ export declare const SelectCurrencyGeneralEvents: PropertiesTableProps;
@@ -0,0 +1,28 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ 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; }
3
+ 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; }
4
+ import { getFieldEventsWithTypes } from '../FieldDocs';
5
+ import { autocompleteProperties } from '../../../../components/autocomplete/AutocompleteDocs';
6
+ export const SelectCurrencyProperties = {
7
+ currencies: {
8
+ doc: 'List only a certain set of currencies: `Scandinavia`, `Nordic`, `Europe` or `Prioritized`(all currencies [sorted by priority](/uilib/extensions/forms/feature-fields/SelectCurrency/#filter-or-prioritize-currency-listing)). Defaults to `Prioritized`.',
9
+ type: 'string',
10
+ status: 'optional'
11
+ },
12
+ filterCurrencies: {
13
+ doc: '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.',
14
+ type: 'function',
15
+ status: 'optional'
16
+ },
17
+ size: _objectSpread(_objectSpread({}, autocompleteProperties.size), {}, {
18
+ doc: `${autocompleteProperties.size.doc} Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).`
19
+ })
20
+ };
21
+ export const SelectCurrencyGeneralEvents = getFieldEventsWithTypes({
22
+ type: 'string',
23
+ optional: true
24
+ }, {
25
+ type: 'object',
26
+ optional: true
27
+ });
28
+ //# sourceMappingURL=SelectCurrencyDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectCurrencyDocs.js","names":["getFieldEventsWithTypes","autocompleteProperties","SelectCurrencyProperties","currencies","doc","type","status","filterCurrencies","size","_objectSpread","SelectCurrencyGeneralEvents","optional"],"sources":["../../../../../../src/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { getFieldEventsWithTypes } from '../FieldDocs'\nimport { autocompleteProperties } from '../../../../components/autocomplete/AutocompleteDocs'\n\nexport const SelectCurrencyProperties: PropertiesTableProps = {\n currencies: {\n doc: 'List only a certain set of currencies: `Scandinavia`, `Nordic`, `Europe` or `Prioritized`(all currencies [sorted by priority](/uilib/extensions/forms/feature-fields/SelectCurrency/#filter-or-prioritize-currency-listing)). Defaults to `Prioritized`.',\n type: 'string',\n status: 'optional',\n },\n filterCurrencies: {\n doc: '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.',\n type: 'function',\n status: 'optional',\n },\n size: {\n ...autocompleteProperties.size,\n doc: `${autocompleteProperties.size.doc} Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).`,\n },\n}\n\nexport const SelectCurrencyGeneralEvents = getFieldEventsWithTypes(\n { type: 'string', optional: true },\n { type: 'object', optional: true }\n)\n"],"mappings":";;;AACA,SAASA,uBAAuB,QAAQ,cAAc;AACtD,SAASC,sBAAsB,QAAQ,sDAAsD;AAE7F,OAAO,MAAMC,wBAA8C,GAAG;EAC5DC,UAAU,EAAE;IACVC,GAAG,EAAE,0PAA0P;IAC/PC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,gBAAgB,EAAE;IAChBH,GAAG,EAAE,kKAAkK;IACvKC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDE,IAAI,EAAAC,aAAA,CAAAA,aAAA,KACCR,sBAAsB,CAACO,IAAI;IAC9BJ,GAAG,EAAE,GAAGH,sBAAsB,CAACO,IAAI,CAACJ,GAAG;EAAwG;AAEnJ,CAAC;AAED,OAAO,MAAMM,2BAA2B,GAAGV,uBAAuB,CAChE;EAAEK,IAAI,EAAE,QAAQ;EAAEM,QAAQ,EAAE;AAAK,CAAC,EAClC;EAAEN,IAAI,EAAE,QAAQ;EAAEM,QAAQ,EAAE;AAAK,CACnC,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export { default } from './SelectCurrency';
2
+ export * from './SelectCurrency';
@@ -0,0 +1,3 @@
1
+ export { default } from './SelectCurrency';
2
+ export * from './SelectCurrency';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["default"],"sources":["../../../../../../src/extensions/forms/Field/SelectCurrency/index.ts"],"sourcesContent":["export { default } from './SelectCurrency'\nexport * from './SelectCurrency'\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,kBAAkB;AAC1C,cAAc,kBAAkB","ignoreList":[]}
@@ -18,6 +18,7 @@ export { default as Selection } from './Selection';
18
18
  export { default as ArraySelection } from './ArraySelection';
19
19
  export { default as Option } from './Option';
20
20
  export { default as SelectCountry } from './SelectCountry';
21
+ export { default as SelectCurrency } from './SelectCurrency';
21
22
  export { default as BankAccountNumber } from './BankAccountNumber';
22
23
  export { default as Expiry } from './Expiry';
23
24
  export { default as Password } from './Password';
@@ -18,6 +18,7 @@ export { default as Selection } from './Selection';
18
18
  export { default as ArraySelection } from './ArraySelection';
19
19
  export { default as Option } from './Option';
20
20
  export { default as SelectCountry } from './SelectCountry';
21
+ export { default as SelectCurrency } from './SelectCurrency';
21
22
  export { default as BankAccountNumber } from './BankAccountNumber';
22
23
  export { default as Expiry } from './Expiry';
23
24
  export { default as Password } from './Password';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","Provider","Composition","String","Number","Toggle","Indeterminate","Address","Boolean","Currency","Date","Email","Name","NationalIdentityNumber","PhoneNumber","OrganizationNumber","PostalCodeAndCity","Selection","ArraySelection","Option","SelectCountry","BankAccountNumber","Expiry","Password","Slider","Upload"],"sources":["../../../../../src/extensions/forms/Field/index.ts"],"sourcesContent":["export { default as Provider } from './Provider'\nexport { default as Composition } from './Composition'\nexport { default as String } from './String'\nexport { default as Number } from './Number'\nexport { default as Toggle } from './Toggle'\nexport { default as Indeterminate } from './Indeterminate'\nexport { default as Address } from './Address'\nexport { default as Boolean } from './Boolean'\nexport { default as Currency } from './Currency'\nexport { default as Date } from './Date'\nexport { default as Email } from './Email'\nexport { default as Name } from './Name'\nexport { default as NationalIdentityNumber } from './NationalIdentityNumber'\nexport { default as PhoneNumber } from './PhoneNumber'\nexport { default as OrganizationNumber } from './OrganizationNumber'\nexport { default as PostalCodeAndCity } from './PostalCodeAndCity'\nexport { default as Selection } from './Selection'\nexport { default as ArraySelection } from './ArraySelection'\nexport { default as Option } from './Option'\nexport { default as SelectCountry } from './SelectCountry'\nexport { default as BankAccountNumber } from './BankAccountNumber'\nexport { default as Expiry } from './Expiry'\nexport { default as Password } from './Password'\nexport { default as Slider } from './Slider'\nexport { default as Upload } from './Upload'\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,QAAQ,QAAQ,YAAY;AAChD,SAASD,OAAO,IAAIE,WAAW,QAAQ,eAAe;AACtD,SAASF,OAAO,IAAIG,MAAM,QAAQ,UAAU;AAC5C,SAASH,OAAO,IAAII,MAAM,QAAQ,UAAU;AAC5C,SAASJ,OAAO,IAAIK,MAAM,QAAQ,UAAU;AAC5C,SAASL,OAAO,IAAIM,aAAa,QAAQ,iBAAiB;AAC1D,SAASN,OAAO,IAAIO,OAAO,QAAQ,WAAW;AAC9C,SAASP,OAAO,IAAIQ,OAAO,QAAQ,WAAW;AAC9C,SAASR,OAAO,IAAIS,QAAQ,QAAQ,YAAY;AAChD,SAAST,OAAO,IAAIU,IAAI,QAAQ,QAAQ;AACxC,SAASV,OAAO,IAAIW,KAAK,QAAQ,SAAS;AAC1C,SAASX,OAAO,IAAIY,IAAI,QAAQ,QAAQ;AACxC,SAASZ,OAAO,IAAIa,sBAAsB,QAAQ,0BAA0B;AAC5E,SAASb,OAAO,IAAIc,WAAW,QAAQ,eAAe;AACtD,SAASd,OAAO,IAAIe,kBAAkB,QAAQ,sBAAsB;AACpE,SAASf,OAAO,IAAIgB,iBAAiB,QAAQ,qBAAqB;AAClE,SAAShB,OAAO,IAAIiB,SAAS,QAAQ,aAAa;AAClD,SAASjB,OAAO,IAAIkB,cAAc,QAAQ,kBAAkB;AAC5D,SAASlB,OAAO,IAAImB,MAAM,QAAQ,UAAU;AAC5C,SAASnB,OAAO,IAAIoB,aAAa,QAAQ,iBAAiB;AAC1D,SAASpB,OAAO,IAAIqB,iBAAiB,QAAQ,qBAAqB;AAClE,SAASrB,OAAO,IAAIsB,MAAM,QAAQ,UAAU;AAC5C,SAAStB,OAAO,IAAIuB,QAAQ,QAAQ,YAAY;AAChD,SAASvB,OAAO,IAAIwB,MAAM,QAAQ,UAAU;AAC5C,SAASxB,OAAO,IAAIyB,MAAM,QAAQ,UAAU","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["default","Provider","Composition","String","Number","Toggle","Indeterminate","Address","Boolean","Currency","Date","Email","Name","NationalIdentityNumber","PhoneNumber","OrganizationNumber","PostalCodeAndCity","Selection","ArraySelection","Option","SelectCountry","SelectCurrency","BankAccountNumber","Expiry","Password","Slider","Upload"],"sources":["../../../../../src/extensions/forms/Field/index.ts"],"sourcesContent":["export { default as Provider } from './Provider'\nexport { default as Composition } from './Composition'\nexport { default as String } from './String'\nexport { default as Number } from './Number'\nexport { default as Toggle } from './Toggle'\nexport { default as Indeterminate } from './Indeterminate'\nexport { default as Address } from './Address'\nexport { default as Boolean } from './Boolean'\nexport { default as Currency } from './Currency'\nexport { default as Date } from './Date'\nexport { default as Email } from './Email'\nexport { default as Name } from './Name'\nexport { default as NationalIdentityNumber } from './NationalIdentityNumber'\nexport { default as PhoneNumber } from './PhoneNumber'\nexport { default as OrganizationNumber } from './OrganizationNumber'\nexport { default as PostalCodeAndCity } from './PostalCodeAndCity'\nexport { default as Selection } from './Selection'\nexport { default as ArraySelection } from './ArraySelection'\nexport { default as Option } from './Option'\nexport { default as SelectCountry } from './SelectCountry'\nexport { default as SelectCurrency } from './SelectCurrency'\nexport { default as BankAccountNumber } from './BankAccountNumber'\nexport { default as Expiry } from './Expiry'\nexport { default as Password } from './Password'\nexport { default as Slider } from './Slider'\nexport { default as Upload } from './Upload'\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,QAAQ,QAAQ,YAAY;AAChD,SAASD,OAAO,IAAIE,WAAW,QAAQ,eAAe;AACtD,SAASF,OAAO,IAAIG,MAAM,QAAQ,UAAU;AAC5C,SAASH,OAAO,IAAII,MAAM,QAAQ,UAAU;AAC5C,SAASJ,OAAO,IAAIK,MAAM,QAAQ,UAAU;AAC5C,SAASL,OAAO,IAAIM,aAAa,QAAQ,iBAAiB;AAC1D,SAASN,OAAO,IAAIO,OAAO,QAAQ,WAAW;AAC9C,SAASP,OAAO,IAAIQ,OAAO,QAAQ,WAAW;AAC9C,SAASR,OAAO,IAAIS,QAAQ,QAAQ,YAAY;AAChD,SAAST,OAAO,IAAIU,IAAI,QAAQ,QAAQ;AACxC,SAASV,OAAO,IAAIW,KAAK,QAAQ,SAAS;AAC1C,SAASX,OAAO,IAAIY,IAAI,QAAQ,QAAQ;AACxC,SAASZ,OAAO,IAAIa,sBAAsB,QAAQ,0BAA0B;AAC5E,SAASb,OAAO,IAAIc,WAAW,QAAQ,eAAe;AACtD,SAASd,OAAO,IAAIe,kBAAkB,QAAQ,sBAAsB;AACpE,SAASf,OAAO,IAAIgB,iBAAiB,QAAQ,qBAAqB;AAClE,SAAShB,OAAO,IAAIiB,SAAS,QAAQ,aAAa;AAClD,SAASjB,OAAO,IAAIkB,cAAc,QAAQ,kBAAkB;AAC5D,SAASlB,OAAO,IAAImB,MAAM,QAAQ,UAAU;AAC5C,SAASnB,OAAO,IAAIoB,aAAa,QAAQ,iBAAiB;AAC1D,SAASpB,OAAO,IAAIqB,cAAc,QAAQ,kBAAkB;AAC5D,SAASrB,OAAO,IAAIsB,iBAAiB,QAAQ,qBAAqB;AAClE,SAAStB,OAAO,IAAIuB,MAAM,QAAQ,UAAU;AAC5C,SAASvB,OAAO,IAAIwB,QAAQ,QAAQ,YAAY;AAChD,SAASxB,OAAO,IAAIyB,MAAM,QAAQ,UAAU;AAC5C,SAASzB,OAAO,IAAI0B,MAAM,QAAQ,UAAU","ignoreList":[]}
@@ -50,7 +50,7 @@ export type SharedFieldBlockProps = {
50
50
  */
51
51
  help?: HelpProps;
52
52
  };
53
- export type Props = SharedFieldBlockProps & Pick<FieldProps, keyof ComponentProps | 'info' | 'warning' | 'error' | 'disabled'> & {
53
+ export type Props<Value = unknown> = SharedFieldBlockProps & Pick<FieldProps<Value>, keyof ComponentProps | 'info' | 'warning' | 'error' | 'disabled'> & {
54
54
  /** The id to link a element with */
55
55
  forId?: string;
56
56
  /** Use true if you have more than one form element */
@@ -75,7 +75,7 @@ export type Props = SharedFieldBlockProps & Pick<FieldProps, keyof ComponentProp
75
75
  required?: boolean;
76
76
  children?: React.ReactNode;
77
77
  } & React.HTMLAttributes<HTMLDivElement>;
78
- declare function FieldBlock(props: Props): import("react/jsx-runtime").JSX.Element;
78
+ declare function FieldBlock<Value = unknown>(props: Props<Value>): import("react/jsx-runtime").JSX.Element;
79
79
  declare namespace FieldBlock {
80
80
  var _supportsSpacingProps: boolean;
81
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FieldBlock.js","names":["React","useMemo","useContext","useCallback","useRef","useReducer","useEffect","classnames","FieldBlockContext","DataContext","Space","FormLabel","FormStatus","Ul","Li","convertJsxToString","findElementInChildren","useId","HelpButtonInline","HelpButtonInlineContent","SubmitIndicator","createSharedState","useTranslation","FormError","useIterateItemNo","states","FieldBlock","props","_props$id","dataContext","fieldBlockContext","nestedFieldBlockContext","disableStatusSummary","id","forId","sharedData","_Object$assign","Object","assign","data","className","layout","layoutOptions","composition","label","labelProp","labelDescription","labelDescriptionInline","labelSuffix","labelSrOnly","help","asFieldset","required","info","warning","error","fieldState","disabled","width","contentWidth","labelHeight","align","labelSize","contentClassName","children","rest","_objectWithoutProperties","_excluded","hasCustomWidth","test","String","hasCustomContentWidth","infoRef","warningRef","errorRef","blockId","salt","forceUpdate","mountedFieldsRef","fieldStateRef","stateRecordRef","fieldStateIdsRef","contentsRef","hasInitiallyErrorPropRef","Boolean","setInternalRecord","stateId","identifier","type","current","existingIndex","findIndex","item","_objectSpread","push","setBlockRecordNested","setBlockRecord","setFieldState","showFieldError","show","map","showInitially","statusContent","content","statesWithMessages","entries","flatMap","reduce","acc","cur","existing","find","messages","getMessagesFromError","message","undefined","state","width_element","no_animation","process","env","NODE_ENV","globalThis","IS_TEST","found","msg","filter","i","arr","length","createElement","CombineMessages","mainClasses","gridClasses","enableFieldset","useEnableFieldset","labelProps","element","srOnly","space","size","mainStyle","_lO$minWidth","_lO$maxWidth","style","lO","min","getFieldWidth","minWidth","max","maxWidth","prerenderFieldProps","hasLabelDescription","isFragment","fragmentHasChildren","fragmentHasOnlyUndefinedChildren","hasHelp","title","Provider","value","hasErrorProp","_extends","contentId","_br","breakout","outset","parseFloat","ref","result","count","child","_child$props","_child$type","translations","Field","Fragment","errorSummary","stateSummary","key","Array","isArray","errors","Error","isValidElement","toString","fragment","Children","isUndefined","toArray","every","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlock.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useRef,\n useReducer,\n useEffect,\n} from 'react'\nimport classnames from 'classnames'\nimport FieldBlockContext, {\n StateWithMessage,\n StatesWithMessages,\n FieldErrorIdsRef,\n MountedFieldsRef,\n StateRecord,\n StateMessage,\n StateTypes,\n StatusContent,\n FieldBlockContextProps,\n StateBasis,\n} from './FieldBlockContext'\nimport DataContext from '../DataContext/Context'\nimport { Space, FormLabel, FormStatus } from '../../../components'\nimport { Ul, Li } from '../../../elements'\nimport {\n convertJsxToString,\n findElementInChildren,\n} from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport {\n ComponentProps,\n FieldProps,\n SubmitState,\n Identifier,\n UseFieldProps,\n} from '../types'\nimport type { FormLabelAllProps } from '../../../components/FormLabel'\nimport HelpButtonInline, {\n HelpButtonInlineContent,\n HelpProps,\n} from '../../../components/help-button/HelpButtonInline'\nimport SubmitIndicator from '../Form/SubmitIndicator/SubmitIndicator'\nimport { createSharedState } from '../../../shared/helpers/useSharedState'\nimport useTranslation from '../hooks/useTranslation'\nimport { FormError } from '../utils'\nimport { useIterateItemNo } from '../Iterate/ItemNo/useIItemNo'\n\nexport const states: Array<StateTypes> = ['error', 'info', 'warning']\n\n/**\n * The width of a field block\n */\nexport type CustomWidth = `${number}rem`\nexport type FieldBlockWidth =\n | false\n | 'small'\n | 'medium'\n | 'large'\n | 'stretch'\n | CustomWidth\nexport type FieldBlockHorizontalLabelWidth =\n | 'small'\n | 'medium'\n | 'large'\n | CustomWidth\nexport type FieldBlockHorizontalLabelHeight =\n | 'default'\n | 'small'\n | 'medium'\n | 'large'\n\nexport type SharedFieldBlockProps = {\n /**\n * The layout of the field block\n */\n layout?: 'vertical' | 'horizontal'\n /** Use this to set additional options for the layout */\n layoutOptions?: {\n width?: FieldBlockHorizontalLabelWidth\n minWidth?: FieldBlockHorizontalLabelWidth\n maxWidth?: FieldBlockHorizontalLabelWidth\n }\n /**\n * Main label text for the field\n */\n label?: React.ReactNode\n /**\n * Will append an additional text to the label, like \"(optional)\" or \"(recommended)\"\n */\n labelSuffix?: React.ReactNode\n /**\n * A more discreet text displayed beside the label\n */\n labelDescription?: React.ReactNode\n /**\n * If true, the labelDescription will be displayed on the same line as the label.\n */\n labelDescriptionInline?: boolean\n /**\n * Width of outer block element\n */\n width?: FieldBlockWidth\n /**\n * Width of contents block, while label etc can be wider if space is available\n */\n contentWidth?: FieldBlockWidth\n /**\n * Provide help content for the field.\n */\n help?: HelpProps\n}\n\nexport type Props = SharedFieldBlockProps &\n Pick<\n FieldProps,\n keyof ComponentProps | 'info' | 'warning' | 'error' | 'disabled'\n > & {\n /** The id to link a element with */\n forId?: string\n /** Use true if you have more than one form element */\n asFieldset?: boolean\n /** use `true` to make the label only readable by screen readers. */\n labelSrOnly?: boolean\n /** Defines the layout of nested fields */\n composition?: FieldBlockContextProps['composition']\n /** For composition only: Align the contents vertically */\n align?: 'center' | 'bottom'\n /** Class name for the contents block */\n contentClassName?: string\n /** To show the SubmitIndicator during async validation */\n fieldState?: SubmitState\n /** Typography size */\n labelSize?: 'medium' | 'large'\n /** Defines the height of an component (size prop), so the label can be aligned correctly */\n labelHeight?: FieldBlockHorizontalLabelHeight\n /** Disable the error summary for this field block */\n disableStatusSummary?: boolean\n /** For internal use only */\n required?: boolean\n children?: React.ReactNode\n } & React.HTMLAttributes<HTMLDivElement>\n\nfunction FieldBlock(props: Props) {\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const nestedFieldBlockContext = !fieldBlockContext?.disableStatusSummary\n ? fieldBlockContext\n : null\n\n const id = useId(props.id ?? props.forId)\n const sharedData = createSharedState<Props>('field-block-props-' + id)\n const {\n className,\n forId,\n layout = 'vertical',\n layoutOptions,\n composition,\n label: labelProp,\n labelDescription,\n labelDescriptionInline,\n labelSuffix,\n labelSrOnly,\n help,\n asFieldset,\n required,\n info,\n warning,\n error,\n disableStatusSummary,\n fieldState,\n disabled,\n width,\n contentWidth,\n labelHeight,\n align,\n labelSize,\n contentClassName,\n children,\n ...rest\n } = Object.assign({}, sharedData.data, props)\n const hasCustomWidth = /\\d(rem)$/.test(String(width))\n const hasCustomContentWidth = /\\d(rem)$/.test(String(contentWidth))\n\n const infoRef = useRef<UseFieldProps['info']>()\n const warningRef = useRef<UseFieldProps['warning']>()\n const errorRef = useRef<UseFieldProps['error']>()\n\n const blockId = useId(props.id)\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n const mountedFieldsRef = useRef<MountedFieldsRef>({})\n const fieldStateRef = useRef<SubmitState>(null)\n const stateRecordRef = useRef<StateRecord>({})\n const fieldStateIdsRef = useRef<FieldErrorIdsRef>(null)\n const contentsRef = useRef<HTMLDivElement>(null)\n const hasInitiallyErrorPropRef = useRef(Boolean(error))\n\n const label = useIterateItemNo({\n label: labelProp,\n labelSuffix,\n required,\n })\n\n const setInternalRecord = useCallback((props: StateBasis) => {\n const { stateId, identifier, type } = props\n\n if (!stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = []\n }\n\n fieldStateIdsRef.current = { error: null, warning: null, info: null }\n\n const existingIndex = stateRecordRef.current[identifier].findIndex(\n (item) => {\n return item.stateId === stateId && item.type === type\n }\n )\n\n if (existingIndex > -1) {\n stateRecordRef.current[identifier][existingIndex] = {\n ...stateRecordRef.current[identifier][existingIndex],\n ...props,\n }\n } else {\n stateRecordRef.current[identifier].push(props)\n }\n }, [])\n\n const setBlockRecordNested = nestedFieldBlockContext?.setBlockRecord\n const setBlockRecord = useCallback(\n (props: StateBasis) => {\n if (setBlockRecordNested) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n setBlockRecordNested(props)\n return\n }\n\n setInternalRecord(props)\n\n forceUpdate()\n },\n [setBlockRecordNested, setInternalRecord]\n )\n\n const setFieldState = useCallback(\n (identifier: Identifier, fieldState: SubmitState) => {\n if (fieldState !== fieldStateRef.current) {\n fieldStateRef.current = fieldState\n\n forceUpdate()\n }\n },\n []\n )\n\n const showFieldError = useCallback(\n (identifier: Identifier, show: boolean) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.showFieldError(identifier, show)\n return\n }\n\n if (stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = stateRecordRef.current[\n identifier\n ].map((item) => {\n if (item.showInitially) {\n return item\n }\n\n return {\n ...item,\n show,\n }\n })\n\n forceUpdate()\n }\n },\n [nestedFieldBlockContext]\n )\n\n const statusContent = useMemo(() => {\n if (typeof error !== 'undefined' || (errorRef.current && !error)) {\n errorRef.current = error\n setInternalRecord({\n identifier: blockId,\n showInitially: hasInitiallyErrorPropRef.current,\n type: 'error',\n content: error,\n })\n }\n\n if (typeof warning !== 'undefined' || warningRef.current !== warning) {\n warningRef.current = warning\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'warning',\n content: warning,\n })\n }\n\n if (typeof info !== 'undefined' || infoRef.current !== info) {\n infoRef.current = info\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'info',\n content: info,\n })\n }\n\n const statesWithMessages: Array<StatesWithMessages> =\n // 1. Prepare the states for later use\n Object.entries(stateRecordRef.current)\n .flatMap(([identifier, states]) =>\n states.map((props) => {\n return {\n identifier,\n ...props,\n }\n })\n )\n\n // 2. Take states and group the same type together\n .reduce((acc, cur) => {\n const existing = acc.find((item) => {\n return item.type === cur.type\n })\n\n const messages = getMessagesFromError(cur).map((message) => {\n return {\n ...cur,\n message,\n }\n })\n\n if (existing) {\n existing.messages.push(...messages)\n } else {\n acc.push({\n ...cur,\n content: undefined,\n messages,\n })\n }\n\n return acc\n }, [] as Array<StatesWithMessages>)\n\n // 3. Return the grouped states/messages\n return states.reduce((acc, type) => {\n const id = `${props.id || forId || blockId}-form-status--${type}`\n acc[type] = {\n id,\n label,\n state: type === 'warning' ? 'warn' : type,\n width_element: contentsRef,\n\n // Enable animation only in the browser and not in tests\n no_animation:\n process.env.NODE_ENV === 'test'\n ? true\n : typeof globalThis !== 'undefined'\n ? globalThis.IS_TEST === true\n : false,\n }\n\n const found = statesWithMessages.find((item) => {\n return item.type === type\n })\n\n if (found?.messages) {\n // Hide/remove messages that should be hidden and are not marked as to be shown initially\n const messages = found.messages\n .map((msg) => {\n if (msg.type === 'error') {\n if (!msg.showInitially && !msg.show) {\n msg.message = null\n }\n }\n\n return msg\n })\n .filter(({ message }) => message)\n .reduce((acc, msg, i, arr) => {\n const existingIndex = arr.findIndex((item) => {\n return (\n convertJsxToString(item.message) ===\n convertJsxToString(msg.message)\n )\n })\n\n // Remove duplicates, use the first found message\n if (existingIndex === i) {\n acc.push(msg)\n }\n\n return acc\n }, [])\n\n // Combine the messages and put them in an ul/li list\n if (messages.length > 0) {\n acc[type] = {\n ...acc[type],\n children: <CombineMessages type={type} messages={messages} />,\n }\n\n fieldStateIdsRef.current[type] = id\n } else {\n fieldStateIdsRef.current[type] = undefined\n }\n }\n\n return acc\n }, salt) as StatusContent\n }, [\n error,\n warning,\n info,\n salt,\n setInternalRecord,\n blockId,\n props.id,\n forId,\n label,\n ])\n\n // Handle the error prop from outside\n useEffect(() => {\n if (!nestedFieldBlockContext) {\n showFieldError(blockId, Boolean(error))\n }\n }, [error, blockId, showFieldError, nestedFieldBlockContext])\n\n useEffect(\n () => () => {\n mountedFieldsRef.current = {}\n stateRecordRef.current = {}\n },\n []\n )\n\n const mainClasses = classnames(\n 'dnb-forms-field-block',\n width &&\n `dnb-forms-field-block--width-${hasCustomWidth ? 'custom' : width}`,\n contentWidth &&\n `dnb-forms-field-block--content-width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`,\n labelHeight && `dnb-forms-field-block--label-height-${labelHeight}`,\n composition && 'dnb-forms-field-block__composition',\n composition &&\n `dnb-forms-field-block__composition--${\n composition === true ? 'horizontal' : composition\n }`,\n className\n )\n const gridClasses = classnames(\n 'dnb-forms-field-block__grid',\n `dnb-forms-field-block--layout-${layout}`\n )\n\n // A child component with a label was found, use fieldset/legend instead of div/label\n const enableFieldset = useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n })\n\n const labelProps: FormLabelAllProps = {\n id: `${id}-label`,\n className: 'dnb-forms-field-block__label',\n element: enableFieldset ? 'legend' : 'label',\n forId: enableFieldset ? undefined : forId,\n srOnly: labelSrOnly,\n space: 0, // Use CSS for spacing, but we need to reset space for doing so\n size: labelSize,\n disabled,\n }\n\n const mainStyle = useMemo(() => {\n const style: React.CSSProperties = {}\n\n if (hasCustomWidth) {\n style['--dnb-forms-field-block-width'] = width\n }\n\n if (hasCustomContentWidth) {\n style['--dnb-forms-field-block-content-width'] = contentWidth\n }\n\n const lO = layoutOptions || {}\n const min = getFieldWidth(lO.minWidth ?? lO.width)\n const max = getFieldWidth(lO.maxWidth ?? lO.width)\n\n if (typeof min === 'string') {\n style['--dnb-forms-field-block-layout-width-min'] = min\n }\n if (typeof max === 'string') {\n style['--dnb-forms-field-block-layout-width-max'] = max\n }\n\n return style\n }, [\n contentWidth,\n hasCustomContentWidth,\n hasCustomWidth,\n layoutOptions,\n width,\n ])\n\n if (dataContext?.prerenderFieldProps) {\n return null\n }\n\n const hasLabelDescription = isFragment(labelDescription)\n ? fragmentHasChildren(labelDescription) &&\n !fragmentHasOnlyUndefinedChildren(labelDescription)\n : labelDescription\n const hasHelp = help?.title || help?.content\n\n return (\n <FieldBlockContext.Provider\n value={{\n setBlockRecord,\n setFieldState,\n showFieldError,\n hasErrorProp: Boolean(error),\n fieldStateIdsRef,\n mountedFieldsRef,\n composition,\n disableStatusSummary,\n }}\n >\n <Space\n element={enableFieldset ? 'fieldset' : 'div'} // use fieldset and legend to enhance a11y\n style={mainStyle}\n className={mainClasses}\n {...rest}\n >\n <div className={gridClasses}>\n {(label || labelDescription || hasHelp) && (\n <FormLabel {...labelProps}>\n <span>\n {label && (\n <span className=\"dnb-forms-field-block__label__content\">\n {label}\n </span>\n )}\n\n {hasHelp && (\n <HelpButtonInline contentId={`${id}-help`} help={help} />\n )}\n\n {hasLabelDescription && !labelDescriptionInline && <br />}\n {hasLabelDescription && (\n <span className=\"dnb-forms-field-block__label__description\">\n {labelDescription}\n </span>\n )}\n </span>\n </FormLabel>\n )}\n\n {hasHelp && (\n <HelpButtonInlineContent\n contentId={`${id}-help`}\n className=\"dnb-forms-field-block__help\"\n help={help}\n breakout={\n layout === 'vertical' &&\n !nestedFieldBlockContext?.composition\n }\n outset={layout !== 'horizontal'}\n />\n )}\n\n <div\n className={classnames(\n 'dnb-forms-field-block__status',\n\n // Handle the width of the status messages\n contentWidth &&\n contentWidth !== 'small' &&\n contentWidth !== 'medium' &&\n !(parseFloat(contentWidth) <= 11) &&\n `dnb-forms-field-block__contents--width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`\n )}\n >\n <FormStatus {...statusContent?.error} />\n <FormStatus {...statusContent?.warning} />\n <FormStatus {...statusContent?.info} />\n </div>\n\n <div\n className={classnames(\n 'dnb-forms-field-block__contents',\n contentWidth &&\n `dnb-forms-field-block__contents--width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`,\n align && `dnb-forms-field-block__contents--align-${align}`,\n contentClassName\n )}\n ref={contentsRef}\n >\n {children}\n </div>\n\n <SubmitIndicator\n state={fieldState ?? fieldStateRef.current}\n className=\"dnb-forms-field-block__indicator dnb-forms-submit-indicator--inline-wrap\"\n />\n </div>\n </Space>\n </FieldBlockContext.Provider>\n )\n}\n\nfunction useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n}) {\n return useMemo(() => {\n if (asFieldset === false) {\n return false\n }\n\n let result = asFieldset\n\n if (label && !result && !nestedFieldBlockContext) {\n let count = 0\n\n findElementInChildren(children, (child: React.ReactElement) => {\n if (\n child?.props?.label ||\n child?.type?.['_formElement'] === true\n ) {\n count++\n }\n if (count > 1) {\n return (result = true)\n }\n })\n }\n\n return Boolean(result)\n }, [asFieldset, children, label, nestedFieldBlockContext])\n}\n\nfunction CombineMessages({\n type,\n messages,\n}: {\n type: StateTypes\n messages: Array<StateWithMessage>\n}) {\n const translations = useTranslation().Field\n\n if (messages.length === 1) {\n return <>{messages[0].message}</>\n }\n\n return (\n <>\n {type === 'error'\n ? translations.errorSummary\n : translations.stateSummary}\n <Ul>\n {messages.map(({ message }, i) => {\n return <Li key={i}>{message}</Li>\n })}\n </Ul>\n </>\n )\n}\n\nexport function getMessagesFromError(\n item: Partial<StateWithMessage>\n): Array<StateMessage> {\n const { content } = item\n\n if (content instanceof FormError && Array.isArray(content.errors)) {\n return content.errors.map((error) => {\n return error.message\n })\n }\n\n if (Array.isArray(content)) {\n return content.map((content) => {\n return content instanceof FormError || content instanceof Error\n ? content.message\n : content\n })\n }\n\n if (content instanceof FormError || content instanceof Error) {\n return [content.message as StateMessage]\n }\n\n return [\n ((React.isValidElement(content) ? content : content?.toString()) ||\n content) as StateMessage,\n ]\n}\n\nfunction isFragment(fragment: React.ReactNode) {\n return React.isValidElement(fragment) && fragment.type === React.Fragment\n}\n\nfunction fragmentHasChildren(fragment: React.ReactNode) {\n return (\n React.isValidElement(fragment) &&\n React.Children.count(fragment.props.children) > 0\n )\n}\n\nfunction fragmentHasOnlyUndefinedChildren(fragment: React.ReactNode) {\n const isUndefined = (child) => child === undefined\n\n return (\n React.isValidElement(fragment) &&\n React.Children.toArray(fragment.props.children).every(isUndefined)\n )\n}\n\nFieldBlock._supportsSpacingProps = true\n\nexport default FieldBlock\n\nfunction getFieldWidth(width: FieldBlockHorizontalLabelWidth) {\n switch (width) {\n case 'small':\n return 'var(--forms-field-width--small)'\n case 'medium':\n return 'var(--forms-field-width--medium)'\n case 'large':\n return 'var(--forms-field-width--large)'\n }\n\n return width\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FieldBlock.js","names":["React","useMemo","useContext","useCallback","useRef","useReducer","useEffect","classnames","FieldBlockContext","DataContext","Space","FormLabel","FormStatus","Ul","Li","convertJsxToString","findElementInChildren","useId","HelpButtonInline","HelpButtonInlineContent","SubmitIndicator","createSharedState","useTranslation","FormError","useIterateItemNo","states","FieldBlock","props","_props$id","dataContext","fieldBlockContext","nestedFieldBlockContext","disableStatusSummary","id","forId","sharedData","_Object$assign","Object","assign","data","className","layout","layoutOptions","composition","label","labelProp","labelDescription","labelDescriptionInline","labelSuffix","labelSrOnly","help","asFieldset","required","info","warning","error","fieldState","disabled","width","contentWidth","labelHeight","align","labelSize","contentClassName","children","rest","_objectWithoutProperties","_excluded","hasCustomWidth","test","String","hasCustomContentWidth","infoRef","warningRef","errorRef","blockId","salt","forceUpdate","mountedFieldsRef","fieldStateRef","stateRecordRef","fieldStateIdsRef","contentsRef","hasInitiallyErrorPropRef","Boolean","setInternalRecord","stateId","identifier","type","current","existingIndex","findIndex","item","_objectSpread","push","setBlockRecordNested","setBlockRecord","setFieldState","showFieldError","show","map","showInitially","statusContent","content","statesWithMessages","entries","flatMap","reduce","acc","cur","existing","find","messages","getMessagesFromError","message","undefined","state","width_element","no_animation","process","env","NODE_ENV","globalThis","IS_TEST","found","msg","filter","i","arr","length","createElement","CombineMessages","mainClasses","gridClasses","enableFieldset","useEnableFieldset","labelProps","element","srOnly","space","size","mainStyle","_lO$minWidth","_lO$maxWidth","style","lO","min","getFieldWidth","minWidth","max","maxWidth","prerenderFieldProps","hasLabelDescription","isFragment","fragmentHasChildren","fragmentHasOnlyUndefinedChildren","hasHelp","title","Provider","value","hasErrorProp","_extends","contentId","_br","breakout","outset","parseFloat","ref","result","count","child","_child$props","_child$type","translations","Field","Fragment","errorSummary","stateSummary","key","Array","isArray","errors","Error","isValidElement","toString","fragment","Children","isUndefined","toArray","every","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlock.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useRef,\n useReducer,\n useEffect,\n} from 'react'\nimport classnames from 'classnames'\nimport FieldBlockContext, {\n StateWithMessage,\n StatesWithMessages,\n FieldErrorIdsRef,\n MountedFieldsRef,\n StateRecord,\n StateMessage,\n StateTypes,\n StatusContent,\n FieldBlockContextProps,\n StateBasis,\n} from './FieldBlockContext'\nimport DataContext from '../DataContext/Context'\nimport { Space, FormLabel, FormStatus } from '../../../components'\nimport { Ul, Li } from '../../../elements'\nimport {\n convertJsxToString,\n findElementInChildren,\n} from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport {\n ComponentProps,\n FieldProps,\n SubmitState,\n Identifier,\n UseFieldProps,\n} from '../types'\nimport type { FormLabelAllProps } from '../../../components/FormLabel'\nimport HelpButtonInline, {\n HelpButtonInlineContent,\n HelpProps,\n} from '../../../components/help-button/HelpButtonInline'\nimport SubmitIndicator from '../Form/SubmitIndicator/SubmitIndicator'\nimport { createSharedState } from '../../../shared/helpers/useSharedState'\nimport useTranslation from '../hooks/useTranslation'\nimport { FormError } from '../utils'\nimport { useIterateItemNo } from '../Iterate/ItemNo/useIItemNo'\n\nexport const states: Array<StateTypes> = ['error', 'info', 'warning']\n\n/**\n * The width of a field block\n */\nexport type CustomWidth = `${number}rem`\nexport type FieldBlockWidth =\n | false\n | 'small'\n | 'medium'\n | 'large'\n | 'stretch'\n | CustomWidth\nexport type FieldBlockHorizontalLabelWidth =\n | 'small'\n | 'medium'\n | 'large'\n | CustomWidth\nexport type FieldBlockHorizontalLabelHeight =\n | 'default'\n | 'small'\n | 'medium'\n | 'large'\n\nexport type SharedFieldBlockProps = {\n /**\n * The layout of the field block\n */\n layout?: 'vertical' | 'horizontal'\n /** Use this to set additional options for the layout */\n layoutOptions?: {\n width?: FieldBlockHorizontalLabelWidth\n minWidth?: FieldBlockHorizontalLabelWidth\n maxWidth?: FieldBlockHorizontalLabelWidth\n }\n /**\n * Main label text for the field\n */\n label?: React.ReactNode\n /**\n * Will append an additional text to the label, like \"(optional)\" or \"(recommended)\"\n */\n labelSuffix?: React.ReactNode\n /**\n * A more discreet text displayed beside the label\n */\n labelDescription?: React.ReactNode\n /**\n * If true, the labelDescription will be displayed on the same line as the label.\n */\n labelDescriptionInline?: boolean\n /**\n * Width of outer block element\n */\n width?: FieldBlockWidth\n /**\n * Width of contents block, while label etc can be wider if space is available\n */\n contentWidth?: FieldBlockWidth\n /**\n * Provide help content for the field.\n */\n help?: HelpProps\n}\n\nexport type Props<Value = unknown> = SharedFieldBlockProps &\n Pick<\n FieldProps<Value>,\n keyof ComponentProps | 'info' | 'warning' | 'error' | 'disabled'\n > & {\n /** The id to link a element with */\n forId?: string\n /** Use true if you have more than one form element */\n asFieldset?: boolean\n /** use `true` to make the label only readable by screen readers. */\n labelSrOnly?: boolean\n /** Defines the layout of nested fields */\n composition?: FieldBlockContextProps['composition']\n /** For composition only: Align the contents vertically */\n align?: 'center' | 'bottom'\n /** Class name for the contents block */\n contentClassName?: string\n /** To show the SubmitIndicator during async validation */\n fieldState?: SubmitState\n /** Typography size */\n labelSize?: 'medium' | 'large'\n /** Defines the height of an component (size prop), so the label can be aligned correctly */\n labelHeight?: FieldBlockHorizontalLabelHeight\n /** Disable the error summary for this field block */\n disableStatusSummary?: boolean\n /** For internal use only */\n required?: boolean\n children?: React.ReactNode\n } & React.HTMLAttributes<HTMLDivElement>\n\nfunction FieldBlock<Value = unknown>(props: Props<Value>) {\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const nestedFieldBlockContext = !fieldBlockContext?.disableStatusSummary\n ? fieldBlockContext\n : null\n\n const id = useId(props.id ?? props.forId)\n const sharedData = createSharedState<Props>('field-block-props-' + id)\n const {\n className,\n forId,\n layout = 'vertical',\n layoutOptions,\n composition,\n label: labelProp,\n labelDescription,\n labelDescriptionInline,\n labelSuffix,\n labelSrOnly,\n help,\n asFieldset,\n required,\n info,\n warning,\n error,\n disableStatusSummary,\n fieldState,\n disabled,\n width,\n contentWidth,\n labelHeight,\n align,\n labelSize,\n contentClassName,\n children,\n ...rest\n } = Object.assign({}, sharedData.data, props)\n const hasCustomWidth = /\\d(rem)$/.test(String(width))\n const hasCustomContentWidth = /\\d(rem)$/.test(String(contentWidth))\n\n const infoRef = useRef<UseFieldProps['info']>()\n const warningRef = useRef<UseFieldProps['warning']>()\n const errorRef = useRef<UseFieldProps['error']>()\n\n const blockId = useId(props.id)\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n const mountedFieldsRef = useRef<MountedFieldsRef>({})\n const fieldStateRef = useRef<SubmitState>(null)\n const stateRecordRef = useRef<StateRecord>({})\n const fieldStateIdsRef = useRef<FieldErrorIdsRef>(null)\n const contentsRef = useRef<HTMLDivElement>(null)\n const hasInitiallyErrorPropRef = useRef(Boolean(error))\n\n const label = useIterateItemNo({\n label: labelProp,\n labelSuffix,\n required,\n })\n\n const setInternalRecord = useCallback((props: StateBasis) => {\n const { stateId, identifier, type } = props\n\n if (!stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = []\n }\n\n fieldStateIdsRef.current = { error: null, warning: null, info: null }\n\n const existingIndex = stateRecordRef.current[identifier].findIndex(\n (item) => {\n return item.stateId === stateId && item.type === type\n }\n )\n\n if (existingIndex > -1) {\n stateRecordRef.current[identifier][existingIndex] = {\n ...stateRecordRef.current[identifier][existingIndex],\n ...props,\n }\n } else {\n stateRecordRef.current[identifier].push(props)\n }\n }, [])\n\n const setBlockRecordNested = nestedFieldBlockContext?.setBlockRecord\n const setBlockRecord = useCallback(\n (props: StateBasis) => {\n if (setBlockRecordNested) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n setBlockRecordNested(props)\n return\n }\n\n setInternalRecord(props)\n\n forceUpdate()\n },\n [setBlockRecordNested, setInternalRecord]\n )\n\n const setFieldState = useCallback(\n (identifier: Identifier, fieldState: SubmitState) => {\n if (fieldState !== fieldStateRef.current) {\n fieldStateRef.current = fieldState\n\n forceUpdate()\n }\n },\n []\n )\n\n const showFieldError = useCallback(\n (identifier: Identifier, show: boolean) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.showFieldError(identifier, show)\n return\n }\n\n if (stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = stateRecordRef.current[\n identifier\n ].map((item) => {\n if (item.showInitially) {\n return item\n }\n\n return {\n ...item,\n show,\n }\n })\n\n forceUpdate()\n }\n },\n [nestedFieldBlockContext]\n )\n\n const statusContent = useMemo(() => {\n if (typeof error !== 'undefined' || (errorRef.current && !error)) {\n errorRef.current = error\n setInternalRecord({\n identifier: blockId,\n showInitially: hasInitiallyErrorPropRef.current,\n type: 'error',\n content: error,\n })\n }\n\n if (typeof warning !== 'undefined' || warningRef.current !== warning) {\n warningRef.current = warning\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'warning',\n content: warning,\n })\n }\n\n if (typeof info !== 'undefined' || infoRef.current !== info) {\n infoRef.current = info\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'info',\n content: info,\n })\n }\n\n const statesWithMessages: Array<StatesWithMessages> =\n // 1. Prepare the states for later use\n Object.entries(stateRecordRef.current)\n .flatMap(([identifier, states]) =>\n states.map((props) => {\n return {\n identifier,\n ...props,\n }\n })\n )\n\n // 2. Take states and group the same type together\n .reduce((acc, cur) => {\n const existing = acc.find((item) => {\n return item.type === cur.type\n })\n\n const messages = getMessagesFromError(cur).map((message) => {\n return {\n ...cur,\n message,\n }\n })\n\n if (existing) {\n existing.messages.push(...messages)\n } else {\n acc.push({\n ...cur,\n content: undefined,\n messages,\n })\n }\n\n return acc\n }, [] as Array<StatesWithMessages>)\n\n // 3. Return the grouped states/messages\n return states.reduce((acc, type) => {\n const id = `${props.id || forId || blockId}-form-status--${type}`\n acc[type] = {\n id,\n label,\n state: type === 'warning' ? 'warn' : type,\n width_element: contentsRef,\n\n // Enable animation only in the browser and not in tests\n no_animation:\n process.env.NODE_ENV === 'test'\n ? true\n : typeof globalThis !== 'undefined'\n ? globalThis.IS_TEST === true\n : false,\n }\n\n const found = statesWithMessages.find((item) => {\n return item.type === type\n })\n\n if (found?.messages) {\n // Hide/remove messages that should be hidden and are not marked as to be shown initially\n const messages = found.messages\n .map((msg) => {\n if (msg.type === 'error') {\n if (!msg.showInitially && !msg.show) {\n msg.message = null\n }\n }\n\n return msg\n })\n .filter(({ message }) => message)\n .reduce((acc, msg, i, arr) => {\n const existingIndex = arr.findIndex((item) => {\n return (\n convertJsxToString(item.message) ===\n convertJsxToString(msg.message)\n )\n })\n\n // Remove duplicates, use the first found message\n if (existingIndex === i) {\n acc.push(msg)\n }\n\n return acc\n }, [])\n\n // Combine the messages and put them in an ul/li list\n if (messages.length > 0) {\n acc[type] = {\n ...acc[type],\n children: <CombineMessages type={type} messages={messages} />,\n }\n\n fieldStateIdsRef.current[type] = id\n } else {\n fieldStateIdsRef.current[type] = undefined\n }\n }\n\n return acc\n }, salt) as StatusContent\n }, [\n error,\n warning,\n info,\n salt,\n setInternalRecord,\n blockId,\n props.id,\n forId,\n label,\n ])\n\n // Handle the error prop from outside\n useEffect(() => {\n if (!nestedFieldBlockContext) {\n showFieldError(blockId, Boolean(error))\n }\n }, [error, blockId, showFieldError, nestedFieldBlockContext])\n\n useEffect(\n () => () => {\n mountedFieldsRef.current = {}\n stateRecordRef.current = {}\n },\n []\n )\n\n const mainClasses = classnames(\n 'dnb-forms-field-block',\n width &&\n `dnb-forms-field-block--width-${hasCustomWidth ? 'custom' : width}`,\n contentWidth &&\n `dnb-forms-field-block--content-width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`,\n labelHeight && `dnb-forms-field-block--label-height-${labelHeight}`,\n composition && 'dnb-forms-field-block__composition',\n composition &&\n `dnb-forms-field-block__composition--${\n composition === true ? 'horizontal' : composition\n }`,\n className\n )\n const gridClasses = classnames(\n 'dnb-forms-field-block__grid',\n `dnb-forms-field-block--layout-${layout}`\n )\n\n // A child component with a label was found, use fieldset/legend instead of div/label\n const enableFieldset = useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n })\n\n const labelProps: FormLabelAllProps = {\n id: `${id}-label`,\n className: 'dnb-forms-field-block__label',\n element: enableFieldset ? 'legend' : 'label',\n forId: enableFieldset ? undefined : forId,\n srOnly: labelSrOnly,\n space: 0, // Use CSS for spacing, but we need to reset space for doing so\n size: labelSize,\n disabled,\n }\n\n const mainStyle = useMemo(() => {\n const style: React.CSSProperties = {}\n\n if (hasCustomWidth) {\n style['--dnb-forms-field-block-width'] = width\n }\n\n if (hasCustomContentWidth) {\n style['--dnb-forms-field-block-content-width'] = contentWidth\n }\n\n const lO = layoutOptions || {}\n const min = getFieldWidth(lO.minWidth ?? lO.width)\n const max = getFieldWidth(lO.maxWidth ?? lO.width)\n\n if (typeof min === 'string') {\n style['--dnb-forms-field-block-layout-width-min'] = min\n }\n if (typeof max === 'string') {\n style['--dnb-forms-field-block-layout-width-max'] = max\n }\n\n return style\n }, [\n contentWidth,\n hasCustomContentWidth,\n hasCustomWidth,\n layoutOptions,\n width,\n ])\n\n if (dataContext?.prerenderFieldProps) {\n return null\n }\n\n const hasLabelDescription = isFragment(labelDescription)\n ? fragmentHasChildren(labelDescription) &&\n !fragmentHasOnlyUndefinedChildren(labelDescription)\n : labelDescription\n const hasHelp = help?.title || help?.content\n\n return (\n <FieldBlockContext.Provider\n value={{\n setBlockRecord,\n setFieldState,\n showFieldError,\n hasErrorProp: Boolean(error),\n fieldStateIdsRef,\n mountedFieldsRef,\n composition,\n disableStatusSummary,\n }}\n >\n <Space\n element={enableFieldset ? 'fieldset' : 'div'} // use fieldset and legend to enhance a11y\n style={mainStyle}\n className={mainClasses}\n {...rest}\n >\n <div className={gridClasses}>\n {(label || labelDescription || hasHelp) && (\n <FormLabel {...labelProps}>\n <span>\n {label && (\n <span className=\"dnb-forms-field-block__label__content\">\n {label}\n </span>\n )}\n\n {hasHelp && (\n <HelpButtonInline contentId={`${id}-help`} help={help} />\n )}\n\n {hasLabelDescription && !labelDescriptionInline && <br />}\n {hasLabelDescription && (\n <span className=\"dnb-forms-field-block__label__description\">\n {labelDescription}\n </span>\n )}\n </span>\n </FormLabel>\n )}\n\n {hasHelp && (\n <HelpButtonInlineContent\n contentId={`${id}-help`}\n className=\"dnb-forms-field-block__help\"\n help={help}\n breakout={\n layout === 'vertical' &&\n !nestedFieldBlockContext?.composition\n }\n outset={layout !== 'horizontal'}\n />\n )}\n\n <div\n className={classnames(\n 'dnb-forms-field-block__status',\n\n // Handle the width of the status messages\n contentWidth &&\n contentWidth !== 'small' &&\n contentWidth !== 'medium' &&\n !(parseFloat(contentWidth) <= 11) &&\n `dnb-forms-field-block__contents--width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`\n )}\n >\n <FormStatus {...statusContent?.error} />\n <FormStatus {...statusContent?.warning} />\n <FormStatus {...statusContent?.info} />\n </div>\n\n <div\n className={classnames(\n 'dnb-forms-field-block__contents',\n contentWidth &&\n `dnb-forms-field-block__contents--width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`,\n align && `dnb-forms-field-block__contents--align-${align}`,\n contentClassName\n )}\n ref={contentsRef}\n >\n {children}\n </div>\n\n <SubmitIndicator\n state={fieldState ?? fieldStateRef.current}\n className=\"dnb-forms-field-block__indicator dnb-forms-submit-indicator--inline-wrap\"\n />\n </div>\n </Space>\n </FieldBlockContext.Provider>\n )\n}\n\nfunction useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n}) {\n return useMemo(() => {\n if (asFieldset === false) {\n return false\n }\n\n let result = asFieldset\n\n if (label && !result && !nestedFieldBlockContext) {\n let count = 0\n\n findElementInChildren(children, (child: React.ReactElement) => {\n if (\n child?.props?.label ||\n child?.type?.['_formElement'] === true\n ) {\n count++\n }\n if (count > 1) {\n return (result = true)\n }\n })\n }\n\n return Boolean(result)\n }, [asFieldset, children, label, nestedFieldBlockContext])\n}\n\nfunction CombineMessages({\n type,\n messages,\n}: {\n type: StateTypes\n messages: Array<StateWithMessage>\n}) {\n const translations = useTranslation().Field\n\n if (messages.length === 1) {\n return <>{messages[0].message}</>\n }\n\n return (\n <>\n {type === 'error'\n ? translations.errorSummary\n : translations.stateSummary}\n <Ul>\n {messages.map(({ message }, i) => {\n return <Li key={i}>{message}</Li>\n })}\n </Ul>\n </>\n )\n}\n\nexport function getMessagesFromError(\n item: Partial<StateWithMessage>\n): Array<StateMessage> {\n const { content } = item\n\n if (content instanceof FormError && Array.isArray(content.errors)) {\n return content.errors.map((error) => {\n return error.message\n })\n }\n\n if (Array.isArray(content)) {\n return content.map((content) => {\n return content instanceof FormError || content instanceof Error\n ? content.message\n : content\n })\n }\n\n if (content instanceof FormError || content instanceof Error) {\n return [content.message as StateMessage]\n }\n\n return [\n ((React.isValidElement(content) ? content : content?.toString()) ||\n content) as StateMessage,\n ]\n}\n\nfunction isFragment(fragment: React.ReactNode) {\n return React.isValidElement(fragment) && fragment.type === React.Fragment\n}\n\nfunction fragmentHasChildren(fragment: React.ReactNode) {\n return (\n React.isValidElement(fragment) &&\n React.Children.count(fragment.props.children) > 0\n )\n}\n\nfunction fragmentHasOnlyUndefinedChildren(fragment: React.ReactNode) {\n const isUndefined = (child) => child === undefined\n\n return (\n React.isValidElement(fragment) &&\n React.Children.toArray(fragment.props.children).every(isUndefined)\n )\n}\n\nFieldBlock._supportsSpacingProps = true\n\nexport default FieldBlock\n\nfunction getFieldWidth(width: FieldBlockHorizontalLabelWidth) {\n switch (width) {\n case 'small':\n return 'var(--forms-field-width--small)'\n case 'medium':\n return 'var(--forms-field-width--medium)'\n case 'large':\n return 'var(--forms-field-width--large)'\n }\n\n return width\n}\n"],"mappings":"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","ignoreList":[]}