@dnb/eufemia 10.73.0 → 10.73.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/cjs/components/autocomplete/Autocomplete.d.ts +4 -0
  3. package/cjs/components/autocomplete/AutocompleteDocs.js +5 -0
  4. package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -1
  5. package/cjs/components/modal/ModalDocs.js +3 -3
  6. package/cjs/components/modal/ModalDocs.js.map +1 -1
  7. package/cjs/components/upload/UploadFileList.js +7 -4
  8. package/cjs/components/upload/UploadFileList.js.map +1 -1
  9. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +9 -5
  10. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  11. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  12. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +1 -0
  13. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  14. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrency.js +1 -0
  15. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrency.js.map +1 -1
  16. package/cjs/extensions/forms/Field/Selection/Selection.js +2 -1
  17. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  18. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +8 -4
  19. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  20. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +8 -0
  21. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  22. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +9 -0
  23. package/cjs/extensions/forms/Form/Section/style/dnb-form-section.css +1 -1
  24. package/cjs/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
  25. package/cjs/extensions/forms/Form/Section/style/dnb-form-section.scss +1 -1
  26. package/cjs/extensions/forms/Value/SelectCountry/useCountry.d.ts +1 -1
  27. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +12 -8
  28. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  29. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +11 -6
  30. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  31. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +8 -4
  32. package/cjs/extensions/forms/style/dnb-forms.css +19 -7
  33. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  34. package/cjs/shared/Eufemia.d.ts +1 -1
  35. package/cjs/shared/Eufemia.js +2 -2
  36. package/cjs/shared/Eufemia.js.map +1 -1
  37. package/cjs/style/core/scopes.scss +1 -1
  38. package/cjs/style/dnb-ui-basis.css +1 -1
  39. package/cjs/style/dnb-ui-basis.min.css +1 -1
  40. package/cjs/style/dnb-ui-body.css +1 -1
  41. package/cjs/style/dnb-ui-body.min.css +1 -1
  42. package/cjs/style/dnb-ui-components.css +18 -7
  43. package/cjs/style/dnb-ui-components.min.css +1 -1
  44. package/cjs/style/dnb-ui-core.css +1 -1
  45. package/cjs/style/dnb-ui-core.min.css +1 -1
  46. package/cjs/style/dnb-ui-extensions.css +19 -7
  47. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  48. package/cjs/style/dnb-ui-forms.css +19 -7
  49. package/cjs/style/dnb-ui-forms.min.css +1 -1
  50. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +36 -14
  51. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  52. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +19 -7
  53. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  54. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +19 -7
  55. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  56. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +36 -14
  57. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  58. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +19 -7
  59. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  60. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +19 -7
  61. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  62. package/cjs/style/themes/theme-ui/ui-theme-components.css +36 -14
  63. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  64. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +19 -7
  65. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  66. package/cjs/style/themes/theme-ui/ui-theme-forms.css +19 -7
  67. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  68. package/components/autocomplete/Autocomplete.d.ts +4 -0
  69. package/components/autocomplete/AutocompleteDocs.js +5 -0
  70. package/components/autocomplete/AutocompleteDocs.js.map +1 -1
  71. package/components/modal/ModalDocs.js +3 -3
  72. package/components/modal/ModalDocs.js.map +1 -1
  73. package/components/upload/UploadFileList.js +7 -4
  74. package/components/upload/UploadFileList.js.map +1 -1
  75. package/es/components/autocomplete/Autocomplete.d.ts +4 -0
  76. package/es/components/autocomplete/AutocompleteDocs.js +5 -0
  77. package/es/components/autocomplete/AutocompleteDocs.js.map +1 -1
  78. package/es/components/modal/ModalDocs.js +3 -3
  79. package/es/components/modal/ModalDocs.js.map +1 -1
  80. package/es/components/upload/UploadFileList.js +7 -4
  81. package/es/components/upload/UploadFileList.js.map +1 -1
  82. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +9 -5
  83. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  84. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  85. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +1 -0
  86. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  87. package/es/extensions/forms/Field/SelectCurrency/SelectCurrency.js +1 -0
  88. package/es/extensions/forms/Field/SelectCurrency/SelectCurrency.js.map +1 -1
  89. package/es/extensions/forms/Field/Selection/Selection.js +2 -1
  90. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  91. package/es/extensions/forms/FieldBlock/FieldBlock.js +8 -4
  92. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  93. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +8 -0
  94. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  95. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +9 -0
  96. package/es/extensions/forms/Form/Section/style/dnb-form-section.css +1 -1
  97. package/es/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
  98. package/es/extensions/forms/Form/Section/style/dnb-form-section.scss +1 -1
  99. package/es/extensions/forms/Value/SelectCountry/useCountry.d.ts +1 -1
  100. package/es/extensions/forms/ValueBlock/ValueBlock.js +12 -8
  101. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  102. package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +11 -6
  103. package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  104. package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +8 -4
  105. package/es/extensions/forms/style/dnb-forms.css +19 -7
  106. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  107. package/es/shared/Eufemia.d.ts +1 -1
  108. package/es/shared/Eufemia.js +2 -2
  109. package/es/shared/Eufemia.js.map +1 -1
  110. package/es/style/core/scopes.scss +1 -1
  111. package/es/style/dnb-ui-basis.css +1 -1
  112. package/es/style/dnb-ui-basis.min.css +1 -1
  113. package/es/style/dnb-ui-body.css +1 -1
  114. package/es/style/dnb-ui-body.min.css +1 -1
  115. package/es/style/dnb-ui-components.css +18 -7
  116. package/es/style/dnb-ui-components.min.css +1 -1
  117. package/es/style/dnb-ui-core.css +1 -1
  118. package/es/style/dnb-ui-core.min.css +1 -1
  119. package/es/style/dnb-ui-extensions.css +19 -7
  120. package/es/style/dnb-ui-extensions.min.css +1 -1
  121. package/es/style/dnb-ui-forms.css +19 -7
  122. package/es/style/dnb-ui-forms.min.css +1 -1
  123. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +36 -14
  124. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  125. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +19 -7
  126. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  127. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +19 -7
  128. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  129. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +36 -14
  130. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  131. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +19 -7
  132. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  133. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +19 -7
  134. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  135. package/es/style/themes/theme-ui/ui-theme-components.css +36 -14
  136. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  137. package/es/style/themes/theme-ui/ui-theme-extensions.css +19 -7
  138. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  139. package/es/style/themes/theme-ui/ui-theme-forms.css +19 -7
  140. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  141. package/esm/dnb-ui-basis.min.mjs +1 -1
  142. package/esm/dnb-ui-components.min.mjs +1 -1
  143. package/esm/dnb-ui-elements.min.mjs +1 -1
  144. package/esm/dnb-ui-extensions.min.mjs +1 -1
  145. package/esm/dnb-ui-lib.min.mjs +1 -1
  146. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +9 -5
  147. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  148. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  149. package/extensions/forms/Field/SelectCountry/SelectCountry.js +1 -0
  150. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  151. package/extensions/forms/Field/SelectCurrency/SelectCurrency.js +1 -0
  152. package/extensions/forms/Field/SelectCurrency/SelectCurrency.js.map +1 -1
  153. package/extensions/forms/Field/Selection/Selection.js +2 -1
  154. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  155. package/extensions/forms/FieldBlock/FieldBlock.js +8 -4
  156. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  157. package/extensions/forms/FieldBlock/style/dnb-field-block.css +8 -0
  158. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  159. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +9 -0
  160. package/extensions/forms/Form/Section/style/dnb-form-section.css +1 -1
  161. package/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -1
  162. package/extensions/forms/Form/Section/style/dnb-form-section.scss +1 -1
  163. package/extensions/forms/Value/SelectCountry/useCountry.d.ts +1 -1
  164. package/extensions/forms/ValueBlock/ValueBlock.js +12 -8
  165. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  166. package/extensions/forms/ValueBlock/style/dnb-value-block.css +11 -6
  167. package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  168. package/extensions/forms/ValueBlock/style/dnb-value-block.scss +8 -4
  169. package/extensions/forms/style/dnb-forms.css +19 -7
  170. package/extensions/forms/style/dnb-forms.min.css +1 -1
  171. package/package.json +1 -1
  172. package/shared/Eufemia.d.ts +1 -1
  173. package/shared/Eufemia.js +2 -2
  174. package/shared/Eufemia.js.map +1 -1
  175. package/style/core/scopes.scss +1 -1
  176. package/style/dnb-ui-basis.css +1 -1
  177. package/style/dnb-ui-basis.min.css +1 -1
  178. package/style/dnb-ui-body.css +1 -1
  179. package/style/dnb-ui-body.min.css +1 -1
  180. package/style/dnb-ui-components.css +18 -7
  181. package/style/dnb-ui-components.min.css +1 -1
  182. package/style/dnb-ui-core.css +1 -1
  183. package/style/dnb-ui-core.min.css +1 -1
  184. package/style/dnb-ui-extensions.css +19 -7
  185. package/style/dnb-ui-extensions.min.css +1 -1
  186. package/style/dnb-ui-forms.css +19 -7
  187. package/style/dnb-ui-forms.min.css +1 -1
  188. package/style/themes/theme-eiendom/eiendom-theme-components.css +36 -14
  189. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  190. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +19 -7
  191. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  192. package/style/themes/theme-eiendom/eiendom-theme-forms.css +19 -7
  193. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  194. package/style/themes/theme-sbanken/sbanken-theme-components.css +36 -14
  195. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  196. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +19 -7
  197. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  198. package/style/themes/theme-sbanken/sbanken-theme-forms.css +19 -7
  199. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  200. package/style/themes/theme-ui/ui-theme-components.css +36 -14
  201. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  202. package/style/themes/theme-ui/ui-theme-extensions.css +19 -7
  203. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  204. package/style/themes/theme-ui/ui-theme-forms.css +19 -7
  205. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  206. package/umd/dnb-ui-basis.min.js +1 -1
  207. package/umd/dnb-ui-components.min.js +1 -1
  208. package/umd/dnb-ui-elements.min.js +1 -1
  209. package/umd/dnb-ui-extensions.min.js +1 -1
  210. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SelectCountry.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_Context","_FieldBlockContext","_defaults","_components","_utils","_countries","_hooks","_FieldBlock","_useTranslation","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","SelectCountry","props","_props$width","sharedContext","useContext","SharedContext","fieldBlockContext","FieldBlockContext","label","defaultLabel","placeholder","defaultPlaceholder","errorRequired","useTranslation","lang","locale","LOCALE","split","getCountryObjectByIso","useCallback","country","countries","find","_ref","iso","i18n","provideAdditionalArgs","errorMessages","useMemo","required","preparedProps","width","composition","id","path","itemPath","className","ccFilter","hasError","disabled","size","noAnimation","autoComplete","htmlAttributes","handleFocus","handleBlur","handleChange","updateValue","setDisplayValue","forceUpdate","filterCountries","useFieldProps","dataRef","useRef","langRef","wasFilled","countryFilter","isLangChange","current","getCountryData","sort","window","requestAnimationFrame","handleCountryChange","_ref2","data","newValue","selectedKey","fillData","onFocusHandler","_ref3","updateData","onTypeHandler","_ref4","_event$nativeEvent","currentValue","setHidden","event","nativeEvent","search","toLowerCase","_ref5","values","some","s","includes","_getCountryObjectByIs","_getCountryObjectByIs2","fieldBlockProps","forId","classnames","undefined","contentWidth","pickSpacingProps","createElement","Autocomplete","input_icon","on_show","on_focus","on_blur","on_change","on_type","stretch","status","show_submit_button","keep_selection","no_animation","makeObject","_country$i18n$lang","content","en","sortedCountries","_ref6","_ref7","_String","_String$localeCompare","b","indexA","prioritizedCountries","indexOf","indexB","priorityA","priorityB","localeCompare","map","result","_country$regions","regions","continent","makeCountryFilterSet","_country$regions2","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/SelectCountry/SelectCountry.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport { LOCALE } from '../../../../shared/defaults'\nimport { Autocomplete } from '../../../../components'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport countries, {\n prioritizedCountries,\n type CountryType,\n type CountryLang,\n type CountryISO,\n} from '../../constants/countries'\nimport { useFieldProps } from '../../hooks'\nimport { FieldPropsWithExtraValue } from '../../types'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport useTranslation from '../../hooks/useTranslation'\nimport { AutocompleteAllProps } from '../../../../components/autocomplete/Autocomplete'\n\nexport type CountryFilterSet =\n | 'Scandinavia'\n | 'Nordic'\n | 'Europe'\n | 'Prioritized'\nexport type { CountryType }\n\nexport type Props = FieldPropsWithExtraValue<\n CountryISO,\n CountryType,\n undefined | string\n> & {\n /**\n * Lists only the countries you want to show. Can be `Scandinavia`, `Nordic`, `Europe` or `Prioritized`.\n * Defaults to `Prioritized`.\n */\n countries?: CountryFilterSet\n\n /**\n * Use this prop to filter out certain countries. The function receives the country object and should return a boolean. Returning `false` will omit the country.\n */\n filterCountries?: (country: CountryType) => boolean\n\n /**\n * For internal testing purposes\n */\n noAnimation?: boolean\n\n /**\n * The width of the component.\n */\n width?: FieldBlockWidth\n\n /**\n * The size of the component.\n */\n size?: AutocompleteAllProps['size']\n}\n\nfunction SelectCountry(props: Props) {\n const sharedContext = useContext(SharedContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const {\n label: defaultLabel,\n placeholder: defaultPlaceholder,\n errorRequired,\n } = useTranslation().SelectCountry\n const lang = (sharedContext.locale || LOCALE).split(\n '-'\n )[0] as CountryLang\n\n const getCountryObjectByIso = useCallback(\n (value: CountryType['iso']) => {\n const country = countries.find(({ iso }) => value === iso)\n if (country?.i18n) {\n country['name'] = country.i18n[lang]\n }\n return country\n },\n [lang]\n )\n\n const provideAdditionalArgs = useCallback(\n (value: CountryType['iso']) => {\n const country = getCountryObjectByIso(value)\n\n if (country?.iso) {\n return country\n }\n },\n [getCountryObjectByIso]\n )\n\n const errorMessages = useMemo(\n () => ({\n required: errorRequired,\n }),\n [errorRequired]\n )\n\n const preparedProps: Props = {\n errorMessages,\n ...props,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'large'),\n provideAdditionalArgs,\n }\n\n const {\n id,\n path,\n itemPath,\n className,\n placeholder = defaultPlaceholder,\n label = defaultLabel,\n countries: ccFilter = 'Prioritized',\n hasError,\n disabled,\n size,\n value,\n width,\n noAnimation,\n autoComplete,\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n setDisplayValue,\n forceUpdate,\n filterCountries,\n } = useFieldProps(preparedProps)\n\n const dataRef = useRef(null)\n const langRef = useRef(lang)\n const wasFilled = useRef(false)\n\n const filter = useCallback(\n (country: CountryType) => {\n return countryFilter(country, filterCountries, ccFilter)\n },\n [ccFilter, filterCountries]\n )\n\n /**\n * We do not process the whole country list at the first render.\n * Only when the Autocomplete opens (focus).\n * To achieve this, we use memo instead of effect to update refs in sync.\n *\n * We set or update the data list depending on if the countrycode changes or lang changes.\n * We then update data set when value changes.\n */\n useMemo(() => {\n const isLangChange = lang !== langRef.current\n\n if (isLangChange || !wasFilled.current) {\n langRef.current = lang\n dataRef.current = getCountryData({\n lang,\n filter: !wasFilled.current\n ? (country) => country.iso === value\n : filter,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n })\n\n // To force Autocomplete to re-evaluate the internal data\n if (isLangChange && value && typeof window !== 'undefined') {\n updateValue(null)\n window.requestAnimationFrame(() => {\n updateValue(value)\n })\n }\n }\n }, [lang, filter, ccFilter, updateValue, value])\n\n const handleCountryChange = useCallback(\n ({ data }: { data: { selectedKey: string } }) => {\n const newValue = data?.selectedKey\n const country = getCountryObjectByIso(newValue)\n if (country?.iso) {\n handleChange(country.iso, country)\n }\n },\n [getCountryObjectByIso, handleChange]\n )\n\n const fillData = useCallback(() => {\n if (!wasFilled.current) {\n wasFilled.current = true\n dataRef.current = getCountryData({\n lang: langRef.current,\n filter,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n })\n forceUpdate()\n }\n }, [ccFilter, filter, forceUpdate])\n\n const onFocusHandler = useCallback(\n ({ updateData }) => {\n fillData()\n updateData(dataRef.current)\n handleFocus()\n },\n [fillData, handleFocus]\n )\n\n const onTypeHandler = useCallback(\n ({ value: currentValue, setHidden, event }) => {\n // Handle browser autofill/autocomplete\n if (typeof event?.nativeEvent?.data === 'undefined') {\n const search = currentValue.toLowerCase()\n const country = countries.find(({ i18n }) =>\n Object.values(i18n).some((s) => s.toLowerCase().includes(search))\n )\n if (country?.iso) {\n setHidden()\n handleChange(country.iso)\n }\n }\n },\n [handleChange]\n )\n\n useMemo(() => {\n if (path || itemPath) {\n setDisplayValue(\n getCountryObjectByIso(value)?.i18n?.[langRef.current]\n )\n }\n }, [getCountryObjectByIso, itemPath, path, setDisplayValue, value])\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: classnames('dnb-forms-field-select-country', className),\n label,\n width:\n width === 'stretch' || fieldBlockContext?.composition\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Autocomplete\n id={id}\n placeholder={placeholder}\n input_icon={false}\n data={dataRef.current}\n value={typeof value === 'string' ? value : null}\n disabled={disabled}\n size={size}\n on_show={fillData}\n on_focus={onFocusHandler}\n on_blur={handleBlur}\n on_change={handleCountryChange}\n on_type={onTypeHandler}\n stretch\n status={hasError ? 'error' : undefined}\n show_submit_button\n keep_selection\n autoComplete={autoComplete ?? 'country-name'}\n no_animation={noAnimation}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n}\n\ntype GetCountryData = {\n lang?: CountryLang\n filter?: Props['filterCountries']\n sort?: Extract<CountryFilterSet, 'Prioritized'>\n makeObject?: (\n country: CountryType,\n lang: string\n ) => {\n selectedKey: string\n content: string\n }\n}\n\nexport function getCountryData({\n lang = 'nb',\n filter = null,\n sort = null,\n makeObject = (country: CountryType, lang: string) => {\n const content = country.i18n[lang] ?? country.i18n.en\n return {\n selectedKey: country.iso,\n content,\n }\n },\n}: GetCountryData = {}) {\n const sortedCountries = countries\n .filter((country) => {\n if (typeof filter === 'function') {\n return filter(country)\n }\n\n return !filter\n })\n .sort(({ i18n: a }, { i18n: b }) => {\n if (sort === 'Prioritized') {\n const indexA = prioritizedCountries.indexOf(a['en'])\n const indexB = prioritizedCountries.indexOf(b['en'])\n\n const priorityA = indexA !== -1\n const priorityB = indexB !== -1\n\n if (priorityA && priorityB) {\n return indexA - indexB\n } else if (priorityA) {\n return -1\n } else if (priorityB) {\n return 1\n }\n }\n\n return String(a[lang])?.localeCompare?.(b[lang], 'nb') // Always sort by nb, because åøæ (for Åland) is not in the en alphabet\n })\n .map((country) => makeObject(country, lang))\n\n if (sortedCountries.length === 0) {\n return undefined\n }\n\n return sortedCountries\n}\n\nexport function countryFilter(\n country: CountryType,\n filterCountries: (country: CountryType) => boolean,\n ccFilter: CountryFilterSet\n) {\n let result = true\n\n if (ccFilter !== 'Prioritized') {\n switch (ccFilter) {\n case 'Scandinavia':\n case 'Nordic': {\n result = country.regions?.includes(ccFilter)\n break\n }\n case 'Europe': {\n result = country.continent.includes(ccFilter)\n break\n }\n }\n }\n\n if (result && filterCountries) {\n result = filterCountries(country)\n }\n\n return result\n}\n\nexport function makeCountryFilterSet(ccFilter: CountryFilterSet) {\n return (country: CountryType) => {\n switch (ccFilter) {\n case 'Scandinavia':\n case 'Nordic':\n return country.regions?.includes(ccFilter)\n case 'Europe':\n return country.continent.includes(ccFilter)\n }\n return true\n }\n}\n\nSelectCountry._supportsSpacingProps = true\nexport default SelectCountry\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SelectCountry.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_Context","_FieldBlockContext","_defaults","_components","_utils","_countries","_hooks","_FieldBlock","_useTranslation","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","SelectCountry","props","_props$width","sharedContext","useContext","SharedContext","fieldBlockContext","FieldBlockContext","label","defaultLabel","placeholder","defaultPlaceholder","errorRequired","useTranslation","lang","locale","LOCALE","split","getCountryObjectByIso","useCallback","country","countries","find","_ref","iso","i18n","provideAdditionalArgs","errorMessages","useMemo","required","preparedProps","width","composition","id","path","itemPath","className","ccFilter","hasError","disabled","size","noAnimation","autoComplete","htmlAttributes","handleFocus","handleBlur","handleChange","updateValue","setDisplayValue","forceUpdate","filterCountries","useFieldProps","dataRef","useRef","langRef","wasFilled","countryFilter","isLangChange","current","getCountryData","sort","window","requestAnimationFrame","handleCountryChange","_ref2","data","newValue","selectedKey","fillData","onFocusHandler","_ref3","updateData","onTypeHandler","_ref4","_event$nativeEvent","currentValue","setHidden","event","nativeEvent","search","toLowerCase","_ref5","values","some","s","includes","_getCountryObjectByIs","_getCountryObjectByIs2","fieldBlockProps","forId","classnames","undefined","contentWidth","pickSpacingProps","createElement","Autocomplete","input_icon","on_show","on_focus","on_blur","on_change","on_type","stretch","selectall","status","show_submit_button","keep_selection","no_animation","makeObject","_country$i18n$lang","content","en","sortedCountries","_ref6","_ref7","_String","_String$localeCompare","b","indexA","prioritizedCountries","indexOf","indexB","priorityA","priorityB","localeCompare","map","result","_country$regions","regions","continent","makeCountryFilterSet","_country$regions2","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/SelectCountry/SelectCountry.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport { LOCALE } from '../../../../shared/defaults'\nimport { Autocomplete } from '../../../../components'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport countries, {\n prioritizedCountries,\n type CountryType,\n type CountryLang,\n type CountryISO,\n} from '../../constants/countries'\nimport { useFieldProps } from '../../hooks'\nimport { FieldPropsWithExtraValue } from '../../types'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport useTranslation from '../../hooks/useTranslation'\nimport { AutocompleteAllProps } from '../../../../components/autocomplete/Autocomplete'\n\nexport type CountryFilterSet =\n | 'Scandinavia'\n | 'Nordic'\n | 'Europe'\n | 'Prioritized'\nexport type { CountryType }\n\nexport type Props = FieldPropsWithExtraValue<\n CountryISO,\n CountryType,\n undefined | string\n> & {\n /**\n * Lists only the countries you want to show. Can be `Scandinavia`, `Nordic`, `Europe` or `Prioritized`.\n * Defaults to `Prioritized`.\n */\n countries?: CountryFilterSet\n\n /**\n * Use this prop to filter out certain countries. The function receives the country object and should return a boolean. Returning `false` will omit the country.\n */\n filterCountries?: (country: CountryType) => boolean\n\n /**\n * For internal testing purposes\n */\n noAnimation?: boolean\n\n /**\n * The width of the component.\n */\n width?: FieldBlockWidth\n\n /**\n * The size of the component.\n */\n size?: AutocompleteAllProps['size']\n}\n\nfunction SelectCountry(props: Props) {\n const sharedContext = useContext(SharedContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const {\n label: defaultLabel,\n placeholder: defaultPlaceholder,\n errorRequired,\n } = useTranslation().SelectCountry\n const lang = (sharedContext.locale || LOCALE).split(\n '-'\n )[0] as CountryLang\n\n const getCountryObjectByIso = useCallback(\n (value: CountryType['iso']) => {\n const country = countries.find(({ iso }) => value === iso)\n if (country?.i18n) {\n country['name'] = country.i18n[lang]\n }\n return country\n },\n [lang]\n )\n\n const provideAdditionalArgs = useCallback(\n (value: CountryType['iso']) => {\n const country = getCountryObjectByIso(value)\n\n if (country?.iso) {\n return country\n }\n },\n [getCountryObjectByIso]\n )\n\n const errorMessages = useMemo(\n () => ({\n required: errorRequired,\n }),\n [errorRequired]\n )\n\n const preparedProps: Props = {\n errorMessages,\n ...props,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'large'),\n provideAdditionalArgs,\n }\n\n const {\n id,\n path,\n itemPath,\n className,\n placeholder = defaultPlaceholder,\n label = defaultLabel,\n countries: ccFilter = 'Prioritized',\n hasError,\n disabled,\n size,\n value,\n width,\n noAnimation,\n autoComplete,\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n setDisplayValue,\n forceUpdate,\n filterCountries,\n } = useFieldProps(preparedProps)\n\n const dataRef = useRef(null)\n const langRef = useRef(lang)\n const wasFilled = useRef(false)\n\n const filter = useCallback(\n (country: CountryType) => {\n return countryFilter(country, filterCountries, ccFilter)\n },\n [ccFilter, filterCountries]\n )\n\n /**\n * We do not process the whole country list at the first render.\n * Only when the Autocomplete opens (focus).\n * To achieve this, we use memo instead of effect to update refs in sync.\n *\n * We set or update the data list depending on if the countrycode changes or lang changes.\n * We then update data set when value changes.\n */\n useMemo(() => {\n const isLangChange = lang !== langRef.current\n\n if (isLangChange || !wasFilled.current) {\n langRef.current = lang\n dataRef.current = getCountryData({\n lang,\n filter: !wasFilled.current\n ? (country) => country.iso === value\n : filter,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n })\n\n // To force Autocomplete to re-evaluate the internal data\n if (isLangChange && value && typeof window !== 'undefined') {\n updateValue(null)\n window.requestAnimationFrame(() => {\n updateValue(value)\n })\n }\n }\n }, [lang, filter, ccFilter, updateValue, value])\n\n const handleCountryChange = useCallback(\n ({ data }: { data: { selectedKey: string } }) => {\n const newValue = data?.selectedKey\n const country = getCountryObjectByIso(newValue)\n if (country?.iso) {\n handleChange(country.iso, country)\n }\n },\n [getCountryObjectByIso, handleChange]\n )\n\n const fillData = useCallback(() => {\n if (!wasFilled.current) {\n wasFilled.current = true\n dataRef.current = getCountryData({\n lang: langRef.current,\n filter,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n })\n forceUpdate()\n }\n }, [ccFilter, filter, forceUpdate])\n\n const onFocusHandler = useCallback(\n ({ updateData }) => {\n fillData()\n updateData(dataRef.current)\n handleFocus()\n },\n [fillData, handleFocus]\n )\n\n const onTypeHandler = useCallback(\n ({ value: currentValue, setHidden, event }) => {\n // Handle browser autofill/autocomplete\n if (typeof event?.nativeEvent?.data === 'undefined') {\n const search = currentValue.toLowerCase()\n const country = countries.find(({ i18n }) =>\n Object.values(i18n).some((s) => s.toLowerCase().includes(search))\n )\n if (country?.iso) {\n setHidden()\n handleChange(country.iso)\n }\n }\n },\n [handleChange]\n )\n\n useMemo(() => {\n if (path || itemPath) {\n setDisplayValue(\n getCountryObjectByIso(value)?.i18n?.[langRef.current]\n )\n }\n }, [getCountryObjectByIso, itemPath, path, setDisplayValue, value])\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: classnames('dnb-forms-field-select-country', className),\n label,\n width:\n width === 'stretch' || fieldBlockContext?.composition\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Autocomplete\n id={id}\n placeholder={placeholder}\n input_icon={false}\n data={dataRef.current}\n value={typeof value === 'string' ? value : null}\n disabled={disabled}\n size={size}\n on_show={fillData}\n on_focus={onFocusHandler}\n on_blur={handleBlur}\n on_change={handleCountryChange}\n on_type={onTypeHandler}\n stretch\n selectall\n status={hasError ? 'error' : undefined}\n show_submit_button\n keep_selection\n autoComplete={autoComplete ?? 'country-name'}\n no_animation={noAnimation}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n}\n\ntype GetCountryData = {\n lang?: CountryLang\n filter?: Props['filterCountries']\n sort?: Extract<CountryFilterSet, 'Prioritized'>\n makeObject?: (\n country: CountryType,\n lang: string\n ) => {\n selectedKey: string\n content: string | Array<string>\n }\n}\n\nexport function getCountryData({\n lang = 'nb',\n filter = null,\n sort = null,\n makeObject = (country: CountryType, lang: string) => {\n const content = country.i18n[lang] ?? country.i18n.en\n return {\n selectedKey: country.iso,\n content,\n }\n },\n}: GetCountryData = {}) {\n const sortedCountries = countries\n .filter((country) => {\n if (typeof filter === 'function') {\n return filter(country)\n }\n\n return !filter\n })\n .sort(({ i18n: a }, { i18n: b }) => {\n if (sort === 'Prioritized') {\n const indexA = prioritizedCountries.indexOf(a['en'])\n const indexB = prioritizedCountries.indexOf(b['en'])\n\n const priorityA = indexA !== -1\n const priorityB = indexB !== -1\n\n if (priorityA && priorityB) {\n return indexA - indexB\n } else if (priorityA) {\n return -1\n } else if (priorityB) {\n return 1\n }\n }\n\n return String(a[lang])?.localeCompare?.(b[lang], 'nb') // Always sort by nb, because åøæ (for Åland) is not in the en alphabet\n })\n .map((country) => makeObject(country, lang))\n\n if (sortedCountries.length === 0) {\n return undefined\n }\n\n return sortedCountries\n}\n\nexport function countryFilter(\n country: CountryType,\n filterCountries: (country: CountryType) => boolean,\n ccFilter: CountryFilterSet\n) {\n let result = true\n\n if (ccFilter !== 'Prioritized') {\n switch (ccFilter) {\n case 'Scandinavia':\n case 'Nordic': {\n result = country.regions?.includes(ccFilter)\n break\n }\n case 'Europe': {\n result = country.continent.includes(ccFilter)\n break\n }\n }\n }\n\n if (result && filterCountries) {\n result = filterCountries(country)\n }\n\n return result\n}\n\nexport function makeCountryFilterSet(ccFilter: CountryFilterSet) {\n return (country: CountryType) => {\n switch (ccFilter) {\n case 'Scandinavia':\n case 'Nordic':\n return country.regions?.includes(ccFilter)\n case 'Europe':\n return country.continent.includes(ccFilter)\n }\n return true\n }\n}\n\nSelectCountry._supportsSpacingProps = true\nexport default SelectCountry\n"],"mappings":"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","ignoreList":[]}
@@ -190,6 +190,7 @@ function SelectCurrency(props) {
190
190
  on_change: handleCurrencyChange,
191
191
  on_type: onTypeHandler,
192
192
  stretch: true,
193
+ selectall: true,
193
194
  status: hasError ? 'error' : undefined,
194
195
  show_submit_button: true,
195
196
  keep_selection: true,
@@ -1 +1 @@
1
- {"version":3,"file":"SelectCurrency.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_Context","_FieldBlockContext","_defaults","_components","_utils","_currencies","_hooks","_FieldBlock","_useTranslation","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","SelectCurrency","props","_props$width","sharedContext","useContext","SharedContext","fieldBlockContext","FieldBlockContext","label","defaultLabel","placeholder","defaultPlaceholder","errorRequired","useTranslation","lang","locale","LOCALE","split","getCurrencyObjectByIso","useCallback","currency","currencies","find","_ref","iso","i18n","provideAdditionalArgs","errorMessages","useMemo","required","preparedProps","width","composition","id","path","itemPath","className","ccFilter","hasError","disabled","size","noAnimation","autoComplete","htmlAttributes","handleFocus","handleBlur","handleChange","updateValue","setDisplayValue","forceUpdate","filterCurrencies","useFieldProps","dataRef","useRef","langRef","wasFilled","currencyFilter","isLangChange","current","getCurrencyData","sort","window","requestAnimationFrame","handleCurrencyChange","_ref2","data","newValue","selectedKey","fillData","onFocusHandler","_ref3","updateData","onTypeHandler","_ref4","_event$nativeEvent","currentValue","setHidden","event","nativeEvent","search","toLowerCase","_ref5","values","some","s","includes","_getCurrencyObjectByI","_getCurrencyObjectByI2","fieldBlockProps","forId","classnames","undefined","contentWidth","pickSpacingProps","createElement","Autocomplete","input_icon","on_show","on_focus","on_blur","on_change","on_type","stretch","status","show_submit_button","keep_selection","no_animation","makeObject","_currency$i18n$lang","translation","en","content","selected_value","sortedCurrencies","_ref6","_ref7","_String","_String$localeCompare","a1","b","b1","indexA","prioritizedCurrencies","indexOf","indexB","priorityA","priorityB","localeCompare","map","result","_currency$regions","regions","continent","makeCurrencyFilterSet","_currency$regions2","_supportsSpacingProps","_default","exports"],"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":[]}
1
+ {"version":3,"file":"SelectCurrency.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_Context","_FieldBlockContext","_defaults","_components","_utils","_currencies","_hooks","_FieldBlock","_useTranslation","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","SelectCurrency","props","_props$width","sharedContext","useContext","SharedContext","fieldBlockContext","FieldBlockContext","label","defaultLabel","placeholder","defaultPlaceholder","errorRequired","useTranslation","lang","locale","LOCALE","split","getCurrencyObjectByIso","useCallback","currency","currencies","find","_ref","iso","i18n","provideAdditionalArgs","errorMessages","useMemo","required","preparedProps","width","composition","id","path","itemPath","className","ccFilter","hasError","disabled","size","noAnimation","autoComplete","htmlAttributes","handleFocus","handleBlur","handleChange","updateValue","setDisplayValue","forceUpdate","filterCurrencies","useFieldProps","dataRef","useRef","langRef","wasFilled","currencyFilter","isLangChange","current","getCurrencyData","sort","window","requestAnimationFrame","handleCurrencyChange","_ref2","data","newValue","selectedKey","fillData","onFocusHandler","_ref3","updateData","onTypeHandler","_ref4","_event$nativeEvent","currentValue","setHidden","event","nativeEvent","search","toLowerCase","_ref5","values","some","s","includes","_getCurrencyObjectByI","_getCurrencyObjectByI2","fieldBlockProps","forId","classnames","undefined","contentWidth","pickSpacingProps","createElement","Autocomplete","input_icon","on_show","on_focus","on_blur","on_change","on_type","stretch","selectall","status","show_submit_button","keep_selection","no_animation","makeObject","_currency$i18n$lang","translation","en","content","selected_value","sortedCurrencies","_ref6","_ref7","_String","_String$localeCompare","a1","b","b1","indexA","prioritizedCurrencies","indexOf","indexB","priorityA","priorityB","localeCompare","map","result","_currency$regions","regions","continent","makeCurrencyFilterSet","_currency$regions2","_supportsSpacingProps","_default","exports"],"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 selectall\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":[]}
@@ -193,7 +193,8 @@ function Selection(props) {
193
193
  return _react.default.createElement(_FieldBlock.default, _extends({}, fieldBlockProps, specificFieldBlockProps), variant === 'autocomplete' ? _react.default.createElement(_components.Autocomplete, _extends({}, sharedProps, autocompleteProps ? (0, _withCamelCaseProps.convertCamelCasePropsToSnakeCase)(Object.freeze(autocompleteProps)) : null, {
194
194
  value: autocompleteProps !== null && autocompleteProps !== void 0 && autocompleteProps.preventSelection ? undefined : value,
195
195
  on_type: onTypeAutocompleteHandler,
196
- data: !props.data && !props.dataPath && (autocompleteProps === null || autocompleteProps === void 0 ? void 0 : autocompleteProps.mode) === 'async' ? undefined : data
196
+ data: !props.data && !props.dataPath && (autocompleteProps === null || autocompleteProps === void 0 ? void 0 : autocompleteProps.mode) === 'async' ? undefined : data,
197
+ selectall: true
197
198
  })) : _react.default.createElement(_components.Dropdown, _extends({}, sharedProps, dropdownProps ? (0, _withCamelCaseProps.convertCamelCasePropsToSnakeCase)(dropdownProps) : null)));
198
199
  }
199
200
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Selection.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_componentHelper","_components","_Option","_hooks","_useFieldProps","_utils","_FieldBlock","_withCamelCaseProps","_useDataValue","_em","_em2","_excluded","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_objectWithoutProperties","o","_objectWithoutPropertiesLoose","getOwnPropertySymbols","length","indexOf","propertyIsEnumerable","_extends","assign","bind","arguments","apply","ownKeys","keys","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","Selection","props","_props$autocompletePr","clearValue","useMemo","makeUniqueId","id","className","variant","layout","optionsLayout","placeholder","info","warning","error","hasError","disabled","size","emptyValue","width","htmlAttributes","setHasFocus","handleChange","setDisplayValue","transformSelection","data","dataPath","children","additionalArgs","autocompleteProps","dropdownProps","useFieldProps","getValueByPath","useDataValue","dataList","handleDrawerListChange","useCallback","_ref","_data$selectedKey","selectedKey","onChangeHandler","_ref2","undefined","handleShow","_ref3","handleHide","_ref4","cn","classnames","fieldBlockProps","forId","disableStatusSummary","pickSpacingProps","onType","onTypeAutocompleteHandler","event","Component","Radio","ToggleButton","items","renderRadioItems","iterateOverItems","_ref5","v","label","additionalFieldBlockProps","asFieldset","React","Children","count","labelHeight","createElement","Group","role","layout_direction","on_change","_data$find","renderDropdownItems","concat","makeOptions","Boolean","displayValue","find","item","content","sharedProps","list_class","portal_class","title","status","checkForError","on_show","on_hide","stretch","specificFieldBlockProps","contentWidth","Autocomplete","convertCamelCasePropsToSnakeCase","freeze","preventSelection","on_type","mode","Dropdown","_ref6","valueProp","optionsCount","createOption","help","rest","suffix","HelpButton","convertJsxToString","key","text","map","mapOptions","_ref7","child","isValidElement","type","OptionField","nestedChildren","cloneElement","_child","_child$props","_child$props$children","_ref8","_props$title","_props$value","selected_value","style","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/Selection/Selection.tsx"],"sourcesContent":["import React, { useMemo, useCallback } from 'react'\nimport classnames from 'classnames'\nimport {\n convertJsxToString,\n makeUniqueId,\n} from '../../../../shared/component-helper'\nimport {\n ToggleButton,\n Dropdown,\n Radio,\n Autocomplete,\n HelpButton,\n} from '../../../../components'\nimport OptionField, { Props as OptionFieldProps } from '../Option'\nimport { useFieldProps } from '../../hooks'\nimport { checkForError, ReturnAdditional } from '../../hooks/useFieldProps'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport { FieldProps, Path } from '../../types'\nimport type { FormStatusText } from '../../../../components/FormStatus'\nimport type { AutocompleteAllProps } from '../../../../components/Autocomplete'\nimport type { DropdownAllProps } from '../../../../components/Dropdown'\nimport { HelpProps } from '../../../../components/help-button/HelpButtonInline'\nimport { DrawerListProps } from '../../../../fragments/DrawerList'\nimport {\n convertCamelCasePropsToSnakeCase,\n ToCamelCase,\n} from '../../../../shared/helpers/withCamelCaseProps'\nimport useDataValue from '../../hooks/useDataValue'\nimport { FormError } from '../../utils'\nimport type { RadioProps } from '../../../../components/Radio'\nimport type { ToggleButtonProps } from '../../../../components/ToggleButton'\nimport type { RadioGroupProps } from '../../../../components/radio/RadioGroup'\nimport type { ToggleButtonGroupProps } from '../../../../components/toggle-button/ToggleButtonGroup'\n\ntype IOption = {\n title: string | React.ReactNode\n value: number | string\n status: FormStatusText\n}\nexport type Data = Array<{\n value: string\n title: React.ReactNode\n text?: React.ReactNode\n disabled?: boolean\n style?: React.CSSProperties\n}>\n\nexport type Props = FieldProps<IOption['value']> & {\n /**\n * Defines the variant of the component.\n * Default: dropdown\n */\n variant?: 'dropdown' | 'autocomplete' | 'radio' | 'radio-list' | 'button'\n\n /**\n * The width of the component.\n * Default: large\n */\n width?: FieldBlockWidth\n\n /**\n * Defines the layout of the options for radio and button variants.\n */\n optionsLayout?: 'horizontal' | 'vertical'\n\n /**\n * Transform the displayed selection for Dropdown and Autocomplete variant.\n * Use it to display a different value than the one in the data set.\n */\n transformSelection?: (props: OptionFieldProps) => React.ReactNode\n\n /**\n * The path to the context data (Form.Handler).\n * The context data object needs to have a `value` and a `title` property.\n */\n dataPath?: Path\n\n /**\n * Data to be used for the component. The object needs to have a `value` and a `title` property.\n * The generated options will be placed above given JSX based children.\n */\n data?: Data\n\n /**\n * Autocomplete specific props\n */\n autocompleteProps?: ToCamelCase<AutocompleteAllProps>\n\n /**\n * Dropdown specific props\n */\n dropdownProps?: ToCamelCase<DropdownAllProps>\n\n /**\n * The size of the component.\n */\n size?:\n | ToggleButtonGroupProps['size']\n | RadioGroupProps['size']\n | AutocompleteAllProps['size']\n | DropdownAllProps['size']\n\n /**\n * The content of the component.\n */\n children?: React.ReactNode\n}\n\nfunction Selection(props: Props) {\n const clearValue = useMemo(() => `clear-option-${makeUniqueId()}`, [])\n\n const {\n id,\n className,\n variant = 'dropdown',\n layout = 'vertical',\n optionsLayout = 'vertical',\n placeholder,\n value,\n info,\n warning,\n error,\n hasError,\n disabled,\n size,\n emptyValue,\n width = 'large',\n htmlAttributes,\n setHasFocus,\n handleChange,\n setDisplayValue,\n transformSelection,\n data,\n dataPath,\n children,\n additionalArgs,\n\n // - Autocomplete and Dropdown specific props\n autocompleteProps,\n dropdownProps,\n } = useFieldProps(props)\n\n const { getValueByPath } = useDataValue()\n let dataList = data\n if (dataPath) {\n dataList = getValueByPath(dataPath)\n }\n\n const handleDrawerListChange = useCallback(\n ({ data, value }) => {\n const selectedKey = data?.selectedKey ?? value\n handleChange?.(\n !selectedKey || selectedKey === clearValue\n ? emptyValue\n : selectedKey,\n { data }\n )\n },\n [handleChange, emptyValue, clearValue]\n )\n\n const onChangeHandler = useCallback(\n ({ value }) => {\n handleChange?.(value === undefined ? emptyValue : value)\n },\n [handleChange, emptyValue]\n )\n\n // Specific handleShow and handleHide because Dropdown preserve the initially received callbacks, so changes\n // due to `useCallback` usage will have no effect, leading to useFieldPropss handleFocus and handleBlur sending out old\n // copies of value as arguments.\n const handleShow = useCallback(\n ({ data }) => {\n setHasFocus(true, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const handleHide = useCallback(\n ({ data }) => {\n setHasFocus(false, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const cn = classnames(\n 'dnb-forms-field-selection',\n `dnb-forms-field-selection__variant--${variant}`,\n `dnb-forms-field-selection--layout-${layout}`,\n `dnb-forms-field-selection--options-layout--${optionsLayout}`,\n className\n )\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: cn,\n disableStatusSummary: true,\n ...pickSpacingProps(props),\n }\n\n const onType = props?.autocompleteProps?.onType\n const onTypeAutocompleteHandler = useCallback(\n (event) => {\n if (typeof onType === 'function') {\n const { value } = event\n onType({\n ...event,\n ...additionalArgs,\n value: value === '' ? emptyValue : value,\n })\n }\n },\n [additionalArgs, emptyValue, onType]\n )\n\n switch (variant) {\n case 'radio':\n case 'radio-list':\n case 'button': {\n const Component = (\n variant === 'radio' || variant === 'radio-list'\n ? Radio\n : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n const items = renderRadioItems({\n id,\n value,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n iterateOverItems: ({ value: v, label }) => {\n if (v === value) {\n setDisplayValue(label)\n }\n },\n })\n\n const additionalFieldBlockProps: FieldBlockProps = {\n asFieldset: React.Children.count(items) > 1,\n }\n if (!size) {\n additionalFieldBlockProps.labelHeight = 'small'\n }\n if (variant === 'radio-list') {\n additionalFieldBlockProps.width = width\n }\n\n return (\n <FieldBlock {...fieldBlockProps} {...additionalFieldBlockProps}>\n <Component.Group\n role=\"radiogroup\"\n size={size}\n className={cn}\n layout_direction={\n optionsLayout === 'horizontal' ? 'row' : 'column'\n }\n disabled={disabled}\n on_change={onChangeHandler}\n value={String(value ?? '')}\n >\n {items}\n </Component.Group>\n </FieldBlock>\n )\n }\n\n case 'autocomplete':\n case 'dropdown': {\n const data = renderDropdownItems(dataList, transformSelection)\n .concat(makeOptions(children, transformSelection))\n .filter(Boolean)\n const displayValue = data.find((item) => item.selectedKey === value)\n ?.content\n setDisplayValue(displayValue)\n\n const sharedProps: AutocompleteAllProps & DropdownAllProps = {\n id,\n list_class: 'dnb-forms-field-selection__list',\n portal_class: 'dnb-forms-field-selection__portal',\n title: placeholder,\n value: String(value ?? ''),\n status:\n (hasError || checkForError([error, info, warning])) && 'error',\n disabled,\n ...htmlAttributes,\n data,\n size,\n on_change: handleDrawerListChange,\n on_show: handleShow,\n on_hide: handleHide,\n stretch: true,\n }\n\n const specificFieldBlockProps: FieldBlockProps = {\n width,\n }\n if (layout === 'horizontal') {\n specificFieldBlockProps.width = undefined\n specificFieldBlockProps.contentWidth = width\n }\n\n return (\n <FieldBlock {...fieldBlockProps} {...specificFieldBlockProps}>\n {variant === 'autocomplete' ? (\n <Autocomplete\n {...sharedProps}\n {...(autocompleteProps\n ? (convertCamelCasePropsToSnakeCase(\n Object.freeze(autocompleteProps)\n ) as AutocompleteAllProps)\n : null)}\n value={\n autocompleteProps?.preventSelection ? undefined : value\n }\n on_type={onTypeAutocompleteHandler}\n data={\n !props.data &&\n !props.dataPath &&\n autocompleteProps?.mode === 'async'\n ? undefined\n : data\n }\n />\n ) : (\n <Dropdown\n {...sharedProps}\n {...(dropdownProps\n ? (convertCamelCasePropsToSnakeCase(\n dropdownProps\n ) as DropdownAllProps)\n : null)}\n />\n )}\n </FieldBlock>\n )\n }\n }\n}\n\ntype OptionProps = React.ComponentProps<\n React.FC<{\n value: Props['value']\n error: Error | FormError | undefined\n help: HelpProps\n title: React.ReactNode\n children: React.ReactNode\n size?: ToggleButtonProps['size'] | RadioProps['size']\n }>\n>\n\nfunction renderRadioItems({\n id,\n value: valueProp,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n iterateOverItems,\n}: {\n id: string\n value: Props['value']\n variant: Props['variant']\n info: Props['info']\n warning: Props['warning']\n htmlAttributes: Props['htmlAttributes']\n children: Props['children']\n dataList: Data\n hasError: ReturnAdditional<Props['value']>['hasError']\n iterateOverItems?: (item: {\n value: Props['value']\n label: Props['children']\n }) => void\n}) {\n const optionsCount =\n React.Children.count(children) + (dataList?.length || 0)\n\n const createOption = (props: OptionProps, i: number) => {\n const { value, title, children, error, help, size, ...rest } = props\n\n const label = title ?? children\n const suffix = help ? (\n <HelpButton size=\"small\" title={convertJsxToString(help.title)}>\n {help.content}\n </HelpButton>\n ) : undefined\n\n iterateOverItems?.({ value, label })\n\n const Component = (\n variant === 'radio' || variant === 'radio-list'\n ? Radio\n : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n return (\n <Component\n id={optionsCount === 1 ? id : undefined}\n key={`option-${i}-${id}`}\n label={\n variant === 'radio' || variant === 'radio-list'\n ? label\n : undefined\n }\n text={variant === 'button' ? label : undefined}\n role=\"radio\"\n value={String(value ?? valueProp) || undefined}\n status={\n (hasError || checkForError([error, info, warning])) && 'error'\n }\n suffix={suffix}\n size={size}\n {...htmlAttributes}\n {...rest}\n />\n )\n }\n\n return [\n ...(dataList || []).map((props, i) => {\n return createOption(props as OptionProps, i)\n }),\n ...(mapOptions(children, { createOption }) || []),\n ].filter(Boolean)\n}\n\nexport function mapOptions(\n children: React.ReactNode,\n {\n createOption,\n }: { createOption: (props: OptionProps, i: number) => React.ReactNode }\n) {\n return React.Children.map(\n children,\n (child: React.ReactElement<OptionProps>, i) => {\n if (React.isValidElement(child)) {\n if (child.type === OptionField) {\n return createOption(child.props, i)\n }\n\n if (child.props.children) {\n const nestedChildren = mapOptions(child.props.children, {\n createOption,\n })\n return React.cloneElement(child, child.props, nestedChildren)\n }\n }\n\n return child\n }\n )\n}\n\nexport function makeOptions<T = DrawerListProps['data']>(\n children: React.ReactNode,\n transformSelection?: Props['transformSelection']\n): T {\n return React.Children.map(children, (child) => {\n if (child?.['props']?.children?.type === OptionField) {\n child = child['props'].children\n }\n\n if (React.isValidElement(child) && child.type === OptionField) {\n const props = child.props as OptionFieldProps\n const title = props.title ?? props.children ?? <em>Untitled</em>\n const content = props.text ? [title, props.text] : title\n const selected_value = transformSelection\n ? transformSelection(props)\n : undefined\n const selectedKey = String(props.value ?? '')\n const disabled = props.disabled\n const style = props.style\n\n return { selectedKey, selected_value, content, disabled, style }\n }\n\n // For other children, just show them as content\n if (child) {\n return {\n content: child,\n }\n }\n }) as T\n}\n\nfunction renderDropdownItems(\n data: Data,\n transformSelection?: Props['transformSelection']\n) {\n return (\n data?.map((props) => {\n const { value, title, text, disabled, style } = props\n return {\n selectedKey: value,\n content: (text ? [title, text] : title) || <em>Untitled</em>,\n selected_value: transformSelection\n ? transformSelection(props)\n : undefined,\n disabled,\n style,\n }\n }) || []\n )\n}\n\nSelection._supportsSpacingProps = true\nexport default Selection\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Selection.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_componentHelper","_components","_Option","_hooks","_useFieldProps","_utils","_FieldBlock","_withCamelCaseProps","_useDataValue","_em","_em2","_excluded","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_objectWithoutProperties","o","_objectWithoutPropertiesLoose","getOwnPropertySymbols","length","indexOf","propertyIsEnumerable","_extends","assign","bind","arguments","apply","ownKeys","keys","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","Selection","props","_props$autocompletePr","clearValue","useMemo","makeUniqueId","id","className","variant","layout","optionsLayout","placeholder","info","warning","error","hasError","disabled","size","emptyValue","width","htmlAttributes","setHasFocus","handleChange","setDisplayValue","transformSelection","data","dataPath","children","additionalArgs","autocompleteProps","dropdownProps","useFieldProps","getValueByPath","useDataValue","dataList","handleDrawerListChange","useCallback","_ref","_data$selectedKey","selectedKey","onChangeHandler","_ref2","undefined","handleShow","_ref3","handleHide","_ref4","cn","classnames","fieldBlockProps","forId","disableStatusSummary","pickSpacingProps","onType","onTypeAutocompleteHandler","event","Component","Radio","ToggleButton","items","renderRadioItems","iterateOverItems","_ref5","v","label","additionalFieldBlockProps","asFieldset","React","Children","count","labelHeight","createElement","Group","role","layout_direction","on_change","_data$find","renderDropdownItems","concat","makeOptions","Boolean","displayValue","find","item","content","sharedProps","list_class","portal_class","title","status","checkForError","on_show","on_hide","stretch","specificFieldBlockProps","contentWidth","Autocomplete","convertCamelCasePropsToSnakeCase","freeze","preventSelection","on_type","mode","selectall","Dropdown","_ref6","valueProp","optionsCount","createOption","help","rest","suffix","HelpButton","convertJsxToString","key","text","map","mapOptions","_ref7","child","isValidElement","type","OptionField","nestedChildren","cloneElement","_child","_child$props","_child$props$children","_ref8","_props$title","_props$value","selected_value","style","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/Selection/Selection.tsx"],"sourcesContent":["import React, { useMemo, useCallback } from 'react'\nimport classnames from 'classnames'\nimport {\n convertJsxToString,\n makeUniqueId,\n} from '../../../../shared/component-helper'\nimport {\n ToggleButton,\n Dropdown,\n Radio,\n Autocomplete,\n HelpButton,\n} from '../../../../components'\nimport OptionField, { Props as OptionFieldProps } from '../Option'\nimport { useFieldProps } from '../../hooks'\nimport { checkForError, ReturnAdditional } from '../../hooks/useFieldProps'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport { FieldProps, Path } from '../../types'\nimport type { FormStatusText } from '../../../../components/FormStatus'\nimport type { AutocompleteAllProps } from '../../../../components/Autocomplete'\nimport type { DropdownAllProps } from '../../../../components/Dropdown'\nimport { HelpProps } from '../../../../components/help-button/HelpButtonInline'\nimport { DrawerListProps } from '../../../../fragments/DrawerList'\nimport {\n convertCamelCasePropsToSnakeCase,\n ToCamelCase,\n} from '../../../../shared/helpers/withCamelCaseProps'\nimport useDataValue from '../../hooks/useDataValue'\nimport { FormError } from '../../utils'\nimport type { RadioProps } from '../../../../components/Radio'\nimport type { ToggleButtonProps } from '../../../../components/ToggleButton'\nimport type { RadioGroupProps } from '../../../../components/radio/RadioGroup'\nimport type { ToggleButtonGroupProps } from '../../../../components/toggle-button/ToggleButtonGroup'\n\ntype IOption = {\n title: string | React.ReactNode\n value: number | string\n status: FormStatusText\n}\nexport type Data = Array<{\n value: string\n title: React.ReactNode\n text?: React.ReactNode\n disabled?: boolean\n style?: React.CSSProperties\n}>\n\nexport type Props = FieldProps<IOption['value']> & {\n /**\n * Defines the variant of the component.\n * Default: dropdown\n */\n variant?: 'dropdown' | 'autocomplete' | 'radio' | 'radio-list' | 'button'\n\n /**\n * The width of the component.\n * Default: large\n */\n width?: FieldBlockWidth\n\n /**\n * Defines the layout of the options for radio and button variants.\n */\n optionsLayout?: 'horizontal' | 'vertical'\n\n /**\n * Transform the displayed selection for Dropdown and Autocomplete variant.\n * Use it to display a different value than the one in the data set.\n */\n transformSelection?: (props: OptionFieldProps) => React.ReactNode\n\n /**\n * The path to the context data (Form.Handler).\n * The context data object needs to have a `value` and a `title` property.\n */\n dataPath?: Path\n\n /**\n * Data to be used for the component. The object needs to have a `value` and a `title` property.\n * The generated options will be placed above given JSX based children.\n */\n data?: Data\n\n /**\n * Autocomplete specific props\n */\n autocompleteProps?: ToCamelCase<AutocompleteAllProps>\n\n /**\n * Dropdown specific props\n */\n dropdownProps?: ToCamelCase<DropdownAllProps>\n\n /**\n * The size of the component.\n */\n size?:\n | ToggleButtonGroupProps['size']\n | RadioGroupProps['size']\n | AutocompleteAllProps['size']\n | DropdownAllProps['size']\n\n /**\n * The content of the component.\n */\n children?: React.ReactNode\n}\n\nfunction Selection(props: Props) {\n const clearValue = useMemo(() => `clear-option-${makeUniqueId()}`, [])\n\n const {\n id,\n className,\n variant = 'dropdown',\n layout = 'vertical',\n optionsLayout = 'vertical',\n placeholder,\n value,\n info,\n warning,\n error,\n hasError,\n disabled,\n size,\n emptyValue,\n width = 'large',\n htmlAttributes,\n setHasFocus,\n handleChange,\n setDisplayValue,\n transformSelection,\n data,\n dataPath,\n children,\n additionalArgs,\n\n // - Autocomplete and Dropdown specific props\n autocompleteProps,\n dropdownProps,\n } = useFieldProps(props)\n\n const { getValueByPath } = useDataValue()\n let dataList = data\n if (dataPath) {\n dataList = getValueByPath(dataPath)\n }\n\n const handleDrawerListChange = useCallback(\n ({ data, value }) => {\n const selectedKey = data?.selectedKey ?? value\n handleChange?.(\n !selectedKey || selectedKey === clearValue\n ? emptyValue\n : selectedKey,\n { data }\n )\n },\n [handleChange, emptyValue, clearValue]\n )\n\n const onChangeHandler = useCallback(\n ({ value }) => {\n handleChange?.(value === undefined ? emptyValue : value)\n },\n [handleChange, emptyValue]\n )\n\n // Specific handleShow and handleHide because Dropdown preserve the initially received callbacks, so changes\n // due to `useCallback` usage will have no effect, leading to useFieldPropss handleFocus and handleBlur sending out old\n // copies of value as arguments.\n const handleShow = useCallback(\n ({ data }) => {\n setHasFocus(true, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const handleHide = useCallback(\n ({ data }) => {\n setHasFocus(false, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const cn = classnames(\n 'dnb-forms-field-selection',\n `dnb-forms-field-selection__variant--${variant}`,\n `dnb-forms-field-selection--layout-${layout}`,\n `dnb-forms-field-selection--options-layout--${optionsLayout}`,\n className\n )\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: cn,\n disableStatusSummary: true,\n ...pickSpacingProps(props),\n }\n\n const onType = props?.autocompleteProps?.onType\n const onTypeAutocompleteHandler = useCallback(\n (event) => {\n if (typeof onType === 'function') {\n const { value } = event\n onType({\n ...event,\n ...additionalArgs,\n value: value === '' ? emptyValue : value,\n })\n }\n },\n [additionalArgs, emptyValue, onType]\n )\n\n switch (variant) {\n case 'radio':\n case 'radio-list':\n case 'button': {\n const Component = (\n variant === 'radio' || variant === 'radio-list'\n ? Radio\n : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n const items = renderRadioItems({\n id,\n value,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n iterateOverItems: ({ value: v, label }) => {\n if (v === value) {\n setDisplayValue(label)\n }\n },\n })\n\n const additionalFieldBlockProps: FieldBlockProps = {\n asFieldset: React.Children.count(items) > 1,\n }\n if (!size) {\n additionalFieldBlockProps.labelHeight = 'small'\n }\n if (variant === 'radio-list') {\n additionalFieldBlockProps.width = width\n }\n\n return (\n <FieldBlock {...fieldBlockProps} {...additionalFieldBlockProps}>\n <Component.Group\n role=\"radiogroup\"\n size={size}\n className={cn}\n layout_direction={\n optionsLayout === 'horizontal' ? 'row' : 'column'\n }\n disabled={disabled}\n on_change={onChangeHandler}\n value={String(value ?? '')}\n >\n {items}\n </Component.Group>\n </FieldBlock>\n )\n }\n\n case 'autocomplete':\n case 'dropdown': {\n const data = renderDropdownItems(dataList, transformSelection)\n .concat(makeOptions(children, transformSelection))\n .filter(Boolean)\n const displayValue = data.find((item) => item.selectedKey === value)\n ?.content\n setDisplayValue(displayValue)\n\n const sharedProps: AutocompleteAllProps & DropdownAllProps = {\n id,\n list_class: 'dnb-forms-field-selection__list',\n portal_class: 'dnb-forms-field-selection__portal',\n title: placeholder,\n value: String(value ?? ''),\n status:\n (hasError || checkForError([error, info, warning])) && 'error',\n disabled,\n ...htmlAttributes,\n data,\n size,\n on_change: handleDrawerListChange,\n on_show: handleShow,\n on_hide: handleHide,\n stretch: true,\n }\n\n const specificFieldBlockProps: FieldBlockProps = {\n width,\n }\n if (layout === 'horizontal') {\n specificFieldBlockProps.width = undefined\n specificFieldBlockProps.contentWidth = width\n }\n\n return (\n <FieldBlock {...fieldBlockProps} {...specificFieldBlockProps}>\n {variant === 'autocomplete' ? (\n <Autocomplete\n {...sharedProps}\n {...(autocompleteProps\n ? (convertCamelCasePropsToSnakeCase(\n Object.freeze(autocompleteProps)\n ) as AutocompleteAllProps)\n : null)}\n value={\n autocompleteProps?.preventSelection ? undefined : value\n }\n on_type={onTypeAutocompleteHandler}\n data={\n !props.data &&\n !props.dataPath &&\n autocompleteProps?.mode === 'async'\n ? undefined\n : data\n }\n selectall\n />\n ) : (\n <Dropdown\n {...sharedProps}\n {...(dropdownProps\n ? (convertCamelCasePropsToSnakeCase(\n dropdownProps\n ) as DropdownAllProps)\n : null)}\n />\n )}\n </FieldBlock>\n )\n }\n }\n}\n\ntype OptionProps = React.ComponentProps<\n React.FC<{\n value: Props['value']\n error: Error | FormError | undefined\n help: HelpProps\n title: React.ReactNode\n children: React.ReactNode\n size?: ToggleButtonProps['size'] | RadioProps['size']\n }>\n>\n\nfunction renderRadioItems({\n id,\n value: valueProp,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n iterateOverItems,\n}: {\n id: string\n value: Props['value']\n variant: Props['variant']\n info: Props['info']\n warning: Props['warning']\n htmlAttributes: Props['htmlAttributes']\n children: Props['children']\n dataList: Data\n hasError: ReturnAdditional<Props['value']>['hasError']\n iterateOverItems?: (item: {\n value: Props['value']\n label: Props['children']\n }) => void\n}) {\n const optionsCount =\n React.Children.count(children) + (dataList?.length || 0)\n\n const createOption = (props: OptionProps, i: number) => {\n const { value, title, children, error, help, size, ...rest } = props\n\n const label = title ?? children\n const suffix = help ? (\n <HelpButton size=\"small\" title={convertJsxToString(help.title)}>\n {help.content}\n </HelpButton>\n ) : undefined\n\n iterateOverItems?.({ value, label })\n\n const Component = (\n variant === 'radio' || variant === 'radio-list'\n ? Radio\n : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n return (\n <Component\n id={optionsCount === 1 ? id : undefined}\n key={`option-${i}-${id}`}\n label={\n variant === 'radio' || variant === 'radio-list'\n ? label\n : undefined\n }\n text={variant === 'button' ? label : undefined}\n role=\"radio\"\n value={String(value ?? valueProp) || undefined}\n status={\n (hasError || checkForError([error, info, warning])) && 'error'\n }\n suffix={suffix}\n size={size}\n {...htmlAttributes}\n {...rest}\n />\n )\n }\n\n return [\n ...(dataList || []).map((props, i) => {\n return createOption(props as OptionProps, i)\n }),\n ...(mapOptions(children, { createOption }) || []),\n ].filter(Boolean)\n}\n\nexport function mapOptions(\n children: React.ReactNode,\n {\n createOption,\n }: { createOption: (props: OptionProps, i: number) => React.ReactNode }\n) {\n return React.Children.map(\n children,\n (child: React.ReactElement<OptionProps>, i) => {\n if (React.isValidElement(child)) {\n if (child.type === OptionField) {\n return createOption(child.props, i)\n }\n\n if (child.props.children) {\n const nestedChildren = mapOptions(child.props.children, {\n createOption,\n })\n return React.cloneElement(child, child.props, nestedChildren)\n }\n }\n\n return child\n }\n )\n}\n\nexport function makeOptions<T = DrawerListProps['data']>(\n children: React.ReactNode,\n transformSelection?: Props['transformSelection']\n): T {\n return React.Children.map(children, (child) => {\n if (child?.['props']?.children?.type === OptionField) {\n child = child['props'].children\n }\n\n if (React.isValidElement(child) && child.type === OptionField) {\n const props = child.props as OptionFieldProps\n const title = props.title ?? props.children ?? <em>Untitled</em>\n const content = props.text ? [title, props.text] : title\n const selected_value = transformSelection\n ? transformSelection(props)\n : undefined\n const selectedKey = String(props.value ?? '')\n const disabled = props.disabled\n const style = props.style\n\n return { selectedKey, selected_value, content, disabled, style }\n }\n\n // For other children, just show them as content\n if (child) {\n return {\n content: child,\n }\n }\n }) as T\n}\n\nfunction renderDropdownItems(\n data: Data,\n transformSelection?: Props['transformSelection']\n) {\n return (\n data?.map((props) => {\n const { value, title, text, disabled, style } = props\n return {\n selectedKey: value,\n content: (text ? [title, text] : title) || <em>Untitled</em>,\n selected_value: transformSelection\n ? transformSelection(props)\n : undefined,\n disabled,\n style,\n }\n }) || []\n )\n}\n\nSelection._supportsSpacingProps = true\nexport default Selection\n"],"mappings":"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","ignoreList":[]}
@@ -321,15 +321,19 @@ function FieldBlock(props) {
321
321
  className: gridClasses
322
322
  }, (label || labelDescription || hasHelp) && _react.default.createElement(_components.FormLabel, labelProps, _react.default.createElement("span", null, label && _react.default.createElement("span", {
323
323
  className: "dnb-forms-field-block__label__content"
324
- }, label), hasHelp && !hasOnlyLabelDescription && _react.default.createElement(_HelpButtonInline.default, {
324
+ }, label), hasHelp && !hasOnlyLabelDescription && _react.default.createElement("span", {
325
+ className: "dnb-help-button__word-joiner"
326
+ }, _react.default.createElement(_HelpButtonInline.default, {
325
327
  contentId: `${id}-help`,
326
328
  help: help
327
- }), label && hasLabelDescription && !labelDescriptionInline && (_br || (_br = _react.default.createElement("br", null))), hasLabelDescription && _react.default.createElement("span", {
329
+ })), label && hasLabelDescription && !labelDescriptionInline && (_br || (_br = _react.default.createElement("br", null))), hasLabelDescription && _react.default.createElement("span", {
328
330
  className: "dnb-forms-field-block__label__description"
329
- }, labelDescription), hasHelp && hasOnlyLabelDescription && _react.default.createElement(_HelpButtonInline.default, {
331
+ }, labelDescription), hasHelp && hasOnlyLabelDescription && _react.default.createElement("span", {
332
+ className: "dnb-help-button__word-joiner"
333
+ }, _react.default.createElement(_HelpButtonInline.default, {
330
334
  contentId: `${id}-help`,
331
335
  help: help
332
- }))), hasHelp && _react.default.createElement(_HelpButtonInline.HelpButtonInlineContent, {
336
+ })))), hasHelp && _react.default.createElement(_HelpButtonInline.HelpButtonInlineContent, {
333
337
  contentId: `${id}-help`,
334
338
  className: "dnb-forms-field-block__help",
335
339
  help: help,