@dnb/eufemia 10.64.1 → 10.65.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 (426) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/cjs/components/date-picker/DatePicker.d.ts +3 -1
  3. package/cjs/components/date-picker/DatePicker.js +4 -6
  4. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  5. package/cjs/components/date-picker/DatePickerAddon.js +8 -1
  6. package/cjs/components/date-picker/DatePickerAddon.js.map +1 -1
  7. package/cjs/components/date-picker/DatePickerInput.js +2 -2
  8. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  9. package/cjs/components/input-masked/MultiInputMask.d.ts +2 -1
  10. package/cjs/components/input-masked/MultiInputMask.js.map +1 -1
  11. package/cjs/components/radio/RadioGroup.d.ts +1 -1
  12. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.css +4 -7
  13. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.min.css +1 -0
  14. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.scss +5 -7
  15. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-ui.css +4 -7
  16. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-ui.min.css +1 -0
  17. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-ui.scss +5 -7
  18. package/cjs/components/toggle-button/ToggleButtonGroup.d.ts +2 -0
  19. package/cjs/components/toggle-button/ToggleButtonGroup.js +5 -1
  20. package/cjs/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  21. package/cjs/extensions/forms/DataContext/Context.d.ts +1 -1
  22. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  23. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +1 -1
  24. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  25. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +2 -2
  26. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  27. package/cjs/extensions/forms/DataContext/Provider/Provider.js +2 -2
  28. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  29. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +8 -1
  30. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +9 -2
  31. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  32. package/cjs/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +5 -0
  33. package/cjs/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
  34. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +2 -2
  35. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  36. package/cjs/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
  37. package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  38. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js +3 -1
  39. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
  40. package/cjs/extensions/forms/Field/Date/Date.d.ts +5 -4
  41. package/cjs/extensions/forms/Field/Date/Date.js +123 -11
  42. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  43. package/cjs/extensions/forms/Field/Date/DateDocs.js +13 -4
  44. package/cjs/extensions/forms/Field/Date/DateDocs.js.map +1 -1
  45. package/cjs/extensions/forms/Field/Expiry/Expiry.d.ts +7 -1
  46. package/cjs/extensions/forms/Field/Expiry/Expiry.js +2 -0
  47. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  48. package/cjs/extensions/forms/Field/Expiry/ExpiryDocs.d.ts +2 -0
  49. package/cjs/extensions/forms/Field/Expiry/ExpiryDocs.js +19 -0
  50. package/cjs/extensions/forms/Field/Expiry/ExpiryDocs.js.map +1 -0
  51. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -2
  52. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  53. package/cjs/extensions/forms/Field/Number/NumberDocs.js +8 -1
  54. package/cjs/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  55. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +2 -2
  56. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  57. package/cjs/extensions/forms/Field/Password/PasswordDocs.js +1 -1
  58. package/cjs/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  59. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
  60. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +5 -2
  61. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  62. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +2 -0
  63. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  64. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +1 -1
  65. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +6 -2
  66. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  67. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +3 -1
  68. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  69. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +5 -0
  70. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +2 -0
  71. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  72. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +10 -1
  73. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  74. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +9 -0
  75. package/cjs/extensions/forms/Field/Selection/Selection.js +14 -6
  76. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  77. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js +5 -0
  78. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  79. package/cjs/extensions/forms/Field/String/StringDocs.js +8 -1
  80. package/cjs/extensions/forms/Field/String/StringDocs.js.map +1 -1
  81. package/cjs/extensions/forms/Field/Toggle/Toggle.d.ts +3 -0
  82. package/cjs/extensions/forms/Field/Toggle/Toggle.js +6 -1
  83. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  84. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js +5 -0
  85. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  86. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +1 -1
  87. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  88. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  89. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  90. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +7 -2
  91. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  92. package/cjs/extensions/forms/Value/Date/Date.d.ts +3 -2
  93. package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
  94. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +20 -8
  95. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  96. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
  97. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  98. package/cjs/extensions/forms/Wizard/Step/Step.d.ts +16 -1
  99. package/cjs/extensions/forms/Wizard/Step/Step.js +32 -10
  100. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  101. package/cjs/extensions/forms/Wizard/Step/StepDocs.js +18 -3
  102. package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  103. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +6 -0
  104. package/cjs/extensions/forms/constants/locales/en-GB.js +7 -1
  105. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  106. package/cjs/extensions/forms/constants/locales/en-US.d.ts +6 -0
  107. package/cjs/extensions/forms/constants/locales/index.d.ts +12 -0
  108. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +6 -0
  109. package/cjs/extensions/forms/constants/locales/nb-NO.js +7 -1
  110. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  111. package/cjs/extensions/forms/hooks/useFieldProps.js +8 -8
  112. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  113. package/cjs/extensions/forms/types.d.ts +1 -0
  114. package/cjs/extensions/forms/types.js.map +1 -1
  115. package/cjs/fragments/drawer-list/DrawerList.d.ts +6 -1
  116. package/cjs/shared/Eufemia.d.ts +1 -1
  117. package/cjs/shared/Eufemia.js +2 -2
  118. package/cjs/shared/Eufemia.js.map +1 -1
  119. package/cjs/style/core/scopes.scss +1 -1
  120. package/cjs/style/dnb-ui-basis.css +1 -1
  121. package/cjs/style/dnb-ui-basis.min.css +1 -1
  122. package/cjs/style/dnb-ui-body.css +1 -1
  123. package/cjs/style/dnb-ui-body.min.css +1 -1
  124. package/cjs/style/dnb-ui-core.css +1 -1
  125. package/cjs/style/dnb-ui-core.min.css +1 -1
  126. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +0 -2
  127. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  128. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +5 -7
  129. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  130. package/cjs/style/themes/theme-sbanken/globals.scss +0 -4
  131. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +0 -2
  132. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  133. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +5 -7
  134. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  135. package/cjs/style/themes/theme-ui/globals.scss +0 -4
  136. package/cjs/style/themes/theme-ui/ui-theme-basis.css +0 -2
  137. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  138. package/cjs/style/themes/theme-ui/ui-theme-components.css +5 -7
  139. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  140. package/components/date-picker/DatePicker.d.ts +3 -1
  141. package/components/date-picker/DatePicker.js +4 -6
  142. package/components/date-picker/DatePicker.js.map +1 -1
  143. package/components/date-picker/DatePickerAddon.js +6 -1
  144. package/components/date-picker/DatePickerAddon.js.map +1 -1
  145. package/components/date-picker/DatePickerInput.js +2 -2
  146. package/components/date-picker/DatePickerInput.js.map +1 -1
  147. package/components/input-masked/MultiInputMask.d.ts +2 -1
  148. package/components/input-masked/MultiInputMask.js.map +1 -1
  149. package/components/radio/RadioGroup.d.ts +1 -1
  150. package/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.css +4 -7
  151. package/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.min.css +1 -0
  152. package/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.scss +5 -7
  153. package/components/skeleton/style/themes/dnb-skeleton-theme-ui.css +4 -7
  154. package/components/skeleton/style/themes/dnb-skeleton-theme-ui.min.css +1 -0
  155. package/components/skeleton/style/themes/dnb-skeleton-theme-ui.scss +5 -7
  156. package/components/toggle-button/ToggleButtonGroup.d.ts +2 -0
  157. package/components/toggle-button/ToggleButtonGroup.js +5 -1
  158. package/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  159. package/es/components/date-picker/DatePicker.d.ts +3 -1
  160. package/es/components/date-picker/DatePicker.js +4 -6
  161. package/es/components/date-picker/DatePicker.js.map +1 -1
  162. package/es/components/date-picker/DatePickerAddon.js +6 -1
  163. package/es/components/date-picker/DatePickerAddon.js.map +1 -1
  164. package/es/components/date-picker/DatePickerInput.js +2 -2
  165. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  166. package/es/components/input-masked/MultiInputMask.d.ts +2 -1
  167. package/es/components/input-masked/MultiInputMask.js.map +1 -1
  168. package/es/components/radio/RadioGroup.d.ts +1 -1
  169. package/es/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.css +4 -7
  170. package/es/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.min.css +1 -0
  171. package/es/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.scss +5 -7
  172. package/es/components/skeleton/style/themes/dnb-skeleton-theme-ui.css +4 -7
  173. package/es/components/skeleton/style/themes/dnb-skeleton-theme-ui.min.css +1 -0
  174. package/es/components/skeleton/style/themes/dnb-skeleton-theme-ui.scss +5 -7
  175. package/es/components/toggle-button/ToggleButtonGroup.d.ts +2 -0
  176. package/es/components/toggle-button/ToggleButtonGroup.js +5 -1
  177. package/es/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  178. package/es/extensions/forms/DataContext/Context.d.ts +1 -1
  179. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  180. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +1 -1
  181. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  182. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +2 -2
  183. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  184. package/es/extensions/forms/DataContext/Provider/Provider.js +2 -2
  185. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  186. package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +8 -1
  187. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +9 -2
  188. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  189. package/es/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +5 -0
  190. package/es/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
  191. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +2 -2
  192. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  193. package/es/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
  194. package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  195. package/es/extensions/forms/Field/Boolean/BooleanDocs.js +3 -1
  196. package/es/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
  197. package/es/extensions/forms/Field/Date/Date.d.ts +5 -4
  198. package/es/extensions/forms/Field/Date/Date.js +124 -12
  199. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  200. package/es/extensions/forms/Field/Date/DateDocs.js +13 -4
  201. package/es/extensions/forms/Field/Date/DateDocs.js.map +1 -1
  202. package/es/extensions/forms/Field/Expiry/Expiry.d.ts +7 -1
  203. package/es/extensions/forms/Field/Expiry/Expiry.js +2 -0
  204. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  205. package/es/extensions/forms/Field/Expiry/ExpiryDocs.d.ts +2 -0
  206. package/es/extensions/forms/Field/Expiry/ExpiryDocs.js +10 -0
  207. package/es/extensions/forms/Field/Expiry/ExpiryDocs.js.map +1 -0
  208. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -2
  209. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  210. package/es/extensions/forms/Field/Number/NumberDocs.js +6 -1
  211. package/es/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  212. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +2 -2
  213. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  214. package/es/extensions/forms/Field/Password/PasswordDocs.js +1 -1
  215. package/es/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  216. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
  217. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +5 -2
  218. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  219. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +2 -0
  220. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  221. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +1 -1
  222. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +6 -2
  223. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  224. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +3 -1
  225. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  226. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +5 -0
  227. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +2 -0
  228. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  229. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +8 -1
  230. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  231. package/es/extensions/forms/Field/Selection/Selection.d.ts +9 -0
  232. package/es/extensions/forms/Field/Selection/Selection.js +14 -6
  233. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  234. package/es/extensions/forms/Field/Selection/SelectionDocs.js +5 -0
  235. package/es/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  236. package/es/extensions/forms/Field/String/StringDocs.js +6 -1
  237. package/es/extensions/forms/Field/String/StringDocs.js.map +1 -1
  238. package/es/extensions/forms/Field/Toggle/Toggle.d.ts +3 -0
  239. package/es/extensions/forms/Field/Toggle/Toggle.js +6 -1
  240. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  241. package/es/extensions/forms/Field/Toggle/ToggleDocs.js +5 -0
  242. package/es/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  243. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +1 -1
  244. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  245. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  246. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  247. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +7 -2
  248. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  249. package/es/extensions/forms/Value/Date/Date.d.ts +3 -2
  250. package/es/extensions/forms/Value/Date/Date.js.map +1 -1
  251. package/es/extensions/forms/Wizard/Container/WizardContainer.js +20 -8
  252. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  253. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
  254. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  255. package/es/extensions/forms/Wizard/Step/Step.d.ts +16 -1
  256. package/es/extensions/forms/Wizard/Step/Step.js +29 -10
  257. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  258. package/es/extensions/forms/Wizard/Step/StepDocs.js +18 -3
  259. package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  260. package/es/extensions/forms/constants/locales/en-GB.d.ts +6 -0
  261. package/es/extensions/forms/constants/locales/en-GB.js +7 -1
  262. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  263. package/es/extensions/forms/constants/locales/en-US.d.ts +6 -0
  264. package/es/extensions/forms/constants/locales/index.d.ts +12 -0
  265. package/es/extensions/forms/constants/locales/nb-NO.d.ts +6 -0
  266. package/es/extensions/forms/constants/locales/nb-NO.js +7 -1
  267. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  268. package/es/extensions/forms/hooks/useFieldProps.js +8 -8
  269. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  270. package/es/extensions/forms/types.d.ts +1 -0
  271. package/es/extensions/forms/types.js.map +1 -1
  272. package/es/fragments/drawer-list/DrawerList.d.ts +6 -1
  273. package/es/shared/Eufemia.d.ts +1 -1
  274. package/es/shared/Eufemia.js +2 -2
  275. package/es/shared/Eufemia.js.map +1 -1
  276. package/es/style/core/scopes.scss +1 -1
  277. package/es/style/dnb-ui-basis.css +1 -1
  278. package/es/style/dnb-ui-basis.min.css +1 -1
  279. package/es/style/dnb-ui-body.css +1 -1
  280. package/es/style/dnb-ui-body.min.css +1 -1
  281. package/es/style/dnb-ui-core.css +1 -1
  282. package/es/style/dnb-ui-core.min.css +1 -1
  283. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +0 -2
  284. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  285. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +5 -7
  286. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  287. package/es/style/themes/theme-sbanken/globals.scss +0 -4
  288. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +0 -2
  289. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  290. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +5 -7
  291. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  292. package/es/style/themes/theme-ui/globals.scss +0 -4
  293. package/es/style/themes/theme-ui/ui-theme-basis.css +0 -2
  294. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  295. package/es/style/themes/theme-ui/ui-theme-components.css +5 -7
  296. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  297. package/esm/dnb-ui-basis.min.mjs +1 -1
  298. package/esm/dnb-ui-components.min.mjs +1 -1
  299. package/esm/dnb-ui-elements.min.mjs +1 -1
  300. package/esm/dnb-ui-extensions.min.mjs +3 -3
  301. package/esm/dnb-ui-lib.min.mjs +1 -1
  302. package/extensions/forms/DataContext/Context.d.ts +1 -1
  303. package/extensions/forms/DataContext/Context.js.map +1 -1
  304. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +1 -1
  305. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  306. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +2 -2
  307. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  308. package/extensions/forms/DataContext/Provider/Provider.js +2 -2
  309. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  310. package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +8 -1
  311. package/extensions/forms/Field/ArraySelection/ArraySelection.js +9 -2
  312. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  313. package/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +5 -0
  314. package/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
  315. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +2 -2
  316. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  317. package/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
  318. package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  319. package/extensions/forms/Field/Boolean/BooleanDocs.js +3 -1
  320. package/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
  321. package/extensions/forms/Field/Date/Date.d.ts +5 -4
  322. package/extensions/forms/Field/Date/Date.js +124 -12
  323. package/extensions/forms/Field/Date/Date.js.map +1 -1
  324. package/extensions/forms/Field/Date/DateDocs.js +13 -4
  325. package/extensions/forms/Field/Date/DateDocs.js.map +1 -1
  326. package/extensions/forms/Field/Expiry/Expiry.d.ts +7 -1
  327. package/extensions/forms/Field/Expiry/Expiry.js +2 -0
  328. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  329. package/extensions/forms/Field/Expiry/ExpiryDocs.d.ts +2 -0
  330. package/extensions/forms/Field/Expiry/ExpiryDocs.js +10 -0
  331. package/extensions/forms/Field/Expiry/ExpiryDocs.js.map +1 -0
  332. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -2
  333. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  334. package/extensions/forms/Field/Number/NumberDocs.js +6 -1
  335. package/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  336. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +2 -2
  337. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  338. package/extensions/forms/Field/Password/PasswordDocs.js +1 -1
  339. package/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  340. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
  341. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +5 -2
  342. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  343. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +2 -0
  344. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  345. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +1 -1
  346. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +6 -2
  347. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  348. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +3 -1
  349. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  350. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +5 -0
  351. package/extensions/forms/Field/SelectCountry/SelectCountry.js +2 -0
  352. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  353. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +8 -1
  354. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  355. package/extensions/forms/Field/Selection/Selection.d.ts +9 -0
  356. package/extensions/forms/Field/Selection/Selection.js +14 -6
  357. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  358. package/extensions/forms/Field/Selection/SelectionDocs.js +5 -0
  359. package/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  360. package/extensions/forms/Field/String/StringDocs.js +6 -1
  361. package/extensions/forms/Field/String/StringDocs.js.map +1 -1
  362. package/extensions/forms/Field/Toggle/Toggle.d.ts +3 -0
  363. package/extensions/forms/Field/Toggle/Toggle.js +6 -1
  364. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  365. package/extensions/forms/Field/Toggle/ToggleDocs.js +5 -0
  366. package/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  367. package/extensions/forms/Form/Visibility/Visibility.d.ts +1 -1
  368. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  369. package/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  370. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  371. package/extensions/forms/Iterate/PushContainer/PushContainer.js +7 -2
  372. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  373. package/extensions/forms/Value/Date/Date.d.ts +3 -2
  374. package/extensions/forms/Value/Date/Date.js.map +1 -1
  375. package/extensions/forms/Wizard/Container/WizardContainer.js +20 -8
  376. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  377. package/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
  378. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  379. package/extensions/forms/Wizard/Step/Step.d.ts +16 -1
  380. package/extensions/forms/Wizard/Step/Step.js +29 -10
  381. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  382. package/extensions/forms/Wizard/Step/StepDocs.js +18 -3
  383. package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  384. package/extensions/forms/constants/locales/en-GB.d.ts +6 -0
  385. package/extensions/forms/constants/locales/en-GB.js +7 -1
  386. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  387. package/extensions/forms/constants/locales/en-US.d.ts +6 -0
  388. package/extensions/forms/constants/locales/index.d.ts +12 -0
  389. package/extensions/forms/constants/locales/nb-NO.d.ts +6 -0
  390. package/extensions/forms/constants/locales/nb-NO.js +7 -1
  391. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  392. package/extensions/forms/hooks/useFieldProps.js +8 -8
  393. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  394. package/extensions/forms/types.d.ts +1 -0
  395. package/extensions/forms/types.js.map +1 -1
  396. package/fragments/drawer-list/DrawerList.d.ts +6 -1
  397. package/package.json +1 -1
  398. package/shared/Eufemia.d.ts +1 -1
  399. package/shared/Eufemia.js +2 -2
  400. package/shared/Eufemia.js.map +1 -1
  401. package/style/core/scopes.scss +1 -1
  402. package/style/dnb-ui-basis.css +1 -1
  403. package/style/dnb-ui-basis.min.css +1 -1
  404. package/style/dnb-ui-body.css +1 -1
  405. package/style/dnb-ui-body.min.css +1 -1
  406. package/style/dnb-ui-core.css +1 -1
  407. package/style/dnb-ui-core.min.css +1 -1
  408. package/style/themes/theme-eiendom/eiendom-theme-basis.css +0 -2
  409. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  410. package/style/themes/theme-eiendom/eiendom-theme-components.css +5 -7
  411. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  412. package/style/themes/theme-sbanken/globals.scss +0 -4
  413. package/style/themes/theme-sbanken/sbanken-theme-basis.css +0 -2
  414. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  415. package/style/themes/theme-sbanken/sbanken-theme-components.css +5 -7
  416. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  417. package/style/themes/theme-ui/globals.scss +0 -4
  418. package/style/themes/theme-ui/ui-theme-basis.css +0 -2
  419. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  420. package/style/themes/theme-ui/ui-theme-components.css +5 -7
  421. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  422. package/umd/dnb-ui-basis.min.js +1 -1
  423. package/umd/dnb-ui-components.min.js +1 -1
  424. package/umd/dnb-ui-elements.min.js +1 -1
  425. package/umd/dnb-ui-extensions.min.js +3 -3
  426. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"PhoneNumberDocs.js","names":["getFieldEventsWithTypes","PhoneNumberProperties","countries","doc","type","status","filterCountries","pattern","omitCountryCodeField","countryCodeFieldClassName","numberFieldClassName","countryCodePlaceholder","countryCodeLabel","numberMask","width","phoneNumberSpecificEvents","onCountryCodeChange","onNumberChange","phoneNumberGeneralEvents","optional"],"sources":["../../../../../../src/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { getFieldEventsWithTypes } from '../FieldDocs'\n\nexport const PhoneNumberProperties: PropertiesTableProps = {\n countries: {\n doc: 'List only a certain set of countries: `Scandinavia`, `Nordic`, `Europe` or `Prioritized`(all countries [sorted by priority](/uilib/extensions/forms/feature-fields/SelectCountry/#filter-or-prioritize-country-listing)). Defaults to `Prioritized`.',\n type: 'string',\n status: 'optional',\n },\n filterCountries: {\n doc: '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 type: 'function',\n status: 'optional',\n },\n pattern: {\n doc: 'Validation based on regex pattern for the number field e.g. `pattern=\"^[49]+\"`.',\n type: 'string',\n status: 'optional',\n },\n omitCountryCodeField: {\n doc: 'If `true` is given, then everything related to country code is removed.',\n type: 'boolean',\n status: 'optional',\n },\n countryCodeFieldClassName: {\n doc: 'Class name for the country code component.',\n type: 'string',\n status: 'optional',\n },\n numberFieldClassName: {\n doc: 'Class name for the number component.',\n type: 'string',\n status: 'optional',\n },\n countryCodePlaceholder: {\n doc: 'Placeholder for the country code field.',\n type: 'string',\n status: 'optional',\n },\n countryCodeLabel: {\n doc: 'Label to show above / before the country code field.',\n type: 'string',\n status: 'optional',\n },\n numberMask: {\n doc: 'See property `mask` of the [InputMasked](/uilib/components/input-masked/properties) component.',\n type: 'Various',\n status: 'optional',\n },\n width: {\n doc: '`large` for predefined standard width, `stretch` for fill available width.',\n type: 'string | false',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const phoneNumberSpecificEvents: PropertiesTableProps = {\n onCountryCodeChange: {\n doc: 'Callback on country code change.',\n type: '(value?: string) => void',\n status: 'optional',\n },\n onNumberChange: {\n doc: 'Callback on phone number change.',\n type: '(value?: string) => void',\n status: 'optional',\n },\n}\n\nexport const phoneNumberGeneralEvents = getFieldEventsWithTypes(\n { type: 'string', optional: true },\n { type: 'object' }\n)\n"],"mappings":"AACA,SAASA,uBAAuB,QAAQ,cAAc;AAEtD,OAAO,MAAMC,qBAA2C,GAAG;EACzDC,SAAS,EAAE;IACTC,GAAG,EAAE,sPAAsP;IAC3PC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,eAAe,EAAE;IACfH,GAAG,EAAE,+JAA+J;IACpKC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDE,OAAO,EAAE;IACPJ,GAAG,EAAE,iFAAiF;IACtFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,oBAAoB,EAAE;IACpBL,GAAG,EAAE,yEAAyE;IAC9EC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,yBAAyB,EAAE;IACzBN,GAAG,EAAE,4CAA4C;IACjDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,oBAAoB,EAAE;IACpBP,GAAG,EAAE,sCAAsC;IAC3CC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,sBAAsB,EAAE;IACtBR,GAAG,EAAE,yCAAyC;IAC9CC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,gBAAgB,EAAE;IAChBT,GAAG,EAAE,sDAAsD;IAC3DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,UAAU,EAAE;IACVV,GAAG,EAAE,gGAAgG;IACrGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDS,KAAK,EAAE;IACLX,GAAG,EAAE,4EAA4E;IACjFC,IAAI,EAAE,gBAAgB;IACtBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMU,yBAA+C,GAAG;EAC7DC,mBAAmB,EAAE;IACnBb,GAAG,EAAE,kCAAkC;IACvCC,IAAI,EAAE,0BAA0B;IAChCC,MAAM,EAAE;EACV,CAAC;EACDY,cAAc,EAAE;IACdd,GAAG,EAAE,kCAAkC;IACvCC,IAAI,EAAE,0BAA0B;IAChCC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMa,wBAAwB,GAAGlB,uBAAuB,CAC7D;EAAEI,IAAI,EAAE,QAAQ;EAAEe,QAAQ,EAAE;AAAK,CAAC,EAClC;EAAEf,IAAI,EAAE;AAAS,CACnB,CAAC"}
1
+ {"version":3,"file":"PhoneNumberDocs.js","names":["getFieldEventsWithTypes","stringProperties","PhoneNumberProperties","countries","doc","type","status","filterCountries","pattern","omitCountryCodeField","countryCodeFieldClassName","numberFieldClassName","countryCodePlaceholder","countryCodeLabel","numberMask","width","size","phoneNumberSpecificEvents","onCountryCodeChange","onNumberChange","phoneNumberGeneralEvents","optional"],"sources":["../../../../../../src/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { getFieldEventsWithTypes } from '../FieldDocs'\nimport { stringProperties } from '../String/StringDocs'\n\nexport const PhoneNumberProperties: PropertiesTableProps = {\n countries: {\n doc: 'List only a certain set of countries: `Scandinavia`, `Nordic`, `Europe` or `Prioritized`(all countries [sorted by priority](/uilib/extensions/forms/feature-fields/SelectCountry/#filter-or-prioritize-country-listing)). Defaults to `Prioritized`.',\n type: 'string',\n status: 'optional',\n },\n filterCountries: {\n doc: '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 type: 'function',\n status: 'optional',\n },\n pattern: {\n doc: 'Validation based on regex pattern for the number field e.g. `pattern=\"^[49]+\"`.',\n type: 'string',\n status: 'optional',\n },\n omitCountryCodeField: {\n doc: 'If `true` is given, then everything related to country code is removed.',\n type: 'boolean',\n status: 'optional',\n },\n countryCodeFieldClassName: {\n doc: 'Class name for the country code component.',\n type: 'string',\n status: 'optional',\n },\n numberFieldClassName: {\n doc: 'Class name for the number component.',\n type: 'string',\n status: 'optional',\n },\n countryCodePlaceholder: {\n doc: 'Placeholder for the country code field.',\n type: 'string',\n status: 'optional',\n },\n countryCodeLabel: {\n doc: 'Label to show above / before the country code field.',\n type: 'string',\n status: 'optional',\n },\n numberMask: {\n doc: 'See property `mask` of the [InputMasked](/uilib/components/input-masked/properties) component.',\n type: 'Various',\n status: 'optional',\n },\n width: {\n doc: '`large` for predefined standard width, `stretch` for fill available width.',\n type: 'string | false',\n status: 'optional',\n },\n size: stringProperties.size,\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const phoneNumberSpecificEvents: PropertiesTableProps = {\n onCountryCodeChange: {\n doc: 'Callback on country code change.',\n type: '(value?: string) => void',\n status: 'optional',\n },\n onNumberChange: {\n doc: 'Callback on phone number change.',\n type: '(value?: string) => void',\n status: 'optional',\n },\n}\n\nexport const phoneNumberGeneralEvents = getFieldEventsWithTypes(\n { type: 'string', optional: true },\n { type: 'object' }\n)\n"],"mappings":"AACA,SAASA,uBAAuB,QAAQ,cAAc;AACtD,SAASC,gBAAgB,QAAQ,sBAAsB;AAEvD,OAAO,MAAMC,qBAA2C,GAAG;EACzDC,SAAS,EAAE;IACTC,GAAG,EAAE,sPAAsP;IAC3PC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,eAAe,EAAE;IACfH,GAAG,EAAE,+JAA+J;IACpKC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDE,OAAO,EAAE;IACPJ,GAAG,EAAE,iFAAiF;IACtFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,oBAAoB,EAAE;IACpBL,GAAG,EAAE,yEAAyE;IAC9EC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,yBAAyB,EAAE;IACzBN,GAAG,EAAE,4CAA4C;IACjDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,oBAAoB,EAAE;IACpBP,GAAG,EAAE,sCAAsC;IAC3CC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,sBAAsB,EAAE;IACtBR,GAAG,EAAE,yCAAyC;IAC9CC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,gBAAgB,EAAE;IAChBT,GAAG,EAAE,sDAAsD;IAC3DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,UAAU,EAAE;IACVV,GAAG,EAAE,gGAAgG;IACrGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDS,KAAK,EAAE;IACLX,GAAG,EAAE,4EAA4E;IACjFC,IAAI,EAAE,gBAAgB;IACtBC,MAAM,EAAE;EACV,CAAC;EACDU,IAAI,EAAEf,gBAAgB,CAACe,IAAI;EAC3B,yCAAyC,EAAE;IACzCZ,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMW,yBAA+C,GAAG;EAC7DC,mBAAmB,EAAE;IACnBd,GAAG,EAAE,kCAAkC;IACvCC,IAAI,EAAE,0BAA0B;IAChCC,MAAM,EAAE;EACV,CAAC;EACDa,cAAc,EAAE;IACdf,GAAG,EAAE,kCAAkC;IACvCC,IAAI,EAAE,0BAA0B;IAChCC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMc,wBAAwB,GAAGpB,uBAAuB,CAC7D;EAAEK,IAAI,EAAE,QAAQ;EAAEgB,QAAQ,EAAE;AAAK,CAAC,EAClC;EAAEhB,IAAI,EAAE;AAAS,CACnB,CAAC"}
@@ -21,7 +21,7 @@ export type Props = Pick<FieldBlockProps, 'error' | 'warning' | 'info' | 'width'
21
21
  */
22
22
  countryCode?: Path | string;
23
23
  help?: HelpProps;
24
- };
24
+ } & Pick<StringFieldProps, 'size'>;
25
25
  declare function PostalCodeAndCity(props: Props): import("react/jsx-runtime").JSX.Element;
26
26
  declare namespace PostalCodeAndCity {
27
27
  var _supportsSpacingProps: boolean;
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
- const _excluded = ["postalCode", "city", "help", "width", "country", "countryCode"];
4
+ const _excluded = ["postalCode", "city", "help", "width", "country", "countryCode", "size"];
5
5
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
6
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
7
  import React, { useCallback, useMemo } from 'react';
@@ -22,7 +22,8 @@ function PostalCodeAndCity(props) {
22
22
  help,
23
23
  width = 'large',
24
24
  country,
25
- countryCode = defaultCountry
25
+ countryCode = defaultCountry,
26
+ size
26
27
  } = props,
27
28
  fieldBlockProps = _objectWithoutProperties(props, _excluded);
28
29
  const countryCodeValue = getSourceValue(country || countryCode);
@@ -76,6 +77,7 @@ function PostalCodeAndCity(props) {
76
77
  }, fieldBlockProps, {
77
78
  width: width
78
79
  }), React.createElement(StringField, _extends({}, postalCode, {
80
+ size: size,
79
81
  className: classnames('dnb-forms-field-postal-code-and-city__postal-code', postalCodeClassName),
80
82
  label: postalCodeLabel !== null && postalCodeLabel !== void 0 ? postalCodeLabel : translations.PostalCode.label,
81
83
  mask: postalCodeMask,
@@ -93,6 +95,7 @@ function PostalCodeAndCity(props) {
93
95
  })), React.createElement(StringField, _extends({
94
96
  help: help
95
97
  }, city, {
98
+ size: size,
96
99
  className: classnames('dnb-forms-field-postal-code-and-city__city', cityClassName),
97
100
  label: cityLabel !== null && cityLabel !== void 0 ? cityLabel : translations.City.label,
98
101
  errorMessages: useMemo(() => _objectSpread({
@@ -102,6 +105,7 @@ function PostalCodeAndCity(props) {
102
105
  pattern: cityPattern,
103
106
  trim: true,
104
107
  width: cityWidth !== null && cityWidth !== void 0 ? cityWidth : 'stretch',
108
+ inputClassName: "dnb-forms-field-postal-code-and-city__city-input",
105
109
  autoComplete: "address-level2"
106
110
  })));
107
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PostalCodeAndCity.js","names":["React","useCallback","useMemo","classnames","StringField","CompositionField","useTranslation","useDataValue","COUNTRY","defaultCountry","PostalCodeAndCity","props","translations","getSourceValue","postalCode","city","help","width","country","countryCode","fieldBlockProps","_objectWithoutProperties","_excluded","countryCodeValue","handleCityDefaults","pattern","_objectSpread","cityPattern","className","cityClassName","label","cityLabel","cityWidth","errorMessages","cityErrorMessages","handlePostalCodeDefaults","mask","placeholder","postalCodeMask","postalCodePattern","postalCodePlaceHolder","postalCodeClassName","postalCodeLabel","postalCodeWidth","postalCodeErrorMessages","createElement","_extends","PostalCode","errorRequired","errorPattern","inputClassName","inputMode","autoComplete","City","trim","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { Props as FieldBlockProps } from '../../FieldBlock'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport CompositionField from '../Composition'\nimport { Path } from '../../types'\nimport useTranslation from '../../hooks/useTranslation'\nimport useDataValue from '../../hooks/useDataValue'\nimport { COUNTRY as defaultCountry } from '../../../../shared/defaults'\nimport { HelpProps } from '../../../../components/help-button/HelpButtonInline'\n\nexport type Props = Pick<\n FieldBlockProps,\n 'error' | 'warning' | 'info' | 'width' | 'className'\n> &\n Partial<Record<'postalCode' | 'city', StringFieldProps>> & {\n /**\n * Defines which country the postal code and city is for.\n * Setting it to anything other than `no` will remove the default norwegian postal code pattern.\n * You can also use the value of another field to define the country, by using a path value i.e. `/myCountryPath`.\n * Default: `NO`\n */\n /**\n * @deprecated – use countryCode instead. Will be removed in v11.\n */\n country?: Path | string\n\n /**\n * Defines which country the postal code and city is for.\n * Setting it to anything other than `no` will remove the default norwegian postal code pattern.\n * You can also use the value of another field to define the countryCode, by using a path value i.e. `/myCountryCodePath`.\n * Default: `NO`\n */\n countryCode?: Path | string\n help?: HelpProps\n }\n\nfunction PostalCodeAndCity(props: Props) {\n const translations = useTranslation()\n const { getSourceValue } = useDataValue()\n\n const {\n postalCode = {},\n city = {},\n help,\n width = 'large',\n country,\n countryCode = defaultCountry,\n ...fieldBlockProps\n } = props\n\n const countryCodeValue = getSourceValue(country || countryCode)\n\n const handleCityDefaults = useCallback(\n (city: StringFieldProps) => {\n const props: StringFieldProps = {}\n\n switch (countryCodeValue) {\n case defaultCountry: {\n props.pattern = '^[A-Za-zÆØÅæøå -]+$'\n break\n }\n }\n\n return { ...props, ...city }\n },\n [countryCodeValue]\n )\n\n const {\n pattern: cityPattern,\n className: cityClassName,\n label: cityLabel,\n width: cityWidth,\n errorMessages: cityErrorMessages,\n } = handleCityDefaults(city)\n\n const handlePostalCodeDefaults = useCallback(\n (postalCode: StringFieldProps) => {\n const props: StringFieldProps = {}\n\n switch (countryCodeValue) {\n case defaultCountry:\n case 'DK':\n case 'CH': {\n props.mask = [/\\d/, /\\d/, /\\d/, /\\d/]\n props.pattern = '^[0-9]{4}$'\n props.placeholder = '0000'\n break\n }\n default:\n props.width = '8rem'\n break\n }\n\n return { ...props, ...postalCode }\n },\n [countryCodeValue]\n )\n\n const {\n mask: postalCodeMask,\n pattern: postalCodePattern,\n placeholder: postalCodePlaceHolder,\n className: postalCodeClassName,\n label: postalCodeLabel,\n width: postalCodeWidth,\n errorMessages: postalCodeErrorMessages,\n } = handlePostalCodeDefaults(postalCode)\n\n return (\n <CompositionField\n className={classnames(\n 'dnb-forms-field-postal-code-and-city',\n props.className\n )}\n {...fieldBlockProps}\n width={width}\n >\n <StringField\n {...postalCode}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__postal-code',\n postalCodeClassName\n )}\n label={postalCodeLabel ?? translations.PostalCode.label}\n mask={postalCodeMask}\n pattern={postalCodePattern}\n placeholder={postalCodePlaceHolder}\n errorMessages={useMemo(\n () => ({\n 'Field.errorRequired': translations.PostalCode.errorRequired,\n 'Field.errorPattern': translations.PostalCode.errorPattern,\n ...postalCodeErrorMessages,\n }),\n [\n postalCodeErrorMessages,\n translations.PostalCode.errorPattern,\n translations.PostalCode.errorRequired,\n ]\n )}\n width={postalCodeWidth ?? false}\n inputClassName=\"dnb-forms-field-postal-code-and-city__postal-code-input\"\n inputMode=\"numeric\"\n autoComplete=\"postal-code\"\n data-country-code={country || countryCode}\n />\n\n <StringField\n help={help}\n {...city}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__city',\n cityClassName\n )}\n label={cityLabel ?? translations.City.label}\n errorMessages={useMemo(\n () => ({\n 'Field.errorRequired': translations.City.errorRequired,\n 'Field.errorPattern': translations.City.errorPattern,\n ...cityErrorMessages,\n }),\n [\n cityErrorMessages,\n translations.City.errorPattern,\n translations.City.errorRequired,\n ]\n )}\n pattern={cityPattern}\n trim\n width={cityWidth ?? 'stretch'}\n autoComplete=\"address-level2\"\n />\n </CompositionField>\n )\n}\n\nPostalCodeAndCity._supportsSpacingProps = true\nexport default PostalCodeAndCity\n"],"mappings":"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"}
1
+ {"version":3,"file":"PostalCodeAndCity.js","names":["React","useCallback","useMemo","classnames","StringField","CompositionField","useTranslation","useDataValue","COUNTRY","defaultCountry","PostalCodeAndCity","props","translations","getSourceValue","postalCode","city","help","width","country","countryCode","size","fieldBlockProps","_objectWithoutProperties","_excluded","countryCodeValue","handleCityDefaults","pattern","_objectSpread","cityPattern","className","cityClassName","label","cityLabel","cityWidth","errorMessages","cityErrorMessages","handlePostalCodeDefaults","mask","placeholder","postalCodeMask","postalCodePattern","postalCodePlaceHolder","postalCodeClassName","postalCodeLabel","postalCodeWidth","postalCodeErrorMessages","createElement","_extends","PostalCode","errorRequired","errorPattern","inputClassName","inputMode","autoComplete","City","trim","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { Props as FieldBlockProps } from '../../FieldBlock'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport CompositionField from '../Composition'\nimport { Path } from '../../types'\nimport useTranslation from '../../hooks/useTranslation'\nimport useDataValue from '../../hooks/useDataValue'\nimport { COUNTRY as defaultCountry } from '../../../../shared/defaults'\nimport { HelpProps } from '../../../../components/help-button/HelpButtonInline'\n\nexport type Props = Pick<\n FieldBlockProps,\n 'error' | 'warning' | 'info' | 'width' | 'className'\n> &\n Partial<Record<'postalCode' | 'city', StringFieldProps>> & {\n /**\n * Defines which country the postal code and city is for.\n * Setting it to anything other than `no` will remove the default norwegian postal code pattern.\n * You can also use the value of another field to define the country, by using a path value i.e. `/myCountryPath`.\n * Default: `NO`\n */\n /**\n * @deprecated – use countryCode instead. Will be removed in v11.\n */\n country?: Path | string\n\n /**\n * Defines which country the postal code and city is for.\n * Setting it to anything other than `no` will remove the default norwegian postal code pattern.\n * You can also use the value of another field to define the countryCode, by using a path value i.e. `/myCountryCodePath`.\n * Default: `NO`\n */\n countryCode?: Path | string\n help?: HelpProps\n } & Pick<StringFieldProps, 'size'>\n\nfunction PostalCodeAndCity(props: Props) {\n const translations = useTranslation()\n const { getSourceValue } = useDataValue()\n\n const {\n postalCode = {},\n city = {},\n help,\n width = 'large',\n country,\n countryCode = defaultCountry,\n size,\n ...fieldBlockProps\n } = props\n\n const countryCodeValue = getSourceValue(country || countryCode)\n\n const handleCityDefaults = useCallback(\n (city: StringFieldProps) => {\n const props: StringFieldProps = {}\n\n switch (countryCodeValue) {\n case defaultCountry: {\n props.pattern = '^[A-Za-zÆØÅæøå -]+$'\n break\n }\n }\n\n return { ...props, ...city }\n },\n [countryCodeValue]\n )\n\n const {\n pattern: cityPattern,\n className: cityClassName,\n label: cityLabel,\n width: cityWidth,\n errorMessages: cityErrorMessages,\n } = handleCityDefaults(city)\n\n const handlePostalCodeDefaults = useCallback(\n (postalCode: StringFieldProps) => {\n const props: StringFieldProps = {}\n\n switch (countryCodeValue) {\n case defaultCountry:\n case 'DK':\n case 'CH': {\n props.mask = [/\\d/, /\\d/, /\\d/, /\\d/]\n props.pattern = '^[0-9]{4}$'\n props.placeholder = '0000'\n break\n }\n default:\n props.width = '8rem'\n break\n }\n\n return { ...props, ...postalCode }\n },\n [countryCodeValue]\n )\n\n const {\n mask: postalCodeMask,\n pattern: postalCodePattern,\n placeholder: postalCodePlaceHolder,\n className: postalCodeClassName,\n label: postalCodeLabel,\n width: postalCodeWidth,\n errorMessages: postalCodeErrorMessages,\n } = handlePostalCodeDefaults(postalCode)\n\n return (\n <CompositionField\n className={classnames(\n 'dnb-forms-field-postal-code-and-city',\n props.className\n )}\n {...fieldBlockProps}\n width={width}\n >\n <StringField\n {...postalCode}\n size={size}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__postal-code',\n postalCodeClassName\n )}\n label={postalCodeLabel ?? translations.PostalCode.label}\n mask={postalCodeMask}\n pattern={postalCodePattern}\n placeholder={postalCodePlaceHolder}\n errorMessages={useMemo(\n () => ({\n 'Field.errorRequired': translations.PostalCode.errorRequired,\n 'Field.errorPattern': translations.PostalCode.errorPattern,\n ...postalCodeErrorMessages,\n }),\n [\n postalCodeErrorMessages,\n translations.PostalCode.errorPattern,\n translations.PostalCode.errorRequired,\n ]\n )}\n width={postalCodeWidth ?? false}\n inputClassName=\"dnb-forms-field-postal-code-and-city__postal-code-input\"\n inputMode=\"numeric\"\n autoComplete=\"postal-code\"\n data-country-code={country || countryCode}\n />\n\n <StringField\n help={help}\n {...city}\n size={size}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__city',\n cityClassName\n )}\n label={cityLabel ?? translations.City.label}\n errorMessages={useMemo(\n () => ({\n 'Field.errorRequired': translations.City.errorRequired,\n 'Field.errorPattern': translations.City.errorPattern,\n ...cityErrorMessages,\n }),\n [\n cityErrorMessages,\n translations.City.errorPattern,\n translations.City.errorRequired,\n ]\n )}\n pattern={cityPattern}\n trim\n width={cityWidth ?? 'stretch'}\n inputClassName=\"dnb-forms-field-postal-code-and-city__city-input\"\n autoComplete=\"address-level2\"\n />\n </CompositionField>\n )\n}\n\nPostalCodeAndCity._supportsSpacingProps = true\nexport default PostalCodeAndCity\n"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { FieldProperties } from '../FieldDocs';
2
+ import { stringProperties } from '../String/StringDocs';
2
3
  export const PostalCodeAndCityProperties = {
3
4
  countryCode: {
4
5
  doc: 'Defines which country the postal code and city is for, based on the ISO 3166-1 alpha-2 format i.e. `NO`, `DE` etc. ' + 'Setting it to anything other than `NO` will remove the default norwegian postal code pattern. ' + 'You can also use the value of another field to define the countryCode, by using a path value i.e. `/myCountryCodePath`. ' + 'Defaults to `NO`',
@@ -15,6 +16,7 @@ export const PostalCodeAndCityProperties = {
15
16
  type: 'object',
16
17
  status: 'required'
17
18
  },
18
- help: FieldProperties.help
19
+ help: FieldProperties.help,
20
+ size: stringProperties.size
19
21
  };
20
22
  //# sourceMappingURL=PostalCodeAndCityDocs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PostalCodeAndCityDocs.js","names":["FieldProperties","PostalCodeAndCityProperties","countryCode","doc","type","status","postalCode","city","help"],"sources":["../../../../../../src/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { FieldProperties } from '../FieldDocs'\n\nexport const PostalCodeAndCityProperties: PropertiesTableProps = {\n countryCode: {\n doc:\n 'Defines which country the postal code and city is for, based on the ISO 3166-1 alpha-2 format i.e. `NO`, `DE` etc. ' +\n 'Setting it to anything other than `NO` will remove the default norwegian postal code pattern. ' +\n 'You can also use the value of another field to define the countryCode, by using a path value i.e. `/myCountryCodePath`. ' +\n 'Defaults to `NO`',\n type: ['Path', 'string'],\n status: 'optional',\n },\n postalCode: {\n doc: 'Properties for the [Field.String](/uilib/extensions/forms/base-fields/String/) component for postal code.',\n type: 'object',\n status: 'required',\n },\n city: {\n doc: 'Properties for the [Field.String](/uilib/extensions/forms/base-fields/String/) component for city.',\n type: 'object',\n status: 'required',\n },\n help: FieldProperties.help,\n}\n"],"mappings":"AACA,SAASA,eAAe,QAAQ,cAAc;AAE9C,OAAO,MAAMC,2BAAiD,GAAG;EAC/DC,WAAW,EAAE;IACXC,GAAG,EACD,qHAAqH,GACrH,gGAAgG,GAChG,0HAA0H,GAC1H,kBAAkB;IACpBC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;IACxBC,MAAM,EAAE;EACV,CAAC;EACDC,UAAU,EAAE;IACVH,GAAG,EAAE,2GAA2G;IAChHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,IAAI,EAAE;IACJJ,GAAG,EAAE,oGAAoG;IACzGC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,IAAI,EAAER,eAAe,CAACQ;AACxB,CAAC"}
1
+ {"version":3,"file":"PostalCodeAndCityDocs.js","names":["FieldProperties","stringProperties","PostalCodeAndCityProperties","countryCode","doc","type","status","postalCode","city","help","size"],"sources":["../../../../../../src/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { FieldProperties } from '../FieldDocs'\nimport { stringProperties } from '../String/StringDocs'\n\nexport const PostalCodeAndCityProperties: PropertiesTableProps = {\n countryCode: {\n doc:\n 'Defines which country the postal code and city is for, based on the ISO 3166-1 alpha-2 format i.e. `NO`, `DE` etc. ' +\n 'Setting it to anything other than `NO` will remove the default norwegian postal code pattern. ' +\n 'You can also use the value of another field to define the countryCode, by using a path value i.e. `/myCountryCodePath`. ' +\n 'Defaults to `NO`',\n type: ['Path', 'string'],\n status: 'optional',\n },\n postalCode: {\n doc: 'Properties for the [Field.String](/uilib/extensions/forms/base-fields/String/) component for postal code.',\n type: 'object',\n status: 'required',\n },\n city: {\n doc: 'Properties for the [Field.String](/uilib/extensions/forms/base-fields/String/) component for city.',\n type: 'object',\n status: 'required',\n },\n help: FieldProperties.help,\n size: stringProperties.size,\n}\n"],"mappings":"AACA,SAASA,eAAe,QAAQ,cAAc;AAC9C,SAASC,gBAAgB,QAAQ,sBAAsB;AAEvD,OAAO,MAAMC,2BAAiD,GAAG;EAC/DC,WAAW,EAAE;IACXC,GAAG,EACD,qHAAqH,GACrH,gGAAgG,GAChG,0HAA0H,GAC1H,kBAAkB;IACpBC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;IACxBC,MAAM,EAAE;EACV,CAAC;EACDC,UAAU,EAAE;IACVH,GAAG,EAAE,2GAA2G;IAChHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,IAAI,EAAE;IACJJ,GAAG,EAAE,oGAAoG;IACzGC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,IAAI,EAAET,eAAe,CAACS,IAAI;EAC1BC,IAAI,EAAET,gBAAgB,CAACS;AACzB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { type CountryType, type CountryLang } from '../../constants/countries';
2
2
  import { FieldPropsWithExtraValue } from '../../types';
3
3
  import { FieldBlockWidth } from '../../FieldBlock';
4
+ import { AutocompleteAllProps } from '../../../../components/autocomplete/Autocomplete';
4
5
  export type CountryFilterSet = 'Scandinavia' | 'Nordic' | 'Europe' | 'Prioritized';
5
6
  export type { CountryType };
6
7
  export type Props = FieldPropsWithExtraValue<string, CountryType, undefined | string> & {
@@ -21,6 +22,10 @@ export type Props = FieldPropsWithExtraValue<string, CountryType, undefined | st
21
22
  * The width of the component.
22
23
  */
23
24
  width?: FieldBlockWidth;
25
+ /**
26
+ * The size of the component.
27
+ */
28
+ size?: AutocompleteAllProps['size'];
24
29
  };
25
30
  declare function SelectCountry(props: Props): import("react/jsx-runtime").JSX.Element;
26
31
  declare namespace SelectCountry {
@@ -62,6 +62,7 @@ function SelectCountry(props) {
62
62
  countries: ccFilter = 'Prioritized',
63
63
  hasError,
64
64
  disabled,
65
+ size,
65
66
  value,
66
67
  width,
67
68
  htmlAttributes,
@@ -166,6 +167,7 @@ function SelectCountry(props) {
166
167
  data: dataRef.current,
167
168
  value: typeof value === 'string' ? value : null,
168
169
  disabled: disabled,
170
+ size: size,
169
171
  on_show: fillData,
170
172
  on_focus: onFocusHandler,
171
173
  on_blur: handleBlur,
@@ -1 +1 @@
1
- {"version":3,"file":"SelectCountry.js","names":["React","useCallback","useContext","useMemo","useRef","classnames","SharedContext","FieldBlockContext","LOCALE","Autocomplete","pickSpacingProps","countries","prioritizedCountries","useFieldProps","FieldBlock","useTranslation","SelectCountry","props","_props$width","sharedContext","fieldBlockContext","label","defaultLabel","placeholder","defaultPlaceholder","errorRequired","lang","locale","split","getCountryObjectByIso","value","country","find","_ref","iso","i18n","provideAdditionalArgs","errorMessages","required","preparedProps","_objectSpread","width","composition","id","path","itemPath","className","ccFilter","hasError","disabled","htmlAttributes","handleFocus","handleBlur","handleChange","updateValue","setDisplayValue","forceUpdate","filterCountries","dataRef","langRef","wasFilled","filter","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","Object","values","some","s","includes","_getCountryObjectByIs","_getCountryObjectByIs2","fieldBlockProps","forId","undefined","contentWidth","createElement","_extends","input_icon","on_show","on_focus","on_blur","on_change","on_type","stretch","status","show_submit_button","keep_selection","autoComplete","no_animation","noAnimation","makeObject","_country$i18n$lang","content","en","arguments","length","sortedCountries","_ref6","_ref7","_String","_String$localeCompare","a","b","indexA","indexOf","indexB","priorityA","priorityB","String","localeCompare","call","map","result","_country$regions","regions","continent","makeCountryFilterSet","_country$regions2","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/SelectCountry/SelectCountry.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport { LOCALE } from '../../../../shared/defaults'\nimport { Autocomplete } from '../../../../components'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport countries, {\n prioritizedCountries,\n type CountryType,\n type CountryLang,\n} from '../../constants/countries'\nimport { useFieldProps } from '../../hooks'\nimport { FieldPropsWithExtraValue } from '../../types'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type CountryFilterSet =\n | 'Scandinavia'\n | 'Nordic'\n | 'Europe'\n | 'Prioritized'\nexport type { CountryType }\n\nexport type Props = FieldPropsWithExtraValue<\n string,\n CountryType,\n undefined | string\n> & {\n /**\n * Lists only the countries you want to show. Can be `Scandinavia`, `Nordic`, `Europe` or `Prioritized`.\n * Defaults to `Prioritized`.\n */\n countries?: CountryFilterSet\n\n /**\n * Use this prop to filter out certain countries. The function receives the country object and should return a boolean. Returning `false` will omit the country.\n */\n filterCountries?: (country: CountryType) => boolean\n\n /**\n * For internal testing purposes\n */\n noAnimation?: boolean\n\n /**\n * The width of the component.\n */\n width?: FieldBlockWidth\n}\n\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 value,\n width,\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n setDisplayValue,\n forceUpdate,\n filterCountries,\n } = useFieldProps(preparedProps)\n\n const dataRef = useRef(null)\n const langRef = useRef(lang)\n const wasFilled = useRef(false)\n\n const filter = useCallback(\n (country: CountryType) => {\n return countryFilter(country, filterCountries, ccFilter)\n },\n [ccFilter, filterCountries]\n )\n\n /**\n * We do not process the whole country list at the first render.\n * Only when the Autocomplete opens (focus).\n * To achieve this, we use memo instead of effect to update refs in sync.\n *\n * We set or update the data list depending on if the countrycode changes or lang changes.\n * We then update data set when value changes.\n */\n useMemo(() => {\n const isLangChange = lang !== langRef.current\n\n if (isLangChange || !wasFilled.current) {\n langRef.current = lang\n dataRef.current = getCountryData({\n lang,\n filter: !wasFilled.current\n ? (country) => country.iso === value\n : filter,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n })\n\n // To force Autocomplete to re-evaluate the internal data\n if (isLangChange && value && typeof window !== 'undefined') {\n updateValue(null)\n window.requestAnimationFrame(() => {\n updateValue(value)\n })\n }\n }\n }, [lang, filter, ccFilter, updateValue, value])\n\n const handleCountryChange = useCallback(\n ({ data }: { data: { selectedKey: string } }) => {\n const newValue = data?.selectedKey\n const country = getCountryObjectByIso(newValue)\n if (country?.iso) {\n handleChange(country.iso, country)\n }\n },\n [getCountryObjectByIso, handleChange]\n )\n\n const fillData = useCallback(() => {\n if (!wasFilled.current) {\n wasFilled.current = true\n dataRef.current = getCountryData({\n lang: langRef.current,\n filter,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n })\n forceUpdate()\n }\n }, [ccFilter, filter, forceUpdate])\n\n const onFocusHandler = useCallback(\n ({ updateData }) => {\n fillData()\n updateData(dataRef.current)\n handleFocus()\n },\n [fillData, handleFocus]\n )\n\n const onTypeHandler = useCallback(\n ({ value: currentValue, setHidden, event }) => {\n // Handle browser autofill/autocomplete\n if (typeof event?.nativeEvent?.data === 'undefined') {\n const search = currentValue.toLowerCase()\n const country = countries.find(({ i18n }) =>\n Object.values(i18n).some((s) => s.toLowerCase().includes(search))\n )\n if (country?.iso) {\n setHidden()\n handleChange(country.iso)\n }\n }\n },\n [handleChange]\n )\n\n useMemo(() => {\n if (path || itemPath) {\n setDisplayValue(\n getCountryObjectByIso(value)?.i18n?.[langRef.current]\n )\n }\n }, [getCountryObjectByIso, itemPath, path, setDisplayValue, value])\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: classnames('dnb-forms-field-select-country', className),\n label,\n width:\n width === 'stretch' || fieldBlockContext?.composition\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Autocomplete\n id={id}\n placeholder={placeholder}\n input_icon={false}\n data={dataRef.current}\n value={typeof value === 'string' ? value : null}\n disabled={disabled}\n on_show={fillData}\n on_focus={onFocusHandler}\n on_blur={handleBlur}\n on_change={handleCountryChange}\n on_type={onTypeHandler}\n stretch\n status={hasError ? 'error' : undefined}\n show_submit_button\n keep_selection\n autoComplete=\"country-name\"\n no_animation={props.noAnimation}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n}\n\ntype GetCountryData = {\n lang?: CountryLang\n filter?: Props['filterCountries']\n sort?: Extract<CountryFilterSet, 'Prioritized'>\n makeObject?: (\n country: CountryType,\n lang: string\n ) => {\n selectedKey: string\n selected_value?: string\n content: string\n }\n}\n\nexport function getCountryData({\n lang = 'nb',\n filter = null,\n sort = null,\n makeObject = (country: CountryType, lang: string) => {\n const content = country.i18n[lang] ?? country.i18n.en\n return {\n selectedKey: country.iso,\n content,\n }\n },\n}: GetCountryData = {}) {\n const sortedCountries = countries\n .filter((country) => {\n if (typeof filter === 'function') {\n return filter(country)\n }\n\n return !filter\n })\n .sort(({ i18n: a }, { i18n: b }) => {\n if (sort === 'Prioritized') {\n const indexA = prioritizedCountries.indexOf(a['en'])\n const indexB = prioritizedCountries.indexOf(b['en'])\n\n const priorityA = indexA !== -1\n const priorityB = indexB !== -1\n\n if (priorityA && priorityB) {\n return indexA - indexB\n } else if (priorityA) {\n return -1\n } else if (priorityB) {\n return 1\n }\n }\n\n return String(a[lang])?.localeCompare?.(b[lang], 'nb') // Always sort by nb, because åøæ (for Åland) is not in the en alphabet\n })\n .map((country) => makeObject(country, lang))\n\n if (sortedCountries.length === 0) {\n return undefined\n }\n\n return sortedCountries\n}\n\nexport function countryFilter(\n country: CountryType,\n filterCountries: (country: CountryType) => boolean,\n ccFilter: CountryFilterSet\n) {\n let result = true\n\n if (ccFilter !== 'Prioritized') {\n switch (ccFilter) {\n case 'Scandinavia':\n case 'Nordic': {\n result = country.regions?.includes(ccFilter)\n break\n }\n case 'Europe': {\n result = country.continent.includes(ccFilter)\n break\n }\n }\n }\n\n if (result && filterCountries) {\n result = filterCountries(country)\n }\n\n return result\n}\n\nexport function makeCountryFilterSet(ccFilter: CountryFilterSet) {\n return (country: CountryType) => {\n switch (ccFilter) {\n case 'Scandinavia':\n case 'Nordic':\n return country.regions?.includes(ccFilter)\n case 'Europe':\n return country.continent.includes(ccFilter)\n }\n return true\n }\n}\n\nSelectCountry._supportsSpacingProps = true\nexport default SelectCountry\n"],"mappings":"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"}
1
+ {"version":3,"file":"SelectCountry.js","names":["React","useCallback","useContext","useMemo","useRef","classnames","SharedContext","FieldBlockContext","LOCALE","Autocomplete","pickSpacingProps","countries","prioritizedCountries","useFieldProps","FieldBlock","useTranslation","SelectCountry","props","_props$width","sharedContext","fieldBlockContext","label","defaultLabel","placeholder","defaultPlaceholder","errorRequired","lang","locale","split","getCountryObjectByIso","value","country","find","_ref","iso","i18n","provideAdditionalArgs","errorMessages","required","preparedProps","_objectSpread","width","composition","id","path","itemPath","className","ccFilter","hasError","disabled","size","htmlAttributes","handleFocus","handleBlur","handleChange","updateValue","setDisplayValue","forceUpdate","filterCountries","dataRef","langRef","wasFilled","filter","countryFilter","isLangChange","current","getCountryData","sort","window","requestAnimationFrame","handleCountryChange","_ref2","data","newValue","selectedKey","fillData","onFocusHandler","_ref3","updateData","onTypeHandler","_ref4","_event$nativeEvent","currentValue","setHidden","event","nativeEvent","search","toLowerCase","_ref5","Object","values","some","s","includes","_getCountryObjectByIs","_getCountryObjectByIs2","fieldBlockProps","forId","undefined","contentWidth","createElement","_extends","input_icon","on_show","on_focus","on_blur","on_change","on_type","stretch","status","show_submit_button","keep_selection","autoComplete","no_animation","noAnimation","makeObject","_country$i18n$lang","content","en","arguments","length","sortedCountries","_ref6","_ref7","_String","_String$localeCompare","a","b","indexA","indexOf","indexB","priorityA","priorityB","String","localeCompare","call","map","result","_country$regions","regions","continent","makeCountryFilterSet","_country$regions2","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/SelectCountry/SelectCountry.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport { LOCALE } from '../../../../shared/defaults'\nimport { Autocomplete } from '../../../../components'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport countries, {\n prioritizedCountries,\n type CountryType,\n type CountryLang,\n} from '../../constants/countries'\nimport { useFieldProps } from '../../hooks'\nimport { FieldPropsWithExtraValue } from '../../types'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport useTranslation from '../../hooks/useTranslation'\nimport { AutocompleteAllProps } from '../../../../components/autocomplete/Autocomplete'\n\nexport type CountryFilterSet =\n | 'Scandinavia'\n | 'Nordic'\n | 'Europe'\n | 'Prioritized'\nexport type { CountryType }\n\nexport type Props = FieldPropsWithExtraValue<\n string,\n CountryType,\n undefined | string\n> & {\n /**\n * Lists only the countries you want to show. Can be `Scandinavia`, `Nordic`, `Europe` or `Prioritized`.\n * Defaults to `Prioritized`.\n */\n countries?: CountryFilterSet\n\n /**\n * Use this prop to filter out certain countries. The function receives the country object and should return a boolean. Returning `false` will omit the country.\n */\n filterCountries?: (country: CountryType) => boolean\n\n /**\n * For internal testing purposes\n */\n noAnimation?: boolean\n\n /**\n * The width of the component.\n */\n width?: FieldBlockWidth\n\n /**\n * The size of the component.\n */\n size?: AutocompleteAllProps['size']\n}\n\nfunction SelectCountry(props: Props) {\n const sharedContext = useContext(SharedContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const {\n label: defaultLabel,\n placeholder: defaultPlaceholder,\n errorRequired,\n } = useTranslation().SelectCountry\n const lang = (sharedContext.locale || LOCALE).split(\n '-'\n )[0] as CountryLang\n\n const getCountryObjectByIso = useCallback(\n (value: CountryType['iso']) => {\n const country = countries.find(({ iso }) => value === iso)\n if (country?.i18n) {\n country['name'] = country.i18n[lang]\n }\n return country\n },\n [lang]\n )\n\n const provideAdditionalArgs = useCallback(\n (value: CountryType['iso']) => {\n const country = getCountryObjectByIso(value)\n\n if (country?.iso) {\n return country\n }\n },\n [getCountryObjectByIso]\n )\n\n const errorMessages = useMemo(\n () => ({\n required: errorRequired,\n }),\n [errorRequired]\n )\n\n const preparedProps: Props = {\n errorMessages,\n ...props,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'large'),\n provideAdditionalArgs,\n }\n\n const {\n id,\n path,\n itemPath,\n className,\n placeholder = defaultPlaceholder,\n label = defaultLabel,\n countries: ccFilter = 'Prioritized',\n hasError,\n disabled,\n size,\n value,\n width,\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n setDisplayValue,\n forceUpdate,\n filterCountries,\n } = useFieldProps(preparedProps)\n\n const dataRef = useRef(null)\n const langRef = useRef(lang)\n const wasFilled = useRef(false)\n\n const filter = useCallback(\n (country: CountryType) => {\n return countryFilter(country, filterCountries, ccFilter)\n },\n [ccFilter, filterCountries]\n )\n\n /**\n * We do not process the whole country list at the first render.\n * Only when the Autocomplete opens (focus).\n * To achieve this, we use memo instead of effect to update refs in sync.\n *\n * We set or update the data list depending on if the countrycode changes or lang changes.\n * We then update data set when value changes.\n */\n useMemo(() => {\n const isLangChange = lang !== langRef.current\n\n if (isLangChange || !wasFilled.current) {\n langRef.current = lang\n dataRef.current = getCountryData({\n lang,\n filter: !wasFilled.current\n ? (country) => country.iso === value\n : filter,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n })\n\n // To force Autocomplete to re-evaluate the internal data\n if (isLangChange && value && typeof window !== 'undefined') {\n updateValue(null)\n window.requestAnimationFrame(() => {\n updateValue(value)\n })\n }\n }\n }, [lang, filter, ccFilter, updateValue, value])\n\n const handleCountryChange = useCallback(\n ({ data }: { data: { selectedKey: string } }) => {\n const newValue = data?.selectedKey\n const country = getCountryObjectByIso(newValue)\n if (country?.iso) {\n handleChange(country.iso, country)\n }\n },\n [getCountryObjectByIso, handleChange]\n )\n\n const fillData = useCallback(() => {\n if (!wasFilled.current) {\n wasFilled.current = true\n dataRef.current = getCountryData({\n lang: langRef.current,\n filter,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n })\n forceUpdate()\n }\n }, [ccFilter, filter, forceUpdate])\n\n const onFocusHandler = useCallback(\n ({ updateData }) => {\n fillData()\n updateData(dataRef.current)\n handleFocus()\n },\n [fillData, handleFocus]\n )\n\n const onTypeHandler = useCallback(\n ({ value: currentValue, setHidden, event }) => {\n // Handle browser autofill/autocomplete\n if (typeof event?.nativeEvent?.data === 'undefined') {\n const search = currentValue.toLowerCase()\n const country = countries.find(({ i18n }) =>\n Object.values(i18n).some((s) => s.toLowerCase().includes(search))\n )\n if (country?.iso) {\n setHidden()\n handleChange(country.iso)\n }\n }\n },\n [handleChange]\n )\n\n useMemo(() => {\n if (path || itemPath) {\n setDisplayValue(\n getCountryObjectByIso(value)?.i18n?.[langRef.current]\n )\n }\n }, [getCountryObjectByIso, itemPath, path, setDisplayValue, value])\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: classnames('dnb-forms-field-select-country', className),\n label,\n width:\n width === 'stretch' || fieldBlockContext?.composition\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Autocomplete\n id={id}\n placeholder={placeholder}\n input_icon={false}\n data={dataRef.current}\n value={typeof value === 'string' ? value : null}\n disabled={disabled}\n size={size}\n on_show={fillData}\n on_focus={onFocusHandler}\n on_blur={handleBlur}\n on_change={handleCountryChange}\n on_type={onTypeHandler}\n stretch\n status={hasError ? 'error' : undefined}\n show_submit_button\n keep_selection\n autoComplete=\"country-name\"\n no_animation={props.noAnimation}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n}\n\ntype GetCountryData = {\n lang?: CountryLang\n filter?: Props['filterCountries']\n sort?: Extract<CountryFilterSet, 'Prioritized'>\n makeObject?: (\n country: CountryType,\n lang: string\n ) => {\n selectedKey: string\n selected_value?: string\n content: string\n }\n}\n\nexport function getCountryData({\n lang = 'nb',\n filter = null,\n sort = null,\n makeObject = (country: CountryType, lang: string) => {\n const content = country.i18n[lang] ?? country.i18n.en\n return {\n selectedKey: country.iso,\n content,\n }\n },\n}: GetCountryData = {}) {\n const sortedCountries = countries\n .filter((country) => {\n if (typeof filter === 'function') {\n return filter(country)\n }\n\n return !filter\n })\n .sort(({ i18n: a }, { i18n: b }) => {\n if (sort === 'Prioritized') {\n const indexA = prioritizedCountries.indexOf(a['en'])\n const indexB = prioritizedCountries.indexOf(b['en'])\n\n const priorityA = indexA !== -1\n const priorityB = indexB !== -1\n\n if (priorityA && priorityB) {\n return indexA - indexB\n } else if (priorityA) {\n return -1\n } else if (priorityB) {\n return 1\n }\n }\n\n return String(a[lang])?.localeCompare?.(b[lang], 'nb') // Always sort by nb, because åøæ (for Åland) is not in the en alphabet\n })\n .map((country) => makeObject(country, lang))\n\n if (sortedCountries.length === 0) {\n return undefined\n }\n\n return sortedCountries\n}\n\nexport function countryFilter(\n country: CountryType,\n filterCountries: (country: CountryType) => boolean,\n ccFilter: CountryFilterSet\n) {\n let result = true\n\n if (ccFilter !== 'Prioritized') {\n switch (ccFilter) {\n case 'Scandinavia':\n case 'Nordic': {\n result = country.regions?.includes(ccFilter)\n break\n }\n case 'Europe': {\n result = country.continent.includes(ccFilter)\n break\n }\n }\n }\n\n if (result && filterCountries) {\n result = filterCountries(country)\n }\n\n return result\n}\n\nexport function makeCountryFilterSet(ccFilter: CountryFilterSet) {\n return (country: CountryType) => {\n switch (ccFilter) {\n case 'Scandinavia':\n case 'Nordic':\n return country.regions?.includes(ccFilter)\n case 'Europe':\n return country.continent.includes(ccFilter)\n }\n return true\n }\n}\n\nSelectCountry._supportsSpacingProps = true\nexport default SelectCountry\n"],"mappings":"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"}
@@ -1,4 +1,8 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1
4
  import { getFieldEventsWithTypes } from '../FieldDocs';
5
+ import { autocompleteProperties } from '../../../../components/autocomplete/AutocompleteDocs';
2
6
  export const SelectCountryProperties = {
3
7
  countries: {
4
8
  doc: 'List only a certain set of countries: `Scandinavia`, `Nordic`, `Europe` or `Prioritized`(all countries [sorted by priority](/uilib/extensions/forms/feature-fields/SelectCountry/#filter-or-prioritize-country-listing)). Defaults to `Prioritized`.',
@@ -9,7 +13,10 @@ export const SelectCountryProperties = {
9
13
  doc: '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.',
10
14
  type: 'function',
11
15
  status: 'optional'
12
- }
16
+ },
17
+ size: _objectSpread(_objectSpread({}, autocompleteProperties.size), {}, {
18
+ doc: `${autocompleteProperties.size.doc} Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).`
19
+ })
13
20
  };
14
21
  export const SelectCountryGeneralEvents = getFieldEventsWithTypes({
15
22
  type: 'string',
@@ -1 +1 @@
1
- {"version":3,"file":"SelectCountryDocs.js","names":["getFieldEventsWithTypes","SelectCountryProperties","countries","doc","type","status","filterCountries","SelectCountryGeneralEvents","optional"],"sources":["../../../../../../src/extensions/forms/Field/SelectCountry/SelectCountryDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { getFieldEventsWithTypes } from '../FieldDocs'\n\nexport const SelectCountryProperties: PropertiesTableProps = {\n countries: {\n doc: 'List only a certain set of countries: `Scandinavia`, `Nordic`, `Europe` or `Prioritized`(all countries [sorted by priority](/uilib/extensions/forms/feature-fields/SelectCountry/#filter-or-prioritize-country-listing)). Defaults to `Prioritized`.',\n type: 'string',\n status: 'optional',\n },\n filterCountries: {\n doc: '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 type: 'function',\n status: 'optional',\n },\n}\n\nexport const SelectCountryGeneralEvents = getFieldEventsWithTypes(\n { type: 'string', optional: true },\n { type: 'object', optional: true }\n)\n"],"mappings":"AACA,SAASA,uBAAuB,QAAQ,cAAc;AAEtD,OAAO,MAAMC,uBAA6C,GAAG;EAC3DC,SAAS,EAAE;IACTC,GAAG,EAAE,sPAAsP;IAC3PC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,eAAe,EAAE;IACfH,GAAG,EAAE,+JAA+J;IACpKC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAME,0BAA0B,GAAGP,uBAAuB,CAC/D;EAAEI,IAAI,EAAE,QAAQ;EAAEI,QAAQ,EAAE;AAAK,CAAC,EAClC;EAAEJ,IAAI,EAAE,QAAQ;EAAEI,QAAQ,EAAE;AAAK,CACnC,CAAC"}
1
+ {"version":3,"file":"SelectCountryDocs.js","names":["getFieldEventsWithTypes","autocompleteProperties","SelectCountryProperties","countries","doc","type","status","filterCountries","size","_objectSpread","SelectCountryGeneralEvents","optional"],"sources":["../../../../../../src/extensions/forms/Field/SelectCountry/SelectCountryDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { getFieldEventsWithTypes } from '../FieldDocs'\nimport { autocompleteProperties } from '../../../../components/autocomplete/AutocompleteDocs'\n\nexport const SelectCountryProperties: PropertiesTableProps = {\n countries: {\n doc: 'List only a certain set of countries: `Scandinavia`, `Nordic`, `Europe` or `Prioritized`(all countries [sorted by priority](/uilib/extensions/forms/feature-fields/SelectCountry/#filter-or-prioritize-country-listing)). Defaults to `Prioritized`.',\n type: 'string',\n status: 'optional',\n },\n filterCountries: {\n doc: '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 type: 'function',\n status: 'optional',\n },\n size: {\n ...autocompleteProperties.size,\n doc: `${autocompleteProperties.size.doc} Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).`,\n },\n}\n\nexport const SelectCountryGeneralEvents = getFieldEventsWithTypes(\n { type: 'string', optional: true },\n { type: 'object', optional: true }\n)\n"],"mappings":";;;AACA,SAASA,uBAAuB,QAAQ,cAAc;AACtD,SAASC,sBAAsB,QAAQ,sDAAsD;AAE7F,OAAO,MAAMC,uBAA6C,GAAG;EAC3DC,SAAS,EAAE;IACTC,GAAG,EAAE,sPAAsP;IAC3PC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,eAAe,EAAE;IACfH,GAAG,EAAE,+JAA+J;IACpKC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDE,IAAI,EAAAC,aAAA,CAAAA,aAAA,KACCR,sBAAsB,CAACO,IAAI;IAC9BJ,GAAG,EAAG,GAAEH,sBAAsB,CAACO,IAAI,CAACJ,GAAI;EAAuG;AAEnJ,CAAC;AAED,OAAO,MAAMM,0BAA0B,GAAGV,uBAAuB,CAC/D;EAAEK,IAAI,EAAE,QAAQ;EAAEM,QAAQ,EAAE;AAAK,CAAC,EAClC;EAAEN,IAAI,EAAE,QAAQ;EAAEM,QAAQ,EAAE;AAAK,CACnC,CAAC"}
@@ -9,6 +9,10 @@ import { HelpProps } from '../../../../components/help-button/HelpButtonInline';
9
9
  import { DrawerListProps } from '../../../../fragments/DrawerList';
10
10
  import { ToCamelCase } from '../../../../shared/helpers/withCamelCaseProps';
11
11
  import { FormError } from '../../utils';
12
+ import type { RadioProps } from '../../../../components/Radio';
13
+ import type { ToggleButtonProps } from '../../../../components/ToggleButton';
14
+ import type { RadioGroupProps } from '../../../../components/radio/RadioGroup';
15
+ import type { ToggleButtonGroupProps } from '../../../../components/toggle-button/ToggleButtonGroup';
12
16
  type IOption = {
13
17
  title: string | React.ReactNode;
14
18
  value: number | string;
@@ -59,6 +63,10 @@ export type Props = FieldProps<IOption['value']> & {
59
63
  * Dropdown specific props
60
64
  */
61
65
  dropdownProps?: ToCamelCase<DropdownAllProps>;
66
+ /**
67
+ * The size of the component.
68
+ */
69
+ size?: ToggleButtonGroupProps['size'] | RadioGroupProps['size'] | AutocompleteAllProps['size'] | DropdownAllProps['size'];
62
70
  /**
63
71
  * The content of the component.
64
72
  */
@@ -74,6 +82,7 @@ type OptionProps = React.ComponentProps<React.FC<{
74
82
  help: HelpProps;
75
83
  title: React.ReactNode;
76
84
  children: React.ReactNode;
85
+ size?: ToggleButtonProps['size'] | RadioProps['size'];
77
86
  }>>;
78
87
  export declare function mapOptions(children: React.ReactNode, { createOption, }: {
79
88
  createOption: (props: OptionProps, i: number) => React.ReactNode;
@@ -2,7 +2,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutPr
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
4
  var _em, _em2;
5
- const _excluded = ["value", "title", "children", "error", "help"];
5
+ const _excluded = ["value", "title", "children", "error", "help", "size"];
6
6
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
7
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
8
  import React, { useMemo, useCallback } from 'react';
@@ -31,6 +31,7 @@ function Selection(props) {
31
31
  error,
32
32
  hasError,
33
33
  disabled,
34
+ size,
34
35
  emptyValue,
35
36
  width = 'large',
36
37
  htmlAttributes,
@@ -107,10 +108,14 @@ function Selection(props) {
107
108
  }
108
109
  }
109
110
  });
110
- return React.createElement(FieldBlock, _extends({}, fieldBlockProps, {
111
- labelHeight: "small",
111
+ const additionalFieldBlockProps = {
112
112
  asFieldset: React.Children.count(items) > 1
113
- }), React.createElement(Component.Group, {
113
+ };
114
+ if (!size) {
115
+ additionalFieldBlockProps.labelHeight = 'small';
116
+ }
117
+ return React.createElement(FieldBlock, _extends({}, fieldBlockProps, additionalFieldBlockProps), React.createElement(Component.Group, {
118
+ size: size,
114
119
  className: cn,
115
120
  layout_direction: optionsLayout === 'horizontal' ? 'row' : 'column',
116
121
  disabled: disabled,
@@ -135,6 +140,7 @@ function Selection(props) {
135
140
  disabled
136
141
  }, htmlAttributes), {}, {
137
142
  data,
143
+ size,
138
144
  on_change: handleDropdownChange,
139
145
  on_show: handleShow,
140
146
  on_hide: handleHide,
@@ -171,7 +177,8 @@ function renderRadioItems(_ref6) {
171
177
  title,
172
178
  children,
173
179
  error,
174
- help
180
+ help,
181
+ size
175
182
  } = props,
176
183
  rest = _objectWithoutProperties(props, _excluded);
177
184
  const label = title !== null && title !== void 0 ? title : children;
@@ -191,7 +198,8 @@ function renderRadioItems(_ref6) {
191
198
  text: variant === 'button' ? label : undefined,
192
199
  value: String(value !== null && value !== void 0 ? value : valueProp) || undefined,
193
200
  status: (hasError || checkForError([error, info, warning])) && 'error',
194
- suffix: suffix
201
+ suffix: suffix,
202
+ size: size
195
203
  }, htmlAttributes, rest));
196
204
  };
197
205
  return [...(dataList || []).map((props, i) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Selection.js","names":["React","useMemo","useCallback","classnames","convertJsxToString","makeUniqueId","ToggleButton","Dropdown","Radio","Autocomplete","HelpButton","OptionField","useFieldProps","checkForError","pickSpacingProps","FieldBlock","convertCamelCaseProps","useDataValue","Selection","props","clearValue","id","className","variant","layout","optionsLayout","placeholder","value","info","warning","error","hasError","disabled","emptyValue","width","htmlAttributes","setHasFocus","handleChange","setDisplayValue","transformSelection","data","dataPath","children","autocompleteProps","dropdownProps","getValueByPath","dataList","handleDropdownChange","_ref","selectedKey","onChangeHandler","_ref2","undefined","handleShow","_ref3","handleHide","_ref4","cn","fieldBlockProps","_objectSpread","forId","disableStatusSummary","Component","items","renderRadioItems","iterateOverItems","_ref5","v","label","createElement","_extends","labelHeight","asFieldset","Children","count","Group","layout_direction","on_change","String","_data$find","renderDropdownItems","concat","makeOptions","filter","Boolean","displayValue","find","item","content","sharedProps","list_class","portal_class","title","status","on_show","on_hide","stretch","specificFieldBlockProps","contentWidth","_ref6","valueProp","optionsCount","length","createOption","i","help","rest","_objectWithoutProperties","_excluded","suffix","size","key","text","map","mapOptions","_ref7","child","isValidElement","type","nestedChildren","cloneElement","_child","_child$props","_child$props$children","_ref8","_props$title","_props$value","_em","selected_value","style","_em2","_supportsSpacingProps"],"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 convertCamelCaseProps,\n ToCamelCase,\n} from '../../../../shared/helpers/withCamelCaseProps'\nimport useDataValue from '../../hooks/useDataValue'\nimport { FormError } from '../../utils'\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' | '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 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 emptyValue,\n width = 'large',\n htmlAttributes,\n setHasFocus,\n handleChange,\n setDisplayValue,\n transformSelection,\n data,\n dataPath,\n children,\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 handleDropdownChange = useCallback(\n ({ data }) => {\n const selectedKey = data?.selectedKey\n handleChange?.(\n !selectedKey || selectedKey === clearValue\n ? emptyValue\n : selectedKey\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 switch (variant) {\n case 'radio':\n case 'button': {\n const Component = (\n variant === 'radio' ? Radio : 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 return (\n <FieldBlock\n {...fieldBlockProps}\n labelHeight=\"small\"\n asFieldset={React.Children.count(items) > 1}\n >\n <Component.Group\n className={cn}\n layout_direction={\n optionsLayout === 'horizontal' ? 'row' : 'column'\n }\n disabled={disabled}\n on_change={onChangeHandler}\n value={String(value ?? '') || undefined}\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 on_change: handleDropdownChange,\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 ? (convertCamelCaseProps(\n autocompleteProps\n ) as AutocompleteAllProps)\n : null)}\n />\n ) : (\n <Dropdown\n {...sharedProps}\n {...(dropdownProps\n ? (convertCamelCaseProps(\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 }>\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, ...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' ? Radio : 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={variant === 'radio' ? label : undefined}\n text={variant === 'button' ? label : undefined}\n value={String(value ?? valueProp) || undefined}\n status={\n (hasError || checkForError([error, info, warning])) && 'error'\n }\n suffix={suffix}\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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"}
1
+ {"version":3,"file":"Selection.js","names":["React","useMemo","useCallback","classnames","convertJsxToString","makeUniqueId","ToggleButton","Dropdown","Radio","Autocomplete","HelpButton","OptionField","useFieldProps","checkForError","pickSpacingProps","FieldBlock","convertCamelCaseProps","useDataValue","Selection","props","clearValue","id","className","variant","layout","optionsLayout","placeholder","value","info","warning","error","hasError","disabled","size","emptyValue","width","htmlAttributes","setHasFocus","handleChange","setDisplayValue","transformSelection","data","dataPath","children","autocompleteProps","dropdownProps","getValueByPath","dataList","handleDropdownChange","_ref","selectedKey","onChangeHandler","_ref2","undefined","handleShow","_ref3","handleHide","_ref4","cn","fieldBlockProps","_objectSpread","forId","disableStatusSummary","Component","items","renderRadioItems","iterateOverItems","_ref5","v","label","additionalFieldBlockProps","asFieldset","Children","count","labelHeight","createElement","_extends","Group","layout_direction","on_change","String","_data$find","renderDropdownItems","concat","makeOptions","filter","Boolean","displayValue","find","item","content","sharedProps","list_class","portal_class","title","status","on_show","on_hide","stretch","specificFieldBlockProps","contentWidth","_ref6","valueProp","optionsCount","length","createOption","i","help","rest","_objectWithoutProperties","_excluded","suffix","key","text","map","mapOptions","_ref7","child","isValidElement","type","nestedChildren","cloneElement","_child","_child$props","_child$props$children","_ref8","_props$title","_props$value","_em","selected_value","style","_em2","_supportsSpacingProps"],"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 convertCamelCaseProps,\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' | '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\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 handleDropdownChange = useCallback(\n ({ data }) => {\n const selectedKey = data?.selectedKey\n handleChange?.(\n !selectedKey || selectedKey === clearValue\n ? emptyValue\n : selectedKey\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 switch (variant) {\n case 'radio':\n case 'button': {\n const Component = (\n variant === 'radio' ? Radio : 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\n return (\n <FieldBlock {...fieldBlockProps} {...additionalFieldBlockProps}>\n <Component.Group\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 ?? '') || undefined}\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: handleDropdownChange,\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 ? (convertCamelCaseProps(\n autocompleteProps\n ) as AutocompleteAllProps)\n : null)}\n />\n ) : (\n <Dropdown\n {...sharedProps}\n {...(dropdownProps\n ? (convertCamelCaseProps(\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' ? Radio : 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={variant === 'radio' ? label : undefined}\n text={variant === 'button' ? label : undefined}\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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"}
@@ -44,6 +44,11 @@ export const SelectionProperties = {
44
44
  type: 'object',
45
45
  status: 'optional'
46
46
  },
47
+ size: {
48
+ doc: 'The sizes you can choose is small (1.5rem), default (2rem), medium (2.5rem) and large (3rem) are supported component sizes. Defaults to default / null. Also, if you define a number like size="2" then it will be forwarded as the input element attribute. Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).',
49
+ type: 'string',
50
+ status: 'optional'
51
+ },
47
52
  children: {
48
53
  doc: 'For providing Option components, and other children.',
49
54
  type: 'React.Node',
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionDocs.js","names":["SelectionProperties","variant","doc","type","status","value","transformSelection","optionsLayout","width","data","dataPath","autocompleteProps","dropdownProps","children"],"sources":["../../../../../../src/extensions/forms/Field/Selection/SelectionDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const SelectionProperties: PropertiesTableProps = {\n variant: {\n doc: 'Choice of UI feature. Can be: `dropdown`, `autocomplete`, `radio` or `button`.',\n type: 'string',\n status: 'optional',\n },\n value: {\n doc: 'Defines the `value`. When using variant `radio` or `button`, value has to be a `string`.',\n type: ['number', 'string'],\n status: 'optional',\n },\n transformSelection: {\n doc: 'Transform the displayed selection for Dropdown and Autocomplete variant. Use it to display a different value than the one in the data set. The first parameter is the props of the Option component or data item. You can return a React.Node that will be displayed in the selection.',\n type: 'function',\n status: 'optional',\n },\n optionsLayout: {\n doc: 'Layout for the list of options. Can be `horizontal` or `vertical`.',\n type: 'string',\n status: 'optional',\n },\n width: {\n doc: '`small`, `medium` or `large` for predefined standard widths, `stretch` for fill available width.',\n type: ['string', 'false'],\n status: 'optional',\n },\n data: {\n doc: 'Data to be used for the component. The object needs to have a `value` and a `title` property. Provide the Dropdown or Autocomplete data in the format documented here: [Dropdown](/uilib/components/dropdown) and [Autocomplete](/uilib/components/autocomplete) documentation.',\n type: 'array',\n status: 'optional',\n },\n dataPath: {\n doc: 'The path to the context data (Form.Handler). The context data object needs to have a `value` and a `title` property. The generated options will be placed above given JSX based children.',\n type: 'string',\n status: 'optional',\n },\n autocompleteProps: {\n doc: 'Forward any additional props (camelCase) to the [Autocomplete](/uilib/components/autocomplete/) component.',\n type: 'object',\n status: 'optional',\n },\n dropdownProps: {\n doc: 'Forward any additional props (camelCase) to the [Dropdown](/uilib/components/dropdown/) component.',\n type: 'object',\n status: 'optional',\n },\n children: {\n doc: 'For providing Option components, and other children.',\n type: 'React.Node',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,mBAAyC,GAAG;EACvDC,OAAO,EAAE;IACPC,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,KAAK,EAAE;IACLH,GAAG,EAAE,0FAA0F;IAC/FC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDE,kBAAkB,EAAE;IAClBJ,GAAG,EAAE,wRAAwR;IAC7RC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDG,aAAa,EAAE;IACbL,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,KAAK,EAAE;IACLN,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDK,IAAI,EAAE;IACJP,GAAG,EAAE,iRAAiR;IACtRC,IAAI,EAAE,OAAO;IACbC,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRR,GAAG,EAAE,2LAA2L;IAChMC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,iBAAiB,EAAE;IACjBT,GAAG,EAAE,4GAA4G;IACjHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,aAAa,EAAE;IACbV,GAAG,EAAE,oGAAoG;IACzGC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDS,QAAQ,EAAE;IACRX,GAAG,EAAE,sDAAsD;IAC3DC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV;AACF,CAAC"}
1
+ {"version":3,"file":"SelectionDocs.js","names":["SelectionProperties","variant","doc","type","status","value","transformSelection","optionsLayout","width","data","dataPath","autocompleteProps","dropdownProps","size","children"],"sources":["../../../../../../src/extensions/forms/Field/Selection/SelectionDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const SelectionProperties: PropertiesTableProps = {\n variant: {\n doc: 'Choice of UI feature. Can be: `dropdown`, `autocomplete`, `radio` or `button`.',\n type: 'string',\n status: 'optional',\n },\n value: {\n doc: 'Defines the `value`. When using variant `radio` or `button`, value has to be a `string`.',\n type: ['number', 'string'],\n status: 'optional',\n },\n transformSelection: {\n doc: 'Transform the displayed selection for Dropdown and Autocomplete variant. Use it to display a different value than the one in the data set. The first parameter is the props of the Option component or data item. You can return a React.Node that will be displayed in the selection.',\n type: 'function',\n status: 'optional',\n },\n optionsLayout: {\n doc: 'Layout for the list of options. Can be `horizontal` or `vertical`.',\n type: 'string',\n status: 'optional',\n },\n width: {\n doc: '`small`, `medium` or `large` for predefined standard widths, `stretch` for fill available width.',\n type: ['string', 'false'],\n status: 'optional',\n },\n data: {\n doc: 'Data to be used for the component. The object needs to have a `value` and a `title` property. Provide the Dropdown or Autocomplete data in the format documented here: [Dropdown](/uilib/components/dropdown) and [Autocomplete](/uilib/components/autocomplete) documentation.',\n type: 'array',\n status: 'optional',\n },\n dataPath: {\n doc: 'The path to the context data (Form.Handler). The context data object needs to have a `value` and a `title` property. The generated options will be placed above given JSX based children.',\n type: 'string',\n status: 'optional',\n },\n autocompleteProps: {\n doc: 'Forward any additional props (camelCase) to the [Autocomplete](/uilib/components/autocomplete/) component.',\n type: 'object',\n status: 'optional',\n },\n dropdownProps: {\n doc: 'Forward any additional props (camelCase) to the [Dropdown](/uilib/components/dropdown/) component.',\n type: 'object',\n status: 'optional',\n },\n size: {\n doc: 'The sizes you can choose is small (1.5rem), default (2rem), medium (2.5rem) and large (3rem) are supported component sizes. Defaults to default / null. Also, if you define a number like size=\"2\" then it will be forwarded as the input element attribute. Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).',\n type: 'string',\n status: 'optional',\n },\n children: {\n doc: 'For providing Option components, and other children.',\n type: 'React.Node',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,mBAAyC,GAAG;EACvDC,OAAO,EAAE;IACPC,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,KAAK,EAAE;IACLH,GAAG,EAAE,0FAA0F;IAC/FC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDE,kBAAkB,EAAE;IAClBJ,GAAG,EAAE,wRAAwR;IAC7RC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDG,aAAa,EAAE;IACbL,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,KAAK,EAAE;IACLN,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDK,IAAI,EAAE;IACJP,GAAG,EAAE,iRAAiR;IACtRC,IAAI,EAAE,OAAO;IACbC,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRR,GAAG,EAAE,2LAA2L;IAChMC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,iBAAiB,EAAE;IACjBT,GAAG,EAAE,4GAA4G;IACjHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,aAAa,EAAE;IACbV,GAAG,EAAE,oGAAoG;IACzGC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDS,IAAI,EAAE;IACJX,GAAG,EAAE,oWAAoW;IACzWC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDU,QAAQ,EAAE;IACRZ,GAAG,EAAE,sDAAsD;IAC3DC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV;AACF,CAAC"}