@dnb/eufemia 10.53.0 → 10.54.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 (807) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/cjs/components/CountryFlag.d.ts +12 -0
  3. package/cjs/components/CountryFlag.js +24 -0
  4. package/cjs/components/CountryFlag.js.map +1 -0
  5. package/cjs/components/autocomplete/Autocomplete.js +2 -3
  6. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  7. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
  8. package/cjs/components/checkbox/Checkbox.js +1 -2
  9. package/cjs/components/checkbox/Checkbox.js.map +1 -1
  10. package/cjs/components/country-flag/CountryFlag.d.ts +11 -0
  11. package/cjs/components/country-flag/CountryFlag.js +48 -0
  12. package/cjs/components/country-flag/CountryFlag.js.map +1 -0
  13. package/cjs/components/country-flag/CountryFlagDocs.d.ts +2 -0
  14. package/cjs/components/country-flag/CountryFlagDocs.js +25 -0
  15. package/cjs/components/country-flag/CountryFlagDocs.js.map +1 -0
  16. package/cjs/components/country-flag/index.d.ts +7 -0
  17. package/cjs/components/country-flag/index.js +24 -0
  18. package/cjs/components/country-flag/index.js.map +1 -0
  19. package/cjs/components/country-flag/style/dnb-country-flag-icons.css +1087 -0
  20. package/cjs/components/country-flag/style/dnb-country-flag-icons.min.css +1 -0
  21. package/cjs/components/country-flag/style/dnb-country-flag-icons.scss +1088 -0
  22. package/cjs/components/country-flag/style/dnb-country-flag.css +42 -0
  23. package/cjs/components/country-flag/style/dnb-country-flag.min.css +1 -0
  24. package/cjs/components/country-flag/style/dnb-country-flag.scss +53 -0
  25. package/cjs/components/country-flag/style/index.d.ts +5 -0
  26. package/cjs/components/country-flag/style/index.js +4 -0
  27. package/cjs/components/country-flag/style/index.js.map +1 -0
  28. package/cjs/components/country-flag/style.d.ts +5 -0
  29. package/cjs/components/country-flag/style.js +4 -0
  30. package/cjs/components/country-flag/style.js.map +1 -0
  31. package/cjs/components/date-picker/DatePickerCalendar.js +1 -1
  32. package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
  33. package/cjs/components/date-picker/DatePickerInput.js +1 -2
  34. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  35. package/cjs/components/dialog/Dialog.js +3 -1
  36. package/cjs/components/dialog/Dialog.js.map +1 -1
  37. package/cjs/components/dialog/DialogDocs.d.ts +2 -0
  38. package/cjs/components/dialog/DialogDocs.js +120 -0
  39. package/cjs/components/dialog/DialogDocs.js.map +1 -0
  40. package/cjs/components/dropdown/Dropdown.js +1 -2
  41. package/cjs/components/dropdown/Dropdown.js.map +1 -1
  42. package/cjs/components/global-status/GlobalStatus.js +2 -3
  43. package/cjs/components/global-status/GlobalStatus.js.map +1 -1
  44. package/cjs/components/index.d.ts +2 -1
  45. package/cjs/components/index.js +7 -0
  46. package/cjs/components/index.js.map +1 -1
  47. package/cjs/components/input-masked/InputMaskedHooks.js +1 -2
  48. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  49. package/cjs/components/input-masked/InputMaskedUtils.js +9 -5
  50. package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
  51. package/cjs/components/lib.d.ts +10 -1
  52. package/cjs/components/lib.js +8 -0
  53. package/cjs/components/lib.js.map +1 -1
  54. package/cjs/components/modal/Modal.d.ts +1 -0
  55. package/cjs/components/modal/Modal.js +4 -1
  56. package/cjs/components/modal/Modal.js.map +1 -1
  57. package/cjs/components/modal/ModalContent.js +4 -4
  58. package/cjs/components/modal/ModalContent.js.map +1 -1
  59. package/cjs/components/modal/style/dnb-modal.css +4 -0
  60. package/cjs/components/modal/style/dnb-modal.min.css +1 -1
  61. package/cjs/components/modal/style/dnb-modal.scss +5 -0
  62. package/cjs/components/modal/types.d.ts +4 -0
  63. package/cjs/components/modal/types.js.map +1 -1
  64. package/cjs/components/number-format/NumberUtils.d.ts +2 -2
  65. package/cjs/components/number-format/NumberUtils.js +1 -1
  66. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  67. package/cjs/components/pagination/Pagination.d.ts +3 -3
  68. package/cjs/components/pagination/PaginationBar.d.ts +1 -1
  69. package/cjs/components/pagination/PaginationBar.js.map +1 -1
  70. package/cjs/components/radio/Radio.js +1 -2
  71. package/cjs/components/radio/Radio.js.map +1 -1
  72. package/cjs/components/table/TableClickableHead.js +1 -1
  73. package/cjs/components/table/TableClickableHead.js.map +1 -1
  74. package/cjs/components/table/style/dnb-table.css +0 -9
  75. package/cjs/components/table/style/dnb-table.min.css +1 -1
  76. package/cjs/components/table/style/dnb-table.scss +3 -1
  77. package/cjs/components/table/style/table-accordion.scss +0 -10
  78. package/cjs/components/table/style/table-container.scss +3 -2
  79. package/cjs/components/table/style/table-td.scss +2 -1
  80. package/cjs/components/tabs/Tabs.js +2 -3
  81. package/cjs/components/tabs/Tabs.js.map +1 -1
  82. package/cjs/components/toggle-button/ToggleButton.js +2 -3
  83. package/cjs/components/toggle-button/ToggleButton.js.map +1 -1
  84. package/cjs/components/upload/UploadDocs.js +2 -2
  85. package/cjs/components/upload/UploadDocs.js.map +1 -1
  86. package/cjs/components/upload/UploadFileListCell.js +2 -8
  87. package/cjs/components/upload/UploadFileListCell.js.map +1 -1
  88. package/cjs/components/upload/UploadInfo.js +3 -3
  89. package/cjs/components/upload/UploadInfo.js.map +1 -1
  90. package/cjs/extensions/forms/DataContext/Context.d.ts +12 -9
  91. package/cjs/extensions/forms/DataContext/Context.js +2 -4
  92. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  93. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  94. package/cjs/extensions/forms/DataContext/Provider/Provider.js +34 -20
  95. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  96. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  97. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  98. package/cjs/extensions/forms/DataContext/index.d.ts +3 -0
  99. package/cjs/extensions/forms/DataContext/index.js +5 -0
  100. package/cjs/extensions/forms/DataContext/index.js.map +1 -1
  101. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +6 -2
  102. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +30 -11
  103. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  104. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -7
  105. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  106. package/cjs/extensions/forms/Field/Date/Date.js +21 -5
  107. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  108. package/cjs/extensions/forms/Field/Email/Email.js +13 -8
  109. package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
  110. package/cjs/extensions/forms/Field/Expiry/Expiry.js +42 -34
  111. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  112. package/cjs/extensions/forms/Field/Name/Name.js +20 -13
  113. package/cjs/extensions/forms/Field/Name/Name.js.map +1 -1
  114. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -1
  115. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +8 -17
  116. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  117. package/cjs/extensions/forms/Field/Number/Number.d.ts +4 -11
  118. package/cjs/extensions/forms/Field/Number/Number.js +14 -16
  119. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  120. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +4 -7
  121. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  122. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -0
  123. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +43 -30
  124. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  125. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -4
  126. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  127. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +6 -6
  128. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +18 -11
  129. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  130. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +2 -1
  131. package/cjs/extensions/forms/Field/Selection/Selection.js +39 -18
  132. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  133. package/cjs/extensions/forms/Field/Slider/Slider.js +34 -12
  134. package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -1
  135. package/cjs/extensions/forms/Field/String/String.d.ts +2 -9
  136. package/cjs/extensions/forms/Field/String/String.js +9 -12
  137. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  138. package/cjs/extensions/forms/Field/Toggle/Toggle.js +8 -1
  139. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  140. package/cjs/extensions/forms/Field/Upload/Upload.js +6 -8
  141. package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
  142. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
  143. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +16 -11
  144. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  145. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  146. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  147. package/cjs/extensions/forms/Form/Handler/Handler.js +1 -2
  148. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  149. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  150. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
  151. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js +9 -5
  152. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  153. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +12 -1
  154. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
  155. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +5 -1
  156. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +9 -3
  157. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  158. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
  159. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +7 -5
  160. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
  161. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +7 -1
  162. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
  163. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +4 -1
  164. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +6 -2
  165. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -1
  166. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  167. package/cjs/extensions/forms/Iterate/Array/Array.js +2 -2
  168. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  169. package/cjs/extensions/forms/Tools/Log.js +2 -2
  170. package/cjs/extensions/forms/Tools/Log.js.map +1 -1
  171. package/cjs/extensions/forms/Value/Date/Date.d.ts +5 -0
  172. package/cjs/extensions/forms/Value/Date/Date.js +27 -13
  173. package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
  174. package/cjs/extensions/forms/Value/Provider/useValueProvider.d.ts +3 -3
  175. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +1 -6
  176. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  177. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -11
  178. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +8 -8
  179. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  180. package/cjs/extensions/forms/constants/countries.js +20 -20
  181. package/cjs/extensions/forms/constants/countries.js.map +1 -1
  182. package/cjs/extensions/forms/hooks/index.d.ts +2 -1
  183. package/cjs/extensions/forms/hooks/index.js +1 -1
  184. package/cjs/extensions/forms/hooks/index.js.map +1 -1
  185. package/cjs/extensions/forms/hooks/useErrorMessage.d.ts +3 -10
  186. package/cjs/extensions/forms/hooks/useErrorMessage.js.map +1 -1
  187. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +4 -3
  188. package/cjs/extensions/forms/hooks/useFieldProps.js +136 -71
  189. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  190. package/cjs/extensions/forms/hooks/usePath.d.ts +3 -0
  191. package/cjs/extensions/forms/hooks/usePath.js +2 -1
  192. package/cjs/extensions/forms/hooks/usePath.js.map +1 -1
  193. package/cjs/extensions/forms/hooks/useProcessManager.js +1 -1
  194. package/cjs/extensions/forms/hooks/useProcessManager.js.map +1 -1
  195. package/cjs/extensions/forms/hooks/useTranslation.d.ts +2 -2
  196. package/cjs/extensions/forms/hooks/useTranslation.js.map +1 -1
  197. package/cjs/extensions/forms/style/dnb-forms.css +1 -6
  198. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  199. package/cjs/extensions/forms/types.d.ts +59 -36
  200. package/cjs/extensions/forms/types.js +0 -17
  201. package/cjs/extensions/forms/types.js.map +1 -1
  202. package/cjs/extensions/forms/utils/FormError.d.ts +45 -0
  203. package/cjs/extensions/forms/utils/FormError.js +25 -0
  204. package/cjs/extensions/forms/utils/FormError.js.map +1 -0
  205. package/cjs/extensions/forms/utils/ajv.d.ts +17 -1
  206. package/cjs/extensions/forms/utils/ajv.js +82 -7
  207. package/cjs/extensions/forms/utils/ajv.js.map +1 -1
  208. package/cjs/extensions/forms/utils/errors.d.ts +1 -1
  209. package/cjs/extensions/forms/utils/errors.js.map +1 -1
  210. package/cjs/extensions/forms/utils/index.d.ts +2 -0
  211. package/cjs/extensions/forms/utils/index.js +24 -0
  212. package/cjs/extensions/forms/utils/index.js.map +1 -1
  213. package/cjs/fragments/drawer-list/DrawerList.js +1 -2
  214. package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
  215. package/cjs/fragments/drawer-list/DrawerListProvider.js +2 -3
  216. package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  217. package/cjs/index.d.ts +2 -1
  218. package/cjs/index.js +7 -0
  219. package/cjs/index.js.map +1 -1
  220. package/cjs/shared/Eufemia.d.ts +1 -1
  221. package/cjs/shared/Eufemia.js +2 -2
  222. package/cjs/shared/Eufemia.js.map +1 -1
  223. package/cjs/shared/component-helper.d.ts +2 -1
  224. package/cjs/shared/component-helper.js +9 -2
  225. package/cjs/shared/component-helper.js.map +1 -1
  226. package/cjs/shared/keycode.d.ts +75 -0
  227. package/cjs/shared/keycode.js +138 -0
  228. package/cjs/shared/keycode.js.map +1 -0
  229. package/cjs/shared/libs/Shortcuts.js +1 -3
  230. package/cjs/shared/libs/Shortcuts.js.map +1 -1
  231. package/cjs/shared/locales/nb-NO.js +2 -2
  232. package/cjs/shared/locales/nb-NO.js.map +1 -1
  233. package/cjs/shared/useTranslation.d.ts +2 -2
  234. package/cjs/shared/useTranslation.js.map +1 -1
  235. package/cjs/style/core/scopes.scss +1 -1
  236. package/cjs/style/dnb-ui-basis.css +1 -1
  237. package/cjs/style/dnb-ui-basis.min.css +1 -1
  238. package/cjs/style/dnb-ui-body.css +1 -1
  239. package/cjs/style/dnb-ui-body.min.css +1 -1
  240. package/cjs/style/dnb-ui-components.css +1307 -186
  241. package/cjs/style/dnb-ui-components.min.css +3 -3
  242. package/cjs/style/dnb-ui-components.scss +2 -0
  243. package/cjs/style/dnb-ui-core.css +1 -1
  244. package/cjs/style/dnb-ui-core.min.css +1 -1
  245. package/cjs/style/dnb-ui-extensions.css +1 -6
  246. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  247. package/cjs/style/dnb-ui-forms.css +1 -6
  248. package/cjs/style/dnb-ui-forms.min.css +1 -1
  249. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +1296 -180
  250. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  251. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -6
  252. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  253. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -6
  254. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  255. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +1296 -180
  256. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  257. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -6
  258. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  259. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -6
  260. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  261. package/cjs/style/themes/theme-ui/ui-theme-components.css +1296 -180
  262. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  263. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +1 -6
  264. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  265. package/cjs/style/themes/theme-ui/ui-theme-forms.css +1 -6
  266. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  267. package/components/CountryFlag.d.ts +12 -0
  268. package/components/CountryFlag.js +4 -0
  269. package/components/CountryFlag.js.map +1 -0
  270. package/components/autocomplete/Autocomplete.js +1 -2
  271. package/components/autocomplete/Autocomplete.js.map +1 -1
  272. package/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
  273. package/components/checkbox/Checkbox.js +1 -2
  274. package/components/checkbox/Checkbox.js.map +1 -1
  275. package/components/country-flag/CountryFlag.d.ts +11 -0
  276. package/components/country-flag/CountryFlag.js +38 -0
  277. package/components/country-flag/CountryFlag.js.map +1 -0
  278. package/components/country-flag/CountryFlagDocs.d.ts +2 -0
  279. package/components/country-flag/CountryFlagDocs.js +18 -0
  280. package/components/country-flag/CountryFlagDocs.js.map +1 -0
  281. package/components/country-flag/index.d.ts +7 -0
  282. package/components/country-flag/index.js +4 -0
  283. package/components/country-flag/index.js.map +1 -0
  284. package/components/country-flag/style/dnb-country-flag-icons.css +1087 -0
  285. package/components/country-flag/style/dnb-country-flag-icons.min.css +1 -0
  286. package/components/country-flag/style/dnb-country-flag-icons.scss +1088 -0
  287. package/components/country-flag/style/dnb-country-flag.css +42 -0
  288. package/components/country-flag/style/dnb-country-flag.min.css +1 -0
  289. package/components/country-flag/style/dnb-country-flag.scss +53 -0
  290. package/components/country-flag/style/index.d.ts +5 -0
  291. package/components/country-flag/style/index.js +1 -0
  292. package/components/country-flag/style/index.js.map +1 -0
  293. package/components/country-flag/style.d.ts +5 -0
  294. package/components/country-flag/style.js +1 -0
  295. package/components/country-flag/style.js.map +1 -0
  296. package/components/date-picker/DatePickerCalendar.js +1 -1
  297. package/components/date-picker/DatePickerCalendar.js.map +1 -1
  298. package/components/date-picker/DatePickerInput.js +1 -2
  299. package/components/date-picker/DatePickerInput.js.map +1 -1
  300. package/components/dialog/Dialog.js +3 -1
  301. package/components/dialog/Dialog.js.map +1 -1
  302. package/components/dialog/DialogDocs.d.ts +2 -0
  303. package/components/dialog/DialogDocs.js +113 -0
  304. package/components/dialog/DialogDocs.js.map +1 -0
  305. package/components/dropdown/Dropdown.js +1 -2
  306. package/components/dropdown/Dropdown.js.map +1 -1
  307. package/components/global-status/GlobalStatus.js +1 -2
  308. package/components/global-status/GlobalStatus.js.map +1 -1
  309. package/components/index.d.ts +2 -1
  310. package/components/index.js +2 -1
  311. package/components/index.js.map +1 -1
  312. package/components/input-masked/InputMaskedHooks.js +1 -2
  313. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  314. package/components/input-masked/InputMaskedUtils.js +9 -5
  315. package/components/input-masked/InputMaskedUtils.js.map +1 -1
  316. package/components/lib.d.ts +10 -1
  317. package/components/lib.js +3 -1
  318. package/components/lib.js.map +1 -1
  319. package/components/modal/Modal.d.ts +1 -0
  320. package/components/modal/Modal.js +4 -1
  321. package/components/modal/Modal.js.map +1 -1
  322. package/components/modal/ModalContent.js +4 -4
  323. package/components/modal/ModalContent.js.map +1 -1
  324. package/components/modal/style/dnb-modal.css +4 -0
  325. package/components/modal/style/dnb-modal.min.css +1 -1
  326. package/components/modal/style/dnb-modal.scss +5 -0
  327. package/components/modal/types.d.ts +4 -0
  328. package/components/modal/types.js.map +1 -1
  329. package/components/number-format/NumberUtils.d.ts +2 -2
  330. package/components/number-format/NumberUtils.js +1 -1
  331. package/components/number-format/NumberUtils.js.map +1 -1
  332. package/components/pagination/Pagination.d.ts +3 -3
  333. package/components/pagination/PaginationBar.d.ts +1 -1
  334. package/components/pagination/PaginationBar.js.map +1 -1
  335. package/components/radio/Radio.js +1 -2
  336. package/components/radio/Radio.js.map +1 -1
  337. package/components/table/TableClickableHead.js +1 -1
  338. package/components/table/TableClickableHead.js.map +1 -1
  339. package/components/table/style/dnb-table.css +0 -9
  340. package/components/table/style/dnb-table.min.css +1 -1
  341. package/components/table/style/dnb-table.scss +3 -1
  342. package/components/table/style/table-accordion.scss +0 -10
  343. package/components/table/style/table-container.scss +3 -2
  344. package/components/table/style/table-td.scss +2 -1
  345. package/components/tabs/Tabs.js +1 -2
  346. package/components/tabs/Tabs.js.map +1 -1
  347. package/components/toggle-button/ToggleButton.js +1 -2
  348. package/components/toggle-button/ToggleButton.js.map +1 -1
  349. package/components/upload/UploadDocs.js +2 -2
  350. package/components/upload/UploadDocs.js.map +1 -1
  351. package/components/upload/UploadFileListCell.js +2 -8
  352. package/components/upload/UploadFileListCell.js.map +1 -1
  353. package/components/upload/UploadInfo.js +3 -3
  354. package/components/upload/UploadInfo.js.map +1 -1
  355. package/es/components/CountryFlag.d.ts +12 -0
  356. package/es/components/CountryFlag.js +4 -0
  357. package/es/components/CountryFlag.js.map +1 -0
  358. package/es/components/autocomplete/Autocomplete.js +1 -2
  359. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  360. package/es/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
  361. package/es/components/checkbox/Checkbox.js +1 -2
  362. package/es/components/checkbox/Checkbox.js.map +1 -1
  363. package/es/components/country-flag/CountryFlag.d.ts +11 -0
  364. package/es/components/country-flag/CountryFlag.js +38 -0
  365. package/es/components/country-flag/CountryFlag.js.map +1 -0
  366. package/es/components/country-flag/CountryFlagDocs.d.ts +2 -0
  367. package/es/components/country-flag/CountryFlagDocs.js +18 -0
  368. package/es/components/country-flag/CountryFlagDocs.js.map +1 -0
  369. package/es/components/country-flag/index.d.ts +7 -0
  370. package/es/components/country-flag/index.js +4 -0
  371. package/es/components/country-flag/index.js.map +1 -0
  372. package/es/components/country-flag/style/dnb-country-flag-icons.css +1087 -0
  373. package/es/components/country-flag/style/dnb-country-flag-icons.min.css +1 -0
  374. package/es/components/country-flag/style/dnb-country-flag-icons.scss +1088 -0
  375. package/es/components/country-flag/style/dnb-country-flag.css +42 -0
  376. package/es/components/country-flag/style/dnb-country-flag.min.css +1 -0
  377. package/es/components/country-flag/style/dnb-country-flag.scss +53 -0
  378. package/es/components/country-flag/style/index.d.ts +5 -0
  379. package/es/components/country-flag/style/index.js +1 -0
  380. package/es/components/country-flag/style/index.js.map +1 -0
  381. package/es/components/country-flag/style.d.ts +5 -0
  382. package/es/components/country-flag/style.js +1 -0
  383. package/es/components/country-flag/style.js.map +1 -0
  384. package/es/components/date-picker/DatePickerCalendar.js +1 -1
  385. package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
  386. package/es/components/date-picker/DatePickerInput.js +1 -2
  387. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  388. package/es/components/dialog/Dialog.js +3 -1
  389. package/es/components/dialog/Dialog.js.map +1 -1
  390. package/es/components/dialog/DialogDocs.d.ts +2 -0
  391. package/es/components/dialog/DialogDocs.js +113 -0
  392. package/es/components/dialog/DialogDocs.js.map +1 -0
  393. package/es/components/dropdown/Dropdown.js +1 -2
  394. package/es/components/dropdown/Dropdown.js.map +1 -1
  395. package/es/components/global-status/GlobalStatus.js +1 -2
  396. package/es/components/global-status/GlobalStatus.js.map +1 -1
  397. package/es/components/index.d.ts +2 -1
  398. package/es/components/index.js +2 -1
  399. package/es/components/index.js.map +1 -1
  400. package/es/components/input-masked/InputMaskedHooks.js +1 -2
  401. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  402. package/es/components/input-masked/InputMaskedUtils.js +9 -5
  403. package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
  404. package/es/components/lib.d.ts +10 -1
  405. package/es/components/lib.js +3 -1
  406. package/es/components/lib.js.map +1 -1
  407. package/es/components/modal/Modal.d.ts +1 -0
  408. package/es/components/modal/Modal.js +4 -1
  409. package/es/components/modal/Modal.js.map +1 -1
  410. package/es/components/modal/ModalContent.js +4 -4
  411. package/es/components/modal/ModalContent.js.map +1 -1
  412. package/es/components/modal/style/dnb-modal.css +4 -0
  413. package/es/components/modal/style/dnb-modal.min.css +1 -1
  414. package/es/components/modal/style/dnb-modal.scss +5 -0
  415. package/es/components/modal/types.d.ts +4 -0
  416. package/es/components/modal/types.js.map +1 -1
  417. package/es/components/number-format/NumberUtils.d.ts +2 -2
  418. package/es/components/number-format/NumberUtils.js +1 -1
  419. package/es/components/number-format/NumberUtils.js.map +1 -1
  420. package/es/components/pagination/Pagination.d.ts +3 -3
  421. package/es/components/pagination/PaginationBar.d.ts +1 -1
  422. package/es/components/pagination/PaginationBar.js.map +1 -1
  423. package/es/components/radio/Radio.js +1 -2
  424. package/es/components/radio/Radio.js.map +1 -1
  425. package/es/components/table/TableClickableHead.js +1 -1
  426. package/es/components/table/TableClickableHead.js.map +1 -1
  427. package/es/components/table/style/dnb-table.css +0 -9
  428. package/es/components/table/style/dnb-table.min.css +1 -1
  429. package/es/components/table/style/dnb-table.scss +3 -1
  430. package/es/components/table/style/table-accordion.scss +0 -10
  431. package/es/components/table/style/table-container.scss +3 -2
  432. package/es/components/table/style/table-td.scss +2 -1
  433. package/es/components/tabs/Tabs.js +1 -2
  434. package/es/components/tabs/Tabs.js.map +1 -1
  435. package/es/components/toggle-button/ToggleButton.js +1 -2
  436. package/es/components/toggle-button/ToggleButton.js.map +1 -1
  437. package/es/components/upload/UploadDocs.js +2 -2
  438. package/es/components/upload/UploadDocs.js.map +1 -1
  439. package/es/components/upload/UploadFileListCell.js +2 -8
  440. package/es/components/upload/UploadFileListCell.js.map +1 -1
  441. package/es/components/upload/UploadInfo.js +3 -3
  442. package/es/components/upload/UploadInfo.js.map +1 -1
  443. package/es/extensions/forms/DataContext/Context.d.ts +12 -9
  444. package/es/extensions/forms/DataContext/Context.js +1 -3
  445. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  446. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  447. package/es/extensions/forms/DataContext/Provider/Provider.js +32 -18
  448. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  449. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  450. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  451. package/es/extensions/forms/DataContext/index.d.ts +3 -0
  452. package/es/extensions/forms/DataContext/index.js +5 -0
  453. package/es/extensions/forms/DataContext/index.js.map +1 -1
  454. package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +6 -2
  455. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +24 -9
  456. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  457. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -7
  458. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  459. package/es/extensions/forms/Field/Date/Date.js +23 -6
  460. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  461. package/es/extensions/forms/Field/Email/Email.js +11 -8
  462. package/es/extensions/forms/Field/Email/Email.js.map +1 -1
  463. package/es/extensions/forms/Field/Expiry/Expiry.js +42 -34
  464. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  465. package/es/extensions/forms/Field/Name/Name.js +18 -13
  466. package/es/extensions/forms/Field/Name/Name.js.map +1 -1
  467. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -1
  468. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +6 -15
  469. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  470. package/es/extensions/forms/Field/Number/Number.d.ts +4 -11
  471. package/es/extensions/forms/Field/Number/Number.js +15 -17
  472. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  473. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +4 -7
  474. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  475. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -0
  476. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +44 -31
  477. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  478. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -4
  479. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  480. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +6 -6
  481. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +18 -11
  482. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  483. package/es/extensions/forms/Field/Selection/Selection.d.ts +2 -1
  484. package/es/extensions/forms/Field/Selection/Selection.js +37 -15
  485. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  486. package/es/extensions/forms/Field/Slider/Slider.js +35 -13
  487. package/es/extensions/forms/Field/Slider/Slider.js.map +1 -1
  488. package/es/extensions/forms/Field/String/String.d.ts +2 -9
  489. package/es/extensions/forms/Field/String/String.js +10 -13
  490. package/es/extensions/forms/Field/String/String.js.map +1 -1
  491. package/es/extensions/forms/Field/Toggle/Toggle.js +9 -2
  492. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  493. package/es/extensions/forms/Field/Upload/Upload.js +7 -9
  494. package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
  495. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
  496. package/es/extensions/forms/FieldBlock/FieldBlock.js +15 -10
  497. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  498. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  499. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  500. package/es/extensions/forms/Form/Handler/Handler.js +1 -2
  501. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  502. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  503. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
  504. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js +8 -4
  505. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  506. package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +12 -1
  507. package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
  508. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +5 -1
  509. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +9 -3
  510. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  511. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
  512. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +6 -4
  513. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
  514. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +7 -1
  515. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
  516. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +4 -1
  517. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +6 -2
  518. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -1
  519. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  520. package/es/extensions/forms/Iterate/Array/Array.js +3 -3
  521. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  522. package/es/extensions/forms/Tools/Log.js +2 -2
  523. package/es/extensions/forms/Tools/Log.js.map +1 -1
  524. package/es/extensions/forms/Value/Date/Date.d.ts +5 -0
  525. package/es/extensions/forms/Value/Date/Date.js +25 -14
  526. package/es/extensions/forms/Value/Date/Date.js.map +1 -1
  527. package/es/extensions/forms/Value/Provider/useValueProvider.d.ts +3 -3
  528. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +1 -6
  529. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  530. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -11
  531. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +8 -8
  532. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  533. package/es/extensions/forms/constants/countries.js +20 -20
  534. package/es/extensions/forms/constants/countries.js.map +1 -1
  535. package/es/extensions/forms/hooks/index.d.ts +2 -1
  536. package/es/extensions/forms/hooks/index.js +1 -1
  537. package/es/extensions/forms/hooks/index.js.map +1 -1
  538. package/es/extensions/forms/hooks/useErrorMessage.d.ts +3 -10
  539. package/es/extensions/forms/hooks/useErrorMessage.js.map +1 -1
  540. package/es/extensions/forms/hooks/useFieldProps.d.ts +4 -3
  541. package/es/extensions/forms/hooks/useFieldProps.js +134 -69
  542. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  543. package/es/extensions/forms/hooks/usePath.d.ts +3 -0
  544. package/es/extensions/forms/hooks/usePath.js +2 -1
  545. package/es/extensions/forms/hooks/usePath.js.map +1 -1
  546. package/es/extensions/forms/hooks/useProcessManager.js +1 -1
  547. package/es/extensions/forms/hooks/useProcessManager.js.map +1 -1
  548. package/es/extensions/forms/hooks/useTranslation.d.ts +2 -2
  549. package/es/extensions/forms/hooks/useTranslation.js.map +1 -1
  550. package/es/extensions/forms/style/dnb-forms.css +1 -6
  551. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  552. package/es/extensions/forms/types.d.ts +59 -36
  553. package/es/extensions/forms/types.js +0 -13
  554. package/es/extensions/forms/types.js.map +1 -1
  555. package/es/extensions/forms/utils/FormError.d.ts +45 -0
  556. package/es/extensions/forms/utils/FormError.js +16 -0
  557. package/es/extensions/forms/utils/FormError.js.map +1 -0
  558. package/es/extensions/forms/utils/ajv.d.ts +17 -1
  559. package/es/extensions/forms/utils/ajv.js +72 -7
  560. package/es/extensions/forms/utils/ajv.js.map +1 -1
  561. package/es/extensions/forms/utils/errors.d.ts +1 -1
  562. package/es/extensions/forms/utils/errors.js.map +1 -1
  563. package/es/extensions/forms/utils/index.d.ts +2 -0
  564. package/es/extensions/forms/utils/index.js +2 -0
  565. package/es/extensions/forms/utils/index.js.map +1 -1
  566. package/es/fragments/drawer-list/DrawerList.js +1 -2
  567. package/es/fragments/drawer-list/DrawerList.js.map +1 -1
  568. package/es/fragments/drawer-list/DrawerListProvider.js +1 -2
  569. package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  570. package/es/index.d.ts +2 -1
  571. package/es/index.js +2 -1
  572. package/es/index.js.map +1 -1
  573. package/es/shared/Eufemia.d.ts +1 -1
  574. package/es/shared/Eufemia.js +2 -2
  575. package/es/shared/Eufemia.js.map +1 -1
  576. package/es/shared/component-helper.d.ts +2 -1
  577. package/es/shared/component-helper.js +2 -2
  578. package/es/shared/component-helper.js.map +1 -1
  579. package/es/shared/keycode.d.ts +75 -0
  580. package/es/shared/keycode.js +127 -0
  581. package/es/shared/keycode.js.map +1 -0
  582. package/es/shared/libs/Shortcuts.js +1 -2
  583. package/es/shared/libs/Shortcuts.js.map +1 -1
  584. package/es/shared/locales/nb-NO.js +2 -2
  585. package/es/shared/locales/nb-NO.js.map +1 -1
  586. package/es/shared/useTranslation.d.ts +2 -2
  587. package/es/shared/useTranslation.js.map +1 -1
  588. package/es/style/core/scopes.scss +1 -1
  589. package/es/style/dnb-ui-basis.css +1 -1
  590. package/es/style/dnb-ui-basis.min.css +1 -1
  591. package/es/style/dnb-ui-body.css +1 -1
  592. package/es/style/dnb-ui-body.min.css +1 -1
  593. package/es/style/dnb-ui-components.css +1307 -186
  594. package/es/style/dnb-ui-components.min.css +3 -3
  595. package/es/style/dnb-ui-components.scss +2 -0
  596. package/es/style/dnb-ui-core.css +1 -1
  597. package/es/style/dnb-ui-core.min.css +1 -1
  598. package/es/style/dnb-ui-extensions.css +1 -6
  599. package/es/style/dnb-ui-extensions.min.css +1 -1
  600. package/es/style/dnb-ui-forms.css +1 -6
  601. package/es/style/dnb-ui-forms.min.css +1 -1
  602. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +1296 -180
  603. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  604. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -6
  605. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  606. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -6
  607. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  608. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +1296 -180
  609. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  610. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -6
  611. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  612. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -6
  613. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  614. package/es/style/themes/theme-ui/ui-theme-components.css +1296 -180
  615. package/es/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  616. package/es/style/themes/theme-ui/ui-theme-extensions.css +1 -6
  617. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  618. package/es/style/themes/theme-ui/ui-theme-forms.css +1 -6
  619. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  620. package/esm/dnb-ui-basis.min.mjs +1 -1
  621. package/esm/dnb-ui-components.min.mjs +1 -1
  622. package/esm/dnb-ui-elements.min.mjs +1 -1
  623. package/esm/dnb-ui-extensions.min.mjs +5 -5
  624. package/esm/dnb-ui-lib.min.mjs +1 -1
  625. package/extensions/forms/DataContext/Context.d.ts +12 -9
  626. package/extensions/forms/DataContext/Context.js +1 -3
  627. package/extensions/forms/DataContext/Context.js.map +1 -1
  628. package/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  629. package/extensions/forms/DataContext/Provider/Provider.js +32 -18
  630. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  631. package/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  632. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  633. package/extensions/forms/DataContext/index.d.ts +3 -0
  634. package/extensions/forms/DataContext/index.js +5 -0
  635. package/extensions/forms/DataContext/index.js.map +1 -1
  636. package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +6 -2
  637. package/extensions/forms/Field/ArraySelection/ArraySelection.js +30 -11
  638. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  639. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -7
  640. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  641. package/extensions/forms/Field/Date/Date.js +23 -6
  642. package/extensions/forms/Field/Date/Date.js.map +1 -1
  643. package/extensions/forms/Field/Email/Email.js +11 -8
  644. package/extensions/forms/Field/Email/Email.js.map +1 -1
  645. package/extensions/forms/Field/Expiry/Expiry.js +42 -34
  646. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  647. package/extensions/forms/Field/Name/Name.js +18 -13
  648. package/extensions/forms/Field/Name/Name.js.map +1 -1
  649. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -1
  650. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +6 -15
  651. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  652. package/extensions/forms/Field/Number/Number.d.ts +4 -11
  653. package/extensions/forms/Field/Number/Number.js +15 -17
  654. package/extensions/forms/Field/Number/Number.js.map +1 -1
  655. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +4 -7
  656. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  657. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -0
  658. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +44 -31
  659. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  660. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -4
  661. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  662. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +6 -6
  663. package/extensions/forms/Field/SelectCountry/SelectCountry.js +18 -11
  664. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  665. package/extensions/forms/Field/Selection/Selection.d.ts +2 -1
  666. package/extensions/forms/Field/Selection/Selection.js +38 -17
  667. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  668. package/extensions/forms/Field/Slider/Slider.js +35 -13
  669. package/extensions/forms/Field/Slider/Slider.js.map +1 -1
  670. package/extensions/forms/Field/String/String.d.ts +2 -9
  671. package/extensions/forms/Field/String/String.js +10 -13
  672. package/extensions/forms/Field/String/String.js.map +1 -1
  673. package/extensions/forms/Field/Toggle/Toggle.js +9 -2
  674. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  675. package/extensions/forms/Field/Upload/Upload.js +7 -9
  676. package/extensions/forms/Field/Upload/Upload.js.map +1 -1
  677. package/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
  678. package/extensions/forms/FieldBlock/FieldBlock.js +15 -10
  679. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  680. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  681. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  682. package/extensions/forms/Form/Handler/Handler.js +1 -2
  683. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  684. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  685. package/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
  686. package/extensions/forms/Form/Section/EditContainer/EditContainer.js +8 -4
  687. package/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  688. package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +12 -1
  689. package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
  690. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +5 -1
  691. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +9 -3
  692. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  693. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
  694. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +6 -4
  695. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
  696. package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +7 -1
  697. package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
  698. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +4 -1
  699. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +6 -2
  700. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -1
  701. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  702. package/extensions/forms/Iterate/Array/Array.js +3 -3
  703. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  704. package/extensions/forms/Tools/Log.js +2 -2
  705. package/extensions/forms/Tools/Log.js.map +1 -1
  706. package/extensions/forms/Value/Date/Date.d.ts +5 -0
  707. package/extensions/forms/Value/Date/Date.js +26 -14
  708. package/extensions/forms/Value/Date/Date.js.map +1 -1
  709. package/extensions/forms/Value/Provider/useValueProvider.d.ts +3 -3
  710. package/extensions/forms/Wizard/style/dnb-wizard-layout.css +1 -6
  711. package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  712. package/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -11
  713. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +8 -8
  714. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  715. package/extensions/forms/constants/countries.js +20 -20
  716. package/extensions/forms/constants/countries.js.map +1 -1
  717. package/extensions/forms/hooks/index.d.ts +2 -1
  718. package/extensions/forms/hooks/index.js +1 -1
  719. package/extensions/forms/hooks/index.js.map +1 -1
  720. package/extensions/forms/hooks/useErrorMessage.d.ts +3 -10
  721. package/extensions/forms/hooks/useErrorMessage.js.map +1 -1
  722. package/extensions/forms/hooks/useFieldProps.d.ts +4 -3
  723. package/extensions/forms/hooks/useFieldProps.js +136 -71
  724. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  725. package/extensions/forms/hooks/usePath.d.ts +3 -0
  726. package/extensions/forms/hooks/usePath.js +2 -1
  727. package/extensions/forms/hooks/usePath.js.map +1 -1
  728. package/extensions/forms/hooks/useProcessManager.js +1 -1
  729. package/extensions/forms/hooks/useProcessManager.js.map +1 -1
  730. package/extensions/forms/hooks/useTranslation.d.ts +2 -2
  731. package/extensions/forms/hooks/useTranslation.js.map +1 -1
  732. package/extensions/forms/style/dnb-forms.css +1 -6
  733. package/extensions/forms/style/dnb-forms.min.css +1 -1
  734. package/extensions/forms/types.d.ts +59 -36
  735. package/extensions/forms/types.js +0 -13
  736. package/extensions/forms/types.js.map +1 -1
  737. package/extensions/forms/utils/FormError.d.ts +45 -0
  738. package/extensions/forms/utils/FormError.js +16 -0
  739. package/extensions/forms/utils/FormError.js.map +1 -0
  740. package/extensions/forms/utils/ajv.d.ts +17 -1
  741. package/extensions/forms/utils/ajv.js +77 -7
  742. package/extensions/forms/utils/ajv.js.map +1 -1
  743. package/extensions/forms/utils/errors.d.ts +1 -1
  744. package/extensions/forms/utils/errors.js.map +1 -1
  745. package/extensions/forms/utils/index.d.ts +2 -0
  746. package/extensions/forms/utils/index.js +2 -0
  747. package/extensions/forms/utils/index.js.map +1 -1
  748. package/fragments/drawer-list/DrawerList.js +1 -2
  749. package/fragments/drawer-list/DrawerList.js.map +1 -1
  750. package/fragments/drawer-list/DrawerListProvider.js +1 -2
  751. package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  752. package/index.d.ts +2 -1
  753. package/index.js +2 -1
  754. package/index.js.map +1 -1
  755. package/package.json +2 -2
  756. package/shared/Eufemia.d.ts +1 -1
  757. package/shared/Eufemia.js +2 -2
  758. package/shared/Eufemia.js.map +1 -1
  759. package/shared/component-helper.d.ts +2 -1
  760. package/shared/component-helper.js +2 -2
  761. package/shared/component-helper.js.map +1 -1
  762. package/shared/keycode.d.ts +75 -0
  763. package/shared/keycode.js +127 -0
  764. package/shared/keycode.js.map +1 -0
  765. package/shared/libs/Shortcuts.js +1 -2
  766. package/shared/libs/Shortcuts.js.map +1 -1
  767. package/shared/locales/nb-NO.js +2 -2
  768. package/shared/locales/nb-NO.js.map +1 -1
  769. package/shared/useTranslation.d.ts +2 -2
  770. package/shared/useTranslation.js.map +1 -1
  771. package/style/core/scopes.scss +1 -1
  772. package/style/dnb-ui-basis.css +1 -1
  773. package/style/dnb-ui-basis.min.css +1 -1
  774. package/style/dnb-ui-body.css +1 -1
  775. package/style/dnb-ui-body.min.css +1 -1
  776. package/style/dnb-ui-components.css +1307 -186
  777. package/style/dnb-ui-components.min.css +3 -3
  778. package/style/dnb-ui-components.scss +2 -0
  779. package/style/dnb-ui-core.css +1 -1
  780. package/style/dnb-ui-core.min.css +1 -1
  781. package/style/dnb-ui-extensions.css +1 -6
  782. package/style/dnb-ui-extensions.min.css +1 -1
  783. package/style/dnb-ui-forms.css +1 -6
  784. package/style/dnb-ui-forms.min.css +1 -1
  785. package/style/themes/theme-eiendom/eiendom-theme-components.css +1296 -180
  786. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  787. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -6
  788. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  789. package/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -6
  790. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  791. package/style/themes/theme-sbanken/sbanken-theme-components.css +1296 -180
  792. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  793. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -6
  794. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  795. package/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -6
  796. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  797. package/style/themes/theme-ui/ui-theme-components.css +1296 -180
  798. package/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  799. package/style/themes/theme-ui/ui-theme-extensions.css +1 -6
  800. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  801. package/style/themes/theme-ui/ui-theme-forms.css +1 -6
  802. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  803. package/umd/dnb-ui-basis.min.js +1 -1
  804. package/umd/dnb-ui-components.min.js +1 -1
  805. package/umd/dnb-ui-elements.min.js +1 -1
  806. package/umd/dnb-ui-extensions.min.js +5 -5
  807. package/umd/dnb-ui-lib.min.js +1 -1
@@ -4,8 +4,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
4
4
  import React, { useCallback, useMemo } from 'react';
5
5
  import StringField from '../String';
6
6
  import { dnr, fnr } from '@navikt/fnrvalidator';
7
- import { FormError } from '../../types';
8
- import useErrorMessage from '../../hooks/useErrorMessage';
7
+ import { FormError } from '../../utils';
9
8
  import useTranslation from '../../hooks/useTranslation';
10
9
  function NationalIdentityNumber(props) {
11
10
  const translations = useTranslation().NationalIdentityNumber;
@@ -15,20 +14,12 @@ function NationalIdentityNumber(props) {
15
14
  errorFnr,
16
15
  errorFnrLength,
17
16
  errorDnr,
18
- errorDnrLength,
19
- errorMinimumAgeValidator,
20
- errorMinimumAgeValidatorLength
17
+ errorDnrLength
21
18
  } = translations;
22
- const errorMessages = useErrorMessage(props.path, props.errorMessages, {
23
- required: errorRequired,
24
- pattern: errorFnr,
25
- errorFnr,
26
- errorFnrLength,
27
- errorDnr,
28
- errorDnrLength,
29
- errorMinimumAgeValidator,
30
- errorMinimumAgeValidatorLength
31
- });
19
+ const errorMessages = useMemo(() => _objectSpread({
20
+ 'Field.errorRequired': errorRequired,
21
+ 'Field.errorPattern': errorFnr
22
+ }, props.errorMessages), [errorRequired, errorFnr, props.errorMessages]);
32
23
  const identificationNumberIsOfLength = (identificationNumber, length) => {
33
24
  return (identificationNumber === null || identificationNumber === void 0 ? void 0 : identificationNumber.length) === length;
34
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"NationalIdentityNumber.js","names":["React","useCallback","useMemo","StringField","dnr","fnr","FormError","useErrorMessage","useTranslation","NationalIdentityNumber","props","translations","label","errorRequired","errorFnr","errorFnrLength","errorDnr","errorDnrLength","errorMinimumAgeValidator","errorMinimumAgeValidatorLength","errorMessages","path","required","pattern","identificationNumberIsOfLength","identificationNumber","length","fnrValidator","value","undefined","Number","parseInt","substring","Error","fnrIs11Digits","status","dnrValidator","dnrIs11Digits","dnrAndFnrValidator","dnrValidationPattern","RegExp","test","validate","omitMask","onBlurValidator","validator","width","labelProp","mask","Array","fill","onBlurValidatorToUse","StringFieldProps","_objectSpread","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 { FormError, Validator } from '../../types'\n\nimport useErrorMessage from '../../hooks/useErrorMessage'\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 errorMinimumAgeValidator,\n errorMinimumAgeValidatorLength,\n } = translations\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: errorRequired,\n pattern: errorFnr,\n errorFnr,\n errorFnrLength,\n errorDnr,\n errorDnrLength,\n errorMinimumAgeValidator,\n errorMinimumAgeValidatorLength,\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 onBlurValidator = dnrAndFnrValidator,\n validator,\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 validator: validate ? validator : 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","onBlurValidator","validator","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 onBlurValidator = dnrAndFnrValidator,\n validator,\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 validator: validate ? validator : 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,16 +1,9 @@
1
+ import React from 'react';
1
2
  import { InputMaskedProps } from '../../../../components/InputMasked';
2
3
  import type { InputAlign, InputSize } from '../../../../components/Input';
3
- import { FieldProps, FieldHelpProps, CustomErrorMessages, FieldBlockWidth } from '../../types';
4
- interface ErrorMessages extends CustomErrorMessages {
5
- required?: string;
6
- schema?: string;
7
- minimum?: string;
8
- maximum?: string;
9
- exclusiveMinimum?: string;
10
- exclusiveMaximum?: string;
11
- multipleOf?: string;
12
- }
13
- export type Props = FieldHelpProps & FieldProps<number, undefined | number, ErrorMessages> & {
4
+ import { FieldProps, FieldHelpProps, FieldBlockWidth } from '../../types';
5
+ export type Props = FieldHelpProps & FieldProps<number, undefined | number> & {
6
+ innerRef?: React.RefObject<HTMLInputElement>;
14
7
  inputClassName?: string;
15
8
  currency?: InputMaskedProps['as_currency'];
16
9
  currencyDisplay?: 'code' | 'symbol' | 'narrowSymbol' | 'name';
@@ -4,7 +4,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
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
- import React, { useContext, useMemo, useCallback } from 'react';
7
+ import React, { useContext, useMemo, useCallback, useEffect, useRef } from 'react';
8
8
  import { InputMasked, HelpButton, Button } from '../../../../components';
9
9
  import SharedContext from '../../../../shared/Context';
10
10
  import FieldBlockContext from '../../FieldBlock/FieldBlockContext';
@@ -13,17 +13,14 @@ import FieldBlock from '../../FieldBlock';
13
13
  import { useFieldProps } from '../../hooks';
14
14
  import { pickSpacingProps } from '../../../../components/flex/utils';
15
15
  import { clamp } from '../../../../components/slider/SliderHelpers';
16
- import useErrorMessage from '../../hooks/useErrorMessage';
17
- import useTranslation from '../../hooks/useTranslation';
18
16
  import DataContext from '../../DataContext/Context';
19
17
  const defaultMinimum = Number.MIN_SAFE_INTEGER;
20
18
  const defaultMaximum = Number.MAX_SAFE_INTEGER;
21
19
  function NumberComponent(props) {
22
- var _props$width, _dataContext$props2, _sharedContext$transl, _sharedContext$transl2;
20
+ var _props$width, _props$innerRef, _dataContext$props2, _sharedContext$transl, _sharedContext$transl2;
23
21
  const dataContext = useContext(DataContext);
24
22
  const fieldBlockContext = useContext(FieldBlockContext);
25
23
  const sharedContext = useContext(SharedContext);
26
- const translations = useTranslation();
27
24
  const {
28
25
  currency,
29
26
  currencyDisplay,
@@ -37,14 +34,6 @@ function NumberComponent(props) {
37
34
  suffix: suffixProp,
38
35
  showStepControls
39
36
  } = props;
40
- const errorMessages = useErrorMessage(props.path, props.errorMessages, {
41
- required: translations.Field.errorRequired,
42
- minimum: translations.NumberField.errorMinimum,
43
- maximum: translations.NumberField.errorMaximum,
44
- exclusiveMinimum: translations.NumberField.errorExclusiveMinimum,
45
- exclusiveMaximum: translations.NumberField.errorExclusiveMaximum,
46
- multipleOf: translations.NumberField.errorMultipleOf
47
- });
48
37
  const schema = useMemo(() => {
49
38
  var _props$schema, _props$minimum, _props$maximum;
50
39
  return (_props$schema = props.schema) !== null && _props$schema !== void 0 ? _props$schema : {
@@ -71,19 +60,21 @@ function NumberComponent(props) {
71
60
  }
72
61
  return numberValue;
73
62
  }, [props.emptyValue]);
63
+ const ref = useRef();
74
64
  const preparedProps = _objectSpread(_objectSpread({
75
65
  valueType: 'number'
76
66
  }, props), {}, {
77
- errorMessages,
78
67
  schema,
79
68
  toInput,
80
69
  fromInput,
81
- width: (_props$width = props.width) !== null && _props$width !== void 0 ? _props$width : fieldBlockContext !== null && fieldBlockContext !== void 0 && fieldBlockContext.composition ? 'stretch' : 'medium'
70
+ width: (_props$width = props.width) !== null && _props$width !== void 0 ? _props$width : fieldBlockContext !== null && fieldBlockContext !== void 0 && fieldBlockContext.composition ? 'stretch' : 'medium',
71
+ innerRef: (_props$innerRef = props.innerRef) !== null && _props$innerRef !== void 0 ? _props$innerRef : ref
82
72
  });
83
73
  const {
84
74
  id,
85
75
  name,
86
76
  className,
77
+ innerRef,
87
78
  inputClassName,
88
79
  autoComplete,
89
80
  layout,
@@ -106,8 +97,13 @@ function NumberComponent(props) {
106
97
  align,
107
98
  handleFocus,
108
99
  handleBlur,
109
- handleChange
100
+ handleChange,
101
+ setDisplayValue
110
102
  } = useFieldProps(preparedProps);
103
+ useEffect(() => {
104
+ var _innerRef$current;
105
+ setDisplayValue(props.path, (_innerRef$current = innerRef.current) === null || _innerRef$current === void 0 ? void 0 : _innerRef$current.value);
106
+ }, [innerRef, props.path, setDisplayValue, value]);
111
107
  const {
112
108
  handleSubmit
113
109
  } = dataContext !== null && dataContext !== void 0 ? dataContext : {};
@@ -198,7 +194,8 @@ function NumberComponent(props) {
198
194
  as_currency: currency,
199
195
  mask_options,
200
196
  currency_mask: {
201
- currencyDisplay
197
+ currencyDisplay,
198
+ decimalLimit
202
199
  }
203
200
  };
204
201
  }
@@ -224,6 +221,7 @@ function NumberComponent(props) {
224
221
  const inputProps = _objectSpread(_objectSpread(_objectSpread({
225
222
  id,
226
223
  name,
224
+ inner_ref: innerRef,
227
225
  autoComplete,
228
226
  className: classnames(`dnb-forms-field-number__input dnb-input--${size}`, inputClassName),
229
227
  step: showStepControls ? step : undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"Number.js","names":["React","useContext","useMemo","useCallback","InputMasked","HelpButton","Button","SharedContext","FieldBlockContext","classnames","FieldBlock","useFieldProps","pickSpacingProps","clamp","useErrorMessage","useTranslation","DataContext","defaultMinimum","Number","MIN_SAFE_INTEGER","defaultMaximum","MAX_SAFE_INTEGER","NumberComponent","props","_props$width","_dataContext$props2","_sharedContext$transl","_sharedContext$transl2","dataContext","fieldBlockContext","sharedContext","translations","currency","currencyDisplay","percent","mask","step","decimalLimit","allowNegative","disallowLeadingZeroes","prefix","prefixProp","suffix","suffixProp","showStepControls","errorMessages","path","required","Field","errorRequired","minimum","NumberField","errorMinimum","maximum","errorMaximum","exclusiveMinimum","errorExclusiveMinimum","exclusiveMaximum","errorExclusiveMaximum","multipleOf","errorMultipleOf","schema","_props$schema","_props$minimum","_props$maximum","type","toInput","external","undefined","fromInput","value","numberValue","emptyValue","preparedProps","_objectSpread","valueType","width","composition","id","name","className","inputClassName","autoComplete","layout","placeholder","label","labelDescription","startWith","disabled","htmlAttributes","info","warning","error","hasError","help","size","align","handleFocus","handleBlur","handleChange","handleSubmit","onKeyDownHandler","event","_dataContext$props","isolate","key","_event$preventDefault","preventDefault","call","persist","fieldBlockProps","contentClassName","forId","contentWidth","increaseClickHandler","increaseProps","variant","icon","tabIndex","onClick","title","translation","Slider","addTitle","replace","String","decreaseClickHandler","decreaseProps","subtractTitle","maskProps","mask_options","as_currency","currency_mask","as_percent","as_number","number_mask","ariaParams","role","inputProps","onKeyDown","onFocus","onBlur","onChange","status","stretch","Boolean","createElement","content","_extends","asFieldset","left","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Number/Number.tsx"],"sourcesContent":["import React, { useContext, useMemo, useCallback } from 'react'\nimport { InputMasked, HelpButton, Button } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport type { InputAlign, InputSize } from '../../../../components/Input'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldProps,\n FieldHelpProps,\n AllJSONSchemaVersions,\n CustomErrorMessages,\n FieldBlockWidth,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { ButtonProps, ButtonSize } from '../../../../components/Button'\nimport { clamp } from '../../../../components/slider/SliderHelpers'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\nimport DataContext from '../../DataContext/Context'\n\ninterface ErrorMessages extends CustomErrorMessages {\n required?: string\n schema?: string\n minimum?: string\n maximum?: string\n exclusiveMinimum?: string\n exclusiveMaximum?: string\n multipleOf?: string\n}\n\nexport type Props = FieldHelpProps &\n FieldProps<number, undefined | number, ErrorMessages> & {\n inputClassName?: string\n currency?: InputMaskedProps['as_currency']\n currencyDisplay?: 'code' | 'symbol' | 'narrowSymbol' | 'name'\n percent?: InputMaskedProps['as_percent']\n mask?: InputMaskedProps['mask']\n step?: number\n startWith?: number\n // Formatting\n decimalLimit?: number\n allowNegative?: boolean\n disallowLeadingZeroes?: boolean\n prefix?: string | ((value: number) => string)\n suffix?: string | ((value: number) => string)\n // Validation\n minimum?: number // aka greater than or equal to\n maximum?: number // aka less than or equal to\n exclusiveMinimum?: number // aka greater than\n exclusiveMaximum?: number // aka less than\n multipleOf?: number\n // Styling\n size?: InputSize\n width?: FieldBlockWidth\n align?: InputAlign\n showStepControls?: boolean\n }\n\nconst defaultMinimum = Number.MIN_SAFE_INTEGER\nconst defaultMaximum = Number.MAX_SAFE_INTEGER\n\nfunction NumberComponent(props: Props) {\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const sharedContext = useContext(SharedContext)\n const translations = useTranslation()\n\n const {\n currency,\n currencyDisplay,\n percent,\n mask,\n step = 1,\n decimalLimit = 12,\n allowNegative = true,\n disallowLeadingZeroes = false,\n prefix: prefixProp,\n suffix: suffixProp,\n showStepControls,\n } = props\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.Field.errorRequired,\n minimum: translations.NumberField.errorMinimum,\n maximum: translations.NumberField.errorMaximum,\n exclusiveMinimum: translations.NumberField.errorExclusiveMinimum,\n exclusiveMaximum: translations.NumberField.errorExclusiveMaximum,\n multipleOf: translations.NumberField.errorMultipleOf,\n })\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'number',\n minimum: props.minimum ?? defaultMinimum,\n maximum: props.maximum ?? defaultMaximum,\n exclusiveMinimum: props.exclusiveMinimum,\n exclusiveMaximum: props.exclusiveMaximum,\n multipleOf: props.multipleOf,\n },\n [\n props.schema,\n props.minimum,\n props.maximum,\n props.exclusiveMinimum,\n props.exclusiveMaximum,\n props.multipleOf,\n ]\n )\n\n const toInput = useCallback((external: number | undefined) => {\n if (external === undefined) {\n return null\n }\n return external\n }, [])\n const fromInput = useCallback(\n ({ value, numberValue }: { value: string; numberValue: number }) => {\n if (value === '') {\n return props.emptyValue\n }\n return numberValue\n },\n [props.emptyValue]\n )\n\n const preparedProps: Props = {\n valueType: 'number',\n ...props,\n errorMessages,\n schema,\n toInput,\n fromInput,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'medium'),\n }\n\n const {\n id,\n name,\n className,\n inputClassName,\n autoComplete,\n layout,\n placeholder,\n label,\n labelDescription,\n value,\n startWith = null,\n minimum = defaultMinimum,\n maximum = defaultMaximum,\n disabled,\n htmlAttributes,\n info,\n warning,\n error,\n hasError,\n help,\n size,\n width,\n align,\n handleFocus,\n handleBlur,\n handleChange,\n } = useFieldProps(preparedProps)\n\n const { handleSubmit } = dataContext ?? {}\n const onKeyDownHandler = useCallback(\n ({ event }: { event: React.KeyboardEvent<HTMLInputElement> }) => {\n if (dataContext?.props?.isolate && event.key === 'Enter') {\n handleSubmit() // So we commit the data to the outer context\n event.preventDefault?.() // And prevent the default form submit\n }\n\n if (!showStepControls) {\n return\n }\n\n let numberValue = null\n\n switch (event.key) {\n case 'ArrowUp':\n numberValue = clamp(\n (value ?? startWith) + step,\n minimum,\n maximum\n )\n break\n case 'ArrowDown':\n numberValue = clamp(\n (value ?? startWith) - step,\n minimum,\n maximum\n )\n break\n }\n\n if (numberValue !== null) {\n event.persist()\n event.preventDefault()\n handleChange({ numberValue })\n }\n },\n [\n dataContext?.props?.isolate,\n handleChange,\n handleSubmit,\n maximum,\n minimum,\n showStepControls,\n startWith,\n step,\n value,\n ]\n )\n\n const fieldBlockProps = {\n className: classnames(\n 'dnb-forms-field-number',\n 'dnb-input__border--tokens', // Used by \"dnb-input__border\"\n className\n ),\n contentClassName: classnames(\n 'dnb-forms-field-number__contents',\n showStepControls && 'dnb-forms-field-number__contents--has-controls',\n hasError && 'dnb-input__status--error', // Also used by \"dnb-input__border\"\n disabled && 'dnb-input--disabled' // Also used by \"dnb-input__border\"\n ),\n forId: id,\n layout,\n label,\n labelDescription,\n info,\n warning,\n error,\n disabled,\n width:\n (width === 'stretch' || fieldBlockContext?.composition) &&\n !showStepControls\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n const increaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) + step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const increaseProps: ButtonProps = showStepControls && {\n 'aria-hidden': true,\n className: 'dnb-button--control-after',\n variant: 'secondary',\n icon: 'add',\n size: (size || 'small') as ButtonSize,\n tabIndex: -1,\n disabled: disabled || value >= maximum,\n onClick: increaseClickHandler,\n title: sharedContext?.translation.Slider.addTitle?.replace(\n '%s',\n String(value + step)\n ),\n }\n\n const decreaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) - step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const decreaseProps: ButtonProps = showStepControls && {\n ...increaseProps,\n className: 'dnb-button--control-before',\n icon: 'subtract',\n size: (size || 'small') as ButtonSize,\n disabled: disabled || value <= minimum,\n onClick: decreaseClickHandler,\n title: sharedContext?.translation.Slider.subtractTitle?.replace(\n '%s',\n String(value - step)\n ),\n }\n\n const prefix =\n typeof prefixProp === 'function' ? prefixProp(value) : prefixProp\n const suffix =\n typeof suffixProp === 'function' ? suffixProp(value) : suffixProp\n\n const maskProps: Partial<InputMaskedProps> = useMemo(() => {\n const mask_options = {\n prefix,\n suffix,\n decimalLimit,\n allowNegative,\n disallowLeadingZeroes,\n }\n\n if (currency) {\n return {\n as_currency: currency,\n mask_options,\n currency_mask: {\n currencyDisplay,\n },\n }\n }\n\n if (percent) {\n return {\n as_percent: percent,\n mask_options,\n }\n }\n\n // Custom mask based on props\n return {\n as_number: true,\n mask,\n number_mask: {\n ...mask_options,\n },\n }\n }, [\n currency,\n currencyDisplay,\n decimalLimit,\n mask,\n percent,\n prefix,\n suffix,\n allowNegative,\n disallowLeadingZeroes,\n ])\n\n const ariaParams = showStepControls && {\n role: 'spinbutton',\n 'aria-valuemin': String(minimum),\n 'aria-valuemax': String(maximum),\n 'aria-valuenow': String(value), // without it, VO will read an invalid value\n 'aria-valuetext': String(value), // without it, VO will read %\n }\n\n const inputProps = {\n id,\n name,\n autoComplete,\n className: classnames(\n 'dnb-forms-field-number__input',\n `dnb-input--${size}`,\n inputClassName\n ),\n step: showStepControls ? step : undefined,\n placeholder,\n value,\n align: showStepControls ? 'center' : align,\n ...maskProps,\n onKeyDown: onKeyDownHandler,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onChange: handleChange,\n disabled,\n ...htmlAttributes,\n status: hasError ? 'error' : undefined,\n stretch: Boolean(\n width !== undefined || fieldBlockContext?.composition\n ),\n suffix:\n help && !showStepControls ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n ...ariaParams,\n }\n\n if (showStepControls) {\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <span className=\"dnb-input__border dnb-input__border--root\">\n {<Button {...decreaseProps} />}\n <InputMasked {...inputProps} />\n {<Button {...increaseProps} />}\n </span>\n {help && (\n <HelpButton left=\"x-small\" title={help.title}>\n {help.content}\n </HelpButton>\n )}\n </FieldBlock>\n )\n }\n\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <InputMasked {...inputProps} />\n </FieldBlock>\n )\n}\n\nNumberComponent._supportsSpacingProps = true\nexport default NumberComponent\n"],"mappings":"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"}
1
+ {"version":3,"file":"Number.js","names":["React","useContext","useMemo","useCallback","useEffect","useRef","InputMasked","HelpButton","Button","SharedContext","FieldBlockContext","classnames","FieldBlock","useFieldProps","pickSpacingProps","clamp","DataContext","defaultMinimum","Number","MIN_SAFE_INTEGER","defaultMaximum","MAX_SAFE_INTEGER","NumberComponent","props","_props$width","_props$innerRef","_dataContext$props2","_sharedContext$transl","_sharedContext$transl2","dataContext","fieldBlockContext","sharedContext","currency","currencyDisplay","percent","mask","step","decimalLimit","allowNegative","disallowLeadingZeroes","prefix","prefixProp","suffix","suffixProp","showStepControls","schema","_props$schema","_props$minimum","_props$maximum","type","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","toInput","external","undefined","fromInput","value","numberValue","emptyValue","ref","preparedProps","_objectSpread","valueType","width","composition","innerRef","id","name","className","inputClassName","autoComplete","layout","placeholder","label","labelDescription","startWith","disabled","htmlAttributes","info","warning","error","hasError","help","size","align","handleFocus","handleBlur","handleChange","setDisplayValue","_innerRef$current","path","current","handleSubmit","onKeyDownHandler","event","_dataContext$props","isolate","key","_event$preventDefault","preventDefault","call","persist","fieldBlockProps","contentClassName","forId","contentWidth","increaseClickHandler","increaseProps","variant","icon","tabIndex","onClick","title","translation","Slider","addTitle","replace","String","decreaseClickHandler","decreaseProps","subtractTitle","maskProps","mask_options","as_currency","currency_mask","as_percent","as_number","number_mask","ariaParams","role","inputProps","inner_ref","onKeyDown","onFocus","onBlur","onChange","status","stretch","Boolean","createElement","content","_extends","asFieldset","left","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Number/Number.tsx"],"sourcesContent":["import React, {\n useContext,\n useMemo,\n useCallback,\n useEffect,\n useRef,\n} from 'react'\nimport { InputMasked, HelpButton, Button } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport type { InputAlign, InputSize } from '../../../../components/Input'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldProps,\n FieldHelpProps,\n AllJSONSchemaVersions,\n FieldBlockWidth,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { ButtonProps, ButtonSize } from '../../../../components/Button'\nimport { clamp } from '../../../../components/slider/SliderHelpers'\nimport DataContext from '../../DataContext/Context'\n\nexport type Props = FieldHelpProps &\n FieldProps<number, undefined | number> & {\n innerRef?: React.RefObject<HTMLInputElement>\n inputClassName?: string\n currency?: InputMaskedProps['as_currency']\n currencyDisplay?: 'code' | 'symbol' | 'narrowSymbol' | 'name'\n percent?: InputMaskedProps['as_percent']\n mask?: InputMaskedProps['mask']\n step?: number\n startWith?: number\n // Formatting\n decimalLimit?: number\n allowNegative?: boolean\n disallowLeadingZeroes?: boolean\n prefix?: string | ((value: number) => string)\n suffix?: string | ((value: number) => string)\n // Validation\n minimum?: number // aka greater than or equal to\n maximum?: number // aka less than or equal to\n exclusiveMinimum?: number // aka greater than\n exclusiveMaximum?: number // aka less than\n multipleOf?: number\n // Styling\n size?: InputSize\n width?: FieldBlockWidth\n align?: InputAlign\n showStepControls?: boolean\n }\n\nconst defaultMinimum = Number.MIN_SAFE_INTEGER\nconst defaultMaximum = Number.MAX_SAFE_INTEGER\n\nfunction NumberComponent(props: Props) {\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const sharedContext = useContext(SharedContext)\n\n const {\n currency,\n currencyDisplay,\n percent,\n mask,\n step = 1,\n decimalLimit = 12,\n allowNegative = true,\n disallowLeadingZeroes = false,\n prefix: prefixProp,\n suffix: suffixProp,\n showStepControls,\n } = props\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'number',\n minimum: props.minimum ?? defaultMinimum,\n maximum: props.maximum ?? defaultMaximum,\n exclusiveMinimum: props.exclusiveMinimum,\n exclusiveMaximum: props.exclusiveMaximum,\n multipleOf: props.multipleOf,\n },\n [\n props.schema,\n props.minimum,\n props.maximum,\n props.exclusiveMinimum,\n props.exclusiveMaximum,\n props.multipleOf,\n ]\n )\n\n const toInput = useCallback((external: number | undefined) => {\n if (external === undefined) {\n return null\n }\n return external\n }, [])\n const fromInput = useCallback(\n ({ value, numberValue }: { value: string; numberValue: number }) => {\n if (value === '') {\n return props.emptyValue\n }\n return numberValue\n },\n [props.emptyValue]\n )\n\n const ref = useRef<HTMLInputElement>()\n const preparedProps: Props = {\n valueType: 'number',\n ...props,\n schema,\n toInput,\n fromInput,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'medium'),\n innerRef: props.innerRef ?? ref,\n }\n\n const {\n id,\n name,\n className,\n innerRef,\n inputClassName,\n autoComplete,\n layout,\n placeholder,\n label,\n labelDescription,\n value,\n startWith = null,\n minimum = defaultMinimum,\n maximum = defaultMaximum,\n disabled,\n htmlAttributes,\n info,\n warning,\n error,\n hasError,\n help,\n size,\n width,\n align,\n handleFocus,\n handleBlur,\n handleChange,\n setDisplayValue,\n } = useFieldProps(preparedProps)\n\n useEffect(() => {\n setDisplayValue(props.path, innerRef.current?.value)\n }, [innerRef, props.path, setDisplayValue, value])\n\n const { handleSubmit } = dataContext ?? {}\n const onKeyDownHandler = useCallback(\n ({ event }: { event: React.KeyboardEvent<HTMLInputElement> }) => {\n if (dataContext?.props?.isolate && event.key === 'Enter') {\n handleSubmit() // So we commit the data to the outer context\n event.preventDefault?.() // And prevent the default form submit\n }\n\n if (!showStepControls) {\n return\n }\n\n let numberValue = null\n\n switch (event.key) {\n case 'ArrowUp':\n numberValue = clamp(\n (value ?? startWith) + step,\n minimum,\n maximum\n )\n break\n case 'ArrowDown':\n numberValue = clamp(\n (value ?? startWith) - step,\n minimum,\n maximum\n )\n break\n }\n\n if (numberValue !== null) {\n event.persist()\n event.preventDefault()\n handleChange({ numberValue })\n }\n },\n [\n dataContext?.props?.isolate,\n handleChange,\n handleSubmit,\n maximum,\n minimum,\n showStepControls,\n startWith,\n step,\n value,\n ]\n )\n\n const fieldBlockProps = {\n className: classnames(\n 'dnb-forms-field-number',\n 'dnb-input__border--tokens', // Used by \"dnb-input__border\"\n className\n ),\n contentClassName: classnames(\n 'dnb-forms-field-number__contents',\n showStepControls && 'dnb-forms-field-number__contents--has-controls',\n hasError && 'dnb-input__status--error', // Also used by \"dnb-input__border\"\n disabled && 'dnb-input--disabled' // Also used by \"dnb-input__border\"\n ),\n forId: id,\n layout,\n label,\n labelDescription,\n info,\n warning,\n error,\n disabled,\n width:\n (width === 'stretch' || fieldBlockContext?.composition) &&\n !showStepControls\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n const increaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) + step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const increaseProps: ButtonProps = showStepControls && {\n 'aria-hidden': true,\n className: 'dnb-button--control-after',\n variant: 'secondary',\n icon: 'add',\n size: (size || 'small') as ButtonSize,\n tabIndex: -1,\n disabled: disabled || value >= maximum,\n onClick: increaseClickHandler,\n title: sharedContext?.translation.Slider.addTitle?.replace(\n '%s',\n String(value + step)\n ),\n }\n\n const decreaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) - step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const decreaseProps: ButtonProps = showStepControls && {\n ...increaseProps,\n className: 'dnb-button--control-before',\n icon: 'subtract',\n size: (size || 'small') as ButtonSize,\n disabled: disabled || value <= minimum,\n onClick: decreaseClickHandler,\n title: sharedContext?.translation.Slider.subtractTitle?.replace(\n '%s',\n String(value - step)\n ),\n }\n\n const prefix =\n typeof prefixProp === 'function' ? prefixProp(value) : prefixProp\n const suffix =\n typeof suffixProp === 'function' ? suffixProp(value) : suffixProp\n\n const maskProps: Partial<InputMaskedProps> = useMemo(() => {\n const mask_options = {\n prefix,\n suffix,\n decimalLimit,\n allowNegative,\n disallowLeadingZeroes,\n }\n\n if (currency) {\n return {\n as_currency: currency,\n mask_options,\n currency_mask: {\n currencyDisplay,\n decimalLimit,\n },\n }\n }\n\n if (percent) {\n return {\n as_percent: percent,\n mask_options,\n }\n }\n\n // Custom mask based on props\n return {\n as_number: true,\n mask,\n number_mask: {\n ...mask_options,\n },\n }\n }, [\n currency,\n currencyDisplay,\n decimalLimit,\n mask,\n percent,\n prefix,\n suffix,\n allowNegative,\n disallowLeadingZeroes,\n ])\n\n const ariaParams = showStepControls && {\n role: 'spinbutton',\n 'aria-valuemin': String(minimum),\n 'aria-valuemax': String(maximum),\n 'aria-valuenow': String(value), // without it, VO will read an invalid value\n 'aria-valuetext': String(value), // without it, VO will read %\n }\n\n const inputProps = {\n id,\n name,\n inner_ref: innerRef,\n autoComplete,\n className: classnames(\n 'dnb-forms-field-number__input',\n `dnb-input--${size}`,\n inputClassName\n ),\n step: showStepControls ? step : undefined,\n placeholder,\n value,\n align: showStepControls ? 'center' : align,\n ...maskProps,\n onKeyDown: onKeyDownHandler,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onChange: handleChange,\n disabled,\n ...htmlAttributes,\n status: hasError ? 'error' : undefined,\n stretch: Boolean(\n width !== undefined || fieldBlockContext?.composition\n ),\n suffix:\n help && !showStepControls ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n ...ariaParams,\n }\n\n if (showStepControls) {\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <span className=\"dnb-input__border dnb-input__border--root\">\n {<Button {...decreaseProps} />}\n <InputMasked {...inputProps} />\n {<Button {...increaseProps} />}\n </span>\n {help && (\n <HelpButton left=\"x-small\" title={help.title}>\n {help.content}\n </HelpButton>\n )}\n </FieldBlock>\n )\n }\n\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <InputMasked {...inputProps} />\n </FieldBlock>\n )\n}\n\nNumberComponent._supportsSpacingProps = true\nexport default NumberComponent\n"],"mappings":"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"}
@@ -3,7 +3,6 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
3
3
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
4
  import React, { useCallback, useMemo } from 'react';
5
5
  import StringField from '../String';
6
- import useErrorMessage from '../../hooks/useErrorMessage';
7
6
  import useTranslation from '../../hooks/useTranslation';
8
7
  function OrganizationNumber(props) {
9
8
  const translations = useTranslation().OrganizationNumber;
@@ -13,12 +12,10 @@ function OrganizationNumber(props) {
13
12
  errorRequired,
14
13
  label
15
14
  } = translations;
16
- const errorMessages = useErrorMessage(props.path, props.errorMessages, {
17
- required: errorRequired,
18
- pattern: errorOrgNo,
19
- errorOrgNo,
20
- errorOrgNoLength
21
- });
15
+ const errorMessages = useMemo(() => _objectSpread({
16
+ 'Field.errorRequired': errorRequired,
17
+ 'Field.errorPattern': errorOrgNo
18
+ }, props.errorMessages), [errorRequired, errorOrgNo, props.errorMessages]);
22
19
  const organizationNumberValidator = useCallback(value => {
23
20
  if (value !== undefined) {
24
21
  const orgNoIs9Digits = (value === null || value === void 0 ? void 0 : value.length) === 9;
@@ -1 +1 @@
1
- {"version":3,"file":"OrganizationNumber.js","names":["React","useCallback","useMemo","StringField","useErrorMessage","useTranslation","OrganizationNumber","props","translations","errorOrgNo","errorOrgNoLength","errorRequired","label","errorMessages","path","required","pattern","organizationNumberValidator","value","undefined","orgNoIs9Digits","length","Error","isValidOrgNumber","validate","omitMask","validator","onBlurValidator","labelProp","width","mask","onBlurValidatorToUse","StringFieldProps","_objectSpread","className","inputMode","exportValidators","createElement","digits","checkDigit","sum","i","parseInt","charAt","result","finalCheckDigit","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/OrganizationNumber/OrganizationNumber.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\nimport { Validator } from '../../types'\n\nexport type Props = Omit<StringFieldProps, 'onBlurValidator'> & {\n validate?: boolean\n omitMask?: boolean\n onBlurValidator?: Validator<string> | false\n}\n\nfunction OrganizationNumber(props: Props) {\n const translations = useTranslation().OrganizationNumber\n const { errorOrgNo, errorOrgNoLength, errorRequired, label } =\n translations\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: errorRequired,\n pattern: errorOrgNo,\n errorOrgNo,\n errorOrgNoLength,\n })\n\n const organizationNumberValidator = useCallback(\n (value: string) => {\n if (value !== undefined) {\n const orgNoIs9Digits = value?.length === 9\n\n if (!orgNoIs9Digits) {\n return Error(errorOrgNoLength)\n }\n if (orgNoIs9Digits && !isValidOrgNumber(value)) {\n return Error(errorOrgNo)\n }\n }\n },\n [errorOrgNo, errorOrgNoLength]\n )\n\n const {\n validate = true,\n omitMask,\n validator,\n onBlurValidator = organizationNumberValidator,\n label: labelProp,\n width,\n } = props\n\n const mask = useMemo(\n () =>\n omitMask\n ? [/\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/]\n : [/\\d/, /\\d/, /\\d/, ' ', /\\d/, /\\d/, /\\d/, ' ', /\\d/, /\\d/, /\\d/],\n [omitMask]\n )\n\n const onBlurValidatorToUse =\n onBlurValidator === false ? undefined : onBlurValidator\n\n const StringFieldProps: StringFieldProps = {\n ...props,\n className: 'dnb-forms-field-organization-number',\n label: labelProp ?? label,\n errorMessages,\n mask,\n width: width ?? 'medium',\n inputMode: 'numeric',\n validator: validate ? validator : undefined,\n onBlurValidator: validate ? onBlurValidatorToUse : undefined,\n exportValidators: { organizationNumberValidator },\n }\n\n return <StringField {...StringFieldProps} />\n}\n\n/**\n * Source:\n * www.brreg.no/om-oss/registrene-vare/om-enhetsregisteret/organisasjonsnummeret/\n */\nfunction isValidOrgNumber(digits: string) {\n let checkDigit = 2\n let sum = 0\n\n for (let i = digits.length - 2; i >= 0; --i) {\n sum += parseInt(digits.charAt(i)) * checkDigit\n\n checkDigit += 1\n\n if (checkDigit > 7) {\n checkDigit = 2\n }\n }\n\n const result = 11 - (sum % 11)\n const finalCheckDigit = result === 11 ? 0 : result\n\n return parseInt(digits.charAt(digits.length - 1), 10) === finalCheckDigit\n}\n\nOrganizationNumber._supportsSpacingProps = true\nexport default OrganizationNumber\n"],"mappings":"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"}
1
+ {"version":3,"file":"OrganizationNumber.js","names":["React","useCallback","useMemo","StringField","useTranslation","OrganizationNumber","props","translations","errorOrgNo","errorOrgNoLength","errorRequired","label","errorMessages","_objectSpread","organizationNumberValidator","value","undefined","orgNoIs9Digits","length","Error","isValidOrgNumber","validate","omitMask","validator","onBlurValidator","labelProp","width","mask","onBlurValidatorToUse","StringFieldProps","className","inputMode","exportValidators","createElement","digits","checkDigit","sum","i","parseInt","charAt","result","finalCheckDigit","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/OrganizationNumber/OrganizationNumber.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport useTranslation from '../../hooks/useTranslation'\nimport { Validator } from '../../types'\n\nexport type Props = Omit<StringFieldProps, 'onBlurValidator'> & {\n validate?: boolean\n omitMask?: boolean\n onBlurValidator?: Validator<string> | false\n}\n\nfunction OrganizationNumber(props: Props) {\n const translations = useTranslation().OrganizationNumber\n const { errorOrgNo, errorOrgNoLength, errorRequired, label } =\n translations\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorOrgNo,\n ...props.errorMessages,\n }),\n [errorRequired, errorOrgNo, props.errorMessages]\n )\n\n const organizationNumberValidator = useCallback(\n (value: string) => {\n if (value !== undefined) {\n const orgNoIs9Digits = value?.length === 9\n\n if (!orgNoIs9Digits) {\n return Error(errorOrgNoLength)\n }\n if (orgNoIs9Digits && !isValidOrgNumber(value)) {\n return Error(errorOrgNo)\n }\n }\n },\n [errorOrgNo, errorOrgNoLength]\n )\n\n const {\n validate = true,\n omitMask,\n validator,\n onBlurValidator = organizationNumberValidator,\n label: labelProp,\n width,\n } = props\n\n const mask = useMemo(\n () =>\n omitMask\n ? [/\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/]\n : [/\\d/, /\\d/, /\\d/, ' ', /\\d/, /\\d/, /\\d/, ' ', /\\d/, /\\d/, /\\d/],\n [omitMask]\n )\n\n const onBlurValidatorToUse =\n onBlurValidator === false ? undefined : onBlurValidator\n\n const StringFieldProps: StringFieldProps = {\n ...props,\n className: 'dnb-forms-field-organization-number',\n label: labelProp ?? label,\n errorMessages,\n mask,\n width: width ?? 'medium',\n inputMode: 'numeric',\n validator: validate ? validator : undefined,\n onBlurValidator: validate ? onBlurValidatorToUse : undefined,\n exportValidators: { organizationNumberValidator },\n }\n\n return <StringField {...StringFieldProps} />\n}\n\n/**\n * Source:\n * www.brreg.no/om-oss/registrene-vare/om-enhetsregisteret/organisasjonsnummeret/\n */\nfunction isValidOrgNumber(digits: string) {\n let checkDigit = 2\n let sum = 0\n\n for (let i = digits.length - 2; i >= 0; --i) {\n sum += parseInt(digits.charAt(i)) * checkDigit\n\n checkDigit += 1\n\n if (checkDigit > 7) {\n checkDigit = 2\n }\n }\n\n const result = 11 - (sum % 11)\n const finalCheckDigit = result === 11 ? 0 : result\n\n return parseInt(digits.charAt(digits.length - 1), 10) === finalCheckDigit\n}\n\nOrganizationNumber._supportsSpacingProps = true\nexport default OrganizationNumber\n"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { InputMaskedProps } from '../../../../components/InputMasked';
2
3
  import { type CountryType } from '../../constants/countries';
3
4
  import { Props as StringFieldProps } from '../String';
@@ -14,6 +15,7 @@ export type Props = FieldHelpProps & FieldPropsWithExtraValue<string, {
14
15
  numberMask?: InputMaskedProps['mask'];
15
16
  pattern?: StringFieldProps['pattern'];
16
17
  width?: 'large' | 'stretch';
18
+ inputRef?: React.RefObject<HTMLInputElement>;
17
19
  omitCountryCodeField?: boolean;
18
20
  onCountryCodeChange?: (value: string | undefined) => void;
19
21
  onNumberChange?: (value: string | undefined) => void;
@@ -4,7 +4,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
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
- import React, { useMemo, useContext, useCallback } from 'react';
7
+ import React, { useMemo, useContext, useCallback, useEffect, useRef } from 'react';
8
8
  import { Autocomplete, Flex } from '../../../../components';
9
9
  import classnames from 'classnames';
10
10
  import countries from '../../constants/countries';
@@ -14,25 +14,28 @@ import { useFieldProps } from '../../hooks';
14
14
  import { pickSpacingProps } from '../../../../components/flex/utils';
15
15
  import SharedContext from '../../../../shared/Context';
16
16
  import { countryFilter, getCountryData } from '../SelectCountry';
17
- import useErrorMessage from '../../hooks/useErrorMessage';
18
17
  import useTranslation from '../../hooks/useTranslation';
19
18
  const defaultCountryCode = '+47';
20
19
  const defaultPlaceholder = '00 00 00 00';
21
20
  const defaultMask = [/\d/, /\d/, ' ', /\d/, /\d/, ' ', /\d/, /\d/, ' ', /\d/, /\d/];
22
21
  function PhoneNumber(props) {
23
- var _sharedContext$locale, _countryCodeRef$curre;
22
+ var _sharedContext$locale, _props$inputRef, _countryCodeRef$curre;
24
23
  const sharedContext = useContext(SharedContext);
25
- const translations = useTranslation();
24
+ const {
25
+ label: defaultLabel,
26
+ countryCodeLabel: defaultCountryCodeLabel,
27
+ errorRequired
28
+ } = useTranslation().PhoneNumber;
26
29
  const lang = (_sharedContext$locale = sharedContext.locale) === null || _sharedContext$locale === void 0 ? void 0 : _sharedContext$locale.split('-')[0];
27
- const countryCodeRef = React.useRef(props === null || props === void 0 ? void 0 : props.emptyValue);
28
- const numberRef = React.useRef(props === null || props === void 0 ? void 0 : props.emptyValue);
29
- const dataRef = React.useRef(null);
30
- const langRef = React.useRef(lang);
31
- const wasFilled = React.useRef(false);
32
- const errorMessages = useErrorMessage(props.path, props.errorMessages, {
33
- required: translations.PhoneNumber.errorRequired,
34
- pattern: translations.PhoneNumber.errorRequired
35
- });
30
+ const countryCodeRef = useRef(props === null || props === void 0 ? void 0 : props.emptyValue);
31
+ const numberRef = useRef(props === null || props === void 0 ? void 0 : props.emptyValue);
32
+ const dataRef = useRef(null);
33
+ const langRef = useRef(lang);
34
+ const wasFilled = useRef(false);
35
+ const errorMessages = useMemo(() => _objectSpread({
36
+ 'Field.errorRequired': errorRequired,
37
+ 'Field.errorPattern': errorRequired
38
+ }, props.errorMessages), [errorRequired, props.errorMessages]);
36
39
  const validateRequired = useCallback((value, {
37
40
  required,
38
41
  isChanged,
@@ -52,6 +55,20 @@ function PhoneNumber(props) {
52
55
  }
53
56
  return undefined;
54
57
  }, []);
58
+ const fromExternal = useCallback(external => {
59
+ const [, phoneNumber] = splitValue(external);
60
+ if (!phoneNumber && !props.omitCountryCodeField) {
61
+ return countryCodeRef.current;
62
+ }
63
+ return external;
64
+ }, [props.omitCountryCodeField]);
65
+ const toEvent = useCallback(value => {
66
+ const [, phoneNumber] = splitValue(value);
67
+ if (!phoneNumber) {
68
+ return props.emptyValue;
69
+ }
70
+ return value;
71
+ }, [props.emptyValue]);
55
72
  const schema = useMemo(() => {
56
73
  var _props$schema;
57
74
  return (_props$schema = props.schema) !== null && _props$schema !== void 0 ? _props$schema : {
@@ -63,20 +80,23 @@ function PhoneNumber(props) {
63
80
  schema,
64
81
  errorMessages
65
82
  };
83
+ const ref = useRef();
66
84
  const preparedProps = _objectSpread(_objectSpread(_objectSpread({}, props), defaultProps), {}, {
67
85
  validateRequired,
68
86
  fromExternal,
69
- toEvent
87
+ toEvent,
88
+ inputRef: (_props$inputRef = props.inputRef) !== null && _props$inputRef !== void 0 ? _props$inputRef : ref
70
89
  });
71
90
  const {
72
91
  value,
73
92
  className,
93
+ inputRef,
74
94
  countryCodeFieldClassName,
75
95
  numberFieldClassName,
76
96
  countryCodePlaceholder,
77
97
  placeholder,
78
98
  countryCodeLabel,
79
- label = translations.PhoneNumber.label,
99
+ label = defaultLabel,
80
100
  numberMask,
81
101
  countries: ccFilter = 'Prioritized',
82
102
  emptyValue,
@@ -94,24 +114,16 @@ function PhoneNumber(props) {
94
114
  omitCountryCodeField,
95
115
  setHasFocus,
96
116
  handleChange,
117
+ setDisplayValue,
97
118
  onCountryCodeChange,
98
119
  onNumberChange,
99
120
  filterCountries
100
121
  } = useFieldProps(preparedProps);
101
- function fromExternal(external) {
102
- const [, phoneNumber] = splitValue(external);
103
- if (!phoneNumber && !props.omitCountryCodeField) {
104
- return countryCodeRef.current;
105
- }
106
- return external;
107
- }
108
- function toEvent(value) {
109
- const [, phoneNumber] = splitValue(value);
110
- if (!phoneNumber) {
111
- return emptyValue;
112
- }
113
- return value;
114
- }
122
+ useEffect(() => {
123
+ var _inputRef$current;
124
+ const number = (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.value;
125
+ setDisplayValue(props.path, (number === null || number === void 0 ? void 0 : number.length) > 0 ? joinValue([countryCodeRef.current, number]) : undefined);
126
+ }, [inputRef, props.path, setDisplayValue, value]);
115
127
  const filter = useCallback(country => {
116
128
  return countryFilter(country, filterCountries, ccFilter);
117
129
  }, [ccFilter, filterCountries]);
@@ -157,7 +169,7 @@ function PhoneNumber(props) {
157
169
  updateCurrentDataSet();
158
170
  }
159
171
  }, [value, props.value, lang, updateCurrentDataSet]);
160
- const prevCountryCodeRef = React.useRef(countryCodeRef.current);
172
+ const prevCountryCodeRef = useRef(countryCodeRef.current);
161
173
  const handleCountryCodeChange = useCallback(({
162
174
  data
163
175
  }) => {
@@ -231,7 +243,7 @@ function PhoneNumber(props) {
231
243
  mode: "async",
232
244
  placeholder: countryCodePlaceholder,
233
245
  label_direction: "vertical",
234
- label: countryCodeLabel !== null && countryCodeLabel !== void 0 ? countryCodeLabel : translations.PhoneNumber.countryCodeLabel,
246
+ label: countryCodeLabel !== null && countryCodeLabel !== void 0 ? countryCodeLabel : defaultCountryCodeLabel,
235
247
  data: dataRef.current,
236
248
  value: countryCodeRef.current,
237
249
  status: hasError ? 'error' : undefined,
@@ -259,6 +271,7 @@ function PhoneNumber(props) {
259
271
  onBlur: handleOnBlur,
260
272
  onChange: handleNumberChange,
261
273
  value: numberRef.current,
274
+ innerRef: inputRef,
262
275
  info: info,
263
276
  warning: warning,
264
277
  error: error,