@dnb/eufemia 10.63.3 → 10.64.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (859) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/assets/icons/dnb/calendar_add.svg +1 -0
  3. package/assets/icons/dnb/calendar_add_medium.svg +1 -0
  4. package/assets/icons/dnb/cog_medium.svg +1 -1
  5. package/assets/icons/dnb/digipass_corporate.svg +1 -1
  6. package/assets/icons/dnb/digipass_corporate_medium.svg +1 -1
  7. package/assets/icons/dnb/digipass_private.svg +1 -1
  8. package/assets/icons/dnb/digipass_private_medium.svg +1 -1
  9. package/assets/icons/dnb/digitpass_private_corporate.svg +1 -0
  10. package/assets/icons/dnb/digitpass_private_corporate_medium.svg +1 -0
  11. package/assets/icons/dnb/eufemia-icons-xml-categorized.tgz +0 -0
  12. package/assets/icons/dnb/eufemia-icons-xml.tgz +0 -0
  13. package/assets/icons/dnb/goal.svg +1 -0
  14. package/assets/icons/dnb/goal_medium.svg +1 -0
  15. package/assets/icons/dnb/information.svg +1 -1
  16. package/assets/icons/dnb/investor.svg +1 -0
  17. package/assets/icons/dnb/investor_medium.svg +1 -0
  18. package/assets/icons/dnb/layout_grid.svg +1 -0
  19. package/assets/icons/dnb/layout_grid_medium.svg +1 -0
  20. package/assets/icons/dnb/question.svg +1 -1
  21. package/assets/icons/dnb/question_circled.svg +1 -1
  22. package/assets/icons/dnb/question_medium.svg +1 -1
  23. package/assets/icons/dnb/return_1_medium.svg +1 -1
  24. package/assets/icons/dnb/show_pin.svg +1 -0
  25. package/assets/icons/dnb/show_pin_medium.svg +1 -0
  26. package/assets/icons/dnb/table.svg +1 -0
  27. package/assets/icons/dnb/table_medium.svg +1 -0
  28. package/cjs/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
  29. package/cjs/components/date-picker/DatePickerCalc.js +1 -1
  30. package/cjs/components/date-picker/DatePickerCalc.js.map +1 -1
  31. package/cjs/components/drawer/style/dnb-drawer.css +4 -4
  32. package/cjs/components/drawer/style/dnb-drawer.min.css +1 -1
  33. package/cjs/components/drawer/style/dnb-drawer.scss +4 -4
  34. package/cjs/components/dropdown/Dropdown.d.ts +1 -1
  35. package/cjs/components/form-status/FormStatus.js +3 -2
  36. package/cjs/components/form-status/FormStatus.js.map +1 -1
  37. package/cjs/components/heading/HeadingCounter.js +4 -4
  38. package/cjs/components/heading/HeadingCounter.js.map +1 -1
  39. package/cjs/components/input/Input.js +1 -1
  40. package/cjs/components/input/Input.js.map +1 -1
  41. package/cjs/components/radio/Radio.d.ts +1 -1
  42. package/cjs/components/radio/RadioGroup.d.ts +1 -1
  43. package/cjs/components/section/Section.d.ts +1 -1
  44. package/cjs/components/section/Section.js.map +1 -1
  45. package/cjs/components/section/SectionDocs.js +1 -1
  46. package/cjs/components/section/SectionDocs.js.map +1 -1
  47. package/cjs/components/textarea/Textarea.js +8 -1
  48. package/cjs/components/textarea/Textarea.js.map +1 -1
  49. package/cjs/elements/lists/style/lists-mixins.scss +1 -1
  50. package/cjs/extensions/forms/Connectors/Bring/index.d.ts +1 -0
  51. package/cjs/extensions/forms/Connectors/Bring/index.js +11 -0
  52. package/cjs/extensions/forms/Connectors/Bring/index.js.map +1 -0
  53. package/cjs/extensions/forms/Connectors/Bring/postalCode.d.ts +25 -0
  54. package/cjs/extensions/forms/Connectors/Bring/postalCode.js +164 -0
  55. package/cjs/extensions/forms/Connectors/Bring/postalCode.js.map +1 -0
  56. package/cjs/extensions/forms/Connectors/createContext.d.ts +58 -0
  57. package/cjs/extensions/forms/Connectors/createContext.js +130 -0
  58. package/cjs/extensions/forms/Connectors/createContext.js.map +1 -0
  59. package/cjs/extensions/forms/Connectors/index.d.ts +2 -0
  60. package/cjs/extensions/forms/Connectors/index.js +26 -0
  61. package/cjs/extensions/forms/Connectors/index.js.map +1 -0
  62. package/cjs/extensions/forms/DataContext/Context.d.ts +4 -1
  63. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  64. package/cjs/extensions/forms/DataContext/Provider/Provider.js +30 -16
  65. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  66. package/cjs/extensions/forms/Field/Address/Address.d.ts +9 -0
  67. package/cjs/extensions/forms/Field/Address/Address.js +63 -0
  68. package/cjs/extensions/forms/Field/Address/Address.js.map +1 -0
  69. package/cjs/extensions/forms/Field/Address/AddressDocs.d.ts +2 -0
  70. package/cjs/extensions/forms/Field/Address/AddressDocs.js +15 -0
  71. package/cjs/extensions/forms/Field/Address/AddressDocs.js.map +1 -0
  72. package/cjs/extensions/forms/Field/Address/index.d.ts +2 -0
  73. package/cjs/extensions/forms/Field/Address/index.js +27 -0
  74. package/cjs/extensions/forms/Field/Address/index.js.map +1 -0
  75. package/cjs/extensions/forms/Field/Email/EmailDocs.d.ts +2 -0
  76. package/cjs/extensions/forms/Field/Email/EmailDocs.js +15 -0
  77. package/cjs/extensions/forms/Field/Email/EmailDocs.js.map +1 -0
  78. package/cjs/extensions/forms/Field/Expiry/Expiry.js +83 -32
  79. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  80. package/cjs/extensions/forms/Field/Name/Name.js +2 -2
  81. package/cjs/extensions/forms/Field/Name/Name.js.map +1 -1
  82. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +1 -0
  83. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +10 -0
  84. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  85. package/cjs/extensions/forms/Field/Password/PasswordDocs.d.ts +2 -0
  86. package/cjs/extensions/forms/Field/Password/PasswordDocs.js +30 -0
  87. package/cjs/extensions/forms/Field/Password/PasswordDocs.js.map +1 -0
  88. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -0
  89. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +23 -10
  90. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  91. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +3 -3
  92. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  93. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +4 -4
  94. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  95. package/cjs/extensions/forms/Field/index.js +7 -0
  96. package/cjs/extensions/forms/Field/index.js.map +1 -1
  97. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +0 -1
  98. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  99. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +4 -0
  100. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  101. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +5 -0
  102. package/cjs/extensions/forms/Iterate/Array/Array.js +7 -2
  103. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  104. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js +5 -0
  105. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  106. package/cjs/extensions/forms/Iterate/Array/types.d.ts +1 -0
  107. package/cjs/extensions/forms/Iterate/Array/types.js.map +1 -1
  108. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +4 -0
  109. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +3 -2
  110. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  111. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
  112. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  113. package/cjs/extensions/forms/Value/Address/Address.d.ts +9 -0
  114. package/cjs/extensions/forms/Value/Address/Address.js +41 -0
  115. package/cjs/extensions/forms/Value/Address/Address.js.map +1 -0
  116. package/cjs/extensions/forms/Value/Address/index.d.ts +2 -0
  117. package/cjs/extensions/forms/Value/Address/index.js +27 -0
  118. package/cjs/extensions/forms/Value/Address/index.js.map +1 -0
  119. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +1 -1
  120. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  121. package/cjs/extensions/forms/Value/index.d.ts +1 -0
  122. package/cjs/extensions/forms/Value/index.js +7 -0
  123. package/cjs/extensions/forms/Value/index.js.map +1 -1
  124. package/cjs/extensions/forms/Wizard/Step/Step.js +2 -2
  125. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  126. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +13 -0
  127. package/cjs/extensions/forms/constants/locales/en-GB.js +20 -7
  128. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  129. package/cjs/extensions/forms/constants/locales/en-US.d.ts +13 -0
  130. package/cjs/extensions/forms/constants/locales/index.d.ts +26 -0
  131. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +13 -0
  132. package/cjs/extensions/forms/constants/locales/nb-NO.js +16 -3
  133. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  134. package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js +3 -3
  135. package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  136. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +8 -4
  137. package/cjs/extensions/forms/hooks/useFieldProps.js +39 -19
  138. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  139. package/cjs/extensions/forms/index.d.ts +1 -0
  140. package/cjs/extensions/forms/index.js +4 -1
  141. package/cjs/extensions/forms/index.js.map +1 -1
  142. package/cjs/extensions/forms/style/dnb-forms.css +4 -0
  143. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  144. package/cjs/extensions/forms/types.d.ts +34 -10
  145. package/cjs/extensions/forms/types.js.map +1 -1
  146. package/cjs/extensions/forms/utils/json-pointer/json-pointer.js +1 -1
  147. package/cjs/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
  148. package/cjs/icons/calendar_add.d.ts +3 -0
  149. package/cjs/icons/calendar_add.js +11 -0
  150. package/cjs/icons/calendar_add.js.map +1 -0
  151. package/cjs/icons/calendar_add_medium.d.ts +3 -0
  152. package/cjs/icons/calendar_add_medium.js +11 -0
  153. package/cjs/icons/calendar_add_medium.js.map +1 -0
  154. package/cjs/icons/digitpass_private_corporate.d.ts +3 -0
  155. package/cjs/icons/digitpass_private_corporate.js +11 -0
  156. package/cjs/icons/digitpass_private_corporate.js.map +1 -0
  157. package/cjs/icons/digitpass_private_corporate_medium.d.ts +3 -0
  158. package/cjs/icons/digitpass_private_corporate_medium.js +11 -0
  159. package/cjs/icons/digitpass_private_corporate_medium.js.map +1 -0
  160. package/cjs/icons/dnb/calendar_add.d.ts +3 -0
  161. package/cjs/icons/dnb/calendar_add.js +31 -0
  162. package/cjs/icons/dnb/calendar_add.js.map +1 -0
  163. package/cjs/icons/dnb/calendar_add_medium.d.ts +3 -0
  164. package/cjs/icons/dnb/calendar_add_medium.js +25 -0
  165. package/cjs/icons/dnb/calendar_add_medium.js.map +1 -0
  166. package/cjs/icons/dnb/cog_medium.js +1 -1
  167. package/cjs/icons/dnb/cog_medium.js.map +1 -1
  168. package/cjs/icons/dnb/digipass_corporate.js +3 -3
  169. package/cjs/icons/dnb/digipass_corporate.js.map +1 -1
  170. package/cjs/icons/dnb/digipass_corporate_medium.js +3 -3
  171. package/cjs/icons/dnb/digipass_corporate_medium.js.map +1 -1
  172. package/cjs/icons/dnb/digipass_private.js +3 -3
  173. package/cjs/icons/dnb/digipass_private.js.map +1 -1
  174. package/cjs/icons/dnb/digipass_private_medium.js +3 -3
  175. package/cjs/icons/dnb/digipass_private_medium.js.map +1 -1
  176. package/cjs/icons/dnb/digitpass_private_corporate.d.ts +3 -0
  177. package/cjs/icons/dnb/digitpass_private_corporate.js +25 -0
  178. package/cjs/icons/dnb/digitpass_private_corporate.js.map +1 -0
  179. package/cjs/icons/dnb/digitpass_private_corporate_medium.d.ts +3 -0
  180. package/cjs/icons/dnb/digitpass_private_corporate_medium.js +25 -0
  181. package/cjs/icons/dnb/digitpass_private_corporate_medium.js.map +1 -0
  182. package/cjs/icons/dnb/goal.d.ts +3 -0
  183. package/cjs/icons/dnb/goal.js +26 -0
  184. package/cjs/icons/dnb/goal.js.map +1 -0
  185. package/cjs/icons/dnb/goal_medium.d.ts +3 -0
  186. package/cjs/icons/dnb/goal_medium.js +26 -0
  187. package/cjs/icons/dnb/goal_medium.js.map +1 -0
  188. package/cjs/icons/dnb/icons-meta.json +132 -4
  189. package/cjs/icons/dnb/icons-svg.lock +1278 -1096
  190. package/cjs/icons/dnb/index.d.ts +15 -1
  191. package/cjs/icons/dnb/index.js +98 -0
  192. package/cjs/icons/dnb/index.js.map +1 -1
  193. package/cjs/icons/dnb/information.js +1 -1
  194. package/cjs/icons/dnb/information.js.map +1 -1
  195. package/cjs/icons/dnb/investor.d.ts +3 -0
  196. package/cjs/icons/dnb/investor.js +33 -0
  197. package/cjs/icons/dnb/investor.js.map +1 -0
  198. package/cjs/icons/dnb/investor_medium.d.ts +3 -0
  199. package/cjs/icons/dnb/investor_medium.js +33 -0
  200. package/cjs/icons/dnb/investor_medium.js.map +1 -0
  201. package/cjs/icons/dnb/layout_grid.d.ts +3 -0
  202. package/cjs/icons/dnb/layout_grid.js +34 -0
  203. package/cjs/icons/dnb/layout_grid.js.map +1 -0
  204. package/cjs/icons/dnb/layout_grid_medium.d.ts +3 -0
  205. package/cjs/icons/dnb/layout_grid_medium.js +34 -0
  206. package/cjs/icons/dnb/layout_grid_medium.js.map +1 -0
  207. package/cjs/icons/dnb/question.js +1 -1
  208. package/cjs/icons/dnb/question.js.map +1 -1
  209. package/cjs/icons/dnb/question_circled.js +1 -1
  210. package/cjs/icons/dnb/question_circled.js.map +1 -1
  211. package/cjs/icons/dnb/question_medium.js +1 -1
  212. package/cjs/icons/dnb/question_medium.js.map +1 -1
  213. package/cjs/icons/dnb/return_1_medium.js +1 -1
  214. package/cjs/icons/dnb/return_1_medium.js.map +1 -1
  215. package/cjs/icons/dnb/secondary_icons.d.ts +8 -1
  216. package/cjs/icons/dnb/secondary_icons.js +49 -0
  217. package/cjs/icons/dnb/secondary_icons.js.map +1 -1
  218. package/cjs/icons/dnb/secondary_icons_medium.d.ts +8 -1
  219. package/cjs/icons/dnb/secondary_icons_medium.js +49 -0
  220. package/cjs/icons/dnb/secondary_icons_medium.js.map +1 -1
  221. package/cjs/icons/dnb/show_pin.d.ts +3 -0
  222. package/cjs/icons/dnb/show_pin.js +23 -0
  223. package/cjs/icons/dnb/show_pin.js.map +1 -0
  224. package/cjs/icons/dnb/show_pin_medium.d.ts +3 -0
  225. package/cjs/icons/dnb/show_pin_medium.js +23 -0
  226. package/cjs/icons/dnb/show_pin_medium.js.map +1 -0
  227. package/cjs/icons/dnb/table.d.ts +3 -0
  228. package/cjs/icons/dnb/table.js +33 -0
  229. package/cjs/icons/dnb/table.js.map +1 -0
  230. package/cjs/icons/dnb/table_medium.d.ts +3 -0
  231. package/cjs/icons/dnb/table_medium.js +26 -0
  232. package/cjs/icons/dnb/table_medium.js.map +1 -0
  233. package/cjs/icons/goal.d.ts +3 -0
  234. package/cjs/icons/goal.js +11 -0
  235. package/cjs/icons/goal.js.map +1 -0
  236. package/cjs/icons/goal_medium.d.ts +3 -0
  237. package/cjs/icons/goal_medium.js +11 -0
  238. package/cjs/icons/goal_medium.js.map +1 -0
  239. package/cjs/icons/index.d.ts +15 -1
  240. package/cjs/icons/index.js +98 -0
  241. package/cjs/icons/index.js.map +1 -1
  242. package/cjs/icons/investor.d.ts +3 -0
  243. package/cjs/icons/investor.js +11 -0
  244. package/cjs/icons/investor.js.map +1 -0
  245. package/cjs/icons/investor_medium.d.ts +3 -0
  246. package/cjs/icons/investor_medium.js +11 -0
  247. package/cjs/icons/investor_medium.js.map +1 -0
  248. package/cjs/icons/layout_grid.d.ts +3 -0
  249. package/cjs/icons/layout_grid.js +11 -0
  250. package/cjs/icons/layout_grid.js.map +1 -0
  251. package/cjs/icons/layout_grid_medium.d.ts +3 -0
  252. package/cjs/icons/layout_grid_medium.js +11 -0
  253. package/cjs/icons/layout_grid_medium.js.map +1 -0
  254. package/cjs/icons/show_pin.d.ts +3 -0
  255. package/cjs/icons/show_pin.js +11 -0
  256. package/cjs/icons/show_pin.js.map +1 -0
  257. package/cjs/icons/show_pin_medium.d.ts +3 -0
  258. package/cjs/icons/show_pin_medium.js +11 -0
  259. package/cjs/icons/show_pin_medium.js.map +1 -0
  260. package/cjs/icons/table.d.ts +3 -0
  261. package/cjs/icons/table.js +11 -0
  262. package/cjs/icons/table.js.map +1 -0
  263. package/cjs/icons/table_medium.d.ts +3 -0
  264. package/cjs/icons/table_medium.js +11 -0
  265. package/cjs/icons/table_medium.js.map +1 -0
  266. package/cjs/shared/Eufemia.d.ts +1 -1
  267. package/cjs/shared/Eufemia.js +2 -2
  268. package/cjs/shared/Eufemia.js.map +1 -1
  269. package/cjs/style/core/reset.scss +3 -9
  270. package/cjs/style/core/scopes.scss +1 -1
  271. package/cjs/style/dnb-ui-basis.css +4 -8
  272. package/cjs/style/dnb-ui-basis.min.css +1 -1
  273. package/cjs/style/dnb-ui-body.css +4 -8
  274. package/cjs/style/dnb-ui-body.min.css +1 -1
  275. package/cjs/style/dnb-ui-components.css +8 -4
  276. package/cjs/style/dnb-ui-components.min.css +2 -2
  277. package/cjs/style/dnb-ui-core.css +4 -8
  278. package/cjs/style/dnb-ui-core.min.css +1 -1
  279. package/cjs/style/dnb-ui-extensions.css +4 -0
  280. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  281. package/cjs/style/dnb-ui-forms.css +4 -0
  282. package/cjs/style/dnb-ui-forms.min.css +1 -1
  283. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +12 -4
  284. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  285. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +4 -0
  286. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  287. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +4 -0
  288. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  289. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +12 -4
  290. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  291. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +4 -0
  292. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  293. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +4 -0
  294. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  295. package/cjs/style/themes/theme-ui/ui-theme-components.css +12 -4
  296. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  297. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +4 -0
  298. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  299. package/cjs/style/themes/theme-ui/ui-theme-forms.css +4 -0
  300. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  301. package/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
  302. package/components/date-picker/DatePickerCalc.js +1 -1
  303. package/components/date-picker/DatePickerCalc.js.map +1 -1
  304. package/components/drawer/style/dnb-drawer.css +4 -4
  305. package/components/drawer/style/dnb-drawer.min.css +1 -1
  306. package/components/drawer/style/dnb-drawer.scss +4 -4
  307. package/components/dropdown/Dropdown.d.ts +1 -1
  308. package/components/form-status/FormStatus.js +3 -2
  309. package/components/form-status/FormStatus.js.map +1 -1
  310. package/components/heading/HeadingCounter.js +4 -4
  311. package/components/heading/HeadingCounter.js.map +1 -1
  312. package/components/input/Input.js +1 -1
  313. package/components/input/Input.js.map +1 -1
  314. package/components/radio/Radio.d.ts +1 -1
  315. package/components/radio/RadioGroup.d.ts +1 -1
  316. package/components/section/Section.d.ts +1 -1
  317. package/components/section/Section.js.map +1 -1
  318. package/components/section/SectionDocs.js +1 -1
  319. package/components/section/SectionDocs.js.map +1 -1
  320. package/components/textarea/Textarea.js +8 -1
  321. package/components/textarea/Textarea.js.map +1 -1
  322. package/elements/lists/style/lists-mixins.scss +1 -1
  323. package/es/components/button/style/themes/dnb-button-theme-ui.scss +1 -1
  324. package/es/components/date-picker/DatePickerCalc.js +1 -1
  325. package/es/components/date-picker/DatePickerCalc.js.map +1 -1
  326. package/es/components/drawer/style/dnb-drawer.css +4 -4
  327. package/es/components/drawer/style/dnb-drawer.min.css +1 -1
  328. package/es/components/drawer/style/dnb-drawer.scss +4 -4
  329. package/es/components/dropdown/Dropdown.d.ts +1 -1
  330. package/es/components/form-status/FormStatus.js +3 -2
  331. package/es/components/form-status/FormStatus.js.map +1 -1
  332. package/es/components/heading/HeadingCounter.js +4 -4
  333. package/es/components/heading/HeadingCounter.js.map +1 -1
  334. package/es/components/input/Input.js +1 -1
  335. package/es/components/input/Input.js.map +1 -1
  336. package/es/components/radio/Radio.d.ts +1 -1
  337. package/es/components/radio/RadioGroup.d.ts +1 -1
  338. package/es/components/section/Section.d.ts +1 -1
  339. package/es/components/section/Section.js.map +1 -1
  340. package/es/components/section/SectionDocs.js +1 -1
  341. package/es/components/section/SectionDocs.js.map +1 -1
  342. package/es/components/textarea/Textarea.js +8 -1
  343. package/es/components/textarea/Textarea.js.map +1 -1
  344. package/es/elements/lists/style/lists-mixins.scss +1 -1
  345. package/es/extensions/forms/Connectors/Bring/index.d.ts +1 -0
  346. package/es/extensions/forms/Connectors/Bring/index.js +1 -0
  347. package/es/extensions/forms/Connectors/Bring/index.js.map +1 -0
  348. package/es/extensions/forms/Connectors/Bring/postalCode.d.ts +25 -0
  349. package/es/extensions/forms/Connectors/Bring/postalCode.js +150 -0
  350. package/es/extensions/forms/Connectors/Bring/postalCode.js.map +1 -0
  351. package/es/extensions/forms/Connectors/createContext.d.ts +58 -0
  352. package/es/extensions/forms/Connectors/createContext.js +116 -0
  353. package/es/extensions/forms/Connectors/createContext.js.map +1 -0
  354. package/es/extensions/forms/Connectors/index.d.ts +2 -0
  355. package/es/extensions/forms/Connectors/index.js +3 -0
  356. package/es/extensions/forms/Connectors/index.js.map +1 -0
  357. package/es/extensions/forms/DataContext/Context.d.ts +4 -1
  358. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  359. package/es/extensions/forms/DataContext/Provider/Provider.js +25 -14
  360. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  361. package/es/extensions/forms/Field/Address/Address.d.ts +9 -0
  362. package/es/extensions/forms/Field/Address/Address.js +51 -0
  363. package/es/extensions/forms/Field/Address/Address.js.map +1 -0
  364. package/es/extensions/forms/Field/Address/AddressDocs.d.ts +2 -0
  365. package/es/extensions/forms/Field/Address/AddressDocs.js +8 -0
  366. package/es/extensions/forms/Field/Address/AddressDocs.js.map +1 -0
  367. package/es/extensions/forms/Field/Address/index.d.ts +2 -0
  368. package/es/extensions/forms/Field/Address/index.js +3 -0
  369. package/es/extensions/forms/Field/Address/index.js.map +1 -0
  370. package/es/extensions/forms/Field/Email/EmailDocs.d.ts +2 -0
  371. package/es/extensions/forms/Field/Email/EmailDocs.js +8 -0
  372. package/es/extensions/forms/Field/Email/EmailDocs.js.map +1 -0
  373. package/es/extensions/forms/Field/Expiry/Expiry.js +82 -31
  374. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  375. package/es/extensions/forms/Field/Name/Name.js +2 -2
  376. package/es/extensions/forms/Field/Name/Name.js.map +1 -1
  377. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +1 -0
  378. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +9 -0
  379. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  380. package/es/extensions/forms/Field/Password/PasswordDocs.d.ts +2 -0
  381. package/es/extensions/forms/Field/Password/PasswordDocs.js +23 -0
  382. package/es/extensions/forms/Field/Password/PasswordDocs.js.map +1 -0
  383. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -0
  384. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +23 -10
  385. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  386. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +3 -3
  387. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  388. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +4 -4
  389. package/es/extensions/forms/Field/index.d.ts +1 -0
  390. package/es/extensions/forms/Field/index.js +1 -0
  391. package/es/extensions/forms/Field/index.js.map +1 -1
  392. package/es/extensions/forms/FieldBlock/FieldBlock.js +0 -1
  393. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  394. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +4 -0
  395. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  396. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +5 -0
  397. package/es/extensions/forms/Iterate/Array/Array.js +7 -2
  398. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  399. package/es/extensions/forms/Iterate/Array/ArrayDocs.js +5 -0
  400. package/es/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  401. package/es/extensions/forms/Iterate/Array/types.d.ts +1 -0
  402. package/es/extensions/forms/Iterate/Array/types.js.map +1 -1
  403. package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +4 -0
  404. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +3 -2
  405. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  406. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
  407. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  408. package/es/extensions/forms/Value/Address/Address.d.ts +9 -0
  409. package/es/extensions/forms/Value/Address/Address.js +31 -0
  410. package/es/extensions/forms/Value/Address/Address.js.map +1 -0
  411. package/es/extensions/forms/Value/Address/index.d.ts +2 -0
  412. package/es/extensions/forms/Value/Address/index.js +3 -0
  413. package/es/extensions/forms/Value/Address/index.js.map +1 -0
  414. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +1 -1
  415. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  416. package/es/extensions/forms/Value/index.d.ts +1 -0
  417. package/es/extensions/forms/Value/index.js +1 -0
  418. package/es/extensions/forms/Value/index.js.map +1 -1
  419. package/es/extensions/forms/Wizard/Step/Step.js +2 -2
  420. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  421. package/es/extensions/forms/constants/locales/en-GB.d.ts +13 -0
  422. package/es/extensions/forms/constants/locales/en-GB.js +20 -7
  423. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  424. package/es/extensions/forms/constants/locales/en-US.d.ts +13 -0
  425. package/es/extensions/forms/constants/locales/index.d.ts +26 -0
  426. package/es/extensions/forms/constants/locales/nb-NO.d.ts +13 -0
  427. package/es/extensions/forms/constants/locales/nb-NO.js +16 -3
  428. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  429. package/es/extensions/forms/hooks/DataValueWritePropsDocs.js +3 -3
  430. package/es/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  431. package/es/extensions/forms/hooks/useFieldProps.d.ts +8 -4
  432. package/es/extensions/forms/hooks/useFieldProps.js +39 -18
  433. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  434. package/es/extensions/forms/index.d.ts +1 -0
  435. package/es/extensions/forms/index.js +1 -0
  436. package/es/extensions/forms/index.js.map +1 -1
  437. package/es/extensions/forms/style/dnb-forms.css +4 -0
  438. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  439. package/es/extensions/forms/types.d.ts +34 -10
  440. package/es/extensions/forms/types.js.map +1 -1
  441. package/es/extensions/forms/utils/json-pointer/json-pointer.js +1 -1
  442. package/es/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
  443. package/es/icons/calendar_add.d.ts +3 -0
  444. package/es/icons/calendar_add.js +3 -0
  445. package/es/icons/calendar_add.js.map +1 -0
  446. package/es/icons/calendar_add_medium.d.ts +3 -0
  447. package/es/icons/calendar_add_medium.js +3 -0
  448. package/es/icons/calendar_add_medium.js.map +1 -0
  449. package/es/icons/digitpass_private_corporate.d.ts +3 -0
  450. package/es/icons/digitpass_private_corporate.js +3 -0
  451. package/es/icons/digitpass_private_corporate.js.map +1 -0
  452. package/es/icons/digitpass_private_corporate_medium.d.ts +3 -0
  453. package/es/icons/digitpass_private_corporate_medium.js +3 -0
  454. package/es/icons/digitpass_private_corporate_medium.js.map +1 -0
  455. package/es/icons/dnb/calendar_add.d.ts +3 -0
  456. package/es/icons/dnb/calendar_add.js +23 -0
  457. package/es/icons/dnb/calendar_add.js.map +1 -0
  458. package/es/icons/dnb/calendar_add_medium.d.ts +3 -0
  459. package/es/icons/dnb/calendar_add_medium.js +17 -0
  460. package/es/icons/dnb/calendar_add_medium.js.map +1 -0
  461. package/es/icons/dnb/cog_medium.js +1 -1
  462. package/es/icons/dnb/cog_medium.js.map +1 -1
  463. package/es/icons/dnb/digipass_corporate.js +3 -3
  464. package/es/icons/dnb/digipass_corporate.js.map +1 -1
  465. package/es/icons/dnb/digipass_corporate_medium.js +3 -3
  466. package/es/icons/dnb/digipass_corporate_medium.js.map +1 -1
  467. package/es/icons/dnb/digipass_private.js +3 -3
  468. package/es/icons/dnb/digipass_private.js.map +1 -1
  469. package/es/icons/dnb/digipass_private_medium.js +3 -3
  470. package/es/icons/dnb/digipass_private_medium.js.map +1 -1
  471. package/es/icons/dnb/digitpass_private_corporate.d.ts +3 -0
  472. package/es/icons/dnb/digitpass_private_corporate.js +17 -0
  473. package/es/icons/dnb/digitpass_private_corporate.js.map +1 -0
  474. package/es/icons/dnb/digitpass_private_corporate_medium.d.ts +3 -0
  475. package/es/icons/dnb/digitpass_private_corporate_medium.js +17 -0
  476. package/es/icons/dnb/digitpass_private_corporate_medium.js.map +1 -0
  477. package/es/icons/dnb/goal.d.ts +3 -0
  478. package/es/icons/dnb/goal.js +18 -0
  479. package/es/icons/dnb/goal.js.map +1 -0
  480. package/es/icons/dnb/goal_medium.d.ts +3 -0
  481. package/es/icons/dnb/goal_medium.js +18 -0
  482. package/es/icons/dnb/goal_medium.js.map +1 -0
  483. package/es/icons/dnb/icons-meta.json +132 -4
  484. package/es/icons/dnb/icons-svg.lock +1278 -1096
  485. package/es/icons/dnb/index.d.ts +15 -1
  486. package/es/icons/dnb/index.js +15 -1
  487. package/es/icons/dnb/index.js.map +1 -1
  488. package/es/icons/dnb/information.js +1 -1
  489. package/es/icons/dnb/information.js.map +1 -1
  490. package/es/icons/dnb/investor.d.ts +3 -0
  491. package/es/icons/dnb/investor.js +25 -0
  492. package/es/icons/dnb/investor.js.map +1 -0
  493. package/es/icons/dnb/investor_medium.d.ts +3 -0
  494. package/es/icons/dnb/investor_medium.js +25 -0
  495. package/es/icons/dnb/investor_medium.js.map +1 -0
  496. package/es/icons/dnb/layout_grid.d.ts +3 -0
  497. package/es/icons/dnb/layout_grid.js +26 -0
  498. package/es/icons/dnb/layout_grid.js.map +1 -0
  499. package/es/icons/dnb/layout_grid_medium.d.ts +3 -0
  500. package/es/icons/dnb/layout_grid_medium.js +26 -0
  501. package/es/icons/dnb/layout_grid_medium.js.map +1 -0
  502. package/es/icons/dnb/question.js +1 -1
  503. package/es/icons/dnb/question.js.map +1 -1
  504. package/es/icons/dnb/question_circled.js +1 -1
  505. package/es/icons/dnb/question_circled.js.map +1 -1
  506. package/es/icons/dnb/question_medium.js +1 -1
  507. package/es/icons/dnb/question_medium.js.map +1 -1
  508. package/es/icons/dnb/return_1_medium.js +1 -1
  509. package/es/icons/dnb/return_1_medium.js.map +1 -1
  510. package/es/icons/dnb/secondary_icons.d.ts +8 -1
  511. package/es/icons/dnb/secondary_icons.js +8 -1
  512. package/es/icons/dnb/secondary_icons.js.map +1 -1
  513. package/es/icons/dnb/secondary_icons_medium.d.ts +8 -1
  514. package/es/icons/dnb/secondary_icons_medium.js +8 -1
  515. package/es/icons/dnb/secondary_icons_medium.js.map +1 -1
  516. package/es/icons/dnb/show_pin.d.ts +3 -0
  517. package/es/icons/dnb/show_pin.js +15 -0
  518. package/es/icons/dnb/show_pin.js.map +1 -0
  519. package/es/icons/dnb/show_pin_medium.d.ts +3 -0
  520. package/es/icons/dnb/show_pin_medium.js +15 -0
  521. package/es/icons/dnb/show_pin_medium.js.map +1 -0
  522. package/es/icons/dnb/table.d.ts +3 -0
  523. package/es/icons/dnb/table.js +25 -0
  524. package/es/icons/dnb/table.js.map +1 -0
  525. package/es/icons/dnb/table_medium.d.ts +3 -0
  526. package/es/icons/dnb/table_medium.js +18 -0
  527. package/es/icons/dnb/table_medium.js.map +1 -0
  528. package/es/icons/goal.d.ts +3 -0
  529. package/es/icons/goal.js +3 -0
  530. package/es/icons/goal.js.map +1 -0
  531. package/es/icons/goal_medium.d.ts +3 -0
  532. package/es/icons/goal_medium.js +3 -0
  533. package/es/icons/goal_medium.js.map +1 -0
  534. package/es/icons/index.d.ts +15 -1
  535. package/es/icons/index.js +15 -1
  536. package/es/icons/index.js.map +1 -1
  537. package/es/icons/investor.d.ts +3 -0
  538. package/es/icons/investor.js +3 -0
  539. package/es/icons/investor.js.map +1 -0
  540. package/es/icons/investor_medium.d.ts +3 -0
  541. package/es/icons/investor_medium.js +3 -0
  542. package/es/icons/investor_medium.js.map +1 -0
  543. package/es/icons/layout_grid.d.ts +3 -0
  544. package/es/icons/layout_grid.js +3 -0
  545. package/es/icons/layout_grid.js.map +1 -0
  546. package/es/icons/layout_grid_medium.d.ts +3 -0
  547. package/es/icons/layout_grid_medium.js +3 -0
  548. package/es/icons/layout_grid_medium.js.map +1 -0
  549. package/es/icons/show_pin.d.ts +3 -0
  550. package/es/icons/show_pin.js +3 -0
  551. package/es/icons/show_pin.js.map +1 -0
  552. package/es/icons/show_pin_medium.d.ts +3 -0
  553. package/es/icons/show_pin_medium.js +3 -0
  554. package/es/icons/show_pin_medium.js.map +1 -0
  555. package/es/icons/table.d.ts +3 -0
  556. package/es/icons/table.js +3 -0
  557. package/es/icons/table.js.map +1 -0
  558. package/es/icons/table_medium.d.ts +3 -0
  559. package/es/icons/table_medium.js +3 -0
  560. package/es/icons/table_medium.js.map +1 -0
  561. package/es/shared/Eufemia.d.ts +1 -1
  562. package/es/shared/Eufemia.js +2 -2
  563. package/es/shared/Eufemia.js.map +1 -1
  564. package/es/style/core/reset.scss +3 -9
  565. package/es/style/core/scopes.scss +1 -1
  566. package/es/style/dnb-ui-basis.css +4 -8
  567. package/es/style/dnb-ui-basis.min.css +1 -1
  568. package/es/style/dnb-ui-body.css +4 -8
  569. package/es/style/dnb-ui-body.min.css +1 -1
  570. package/es/style/dnb-ui-components.css +8 -4
  571. package/es/style/dnb-ui-components.min.css +2 -2
  572. package/es/style/dnb-ui-core.css +4 -8
  573. package/es/style/dnb-ui-core.min.css +1 -1
  574. package/es/style/dnb-ui-extensions.css +4 -0
  575. package/es/style/dnb-ui-extensions.min.css +1 -1
  576. package/es/style/dnb-ui-forms.css +4 -0
  577. package/es/style/dnb-ui-forms.min.css +1 -1
  578. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +12 -4
  579. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  580. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +4 -0
  581. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  582. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +4 -0
  583. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  584. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +12 -4
  585. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  586. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +4 -0
  587. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  588. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +4 -0
  589. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  590. package/es/style/themes/theme-ui/ui-theme-components.css +12 -4
  591. package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  592. package/es/style/themes/theme-ui/ui-theme-extensions.css +4 -0
  593. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  594. package/es/style/themes/theme-ui/ui-theme-forms.css +4 -0
  595. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  596. package/esm/dnb-ui-basis.min.mjs +1 -1
  597. package/esm/dnb-ui-components.min.mjs +1 -1
  598. package/esm/dnb-ui-elements.min.mjs +1 -1
  599. package/esm/dnb-ui-extensions.min.mjs +3 -3
  600. package/esm/dnb-ui-icons.min.mjs +1 -1
  601. package/esm/dnb-ui-lib.min.mjs +1 -1
  602. package/extensions/forms/Connectors/Bring/index.d.ts +1 -0
  603. package/extensions/forms/Connectors/Bring/index.js +3 -0
  604. package/extensions/forms/Connectors/Bring/index.js.map +1 -0
  605. package/extensions/forms/Connectors/Bring/postalCode.d.ts +25 -0
  606. package/extensions/forms/Connectors/Bring/postalCode.js +151 -0
  607. package/extensions/forms/Connectors/Bring/postalCode.js.map +1 -0
  608. package/extensions/forms/Connectors/createContext.d.ts +58 -0
  609. package/extensions/forms/Connectors/createContext.js +119 -0
  610. package/extensions/forms/Connectors/createContext.js.map +1 -0
  611. package/extensions/forms/Connectors/index.d.ts +2 -0
  612. package/extensions/forms/Connectors/index.js +4 -0
  613. package/extensions/forms/Connectors/index.js.map +1 -0
  614. package/extensions/forms/DataContext/Context.d.ts +4 -1
  615. package/extensions/forms/DataContext/Context.js.map +1 -1
  616. package/extensions/forms/DataContext/Provider/Provider.js +30 -16
  617. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  618. package/extensions/forms/Field/Address/Address.d.ts +9 -0
  619. package/extensions/forms/Field/Address/Address.js +51 -0
  620. package/extensions/forms/Field/Address/Address.js.map +1 -0
  621. package/extensions/forms/Field/Address/AddressDocs.d.ts +2 -0
  622. package/extensions/forms/Field/Address/AddressDocs.js +8 -0
  623. package/extensions/forms/Field/Address/AddressDocs.js.map +1 -0
  624. package/extensions/forms/Field/Address/index.d.ts +2 -0
  625. package/extensions/forms/Field/Address/index.js +3 -0
  626. package/extensions/forms/Field/Address/index.js.map +1 -0
  627. package/extensions/forms/Field/Email/EmailDocs.d.ts +2 -0
  628. package/extensions/forms/Field/Email/EmailDocs.js +8 -0
  629. package/extensions/forms/Field/Email/EmailDocs.js.map +1 -0
  630. package/extensions/forms/Field/Expiry/Expiry.js +82 -31
  631. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  632. package/extensions/forms/Field/Name/Name.js +2 -2
  633. package/extensions/forms/Field/Name/Name.js.map +1 -1
  634. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +1 -0
  635. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +9 -0
  636. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  637. package/extensions/forms/Field/Password/PasswordDocs.d.ts +2 -0
  638. package/extensions/forms/Field/Password/PasswordDocs.js +23 -0
  639. package/extensions/forms/Field/Password/PasswordDocs.js.map +1 -0
  640. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -0
  641. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +23 -10
  642. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  643. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +3 -3
  644. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  645. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +4 -4
  646. package/extensions/forms/Field/index.d.ts +1 -0
  647. package/extensions/forms/Field/index.js +1 -0
  648. package/extensions/forms/Field/index.js.map +1 -1
  649. package/extensions/forms/FieldBlock/FieldBlock.js +0 -1
  650. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  651. package/extensions/forms/FieldBlock/style/dnb-field-block.css +4 -0
  652. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  653. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +5 -0
  654. package/extensions/forms/Iterate/Array/Array.js +7 -2
  655. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  656. package/extensions/forms/Iterate/Array/ArrayDocs.js +5 -0
  657. package/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  658. package/extensions/forms/Iterate/Array/types.d.ts +1 -0
  659. package/extensions/forms/Iterate/Array/types.js.map +1 -1
  660. package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +4 -0
  661. package/extensions/forms/Iterate/PushContainer/PushContainer.js +3 -2
  662. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  663. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +5 -0
  664. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  665. package/extensions/forms/Value/Address/Address.d.ts +9 -0
  666. package/extensions/forms/Value/Address/Address.js +31 -0
  667. package/extensions/forms/Value/Address/Address.js.map +1 -0
  668. package/extensions/forms/Value/Address/index.d.ts +2 -0
  669. package/extensions/forms/Value/Address/index.js +3 -0
  670. package/extensions/forms/Value/Address/index.js.map +1 -0
  671. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js +1 -1
  672. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  673. package/extensions/forms/Value/index.d.ts +1 -0
  674. package/extensions/forms/Value/index.js +1 -0
  675. package/extensions/forms/Value/index.js.map +1 -1
  676. package/extensions/forms/Wizard/Step/Step.js +2 -2
  677. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  678. package/extensions/forms/constants/locales/en-GB.d.ts +13 -0
  679. package/extensions/forms/constants/locales/en-GB.js +20 -7
  680. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  681. package/extensions/forms/constants/locales/en-US.d.ts +13 -0
  682. package/extensions/forms/constants/locales/index.d.ts +26 -0
  683. package/extensions/forms/constants/locales/nb-NO.d.ts +13 -0
  684. package/extensions/forms/constants/locales/nb-NO.js +16 -3
  685. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  686. package/extensions/forms/hooks/DataValueWritePropsDocs.js +3 -3
  687. package/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  688. package/extensions/forms/hooks/useFieldProps.d.ts +8 -4
  689. package/extensions/forms/hooks/useFieldProps.js +39 -19
  690. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  691. package/extensions/forms/index.d.ts +1 -0
  692. package/extensions/forms/index.js +2 -0
  693. package/extensions/forms/index.js.map +1 -1
  694. package/extensions/forms/style/dnb-forms.css +4 -0
  695. package/extensions/forms/style/dnb-forms.min.css +1 -1
  696. package/extensions/forms/types.d.ts +34 -10
  697. package/extensions/forms/types.js.map +1 -1
  698. package/extensions/forms/utils/json-pointer/json-pointer.js +1 -1
  699. package/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
  700. package/icons/calendar_add.d.ts +3 -0
  701. package/icons/calendar_add.js +3 -0
  702. package/icons/calendar_add.js.map +1 -0
  703. package/icons/calendar_add_medium.d.ts +3 -0
  704. package/icons/calendar_add_medium.js +3 -0
  705. package/icons/calendar_add_medium.js.map +1 -0
  706. package/icons/digitpass_private_corporate.d.ts +3 -0
  707. package/icons/digitpass_private_corporate.js +3 -0
  708. package/icons/digitpass_private_corporate.js.map +1 -0
  709. package/icons/digitpass_private_corporate_medium.d.ts +3 -0
  710. package/icons/digitpass_private_corporate_medium.js +3 -0
  711. package/icons/digitpass_private_corporate_medium.js.map +1 -0
  712. package/icons/dnb/calendar_add.d.ts +3 -0
  713. package/icons/dnb/calendar_add.js +23 -0
  714. package/icons/dnb/calendar_add.js.map +1 -0
  715. package/icons/dnb/calendar_add_medium.d.ts +3 -0
  716. package/icons/dnb/calendar_add_medium.js +17 -0
  717. package/icons/dnb/calendar_add_medium.js.map +1 -0
  718. package/icons/dnb/cog_medium.js +1 -1
  719. package/icons/dnb/cog_medium.js.map +1 -1
  720. package/icons/dnb/digipass_corporate.js +3 -3
  721. package/icons/dnb/digipass_corporate.js.map +1 -1
  722. package/icons/dnb/digipass_corporate_medium.js +3 -3
  723. package/icons/dnb/digipass_corporate_medium.js.map +1 -1
  724. package/icons/dnb/digipass_private.js +3 -3
  725. package/icons/dnb/digipass_private.js.map +1 -1
  726. package/icons/dnb/digipass_private_medium.js +3 -3
  727. package/icons/dnb/digipass_private_medium.js.map +1 -1
  728. package/icons/dnb/digitpass_private_corporate.d.ts +3 -0
  729. package/icons/dnb/digitpass_private_corporate.js +17 -0
  730. package/icons/dnb/digitpass_private_corporate.js.map +1 -0
  731. package/icons/dnb/digitpass_private_corporate_medium.d.ts +3 -0
  732. package/icons/dnb/digitpass_private_corporate_medium.js +17 -0
  733. package/icons/dnb/digitpass_private_corporate_medium.js.map +1 -0
  734. package/icons/dnb/goal.d.ts +3 -0
  735. package/icons/dnb/goal.js +18 -0
  736. package/icons/dnb/goal.js.map +1 -0
  737. package/icons/dnb/goal_medium.d.ts +3 -0
  738. package/icons/dnb/goal_medium.js +18 -0
  739. package/icons/dnb/goal_medium.js.map +1 -0
  740. package/icons/dnb/icons-meta.json +132 -4
  741. package/icons/dnb/icons-svg.lock +1278 -1096
  742. package/icons/dnb/index.d.ts +15 -1
  743. package/icons/dnb/index.js +15 -1
  744. package/icons/dnb/index.js.map +1 -1
  745. package/icons/dnb/information.js +1 -1
  746. package/icons/dnb/information.js.map +1 -1
  747. package/icons/dnb/investor.d.ts +3 -0
  748. package/icons/dnb/investor.js +25 -0
  749. package/icons/dnb/investor.js.map +1 -0
  750. package/icons/dnb/investor_medium.d.ts +3 -0
  751. package/icons/dnb/investor_medium.js +25 -0
  752. package/icons/dnb/investor_medium.js.map +1 -0
  753. package/icons/dnb/layout_grid.d.ts +3 -0
  754. package/icons/dnb/layout_grid.js +26 -0
  755. package/icons/dnb/layout_grid.js.map +1 -0
  756. package/icons/dnb/layout_grid_medium.d.ts +3 -0
  757. package/icons/dnb/layout_grid_medium.js +26 -0
  758. package/icons/dnb/layout_grid_medium.js.map +1 -0
  759. package/icons/dnb/question.js +1 -1
  760. package/icons/dnb/question.js.map +1 -1
  761. package/icons/dnb/question_circled.js +1 -1
  762. package/icons/dnb/question_circled.js.map +1 -1
  763. package/icons/dnb/question_medium.js +1 -1
  764. package/icons/dnb/question_medium.js.map +1 -1
  765. package/icons/dnb/return_1_medium.js +1 -1
  766. package/icons/dnb/return_1_medium.js.map +1 -1
  767. package/icons/dnb/secondary_icons.d.ts +8 -1
  768. package/icons/dnb/secondary_icons.js +8 -1
  769. package/icons/dnb/secondary_icons.js.map +1 -1
  770. package/icons/dnb/secondary_icons_medium.d.ts +8 -1
  771. package/icons/dnb/secondary_icons_medium.js +8 -1
  772. package/icons/dnb/secondary_icons_medium.js.map +1 -1
  773. package/icons/dnb/show_pin.d.ts +3 -0
  774. package/icons/dnb/show_pin.js +15 -0
  775. package/icons/dnb/show_pin.js.map +1 -0
  776. package/icons/dnb/show_pin_medium.d.ts +3 -0
  777. package/icons/dnb/show_pin_medium.js +15 -0
  778. package/icons/dnb/show_pin_medium.js.map +1 -0
  779. package/icons/dnb/table.d.ts +3 -0
  780. package/icons/dnb/table.js +25 -0
  781. package/icons/dnb/table.js.map +1 -0
  782. package/icons/dnb/table_medium.d.ts +3 -0
  783. package/icons/dnb/table_medium.js +18 -0
  784. package/icons/dnb/table_medium.js.map +1 -0
  785. package/icons/goal.d.ts +3 -0
  786. package/icons/goal.js +3 -0
  787. package/icons/goal.js.map +1 -0
  788. package/icons/goal_medium.d.ts +3 -0
  789. package/icons/goal_medium.js +3 -0
  790. package/icons/goal_medium.js.map +1 -0
  791. package/icons/index.d.ts +15 -1
  792. package/icons/index.js +15 -1
  793. package/icons/index.js.map +1 -1
  794. package/icons/investor.d.ts +3 -0
  795. package/icons/investor.js +3 -0
  796. package/icons/investor.js.map +1 -0
  797. package/icons/investor_medium.d.ts +3 -0
  798. package/icons/investor_medium.js +3 -0
  799. package/icons/investor_medium.js.map +1 -0
  800. package/icons/layout_grid.d.ts +3 -0
  801. package/icons/layout_grid.js +3 -0
  802. package/icons/layout_grid.js.map +1 -0
  803. package/icons/layout_grid_medium.d.ts +3 -0
  804. package/icons/layout_grid_medium.js +3 -0
  805. package/icons/layout_grid_medium.js.map +1 -0
  806. package/icons/show_pin.d.ts +3 -0
  807. package/icons/show_pin.js +3 -0
  808. package/icons/show_pin.js.map +1 -0
  809. package/icons/show_pin_medium.d.ts +3 -0
  810. package/icons/show_pin_medium.js +3 -0
  811. package/icons/show_pin_medium.js.map +1 -0
  812. package/icons/table.d.ts +3 -0
  813. package/icons/table.js +3 -0
  814. package/icons/table.js.map +1 -0
  815. package/icons/table_medium.d.ts +3 -0
  816. package/icons/table_medium.js +3 -0
  817. package/icons/table_medium.js.map +1 -0
  818. package/package.json +1 -1
  819. package/shared/Eufemia.d.ts +1 -1
  820. package/shared/Eufemia.js +2 -2
  821. package/shared/Eufemia.js.map +1 -1
  822. package/style/core/reset.scss +3 -9
  823. package/style/core/scopes.scss +1 -1
  824. package/style/dnb-ui-basis.css +4 -8
  825. package/style/dnb-ui-basis.min.css +1 -1
  826. package/style/dnb-ui-body.css +4 -8
  827. package/style/dnb-ui-body.min.css +1 -1
  828. package/style/dnb-ui-components.css +8 -4
  829. package/style/dnb-ui-components.min.css +2 -2
  830. package/style/dnb-ui-core.css +4 -8
  831. package/style/dnb-ui-core.min.css +1 -1
  832. package/style/dnb-ui-extensions.css +4 -0
  833. package/style/dnb-ui-extensions.min.css +1 -1
  834. package/style/dnb-ui-forms.css +4 -0
  835. package/style/dnb-ui-forms.min.css +1 -1
  836. package/style/themes/theme-eiendom/eiendom-theme-components.css +12 -4
  837. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  838. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +4 -0
  839. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  840. package/style/themes/theme-eiendom/eiendom-theme-forms.css +4 -0
  841. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  842. package/style/themes/theme-sbanken/sbanken-theme-components.css +12 -4
  843. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  844. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +4 -0
  845. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  846. package/style/themes/theme-sbanken/sbanken-theme-forms.css +4 -0
  847. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  848. package/style/themes/theme-ui/ui-theme-components.css +12 -4
  849. package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  850. package/style/themes/theme-ui/ui-theme-extensions.css +4 -0
  851. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  852. package/style/themes/theme-ui/ui-theme-forms.css +4 -0
  853. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  854. package/umd/dnb-ui-basis.min.js +1 -1
  855. package/umd/dnb-ui-components.min.js +1 -1
  856. package/umd/dnb-ui-elements.min.js +1 -1
  857. package/umd/dnb-ui-extensions.min.js +1 -1
  858. package/umd/dnb-ui-icons.min.js +1 -1
  859. package/umd/dnb-ui-lib.min.js +1 -1
@@ -9,6 +9,7 @@ import FieldBlock from '../../FieldBlock';
9
9
  import { MultiInputMask } from '../../../../components/input-masked';
10
10
  import { useTranslation as useSharedTranslation } from '../../../../shared';
11
11
  import useTranslation from '../../hooks/useTranslation';
12
+ import { FormError } from '../../utils';
12
13
  function Expiry(props) {
13
14
  const {
14
15
  Date: {
@@ -28,16 +29,50 @@ function Expiry(props) {
28
29
  const errorMessages = useMemo(() => _objectSpread({
29
30
  'Field.errorRequired': errorRequired
30
31
  }, props.errorMessages), [errorRequired, props.errorMessages]);
32
+ const handleInput = useCallback(values => {
33
+ const month = expiryValueToString(values.month, placeholders.month);
34
+ const year = expiryValueToString(values.year, placeholders.year);
35
+ if (isFieldEmpty(month, placeholders.month) && isFieldEmpty(year, placeholders.year)) {
36
+ return '';
37
+ }
38
+ return `${month}${year}`;
39
+ }, [placeholders.month, placeholders.year]);
31
40
  const validateRequired = useCallback((value, {
32
41
  required,
33
42
  error
34
43
  }) => {
35
44
  return required && !value ? error : undefined;
36
45
  }, []);
46
+ const monthAndYearValidator = useCallback(value => validateMonthAndYear(value, placeholders), [placeholders]);
47
+ const validateInitially = useMemo(() => {
48
+ if (props.validateInitially) {
49
+ return props.validateInitially;
50
+ }
51
+ if (props.value) {
52
+ return true;
53
+ }
54
+ return undefined;
55
+ }, [props.validateInitially, props.value]);
56
+ const valueProp = useMemo(() => {
57
+ var _props$value;
58
+ const {
59
+ month,
60
+ year
61
+ } = stringToExpiryValue((_props$value = props.value) !== null && _props$value !== void 0 ? _props$value : props.defaultValue);
62
+ const monthString = expiryValueToString(month, placeholders.month);
63
+ const yearString = expiryValueToString(year, placeholders.year);
64
+ if (isFieldEmpty(monthString, placeholders.month) && isFieldEmpty(yearString, placeholders.year)) {
65
+ return '';
66
+ }
67
+ return `${monthString}${yearString}`;
68
+ }, [props.value, props.defaultValue, placeholders.month, placeholders.year]);
37
69
  const preparedProps = _objectSpread(_objectSpread({}, props), {}, {
38
70
  errorMessages,
39
- fromInput: toExpiryString,
40
- validateRequired
71
+ value: valueProp,
72
+ fromInput: handleInput,
73
+ validateRequired,
74
+ validateInitially: validateInitially,
75
+ onBlurValidator: monthAndYearValidator
41
76
  });
42
77
  const {
43
78
  id,
@@ -56,13 +91,7 @@ function Expiry(props) {
56
91
  handleChange,
57
92
  setDisplayValue
58
93
  } = useFieldProps(preparedProps);
59
- const expiry = useMemo(() => {
60
- var _value$substring;
61
- return {
62
- month: ensureValidMonth(value === null || value === void 0 ? void 0 : value.substring(0, 2)),
63
- year: (_value$substring = value === null || value === void 0 ? void 0 : value.substring(2, 4)) !== null && _value$substring !== void 0 ? _value$substring : ''
64
- };
65
- }, [value]);
94
+ const expiry = useMemo(() => stringToExpiryValue(value), [value]);
66
95
  useMemo(() => {
67
96
  if ((path || itemPath) && expiry.month && expiry.year) {
68
97
  setDisplayValue(`${expiry.month}/${expiry.year}`);
@@ -90,7 +119,7 @@ function Expiry(props) {
90
119
  inputs: [_objectSpread({
91
120
  id: 'month',
92
121
  label: monthLabel,
93
- mask: getMonthMask(expiry === null || expiry === void 0 ? void 0 : expiry.month),
122
+ mask: [/[0-9]/, /[0-9]/],
94
123
  placeholderCharacter: placeholders['month'],
95
124
  autoComplete: 'cc-exp-month'
96
125
  }, htmlAttributes), _objectSpread({
@@ -102,30 +131,52 @@ function Expiry(props) {
102
131
  }, htmlAttributes)]
103
132
  }));
104
133
  }
105
- Expiry._supportsEufemiaSpacingProps = true;
106
- export default Expiry;
107
- function toExpiryString(values) {
108
- return Object.values(values).join('');
134
+ function isFieldEmpty(value, placeholder) {
135
+ return value === `${placeholder}${placeholder}`;
109
136
  }
110
- function ensureValidMonth(month) {
111
- if (!month) {
112
- return '';
113
- }
114
- const [firstMask, secondMask] = getMonthMask(month);
115
- const firstDigit = month === null || month === void 0 ? void 0 : month.charAt(0);
116
- const isFirstDigitValid = firstMask.test(firstDigit);
117
- if (firstDigit && !isFirstDigitValid) {
118
- return '';
137
+ function stringToExpiryValue(value) {
138
+ var _value$substring, _value$substring2;
139
+ const month = (_value$substring = value === null || value === void 0 ? void 0 : value.substring(0, 2)) !== null && _value$substring !== void 0 ? _value$substring : '';
140
+ const year = (_value$substring2 = value === null || value === void 0 ? void 0 : value.substring(2, 4)) !== null && _value$substring2 !== void 0 ? _value$substring2 : '';
141
+ return {
142
+ month,
143
+ year
144
+ };
145
+ }
146
+ function expiryValueToString(value, placeholder) {
147
+ if (!value) {
148
+ return `${placeholder}${placeholder}`;
119
149
  }
120
- const secondDigit = month === null || month === void 0 ? void 0 : month.charAt(1);
121
- const isSecondDigitValid = secondMask.test(secondDigit);
122
- if (secondDigit && !isSecondDigitValid) {
123
- return '';
150
+ if (value.length === 1) {
151
+ return `${value}${placeholder}`;
124
152
  }
125
- return month;
153
+ return value;
126
154
  }
127
- function getMonthMask(month) {
128
- const firstDigit = month === null || month === void 0 ? void 0 : month.charAt(0);
129
- return [/[0-1]/, firstDigit === '0' || firstDigit === '' ? /[1-9]/ : /[0-2]/];
155
+ function validateMonthAndYear(date, placeholders) {
156
+ const {
157
+ month,
158
+ year
159
+ } = stringToExpiryValue(date);
160
+ const monthNumber = Number(month);
161
+ const messages = [];
162
+ if (month.includes(placeholders.month) || monthNumber < 1 || monthNumber > 12) {
163
+ messages.push(new FormError('Expiry.errorMonth', {
164
+ messageValues: {
165
+ month: month
166
+ }
167
+ }));
168
+ }
169
+ if (year.includes(placeholders.year)) {
170
+ messages.push(new FormError('Expiry.errorYear', {
171
+ messageValues: {
172
+ year: year
173
+ }
174
+ }));
175
+ }
176
+ if (messages.length) {
177
+ return messages;
178
+ }
130
179
  }
180
+ Expiry._supportsEufemiaSpacingProps = true;
181
+ export default Expiry;
131
182
  //# sourceMappingURL=Expiry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Expiry.js","names":["React","useCallback","useMemo","pickSpacingProps","useFieldProps","classnames","FieldBlock","MultiInputMask","useTranslation","useSharedTranslation","Expiry","props","Date","errorRequired","label","expiryLabel","DatePicker","placeholderCharacters","placeholders","month","monthLabel","year","yearLabel","errorMessages","_objectSpread","validateRequired","value","required","error","undefined","preparedProps","fromInput","toExpiryString","id","path","itemPath","className","hasError","info","warning","disabled","htmlAttributes","handleFocus","handleBlur","handleChange","setDisplayValue","expiry","_value$substring","ensureValidMonth","substring","status","fieldBlockProps","forId","createElement","stretch","values","statusState","onChange","onBlur","onFocus","delimiter","inputMode","inputs","mask","getMonthMask","placeholderCharacter","autoComplete","_supportsEufemiaSpacingProps","Object","join","firstMask","secondMask","firstDigit","charAt","isFirstDigitValid","test","secondDigit","isSecondDigitValid"],"sources":["../../../../../../src/extensions/forms/Field/Expiry/Expiry.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport { FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { useFieldProps } from '../../hooks'\nimport classnames from 'classnames'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { MultiInputMask } from '../../../../components/input-masked'\nimport type { MultiInputMaskValue } from '../../../../components/input-masked'\nimport { useTranslation as useSharedTranslation } from '../../../../shared'\nimport useTranslation from '../../hooks/useTranslation'\n\ntype ExpiryValue = MultiInputMaskValue<'month' | 'year'>\n\nexport type ExpiryProps = FieldProps<string, undefined | ''>\n\nfunction Expiry(props: ExpiryProps) {\n const {\n Date: { errorRequired },\n Expiry: { label: expiryLabel },\n } = useTranslation()\n\n const {\n DatePicker: {\n placeholderCharacters: placeholders,\n month: monthLabel,\n year: yearLabel,\n },\n } = useSharedTranslation()\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': errorRequired,\n ...props.errorMessages,\n }),\n [errorRequired, props.errorMessages]\n )\n\n const validateRequired = useCallback(\n (value: string, { required, error }) => {\n return required && !value ? error : undefined\n },\n []\n )\n\n const preparedProps: ExpiryProps = {\n ...props,\n errorMessages,\n fromInput: toExpiryString,\n validateRequired,\n }\n\n const {\n id,\n path,\n itemPath,\n className,\n label = expiryLabel,\n hasError,\n info,\n warning,\n disabled,\n value = '',\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n setDisplayValue,\n } = useFieldProps(preparedProps)\n\n const expiry: ExpiryValue = useMemo(() => {\n return {\n month: ensureValidMonth(value?.substring(0, 2)),\n year: value?.substring(2, 4) ?? '',\n }\n }, [value])\n\n useMemo(() => {\n if ((path || itemPath) && expiry.month && expiry.year) {\n setDisplayValue(`${expiry.month}/${expiry.year}`)\n }\n }, [expiry.month, expiry.year, itemPath, path, setDisplayValue])\n\n const status = hasError\n ? 'error'\n : warning\n ? 'warn'\n : info\n ? 'info'\n : null\n\n const fieldBlockProps: FieldBlockProps = {\n id,\n forId: `${id}-input-month`,\n className: classnames('dnb-forms-field-expiry', className),\n label,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <MultiInputMask\n stretch\n id={`${id}-input`}\n values={expiry}\n status={status}\n statusState={disabled ? 'disabled' : undefined}\n disabled={disabled}\n onChange={handleChange}\n onBlur={handleBlur}\n onFocus={handleFocus}\n delimiter=\"/\"\n inputMode=\"numeric\"\n inputs={[\n {\n id: 'month',\n label: monthLabel,\n mask: getMonthMask(expiry?.month),\n placeholderCharacter: placeholders['month'],\n autoComplete: 'cc-exp-month',\n ...htmlAttributes,\n },\n {\n id: 'year',\n label: yearLabel,\n mask: [/[0-9]/, /[0-9]/],\n placeholderCharacter: placeholders['year'],\n autoComplete: 'cc-exp-year',\n ...htmlAttributes,\n },\n ]}\n />\n </FieldBlock>\n )\n}\n\nExpiry._supportsEufemiaSpacingProps = true\nexport default Expiry\n\nfunction toExpiryString(values: ExpiryValue) {\n return Object.values(values).join('')\n}\n\nfunction ensureValidMonth(month: string) {\n // Return empty value if no month is given\n if (!month) {\n return ''\n }\n\n const [firstMask, secondMask] = getMonthMask(month)\n\n const firstDigit = month?.charAt(0)\n const isFirstDigitValid = firstMask.test(firstDigit)\n\n if (firstDigit && !isFirstDigitValid) {\n // Return empty value if the first digit is invalid\n return ''\n }\n\n const secondDigit = month?.charAt(1)\n const isSecondDigitValid = secondMask.test(secondDigit)\n\n if (secondDigit && !isSecondDigitValid) {\n // Return empty value if the second digit is invalid\n return ''\n }\n\n // Return given month of month value is valid\n return month\n}\n\nfunction getMonthMask(month: string) {\n const firstDigit = month?.charAt(0)\n\n return [\n /[0-1]/,\n firstDigit === '0' || firstDigit === '' ? /[1-9]/ : /[0-2]/,\n ]\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Expiry.js","names":["React","useCallback","useMemo","pickSpacingProps","useFieldProps","classnames","FieldBlock","MultiInputMask","useTranslation","useSharedTranslation","FormError","Expiry","props","Date","errorRequired","label","expiryLabel","DatePicker","placeholderCharacters","placeholders","month","monthLabel","year","yearLabel","errorMessages","_objectSpread","handleInput","values","expiryValueToString","isFieldEmpty","validateRequired","value","required","error","undefined","monthAndYearValidator","validateMonthAndYear","validateInitially","valueProp","_props$value","stringToExpiryValue","defaultValue","monthString","yearString","preparedProps","fromInput","onBlurValidator","id","path","itemPath","className","hasError","info","warning","disabled","htmlAttributes","handleFocus","handleBlur","handleChange","setDisplayValue","expiry","status","fieldBlockProps","forId","createElement","stretch","statusState","onChange","onBlur","onFocus","delimiter","inputMode","inputs","mask","placeholderCharacter","autoComplete","placeholder","_value$substring","_value$substring2","substring","length","date","monthNumber","Number","messages","includes","push","messageValues","_supportsEufemiaSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Expiry/Expiry.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport { FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { useFieldProps } from '../../hooks'\nimport classnames from 'classnames'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { MultiInputMask } from '../../../../components/input-masked'\nimport type { MultiInputMaskValue } from '../../../../components/input-masked'\nimport { useTranslation as useSharedTranslation } from '../../../../shared'\nimport useTranslation from '../../hooks/useTranslation'\nimport { FormError } from '../../utils'\n\ntype ExpiryValue = MultiInputMaskValue<'month' | 'year'>\n\nexport type ExpiryProps = FieldProps<string, undefined | ''>\n\nfunction Expiry(props: ExpiryProps) {\n const {\n Date: { errorRequired },\n Expiry: { label: expiryLabel },\n } = useTranslation()\n\n const {\n DatePicker: {\n placeholderCharacters: placeholders,\n month: monthLabel,\n year: yearLabel,\n },\n } = useSharedTranslation()\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': errorRequired,\n ...props.errorMessages,\n }),\n [errorRequired, props.errorMessages]\n )\n\n const handleInput = useCallback(\n (values: ExpiryValue) => {\n const month = expiryValueToString(values.month, placeholders.month)\n const year = expiryValueToString(values.year, placeholders.year)\n\n if (\n isFieldEmpty(month, placeholders.month) &&\n isFieldEmpty(year, placeholders.year)\n ) {\n return ''\n }\n\n return `${month}${year}`\n },\n [placeholders.month, placeholders.year]\n )\n\n const validateRequired = useCallback(\n (value: string, { required, error }) => {\n return required && !value ? error : undefined\n },\n []\n )\n\n const monthAndYearValidator = useCallback(\n (value: string) => validateMonthAndYear(value, placeholders),\n [placeholders]\n )\n\n const validateInitially = useMemo(() => {\n if (props.validateInitially) {\n return props.validateInitially\n }\n\n if (props.value) {\n return true\n }\n\n return undefined\n }, [props.validateInitially, props.value])\n\n const valueProp = useMemo(() => {\n const { month, year } = stringToExpiryValue(\n props.value ?? props.defaultValue\n )\n const monthString = expiryValueToString(month, placeholders.month)\n const yearString = expiryValueToString(year, placeholders.year)\n\n if (\n isFieldEmpty(monthString, placeholders.month) &&\n isFieldEmpty(yearString, placeholders.year)\n ) {\n return ''\n }\n\n return `${monthString}${yearString}`\n }, [\n props.value,\n props.defaultValue,\n placeholders.month,\n placeholders.year,\n ])\n\n const preparedProps: ExpiryProps = {\n ...props,\n errorMessages,\n value: valueProp,\n fromInput: handleInput,\n validateRequired,\n validateInitially: validateInitially,\n onBlurValidator: monthAndYearValidator,\n }\n\n const {\n id,\n path,\n itemPath,\n className,\n label = expiryLabel,\n hasError,\n info,\n warning,\n disabled,\n value = '',\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n setDisplayValue,\n } = useFieldProps(preparedProps)\n\n const expiry: ExpiryValue = useMemo(\n () => stringToExpiryValue(value),\n [value]\n )\n\n useMemo(() => {\n if ((path || itemPath) && expiry.month && expiry.year) {\n setDisplayValue(`${expiry.month}/${expiry.year}`)\n }\n }, [expiry.month, expiry.year, itemPath, path, setDisplayValue])\n\n const status = hasError\n ? 'error'\n : warning\n ? 'warn'\n : info\n ? 'info'\n : null\n\n const fieldBlockProps: FieldBlockProps = {\n id,\n forId: `${id}-input-month`,\n className: classnames('dnb-forms-field-expiry', className),\n label,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <MultiInputMask\n stretch\n id={`${id}-input`}\n values={expiry}\n status={status}\n statusState={disabled ? 'disabled' : undefined}\n disabled={disabled}\n onChange={handleChange}\n onBlur={handleBlur}\n onFocus={handleFocus}\n delimiter=\"/\"\n inputMode=\"numeric\"\n inputs={[\n {\n id: 'month',\n label: monthLabel,\n mask: [/[0-9]/, /[0-9]/],\n placeholderCharacter: placeholders['month'],\n autoComplete: 'cc-exp-month',\n ...htmlAttributes,\n },\n {\n id: 'year',\n label: yearLabel,\n mask: [/[0-9]/, /[0-9]/],\n placeholderCharacter: placeholders['year'],\n autoComplete: 'cc-exp-year',\n ...htmlAttributes,\n },\n ]}\n />\n </FieldBlock>\n )\n}\n\nfunction isFieldEmpty(value: string, placeholder: string) {\n return value === `${placeholder}${placeholder}`\n}\n\nfunction stringToExpiryValue(value: string) {\n const month = value?.substring(0, 2) ?? ''\n const year = value?.substring(2, 4) ?? ''\n\n return {\n month,\n year,\n }\n}\n\nfunction expiryValueToString(value: string, placeholder: string) {\n if (!value) {\n return `${placeholder}${placeholder}`\n }\n\n if (value.length === 1) {\n return `${value}${placeholder}`\n }\n\n return value\n}\n\nfunction validateMonthAndYear(\n date: string,\n placeholders: Record<'month' | 'year', string>\n) {\n const { month, year } = stringToExpiryValue(date)\n\n const monthNumber = Number(month)\n\n const messages: Array<FormError> = []\n\n if (\n month.includes(placeholders.month) ||\n monthNumber < 1 ||\n monthNumber > 12\n ) {\n messages.push(\n new FormError('Expiry.errorMonth', {\n messageValues: { month: month },\n })\n )\n }\n\n if (year.includes(placeholders.year)) {\n messages.push(\n new FormError('Expiry.errorYear', {\n messageValues: { year: year },\n })\n )\n }\n\n if (messages.length) {\n return messages\n }\n}\n\nExpiry._supportsEufemiaSpacingProps = true\nexport default Expiry\n"],"mappings":"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"}
@@ -46,7 +46,7 @@ Name.Last = function LastName(props) {
46
46
  });
47
47
  return React.createElement(Name, nameProps);
48
48
  };
49
- Name.First['_supportsSpacingProps'] = true;
49
+ Name.Last['_supportsSpacingProps'] = true;
50
50
  Name.Company = function CompanyName(props) {
51
51
  const translations = useTranslation().CompanyName;
52
52
  const errorMessages = useMemo(() => {
@@ -63,6 +63,6 @@ Name.Company = function CompanyName(props) {
63
63
  });
64
64
  return React.createElement(Name, StringFieldProps);
65
65
  };
66
- Name.First['_supportsSpacingProps'] = true;
66
+ Name.Company['_supportsSpacingProps'] = true;
67
67
  export default Name;
68
68
  //# sourceMappingURL=Name.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Name.js","names":["React","useMemo","StringField","useTranslation","Name","props","StringFieldProps","_objectSpread","trim","autoComplete","pattern","createElement","_supportsSpacingProps","First","FirstName","translations","errorMessages","errorRequired","errorPattern","nameProps","label","Last","LastName","Company","CompanyName"],"sources":["../../../../../../src/extensions/forms/Field/Name/Name.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type Props = StringFieldProps\n\nfunction Name(props: Props) {\n const StringFieldProps: Props = {\n trim: true,\n autoComplete: 'name',\n pattern: '^(?!.*[\\\\-\\\\s]{2})[\\\\p{L}]+([ \\\\-][\\\\p{L}]+)*$',\n ...props,\n }\n\n return <StringField {...StringFieldProps} />\n}\nName._supportsSpacingProps = true\n\nName.First = function FirstName(props: Props) {\n const translations = useTranslation().FirstName\n const errorMessages = useMemo(() => {\n return {\n 'Field.errorRequired': translations.errorRequired,\n 'Field.errorPattern': translations.errorPattern,\n ...props.errorMessages,\n }\n }, [\n props.errorMessages,\n translations.errorPattern,\n translations.errorRequired,\n ])\n\n const nameProps: Props = {\n label: translations.label,\n autoComplete: 'given-name',\n ...props,\n errorMessages,\n }\n\n return <Name {...nameProps} />\n}\nName.First['_supportsSpacingProps'] = true\n\nName.Last = function LastName(props: Props) {\n const translations = useTranslation().LastName\n const errorMessages = useMemo(() => {\n return {\n 'Field.errorRequired': translations.errorRequired,\n 'Field.errorPattern': translations.errorPattern,\n ...props.errorMessages,\n }\n }, [\n props.errorMessages,\n translations.errorPattern,\n translations.errorRequired,\n ])\n\n const nameProps: Props = {\n label: translations.label,\n autoComplete: 'family-name',\n ...props,\n errorMessages,\n }\n\n return <Name {...nameProps} />\n}\nName.First['_supportsSpacingProps'] = true\n\nName.Company = function CompanyName(props: Props) {\n const translations = useTranslation().CompanyName\n const errorMessages = useMemo(() => {\n return {\n 'Field.errorRequired': translations.errorRequired,\n ...props.errorMessages,\n }\n }, [props.errorMessages, translations.errorRequired])\n\n const StringFieldProps: Props = {\n label: translations.label,\n pattern:\n '^(?!.*[-\\\\s]{2})(?!.*[\\\\.]{2})[\\\\p{L}\\\\p{N}][\\\\p{L}\\\\p{N}\\\\p{P}\\\\p{Zs}.]*[\\\\p{L}\\\\p{N}\\\\p{P}]$',\n autoComplete: 'organization',\n ...props,\n errorMessages,\n }\n\n return <Name {...StringFieldProps} />\n}\nName.First['_supportsSpacingProps'] = true\n\nexport default Name\n"],"mappings":"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"}
1
+ {"version":3,"file":"Name.js","names":["React","useMemo","StringField","useTranslation","Name","props","StringFieldProps","_objectSpread","trim","autoComplete","pattern","createElement","_supportsSpacingProps","First","FirstName","translations","errorMessages","errorRequired","errorPattern","nameProps","label","Last","LastName","Company","CompanyName"],"sources":["../../../../../../src/extensions/forms/Field/Name/Name.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type Props = StringFieldProps\n\nfunction Name(props: Props) {\n const StringFieldProps: Props = {\n trim: true,\n autoComplete: 'name',\n pattern: '^(?!.*[\\\\-\\\\s]{2})[\\\\p{L}]+([ \\\\-][\\\\p{L}]+)*$',\n ...props,\n }\n\n return <StringField {...StringFieldProps} />\n}\nName._supportsSpacingProps = true\n\nName.First = function FirstName(props: Props) {\n const translations = useTranslation().FirstName\n const errorMessages = useMemo(() => {\n return {\n 'Field.errorRequired': translations.errorRequired,\n 'Field.errorPattern': translations.errorPattern,\n ...props.errorMessages,\n }\n }, [\n props.errorMessages,\n translations.errorPattern,\n translations.errorRequired,\n ])\n\n const nameProps: Props = {\n label: translations.label,\n autoComplete: 'given-name',\n ...props,\n errorMessages,\n }\n\n return <Name {...nameProps} />\n}\nName.First['_supportsSpacingProps'] = true\n\nName.Last = function LastName(props: Props) {\n const translations = useTranslation().LastName\n const errorMessages = useMemo(() => {\n return {\n 'Field.errorRequired': translations.errorRequired,\n 'Field.errorPattern': translations.errorPattern,\n ...props.errorMessages,\n }\n }, [\n props.errorMessages,\n translations.errorPattern,\n translations.errorRequired,\n ])\n\n const nameProps: Props = {\n label: translations.label,\n autoComplete: 'family-name',\n ...props,\n errorMessages,\n }\n\n return <Name {...nameProps} />\n}\nName.Last['_supportsSpacingProps'] = true\n\nName.Company = function CompanyName(props: Props) {\n const translations = useTranslation().CompanyName\n const errorMessages = useMemo(() => {\n return {\n 'Field.errorRequired': translations.errorRequired,\n ...props.errorMessages,\n }\n }, [props.errorMessages, translations.errorRequired])\n\n const StringFieldProps: Props = {\n label: translations.label,\n pattern:\n '^(?!.*[-\\\\s]{2})(?!.*[\\\\.]{2})[\\\\p{L}\\\\p{N}][\\\\p{L}\\\\p{N}\\\\p{P}\\\\p{Zs}.]*[\\\\p{L}\\\\p{N}\\\\p{P}]$',\n autoComplete: 'organization',\n ...props,\n errorMessages,\n }\n\n return <Name {...StringFieldProps} />\n}\nName.Company['_supportsSpacingProps'] = true\n\nexport default Name\n"],"mappings":"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"}
@@ -13,4 +13,5 @@ declare namespace NationalIdentityNumber {
13
13
  export declare function getAgeByBirthDate(birthDate: Date): number;
14
14
  export declare function getBirthDateByFnrOrDnr(value: string): Date;
15
15
  export declare function createMinimumAgeValidator(age: number): (value: string) => FormError;
16
+ export declare function createMinimumAgeVerifier(age: number): (value: string) => boolean;
16
17
  export default NationalIdentityNumber;
@@ -134,6 +134,15 @@ export function createMinimumAgeValidator(age) {
134
134
  });
135
135
  };
136
136
  }
137
+ export function createMinimumAgeVerifier(age) {
138
+ const validator = createMinimumAgeValidator(age);
139
+ return value => {
140
+ if ((value === null || value === void 0 ? void 0 : value.length) >= 7) {
141
+ return !(validator(value) instanceof Error);
142
+ }
143
+ return false;
144
+ };
145
+ }
137
146
  NationalIdentityNumber._supportsSpacingProps = true;
138
147
  export default NationalIdentityNumber;
139
148
  //# sourceMappingURL=NationalIdentityNumber.js.map
@@ -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","_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\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 { 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":";;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACnD,OAAOC,WAAW,MAAqC,WAAW;AAClE,SAASC,GAAG,EAAEC,GAAG,QAAQ,sBAAsB;AAE/C,SAASC,SAAS,QAAQ,aAAa;AACvC,OAAOC,cAAc,MAAM,4BAA4B;AAQvD,SAASC,sBAAsBA,CAACC,KAAY,EAAE;EAC5C,MAAMC,YAAY,GAAGH,cAAc,CAAC,CAAC,CAACC,sBAAsB;EAC5D,MAAM;IACJG,KAAK;IACLC,aAAa;IACbC,QAAQ;IACRC,cAAc;IACdC,QAAQ;IACRC;EACF,CAAC,GAAGN,YAAY;EAChB,MAAMO,aAAa,GAAGf,OAAO,CAC3B,MAAAgB,aAAA;IACE,qBAAqB,EAAEN,aAAa;IACpC,oBAAoB,EAAEC;EAAQ,GAC3BJ,KAAK,CAACQ,aAAa,CACtB,EACF,CAACL,aAAa,EAAEC,QAAQ,EAAEJ,KAAK,CAACQ,aAAa,CAC/C,CAAC;EAED,MAAME,8BAA8B,GAAGA,CACrCC,oBAA4B,EAC5BC,MAAc,KACX;IACH,OAAO,CAAAD,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEC,MAAM,MAAKA,MAAM;EAChD,CAAC;EAED,MAAMC,YAAY,GAAGrB,WAAW,CAC7BsB,KAAa,IAAK;IACjB,IAAIA,KAAK,KAAKC,SAAS,EAAE;MACvB,IAAIC,MAAM,CAACC,QAAQ,CAACH,KAAK,CAACI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;QAC9C,OAAOC,KAAK,CAACf,QAAQ,CAAC;MACxB;MAEA,MAAMgB,aAAa,GAAGV,8BAA8B,CAACI,KAAK,EAAE,EAAE,CAAC;MAE/D,IAAI,CAACM,aAAa,EAAE;QAClB,OAAOD,KAAK,CAACd,cAAc,CAAC;MAC9B;MACA,IAAIe,aAAa,IAAIxB,GAAG,CAACkB,KAAK,CAAC,CAACO,MAAM,KAAK,SAAS,EAAE;QACpD,OAAOF,KAAK,CAACf,QAAQ,CAAC;MACxB;IACF;EACF,CAAC,EACD,CAACA,QAAQ,EAAEC,cAAc,CAC3B,CAAC;EAED,MAAMiB,YAAY,GAAG9B,WAAW,CAC7BsB,KAAa,IAAK;IACjB,IAAIA,KAAK,KAAKC,SAAS,EAAE;MACvB,IAAIC,MAAM,CAACC,QAAQ,CAACH,KAAK,CAACI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;QAC9C,OAAOC,KAAK,CAACb,QAAQ,CAAC;MACxB;MAEA,MAAMiB,aAAa,GAAGb,8BAA8B,CAACI,KAAK,EAAE,EAAE,CAAC;MAE/D,IAAI,CAACS,aAAa,EAAE;QAClB,OAAOJ,KAAK,CAACZ,cAAc,CAAC;MAC9B;MACA,IAAIgB,aAAa,IAAI5B,GAAG,CAACmB,KAAK,CAAC,CAACO,MAAM,KAAK,SAAS,EAAE;QACpD,OAAOF,KAAK,CAACb,QAAQ,CAAC;MACxB;IACF;EACF,CAAC,EACD,CAACA,QAAQ,EAAEC,cAAc,CAC3B,CAAC;EAED,MAAMiB,kBAAkB,GAAGhC,WAAW,CACnCsB,KAAa,IAAK;IACjB,MAAMW,oBAAoB,GAAG,UAAU;IAEvC,IAAI,IAAIC,MAAM,CAACD,oBAAoB,CAAC,CAACE,IAAI,CAACb,KAAK,CAAC,EAAE;MAChD,OAAOQ,YAAY,CAACR,KAAK,CAAC;IAC5B;IACA,OAAOD,YAAY,CAACC,KAAK,CAAC;EAC5B,CAAC,EACD,CAACQ,YAAY,EAAET,YAAY,CAC7B,CAAC;EAED,MAAM;IACJe,QAAQ,GAAG,IAAI;IACfC,QAAQ;IAERC,SAAS;IACTC,iBAAiB,GAAGD,SAAS;IAC7BE,eAAe,GAAGR,kBAAkB;IACpCS,KAAK;IACL/B,KAAK,EAAEgC;EACT,CAAC,GAAGlC,KAAK;EAET,MAAMmC,IAAI,GAAG1C,OAAO,CAClB,MACEoC,QAAQ,GACJO,KAAK,CAAC,EAAE,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,GACpB,CACE,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACL,EACP,CAACR,QAAQ,CACX,CAAC;EAED,MAAMS,oBAAoB,GACxBN,eAAe,KAAK,KAAK,GAAGjB,SAAS,GAAGiB,eAAe;EAEzD,MAAMO,gBAAkC,GAAA9B,aAAA,CAAAA,aAAA,KACnCT,KAAK;IACRE,KAAK,EAAEgC,SAAS,aAATA,SAAS,cAATA,SAAS,GAAIhC,KAAK;IACzBM,aAAa;IACb2B,IAAI;IACJF,KAAK,EAAEA,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,QAAQ;IACxBO,SAAS,EAAE,SAAS;IACpBT,iBAAiB,EAAEH,QAAQ,GAAGG,iBAAiB,GAAGhB,SAAS;IAC3DiB,eAAe,EAAEJ,QAAQ,GAAGU,oBAAoB,GAAGvB,SAAS;IAC5D0B,gBAAgB,EAAE;MAChBnB,YAAY;MACZT,YAAY;MACZW;IACF;EAAC,EACF;EAED,OAAOjC,KAAA,CAAAmD,aAAA,CAAChD,WAAW,EAAK6C,gBAAmB,CAAC;AAC9C;AAEA,OAAO,SAASI,iBAAiBA,CAACC,SAAe,EAAU;EACzD,MAAMC,KAAK,GAAG,IAAIC,IAAI,CAAC,CAAC;EACxB,MAAMC,GAAG,GAAGF,KAAK,CAACG,WAAW,CAAC,CAAC,GAAGJ,SAAS,CAACI,WAAW,CAAC,CAAC;EACzD,MAAMC,KAAK,GAAGJ,KAAK,CAACK,QAAQ,CAAC,CAAC,GAAGN,SAAS,CAACM,QAAQ,CAAC,CAAC;EACrD,MAAMC,GAAG,GAAGN,KAAK,CAACO,OAAO,CAAC,CAAC,GAAGR,SAAS,CAACQ,OAAO,CAAC,CAAC;EAEjD,IAAIH,KAAK,GAAG,CAAC,IAAKA,KAAK,KAAK,CAAC,IAAIE,GAAG,GAAG,CAAE,EAAE;IACzC,OAAOJ,GAAG,GAAG,CAAC;EAChB;EAEA,OAAOA,GAAG;AACZ;AAEA,OAAO,SAASM,sBAAsBA,CAACvC,KAAa,EAAE;EACpD,IAAIA,KAAK,KAAKC,SAAS,EAAE;IACvB;EACF;EAEA,MAAMuC,QAAQ,GAAGxC,KAAK,CAACI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;EACtC,MAAMqC,aAAa,GAAGvC,MAAM,CAACC,QAAQ,CAACH,KAAK,CAACI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAE5D,MAAMsC,YAAY,GAAGD,aAAa,IAAI,CAAC;EACvC,MAAME,IAAI,GAAGD,YAAY,GAAI,KAAIF,QAAS,EAAC,GAAI,KAAIA,QAAS,EAAC;EAC7D,MAAML,KAAK,GAAGjC,MAAM,CAACC,QAAQ,CAACH,KAAK,CAACI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAEpD,MAAMwC,mBAAmB,GACvB5C,KAAK,CAACF,MAAM,GAAG,CAAC,GAAGI,MAAM,CAACC,QAAQ,CAACH,KAAK,CAACI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAGH,SAAS;EACvE,MAAM4C,KAAK,GAAGD,mBAAmB,IAAIA,mBAAmB,GAAG,CAAC;EAE5D,MAAMP,GAAG,GAAGQ,KAAK,GACb3C,MAAM,CAACC,QAAQ,CAACH,KAAK,CAACI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAC3CF,MAAM,CAACC,QAAQ,CAACH,KAAK,CAACI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAE1C,OAAO,IAAI4B,IAAI,CAAC9B,MAAM,CAACC,QAAQ,CAACwC,IAAI,CAAC,EAAER,KAAK,GAAG,CAAC,EAAEE,GAAG,CAAC;AACxD;AAEA,OAAO,SAASS,yBAAyBA,CAACb,GAAW,EAAE;EACrD,OAAQjC,KAAa,IAAK;IACxB,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B;IACF;IAEA,MAAM+C,mCAAmC,GAAG,CAAA/C,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEF,MAAM,KAAI,CAAC;IAE9D,IAAI,CAACiD,mCAAmC,EAAE;MACxC,OAAO,IAAIhE,SAAS,CAClB,uDAAuD,EACvD;QACEiE,cAAc,EAAE;MAClB,CACF,CAAC;IACH;IAEA,IAAID,mCAAmC,EAAE;MACvC,MAAME,IAAI,GAAGV,sBAAsB,CAACvC,KAAK,CAAC;MAC1C,IAAI6B,iBAAiB,CAACoB,IAAI,CAAC,IAAIhB,GAAG,EAAE;QAClC;MACF;IACF;IAEA,OAAO,IAAIlD,SAAS,CAClB,iDAAiD,EACjD;MACEiE,cAAc,EAAE,0BAA0B;MAC1CE,aAAa,EAAE;QAAEjB,GAAG,EAAEkB,MAAM,CAAClB,GAAG;MAAE;IACpC,CACF,CAAC;EACH,CAAC;AACH;AAEA,OAAO,SAASmB,wBAAwBA,CAACnB,GAAW,EAAE;EACpD,MAAMjB,SAAS,GAAG8B,yBAAyB,CAACb,GAAG,CAAC;EAChD,OAAQjC,KAAa,IAAK;IACxB,IAAI,CAAAA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEF,MAAM,KAAI,CAAC,EAAE;MACtB,OAAO,EAAEkB,SAAS,CAAChB,KAAK,CAAC,YAAYK,KAAK,CAAC;IAC7C;IAEA,OAAO,KAAK;EACd,CAAC;AACH;AAEApB,sBAAsB,CAACoE,qBAAqB,GAAG,IAAI;AACnD,eAAepE,sBAAsB"}
@@ -0,0 +1,2 @@
1
+ import { PropertiesTableProps } from '../../../../shared/types';
2
+ export declare const PasswordProperties: PropertiesTableProps;
@@ -0,0 +1,23 @@
1
+ export const PasswordProperties = {
2
+ pattern: {
3
+ doc: 'Validation based on regex pattern for the number field e.g. `pattern="w{8}d{4}"`.',
4
+ type: 'string',
5
+ status: 'optional'
6
+ },
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.',
9
+ type: 'object',
10
+ status: 'optional'
11
+ },
12
+ innerRef: {
13
+ doc: '`ElementRef` passed on to the password `input` element.',
14
+ type: 'object',
15
+ status: 'optional'
16
+ },
17
+ '[Space](/uilib/layout/space/properties)': {
18
+ doc: 'Spacing properties like `top` or `bottom` are supported.',
19
+ type: ['string', 'object'],
20
+ status: 'optional'
21
+ }
22
+ };
23
+ //# sourceMappingURL=PasswordDocs.js.map
@@ -0,0 +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: 'object',\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,QAAQ;IACdC,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"}
@@ -9,7 +9,17 @@ export type Props = Pick<FieldBlockProps, 'error' | 'warning' | 'info' | 'width'
9
9
  * You can also use the value of another field to define the country, by using a path value i.e. `/myCountryPath`.
10
10
  * Default: `NO`
11
11
  */
12
+ /**
13
+ * @deprecated – use countryCode instead. Will be removed in v11.
14
+ */
12
15
  country?: Path | string;
16
+ /**
17
+ * Defines which country the postal code and city is for.
18
+ * Setting it to anything other than `no` will remove the default norwegian postal code pattern.
19
+ * You can also use the value of another field to define the countryCode, by using a path value i.e. `/myCountryCodePath`.
20
+ * Default: `NO`
21
+ */
22
+ countryCode?: Path | string;
13
23
  help?: HelpProps;
14
24
  };
15
25
  declare function PostalCodeAndCity(props: Props): import("react/jsx-runtime").JSX.Element;
@@ -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"];
4
+ const _excluded = ["postalCode", "city", "help", "width", "country", "countryCode"];
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';
@@ -21,20 +21,32 @@ function PostalCodeAndCity(props) {
21
21
  city = {},
22
22
  help,
23
23
  width = 'large',
24
- country = defaultCountry
24
+ country,
25
+ countryCode = defaultCountry
25
26
  } = props,
26
27
  fieldBlockProps = _objectWithoutProperties(props, _excluded);
28
+ const countryCodeValue = getSourceValue(country || countryCode);
29
+ const handleCityDefaults = useCallback(city => {
30
+ const props = {};
31
+ switch (countryCodeValue) {
32
+ case defaultCountry:
33
+ {
34
+ props.pattern = '^[A-Za-zÆØÅæøå -]+$';
35
+ break;
36
+ }
37
+ }
38
+ return _objectSpread(_objectSpread({}, props), city);
39
+ }, [countryCodeValue]);
27
40
  const {
28
41
  pattern: cityPattern,
29
42
  className: cityClassName,
30
43
  label: cityLabel,
31
44
  width: cityWidth,
32
45
  errorMessages: cityErrorMessages
33
- } = city;
34
- const countryValue = getSourceValue(country);
35
- const handleDefaults = useCallback(postalCode => {
46
+ } = handleCityDefaults(city);
47
+ const handlePostalCodeDefaults = useCallback(postalCode => {
36
48
  const props = {};
37
- switch (countryValue) {
49
+ switch (countryCodeValue) {
38
50
  case defaultCountry:
39
51
  case 'DK':
40
52
  case 'CH':
@@ -49,7 +61,7 @@ function PostalCodeAndCity(props) {
49
61
  break;
50
62
  }
51
63
  return _objectSpread(_objectSpread({}, props), postalCode);
52
- }, [countryValue]);
64
+ }, [countryCodeValue]);
53
65
  const {
54
66
  mask: postalCodeMask,
55
67
  pattern: postalCodePattern,
@@ -58,7 +70,7 @@ function PostalCodeAndCity(props) {
58
70
  label: postalCodeLabel,
59
71
  width: postalCodeWidth,
60
72
  errorMessages: postalCodeErrorMessages
61
- } = handleDefaults(postalCode);
73
+ } = handlePostalCodeDefaults(postalCode);
62
74
  return React.createElement(CompositionField, _extends({
63
75
  className: classnames('dnb-forms-field-postal-code-and-city', props.className)
64
76
  }, fieldBlockProps, {
@@ -76,7 +88,8 @@ function PostalCodeAndCity(props) {
76
88
  width: postalCodeWidth !== null && postalCodeWidth !== void 0 ? postalCodeWidth : false,
77
89
  inputClassName: "dnb-forms-field-postal-code-and-city__postal-code-input",
78
90
  inputMode: "numeric",
79
- autoComplete: "postal-code"
91
+ autoComplete: "postal-code",
92
+ "data-country-code": country || countryCode
80
93
  })), React.createElement(StringField, _extends({
81
94
  help: help
82
95
  }, city, {
@@ -86,7 +99,7 @@ function PostalCodeAndCity(props) {
86
99
  'Field.errorRequired': translations.City.errorRequired,
87
100
  'Field.errorPattern': translations.City.errorPattern
88
101
  }, cityErrorMessages), [cityErrorMessages, translations.City.errorPattern, translations.City.errorRequired]),
89
- pattern: cityPattern !== null && cityPattern !== void 0 ? cityPattern : '^[A-Za-zÆØÅæøå -]+$',
102
+ pattern: cityPattern,
90
103
  trim: true,
91
104
  width: cityWidth !== null && cityWidth !== void 0 ? cityWidth : 'stretch',
92
105
  autoComplete: "address-level2"
@@ -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","fieldBlockProps","_objectWithoutProperties","_excluded","pattern","cityPattern","className","cityClassName","label","cityLabel","cityWidth","errorMessages","cityErrorMessages","countryValue","handleDefaults","mask","placeholder","_objectSpread","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 country?: 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 = defaultCountry,\n ...fieldBlockProps\n } = props\n\n const {\n pattern: cityPattern,\n className: cityClassName,\n label: cityLabel,\n width: cityWidth,\n errorMessages: cityErrorMessages,\n } = city\n\n const countryValue = getSourceValue(country)\n const handleDefaults = useCallback(\n (postalCode: StringFieldProps) => {\n const props: StringFieldProps = {}\n\n switch (countryValue) {\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 [countryValue]\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 } = handleDefaults(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 />\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 ?? '^[A-Za-zÆØÅæøå -]+$'}\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","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,12 +1,12 @@
1
1
  import { FieldProperties } from '../FieldDocs';
2
2
  export const PostalCodeAndCityProperties = {
3
- country: {
4
- 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 country, by using a path value i.e. `/myCountryPath`. ' + 'Defaults to `NO`',
3
+ countryCode: {
4
+ 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`',
5
5
  type: ['Path', 'string'],
6
6
  status: 'optional'
7
7
  },
8
8
  postalCode: {
9
- doc: 'Properties for the [Field.String](/uilib/extensions/forms/base-fields/String/) component for postcode.',
9
+ doc: 'Properties for the [Field.String](/uilib/extensions/forms/base-fields/String/) component for postal code.',
10
10
  type: 'object',
11
11
  status: 'required'
12
12
  },
@@ -1 +1 @@
1
- {"version":3,"file":"PostalCodeAndCityDocs.js","names":["FieldProperties","PostalCodeAndCityProperties","country","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 country: {\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 country, by using a path value i.e. `/myCountryPath`. ' +\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 postcode.',\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,OAAO,EAAE;IACPC,GAAG,EACD,qHAAqH,GACrH,gGAAgG,GAChG,kHAAkH,GAClH,kBAAkB;IACpBC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;IACxBC,MAAM,EAAE;EACV,CAAC;EACDC,UAAU,EAAE;IACVH,GAAG,EAAE,wGAAwG;IAC7GC,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","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"}
@@ -74,9 +74,9 @@ declare function useFieldProvider(props?: Omit<FieldProviderProps, 'children'>):
74
74
  'aria-valuemin'?: number;
75
75
  'aria-valuenow'?: number;
76
76
  'aria-valuetext'?: string;
77
- onFocus?: (value: unknown) => void;
78
- onBlur?: (value: unknown) => void;
79
- onChange?: (value: unknown) => void | import("../../types").EventReturnWithStateObjectAndSuccess | Promise<void | import("../../types").EventReturnWithStateObjectAndSuccess>;
77
+ onFocus?: (value: unknown, additionalArgs?: import("../../types").ReceiveAdditionalEventArgs<unknown, import("../../types").DefaultErrorMessages>) => void;
78
+ onBlur?: (value: unknown, additionalArgs?: import("../../types").ReceiveAdditionalEventArgs<unknown, import("../../types").DefaultErrorMessages>) => void;
79
+ onChange?: (value: unknown, additionalArgs?: import("../../types").ReceiveAdditionalEventArgs<unknown, import("../../types").DefaultErrorMessages>) => void | import("../../types").EventReturnWithStateObjectAndSuccess | Promise<void | import("../../types").EventReturnWithStateObjectAndSuccess>;
80
80
  help?: import("../../../../components/help-button/HelpButtonInline").HelpProps;
81
81
  locale?: string;
82
82
  autoComplete?: AutoFill;
@@ -110,7 +110,7 @@ declare function useFieldProvider(props?: Omit<FieldProviderProps, 'children'>):
110
110
  transformIn?: (external: unknown) => unknown;
111
111
  transformOut?: (internal: unknown, additionalArgs?: unknown) => unknown;
112
112
  transformValue?: (value: unknown, currentValue?: unknown) => unknown;
113
- provideAdditionalArgs?: (value: unknown, additionalArgs?: import("../../types").AdditionalEventArgs) => import("../../types").AdditionalEventArgs;
113
+ provideAdditionalArgs?: (value: unknown, additionalArgs?: import("../../types").ProvideAdditionalEventArgs) => import("../../types").ProvideAdditionalEventArgs;
114
114
  toInput?: (external: unknown) => unknown;
115
115
  toEvent?: (internal: unknown, type: "onFocus" | "onBlur" | "onChange" | "onBlurValidator") => unknown;
116
116
  fromInput?: (external: unknown) => unknown;
@@ -4,6 +4,7 @@ export { default as String } from './String';
4
4
  export { default as Number } from './Number';
5
5
  export { default as Toggle } from './Toggle';
6
6
  export { default as Indeterminate } from './Indeterminate';
7
+ export { default as Address } from './Address';
7
8
  export { default as Boolean } from './Boolean';
8
9
  export { default as Currency } from './Currency';
9
10
  export { default as Date } from './Date';