@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,10 +1,10 @@
1
1
  import { Props as StringFieldProps } from '../String';
2
- import { Validator } from '../../types';
2
+ import type { ValidatorDisableable } from '../../types';
3
3
  import { FormError } from '../../utils';
4
4
  export type Props = Omit<StringFieldProps, 'onBlurValidator'> & {
5
5
  omitMask?: boolean;
6
6
  validate?: boolean;
7
- onBlurValidator?: Validator<string> | false;
7
+ onBlurValidator?: ValidatorDisableable<string>;
8
8
  };
9
9
  declare function NationalIdentityNumber(props: Props): import("react/jsx-runtime").JSX.Element;
10
10
  declare namespace NationalIdentityNumber {
@@ -1 +1 @@
1
- {"version":3,"file":"NationalIdentityNumber.js","names":["React","useCallback","useMemo","StringField","dnr","fnr","FormError","useTranslation","NationalIdentityNumber","props","translations","label","errorRequired","errorFnr","errorFnrLength","errorDnr","errorDnrLength","errorMessages","_objectSpread","identificationNumberIsOfLength","identificationNumber","length","fnrValidator","value","undefined","Number","parseInt","substring","Error","fnrIs11Digits","status","dnrValidator","dnrIs11Digits","dnrAndFnrValidator","dnrValidationPattern","RegExp","test","validate","omitMask","validator","onChangeValidator","onBlurValidator","width","labelProp","mask","Array","fill","onBlurValidatorToUse","StringFieldProps","inputMode","exportValidators","createElement","getAgeByBirthDate","birthDate","today","Date","age","getFullYear","month","getMonth","day","getDate","getBirthDateByFnrOrDnr","yearPart","centuryNumber","isBornIn20XX","year","differentiatorValue","isDnr","createMinimumAgeValidator","identificationNumberIs7DigitsOrMore","validationRule","date","messageValues","String","createMinimumAgeVerifier","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport { dnr, fnr } from '@navikt/fnrvalidator'\nimport { Validator } from '../../types'\nimport { FormError } from '../../utils'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type Props = Omit<StringFieldProps, 'onBlurValidator'> & {\n omitMask?: boolean\n validate?: boolean\n onBlurValidator?: Validator<string> | false\n}\n\nfunction NationalIdentityNumber(props: Props) {\n const translations = useTranslation().NationalIdentityNumber\n const {\n label,\n errorRequired,\n errorFnr,\n errorFnrLength,\n errorDnr,\n errorDnrLength,\n } = translations\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorFnr,\n ...props.errorMessages,\n }),\n [errorRequired, errorFnr, props.errorMessages]\n )\n\n const identificationNumberIsOfLength = (\n identificationNumber: string,\n length: number\n ) => {\n return identificationNumber?.length === length\n }\n\n const fnrValidator = useCallback(\n (value: string) => {\n if (value !== undefined) {\n if (Number.parseInt(value.substring(0, 1)) > 3) {\n return Error(errorFnr)\n }\n\n const fnrIs11Digits = identificationNumberIsOfLength(value, 11)\n\n if (!fnrIs11Digits) {\n return Error(errorFnrLength)\n }\n if (fnrIs11Digits && fnr(value).status === 'invalid') {\n return Error(errorFnr)\n }\n }\n },\n [errorFnr, errorFnrLength]\n )\n\n const dnrValidator = useCallback(\n (value: string) => {\n if (value !== undefined) {\n if (Number.parseInt(value.substring(0, 1)) < 4) {\n return Error(errorDnr)\n }\n\n const dnrIs11Digits = identificationNumberIsOfLength(value, 11)\n\n if (!dnrIs11Digits) {\n return Error(errorDnrLength)\n }\n if (dnrIs11Digits && dnr(value).status === 'invalid') {\n return Error(errorDnr)\n }\n }\n },\n [errorDnr, errorDnrLength]\n )\n\n const dnrAndFnrValidator = useCallback(\n (value: string) => {\n const dnrValidationPattern = '^[4-9].*' // 1st num is increased by 4. i.e, if 01.01.1985, D number would be 410185.\n\n if (new RegExp(dnrValidationPattern).test(value)) {\n return dnrValidator(value)\n }\n return fnrValidator(value)\n },\n [dnrValidator, fnrValidator]\n )\n\n const {\n validate = true,\n omitMask,\n // Deprecated – can be removed in v11\n validator,\n onChangeValidator = validator,\n onBlurValidator = dnrAndFnrValidator,\n width,\n label: labelProp,\n } = props\n\n const mask = useMemo(\n () =>\n omitMask\n ? Array(11).fill(/\\d/)\n : [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ],\n [omitMask]\n )\n\n const onBlurValidatorToUse =\n onBlurValidator === false ? undefined : onBlurValidator\n\n const StringFieldProps: StringFieldProps = {\n ...props,\n label: labelProp ?? label,\n errorMessages,\n mask,\n width: width ?? 'medium',\n inputMode: 'numeric',\n onChangeValidator: validate ? onChangeValidator : undefined,\n onBlurValidator: validate ? onBlurValidatorToUse : undefined,\n exportValidators: {\n dnrValidator,\n fnrValidator,\n dnrAndFnrValidator,\n },\n }\n\n return <StringField {...StringFieldProps} />\n}\n\nexport function getAgeByBirthDate(birthDate: Date): number {\n const today = new Date()\n const age = today.getFullYear() - birthDate.getFullYear()\n const month = today.getMonth() - birthDate.getMonth()\n const day = today.getDate() - birthDate.getDate()\n\n if (month < 0 || (month === 0 && day < 0)) {\n return age - 1\n }\n\n return age\n}\n\nexport function getBirthDateByFnrOrDnr(value: string) {\n if (value === undefined) {\n return // stop here\n }\n\n const yearPart = value.substring(4, 6)\n const centuryNumber = Number.parseInt(value.substring(6, 7))\n\n const isBornIn20XX = centuryNumber >= 5\n const year = isBornIn20XX ? `20${yearPart}` : `19${yearPart}`\n const month = Number.parseInt(value.substring(2, 4))\n\n const differentiatorValue =\n value.length > 0 ? Number.parseInt(value.substring(0, 1)) : undefined\n const isDnr = differentiatorValue && differentiatorValue > 3\n\n const day = isDnr\n ? Number.parseInt(value.substring(0, 2)) - 40\n : Number.parseInt(value.substring(0, 2))\n\n return new Date(Number.parseInt(year), month - 1, day)\n}\n\nexport function createMinimumAgeValidator(age: number) {\n return (value: string) => {\n if (typeof value !== 'string') {\n return // stop here\n }\n\n const identificationNumberIs7DigitsOrMore = value?.length >= 7\n\n if (!identificationNumberIs7DigitsOrMore) {\n return new FormError(\n 'NationalIdentityNumber.errorMinimumAgeValidatorLength',\n {\n validationRule: 'errorMinimumAgeValidatorLength', // \"validationRule\" Will be removed in future PR\n }\n )\n }\n\n if (identificationNumberIs7DigitsOrMore) {\n const date = getBirthDateByFnrOrDnr(value)\n if (getAgeByBirthDate(date) >= age) {\n return // stop here\n }\n }\n\n return new FormError(\n 'NationalIdentityNumber.errorMinimumAgeValidator',\n {\n validationRule: 'errorMinimumAgeValidator', // \"validationRule\" Will be removed in future PR\n messageValues: { age: String(age) },\n }\n )\n }\n}\n\nexport function createMinimumAgeVerifier(age: number) {\n const validator = createMinimumAgeValidator(age)\n return (value: string) => {\n if (value?.length >= 7) {\n return !(validator(value) instanceof Error)\n }\n\n return false\n }\n}\n\nNationalIdentityNumber._supportsSpacingProps = true\nexport default NationalIdentityNumber\n"],"mappings":"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"}
1
+ {"version":3,"file":"NationalIdentityNumber.js","names":["React","useCallback","useMemo","StringField","dnr","fnr","FormError","useTranslation","NationalIdentityNumber","props","translations","label","errorRequired","errorFnr","errorFnrLength","errorDnr","errorDnrLength","errorMessages","_objectSpread","identificationNumberIsOfLength","identificationNumber","length","fnrValidator","value","undefined","Number","parseInt","substring","Error","fnrIs11Digits","status","dnrValidator","dnrIs11Digits","dnrAndFnrValidator","dnrValidationPattern","RegExp","test","validate","omitMask","validator","onChangeValidator","onBlurValidator","width","labelProp","mask","Array","fill","onBlurValidatorToUse","StringFieldProps","inputMode","exportValidators","createElement","getAgeByBirthDate","birthDate","today","Date","age","getFullYear","month","getMonth","day","getDate","getBirthDateByFnrOrDnr","yearPart","centuryNumber","isBornIn20XX","year","differentiatorValue","isDnr","createMinimumAgeValidator","identificationNumberIs7DigitsOrMore","validationRule","date","messageValues","String","createMinimumAgeVerifier","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport { dnr, fnr } from '@navikt/fnrvalidator'\nimport type { ValidatorDisableable } from '../../types'\nimport { FormError } from '../../utils'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type Props = Omit<StringFieldProps, 'onBlurValidator'> & {\n omitMask?: boolean\n validate?: boolean\n onBlurValidator?: ValidatorDisableable<string>\n}\n\nfunction NationalIdentityNumber(props: Props) {\n const translations = useTranslation().NationalIdentityNumber\n const {\n label,\n errorRequired,\n errorFnr,\n errorFnrLength,\n errorDnr,\n errorDnrLength,\n } = translations\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorFnr,\n ...props.errorMessages,\n }),\n [errorRequired, errorFnr, props.errorMessages]\n )\n\n const identificationNumberIsOfLength = (\n identificationNumber: string,\n length: number\n ) => {\n return identificationNumber?.length === length\n }\n\n const fnrValidator = useCallback(\n (value: string) => {\n if (value !== undefined) {\n if (Number.parseInt(value.substring(0, 1)) > 3) {\n return Error(errorFnr)\n }\n\n const fnrIs11Digits = identificationNumberIsOfLength(value, 11)\n\n if (!fnrIs11Digits) {\n return Error(errorFnrLength)\n }\n if (fnrIs11Digits && fnr(value).status === 'invalid') {\n return Error(errorFnr)\n }\n }\n },\n [errorFnr, errorFnrLength]\n )\n\n const dnrValidator = useCallback(\n (value: string) => {\n if (value !== undefined) {\n if (Number.parseInt(value.substring(0, 1)) < 4) {\n return Error(errorDnr)\n }\n\n const dnrIs11Digits = identificationNumberIsOfLength(value, 11)\n\n if (!dnrIs11Digits) {\n return Error(errorDnrLength)\n }\n if (dnrIs11Digits && dnr(value).status === 'invalid') {\n return Error(errorDnr)\n }\n }\n },\n [errorDnr, errorDnrLength]\n )\n\n const dnrAndFnrValidator = useCallback(\n (value: string) => {\n const dnrValidationPattern = '^[4-9].*' // 1st num is increased by 4. i.e, if 01.01.1985, D number would be 410185.\n\n if (new RegExp(dnrValidationPattern).test(value)) {\n return dnrValidator(value)\n }\n return fnrValidator(value)\n },\n [dnrValidator, fnrValidator]\n )\n\n const {\n validate = true,\n omitMask,\n // Deprecated – can be removed in v11\n validator,\n onChangeValidator = validator,\n onBlurValidator = dnrAndFnrValidator,\n width,\n label: labelProp,\n } = props\n\n const mask = useMemo(\n () =>\n omitMask\n ? Array(11).fill(/\\d/)\n : [\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n /\\d/,\n ],\n [omitMask]\n )\n\n const onBlurValidatorToUse =\n onBlurValidator === false ? undefined : onBlurValidator\n\n const StringFieldProps: StringFieldProps = {\n ...props,\n label: labelProp ?? label,\n errorMessages,\n mask,\n width: width ?? 'medium',\n inputMode: 'numeric',\n onChangeValidator: validate ? onChangeValidator : undefined,\n onBlurValidator: validate ? onBlurValidatorToUse : undefined,\n exportValidators: {\n dnrValidator,\n fnrValidator,\n dnrAndFnrValidator,\n },\n }\n\n return <StringField {...StringFieldProps} />\n}\n\nexport function getAgeByBirthDate(birthDate: Date): number {\n const today = new Date()\n const age = today.getFullYear() - birthDate.getFullYear()\n const month = today.getMonth() - birthDate.getMonth()\n const day = today.getDate() - birthDate.getDate()\n\n if (month < 0 || (month === 0 && day < 0)) {\n return age - 1\n }\n\n return age\n}\n\nexport function getBirthDateByFnrOrDnr(value: string) {\n if (value === undefined) {\n return // stop here\n }\n\n const yearPart = value.substring(4, 6)\n const centuryNumber = Number.parseInt(value.substring(6, 7))\n\n const isBornIn20XX = centuryNumber >= 5\n const year = isBornIn20XX ? `20${yearPart}` : `19${yearPart}`\n const month = Number.parseInt(value.substring(2, 4))\n\n const differentiatorValue =\n value.length > 0 ? Number.parseInt(value.substring(0, 1)) : undefined\n const isDnr = differentiatorValue && differentiatorValue > 3\n\n const day = isDnr\n ? Number.parseInt(value.substring(0, 2)) - 40\n : Number.parseInt(value.substring(0, 2))\n\n return new Date(Number.parseInt(year), month - 1, day)\n}\n\nexport function createMinimumAgeValidator(age: number) {\n return (value: string) => {\n if (typeof value !== 'string') {\n return // stop here\n }\n\n const identificationNumberIs7DigitsOrMore = value?.length >= 7\n\n if (!identificationNumberIs7DigitsOrMore) {\n return new FormError(\n 'NationalIdentityNumber.errorMinimumAgeValidatorLength',\n {\n validationRule: 'errorMinimumAgeValidatorLength', // \"validationRule\" Will be removed in future PR\n }\n )\n }\n\n if (identificationNumberIs7DigitsOrMore) {\n const date = getBirthDateByFnrOrDnr(value)\n if (getAgeByBirthDate(date) >= age) {\n return // stop here\n }\n }\n\n return new FormError(\n 'NationalIdentityNumber.errorMinimumAgeValidator',\n {\n validationRule: 'errorMinimumAgeValidator', // \"validationRule\" Will be removed in future PR\n messageValues: { age: String(age) },\n }\n )\n }\n}\n\nexport function createMinimumAgeVerifier(age: number) {\n const validator = createMinimumAgeValidator(age)\n return (value: string) => {\n if (value?.length >= 7) {\n return !(validator(value) instanceof Error)\n }\n\n return false\n }\n}\n\nNationalIdentityNumber._supportsSpacingProps = true\nexport default NationalIdentityNumber\n"],"mappings":"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"}
@@ -1,3 +1,6 @@
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 { inputProperties } from '../../../../components/input/InputDocs';
2
5
  export const numberProperties = {
3
6
  decimalLimit: {
@@ -55,7 +58,9 @@ export const numberProperties = {
55
58
  type: ['string', 'false'],
56
59
  status: 'optional'
57
60
  },
58
- size: inputProperties.size,
61
+ size: _objectSpread(_objectSpread({}, inputProperties.size), {}, {
62
+ doc: `${inputProperties.size.doc} Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).`
63
+ }),
59
64
  align: {
60
65
  doc: 'Lateral alignment of contents of input field, one of `left` (default), `center`, or `right`.',
61
66
  type: 'string',
@@ -1 +1 @@
1
- {"version":3,"file":"NumberDocs.js","names":["inputProperties","numberProperties","decimalLimit","doc","type","status","percent","currency","allowNegative","disallowLeadingZeroes","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","width","size","align","autoComplete","prefix","suffix","step","startWith","showStepControls"],"sources":["../../../../../../src/extensions/forms/Field/Number/NumberDocs.ts"],"sourcesContent":["import { inputProperties } from '../../../../components/input/InputDocs'\nimport { PropertiesTableProps } from '../../../../shared/types'\n\nexport const numberProperties: PropertiesTableProps = {\n decimalLimit: {\n doc: 'Max number of decimals. Values with more decimals will be rounded. Defaults to `12`.',\n type: 'number',\n status: 'optional',\n },\n percent: {\n doc: 'Format a number as percentage.',\n type: 'boolean',\n status: 'optional',\n },\n currency: {\n doc: 'Currency code (ISO 4217) or `true` to use the default `NOK`. Uses two decimals by default.',\n type: ['boolean', 'string'],\n status: 'optional',\n },\n allowNegative: {\n doc: 'Whether or not to allow negative numbers. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n disallowLeadingZeroes: {\n doc: 'Whether or not to allow leading zeroes. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n minimum: {\n doc: 'Validation for inclusive minimum number value (greater than or equal). Defaults to `Number.MIN_SAFE_INTEGER`.',\n type: 'number',\n status: 'optional',\n },\n maximum: {\n doc: 'Validation for inclusive maximum number value (less than or equal). Defaults to `Number.MAX_SAFE_INTEGER`.',\n type: 'number',\n status: 'optional',\n },\n exclusiveMinimum: {\n doc: 'Validation for exclusive minimum number value (greater than).',\n type: 'number',\n status: 'optional',\n },\n exclusiveMaximum: {\n doc: 'Validation for exclusive maximum number value (less than).',\n type: 'number',\n status: 'optional',\n },\n multipleOf: {\n doc: 'Validation that requires the number to be a multiple of given value.',\n type: 'number',\n status: 'optional',\n },\n width: {\n doc: '`false` for no width (use browser default), `small`, `medium` or `large` for predefined standard widths, `stretch` for fill available width.',\n type: ['string', 'false'],\n status: 'optional',\n },\n size: inputProperties.size,\n align: {\n doc: 'Lateral alignment of contents of input field, one of `left` (default), `center`, or `right`.',\n type: 'string',\n status: 'optional',\n },\n autoComplete: {\n doc: 'For HTML `autocomplete` attributes.',\n type: ['on', 'string'],\n status: 'optional',\n },\n prefix: {\n doc: 'Text added before the value input.',\n type: 'string',\n status: 'optional',\n },\n suffix: {\n doc: 'Text added after the value input.',\n type: 'string',\n status: 'optional',\n },\n step: {\n doc: 'Determines step granularity when in/decreasing value input through step controls buttons or arrow keys. Defaults to 1.',\n type: 'number',\n status: 'optional',\n },\n startWith: {\n doc: 'When no `value` or `defaultValue` is given, start with a given value when in/decreasing value input through step controls buttons or arrow keys. Defaults to `null`.',\n type: 'number',\n status: 'optional',\n },\n showStepControls: {\n doc: 'Show buttons that in/decreases value input by the step value.',\n type: 'boolean',\n status: 'optional',\n },\n}\n"],"mappings":"AAAA,SAASA,eAAe,QAAQ,wCAAwC;AAGxE,OAAO,MAAMC,gBAAsC,GAAG;EACpDC,YAAY,EAAE;IACZC,GAAG,EAAE,sFAAsF;IAC3FC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,OAAO,EAAE;IACPH,GAAG,EAAE,gCAAgC;IACrCC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDE,QAAQ,EAAE;IACRJ,GAAG,EAAE,4FAA4F;IACjGC,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC3BC,MAAM,EAAE;EACV,CAAC;EACDG,aAAa,EAAE;IACbL,GAAG,EAAE,+DAA+D;IACpEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,qBAAqB,EAAE;IACrBN,GAAG,EAAE,8DAA8D;IACnEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDK,OAAO,EAAE;IACPP,GAAG,EAAE,+GAA+G;IACpHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,OAAO,EAAE;IACPR,GAAG,EAAE,4GAA4G;IACjHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,gBAAgB,EAAE;IAChBT,GAAG,EAAE,+DAA+D;IACpEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,gBAAgB,EAAE;IAChBV,GAAG,EAAE,4DAA4D;IACjEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDS,UAAU,EAAE;IACVX,GAAG,EAAE,sEAAsE;IAC3EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDU,KAAK,EAAE;IACLZ,GAAG,EAAE,8IAA8I;IACnJC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDW,IAAI,EAAEhB,eAAe,CAACgB,IAAI;EAC1BC,KAAK,EAAE;IACLd,GAAG,EAAE,8FAA8F;IACnGC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDa,YAAY,EAAE;IACZf,GAAG,EAAE,qCAAqC;IAC1CC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;IACtBC,MAAM,EAAE;EACV,CAAC;EACDc,MAAM,EAAE;IACNhB,GAAG,EAAE,oCAAoC;IACzCC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDe,MAAM,EAAE;IACNjB,GAAG,EAAE,mCAAmC;IACxCC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDgB,IAAI,EAAE;IACJlB,GAAG,EAAE,wHAAwH;IAC7HC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDiB,SAAS,EAAE;IACTnB,GAAG,EAAE,sKAAsK;IAC3KC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDkB,gBAAgB,EAAE;IAChBpB,GAAG,EAAE,+DAA+D;IACpEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AACF,CAAC"}
1
+ {"version":3,"file":"NumberDocs.js","names":["inputProperties","numberProperties","decimalLimit","doc","type","status","percent","currency","allowNegative","disallowLeadingZeroes","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","width","size","_objectSpread","align","autoComplete","prefix","suffix","step","startWith","showStepControls"],"sources":["../../../../../../src/extensions/forms/Field/Number/NumberDocs.ts"],"sourcesContent":["import { inputProperties } from '../../../../components/input/InputDocs'\nimport { PropertiesTableProps } from '../../../../shared/types'\n\nexport const numberProperties: PropertiesTableProps = {\n decimalLimit: {\n doc: 'Max number of decimals. Values with more decimals will be rounded. Defaults to `12`.',\n type: 'number',\n status: 'optional',\n },\n percent: {\n doc: 'Format a number as percentage.',\n type: 'boolean',\n status: 'optional',\n },\n currency: {\n doc: 'Currency code (ISO 4217) or `true` to use the default `NOK`. Uses two decimals by default.',\n type: ['boolean', 'string'],\n status: 'optional',\n },\n allowNegative: {\n doc: 'Whether or not to allow negative numbers. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n disallowLeadingZeroes: {\n doc: 'Whether or not to allow leading zeroes. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n minimum: {\n doc: 'Validation for inclusive minimum number value (greater than or equal). Defaults to `Number.MIN_SAFE_INTEGER`.',\n type: 'number',\n status: 'optional',\n },\n maximum: {\n doc: 'Validation for inclusive maximum number value (less than or equal). Defaults to `Number.MAX_SAFE_INTEGER`.',\n type: 'number',\n status: 'optional',\n },\n exclusiveMinimum: {\n doc: 'Validation for exclusive minimum number value (greater than).',\n type: 'number',\n status: 'optional',\n },\n exclusiveMaximum: {\n doc: 'Validation for exclusive maximum number value (less than).',\n type: 'number',\n status: 'optional',\n },\n multipleOf: {\n doc: 'Validation that requires the number to be a multiple of given value.',\n type: 'number',\n status: 'optional',\n },\n width: {\n doc: '`false` for no width (use browser default), `small`, `medium` or `large` for predefined standard widths, `stretch` for fill available width.',\n type: ['string', 'false'],\n status: 'optional',\n },\n size: {\n ...inputProperties.size,\n doc: `${inputProperties.size.doc} Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).`,\n },\n align: {\n doc: 'Lateral alignment of contents of input field, one of `left` (default), `center`, or `right`.',\n type: 'string',\n status: 'optional',\n },\n autoComplete: {\n doc: 'For HTML `autocomplete` attributes.',\n type: ['on', 'string'],\n status: 'optional',\n },\n prefix: {\n doc: 'Text added before the value input.',\n type: 'string',\n status: 'optional',\n },\n suffix: {\n doc: 'Text added after the value input.',\n type: 'string',\n status: 'optional',\n },\n step: {\n doc: 'Determines step granularity when in/decreasing value input through step controls buttons or arrow keys. Defaults to 1.',\n type: 'number',\n status: 'optional',\n },\n startWith: {\n doc: 'When no `value` or `defaultValue` is given, start with a given value when in/decreasing value input through step controls buttons or arrow keys. Defaults to `null`.',\n type: 'number',\n status: 'optional',\n },\n showStepControls: {\n doc: 'Show buttons that in/decreases value input by the step value.',\n type: 'boolean',\n status: 'optional',\n },\n}\n"],"mappings":";;;AAAA,SAASA,eAAe,QAAQ,wCAAwC;AAGxE,OAAO,MAAMC,gBAAsC,GAAG;EACpDC,YAAY,EAAE;IACZC,GAAG,EAAE,sFAAsF;IAC3FC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,OAAO,EAAE;IACPH,GAAG,EAAE,gCAAgC;IACrCC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDE,QAAQ,EAAE;IACRJ,GAAG,EAAE,4FAA4F;IACjGC,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC3BC,MAAM,EAAE;EACV,CAAC;EACDG,aAAa,EAAE;IACbL,GAAG,EAAE,+DAA+D;IACpEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,qBAAqB,EAAE;IACrBN,GAAG,EAAE,8DAA8D;IACnEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDK,OAAO,EAAE;IACPP,GAAG,EAAE,+GAA+G;IACpHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,OAAO,EAAE;IACPR,GAAG,EAAE,4GAA4G;IACjHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,gBAAgB,EAAE;IAChBT,GAAG,EAAE,+DAA+D;IACpEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,gBAAgB,EAAE;IAChBV,GAAG,EAAE,4DAA4D;IACjEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDS,UAAU,EAAE;IACVX,GAAG,EAAE,sEAAsE;IAC3EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDU,KAAK,EAAE;IACLZ,GAAG,EAAE,8IAA8I;IACnJC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDW,IAAI,EAAAC,aAAA,CAAAA,aAAA,KACCjB,eAAe,CAACgB,IAAI;IACvBb,GAAG,EAAG,GAAEH,eAAe,CAACgB,IAAI,CAACb,GAAI;EAAuG,EACzI;EACDe,KAAK,EAAE;IACLf,GAAG,EAAE,8FAA8F;IACnGC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDc,YAAY,EAAE;IACZhB,GAAG,EAAE,qCAAqC;IAC1CC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;IACtBC,MAAM,EAAE;EACV,CAAC;EACDe,MAAM,EAAE;IACNjB,GAAG,EAAE,oCAAoC;IACzCC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDgB,MAAM,EAAE;IACNlB,GAAG,EAAE,mCAAmC;IACxCC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDiB,IAAI,EAAE;IACJnB,GAAG,EAAE,wHAAwH;IAC7HC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDkB,SAAS,EAAE;IACTpB,GAAG,EAAE,sKAAsK;IAC3KC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDmB,gBAAgB,EAAE;IAChBrB,GAAG,EAAE,+DAA+D;IACpEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { Props as StringFieldProps } from '../String';
2
- import { Validator } from '../../types';
2
+ import type { ValidatorDisableable } from '../../types';
3
3
  export type Props = Omit<StringFieldProps, 'onBlurValidator'> & {
4
4
  validate?: boolean;
5
5
  omitMask?: boolean;
6
- onBlurValidator?: Validator<string> | false;
6
+ onBlurValidator?: ValidatorDisableable<string>;
7
7
  };
8
8
  declare function OrganizationNumber(props: Props): import("react/jsx-runtime").JSX.Element;
9
9
  declare namespace OrganizationNumber {
@@ -1 +1 @@
1
- {"version":3,"file":"OrganizationNumber.js","names":["React","useCallback","useMemo","StringField","useTranslation","OrganizationNumber","props","translations","errorOrgNo","errorOrgNoLength","errorRequired","label","errorMessages","_objectSpread","organizationNumberValidator","value","undefined","orgNoIs9Digits","length","Error","isValidOrgNumber","validate","omitMask","validator","onChangeValidator","onBlurValidator","labelProp","width","mask","onBlurValidatorToUse","StringFieldProps","className","inputMode","exportValidators","createElement","digits","checkDigit","sum","i","parseInt","charAt","result","finalCheckDigit","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/OrganizationNumber/OrganizationNumber.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport useTranslation from '../../hooks/useTranslation'\nimport { Validator } from '../../types'\n\nexport type Props = Omit<StringFieldProps, 'onBlurValidator'> & {\n validate?: boolean\n omitMask?: boolean\n onBlurValidator?: Validator<string> | false\n}\n\nfunction OrganizationNumber(props: Props) {\n const translations = useTranslation().OrganizationNumber\n const { errorOrgNo, errorOrgNoLength, errorRequired, label } =\n translations\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorOrgNo,\n ...props.errorMessages,\n }),\n [errorRequired, errorOrgNo, props.errorMessages]\n )\n\n const organizationNumberValidator = useCallback(\n (value: string) => {\n if (value !== undefined) {\n const orgNoIs9Digits = value?.length === 9\n\n if (!orgNoIs9Digits) {\n return Error(errorOrgNoLength)\n }\n if (orgNoIs9Digits && !isValidOrgNumber(value)) {\n return Error(errorOrgNo)\n }\n }\n },\n [errorOrgNo, errorOrgNoLength]\n )\n\n const {\n validate = true,\n omitMask,\n // Deprecated – can be removed in v11\n validator,\n onChangeValidator = validator,\n onBlurValidator = organizationNumberValidator,\n label: labelProp,\n width,\n } = props\n\n const mask = useMemo(\n () =>\n omitMask\n ? [/\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/]\n : [/\\d/, /\\d/, /\\d/, ' ', /\\d/, /\\d/, /\\d/, ' ', /\\d/, /\\d/, /\\d/],\n [omitMask]\n )\n\n const onBlurValidatorToUse =\n onBlurValidator === false ? undefined : onBlurValidator\n\n const StringFieldProps: StringFieldProps = {\n ...props,\n className: 'dnb-forms-field-organization-number',\n label: labelProp ?? label,\n errorMessages,\n mask,\n width: width ?? 'medium',\n inputMode: 'numeric',\n onChangeValidator: validate ? onChangeValidator : undefined,\n onBlurValidator: validate ? onBlurValidatorToUse : undefined,\n exportValidators: { organizationNumberValidator },\n }\n\n return <StringField {...StringFieldProps} />\n}\n\n/**\n * Source:\n * www.brreg.no/om-oss/registrene-vare/om-enhetsregisteret/organisasjonsnummeret/\n */\nfunction isValidOrgNumber(digits: string) {\n let checkDigit = 2\n let sum = 0\n\n for (let i = digits.length - 2; i >= 0; --i) {\n sum += parseInt(digits.charAt(i)) * checkDigit\n\n checkDigit += 1\n\n if (checkDigit > 7) {\n checkDigit = 2\n }\n }\n\n const result = 11 - (sum % 11)\n const finalCheckDigit = result === 11 ? 0 : result\n\n return parseInt(digits.charAt(digits.length - 1), 10) === finalCheckDigit\n}\n\nOrganizationNumber._supportsSpacingProps = true\nexport default OrganizationNumber\n"],"mappings":"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"}
1
+ {"version":3,"file":"OrganizationNumber.js","names":["React","useCallback","useMemo","StringField","useTranslation","OrganizationNumber","props","translations","errorOrgNo","errorOrgNoLength","errorRequired","label","errorMessages","_objectSpread","organizationNumberValidator","value","undefined","orgNoIs9Digits","length","Error","isValidOrgNumber","validate","omitMask","validator","onChangeValidator","onBlurValidator","labelProp","width","mask","onBlurValidatorToUse","StringFieldProps","className","inputMode","exportValidators","createElement","digits","checkDigit","sum","i","parseInt","charAt","result","finalCheckDigit","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/OrganizationNumber/OrganizationNumber.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport useTranslation from '../../hooks/useTranslation'\nimport type { ValidatorDisableable } from '../../types'\n\nexport type Props = Omit<StringFieldProps, 'onBlurValidator'> & {\n validate?: boolean\n omitMask?: boolean\n onBlurValidator?: ValidatorDisableable<string>\n}\n\nfunction OrganizationNumber(props: Props) {\n const translations = useTranslation().OrganizationNumber\n const { errorOrgNo, errorOrgNoLength, errorRequired, label } =\n translations\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorOrgNo,\n ...props.errorMessages,\n }),\n [errorRequired, errorOrgNo, props.errorMessages]\n )\n\n const organizationNumberValidator = useCallback(\n (value: string) => {\n if (value !== undefined) {\n const orgNoIs9Digits = value?.length === 9\n\n if (!orgNoIs9Digits) {\n return Error(errorOrgNoLength)\n }\n if (orgNoIs9Digits && !isValidOrgNumber(value)) {\n return Error(errorOrgNo)\n }\n }\n },\n [errorOrgNo, errorOrgNoLength]\n )\n\n const {\n validate = true,\n omitMask,\n // Deprecated – can be removed in v11\n validator,\n onChangeValidator = validator,\n onBlurValidator = organizationNumberValidator,\n label: labelProp,\n width,\n } = props\n\n const mask = useMemo(\n () =>\n omitMask\n ? [/\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/]\n : [/\\d/, /\\d/, /\\d/, ' ', /\\d/, /\\d/, /\\d/, ' ', /\\d/, /\\d/, /\\d/],\n [omitMask]\n )\n\n const onBlurValidatorToUse =\n onBlurValidator === false ? undefined : onBlurValidator\n\n const StringFieldProps: StringFieldProps = {\n ...props,\n className: 'dnb-forms-field-organization-number',\n label: labelProp ?? label,\n errorMessages,\n mask,\n width: width ?? 'medium',\n inputMode: 'numeric',\n onChangeValidator: validate ? onChangeValidator : undefined,\n onBlurValidator: validate ? onBlurValidatorToUse : undefined,\n exportValidators: { organizationNumberValidator },\n }\n\n return <StringField {...StringFieldProps} />\n}\n\n/**\n * Source:\n * www.brreg.no/om-oss/registrene-vare/om-enhetsregisteret/organisasjonsnummeret/\n */\nfunction isValidOrgNumber(digits: string) {\n let checkDigit = 2\n let sum = 0\n\n for (let i = digits.length - 2; i >= 0; --i) {\n sum += parseInt(digits.charAt(i)) * checkDigit\n\n checkDigit += 1\n\n if (checkDigit > 7) {\n checkDigit = 2\n }\n }\n\n const result = 11 - (sum % 11)\n const finalCheckDigit = result === 11 ? 0 : result\n\n return parseInt(digits.charAt(digits.length - 1), 10) === finalCheckDigit\n}\n\nOrganizationNumber._supportsSpacingProps = true\nexport default OrganizationNumber\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACnD,OAAOC,WAAW,MAAqC,WAAW;AAClE,OAAOC,cAAc,MAAM,4BAA4B;AASvD,SAASC,kBAAkBA,CAACC,KAAY,EAAE;EACxC,MAAMC,YAAY,GAAGH,cAAc,CAAC,CAAC,CAACC,kBAAkB;EACxD,MAAM;IAAEG,UAAU;IAAEC,gBAAgB;IAAEC,aAAa;IAAEC;EAAM,CAAC,GAC1DJ,YAAY;EAEd,MAAMK,aAAa,GAAGV,OAAO,CAC3B,MAAAW,aAAA;IACE,qBAAqB,EAAEH,aAAa;IACpC,oBAAoB,EAAEF;EAAU,GAC7BF,KAAK,CAACM,aAAa,CACtB,EACF,CAACF,aAAa,EAAEF,UAAU,EAAEF,KAAK,CAACM,aAAa,CACjD,CAAC;EAED,MAAME,2BAA2B,GAAGb,WAAW,CAC5Cc,KAAa,IAAK;IACjB,IAAIA,KAAK,KAAKC,SAAS,EAAE;MACvB,MAAMC,cAAc,GAAG,CAAAF,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEG,MAAM,MAAK,CAAC;MAE1C,IAAI,CAACD,cAAc,EAAE;QACnB,OAAOE,KAAK,CAACV,gBAAgB,CAAC;MAChC;MACA,IAAIQ,cAAc,IAAI,CAACG,gBAAgB,CAACL,KAAK,CAAC,EAAE;QAC9C,OAAOI,KAAK,CAACX,UAAU,CAAC;MAC1B;IACF;EACF,CAAC,EACD,CAACA,UAAU,EAAEC,gBAAgB,CAC/B,CAAC;EAED,MAAM;IACJY,QAAQ,GAAG,IAAI;IACfC,QAAQ;IAERC,SAAS;IACTC,iBAAiB,GAAGD,SAAS;IAC7BE,eAAe,GAAGX,2BAA2B;IAC7CH,KAAK,EAAEe,SAAS;IAChBC;EACF,CAAC,GAAGrB,KAAK;EAET,MAAMsB,IAAI,GAAG1B,OAAO,CAClB,MACEoB,QAAQ,GACJ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GACtD,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EACtE,CAACA,QAAQ,CACX,CAAC;EAED,MAAMO,oBAAoB,GACxBJ,eAAe,KAAK,KAAK,GAAGT,SAAS,GAAGS,eAAe;EAEzD,MAAMK,gBAAkC,GAAAjB,aAAA,CAAAA,aAAA,KACnCP,KAAK;IACRyB,SAAS,EAAE,qCAAqC;IAChDpB,KAAK,EAAEe,SAAS,aAATA,SAAS,cAATA,SAAS,GAAIf,KAAK;IACzBC,aAAa;IACbgB,IAAI;IACJD,KAAK,EAAEA,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,QAAQ;IACxBK,SAAS,EAAE,SAAS;IACpBR,iBAAiB,EAAEH,QAAQ,GAAGG,iBAAiB,GAAGR,SAAS;IAC3DS,eAAe,EAAEJ,QAAQ,GAAGQ,oBAAoB,GAAGb,SAAS;IAC5DiB,gBAAgB,EAAE;MAAEnB;IAA4B;EAAC,EAClD;EAED,OAAOd,KAAA,CAAAkC,aAAA,CAAC/B,WAAW,EAAK2B,gBAAmB,CAAC;AAC9C;AAMA,SAASV,gBAAgBA,CAACe,MAAc,EAAE;EACxC,IAAIC,UAAU,GAAG,CAAC;EAClB,IAAIC,GAAG,GAAG,CAAC;EAEX,KAAK,IAAIC,CAAC,GAAGH,MAAM,CAACjB,MAAM,GAAG,CAAC,EAAEoB,CAAC,IAAI,CAAC,EAAE,EAAEA,CAAC,EAAE;IAC3CD,GAAG,IAAIE,QAAQ,CAACJ,MAAM,CAACK,MAAM,CAACF,CAAC,CAAC,CAAC,GAAGF,UAAU;IAE9CA,UAAU,IAAI,CAAC;IAEf,IAAIA,UAAU,GAAG,CAAC,EAAE;MAClBA,UAAU,GAAG,CAAC;IAChB;EACF;EAEA,MAAMK,MAAM,GAAG,EAAE,GAAIJ,GAAG,GAAG,EAAG;EAC9B,MAAMK,eAAe,GAAGD,MAAM,KAAK,EAAE,GAAG,CAAC,GAAGA,MAAM;EAElD,OAAOF,QAAQ,CAACJ,MAAM,CAACK,MAAM,CAACL,MAAM,CAACjB,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,KAAKwB,eAAe;AAC3E;AAEArC,kBAAkB,CAACsC,qBAAqB,GAAG,IAAI;AAC/C,eAAetC,kBAAkB"}
@@ -5,7 +5,7 @@ export const PasswordProperties = {
5
5
  status: 'optional'
6
6
  },
7
7
  size: {
8
- 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.',
8
+ 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/).',
9
9
  type: ['string', 'number'],
10
10
  status: 'optional'
11
11
  },
@@ -1 +1 @@
1
- {"version":3,"file":"PasswordDocs.js","names":["PasswordProperties","pattern","doc","type","status","size","innerRef"],"sources":["../../../../../../src/extensions/forms/Field/Password/PasswordDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const PasswordProperties: PropertiesTableProps = {\n pattern: {\n doc: 'Validation based on regex pattern for the number field e.g. `pattern=\"w{8}d{4}\"`.',\n type: 'string',\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.',\n type: ['string', 'number'],\n status: 'optional',\n },\n innerRef: {\n doc: '`ElementRef` passed on to the password `input` element.',\n type: 'object',\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"],"mappings":"AAEA,OAAO,MAAMA,kBAAwC,GAAG;EACtDC,OAAO,EAAE;IACPC,GAAG,EAAE,mFAAmF;IACxFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,8PAA8P;IACnQC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDE,QAAQ,EAAE;IACRJ,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,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"}
1
+ {"version":3,"file":"PasswordDocs.js","names":["PasswordProperties","pattern","doc","type","status","size","innerRef"],"sources":["../../../../../../src/extensions/forms/Field/Password/PasswordDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const PasswordProperties: PropertiesTableProps = {\n pattern: {\n doc: 'Validation based on regex pattern for the number field e.g. `pattern=\"w{8}d{4}\"`.',\n type: 'string',\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', 'number'],\n status: 'optional',\n },\n innerRef: {\n doc: '`ElementRef` passed on to the password `input` element.',\n type: 'object',\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"],"mappings":"AAEA,OAAO,MAAMA,kBAAwC,GAAG;EACtDC,OAAO,EAAE;IACPC,GAAG,EAAE,mFAAmF;IACxFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,oWAAoW;IACzWC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDE,QAAQ,EAAE;IACRJ,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,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"}
@@ -32,7 +32,7 @@ export type Props = Omit<FieldPropsWithExtraValue<string, {
32
32
  * For internal testing purposes
33
33
  */
34
34
  noAnimation?: boolean;
35
- };
35
+ } & Pick<StringFieldProps, 'size'>;
36
36
  declare function PhoneNumber(props: Props): import("react/jsx-runtime").JSX.Element;
37
37
  declare namespace PhoneNumber {
38
38
  var _supportsSpacingProps: boolean;
@@ -104,6 +104,7 @@ function PhoneNumber(props) {
104
104
  emptyValue,
105
105
  info,
106
106
  warning,
107
+ size,
107
108
  error,
108
109
  hasError,
109
110
  disabled,
@@ -262,7 +263,8 @@ function PhoneNumber(props) {
262
263
  keep_selection: true,
263
264
  autoComplete: "tel-country-code",
264
265
  no_animation: props.noAnimation,
265
- stretch: width === 'stretch'
266
+ stretch: width === 'stretch',
267
+ size: size
266
268
  }), React.createElement(StringField, {
267
269
  className: classnames('dnb-forms-field-phone-number__number', numberFieldClassName),
268
270
  type: "tel",
@@ -291,7 +293,8 @@ function PhoneNumber(props) {
291
293
  validateInitially: validateInitially,
292
294
  validateContinuously: continuousValidation || validateContinuously,
293
295
  validateUnchanged: validateUnchanged,
294
- inputMode: "tel"
296
+ inputMode: "tel",
297
+ size: size
295
298
  })));
296
299
  }
297
300
  function makeObject(country, lang) {
@@ -1 +1 @@
1
- {"version":3,"file":"PhoneNumber.js","names":["React","useMemo","useContext","useCallback","useEffect","useRef","Autocomplete","Flex","classnames","countries","StringField","FieldBlock","useFieldProps","pickSpacingProps","SharedContext","countryFilter","getCountryData","useTranslation","defaultCountryCode","defaultPlaceholder","defaultMask","PhoneNumber","props","_sharedContext$locale","_props$inputRef","_countryCodeRef$curre","_props$width","sharedContext","label","defaultLabel","countryCodeLabel","defaultCountryCodeLabel","errorRequired","lang","locale","split","countryCodeRef","emptyValue","numberRef","dataRef","langRef","wasFilled","errorMessages","_objectSpread","validateRequired","value","required","isChanged","error","countryCode","phoneNumber","splitValue","prevCountryCodeRef","current","undefined","fromExternal","external","omitCountryCodeField","toEvent","schema","_props$schema","type","pattern","defaultProps","ref","preparedProps","inputRef","id","path","itemPath","className","countryCodeFieldClassName","numberFieldClassName","countryCodePlaceholder","placeholder","numberMask","ccFilter","info","warning","hasError","disabled","width","help","validateInitially","continuousValidation","validateContinuously","validateUnchanged","setHasFocus","handleChange","setDisplayValue","onCountryCodeChange","onNumberChange","filterCountries","_inputRef$current","number","length","joinValue","filter","country","updateCurrentDataSet","formatCountryCode","cdc","sort","makeObject","getEventValues","callOnChange","eventValues","callOnBlurOrFocus","hasFocus","handleCountryCodeChange","data","_data$selectedKey","selectedKey","trim","handleNumberChange","handleOnBlur","handleOnFocus","handleCountryCodeFocus","updateData","onTypeHandler","revalidateInputValue","event","_event$nativeEvent","nativeEvent","cdcVal","test","find","window","requestAnimationFrame","isDefault","includes","fieldBlockProps","createElement","Horizontal","align","mode","label_direction","status","on_focus","on_blur","on_change","on_type","independent_width","search_numbers","keep_selection","autoComplete","no_animation","noAnimation","stretch","layout","mask","Array","fill","onFocus","onBlur","onChange","innerRef","breakout","outset","inputMode","_country$i18n$lang","selected_value","iso","content","i18n","en","match","slice","array","Boolean","join","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/PhoneNumber/PhoneNumber.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useEffect,\n useRef,\n} from 'react'\nimport { Autocomplete, Flex } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport classnames from 'classnames'\nimport countries, {\n type CountryLang,\n type CountryType,\n} from '../../constants/countries'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldPropsWithExtraValue,\n AllJSONSchemaVersions,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport SharedContext from '../../../../shared/Context'\nimport {\n countryFilter,\n CountryFilterSet,\n getCountryData,\n} from '../SelectCountry'\nimport useTranslation from '../../hooks/useTranslation'\nimport { DrawerListDataArrayItem } from '../../../../fragments/DrawerList'\n\nexport type Props = Omit<\n FieldPropsWithExtraValue<\n string,\n { country: string; phone: string },\n undefined | string\n >,\n 'layout' | 'layoutOptions'\n> & {\n countryCodeFieldClassName?: string\n numberFieldClassName?: string\n countryCodePlaceholder?: string\n countryCodeLabel?: string\n numberMask?: InputMaskedProps['mask']\n pattern?: StringFieldProps['pattern']\n width?: 'large' | 'stretch'\n inputRef?: React.RefObject<HTMLInputElement>\n omitCountryCodeField?: boolean\n onCountryCodeChange?: (value: string | undefined) => void\n onNumberChange?: (value: string | undefined) => void\n\n /**\n * Defines the countries to filter. 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// Important for the default value to be defined here, and not after the useFieldProps call, to avoid the UI jumping\n// back to +47 once the user empty the field so handleChange send out undefined.\nconst defaultCountryCode = '+47'\nconst defaultPlaceholder = '00 00 00 00'\nconst defaultMask = [\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n]\n\nfunction PhoneNumber(props: Props) {\n const sharedContext = useContext(SharedContext)\n const {\n label: defaultLabel,\n countryCodeLabel: defaultCountryCodeLabel,\n errorRequired,\n } = useTranslation().PhoneNumber\n const lang = sharedContext.locale?.split('-')[0] as CountryLang\n\n const countryCodeRef = useRef<Props['value']>(props?.emptyValue)\n const numberRef = useRef<Props['value']>(props?.emptyValue)\n const dataRef = useRef<Array<DrawerListDataArrayItem>>(null)\n const langRef = useRef<string>(lang)\n const wasFilled = useRef<boolean>(false)\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorRequired,\n ...props.errorMessages,\n }),\n [errorRequired, props.errorMessages]\n )\n\n const validateRequired = useCallback(\n (value: string, { required, isChanged, error }) => {\n if (required) {\n const [countryCode, phoneNumber] = splitValue(value)\n\n if (countryCode !== prevCountryCodeRef.current) {\n if (countryCode) {\n prevCountryCodeRef.current = countryCode\n }\n return undefined\n }\n\n if (isChanged && !phoneNumber) {\n return error\n }\n }\n\n return undefined\n },\n []\n )\n\n const fromExternal = useCallback(\n (external: string) => {\n const [, phoneNumber] = splitValue(external)\n if (!phoneNumber && !props.omitCountryCodeField) {\n return countryCodeRef.current\n }\n return external\n },\n [props.omitCountryCodeField]\n )\n\n const toEvent = useCallback(\n (value: string) => {\n const [, phoneNumber] = splitValue(value)\n if (!phoneNumber) {\n return props.emptyValue\n }\n return value\n },\n [props.emptyValue]\n )\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'string',\n pattern: props.pattern,\n },\n [props.schema, props.pattern]\n )\n const defaultProps: Partial<Props> = {\n schema,\n errorMessages,\n }\n const ref = useRef<HTMLInputElement>()\n const preparedProps: Props = {\n ...props,\n ...defaultProps,\n validateRequired,\n fromExternal,\n toEvent,\n inputRef: props.inputRef ?? ref,\n }\n\n const {\n id,\n path,\n itemPath,\n value,\n className,\n inputRef,\n countryCodeFieldClassName,\n numberFieldClassName,\n countryCodePlaceholder,\n placeholder,\n countryCodeLabel,\n label = defaultLabel,\n numberMask,\n countries: ccFilter = 'Prioritized',\n emptyValue,\n info,\n warning,\n error,\n hasError,\n disabled,\n width = 'large',\n help,\n required,\n validateInitially,\n continuousValidation,\n validateContinuously,\n validateUnchanged,\n omitCountryCodeField,\n setHasFocus,\n handleChange,\n setDisplayValue,\n onCountryCodeChange,\n onNumberChange,\n filterCountries,\n } = useFieldProps(preparedProps)\n\n useEffect(() => {\n if (path || itemPath) {\n const number = inputRef.current?.value\n setDisplayValue(\n number?.length > 0\n ? joinValue([countryCodeRef.current, number])\n : undefined\n )\n }\n }, [inputRef, itemPath, path, setDisplayValue, value])\n\n const filter = useCallback(\n (country: CountryType) => {\n return countryFilter(country, filterCountries, ccFilter)\n },\n [ccFilter, filterCountries]\n )\n\n const updateCurrentDataSet = useCallback(() => {\n dataRef.current = getCountryData({\n lang,\n filter:\n // Make sure the whole cc list is displayed when cc filter is set to specific region\n ccFilter === 'Prioritized' && !wasFilled.current\n ? (country) =>\n `${formatCountryCode(country.cdc)}` ===\n countryCodeRef.current\n : filter,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n makeObject,\n })\n }, [lang, filter, ccFilter])\n\n const getEventValues = useCallback(\n ({\n countryCode = countryCodeRef.current || emptyValue,\n phoneNumber = numberRef.current || emptyValue,\n } = {}) => {\n return {\n ...(!omitCountryCodeField ? { countryCode } : {}),\n phoneNumber,\n }\n },\n [omitCountryCodeField, emptyValue]\n )\n\n const callOnChange = useCallback(\n ({ countryCode = undefined, phoneNumber = undefined }) => {\n const eventValues = getEventValues({ countryCode, phoneNumber })\n handleChange(\n joinValue([eventValues.countryCode, eventValues.phoneNumber]),\n eventValues\n )\n },\n [getEventValues, handleChange]\n )\n\n const callOnBlurOrFocus = useCallback(\n (hasFocus: boolean) => {\n setHasFocus(hasFocus, undefined, getEventValues())\n },\n [setHasFocus, getEventValues]\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 countryCode and phoneNumber when value changes.\n */\n useMemo(() => {\n const [countryCode, phoneNumber] = splitValue(props.value || value)\n numberRef.current = phoneNumber\n\n if (lang !== langRef.current || !wasFilled.current) {\n if (!countryCodeRef.current || countryCode) {\n countryCodeRef.current = countryCode || defaultCountryCode\n }\n langRef.current = lang\n\n updateCurrentDataSet()\n }\n }, [value, props.value, lang, updateCurrentDataSet])\n\n const prevCountryCodeRef = useRef(countryCodeRef.current)\n\n const handleCountryCodeChange = useCallback(\n ({ data }: { data: { selectedKey: string } }) => {\n const countryCode = (countryCodeRef.current =\n data?.selectedKey?.trim() || emptyValue)\n\n callOnChange({ countryCode })\n onCountryCodeChange?.(countryCode)\n },\n [emptyValue, callOnChange, onCountryCodeChange]\n )\n\n const handleNumberChange = useCallback(\n (value: string) => {\n const phoneNumber = (numberRef.current = value || emptyValue)\n\n callOnChange({ phoneNumber })\n onNumberChange?.(phoneNumber)\n },\n [emptyValue, callOnChange, onNumberChange]\n )\n\n const handleOnBlur = useCallback(() => {\n callOnBlurOrFocus(false)\n }, [callOnBlurOrFocus])\n\n const handleOnFocus = useCallback(() => {\n callOnBlurOrFocus(true)\n }, [callOnBlurOrFocus])\n\n const handleCountryCodeFocus = useCallback(\n ({ updateData }) => {\n if (!wasFilled.current) {\n wasFilled.current = true\n updateCurrentDataSet()\n updateData(dataRef.current)\n }\n handleOnFocus()\n },\n [handleOnFocus, updateCurrentDataSet]\n )\n\n const onTypeHandler = useCallback(\n ({ value, updateData, revalidateInputValue, event }) => {\n // Handle browser autofill/autocomplete\n if (typeof event?.nativeEvent?.data === 'undefined') {\n const cdcVal = /\\+\\d{1,3}\\s{1}\\d+/.test(value)\n ? splitValue(value)[0]\n : value\n const country = countries.find(({ cdc }) => cdc === cdcVal)\n if (country?.cdc) {\n const countryCode = (countryCodeRef.current = formatCountryCode(\n country.cdc\n ))\n\n updateCurrentDataSet()\n updateData(dataRef.current)\n callOnChange({ countryCode })\n\n // To ensure correct input value,\n // regardless if there is changed data before or not.\n window.requestAnimationFrame(() => {\n revalidateInputValue()\n })\n }\n }\n },\n [callOnChange, updateCurrentDataSet]\n )\n\n const isDefault = countryCodeRef.current?.includes(defaultCountryCode)\n\n const fieldBlockProps: FieldBlockProps = {\n id,\n className: classnames('dnb-forms-field-phone-number', className),\n width: omitCountryCodeField || props.width ? undefined : width,\n label: undefined,\n help: undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Flex.Horizontal align=\"flex-end\">\n {!omitCountryCodeField && (\n <Autocomplete\n className={classnames(\n 'dnb-forms-field-phone-number__country-code',\n countryCodeFieldClassName\n )}\n mode=\"async\"\n placeholder={countryCodePlaceholder}\n label_direction=\"vertical\"\n label={countryCodeLabel ?? defaultCountryCodeLabel}\n data={dataRef.current}\n value={countryCodeRef.current}\n status={hasError ? 'error' : undefined}\n disabled={disabled}\n on_focus={handleCountryCodeFocus}\n on_blur={handleOnBlur}\n on_change={handleCountryCodeChange}\n on_type={onTypeHandler}\n independent_width\n search_numbers\n keep_selection\n autoComplete=\"tel-country-code\"\n no_animation={props.noAnimation}\n stretch={width === 'stretch'}\n />\n )}\n\n <StringField\n className={classnames(\n 'dnb-forms-field-phone-number__number',\n numberFieldClassName\n )}\n type=\"tel\"\n autoComplete=\"tel-national\"\n emptyValue={emptyValue}\n layout=\"vertical\"\n label={label}\n placeholder={\n placeholder ?? (isDefault ? defaultPlaceholder : undefined)\n }\n mask={\n numberMask ?? (isDefault ? defaultMask : Array(12).fill(/\\d/))\n }\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n onChange={handleNumberChange}\n value={numberRef.current}\n innerRef={inputRef}\n info={info}\n warning={warning}\n error={error}\n disabled={disabled}\n width={\n omitCountryCodeField ? 'medium' : props.width ?? 'stretch'\n }\n help={{ ...help, breakout: false, outset: false }}\n required={required}\n errorMessages={errorMessages}\n validateInitially={validateInitially}\n validateContinuously={\n continuousValidation || validateContinuously\n }\n validateUnchanged={validateUnchanged}\n inputMode=\"tel\"\n />\n </Flex.Horizontal>\n </FieldBlock>\n )\n}\n\nfunction makeObject(country: CountryType, lang: string) {\n return {\n selectedKey: formatCountryCode(country.cdc),\n selected_value: `${country.iso} (${formatCountryCode(country.cdc)})`,\n content: `${formatCountryCode(country.cdc)} ${\n country.i18n[lang] ?? country.i18n.en\n }`,\n }\n}\n\nfunction formatCountryCode(value: string) {\n return `+${value}`\n}\n\nfunction splitValue(value: string) {\n return (\n typeof value === 'string'\n ? value.match(/^(\\+[^ ]+)? ?(.*)$/)\n : [undefined, '', '']\n ).slice(1)\n}\n\nfunction joinValue(array: Array<string>) {\n return array.filter(Boolean).join(' ')\n}\n\nPhoneNumber._supportsSpacingProps = true\nexport default PhoneNumber\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IACVC,OAAO,EACPC,UAAU,EACVC,WAAW,EACXC,SAAS,EACTC,MAAM,QACD,OAAO;AACd,SAASC,YAAY,EAAEC,IAAI,QAAQ,wBAAwB;AAE3D,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAGT,2BAA2B;AAClC,OAAOC,WAAW,MAAqC,WAAW;AAClE,OAAOC,UAAU,MAAoC,kBAAkB;AACvE,SAASC,aAAa,QAAQ,aAAa;AAK3C,SAASC,gBAAgB,QAAQ,mCAAmC;AACpE,OAAOC,aAAa,MAAM,4BAA4B;AACtD,SACEC,aAAa,EAEbC,cAAc,QACT,kBAAkB;AACzB,OAAOC,cAAc,MAAM,4BAA4B;AA0CvD,MAAMC,kBAAkB,GAAG,KAAK;AAChC,MAAMC,kBAAkB,GAAG,aAAa;AACxC,MAAMC,WAAW,GAAG,CAClB,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,CACL;AAED,SAASC,WAAWA,CAACC,KAAY,EAAE;EAAA,IAAAC,qBAAA,EAAAC,eAAA,EAAAC,qBAAA,EAAAC,YAAA;EACjC,MAAMC,aAAa,GAAGzB,UAAU,CAACY,aAAa,CAAC;EAC/C,MAAM;IACJc,KAAK,EAAEC,YAAY;IACnBC,gBAAgB,EAAEC,uBAAuB;IACzCC;EACF,CAAC,GAAGf,cAAc,CAAC,CAAC,CAACI,WAAW;EAChC,MAAMY,IAAI,IAAAV,qBAAA,GAAGI,aAAa,CAACO,MAAM,cAAAX,qBAAA,uBAApBA,qBAAA,CAAsBY,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAgB;EAE/D,MAAMC,cAAc,GAAG/B,MAAM,CAAiBiB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEe,UAAU,CAAC;EAChE,MAAMC,SAAS,GAAGjC,MAAM,CAAiBiB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEe,UAAU,CAAC;EAC3D,MAAME,OAAO,GAAGlC,MAAM,CAAiC,IAAI,CAAC;EAC5D,MAAMmC,OAAO,GAAGnC,MAAM,CAAS4B,IAAI,CAAC;EACpC,MAAMQ,SAAS,GAAGpC,MAAM,CAAU,KAAK,CAAC;EAExC,MAAMqC,aAAa,GAAGzC,OAAO,CAC3B,MAAA0C,aAAA;IACE,qBAAqB,EAAEX,aAAa;IACpC,oBAAoB,EAAEA;EAAa,GAChCV,KAAK,CAACoB,aAAa,CACtB,EACF,CAACV,aAAa,EAAEV,KAAK,CAACoB,aAAa,CACrC,CAAC;EAED,MAAME,gBAAgB,GAAGzC,WAAW,CAClC,CAAC0C,KAAa,EAAE;IAAEC,QAAQ;IAAEC,SAAS;IAAEC;EAAM,CAAC,KAAK;IACjD,IAAIF,QAAQ,EAAE;MACZ,MAAM,CAACG,WAAW,EAAEC,WAAW,CAAC,GAAGC,UAAU,CAACN,KAAK,CAAC;MAEpD,IAAII,WAAW,KAAKG,kBAAkB,CAACC,OAAO,EAAE;QAC9C,IAAIJ,WAAW,EAAE;UACfG,kBAAkB,CAACC,OAAO,GAAGJ,WAAW;QAC1C;QACA,OAAOK,SAAS;MAClB;MAEA,IAAIP,SAAS,IAAI,CAACG,WAAW,EAAE;QAC7B,OAAOF,KAAK;MACd;IACF;IAEA,OAAOM,SAAS;EAClB,CAAC,EACD,EACF,CAAC;EAED,MAAMC,YAAY,GAAGpD,WAAW,CAC7BqD,QAAgB,IAAK;IACpB,MAAM,GAAGN,WAAW,CAAC,GAAGC,UAAU,CAACK,QAAQ,CAAC;IAC5C,IAAI,CAACN,WAAW,IAAI,CAAC5B,KAAK,CAACmC,oBAAoB,EAAE;MAC/C,OAAOrB,cAAc,CAACiB,OAAO;IAC/B;IACA,OAAOG,QAAQ;EACjB,CAAC,EACD,CAAClC,KAAK,CAACmC,oBAAoB,CAC7B,CAAC;EAED,MAAMC,OAAO,GAAGvD,WAAW,CACxB0C,KAAa,IAAK;IACjB,MAAM,GAAGK,WAAW,CAAC,GAAGC,UAAU,CAACN,KAAK,CAAC;IACzC,IAAI,CAACK,WAAW,EAAE;MAChB,OAAO5B,KAAK,CAACe,UAAU;IACzB;IACA,OAAOQ,KAAK;EACd,CAAC,EACD,CAACvB,KAAK,CAACe,UAAU,CACnB,CAAC;EAED,MAAMsB,MAAM,GAAG1D,OAAO,CACpB;IAAA,IAAA2D,aAAA;IAAA,QAAAA,aAAA,GACEtC,KAAK,CAACqC,MAAM,cAAAC,aAAA,cAAAA,aAAA,GAAI;MACdC,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAExC,KAAK,CAACwC;IACjB,CAAC;EAAA,GACH,CAACxC,KAAK,CAACqC,MAAM,EAAErC,KAAK,CAACwC,OAAO,CAC9B,CAAC;EACD,MAAMC,YAA4B,GAAG;IACnCJ,MAAM;IACNjB;EACF,CAAC;EACD,MAAMsB,GAAG,GAAG3D,MAAM,CAAmB,CAAC;EACtC,MAAM4D,aAAoB,GAAAtB,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACrBrB,KAAK,GACLyC,YAAY;IACfnB,gBAAgB;IAChBW,YAAY;IACZG,OAAO;IACPQ,QAAQ,GAAA1C,eAAA,GAAEF,KAAK,CAAC4C,QAAQ,cAAA1C,eAAA,cAAAA,eAAA,GAAIwC;EAAG,EAChC;EAED,MAAM;IACJG,EAAE;IACFC,IAAI;IACJC,QAAQ;IACRxB,KAAK;IACLyB,SAAS;IACTJ,QAAQ;IACRK,yBAAyB;IACzBC,oBAAoB;IACpBC,sBAAsB;IACtBC,WAAW;IACX5C,gBAAgB;IAChBF,KAAK,GAAGC,YAAY;IACpB8C,UAAU;IACVlE,SAAS,EAAEmE,QAAQ,GAAG,aAAa;IACnCvC,UAAU;IACVwC,IAAI;IACJC,OAAO;IACP9B,KAAK;IACL+B,QAAQ;IACRC,QAAQ;IACRC,KAAK,GAAG,OAAO;IACfC,IAAI;IACJpC,QAAQ;IACRqC,iBAAiB;IACjBC,oBAAoB;IACpBC,oBAAoB;IACpBC,iBAAiB;IACjB7B,oBAAoB;IACpB8B,WAAW;IACXC,YAAY;IACZC,eAAe;IACfC,mBAAmB;IACnBC,cAAc;IACdC;EACF,CAAC,GAAGhF,aAAa,CAACqD,aAAa,CAAC;EAEhC7D,SAAS,CAAC,MAAM;IACd,IAAIgE,IAAI,IAAIC,QAAQ,EAAE;MAAA,IAAAwB,iBAAA;MACpB,MAAMC,MAAM,IAAAD,iBAAA,GAAG3B,QAAQ,CAACb,OAAO,cAAAwC,iBAAA,uBAAhBA,iBAAA,CAAkBhD,KAAK;MACtC4C,eAAe,CACb,CAAAK,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEC,MAAM,IAAG,CAAC,GACdC,SAAS,CAAC,CAAC5D,cAAc,CAACiB,OAAO,EAAEyC,MAAM,CAAC,CAAC,GAC3CxC,SACN,CAAC;IACH;EACF,CAAC,EAAE,CAACY,QAAQ,EAAEG,QAAQ,EAAED,IAAI,EAAEqB,eAAe,EAAE5C,KAAK,CAAC,CAAC;EAEtD,MAAMoD,MAAM,GAAG9F,WAAW,CACvB+F,OAAoB,IAAK;IACxB,OAAOnF,aAAa,CAACmF,OAAO,EAAEN,eAAe,EAAEhB,QAAQ,CAAC;EAC1D,CAAC,EACD,CAACA,QAAQ,EAAEgB,eAAe,CAC5B,CAAC;EAED,MAAMO,oBAAoB,GAAGhG,WAAW,CAAC,MAAM;IAC7CoC,OAAO,CAACc,OAAO,GAAGrC,cAAc,CAAC;MAC/BiB,IAAI;MACJgE,MAAM,EAEJrB,QAAQ,KAAK,aAAa,IAAI,CAACnC,SAAS,CAACY,OAAO,GAC3C6C,OAAO,IACL,GAAEE,iBAAiB,CAACF,OAAO,CAACG,GAAG,CAAE,EAAC,KACnCjE,cAAc,CAACiB,OAAO,GACxB4C,MAAM;MACZK,IAAI,EAAE1B,QAAoD;MAC1D2B;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CAACtE,IAAI,EAAEgE,MAAM,EAAErB,QAAQ,CAAC,CAAC;EAE5B,MAAM4B,cAAc,GAAGrG,WAAW,CAChC,CAAC;IACC8C,WAAW,GAAGb,cAAc,CAACiB,OAAO,IAAIhB,UAAU;IAClDa,WAAW,GAAGZ,SAAS,CAACe,OAAO,IAAIhB;EACrC,CAAC,GAAG,CAAC,CAAC,KAAK;IACT,OAAAM,aAAA,CAAAA,aAAA,KACM,CAACc,oBAAoB,GAAG;MAAER;IAAY,CAAC,GAAG,CAAC,CAAC;MAChDC;IAAW;EAEf,CAAC,EACD,CAACO,oBAAoB,EAAEpB,UAAU,CACnC,CAAC;EAED,MAAMoE,YAAY,GAAGtG,WAAW,CAC9B,CAAC;IAAE8C,WAAW,GAAGK,SAAS;IAAEJ,WAAW,GAAGI;EAAU,CAAC,KAAK;IACxD,MAAMoD,WAAW,GAAGF,cAAc,CAAC;MAAEvD,WAAW;MAAEC;IAAY,CAAC,CAAC;IAChEsC,YAAY,CACVQ,SAAS,CAAC,CAACU,WAAW,CAACzD,WAAW,EAAEyD,WAAW,CAACxD,WAAW,CAAC,CAAC,EAC7DwD,WACF,CAAC;EACH,CAAC,EACD,CAACF,cAAc,EAAEhB,YAAY,CAC/B,CAAC;EAED,MAAMmB,iBAAiB,GAAGxG,WAAW,CAClCyG,QAAiB,IAAK;IACrBrB,WAAW,CAACqB,QAAQ,EAAEtD,SAAS,EAAEkD,cAAc,CAAC,CAAC,CAAC;EACpD,CAAC,EACD,CAACjB,WAAW,EAAEiB,cAAc,CAC9B,CAAC;EAUDvG,OAAO,CAAC,MAAM;IACZ,MAAM,CAACgD,WAAW,EAAEC,WAAW,CAAC,GAAGC,UAAU,CAAC7B,KAAK,CAACuB,KAAK,IAAIA,KAAK,CAAC;IACnEP,SAAS,CAACe,OAAO,GAAGH,WAAW;IAE/B,IAAIjB,IAAI,KAAKO,OAAO,CAACa,OAAO,IAAI,CAACZ,SAAS,CAACY,OAAO,EAAE;MAClD,IAAI,CAACjB,cAAc,CAACiB,OAAO,IAAIJ,WAAW,EAAE;QAC1Cb,cAAc,CAACiB,OAAO,GAAGJ,WAAW,IAAI/B,kBAAkB;MAC5D;MACAsB,OAAO,CAACa,OAAO,GAAGpB,IAAI;MAEtBkE,oBAAoB,CAAC,CAAC;IACxB;EACF,CAAC,EAAE,CAACtD,KAAK,EAAEvB,KAAK,CAACuB,KAAK,EAAEZ,IAAI,EAAEkE,oBAAoB,CAAC,CAAC;EAEpD,MAAM/C,kBAAkB,GAAG/C,MAAM,CAAC+B,cAAc,CAACiB,OAAO,CAAC;EAEzD,MAAMwD,uBAAuB,GAAG1G,WAAW,CACzC,CAAC;IAAE2G;EAAwC,CAAC,KAAK;IAAA,IAAAC,iBAAA;IAC/C,MAAM9D,WAAW,GAAIb,cAAc,CAACiB,OAAO,GACzC,CAAAyD,IAAI,aAAJA,IAAI,wBAAAC,iBAAA,GAAJD,IAAI,CAAEE,WAAW,cAAAD,iBAAA,uBAAjBA,iBAAA,CAAmBE,IAAI,CAAC,CAAC,KAAI5E,UAAW;IAE1CoE,YAAY,CAAC;MAAExD;IAAY,CAAC,CAAC;IAC7ByC,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAGzC,WAAW,CAAC;EACpC,CAAC,EACD,CAACZ,UAAU,EAAEoE,YAAY,EAAEf,mBAAmB,CAChD,CAAC;EAED,MAAMwB,kBAAkB,GAAG/G,WAAW,CACnC0C,KAAa,IAAK;IACjB,MAAMK,WAAW,GAAIZ,SAAS,CAACe,OAAO,GAAGR,KAAK,IAAIR,UAAW;IAE7DoE,YAAY,CAAC;MAAEvD;IAAY,CAAC,CAAC;IAC7ByC,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAGzC,WAAW,CAAC;EAC/B,CAAC,EACD,CAACb,UAAU,EAAEoE,YAAY,EAAEd,cAAc,CAC3C,CAAC;EAED,MAAMwB,YAAY,GAAGhH,WAAW,CAAC,MAAM;IACrCwG,iBAAiB,CAAC,KAAK,CAAC;EAC1B,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvB,MAAMS,aAAa,GAAGjH,WAAW,CAAC,MAAM;IACtCwG,iBAAiB,CAAC,IAAI,CAAC;EACzB,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvB,MAAMU,sBAAsB,GAAGlH,WAAW,CACxC,CAAC;IAAEmH;EAAW,CAAC,KAAK;IAClB,IAAI,CAAC7E,SAAS,CAACY,OAAO,EAAE;MACtBZ,SAAS,CAACY,OAAO,GAAG,IAAI;MACxB8C,oBAAoB,CAAC,CAAC;MACtBmB,UAAU,CAAC/E,OAAO,CAACc,OAAO,CAAC;IAC7B;IACA+D,aAAa,CAAC,CAAC;EACjB,CAAC,EACD,CAACA,aAAa,EAAEjB,oBAAoB,CACtC,CAAC;EAED,MAAMoB,aAAa,GAAGpH,WAAW,CAC/B,CAAC;IAAE0C,KAAK;IAAEyE,UAAU;IAAEE,oBAAoB;IAAEC;EAAM,CAAC,KAAK;IAAA,IAAAC,kBAAA;IAEtD,IAAI,QAAOD,KAAK,aAALA,KAAK,wBAAAC,kBAAA,GAALD,KAAK,CAAEE,WAAW,cAAAD,kBAAA,uBAAlBA,kBAAA,CAAoBZ,IAAI,MAAK,WAAW,EAAE;MACnD,MAAMc,MAAM,GAAG,mBAAmB,CAACC,IAAI,CAAChF,KAAK,CAAC,GAC1CM,UAAU,CAACN,KAAK,CAAC,CAAC,CAAC,CAAC,GACpBA,KAAK;MACT,MAAMqD,OAAO,GAAGzF,SAAS,CAACqH,IAAI,CAAC,CAAC;QAAEzB;MAAI,CAAC,KAAKA,GAAG,KAAKuB,MAAM,CAAC;MAC3D,IAAI1B,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEG,GAAG,EAAE;QAChB,MAAMpD,WAAW,GAAIb,cAAc,CAACiB,OAAO,GAAG+C,iBAAiB,CAC7DF,OAAO,CAACG,GACV,CAAE;QAEFF,oBAAoB,CAAC,CAAC;QACtBmB,UAAU,CAAC/E,OAAO,CAACc,OAAO,CAAC;QAC3BoD,YAAY,CAAC;UAAExD;QAAY,CAAC,CAAC;QAI7B8E,MAAM,CAACC,qBAAqB,CAAC,MAAM;UACjCR,oBAAoB,CAAC,CAAC;QACxB,CAAC,CAAC;MACJ;IACF;EACF,CAAC,EACD,CAACf,YAAY,EAAEN,oBAAoB,CACrC,CAAC;EAED,MAAM8B,SAAS,IAAAxG,qBAAA,GAAGW,cAAc,CAACiB,OAAO,cAAA5B,qBAAA,uBAAtBA,qBAAA,CAAwByG,QAAQ,CAAChH,kBAAkB,CAAC;EAEtE,MAAMiH,eAAgC,GAAAxF,aAAA;IACpCwB,EAAE;IACFG,SAAS,EAAE9D,UAAU,CAAC,8BAA8B,EAAE8D,SAAS,CAAC;IAChEW,KAAK,EAAExB,oBAAoB,IAAInC,KAAK,CAAC2D,KAAK,GAAG3B,SAAS,GAAG2B,KAAK;IAC9DrD,KAAK,EAAE0B,SAAS;IAChB4B,IAAI,EAAE5B;EAAS,GACZzC,gBAAgB,CAACS,KAAK,CAAC,CAC3B;EAED,OACEtB,KAAA,CAAAoI,aAAA,CAACzH,UAAU,EAAKwH,eAAe,EAC7BnI,KAAA,CAAAoI,aAAA,CAAC7H,IAAI,CAAC8H,UAAU;IAACC,KAAK,EAAC;EAAU,GAC9B,CAAC7E,oBAAoB,IACpBzD,KAAA,CAAAoI,aAAA,CAAC9H,YAAY;IACXgE,SAAS,EAAE9D,UAAU,CACnB,4CAA4C,EAC5C+D,yBACF,CAAE;IACFgE,IAAI,EAAC,OAAO;IACZ7D,WAAW,EAAED,sBAAuB;IACpC+D,eAAe,EAAC,UAAU;IAC1B5G,KAAK,EAAEE,gBAAgB,aAAhBA,gBAAgB,cAAhBA,gBAAgB,GAAIC,uBAAwB;IACnD+E,IAAI,EAAEvE,OAAO,CAACc,OAAQ;IACtBR,KAAK,EAAET,cAAc,CAACiB,OAAQ;IAC9BoF,MAAM,EAAE1D,QAAQ,GAAG,OAAO,GAAGzB,SAAU;IACvC0B,QAAQ,EAAEA,QAAS;IACnB0D,QAAQ,EAAErB,sBAAuB;IACjCsB,OAAO,EAAExB,YAAa;IACtByB,SAAS,EAAE/B,uBAAwB;IACnCgC,OAAO,EAAEtB,aAAc;IACvBuB,iBAAiB;IACjBC,cAAc;IACdC,cAAc;IACdC,YAAY,EAAC,kBAAkB;IAC/BC,YAAY,EAAE5H,KAAK,CAAC6H,WAAY;IAChCC,OAAO,EAAEnE,KAAK,KAAK;EAAU,CAC9B,CACF,EAEDjF,KAAA,CAAAoI,aAAA,CAAC1H,WAAW;IACV4D,SAAS,EAAE9D,UAAU,CACnB,sCAAsC,EACtCgE,oBACF,CAAE;IACFX,IAAI,EAAC,KAAK;IACVoF,YAAY,EAAC,cAAc;IAC3B5G,UAAU,EAAEA,UAAW;IACvBgH,MAAM,EAAC,UAAU;IACjBzH,KAAK,EAAEA,KAAM;IACb8C,WAAW,EACTA,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAKuD,SAAS,GAAG9G,kBAAkB,GAAGmC,SAClD;IACDgG,IAAI,EACF3E,UAAU,aAAVA,UAAU,cAAVA,UAAU,GAAKsD,SAAS,GAAG7G,WAAW,GAAGmI,KAAK,CAAC,EAAE,CAAC,CAACC,IAAI,CAAC,IAAI,CAC7D;IACDC,OAAO,EAAErC,aAAc;IACvBsC,MAAM,EAAEvC,YAAa;IACrBwC,QAAQ,EAAEzC,kBAAmB;IAC7BrE,KAAK,EAAEP,SAAS,CAACe,OAAQ;IACzBuG,QAAQ,EAAE1F,QAAS;IACnBW,IAAI,EAAEA,IAAK;IACXC,OAAO,EAAEA,OAAQ;IACjB9B,KAAK,EAAEA,KAAM;IACbgC,QAAQ,EAAEA,QAAS;IACnBC,KAAK,EACHxB,oBAAoB,GAAG,QAAQ,IAAA/B,YAAA,GAAGJ,KAAK,CAAC2D,KAAK,cAAAvD,YAAA,cAAAA,YAAA,GAAI,SAClD;IACDwD,IAAI,EAAAvC,aAAA,CAAAA,aAAA,KAAOuC,IAAI;MAAE2E,QAAQ,EAAE,KAAK;MAAEC,MAAM,EAAE;IAAK,EAAG;IAClDhH,QAAQ,EAAEA,QAAS;IACnBJ,aAAa,EAAEA,aAAc;IAC7ByC,iBAAiB,EAAEA,iBAAkB;IACrCE,oBAAoB,EAClBD,oBAAoB,IAAIC,oBACzB;IACDC,iBAAiB,EAAEA,iBAAkB;IACrCyE,SAAS,EAAC;EAAK,CAChB,CACc,CACP,CAAC;AAEjB;AAEA,SAASxD,UAAUA,CAACL,OAAoB,EAAEjE,IAAY,EAAE;EAAA,IAAA+H,kBAAA;EACtD,OAAO;IACLhD,WAAW,EAAEZ,iBAAiB,CAACF,OAAO,CAACG,GAAG,CAAC;IAC3C4D,cAAc,EAAG,GAAE/D,OAAO,CAACgE,GAAI,KAAI9D,iBAAiB,CAACF,OAAO,CAACG,GAAG,CAAE,GAAE;IACpE8D,OAAO,EAAG,GAAE/D,iBAAiB,CAACF,OAAO,CAACG,GAAG,CAAE,IAAC,CAAA2D,kBAAA,GAC1C9D,OAAO,CAACkE,IAAI,CAACnI,IAAI,CAAC,cAAA+H,kBAAA,cAAAA,kBAAA,GAAI9D,OAAO,CAACkE,IAAI,CAACC,EACpC;EACH,CAAC;AACH;AAEA,SAASjE,iBAAiBA,CAACvD,KAAa,EAAE;EACxC,OAAQ,IAAGA,KAAM,EAAC;AACpB;AAEA,SAASM,UAAUA,CAACN,KAAa,EAAE;EACjC,OAAO,CACL,OAAOA,KAAK,KAAK,QAAQ,GACrBA,KAAK,CAACyH,KAAK,CAAC,oBAAoB,CAAC,GACjC,CAAChH,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,EACvBiH,KAAK,CAAC,CAAC,CAAC;AACZ;AAEA,SAASvE,SAASA,CAACwE,KAAoB,EAAE;EACvC,OAAOA,KAAK,CAACvE,MAAM,CAACwE,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;AACxC;AAEArJ,WAAW,CAACsJ,qBAAqB,GAAG,IAAI;AACxC,eAAetJ,WAAW"}
1
+ {"version":3,"file":"PhoneNumber.js","names":["React","useMemo","useContext","useCallback","useEffect","useRef","Autocomplete","Flex","classnames","countries","StringField","FieldBlock","useFieldProps","pickSpacingProps","SharedContext","countryFilter","getCountryData","useTranslation","defaultCountryCode","defaultPlaceholder","defaultMask","PhoneNumber","props","_sharedContext$locale","_props$inputRef","_countryCodeRef$curre","_props$width","sharedContext","label","defaultLabel","countryCodeLabel","defaultCountryCodeLabel","errorRequired","lang","locale","split","countryCodeRef","emptyValue","numberRef","dataRef","langRef","wasFilled","errorMessages","_objectSpread","validateRequired","value","required","isChanged","error","countryCode","phoneNumber","splitValue","prevCountryCodeRef","current","undefined","fromExternal","external","omitCountryCodeField","toEvent","schema","_props$schema","type","pattern","defaultProps","ref","preparedProps","inputRef","id","path","itemPath","className","countryCodeFieldClassName","numberFieldClassName","countryCodePlaceholder","placeholder","numberMask","ccFilter","info","warning","size","hasError","disabled","width","help","validateInitially","continuousValidation","validateContinuously","validateUnchanged","setHasFocus","handleChange","setDisplayValue","onCountryCodeChange","onNumberChange","filterCountries","_inputRef$current","number","length","joinValue","filter","country","updateCurrentDataSet","formatCountryCode","cdc","sort","makeObject","getEventValues","callOnChange","eventValues","callOnBlurOrFocus","hasFocus","handleCountryCodeChange","data","_data$selectedKey","selectedKey","trim","handleNumberChange","handleOnBlur","handleOnFocus","handleCountryCodeFocus","updateData","onTypeHandler","revalidateInputValue","event","_event$nativeEvent","nativeEvent","cdcVal","test","find","window","requestAnimationFrame","isDefault","includes","fieldBlockProps","createElement","Horizontal","align","mode","label_direction","status","on_focus","on_blur","on_change","on_type","independent_width","search_numbers","keep_selection","autoComplete","no_animation","noAnimation","stretch","layout","mask","Array","fill","onFocus","onBlur","onChange","innerRef","breakout","outset","inputMode","_country$i18n$lang","selected_value","iso","content","i18n","en","match","slice","array","Boolean","join","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/PhoneNumber/PhoneNumber.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useEffect,\n useRef,\n} from 'react'\nimport { Autocomplete, Flex } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport classnames from 'classnames'\nimport countries, {\n type CountryLang,\n type CountryType,\n} from '../../constants/countries'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldPropsWithExtraValue,\n AllJSONSchemaVersions,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport SharedContext from '../../../../shared/Context'\nimport {\n countryFilter,\n CountryFilterSet,\n getCountryData,\n} from '../SelectCountry'\nimport useTranslation from '../../hooks/useTranslation'\nimport { DrawerListDataArrayItem } from '../../../../fragments/DrawerList'\n\nexport type Props = Omit<\n FieldPropsWithExtraValue<\n string,\n { country: string; phone: string },\n undefined | string\n >,\n 'layout' | 'layoutOptions'\n> & {\n countryCodeFieldClassName?: string\n numberFieldClassName?: string\n countryCodePlaceholder?: string\n countryCodeLabel?: string\n numberMask?: InputMaskedProps['mask']\n pattern?: StringFieldProps['pattern']\n width?: 'large' | 'stretch'\n inputRef?: React.RefObject<HTMLInputElement>\n omitCountryCodeField?: boolean\n onCountryCodeChange?: (value: string | undefined) => void\n onNumberChange?: (value: string | undefined) => void\n\n /**\n * Defines the countries to filter. 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} & Pick<StringFieldProps, 'size'>\n\n// Important for the default value to be defined here, and not after the useFieldProps call, to avoid the UI jumping\n// back to +47 once the user empty the field so handleChange send out undefined.\nconst defaultCountryCode = '+47'\nconst defaultPlaceholder = '00 00 00 00'\nconst defaultMask = [\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n]\n\nfunction PhoneNumber(props: Props) {\n const sharedContext = useContext(SharedContext)\n const {\n label: defaultLabel,\n countryCodeLabel: defaultCountryCodeLabel,\n errorRequired,\n } = useTranslation().PhoneNumber\n const lang = sharedContext.locale?.split('-')[0] as CountryLang\n\n const countryCodeRef = useRef<Props['value']>(props?.emptyValue)\n const numberRef = useRef<Props['value']>(props?.emptyValue)\n const dataRef = useRef<Array<DrawerListDataArrayItem>>(null)\n const langRef = useRef<string>(lang)\n const wasFilled = useRef<boolean>(false)\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorRequired,\n ...props.errorMessages,\n }),\n [errorRequired, props.errorMessages]\n )\n\n const validateRequired = useCallback(\n (value: string, { required, isChanged, error }) => {\n if (required) {\n const [countryCode, phoneNumber] = splitValue(value)\n\n if (countryCode !== prevCountryCodeRef.current) {\n if (countryCode) {\n prevCountryCodeRef.current = countryCode\n }\n return undefined\n }\n\n if (isChanged && !phoneNumber) {\n return error\n }\n }\n\n return undefined\n },\n []\n )\n\n const fromExternal = useCallback(\n (external: string) => {\n const [, phoneNumber] = splitValue(external)\n if (!phoneNumber && !props.omitCountryCodeField) {\n return countryCodeRef.current\n }\n return external\n },\n [props.omitCountryCodeField]\n )\n\n const toEvent = useCallback(\n (value: string) => {\n const [, phoneNumber] = splitValue(value)\n if (!phoneNumber) {\n return props.emptyValue\n }\n return value\n },\n [props.emptyValue]\n )\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'string',\n pattern: props.pattern,\n },\n [props.schema, props.pattern]\n )\n const defaultProps: Partial<Props> = {\n schema,\n errorMessages,\n }\n const ref = useRef<HTMLInputElement>()\n const preparedProps: Props = {\n ...props,\n ...defaultProps,\n validateRequired,\n fromExternal,\n toEvent,\n inputRef: props.inputRef ?? ref,\n }\n\n const {\n id,\n path,\n itemPath,\n value,\n className,\n inputRef,\n countryCodeFieldClassName,\n numberFieldClassName,\n countryCodePlaceholder,\n placeholder,\n countryCodeLabel,\n label = defaultLabel,\n numberMask,\n countries: ccFilter = 'Prioritized',\n emptyValue,\n info,\n warning,\n size,\n error,\n hasError,\n disabled,\n width = 'large',\n help,\n required,\n validateInitially,\n continuousValidation,\n validateContinuously,\n validateUnchanged,\n omitCountryCodeField,\n setHasFocus,\n handleChange,\n setDisplayValue,\n onCountryCodeChange,\n onNumberChange,\n filterCountries,\n } = useFieldProps(preparedProps)\n\n useEffect(() => {\n if (path || itemPath) {\n const number = inputRef.current?.value\n setDisplayValue(\n number?.length > 0\n ? joinValue([countryCodeRef.current, number])\n : undefined\n )\n }\n }, [inputRef, itemPath, path, setDisplayValue, value])\n\n const filter = useCallback(\n (country: CountryType) => {\n return countryFilter(country, filterCountries, ccFilter)\n },\n [ccFilter, filterCountries]\n )\n\n const updateCurrentDataSet = useCallback(() => {\n dataRef.current = getCountryData({\n lang,\n filter:\n // Make sure the whole cc list is displayed when cc filter is set to specific region\n ccFilter === 'Prioritized' && !wasFilled.current\n ? (country) =>\n `${formatCountryCode(country.cdc)}` ===\n countryCodeRef.current\n : filter,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n makeObject,\n })\n }, [lang, filter, ccFilter])\n\n const getEventValues = useCallback(\n ({\n countryCode = countryCodeRef.current || emptyValue,\n phoneNumber = numberRef.current || emptyValue,\n } = {}) => {\n return {\n ...(!omitCountryCodeField ? { countryCode } : {}),\n phoneNumber,\n }\n },\n [omitCountryCodeField, emptyValue]\n )\n\n const callOnChange = useCallback(\n ({ countryCode = undefined, phoneNumber = undefined }) => {\n const eventValues = getEventValues({ countryCode, phoneNumber })\n handleChange(\n joinValue([eventValues.countryCode, eventValues.phoneNumber]),\n eventValues\n )\n },\n [getEventValues, handleChange]\n )\n\n const callOnBlurOrFocus = useCallback(\n (hasFocus: boolean) => {\n setHasFocus(hasFocus, undefined, getEventValues())\n },\n [setHasFocus, getEventValues]\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 countryCode and phoneNumber when value changes.\n */\n useMemo(() => {\n const [countryCode, phoneNumber] = splitValue(props.value || value)\n numberRef.current = phoneNumber\n\n if (lang !== langRef.current || !wasFilled.current) {\n if (!countryCodeRef.current || countryCode) {\n countryCodeRef.current = countryCode || defaultCountryCode\n }\n langRef.current = lang\n\n updateCurrentDataSet()\n }\n }, [value, props.value, lang, updateCurrentDataSet])\n\n const prevCountryCodeRef = useRef(countryCodeRef.current)\n\n const handleCountryCodeChange = useCallback(\n ({ data }: { data: { selectedKey: string } }) => {\n const countryCode = (countryCodeRef.current =\n data?.selectedKey?.trim() || emptyValue)\n\n callOnChange({ countryCode })\n onCountryCodeChange?.(countryCode)\n },\n [emptyValue, callOnChange, onCountryCodeChange]\n )\n\n const handleNumberChange = useCallback(\n (value: string) => {\n const phoneNumber = (numberRef.current = value || emptyValue)\n\n callOnChange({ phoneNumber })\n onNumberChange?.(phoneNumber)\n },\n [emptyValue, callOnChange, onNumberChange]\n )\n\n const handleOnBlur = useCallback(() => {\n callOnBlurOrFocus(false)\n }, [callOnBlurOrFocus])\n\n const handleOnFocus = useCallback(() => {\n callOnBlurOrFocus(true)\n }, [callOnBlurOrFocus])\n\n const handleCountryCodeFocus = useCallback(\n ({ updateData }) => {\n if (!wasFilled.current) {\n wasFilled.current = true\n updateCurrentDataSet()\n updateData(dataRef.current)\n }\n handleOnFocus()\n },\n [handleOnFocus, updateCurrentDataSet]\n )\n\n const onTypeHandler = useCallback(\n ({ value, updateData, revalidateInputValue, event }) => {\n // Handle browser autofill/autocomplete\n if (typeof event?.nativeEvent?.data === 'undefined') {\n const cdcVal = /\\+\\d{1,3}\\s{1}\\d+/.test(value)\n ? splitValue(value)[0]\n : value\n const country = countries.find(({ cdc }) => cdc === cdcVal)\n if (country?.cdc) {\n const countryCode = (countryCodeRef.current = formatCountryCode(\n country.cdc\n ))\n\n updateCurrentDataSet()\n updateData(dataRef.current)\n callOnChange({ countryCode })\n\n // To ensure correct input value,\n // regardless if there is changed data before or not.\n window.requestAnimationFrame(() => {\n revalidateInputValue()\n })\n }\n }\n },\n [callOnChange, updateCurrentDataSet]\n )\n\n const isDefault = countryCodeRef.current?.includes(defaultCountryCode)\n\n const fieldBlockProps: FieldBlockProps = {\n id,\n className: classnames('dnb-forms-field-phone-number', className),\n width: omitCountryCodeField || props.width ? undefined : width,\n label: undefined,\n help: undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Flex.Horizontal align=\"flex-end\">\n {!omitCountryCodeField && (\n <Autocomplete\n className={classnames(\n 'dnb-forms-field-phone-number__country-code',\n countryCodeFieldClassName\n )}\n mode=\"async\"\n placeholder={countryCodePlaceholder}\n label_direction=\"vertical\"\n label={countryCodeLabel ?? defaultCountryCodeLabel}\n data={dataRef.current}\n value={countryCodeRef.current}\n status={hasError ? 'error' : undefined}\n disabled={disabled}\n on_focus={handleCountryCodeFocus}\n on_blur={handleOnBlur}\n on_change={handleCountryCodeChange}\n on_type={onTypeHandler}\n independent_width\n search_numbers\n keep_selection\n autoComplete=\"tel-country-code\"\n no_animation={props.noAnimation}\n stretch={width === 'stretch'}\n size={size}\n />\n )}\n\n <StringField\n className={classnames(\n 'dnb-forms-field-phone-number__number',\n numberFieldClassName\n )}\n type=\"tel\"\n autoComplete=\"tel-national\"\n emptyValue={emptyValue}\n layout=\"vertical\"\n label={label}\n placeholder={\n placeholder ?? (isDefault ? defaultPlaceholder : undefined)\n }\n mask={\n numberMask ?? (isDefault ? defaultMask : Array(12).fill(/\\d/))\n }\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n onChange={handleNumberChange}\n value={numberRef.current}\n innerRef={inputRef}\n info={info}\n warning={warning}\n error={error}\n disabled={disabled}\n width={\n omitCountryCodeField ? 'medium' : props.width ?? 'stretch'\n }\n help={{ ...help, breakout: false, outset: false }}\n required={required}\n errorMessages={errorMessages}\n validateInitially={validateInitially}\n validateContinuously={\n continuousValidation || validateContinuously\n }\n validateUnchanged={validateUnchanged}\n inputMode=\"tel\"\n size={size}\n />\n </Flex.Horizontal>\n </FieldBlock>\n )\n}\n\nfunction makeObject(country: CountryType, lang: string) {\n return {\n selectedKey: formatCountryCode(country.cdc),\n selected_value: `${country.iso} (${formatCountryCode(country.cdc)})`,\n content: `${formatCountryCode(country.cdc)} ${\n country.i18n[lang] ?? country.i18n.en\n }`,\n }\n}\n\nfunction formatCountryCode(value: string) {\n return `+${value}`\n}\n\nfunction splitValue(value: string) {\n return (\n typeof value === 'string'\n ? value.match(/^(\\+[^ ]+)? ?(.*)$/)\n : [undefined, '', '']\n ).slice(1)\n}\n\nfunction joinValue(array: Array<string>) {\n return array.filter(Boolean).join(' ')\n}\n\nPhoneNumber._supportsSpacingProps = true\nexport default PhoneNumber\n"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { getFieldEventsWithTypes } from '../FieldDocs';
2
+ import { stringProperties } from '../String/StringDocs';
2
3
  export const PhoneNumberProperties = {
3
4
  countries: {
4
5
  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`.',
@@ -50,6 +51,7 @@ export const PhoneNumberProperties = {
50
51
  type: 'string | false',
51
52
  status: 'optional'
52
53
  },
54
+ size: stringProperties.size,
53
55
  '[Space](/uilib/layout/space/properties)': {
54
56
  doc: 'Spacing properties like `top` or `bottom` are supported.',
55
57
  type: ['string', 'object'],
@@ -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 {