@dnb/eufemia 10.70.0 → 10.71.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 (478) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/cjs/components/autocomplete/AutocompleteDocs.js +3 -3
  3. package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -1
  4. package/cjs/components/avatar/Avatar.js +3 -8
  5. package/cjs/components/avatar/Avatar.js.map +1 -1
  6. package/cjs/components/checkbox/CheckboxDocs.js +2 -2
  7. package/cjs/components/checkbox/CheckboxDocs.js.map +1 -1
  8. package/cjs/components/date-picker/DatePickerContext.d.ts +0 -1
  9. package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
  10. package/cjs/components/date-picker/DatePickerDocs.js +1 -1
  11. package/cjs/components/date-picker/DatePickerDocs.js.map +1 -1
  12. package/cjs/components/date-picker/DatePickerInput.js +110 -136
  13. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  14. package/cjs/components/date-picker/DatePickerProvider.js +0 -2
  15. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  16. package/cjs/components/date-picker/hooks/useDates.d.ts +0 -2
  17. package/cjs/components/date-picker/hooks/useDates.js +5 -5
  18. package/cjs/components/date-picker/hooks/useDates.js.map +1 -1
  19. package/cjs/components/date-picker/style/dnb-date-picker.css +4 -0
  20. package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
  21. package/cjs/components/date-picker/style/dnb-date-picker.scss +3 -0
  22. package/cjs/components/dialog/DialogDocs.js +7 -2
  23. package/cjs/components/dialog/DialogDocs.js.map +1 -1
  24. package/cjs/components/dropdown/Dropdown.d.ts +20 -20
  25. package/cjs/components/dropdown/DropdownDocs.d.ts +1 -0
  26. package/cjs/components/dropdown/DropdownDocs.js +158 -1
  27. package/cjs/components/dropdown/DropdownDocs.js.map +1 -1
  28. package/cjs/components/flex/ContainerDocs.js +1 -1
  29. package/cjs/components/flex/ContainerDocs.js.map +1 -1
  30. package/cjs/components/flex/ItemDocs.d.ts +2 -0
  31. package/cjs/components/flex/ItemDocs.js +39 -0
  32. package/cjs/components/flex/ItemDocs.js.map +1 -0
  33. package/cjs/components/grid/ItemDocs.d.ts +2 -0
  34. package/cjs/components/grid/ItemDocs.js +19 -0
  35. package/cjs/components/grid/ItemDocs.js.map +1 -0
  36. package/cjs/components/input/InputDocs.js +3 -3
  37. package/cjs/components/input/InputDocs.js.map +1 -1
  38. package/cjs/components/input-masked/InputMasked.d.ts +0 -3
  39. package/cjs/components/input-masked/InputMaskedDocs.d.ts +1 -0
  40. package/cjs/components/input-masked/InputMaskedDocs.js +58 -1
  41. package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -1
  42. package/cjs/components/input-masked/InputMaskedHooks.js +11 -7
  43. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  44. package/cjs/components/input-masked/InputMaskedUtils.d.ts +1 -1
  45. package/cjs/components/input-masked/InputMaskedUtils.js +2 -1
  46. package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
  47. package/cjs/components/input-masked/MultiInputMaskedDocs.d.ts +2 -0
  48. package/cjs/components/input-masked/MultiInputMaskedDocs.js +70 -1
  49. package/cjs/components/input-masked/MultiInputMaskedDocs.js.map +1 -1
  50. package/cjs/components/input-masked/style/dnb-input-masked.css +9 -0
  51. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  52. package/cjs/components/input-masked/style/dnb-input-masked.scss +12 -0
  53. package/cjs/components/input-masked/text-mask/InputModeNumber.d.ts +8 -0
  54. package/cjs/components/input-masked/text-mask/InputModeNumber.js +32 -9
  55. package/cjs/components/input-masked/text-mask/InputModeNumber.js.map +1 -1
  56. package/cjs/components/input-masked/text-mask/adjustCaretPosition.d.ts +2 -1
  57. package/cjs/components/input-masked/text-mask/adjustCaretPosition.js +3 -2
  58. package/cjs/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
  59. package/cjs/components/input-masked/text-mask/createTextMaskInputElement.js +9 -3
  60. package/cjs/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  61. package/cjs/components/modal/ModalDocs.d.ts +5 -0
  62. package/cjs/components/modal/ModalDocs.js +201 -0
  63. package/cjs/components/modal/ModalDocs.js.map +1 -0
  64. package/cjs/components/radio/RadioDocs.js +2 -2
  65. package/cjs/components/radio/RadioDocs.js.map +1 -1
  66. package/cjs/components/section/Section.js +2 -7
  67. package/cjs/components/section/Section.js.map +1 -1
  68. package/cjs/components/section/SectionDocs.js +1 -1
  69. package/cjs/components/section/SectionDocs.js.map +1 -1
  70. package/cjs/components/slider/SliderDocs.js +2 -2
  71. package/cjs/components/slider/SliderDocs.js.map +1 -1
  72. package/cjs/components/space/SpaceDocs.d.ts +3 -0
  73. package/cjs/components/space/SpaceDocs.js +61 -0
  74. package/cjs/components/space/SpaceDocs.js.map +1 -0
  75. package/cjs/components/switch/SwitchDocs.js +2 -2
  76. package/cjs/components/switch/SwitchDocs.js.map +1 -1
  77. package/cjs/components/textarea/TextareaDocs.js +3 -3
  78. package/cjs/components/textarea/TextareaDocs.js.map +1 -1
  79. package/cjs/components/toggle-button/ToggleButtonGroupDocs.js +1 -1
  80. package/cjs/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -1
  81. package/cjs/components/tooltip/TooltipDocs.js +1 -1
  82. package/cjs/components/tooltip/TooltipDocs.js.map +1 -1
  83. package/cjs/components/upload/Upload.js +6 -3
  84. package/cjs/components/upload/Upload.js.map +1 -1
  85. package/cjs/components/upload/UploadDocs.d.ts +1 -0
  86. package/cjs/components/upload/UploadDocs.js +43 -1
  87. package/cjs/components/upload/UploadDocs.js.map +1 -1
  88. package/cjs/components/upload/UploadFileListCell.js +32 -12
  89. package/cjs/components/upload/UploadFileListCell.js.map +1 -1
  90. package/cjs/components/upload/types.d.ts +7 -0
  91. package/cjs/components/upload/types.js.map +1 -1
  92. package/cjs/extensions/forms/DataContext/At/AtDocs.d.ts +2 -0
  93. package/cjs/extensions/forms/DataContext/At/AtDocs.js +24 -0
  94. package/cjs/extensions/forms/DataContext/At/AtDocs.js.map +1 -0
  95. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  96. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  97. package/cjs/extensions/forms/Field/Number/Number.js +3 -6
  98. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  99. package/cjs/extensions/forms/Field/Password/PasswordDocs.d.ts +1 -0
  100. package/cjs/extensions/forms/Field/Password/PasswordDocs.js +14 -2
  101. package/cjs/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  102. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +6 -4
  103. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +33 -25
  104. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  105. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +2 -2
  106. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +8 -3
  107. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  108. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  109. package/cjs/extensions/forms/Field/String/StringDocs.js +1 -1
  110. package/cjs/extensions/forms/Field/String/StringDocs.js.map +1 -1
  111. package/cjs/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  112. package/cjs/extensions/forms/Field/Upload/Upload.js +3 -1
  113. package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
  114. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +11 -4
  115. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  116. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  117. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  118. package/cjs/extensions/forms/Form/ButtonRow/ButtonRowDocs.d.ts +2 -0
  119. package/cjs/extensions/forms/Form/ButtonRow/ButtonRowDocs.js +19 -0
  120. package/cjs/extensions/forms/Form/ButtonRow/ButtonRowDocs.js.map +1 -0
  121. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +1 -1
  122. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  123. package/cjs/extensions/forms/Wizard/Buttons/ButtonsDocs.d.ts +2 -0
  124. package/cjs/extensions/forms/Wizard/Buttons/ButtonsDocs.js +14 -0
  125. package/cjs/extensions/forms/Wizard/Buttons/ButtonsDocs.js.map +1 -0
  126. package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js +1 -1
  127. package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  128. package/cjs/extensions/forms/hooks/useFieldProps.js +55 -18
  129. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  130. package/cjs/extensions/forms/types.d.ts +8 -5
  131. package/cjs/extensions/forms/types.js.map +1 -1
  132. package/cjs/extensions/forms/utils/FormError.d.ts +20 -16
  133. package/cjs/extensions/forms/utils/FormError.js.map +1 -1
  134. package/cjs/shared/Eufemia.d.ts +1 -1
  135. package/cjs/shared/Eufemia.js +2 -2
  136. package/cjs/shared/Eufemia.js.map +1 -1
  137. package/cjs/shared/helpers.d.ts +1 -0
  138. package/cjs/shared/helpers.js +7 -0
  139. package/cjs/shared/helpers.js.map +1 -1
  140. package/cjs/shared/locales/sv-SE.js +2 -2
  141. package/cjs/shared/locales/sv-SE.js.map +1 -1
  142. package/cjs/style/core/scopes.scss +1 -1
  143. package/cjs/style/dnb-ui-basis.css +1 -1
  144. package/cjs/style/dnb-ui-basis.min.css +1 -1
  145. package/cjs/style/dnb-ui-body.css +1 -1
  146. package/cjs/style/dnb-ui-body.min.css +1 -1
  147. package/cjs/style/dnb-ui-components.css +13 -0
  148. package/cjs/style/dnb-ui-components.min.css +1 -1
  149. package/cjs/style/dnb-ui-core.css +1 -1
  150. package/cjs/style/dnb-ui-core.min.css +1 -1
  151. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +13 -0
  152. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  153. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +13 -0
  154. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  155. package/cjs/style/themes/theme-ui/ui-theme-components.css +13 -0
  156. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  157. package/components/autocomplete/AutocompleteDocs.js +3 -3
  158. package/components/autocomplete/AutocompleteDocs.js.map +1 -1
  159. package/components/avatar/Avatar.js +1 -6
  160. package/components/avatar/Avatar.js.map +1 -1
  161. package/components/checkbox/CheckboxDocs.js +2 -2
  162. package/components/checkbox/CheckboxDocs.js.map +1 -1
  163. package/components/date-picker/DatePickerContext.d.ts +0 -1
  164. package/components/date-picker/DatePickerContext.js.map +1 -1
  165. package/components/date-picker/DatePickerDocs.js +1 -1
  166. package/components/date-picker/DatePickerDocs.js.map +1 -1
  167. package/components/date-picker/DatePickerInput.js +111 -137
  168. package/components/date-picker/DatePickerInput.js.map +1 -1
  169. package/components/date-picker/DatePickerProvider.js +0 -2
  170. package/components/date-picker/DatePickerProvider.js.map +1 -1
  171. package/components/date-picker/hooks/useDates.d.ts +0 -2
  172. package/components/date-picker/hooks/useDates.js +3 -5
  173. package/components/date-picker/hooks/useDates.js.map +1 -1
  174. package/components/date-picker/style/dnb-date-picker.css +4 -0
  175. package/components/date-picker/style/dnb-date-picker.min.css +1 -1
  176. package/components/date-picker/style/dnb-date-picker.scss +3 -0
  177. package/components/dialog/DialogDocs.js +7 -2
  178. package/components/dialog/DialogDocs.js.map +1 -1
  179. package/components/dropdown/Dropdown.d.ts +20 -20
  180. package/components/dropdown/DropdownDocs.d.ts +1 -0
  181. package/components/dropdown/DropdownDocs.js +157 -0
  182. package/components/dropdown/DropdownDocs.js.map +1 -1
  183. package/components/flex/ContainerDocs.js +1 -1
  184. package/components/flex/ContainerDocs.js.map +1 -1
  185. package/components/flex/ItemDocs.d.ts +2 -0
  186. package/components/flex/ItemDocs.js +33 -0
  187. package/components/flex/ItemDocs.js.map +1 -0
  188. package/components/grid/ItemDocs.d.ts +2 -0
  189. package/components/grid/ItemDocs.js +13 -0
  190. package/components/grid/ItemDocs.js.map +1 -0
  191. package/components/input/InputDocs.js +3 -3
  192. package/components/input/InputDocs.js.map +1 -1
  193. package/components/input-masked/InputMasked.d.ts +0 -3
  194. package/components/input-masked/InputMaskedDocs.d.ts +1 -0
  195. package/components/input-masked/InputMaskedDocs.js +57 -0
  196. package/components/input-masked/InputMaskedDocs.js.map +1 -1
  197. package/components/input-masked/InputMaskedHooks.js +11 -7
  198. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  199. package/components/input-masked/InputMaskedUtils.d.ts +1 -1
  200. package/components/input-masked/InputMaskedUtils.js +2 -1
  201. package/components/input-masked/InputMaskedUtils.js.map +1 -1
  202. package/components/input-masked/MultiInputMaskedDocs.d.ts +2 -0
  203. package/components/input-masked/MultiInputMaskedDocs.js +69 -0
  204. package/components/input-masked/MultiInputMaskedDocs.js.map +1 -1
  205. package/components/input-masked/style/dnb-input-masked.css +9 -0
  206. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  207. package/components/input-masked/style/dnb-input-masked.scss +12 -0
  208. package/components/input-masked/text-mask/InputModeNumber.d.ts +8 -0
  209. package/components/input-masked/text-mask/InputModeNumber.js +32 -9
  210. package/components/input-masked/text-mask/InputModeNumber.js.map +1 -1
  211. package/components/input-masked/text-mask/adjustCaretPosition.d.ts +2 -1
  212. package/components/input-masked/text-mask/adjustCaretPosition.js +3 -2
  213. package/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
  214. package/components/input-masked/text-mask/createTextMaskInputElement.js +9 -3
  215. package/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  216. package/components/modal/ModalDocs.d.ts +5 -0
  217. package/components/modal/ModalDocs.js +195 -0
  218. package/components/modal/ModalDocs.js.map +1 -0
  219. package/components/radio/RadioDocs.js +2 -2
  220. package/components/radio/RadioDocs.js.map +1 -1
  221. package/components/section/Section.js +1 -6
  222. package/components/section/Section.js.map +1 -1
  223. package/components/section/SectionDocs.js +1 -1
  224. package/components/section/SectionDocs.js.map +1 -1
  225. package/components/slider/SliderDocs.js +2 -2
  226. package/components/slider/SliderDocs.js.map +1 -1
  227. package/components/space/SpaceDocs.d.ts +3 -0
  228. package/components/space/SpaceDocs.js +55 -0
  229. package/components/space/SpaceDocs.js.map +1 -0
  230. package/components/switch/SwitchDocs.js +2 -2
  231. package/components/switch/SwitchDocs.js.map +1 -1
  232. package/components/textarea/TextareaDocs.js +3 -3
  233. package/components/textarea/TextareaDocs.js.map +1 -1
  234. package/components/toggle-button/ToggleButtonGroupDocs.js +1 -1
  235. package/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -1
  236. package/components/tooltip/TooltipDocs.js +1 -1
  237. package/components/tooltip/TooltipDocs.js.map +1 -1
  238. package/components/upload/Upload.js +6 -3
  239. package/components/upload/Upload.js.map +1 -1
  240. package/components/upload/UploadDocs.d.ts +1 -0
  241. package/components/upload/UploadDocs.js +42 -0
  242. package/components/upload/UploadDocs.js.map +1 -1
  243. package/components/upload/UploadFileListCell.js +32 -12
  244. package/components/upload/UploadFileListCell.js.map +1 -1
  245. package/components/upload/types.d.ts +7 -0
  246. package/components/upload/types.js.map +1 -1
  247. package/es/components/autocomplete/AutocompleteDocs.js +3 -3
  248. package/es/components/autocomplete/AutocompleteDocs.js.map +1 -1
  249. package/es/components/avatar/Avatar.js +1 -6
  250. package/es/components/avatar/Avatar.js.map +1 -1
  251. package/es/components/checkbox/CheckboxDocs.js +2 -2
  252. package/es/components/checkbox/CheckboxDocs.js.map +1 -1
  253. package/es/components/date-picker/DatePickerContext.d.ts +0 -1
  254. package/es/components/date-picker/DatePickerContext.js.map +1 -1
  255. package/es/components/date-picker/DatePickerDocs.js +1 -1
  256. package/es/components/date-picker/DatePickerDocs.js.map +1 -1
  257. package/es/components/date-picker/DatePickerInput.js +103 -130
  258. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  259. package/es/components/date-picker/DatePickerProvider.js +0 -2
  260. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  261. package/es/components/date-picker/hooks/useDates.d.ts +0 -2
  262. package/es/components/date-picker/hooks/useDates.js +3 -5
  263. package/es/components/date-picker/hooks/useDates.js.map +1 -1
  264. package/es/components/date-picker/style/dnb-date-picker.css +4 -0
  265. package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
  266. package/es/components/date-picker/style/dnb-date-picker.scss +3 -0
  267. package/es/components/dialog/DialogDocs.js +7 -2
  268. package/es/components/dialog/DialogDocs.js.map +1 -1
  269. package/es/components/dropdown/Dropdown.d.ts +20 -20
  270. package/es/components/dropdown/DropdownDocs.d.ts +1 -0
  271. package/es/components/dropdown/DropdownDocs.js +157 -0
  272. package/es/components/dropdown/DropdownDocs.js.map +1 -1
  273. package/es/components/flex/ContainerDocs.js +1 -1
  274. package/es/components/flex/ContainerDocs.js.map +1 -1
  275. package/es/components/flex/ItemDocs.d.ts +2 -0
  276. package/es/components/flex/ItemDocs.js +33 -0
  277. package/es/components/flex/ItemDocs.js.map +1 -0
  278. package/es/components/grid/ItemDocs.d.ts +2 -0
  279. package/es/components/grid/ItemDocs.js +13 -0
  280. package/es/components/grid/ItemDocs.js.map +1 -0
  281. package/es/components/input/InputDocs.js +3 -3
  282. package/es/components/input/InputDocs.js.map +1 -1
  283. package/es/components/input-masked/InputMasked.d.ts +0 -3
  284. package/es/components/input-masked/InputMaskedDocs.d.ts +1 -0
  285. package/es/components/input-masked/InputMaskedDocs.js +57 -0
  286. package/es/components/input-masked/InputMaskedDocs.js.map +1 -1
  287. package/es/components/input-masked/InputMaskedHooks.js +11 -7
  288. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  289. package/es/components/input-masked/InputMaskedUtils.d.ts +1 -1
  290. package/es/components/input-masked/InputMaskedUtils.js +2 -1
  291. package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
  292. package/es/components/input-masked/MultiInputMaskedDocs.d.ts +2 -0
  293. package/es/components/input-masked/MultiInputMaskedDocs.js +69 -0
  294. package/es/components/input-masked/MultiInputMaskedDocs.js.map +1 -1
  295. package/es/components/input-masked/style/dnb-input-masked.css +9 -0
  296. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  297. package/es/components/input-masked/style/dnb-input-masked.scss +12 -0
  298. package/es/components/input-masked/text-mask/InputModeNumber.d.ts +8 -0
  299. package/es/components/input-masked/text-mask/InputModeNumber.js +39 -9
  300. package/es/components/input-masked/text-mask/InputModeNumber.js.map +1 -1
  301. package/es/components/input-masked/text-mask/adjustCaretPosition.d.ts +2 -1
  302. package/es/components/input-masked/text-mask/adjustCaretPosition.js +3 -2
  303. package/es/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
  304. package/es/components/input-masked/text-mask/createTextMaskInputElement.js +9 -3
  305. package/es/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  306. package/es/components/modal/ModalDocs.d.ts +5 -0
  307. package/es/components/modal/ModalDocs.js +191 -0
  308. package/es/components/modal/ModalDocs.js.map +1 -0
  309. package/es/components/radio/RadioDocs.js +2 -2
  310. package/es/components/radio/RadioDocs.js.map +1 -1
  311. package/es/components/section/Section.js +1 -6
  312. package/es/components/section/Section.js.map +1 -1
  313. package/es/components/section/SectionDocs.js +1 -1
  314. package/es/components/section/SectionDocs.js.map +1 -1
  315. package/es/components/slider/SliderDocs.js +2 -2
  316. package/es/components/slider/SliderDocs.js.map +1 -1
  317. package/es/components/space/SpaceDocs.d.ts +3 -0
  318. package/es/components/space/SpaceDocs.js +55 -0
  319. package/es/components/space/SpaceDocs.js.map +1 -0
  320. package/es/components/switch/SwitchDocs.js +2 -2
  321. package/es/components/switch/SwitchDocs.js.map +1 -1
  322. package/es/components/textarea/TextareaDocs.js +3 -3
  323. package/es/components/textarea/TextareaDocs.js.map +1 -1
  324. package/es/components/toggle-button/ToggleButtonGroupDocs.js +1 -1
  325. package/es/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -1
  326. package/es/components/tooltip/TooltipDocs.js +1 -1
  327. package/es/components/tooltip/TooltipDocs.js.map +1 -1
  328. package/es/components/upload/Upload.js +6 -3
  329. package/es/components/upload/Upload.js.map +1 -1
  330. package/es/components/upload/UploadDocs.d.ts +1 -0
  331. package/es/components/upload/UploadDocs.js +42 -0
  332. package/es/components/upload/UploadDocs.js.map +1 -1
  333. package/es/components/upload/UploadFileListCell.js +32 -12
  334. package/es/components/upload/UploadFileListCell.js.map +1 -1
  335. package/es/components/upload/types.d.ts +7 -0
  336. package/es/components/upload/types.js.map +1 -1
  337. package/es/extensions/forms/DataContext/At/AtDocs.d.ts +2 -0
  338. package/es/extensions/forms/DataContext/At/AtDocs.js +18 -0
  339. package/es/extensions/forms/DataContext/At/AtDocs.js.map +1 -0
  340. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  341. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  342. package/es/extensions/forms/Field/Number/Number.js +3 -6
  343. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  344. package/es/extensions/forms/Field/Password/PasswordDocs.d.ts +1 -0
  345. package/es/extensions/forms/Field/Password/PasswordDocs.js +13 -1
  346. package/es/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  347. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +6 -4
  348. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +24 -16
  349. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  350. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +2 -2
  351. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +7 -2
  352. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  353. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  354. package/es/extensions/forms/Field/String/StringDocs.js +1 -1
  355. package/es/extensions/forms/Field/String/StringDocs.js.map +1 -1
  356. package/es/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  357. package/es/extensions/forms/Field/Upload/Upload.js +3 -1
  358. package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
  359. package/es/extensions/forms/FieldBlock/FieldBlock.js +11 -4
  360. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  361. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  362. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  363. package/es/extensions/forms/Form/ButtonRow/ButtonRowDocs.d.ts +2 -0
  364. package/es/extensions/forms/Form/ButtonRow/ButtonRowDocs.js +13 -0
  365. package/es/extensions/forms/Form/ButtonRow/ButtonRowDocs.js.map +1 -0
  366. package/es/extensions/forms/Form/Isolation/IsolationDocs.js +1 -1
  367. package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  368. package/es/extensions/forms/Wizard/Buttons/ButtonsDocs.d.ts +2 -0
  369. package/es/extensions/forms/Wizard/Buttons/ButtonsDocs.js +8 -0
  370. package/es/extensions/forms/Wizard/Buttons/ButtonsDocs.js.map +1 -0
  371. package/es/extensions/forms/hooks/DataValueWritePropsDocs.js +1 -1
  372. package/es/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  373. package/es/extensions/forms/hooks/useFieldProps.js +56 -19
  374. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  375. package/es/extensions/forms/types.d.ts +8 -5
  376. package/es/extensions/forms/types.js.map +1 -1
  377. package/es/extensions/forms/utils/FormError.d.ts +20 -16
  378. package/es/extensions/forms/utils/FormError.js +1 -0
  379. package/es/extensions/forms/utils/FormError.js.map +1 -1
  380. package/es/shared/Eufemia.d.ts +1 -1
  381. package/es/shared/Eufemia.js +2 -2
  382. package/es/shared/Eufemia.js.map +1 -1
  383. package/es/shared/helpers.d.ts +1 -0
  384. package/es/shared/helpers.js +6 -0
  385. package/es/shared/helpers.js.map +1 -1
  386. package/es/shared/locales/sv-SE.js +2 -2
  387. package/es/shared/locales/sv-SE.js.map +1 -1
  388. package/es/style/core/scopes.scss +1 -1
  389. package/es/style/dnb-ui-basis.css +1 -1
  390. package/es/style/dnb-ui-basis.min.css +1 -1
  391. package/es/style/dnb-ui-body.css +1 -1
  392. package/es/style/dnb-ui-body.min.css +1 -1
  393. package/es/style/dnb-ui-components.css +13 -0
  394. package/es/style/dnb-ui-components.min.css +1 -1
  395. package/es/style/dnb-ui-core.css +1 -1
  396. package/es/style/dnb-ui-core.min.css +1 -1
  397. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +13 -0
  398. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  399. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +13 -0
  400. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  401. package/es/style/themes/theme-ui/ui-theme-components.css +13 -0
  402. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  403. package/esm/dnb-ui-basis.min.mjs +1 -1
  404. package/esm/dnb-ui-components.min.mjs +1 -1
  405. package/esm/dnb-ui-elements.min.mjs +1 -1
  406. package/esm/dnb-ui-extensions.min.mjs +1 -1
  407. package/esm/dnb-ui-lib.min.mjs +1 -1
  408. package/extensions/forms/DataContext/At/AtDocs.d.ts +2 -0
  409. package/extensions/forms/DataContext/At/AtDocs.js +18 -0
  410. package/extensions/forms/DataContext/At/AtDocs.js.map +1 -0
  411. package/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  412. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  413. package/extensions/forms/Field/Number/Number.js +3 -6
  414. package/extensions/forms/Field/Number/Number.js.map +1 -1
  415. package/extensions/forms/Field/Password/PasswordDocs.d.ts +1 -0
  416. package/extensions/forms/Field/Password/PasswordDocs.js +13 -1
  417. package/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  418. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +6 -4
  419. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +33 -25
  420. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  421. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +2 -2
  422. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +7 -2
  423. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  424. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  425. package/extensions/forms/Field/String/StringDocs.js +1 -1
  426. package/extensions/forms/Field/String/StringDocs.js.map +1 -1
  427. package/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  428. package/extensions/forms/Field/Upload/Upload.js +3 -1
  429. package/extensions/forms/Field/Upload/Upload.js.map +1 -1
  430. package/extensions/forms/FieldBlock/FieldBlock.js +11 -4
  431. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  432. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  433. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  434. package/extensions/forms/Form/ButtonRow/ButtonRowDocs.d.ts +2 -0
  435. package/extensions/forms/Form/ButtonRow/ButtonRowDocs.js +13 -0
  436. package/extensions/forms/Form/ButtonRow/ButtonRowDocs.js.map +1 -0
  437. package/extensions/forms/Form/Isolation/IsolationDocs.js +1 -1
  438. package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  439. package/extensions/forms/Wizard/Buttons/ButtonsDocs.d.ts +2 -0
  440. package/extensions/forms/Wizard/Buttons/ButtonsDocs.js +8 -0
  441. package/extensions/forms/Wizard/Buttons/ButtonsDocs.js.map +1 -0
  442. package/extensions/forms/hooks/DataValueWritePropsDocs.js +1 -1
  443. package/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  444. package/extensions/forms/hooks/useFieldProps.js +56 -19
  445. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  446. package/extensions/forms/types.d.ts +8 -5
  447. package/extensions/forms/types.js.map +1 -1
  448. package/extensions/forms/utils/FormError.d.ts +20 -16
  449. package/extensions/forms/utils/FormError.js.map +1 -1
  450. package/package.json +1 -1
  451. package/shared/Eufemia.d.ts +1 -1
  452. package/shared/Eufemia.js +2 -2
  453. package/shared/Eufemia.js.map +1 -1
  454. package/shared/helpers.d.ts +1 -0
  455. package/shared/helpers.js +6 -0
  456. package/shared/helpers.js.map +1 -1
  457. package/shared/locales/sv-SE.js +2 -2
  458. package/shared/locales/sv-SE.js.map +1 -1
  459. package/style/core/scopes.scss +1 -1
  460. package/style/dnb-ui-basis.css +1 -1
  461. package/style/dnb-ui-basis.min.css +1 -1
  462. package/style/dnb-ui-body.css +1 -1
  463. package/style/dnb-ui-body.min.css +1 -1
  464. package/style/dnb-ui-components.css +13 -0
  465. package/style/dnb-ui-components.min.css +1 -1
  466. package/style/dnb-ui-core.css +1 -1
  467. package/style/dnb-ui-core.min.css +1 -1
  468. package/style/themes/theme-eiendom/eiendom-theme-components.css +13 -0
  469. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  470. package/style/themes/theme-sbanken/sbanken-theme-components.css +13 -0
  471. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  472. package/style/themes/theme-ui/ui-theme-components.css +13 -0
  473. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  474. package/umd/dnb-ui-basis.min.js +1 -1
  475. package/umd/dnb-ui-components.min.js +1 -1
  476. package/umd/dnb-ui-elements.min.js +1 -1
  477. package/umd/dnb-ui-extensions.min.js +1 -1
  478. package/umd/dnb-ui-lib.min.js +1 -1
@@ -0,0 +1,2 @@
1
+ import { PropertiesTableProps } from '../../../../shared/types';
2
+ export declare const AtProperties: PropertiesTableProps;
@@ -0,0 +1,18 @@
1
+ export const AtProperties = {
2
+ children: {
3
+ doc: 'Features with given path as root for the DataContext.',
4
+ type: 'React.ReactNode',
5
+ status: 'optional'
6
+ },
7
+ path: {
8
+ doc: 'JSON Pointer path to where in the outer DataContext source to point at.',
9
+ type: 'string',
10
+ status: 'optional'
11
+ },
12
+ iterate: {
13
+ doc: 'True to iterate elements at given path based on the source data, including the index in the outer path, instead of just rendering children once.',
14
+ type: 'boolean',
15
+ status: 'optional'
16
+ }
17
+ };
18
+ //# sourceMappingURL=AtDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtDocs.js","names":["AtProperties","children","doc","type","status","path","iterate"],"sources":["../../../../../../src/extensions/forms/DataContext/At/AtDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const AtProperties: PropertiesTableProps = {\n children: {\n doc: 'Features with given path as root for the DataContext.',\n type: 'React.ReactNode',\n status: 'optional',\n },\n path: {\n doc: 'JSON Pointer path to where in the outer DataContext source to point at.',\n type: 'string',\n status: 'optional',\n },\n iterate: {\n doc: 'True to iterate elements at given path based on the source data, including the index in the outer path, instead of just rendering children once.',\n type: 'boolean',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,YAAkC,GAAG;EAChDC,QAAQ,EAAE;IACRC,GAAG,EAAE,uDAAuD;IAC5DC,IAAI,EAAE,iBAAiB;IACvBC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,yEAAyE;IAC9EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,OAAO,EAAE;IACPJ,GAAG,EAAE,kJAAkJ;IACvJC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AACF,CAAC","ignoreList":[]}
@@ -20,7 +20,7 @@ export const ProviderProperties = {
20
20
  status: 'optional'
21
21
  },
22
22
  errorMessages: {
23
- doc: 'Object containing error messages by either type of JSON Pointer path and type.',
23
+ doc: 'Object containing error messages by either type of JSON Pointer path and type. The messages can be a React.ReactNode or a string.',
24
24
  type: 'object',
25
25
  status: 'optional'
26
26
  },
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderDocs.js","names":["ProviderProperties","defaultData","doc","type","status","data","id","schema","errorMessages","minimumAsyncBehaviorTime","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","ajvInstance","transformIn","transformOut","globalStatusId","required","disabled","locale","countryCode","children","ProviderEvents","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onClear"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/ProviderDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const ProviderProperties: PropertiesTableProps = {\n defaultData: {\n doc: 'Default source data, only used if no other source is available, and not leading to updates if changed after mount.',\n type: 'object',\n status: 'optional',\n },\n data: {\n doc: 'Dynamic source data used as both initial data, and updates internal data if changed after mount.',\n type: 'object',\n status: 'optional',\n },\n id: {\n doc: 'Unique id for connecting Form.Handler and helper tools such as Form.useData.',\n type: ['string', 'Function', 'Object', 'React.Context'],\n status: 'optional',\n },\n schema: {\n doc: 'JSON Schema for validation of the data set.',\n type: 'object',\n status: 'optional',\n },\n errorMessages: {\n doc: 'Object containing error messages by either type of JSON Pointer path and type.',\n type: 'object',\n status: 'optional',\n },\n minimumAsyncBehaviorTime: {\n doc: 'Minimum time to display the submit indicator. Default is 1s.',\n type: 'boolean',\n status: 'optional',\n },\n asyncSubmitTimeout: {\n doc: 'The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission. Default is 30s.',\n type: 'boolean',\n status: 'optional',\n },\n scrollTopOnSubmit: {\n doc: 'True for the UI to scroll to the top of the page when data is submitted.',\n type: 'boolean',\n status: 'optional',\n },\n sessionStorageId: {\n doc: 'Key for saving active data to session storage and loading it on mount.',\n type: 'string',\n status: 'optional',\n },\n ajvInstance: {\n doc: 'Provide your own custom Ajv instance. More info in the [Schema validation](/uilib/extensions/forms/Form/schema-validation/#custom-ajv-instance-and-keywords) section.',\n type: 'ajv',\n status: 'optional',\n },\n transformIn: {\n doc: \"Mutate the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\",\n type: 'function',\n status: 'optional',\n },\n transformOut: {\n doc: \"Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\",\n type: 'function',\n status: 'optional',\n },\n globalStatusId: {\n doc: 'If needed, you can define a custom [GlobalStatus](/uilib/components/global-status) id. Defaults to `main`.',\n type: 'string',\n status: 'optional',\n },\n required: {\n doc: 'Make all fields required.',\n type: 'boolean',\n status: 'optional',\n },\n disabled: {\n doc: 'Disable all fields.',\n type: 'boolean',\n status: 'optional',\n },\n locale: {\n doc: 'Locale (language) to use for all nested Eufemia components.',\n type: 'string',\n status: 'optional',\n },\n countryCode: {\n doc: 'Will change the country code for fields supporting `countryCode`. You can also set a path as the value, e.g. `/myCountryCodePath`.',\n type: ['ISO 3166-1 alpha-2', 'Path/JSON Pointer'],\n status: 'optional',\n },\n children: {\n doc: 'Contents.',\n type: 'React.Node',\n status: 'required',\n },\n}\n\nexport const ProviderEvents: PropertiesTableProps = {\n onChange: {\n doc: \"Will be called when a value of a field was changed by the user, with the data set (including the changed value) as argument. When an async function is provided, it will show an indicator on the current label during a field change. Related props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`. You can return an error or an object with these keys `{ info: 'Info message', warning: 'Warning message', error: Error('My error') } as const` in addition to { success: 'saved' } indicate the field was saved. Will emit unvalidated by default and validated when an async function is provided (like `onSubmit`). The second parameter is an object containing the `filterData`, `resetForm` and `clearData` functions.\",\n type: 'function',\n status: 'optional',\n },\n onPathChange: {\n doc: 'Will be called when a value of a field was changed by the user, with the `path` (JSON Pointer) and new `value` as arguments. Can be an async function. Will emit unvalidated by default and validated when `onChange` is an async function.',\n type: 'function',\n status: 'optional',\n },\n onSubmit: {\n doc: \"Will be called (on validation success) when the user submit the form (i.e by clicking a [SubmitButton](/uilib/extensions/forms/Form/SubmitButton) component inside), with the data set as argument. When an async function is provided, it will show an indicator on the submit button during the form submission. All form elements will be disabled during the submit. The indicator will be shown for minimum 1 second. Related props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`. You can return an error or an object with these keys `{ status: 'pending', info: 'Info message', warning: 'Warning message', error: Error('My error') } as const` to be shown in a [FormStatus](/uilib/components/form-status). Will only emit when every validation has passed. The second parameter is an object containing the `filterData`, `reduceToVisibleFields`, `transformData`, `resetForm` and `clearData` functions.\",\n type: 'function',\n status: 'optional',\n },\n onSubmitRequest: {\n doc: 'Will be called when the user tries to submit, but errors stop the data from being submitted. The first parameter is aa object containing the `getErrors` method, returning an array with field errors. Each error object contains the `path`, `error` and `props` of the field. You can use this to log the errors before the form is submitted.',\n type: 'function',\n status: 'optional',\n },\n onSubmitComplete: {\n doc: 'Will be called after onSubmit has finished and had not errors. It supports the same return values as `onSubmit` and will be merged together.',\n type: 'function',\n status: 'optional',\n },\n onClear: {\n doc: 'Will be called when the form is cleared via `Form.clearData` or via the `onSubmit` event (or `onCommit`) argument `{ clearData }`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,kBAAwC,GAAG;EACtDC,WAAW,EAAE;IACXC,GAAG,EAAE,oHAAoH;IACzHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,EAAE,EAAE;IACFJ,GAAG,EAAE,8EAA8E;IACnFC,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,CAAC;IACvDC,MAAM,EAAE;EACV,CAAC;EACDG,MAAM,EAAE;IACNL,GAAG,EAAE,6CAA6C;IAClDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,aAAa,EAAE;IACbN,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,wBAAwB,EAAE;IACxBP,GAAG,EAAE,8DAA8D;IACnEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDM,kBAAkB,EAAE;IAClBR,GAAG,EAAE,oJAAoJ;IACzJC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDO,iBAAiB,EAAE;IACjBT,GAAG,EAAE,0EAA0E;IAC/EC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDQ,gBAAgB,EAAE;IAChBV,GAAG,EAAE,wEAAwE;IAC7EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDS,WAAW,EAAE;IACXX,GAAG,EAAE,uKAAuK;IAC5KC,IAAI,EAAE,KAAK;IACXC,MAAM,EAAE;EACV,CAAC;EACDU,WAAW,EAAE;IACXZ,GAAG,EAAE,6KAA6K;IAClLC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDW,YAAY,EAAE;IACZb,GAAG,EAAE,sLAAsL;IAC3LC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDY,cAAc,EAAE;IACdd,GAAG,EAAE,4GAA4G;IACjHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDa,QAAQ,EAAE;IACRf,GAAG,EAAE,2BAA2B;IAChCC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDc,QAAQ,EAAE;IACRhB,GAAG,EAAE,qBAAqB;IAC1BC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDe,MAAM,EAAE;IACNjB,GAAG,EAAE,6DAA6D;IAClEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDgB,WAAW,EAAE;IACXlB,GAAG,EAAE,oIAAoI;IACzIC,IAAI,EAAE,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;IACjDC,MAAM,EAAE;EACV,CAAC;EACDiB,QAAQ,EAAE;IACRnB,GAAG,EAAE,WAAW;IAChBC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMkB,cAAoC,GAAG;EAClDC,QAAQ,EAAE;IACRrB,GAAG,EAAE,wsBAAwsB;IAC7sBC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDoB,YAAY,EAAE;IACZtB,GAAG,EAAE,6OAA6O;IAClPC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDqB,QAAQ,EAAE;IACRvB,GAAG,EAAE,i4BAAi4B;IACt4BC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDsB,eAAe,EAAE;IACfxB,GAAG,EAAE,kVAAkV;IACvVC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDuB,gBAAgB,EAAE;IAChBzB,GAAG,EAAE,8IAA8I;IACnJC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDwB,OAAO,EAAE;IACP1B,GAAG,EAAE,oIAAoI;IACzIC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"ProviderDocs.js","names":["ProviderProperties","defaultData","doc","type","status","data","id","schema","errorMessages","minimumAsyncBehaviorTime","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","ajvInstance","transformIn","transformOut","globalStatusId","required","disabled","locale","countryCode","children","ProviderEvents","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onClear"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/ProviderDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const ProviderProperties: PropertiesTableProps = {\n defaultData: {\n doc: 'Default source data, only used if no other source is available, and not leading to updates if changed after mount.',\n type: 'object',\n status: 'optional',\n },\n data: {\n doc: 'Dynamic source data used as both initial data, and updates internal data if changed after mount.',\n type: 'object',\n status: 'optional',\n },\n id: {\n doc: 'Unique id for connecting Form.Handler and helper tools such as Form.useData.',\n type: ['string', 'Function', 'Object', 'React.Context'],\n status: 'optional',\n },\n schema: {\n doc: 'JSON Schema for validation of the data set.',\n type: 'object',\n status: 'optional',\n },\n errorMessages: {\n doc: 'Object containing error messages by either type of JSON Pointer path and type. The messages can be a React.ReactNode or a string.',\n type: 'object',\n status: 'optional',\n },\n minimumAsyncBehaviorTime: {\n doc: 'Minimum time to display the submit indicator. Default is 1s.',\n type: 'boolean',\n status: 'optional',\n },\n asyncSubmitTimeout: {\n doc: 'The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission. Default is 30s.',\n type: 'boolean',\n status: 'optional',\n },\n scrollTopOnSubmit: {\n doc: 'True for the UI to scroll to the top of the page when data is submitted.',\n type: 'boolean',\n status: 'optional',\n },\n sessionStorageId: {\n doc: 'Key for saving active data to session storage and loading it on mount.',\n type: 'string',\n status: 'optional',\n },\n ajvInstance: {\n doc: 'Provide your own custom Ajv instance. More info in the [Schema validation](/uilib/extensions/forms/Form/schema-validation/#custom-ajv-instance-and-keywords) section.',\n type: 'ajv',\n status: 'optional',\n },\n transformIn: {\n doc: \"Mutate the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\",\n type: 'function',\n status: 'optional',\n },\n transformOut: {\n doc: \"Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\",\n type: 'function',\n status: 'optional',\n },\n globalStatusId: {\n doc: 'If needed, you can define a custom [GlobalStatus](/uilib/components/global-status) id. Defaults to `main`.',\n type: 'string',\n status: 'optional',\n },\n required: {\n doc: 'Make all fields required.',\n type: 'boolean',\n status: 'optional',\n },\n disabled: {\n doc: 'Disable all fields.',\n type: 'boolean',\n status: 'optional',\n },\n locale: {\n doc: 'Locale (language) to use for all nested Eufemia components.',\n type: 'string',\n status: 'optional',\n },\n countryCode: {\n doc: 'Will change the country code for fields supporting `countryCode`. You can also set a path as the value, e.g. `/myCountryCodePath`.',\n type: ['ISO 3166-1 alpha-2', 'Path/JSON Pointer'],\n status: 'optional',\n },\n children: {\n doc: 'Contents.',\n type: 'React.Node',\n status: 'required',\n },\n}\n\nexport const ProviderEvents: PropertiesTableProps = {\n onChange: {\n doc: \"Will be called when a value of a field was changed by the user, with the data set (including the changed value) as argument. When an async function is provided, it will show an indicator on the current label during a field change. Related props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`. You can return an error or an object with these keys `{ info: 'Info message', warning: 'Warning message', error: Error('My error') } as const` in addition to { success: 'saved' } indicate the field was saved. Will emit unvalidated by default and validated when an async function is provided (like `onSubmit`). The second parameter is an object containing the `filterData`, `resetForm` and `clearData` functions.\",\n type: 'function',\n status: 'optional',\n },\n onPathChange: {\n doc: 'Will be called when a value of a field was changed by the user, with the `path` (JSON Pointer) and new `value` as arguments. Can be an async function. Will emit unvalidated by default and validated when `onChange` is an async function.',\n type: 'function',\n status: 'optional',\n },\n onSubmit: {\n doc: \"Will be called (on validation success) when the user submit the form (i.e by clicking a [SubmitButton](/uilib/extensions/forms/Form/SubmitButton) component inside), with the data set as argument. When an async function is provided, it will show an indicator on the submit button during the form submission. All form elements will be disabled during the submit. The indicator will be shown for minimum 1 second. Related props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`. You can return an error or an object with these keys `{ status: 'pending', info: 'Info message', warning: 'Warning message', error: Error('My error') } as const` to be shown in a [FormStatus](/uilib/components/form-status). Will only emit when every validation has passed. The second parameter is an object containing the `filterData`, `reduceToVisibleFields`, `transformData`, `resetForm` and `clearData` functions.\",\n type: 'function',\n status: 'optional',\n },\n onSubmitRequest: {\n doc: 'Will be called when the user tries to submit, but errors stop the data from being submitted. The first parameter is aa object containing the `getErrors` method, returning an array with field errors. Each error object contains the `path`, `error` and `props` of the field. You can use this to log the errors before the form is submitted.',\n type: 'function',\n status: 'optional',\n },\n onSubmitComplete: {\n doc: 'Will be called after onSubmit has finished and had not errors. It supports the same return values as `onSubmit` and will be merged together.',\n type: 'function',\n status: 'optional',\n },\n onClear: {\n doc: 'Will be called when the form is cleared via `Form.clearData` or via the `onSubmit` event (or `onCommit`) argument `{ clearData }`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"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","ignoreList":[]}
@@ -216,18 +216,15 @@ function NumberComponent(props) {
216
216
  step: showStepControls ? step : undefined,
217
217
  placeholder,
218
218
  value,
219
- align: showStepControls ? 'center' : align
220
- }, maskProps), {}, {
219
+ align: showStepControls ? 'center' : align,
221
220
  onKeyDown: onKeyDownHandler,
222
221
  onFocus: handleFocus,
223
222
  onBlur: handleBlur,
224
223
  onChange: handleChange,
225
- disabled
226
- }, htmlAttributes), {}, {
224
+ disabled,
227
225
  status: hasError ? 'error' : undefined,
228
226
  stretch: Boolean(width)
229
- });
230
- Object.assign(inputProps, ariaParams);
227
+ }, maskProps), htmlAttributes), ariaParams);
231
228
  if (showStepControls) {
232
229
  return React.createElement(FieldBlock, _extends({}, fieldBlockProps, {
233
230
  asFieldset: false
@@ -1 +1 @@
1
- {"version":3,"file":"Number.js","names":["React","useContext","useMemo","useCallback","useEffect","useRef","InputMasked","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","_ref","value","numberValue","emptyValue","ref","preparedProps","_objectSpread","valueType","width","composition","innerRef","id","name","className","inputClassName","autoComplete","placeholder","startWith","disabled","htmlAttributes","hasError","size","align","handleFocus","handleBlur","handleChange","setDisplayValue","_innerRef$current","current","handleSubmit","onKeyDownHandler","e","_dataContext$props","event","isolate","key","_event$preventDefault","preventDefault","call","persist","fieldBlockProps","forId","contentClassName","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","Object","assign","createElement","_extends","asFieldset","_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, Button } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport type {\n InputAlign,\n InputProps,\n InputSize,\n} from '../../../../components/Input'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport classnames from 'classnames'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { FieldProps, AllJSONSchemaVersions } 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 = 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 placeholder,\n value,\n startWith = null,\n minimum = defaultMinimum,\n maximum = defaultMaximum,\n disabled,\n htmlAttributes,\n hasError,\n size,\n width,\n align,\n handleFocus,\n handleBlur,\n handleChange,\n setDisplayValue,\n } = useFieldProps(preparedProps)\n\n useEffect(() => {\n setDisplayValue(innerRef.current?.value)\n }, [innerRef, setDisplayValue, value])\n\n const { handleSubmit } = dataContext ?? {}\n const onKeyDownHandler = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n const { event } = e as unknown as {\n event: React.KeyboardEvent<HTMLInputElement>\n }\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: FieldBlockProps = {\n forId: id,\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 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: 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(width),\n }\n Object.assign(inputProps, ariaParams)\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 </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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","ignoreList":[]}
1
+ {"version":3,"file":"Number.js","names":["React","useContext","useMemo","useCallback","useEffect","useRef","InputMasked","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","_ref","value","numberValue","emptyValue","ref","preparedProps","_objectSpread","valueType","width","composition","innerRef","id","name","className","inputClassName","autoComplete","placeholder","startWith","disabled","htmlAttributes","hasError","size","align","handleFocus","handleBlur","handleChange","setDisplayValue","_innerRef$current","current","handleSubmit","onKeyDownHandler","e","_dataContext$props","event","isolate","key","_event$preventDefault","preventDefault","call","persist","fieldBlockProps","forId","contentClassName","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","_extends","asFieldset","_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, Button } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport type {\n InputAlign,\n InputProps,\n InputSize,\n} from '../../../../components/Input'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport classnames from 'classnames'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { FieldProps, AllJSONSchemaVersions } 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 = 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 placeholder,\n value,\n startWith = null,\n minimum = defaultMinimum,\n maximum = defaultMaximum,\n disabled,\n htmlAttributes,\n hasError,\n size,\n width,\n align,\n handleFocus,\n handleBlur,\n handleChange,\n setDisplayValue,\n } = useFieldProps(preparedProps)\n\n useEffect(() => {\n setDisplayValue(innerRef.current?.value)\n }, [innerRef, setDisplayValue, value])\n\n const { handleSubmit } = dataContext ?? {}\n const onKeyDownHandler = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n const { event } = e as unknown as {\n event: React.KeyboardEvent<HTMLInputElement>\n }\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: FieldBlockProps = {\n forId: id,\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 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: 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 onKeyDown: onKeyDownHandler,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onChange: handleChange,\n disabled,\n status: hasError ? 'error' : undefined,\n stretch: Boolean(width),\n ...maskProps,\n ...htmlAttributes,\n ...(ariaParams as any),\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 </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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","ignoreList":[]}
@@ -1,2 +1,3 @@
1
1
  import { PropertiesTableProps } from '../../../../shared/types';
2
2
  export declare const PasswordProperties: PropertiesTableProps;
3
+ export declare const PasswordEvents: PropertiesTableProps;
@@ -11,7 +11,7 @@ export const PasswordProperties = {
11
11
  },
12
12
  innerRef: {
13
13
  doc: '`ElementRef` passed on to the password `input` element.',
14
- type: 'object',
14
+ type: 'React.RefObject',
15
15
  status: 'optional'
16
16
  },
17
17
  '[Space](/uilib/layout/space/properties)': {
@@ -20,4 +20,16 @@ export const PasswordProperties = {
20
20
  status: 'optional'
21
21
  }
22
22
  };
23
+ export const PasswordEvents = {
24
+ onShowPassword: {
25
+ doc: 'Will be called when the user toggles the password to be visible.',
26
+ type: 'function',
27
+ status: 'optional'
28
+ },
29
+ onHidePassword: {
30
+ doc: 'Will be called when the user toggles the password to be hidden.',
31
+ type: 'function',
32
+ status: 'optional'
33
+ }
34
+ };
23
35
  //# sourceMappingURL=PasswordDocs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PasswordDocs.js","names":["PasswordProperties","pattern","doc","type","status","size","innerRef"],"sources":["../../../../../../src/extensions/forms/Field/Password/PasswordDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const PasswordProperties: PropertiesTableProps = {\n pattern: {\n doc: 'Validation based on regex pattern for the number field e.g. `pattern=\"w{8}d{4}\"`.',\n type: 'string',\n status: 'optional',\n },\n size: {\n doc: 'The sizes you can choose is small (1.5rem), default (2rem), medium (2.5rem) and large (3rem) are supported component sizes. Defaults to default / null. Also, if you define a number like size=\"2\" then it will be forwarded as the input element attribute. Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).',\n type: ['string', 'number'],\n status: 'optional',\n },\n innerRef: {\n doc: '`ElementRef` passed on to the password `input` element.',\n type: 'object',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,kBAAwC,GAAG;EACtDC,OAAO,EAAE;IACPC,GAAG,EAAE,mFAAmF;IACxFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,oWAAoW;IACzWC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDE,QAAQ,EAAE;IACRJ,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"PasswordDocs.js","names":["PasswordProperties","pattern","doc","type","status","size","innerRef","PasswordEvents","onShowPassword","onHidePassword"],"sources":["../../../../../../src/extensions/forms/Field/Password/PasswordDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const PasswordProperties: PropertiesTableProps = {\n pattern: {\n doc: 'Validation based on regex pattern for the number field e.g. `pattern=\"w{8}d{4}\"`.',\n type: 'string',\n status: 'optional',\n },\n size: {\n doc: 'The sizes you can choose is small (1.5rem), default (2rem), medium (2.5rem) and large (3rem) are supported component sizes. Defaults to default / null. Also, if you define a number like size=\"2\" then it will be forwarded as the input element attribute. Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).',\n type: ['string', 'number'],\n status: 'optional',\n },\n innerRef: {\n doc: '`ElementRef` passed on to the password `input` element.',\n type: 'React.RefObject',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const PasswordEvents: PropertiesTableProps = {\n onShowPassword: {\n doc: 'Will be called when the user toggles the password to be visible.',\n type: 'function',\n status: 'optional',\n },\n onHidePassword: {\n doc: 'Will be called when the user toggles the password to be hidden.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,kBAAwC,GAAG;EACtDC,OAAO,EAAE;IACPC,GAAG,EAAE,mFAAmF;IACxFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,oWAAoW;IACzWC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDE,QAAQ,EAAE;IACRJ,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,iBAAiB;IACvBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMG,cAAoC,GAAG;EAClDC,cAAc,EAAE;IACdN,GAAG,EAAE,kEAAkE;IACvEC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDK,cAAc,EAAE;IACdP,GAAG,EAAE,iEAAiE;IACtEC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC","ignoreList":[]}
@@ -4,10 +4,12 @@ import { type CountryType } from '../../constants/countries';
4
4
  import { Props as StringFieldProps } from '../String';
5
5
  import { FieldPropsWithExtraValue } from '../../types';
6
6
  import { CountryFilterSet } from '../SelectCountry';
7
- export type Props = Omit<FieldPropsWithExtraValue<string, {
8
- country: string;
9
- phone: string;
10
- }, undefined | string>, 'layout' | 'layoutOptions'> & {
7
+ export type AdditionalArgs = {
8
+ phoneNumber: string;
9
+ countryCode: string;
10
+ iso: string;
11
+ };
12
+ export type Props = Omit<FieldPropsWithExtraValue<string, AdditionalArgs, undefined | string>, 'layout' | 'layoutOptions'> & {
11
13
  countryCodeFieldClassName?: string;
12
14
  numberFieldClassName?: string;
13
15
  countryCodePlaceholder?: string;
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
+ import "core-js/modules/es.string.replace.js";
4
5
  import "core-js/modules/web.dom-collections.iterator.js";
5
6
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
7
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -28,10 +29,12 @@ function PhoneNumber(props) {
28
29
  } = useTranslation().PhoneNumber;
29
30
  const lang = (_sharedContext$locale = sharedContext.locale) === null || _sharedContext$locale === void 0 ? void 0 : _sharedContext$locale.split('-')[0];
30
31
  const countryCodeRef = useRef(props === null || props === void 0 ? void 0 : props.emptyValue);
32
+ const prevCountryCodeRef = useRef(countryCodeRef.current);
31
33
  const numberRef = useRef(props === null || props === void 0 ? void 0 : props.emptyValue);
32
34
  const dataRef = useRef(null);
33
35
  const langRef = useRef(lang);
34
36
  const wasFilled = useRef(false);
37
+ const currentCountryRef = useRef();
35
38
  const errorMessages = useMemo(() => _objectSpread({
36
39
  'Field.errorRequired': errorRequired,
37
40
  'Field.errorPattern': errorRequired
@@ -143,31 +146,35 @@ function PhoneNumber(props) {
143
146
  makeObject
144
147
  });
145
148
  }, [lang, filter, ccFilter]);
146
- const getEventValues = useCallback(function () {
149
+ const prepareEventValues = useCallback(function () {
150
+ var _currentCountryRef$cu;
147
151
  let {
148
152
  countryCode = countryCodeRef.current || emptyValue,
149
153
  phoneNumber = numberRef.current || emptyValue
150
154
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
155
+ if (!currentCountryRef.current) {
156
+ const cdcVal = countryCode === null || countryCode === void 0 ? void 0 : countryCode.replace(/^\+/, '');
157
+ const item = dataRef.current.find(item => {
158
+ var _item$country;
159
+ const cdc = item === null || item === void 0 ? void 0 : (_item$country = item.country) === null || _item$country === void 0 ? void 0 : _item$country.cdc;
160
+ return cdc === cdcVal;
161
+ });
162
+ currentCountryRef.current = item === null || item === void 0 ? void 0 : item.country;
163
+ }
151
164
  return _objectSpread(_objectSpread({}, !omitCountryCodeField ? {
152
165
  countryCode
153
166
  } : {}), {}, {
154
- phoneNumber
155
- });
156
- }, [omitCountryCodeField, emptyValue]);
157
- const callOnChange = useCallback(_ref2 => {
158
- let {
159
- countryCode = undefined,
160
- phoneNumber = undefined
161
- } = _ref2;
162
- const eventValues = getEventValues({
163
- countryCode,
164
- phoneNumber
167
+ phoneNumber,
168
+ iso: (_currentCountryRef$cu = currentCountryRef.current) === null || _currentCountryRef$cu === void 0 ? void 0 : _currentCountryRef$cu.iso
165
169
  });
170
+ }, [emptyValue, omitCountryCodeField]);
171
+ const callOnChange = useCallback(data => {
172
+ const eventValues = prepareEventValues(data);
166
173
  handleChange(joinValue([eventValues.countryCode, eventValues.phoneNumber]), eventValues);
167
- }, [getEventValues, handleChange]);
174
+ }, [prepareEventValues, handleChange]);
168
175
  const callOnBlurOrFocus = useCallback(hasFocus => {
169
- setHasFocus(hasFocus, undefined, getEventValues());
170
- }, [setHasFocus, getEventValues]);
176
+ setHasFocus(hasFocus, undefined, prepareEventValues());
177
+ }, [prepareEventValues, setHasFocus]);
171
178
  useMemo(() => {
172
179
  const [countryCode, phoneNumber] = splitValue(props.value || value);
173
180
  numberRef.current = phoneNumber;
@@ -179,13 +186,13 @@ function PhoneNumber(props) {
179
186
  updateCurrentDataSet();
180
187
  }
181
188
  }, [value, props.value, lang, updateCurrentDataSet]);
182
- const prevCountryCodeRef = useRef(countryCodeRef.current);
183
- const handleCountryCodeChange = useCallback(_ref3 => {
189
+ const handleCountryCodeChange = useCallback(_ref2 => {
184
190
  var _data$selectedKey;
185
191
  let {
186
192
  data
187
- } = _ref3;
193
+ } = _ref2;
188
194
  const countryCode = countryCodeRef.current = (data === null || data === void 0 ? void 0 : (_data$selectedKey = data.selectedKey) === null || _data$selectedKey === void 0 ? void 0 : _data$selectedKey.trim()) || emptyValue;
195
+ currentCountryRef.current = data === null || data === void 0 ? void 0 : data.country;
189
196
  callOnChange({
190
197
  countryCode
191
198
  });
@@ -204,10 +211,10 @@ function PhoneNumber(props) {
204
211
  const handleOnFocus = useCallback(() => {
205
212
  callOnBlurOrFocus(true);
206
213
  }, [callOnBlurOrFocus]);
207
- const handleCountryCodeFocus = useCallback(_ref4 => {
214
+ const handleCountryCodeFocus = useCallback(_ref3 => {
208
215
  let {
209
216
  updateData
210
- } = _ref4;
217
+ } = _ref3;
211
218
  if (!wasFilled.current) {
212
219
  wasFilled.current = true;
213
220
  updateCurrentDataSet();
@@ -215,20 +222,20 @@ function PhoneNumber(props) {
215
222
  }
216
223
  handleOnFocus();
217
224
  }, [handleOnFocus, updateCurrentDataSet]);
218
- const onTypeHandler = useCallback(_ref5 => {
225
+ const onTypeHandler = useCallback(_ref4 => {
219
226
  var _event$nativeEvent;
220
227
  let {
221
228
  value,
222
229
  updateData,
223
230
  revalidateInputValue,
224
231
  event
225
- } = _ref5;
232
+ } = _ref4;
226
233
  if (typeof (event === null || event === void 0 ? void 0 : (_event$nativeEvent = event.nativeEvent) === null || _event$nativeEvent === void 0 ? void 0 : _event$nativeEvent.data) === 'undefined') {
227
234
  const cdcVal = /\+\d{1,3}\s{1}\d+/.test(value) ? splitValue(value)[0] : value;
228
- const country = countries.find(_ref6 => {
235
+ const country = countries.find(_ref5 => {
229
236
  let {
230
237
  cdc
231
- } = _ref6;
238
+ } = _ref5;
232
239
  return cdc === cdcVal;
233
240
  });
234
241
  if (country !== null && country !== void 0 && country.cdc) {
@@ -312,7 +319,8 @@ function makeObject(country, lang) {
312
319
  return {
313
320
  selectedKey: formatCountryCode(country.cdc),
314
321
  selected_value: `${country.iso} (${formatCountryCode(country.cdc)})`,
315
- content: `${formatCountryCode(country.cdc)} ${(_country$i18n$lang = country.i18n[lang]) !== null && _country$i18n$lang !== void 0 ? _country$i18n$lang : country.i18n.en}`
322
+ content: `${formatCountryCode(country.cdc)} ${(_country$i18n$lang = country.i18n[lang]) !== null && _country$i18n$lang !== void 0 ? _country$i18n$lang : country.i18n.en}`,
323
+ country
316
324
  };
317
325
  }
318
326
  function formatCountryCode(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"PhoneNumber.js","names":["React","useMemo","useContext","useCallback","useEffect","useRef","Autocomplete","Flex","classnames","countries","StringField","FieldBlock","useFieldProps","pickSpacingProps","SharedContext","countryFilter","getCountryData","useTranslation","defaultCountryCode","defaultPlaceholder","defaultMask","PhoneNumber","props","_sharedContext$locale","_props$inputRef","_countryCodeRef$curre","_props$width","sharedContext","label","defaultLabel","countryCodeLabel","defaultCountryCodeLabel","errorRequired","lang","locale","split","countryCodeRef","emptyValue","numberRef","dataRef","langRef","wasFilled","errorMessages","_objectSpread","validateRequired","value","_ref","required","isChanged","error","countryCode","phoneNumber","splitValue","prevCountryCodeRef","current","undefined","fromExternal","external","omitCountryCodeField","toEvent","schema","_props$schema","type","pattern","defaultProps","ref","preparedProps","inputRef","id","path","itemPath","className","countryCodeFieldClassName","numberFieldClassName","countryCodePlaceholder","placeholder","numberMask","ccFilter","info","warning","size","hasError","disabled","width","help","validateInitially","continuousValidation","validateContinuously","validateUnchanged","setHasFocus","handleChange","setDisplayValue","onCountryCodeChange","onNumberChange","filterCountries","_inputRef$current","number","length","joinValue","filter","country","updateCurrentDataSet","formatCountryCode","cdc","sort","makeObject","getEventValues","arguments","callOnChange","_ref2","eventValues","callOnBlurOrFocus","hasFocus","handleCountryCodeChange","_ref3","_data$selectedKey","data","selectedKey","trim","handleNumberChange","handleOnBlur","handleOnFocus","handleCountryCodeFocus","_ref4","updateData","onTypeHandler","_ref5","_event$nativeEvent","revalidateInputValue","event","nativeEvent","cdcVal","test","find","_ref6","window","requestAnimationFrame","isDefault","includes","fieldBlockProps","createElement","Horizontal","align","mode","label_direction","status","on_focus","on_blur","on_change","on_type","independent_width","search_numbers","keep_selection","autoComplete","no_animation","noAnimation","stretch","layout","mask","Array","fill","onFocus","onBlur","onChange","innerRef","breakout","outset","inputMode","_country$i18n$lang","selected_value","iso","content","i18n","en","match","slice","array","Boolean","join","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/PhoneNumber/PhoneNumber.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useEffect,\n useRef,\n} from 'react'\nimport { Autocomplete, Flex } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport classnames from 'classnames'\nimport countries, {\n type CountryLang,\n type CountryType,\n} from '../../constants/countries'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldPropsWithExtraValue,\n AllJSONSchemaVersions,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport SharedContext from '../../../../shared/Context'\nimport {\n countryFilter,\n CountryFilterSet,\n getCountryData,\n} from '../SelectCountry'\nimport useTranslation from '../../hooks/useTranslation'\nimport { DrawerListDataArrayItem } from '../../../../fragments/DrawerList'\n\nexport type Props = Omit<\n FieldPropsWithExtraValue<\n string,\n { country: string; phone: string },\n undefined | string\n >,\n 'layout' | 'layoutOptions'\n> & {\n countryCodeFieldClassName?: string\n numberFieldClassName?: string\n countryCodePlaceholder?: string\n countryCodeLabel?: string\n numberMask?: InputMaskedProps['mask']\n pattern?: StringFieldProps['pattern']\n width?: 'large' | 'stretch'\n inputRef?: React.RefObject<HTMLInputElement>\n omitCountryCodeField?: boolean\n onCountryCodeChange?: (value: string | undefined) => void\n onNumberChange?: (value: string | undefined) => void\n\n /**\n * Defines the countries to filter. Can be `Scandinavia`, `Nordic`, `Europe` or `Prioritized`.\n * Defaults to `Prioritized`.\n */\n countries?: CountryFilterSet\n\n /**\n * Use this prop to filter out certain countries. The function receives the country object and should return a boolean. Returning `false` will omit the country.\n */\n filterCountries?: (country: CountryType) => boolean\n\n /**\n * For internal testing purposes\n */\n noAnimation?: boolean\n} & Pick<StringFieldProps, 'size'>\n\n// Important for the default value to be defined here, and not after the useFieldProps call, to avoid the UI jumping\n// back to +47 once the user empty the field so handleChange send out undefined.\nconst defaultCountryCode = '+47'\nconst defaultPlaceholder = '00 00 00 00'\nconst defaultMask = [\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n]\n\nfunction PhoneNumber(props: Props) {\n const sharedContext = useContext(SharedContext)\n const {\n label: defaultLabel,\n countryCodeLabel: defaultCountryCodeLabel,\n errorRequired,\n } = useTranslation().PhoneNumber\n const lang = sharedContext.locale?.split('-')[0] as CountryLang\n\n const countryCodeRef = useRef<Props['value']>(props?.emptyValue)\n const numberRef = useRef<Props['value']>(props?.emptyValue)\n const dataRef = useRef<Array<DrawerListDataArrayItem>>(null)\n const langRef = useRef<string>(lang)\n const wasFilled = useRef<boolean>(false)\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorRequired,\n ...props.errorMessages,\n }),\n [errorRequired, props.errorMessages]\n )\n\n const validateRequired = useCallback(\n (value: string, { required, isChanged, error }) => {\n if (required) {\n const [countryCode, phoneNumber] = splitValue(value)\n\n if (countryCode !== prevCountryCodeRef.current) {\n if (countryCode) {\n prevCountryCodeRef.current = countryCode\n }\n return undefined\n }\n\n if (isChanged && !phoneNumber) {\n return error\n }\n }\n\n return undefined\n },\n []\n )\n\n const fromExternal = useCallback(\n (external: string) => {\n const [, phoneNumber] = splitValue(external)\n if (!phoneNumber && !props.omitCountryCodeField) {\n return countryCodeRef.current\n }\n return external\n },\n [props.omitCountryCodeField]\n )\n\n const toEvent = useCallback(\n (value: string) => {\n const [, phoneNumber] = splitValue(value)\n if (!phoneNumber) {\n return props.emptyValue\n }\n return value\n },\n [props.emptyValue]\n )\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'string',\n pattern: props.pattern,\n },\n [props.schema, props.pattern]\n )\n const defaultProps: Partial<Props> = {\n schema,\n errorMessages,\n }\n const ref = useRef<HTMLInputElement>()\n const preparedProps: Props = {\n ...props,\n ...defaultProps,\n validateRequired,\n fromExternal,\n toEvent,\n inputRef: props.inputRef ?? ref,\n }\n\n const {\n id,\n path,\n itemPath,\n value,\n className,\n inputRef,\n countryCodeFieldClassName,\n numberFieldClassName,\n countryCodePlaceholder,\n placeholder,\n countryCodeLabel,\n label = defaultLabel,\n numberMask,\n countries: ccFilter = 'Prioritized',\n emptyValue,\n info,\n warning,\n size,\n error,\n hasError,\n disabled,\n width = 'large',\n help,\n required,\n validateInitially,\n continuousValidation,\n validateContinuously,\n validateUnchanged,\n omitCountryCodeField,\n setHasFocus,\n handleChange,\n setDisplayValue,\n onCountryCodeChange,\n onNumberChange,\n filterCountries,\n } = useFieldProps(preparedProps)\n\n useEffect(() => {\n if (path || itemPath) {\n const number = inputRef.current?.value\n setDisplayValue(\n number?.length > 0\n ? joinValue([countryCodeRef.current, number])\n : undefined\n )\n }\n }, [inputRef, itemPath, path, setDisplayValue, value])\n\n const filter = useCallback(\n (country: CountryType) => {\n return countryFilter(country, filterCountries, ccFilter)\n },\n [ccFilter, filterCountries]\n )\n\n const updateCurrentDataSet = useCallback(() => {\n dataRef.current = getCountryData({\n lang,\n filter:\n // Make sure the whole cc list is displayed when cc filter is set to specific region\n ccFilter === 'Prioritized' && !wasFilled.current\n ? (country) =>\n `${formatCountryCode(country.cdc)}` ===\n countryCodeRef.current\n : filter,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n makeObject,\n })\n }, [lang, filter, ccFilter])\n\n const getEventValues = useCallback(\n ({\n countryCode = countryCodeRef.current || emptyValue,\n phoneNumber = numberRef.current || emptyValue,\n } = {}) => {\n return {\n ...(!omitCountryCodeField ? { countryCode } : {}),\n phoneNumber,\n }\n },\n [omitCountryCodeField, emptyValue]\n )\n\n const callOnChange = useCallback(\n ({ countryCode = undefined, phoneNumber = undefined }) => {\n const eventValues = getEventValues({ countryCode, phoneNumber })\n handleChange(\n joinValue([eventValues.countryCode, eventValues.phoneNumber]),\n eventValues\n )\n },\n [getEventValues, handleChange]\n )\n\n const callOnBlurOrFocus = useCallback(\n (hasFocus: boolean) => {\n setHasFocus(hasFocus, undefined, getEventValues())\n },\n [setHasFocus, getEventValues]\n )\n\n /**\n * We do not process the whole country list at the first render.\n * Only when the Autocomplete opens (focus).\n * To achieve this, we use memo instead of effect to update refs in sync.\n *\n * We set or update the data list depending on if the countrycode changes or lang changes.\n * We then update countryCode and phoneNumber when value changes.\n */\n useMemo(() => {\n const [countryCode, phoneNumber] = splitValue(props.value || value)\n numberRef.current = phoneNumber\n\n if (lang !== langRef.current || !wasFilled.current) {\n if (!countryCodeRef.current || countryCode) {\n countryCodeRef.current = countryCode || defaultCountryCode\n }\n langRef.current = lang\n\n updateCurrentDataSet()\n }\n }, [value, props.value, lang, updateCurrentDataSet])\n\n const prevCountryCodeRef = useRef(countryCodeRef.current)\n\n const handleCountryCodeChange = useCallback(\n ({ data }: { data: { selectedKey: string } }) => {\n const countryCode = (countryCodeRef.current =\n data?.selectedKey?.trim() || emptyValue)\n\n callOnChange({ countryCode })\n onCountryCodeChange?.(countryCode)\n },\n [emptyValue, callOnChange, onCountryCodeChange]\n )\n\n const handleNumberChange = useCallback(\n (value: string) => {\n const phoneNumber = (numberRef.current = value || emptyValue)\n\n callOnChange({ phoneNumber })\n onNumberChange?.(phoneNumber)\n },\n [emptyValue, callOnChange, onNumberChange]\n )\n\n const handleOnBlur = useCallback(() => {\n callOnBlurOrFocus(false)\n }, [callOnBlurOrFocus])\n\n const handleOnFocus = useCallback(() => {\n callOnBlurOrFocus(true)\n }, [callOnBlurOrFocus])\n\n const handleCountryCodeFocus = useCallback(\n ({ updateData }) => {\n if (!wasFilled.current) {\n wasFilled.current = true\n updateCurrentDataSet()\n updateData(dataRef.current)\n }\n handleOnFocus()\n },\n [handleOnFocus, updateCurrentDataSet]\n )\n\n const onTypeHandler = useCallback(\n ({ value, updateData, revalidateInputValue, event }) => {\n // Handle browser autofill/autocomplete\n if (typeof event?.nativeEvent?.data === 'undefined') {\n const cdcVal = /\\+\\d{1,3}\\s{1}\\d+/.test(value)\n ? splitValue(value)[0]\n : value\n const country = countries.find(({ cdc }) => cdc === cdcVal)\n if (country?.cdc) {\n const countryCode = (countryCodeRef.current = formatCountryCode(\n country.cdc\n ))\n\n updateCurrentDataSet()\n updateData(dataRef.current)\n callOnChange({ countryCode })\n\n // To ensure correct input value,\n // regardless if there is changed data before or not.\n window.requestAnimationFrame(() => {\n revalidateInputValue()\n })\n }\n }\n },\n [callOnChange, updateCurrentDataSet]\n )\n\n const isDefault = countryCodeRef.current?.includes(defaultCountryCode)\n\n const fieldBlockProps: FieldBlockProps = {\n id,\n className: classnames('dnb-forms-field-phone-number', className),\n width: omitCountryCodeField || props.width ? undefined : width,\n label: undefined,\n help: undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Flex.Horizontal align=\"flex-end\">\n {!omitCountryCodeField && (\n <Autocomplete\n className={classnames(\n 'dnb-forms-field-phone-number__country-code',\n countryCodeFieldClassName\n )}\n mode=\"async\"\n placeholder={countryCodePlaceholder}\n label_direction=\"vertical\"\n label={countryCodeLabel ?? defaultCountryCodeLabel}\n data={dataRef.current}\n value={countryCodeRef.current}\n status={hasError ? 'error' : undefined}\n disabled={disabled}\n on_focus={handleCountryCodeFocus}\n on_blur={handleOnBlur}\n on_change={handleCountryCodeChange}\n on_type={onTypeHandler}\n independent_width\n search_numbers\n keep_selection\n autoComplete=\"tel-country-code\"\n no_animation={props.noAnimation}\n stretch={width === 'stretch'}\n size={size}\n />\n )}\n\n <StringField\n className={classnames(\n 'dnb-forms-field-phone-number__number',\n numberFieldClassName\n )}\n type=\"tel\"\n autoComplete=\"tel-national\"\n emptyValue={emptyValue}\n layout=\"vertical\"\n label={label}\n placeholder={\n placeholder ?? (isDefault ? defaultPlaceholder : undefined)\n }\n mask={\n numberMask ?? (isDefault ? defaultMask : Array(12).fill(/\\d/))\n }\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n onChange={handleNumberChange}\n value={numberRef.current}\n innerRef={inputRef}\n info={info}\n warning={warning}\n error={error}\n disabled={disabled}\n width={\n omitCountryCodeField ? 'medium' : props.width ?? 'stretch'\n }\n help={{ ...help, breakout: false, outset: false }}\n required={required}\n errorMessages={errorMessages}\n validateInitially={validateInitially}\n validateContinuously={\n continuousValidation || validateContinuously\n }\n validateUnchanged={validateUnchanged}\n inputMode=\"tel\"\n size={size}\n />\n </Flex.Horizontal>\n </FieldBlock>\n )\n}\n\nfunction makeObject(country: CountryType, lang: string) {\n return {\n selectedKey: formatCountryCode(country.cdc),\n selected_value: `${country.iso} (${formatCountryCode(country.cdc)})`,\n content: `${formatCountryCode(country.cdc)} ${\n country.i18n[lang] ?? country.i18n.en\n }`,\n }\n}\n\nfunction formatCountryCode(value: string) {\n return `+${value}`\n}\n\nfunction splitValue(value: string) {\n return (\n typeof value === 'string'\n ? value.match(/^(\\+[^ ]+)? ?(.*)$/)\n : [undefined, '', '']\n ).slice(1)\n}\n\nfunction joinValue(array: Array<string>) {\n return array.filter(Boolean).join(' ')\n}\n\nPhoneNumber._supportsSpacingProps = true\nexport default PhoneNumber\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"PhoneNumber.js","names":["React","useMemo","useContext","useCallback","useEffect","useRef","Autocomplete","Flex","classnames","countries","StringField","FieldBlock","useFieldProps","pickSpacingProps","SharedContext","countryFilter","getCountryData","useTranslation","defaultCountryCode","defaultPlaceholder","defaultMask","PhoneNumber","props","_sharedContext$locale","_props$inputRef","_countryCodeRef$curre","_props$width","sharedContext","label","defaultLabel","countryCodeLabel","defaultCountryCodeLabel","errorRequired","lang","locale","split","countryCodeRef","emptyValue","prevCountryCodeRef","current","numberRef","dataRef","langRef","wasFilled","currentCountryRef","errorMessages","_objectSpread","validateRequired","value","_ref","required","isChanged","error","countryCode","phoneNumber","splitValue","undefined","fromExternal","external","omitCountryCodeField","toEvent","schema","_props$schema","type","pattern","defaultProps","ref","preparedProps","inputRef","id","path","itemPath","className","countryCodeFieldClassName","numberFieldClassName","countryCodePlaceholder","placeholder","numberMask","ccFilter","info","warning","size","hasError","disabled","width","help","validateInitially","continuousValidation","validateContinuously","validateUnchanged","setHasFocus","handleChange","setDisplayValue","onCountryCodeChange","onNumberChange","filterCountries","_inputRef$current","number","length","joinValue","filter","country","updateCurrentDataSet","formatCountryCode","cdc","sort","makeObject","prepareEventValues","_currentCountryRef$cu","arguments","cdcVal","replace","item","find","_item$country","iso","callOnChange","data","eventValues","callOnBlurOrFocus","hasFocus","handleCountryCodeChange","_ref2","_data$selectedKey","selectedKey","trim","handleNumberChange","handleOnBlur","handleOnFocus","handleCountryCodeFocus","_ref3","updateData","onTypeHandler","_ref4","_event$nativeEvent","revalidateInputValue","event","nativeEvent","test","_ref5","window","requestAnimationFrame","isDefault","includes","fieldBlockProps","createElement","Horizontal","align","mode","label_direction","status","on_focus","on_blur","on_change","on_type","independent_width","search_numbers","keep_selection","autoComplete","no_animation","noAnimation","stretch","layout","mask","Array","fill","onFocus","onBlur","onChange","innerRef","breakout","outset","inputMode","_country$i18n$lang","selected_value","content","i18n","en","match","slice","array","Boolean","join","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/PhoneNumber/PhoneNumber.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useEffect,\n useRef,\n} from 'react'\nimport { Autocomplete, Flex } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport classnames from 'classnames'\nimport countries, {\n CountryISO,\n type CountryLang,\n type CountryType,\n} from '../../constants/countries'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldPropsWithExtraValue,\n AllJSONSchemaVersions,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport SharedContext from '../../../../shared/Context'\nimport {\n countryFilter,\n CountryFilterSet,\n getCountryData,\n} from '../SelectCountry'\nimport useTranslation from '../../hooks/useTranslation'\nimport { DrawerListDataArrayItem } from '../../../../fragments/DrawerList'\n\nexport type AdditionalArgs = {\n phoneNumber: string\n countryCode: string\n iso: string\n}\n\nexport type Props = Omit<\n FieldPropsWithExtraValue<string, AdditionalArgs, undefined | string>,\n 'layout' | 'layoutOptions'\n> & {\n countryCodeFieldClassName?: string\n numberFieldClassName?: string\n countryCodePlaceholder?: string\n countryCodeLabel?: string\n numberMask?: InputMaskedProps['mask']\n pattern?: StringFieldProps['pattern']\n width?: 'large' | 'stretch'\n inputRef?: React.RefObject<HTMLInputElement>\n omitCountryCodeField?: boolean\n onCountryCodeChange?: (value: string | undefined) => void\n onNumberChange?: (value: string | undefined) => void\n\n /**\n * Defines the countries to filter. Can be `Scandinavia`, `Nordic`, `Europe` or `Prioritized`.\n * Defaults to `Prioritized`.\n */\n countries?: CountryFilterSet\n\n /**\n * Use this prop to filter out certain countries. The function receives the country object and should return a boolean. Returning `false` will omit the country.\n */\n filterCountries?: (country: CountryType) => boolean\n\n /**\n * For internal testing purposes\n */\n noAnimation?: boolean\n} & Pick<StringFieldProps, 'size'>\n\n// Important for the default value to be defined here, and not after the useFieldProps call, to avoid the UI jumping\n// back to +47 once the user empty the field so handleChange send out undefined.\nconst defaultCountryCode = '+47'\nconst defaultPlaceholder = '00 00 00 00'\nconst defaultMask = [\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n ' ',\n /\\d/,\n /\\d/,\n]\n\ntype EventValues = {\n countryCode?: string\n phoneNumber?: string\n}\n\nfunction PhoneNumber(props: Props) {\n const sharedContext = useContext(SharedContext)\n const {\n label: defaultLabel,\n countryCodeLabel: defaultCountryCodeLabel,\n errorRequired,\n } = useTranslation().PhoneNumber\n const lang = sharedContext.locale?.split('-')[0] as CountryLang\n\n const countryCodeRef = useRef<Props['value']>(props?.emptyValue)\n const prevCountryCodeRef = useRef(countryCodeRef.current)\n const numberRef = useRef<Props['value']>(props?.emptyValue)\n const dataRef = useRef<Array<DrawerListDataArrayItem>>(null)\n const langRef = useRef<string>(lang)\n const wasFilled = useRef<boolean>(false)\n const currentCountryRef = useRef<CountryType>()\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': errorRequired,\n 'Field.errorPattern': errorRequired,\n ...props.errorMessages,\n }),\n [errorRequired, props.errorMessages]\n )\n\n const validateRequired = useCallback(\n (value: string, { required, isChanged, error }) => {\n if (required) {\n const [countryCode, phoneNumber] = splitValue(value)\n\n if (countryCode !== prevCountryCodeRef.current) {\n if (countryCode) {\n prevCountryCodeRef.current = countryCode\n }\n return undefined\n }\n\n if (isChanged && !phoneNumber) {\n return error\n }\n }\n\n return undefined\n },\n []\n )\n\n const fromExternal = useCallback(\n (external: string) => {\n const [, phoneNumber] = splitValue(external)\n if (!phoneNumber && !props.omitCountryCodeField) {\n return countryCodeRef.current\n }\n return external\n },\n [props.omitCountryCodeField]\n )\n\n const toEvent = useCallback(\n (value: string) => {\n const [, phoneNumber] = splitValue(value)\n if (!phoneNumber) {\n return props.emptyValue\n }\n return value\n },\n [props.emptyValue]\n )\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'string',\n pattern: props.pattern,\n },\n [props.schema, props.pattern]\n )\n const defaultProps: Partial<Props> = {\n schema,\n errorMessages,\n }\n const ref = useRef<HTMLInputElement>()\n const preparedProps: Props = {\n ...props,\n ...defaultProps,\n validateRequired,\n fromExternal,\n toEvent,\n inputRef: props.inputRef ?? ref,\n }\n\n const {\n id,\n path,\n itemPath,\n value,\n className,\n inputRef,\n countryCodeFieldClassName,\n numberFieldClassName,\n countryCodePlaceholder,\n placeholder,\n countryCodeLabel,\n label = defaultLabel,\n numberMask,\n countries: ccFilter = 'Prioritized',\n emptyValue,\n info,\n warning,\n size,\n error,\n hasError,\n disabled,\n width = 'large',\n help,\n required,\n validateInitially,\n continuousValidation,\n validateContinuously,\n validateUnchanged,\n omitCountryCodeField,\n setHasFocus,\n handleChange,\n setDisplayValue,\n onCountryCodeChange,\n onNumberChange,\n filterCountries,\n } = useFieldProps(preparedProps)\n\n useEffect(() => {\n if (path || itemPath) {\n const number = inputRef.current?.value\n setDisplayValue(\n number?.length > 0\n ? joinValue([countryCodeRef.current, number])\n : undefined\n )\n }\n }, [inputRef, itemPath, path, setDisplayValue, value])\n\n const filter = useCallback(\n (country: CountryType) => {\n return countryFilter(country, filterCountries, ccFilter)\n },\n [ccFilter, filterCountries]\n )\n\n const updateCurrentDataSet = useCallback(() => {\n dataRef.current = getCountryData({\n lang,\n filter:\n // Make sure the whole cc list is displayed when cc filter is set to specific region\n ccFilter === 'Prioritized' && !wasFilled.current\n ? (country) =>\n `${formatCountryCode(country.cdc)}` ===\n countryCodeRef.current\n : filter,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n makeObject,\n })\n }, [lang, filter, ccFilter])\n\n const prepareEventValues = useCallback(\n ({\n countryCode = countryCodeRef.current || emptyValue,\n phoneNumber = numberRef.current || emptyValue,\n }: EventValues = {}) => {\n if (!currentCountryRef.current) {\n type Item = DrawerListDataArrayItem & { country: CountryType }\n\n const cdcVal = countryCode?.replace(/^\\+/, '')\n const item = dataRef.current.find((item: Item) => {\n const cdc = item?.country?.cdc\n return cdc === cdcVal\n }) as Item\n\n currentCountryRef.current = item?.country\n }\n\n return {\n ...(!omitCountryCodeField ? { countryCode } : {}),\n phoneNumber,\n iso: currentCountryRef.current?.iso as CountryISO,\n }\n },\n [emptyValue, omitCountryCodeField]\n )\n\n const callOnChange = useCallback(\n (data: EventValues) => {\n const eventValues = prepareEventValues(data)\n handleChange(\n joinValue([eventValues.countryCode, eventValues.phoneNumber]),\n eventValues\n )\n },\n [prepareEventValues, handleChange]\n )\n\n const callOnBlurOrFocus = useCallback(\n (hasFocus: boolean) => {\n setHasFocus(hasFocus, undefined, prepareEventValues())\n },\n [prepareEventValues, setHasFocus]\n )\n\n /**\n * We do not process the whole country list at the first render.\n * Only when the Autocomplete opens (focus).\n * To achieve this, we use memo instead of effect to update refs in sync.\n *\n * We set or update the data list depending on if the countrycode changes or lang changes.\n * We then update countryCode and phoneNumber when value changes.\n */\n useMemo(() => {\n const [countryCode, phoneNumber] = splitValue(props.value || value)\n numberRef.current = phoneNumber\n\n if (lang !== langRef.current || !wasFilled.current) {\n if (!countryCodeRef.current || countryCode) {\n countryCodeRef.current = countryCode || defaultCountryCode\n }\n langRef.current = lang\n\n updateCurrentDataSet()\n }\n }, [value, props.value, lang, updateCurrentDataSet])\n\n const handleCountryCodeChange = useCallback(\n ({\n data,\n }: {\n data: { selectedKey: string; country: CountryType }\n }) => {\n const countryCode = (countryCodeRef.current =\n data?.selectedKey?.trim() || emptyValue)\n currentCountryRef.current = data?.country\n\n callOnChange({ countryCode })\n onCountryCodeChange?.(countryCode)\n },\n [emptyValue, callOnChange, onCountryCodeChange]\n )\n\n const handleNumberChange = useCallback(\n (value: string) => {\n const phoneNumber = (numberRef.current = value || emptyValue)\n\n callOnChange({ phoneNumber })\n onNumberChange?.(phoneNumber)\n },\n [emptyValue, callOnChange, onNumberChange]\n )\n\n const handleOnBlur = useCallback(() => {\n callOnBlurOrFocus(false)\n }, [callOnBlurOrFocus])\n\n const handleOnFocus = useCallback(() => {\n callOnBlurOrFocus(true)\n }, [callOnBlurOrFocus])\n\n const handleCountryCodeFocus = useCallback(\n ({ updateData }) => {\n if (!wasFilled.current) {\n wasFilled.current = true\n updateCurrentDataSet()\n updateData(dataRef.current)\n }\n handleOnFocus()\n },\n [handleOnFocus, updateCurrentDataSet]\n )\n\n const onTypeHandler = useCallback(\n ({ value, updateData, revalidateInputValue, event }) => {\n // Handle browser autofill/autocomplete\n if (typeof event?.nativeEvent?.data === 'undefined') {\n const cdcVal = /\\+\\d{1,3}\\s{1}\\d+/.test(value)\n ? splitValue(value)[0]\n : value\n const country = countries.find(({ cdc }) => cdc === cdcVal)\n if (country?.cdc) {\n const countryCode = (countryCodeRef.current = formatCountryCode(\n country.cdc\n ))\n\n updateCurrentDataSet()\n updateData(dataRef.current)\n callOnChange({ countryCode })\n\n // To ensure correct input value,\n // regardless if there is changed data before or not.\n window.requestAnimationFrame(() => {\n revalidateInputValue()\n })\n }\n }\n },\n [callOnChange, updateCurrentDataSet]\n )\n\n const isDefault = countryCodeRef.current?.includes(defaultCountryCode)\n\n const fieldBlockProps: FieldBlockProps = {\n id,\n className: classnames('dnb-forms-field-phone-number', className),\n width: omitCountryCodeField || props.width ? undefined : width,\n label: undefined,\n help: undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Flex.Horizontal align=\"flex-end\">\n {!omitCountryCodeField && (\n <Autocomplete\n className={classnames(\n 'dnb-forms-field-phone-number__country-code',\n countryCodeFieldClassName\n )}\n mode=\"async\"\n placeholder={countryCodePlaceholder}\n label_direction=\"vertical\"\n label={countryCodeLabel ?? defaultCountryCodeLabel}\n data={dataRef.current}\n value={countryCodeRef.current}\n status={hasError ? 'error' : undefined}\n disabled={disabled}\n on_focus={handleCountryCodeFocus}\n on_blur={handleOnBlur}\n on_change={handleCountryCodeChange}\n on_type={onTypeHandler}\n independent_width\n search_numbers\n keep_selection\n autoComplete=\"tel-country-code\"\n no_animation={props.noAnimation}\n stretch={width === 'stretch'}\n size={size}\n />\n )}\n\n <StringField\n className={classnames(\n 'dnb-forms-field-phone-number__number',\n numberFieldClassName\n )}\n type=\"tel\"\n autoComplete=\"tel-national\"\n emptyValue={emptyValue}\n layout=\"vertical\"\n label={label}\n placeholder={\n placeholder ?? (isDefault ? defaultPlaceholder : undefined)\n }\n mask={\n numberMask ?? (isDefault ? defaultMask : Array(12).fill(/\\d/))\n }\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n onChange={handleNumberChange}\n value={numberRef.current}\n innerRef={inputRef}\n info={info}\n warning={warning}\n error={error}\n disabled={disabled}\n width={\n omitCountryCodeField ? 'medium' : props.width ?? 'stretch'\n }\n help={{ ...help, breakout: false, outset: false }}\n required={required}\n errorMessages={errorMessages}\n validateInitially={validateInitially}\n validateContinuously={\n continuousValidation || validateContinuously\n }\n validateUnchanged={validateUnchanged}\n inputMode=\"tel\"\n size={size}\n />\n </Flex.Horizontal>\n </FieldBlock>\n )\n}\n\nfunction makeObject(country: CountryType, lang: string) {\n return {\n selectedKey: formatCountryCode(country.cdc),\n selected_value: `${country.iso} (${formatCountryCode(country.cdc)})`,\n content: `${formatCountryCode(country.cdc)} ${\n country.i18n[lang] ?? country.i18n.en\n }`,\n country,\n }\n}\n\nfunction formatCountryCode(value: string) {\n return `+${value}`\n}\n\nfunction splitValue(value: string) {\n return (\n typeof value === 'string'\n ? value.match(/^(\\+[^ ]+)? ?(.*)$/)\n : [undefined, '', '']\n ).slice(1)\n}\n\nfunction joinValue(array: Array<string>) {\n return array.filter(Boolean).join(' ')\n}\n\nPhoneNumber._supportsSpacingProps = true\nexport default PhoneNumber\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  import { PropertiesTableProps } from '../../../../shared/types';
2
2
  export declare const PhoneNumberProperties: PropertiesTableProps;
3
- export declare const phoneNumberSpecificEvents: PropertiesTableProps;
4
- export declare const phoneNumberGeneralEvents: PropertiesTableProps;
3
+ export declare const PhoneNumberSpecificEvents: PropertiesTableProps;
4
+ export declare const PhoneNumberGeneralEvents: PropertiesTableProps;
@@ -58,7 +58,12 @@ export const PhoneNumberProperties = {
58
58
  status: 'optional'
59
59
  }
60
60
  };
61
- export const phoneNumberSpecificEvents = {
61
+ export const PhoneNumberSpecificEvents = {
62
+ onChange: {
63
+ doc: 'Callback on phone number and country code change.',
64
+ type: '(value?: string, additionalArgs?: { countryCode?: string, phoneNumber?: string, iso?: string }) => void',
65
+ status: 'optional'
66
+ },
62
67
  onCountryCodeChange: {
63
68
  doc: 'Callback on country code change.',
64
69
  type: '(value?: string) => void',
@@ -70,7 +75,7 @@ export const phoneNumberSpecificEvents = {
70
75
  status: 'optional'
71
76
  }
72
77
  };
73
- export const phoneNumberGeneralEvents = getFieldEventsWithTypes({
78
+ export const PhoneNumberGeneralEvents = getFieldEventsWithTypes({
74
79
  type: 'string',
75
80
  optional: true
76
81
  }, {